Re: [PATCH 2/6] vxlan: Group Policy extension
From: Alexei Starovoitov <hidden>
Date: 2015-01-07 17:32:52
On Wed, Jan 7, 2015 at 3:10 AM, Thomas Graf [off-list ref] wrote:
On 01/06/15 at 07:37pm, Alexei Starovoitov wrote:quoted
Even it works ok, I think this struct layout is ugly. imo would be much easier to read if you replace the whole vxlanhdr with vxlanhdr_gbp or split vxlanhdr into two 32-bit structs. then __packed hacks won't be needed.The main reason why I merged it into vxlanhdr is for documentation purposes and to avoid duplicating the generic VXLAN header for every extension. The RCO and GPE extensions would need to duplicate this over and over. It gets messy in particular when multiple extensions can be used in combination (such as GBP and RCO) which then each have their own conflicting header definitions. This way, it is clear which extensions are compatible by just looking at the definition of the structure.
I'm afraid 'union' style with first u8 flags working as selector
won't work for the case you're describing, but since
md.gbp = ntohs(vxh->gbp.policy_id);
2652: 41 0f b7 55 0a movzwl 0xa(%r13),%edx
then at least from performance side it's ok at least on x86.
So this _packed stuff is fine, though not pretty.
It's internal header, so we can improve it later.
_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev