[ovs-dev] [PATCH 2/6] vxlan: Group Policy extension

Alexei Starovoitov alexei.starovoitov at gmail.com
Wed Jan 7 03:37:15 UTC 2015


On Tue, Jan 6, 2015 at 6:05 PM, Thomas Graf <tgraf at suug.ch> wrote:
> +struct vxlan_gbp {
> +#ifdef __LITTLE_ENDIAN_BITFIELD
> +       __u8    reserved_flags1:3,
...
> +       __be16 policy_id;
> +} __packed;

are you sure that compiler will be smart enough
to do single short load when you pack
u8 + struct vxlan_gbp inside struct vxlanhdr ?
I suspect compiler will use two byte loads
with shifts and ors every time to access policy_id.
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.



More information about the dev mailing list