On Tue, Jan 15, 2013 at 04:12:38PM -0800, Jesse Gross wrote:
> On Tue, Jan 15, 2013 at 3:32 PM, Ben Pfaff <[email protected]> wrote:
> > This makes action_xlate_ctx_init() kind of hard to understand so a
> > comment might be warranted.
>
> I added a comment documenting behavior of the various transformations
> (normal, VLAN splinters, and tunnels) and applied this to master.
I want to highlight that comment because it is completely awesome:
/* Flow initialization rules:
* - 'base_flow' must match the kernel's view of the packet at the
* time that action processing starts. 'flow' represents any
* transformations we wish to make through actions.
* - By default 'base_flow' and 'flow' are the same since the input
* packet matches the output before any actions are applied.
* - When using VLAN splinters, 'base_flow''s VLAN is set to the value
* of the received packet as seen by the kernel. If we later output
* to another device without any modifications this will cause us to
* insert a new tag since the original one was stripped off by the
* VLAN device.
* - Tunnel 'flow' is largely cleared when transitioning between
* the input and output stages since it does not make sense to output
* a packet with the exact headers that it was received with (i.e.
* the destination IP is us). The one exception is the tun_id, which
* is preserved to allow use in later resubmit lookups and loads into
* registers.
* - Tunnel 'base_flow' is completely cleared since that is what the
* kernel does. If we wish to maintain the original values an action
* needs to be generated. */
Thanks Jesse!
_______________________________________________
dev mailing list
[email protected]
http://openvswitch.org/mailman/listinfo/dev