Thanks Jesse,

I will have a look through the archives to find previous submitted patches for 
QinQ.

As for the layered flow matching, you are right, I have been looking at it from 
a purely theoretical point of view. Once I progress my trial a bit further I 
will replay some real traffic traces through the switch and observe the load, 
hack the kernel path to layer 2 only and replay the same trace again and 
compare results.


Cheers,

Chris


On Thu, 29 Mar 2012 15:50:50 Jesse Gross wrote:
> On Wed, Mar 28, 2012 at 4:30 PM, Chris Browning <ch...@rurallink.co.nz> 
wrote:
> > First, the kernel module does not support matching on multiple VLAN tags.
> > I can ignore this issue for the split horizon layer 2 for the Internet
> > and just match on mac address to push_vlan actions mappings, but for
> > joining LAN's where I cannot guarantee the uniqueness of MAC addresses I
> > will need to have the datapath aware of stacked VLAN tags and only match
> > on those. I have heard that multiple people have attempted to solve
> > this, and submitted patches, but nothing has been accepted. Is QinQ
> > something that openvswitch plan to support? If so, is there somebody
> > working on this that I can work with or are there any patches that are
> > good place to start from and perhaps complete?
> 
> QinQ is something that we would be interested in supporting.  We
> always prioritize stability and correctness over new features so while
> there's been some work in this area we haven't been able to apply
> anything yet.  We would certainly be happy to accept clean patches
> though and you may want to search the archives for examples.
> 
> > Second, openvswitch is currently a Layer 4 aware switch (from what I have
> > seen from the datapath so far). The kernel will always wonder as deep
> > into the packet as it can making keys, then hash on all of the keys.
> > This means that if I have an IP packet, I cannot switch purely on the
> > mac addresses. Now obviously it is very easy to hack the kernel module
> > to stop at layer 2 for me, but it seems more useful to configure the
> > datapath to stop at an arbitrary layer, perhaps for now layers 2 or 3.
> >  Chatting to people on your IRC channel it was suggested that such a
> > patch was too specialized, and perhaps a patch that made all of the
> > protocols selectable would be more appropriate. This doesn't seem like a
> > hard patch, but I would love to hear your opinion.
> 
> It's possible, although I wouldn't want to reduce flexibility or
> require additional configuration knobs so it would need to be handled
> automatically.  I suspect that this patch may be more involved than
> you realize, since it would require userspace to understand which
> header fields could potentially have an effect (both directly from
> flows and from functional blocks like bonding), tell the kernel that,
> and track any possible changes.
> 
> > The other harder and slower approach to my problem would be allow partial
> > matches on keys. I haven't thought this idea through, but the problems
> > that arise in the couple of minutes I have spent thinking are, how do
> > you know what keys to do the hash check on, what happens when there is a
> > more specific match, and how do you do this without doing lots of hash
> > lookups. To do it fast would require tree rather than a hash.
> 
> The exact match approach that we use has been very helpful in keeping
> a lot of complexity in userspace, so it's not something that I would
> be eager to move away from.
> 
> > Ultimately, if we could tell the datapath that we are not interested in
> > higher layers, we can optimize away many trips to user-space for flows
> > we will never want to see and also keep the hashes smaller, and the hash
> > count lower. All making the switching more optimized for this type of
> > use. Has the idea of stopping at earlier layers or protocols ever come
> > up within the team? If we were to work towards implementing something
> > like this would it be in line with the projects goals?
> 
> Are you actually seeing performance problems in practice or is this
> just theoretical?  If it's a guess I would first run some benchmarks.
> If there really are issues with flow setups, I would suggest a third
> approach of optimizing the performance of the setups themselves.  I
> suspect that will be the most generally useful and compatibile with
> the overall feature set.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to