Fri, Aug 11, 2017 at 12:09:36PM CEST, jan.scheur...@ericsson.com wrote:
>> -----Original Message-----
>> From: Jiri Benc [mailto:jb...@redhat.com]
>> Sent: Friday, 11 August, 2017 11:45
>> 
>> The context field does not apply to MD type 2. It looks wrong for the
>> context field to be included in netlink attribute for anything other
>> than MD type 1. Perhaps it needs to be put into a separate attribute,
>> too?
>> 
>> Note that I'm talking only about the uAPI. Internally, ovs can use
>> struct ovs_key_nsh that is MD type 1 only, there's no problem changing
>> that later. But for the user space interface, this needs to be clean.
>> This can be solved for example this way:
>> 
>> In include/uapi/linux/openvswitch.h:
>> 
>> struct ovs_key_nsh_base {
>>      __u8 flags;
>>      __u8 mdtype;
>>      __u8 np;
>>      __u8 pad;
>>      __be32 path_hdr;
>> };
>> 
>> + one more netlink attribute carrying MD type 1 info. Will probably
>> require to change OVS_KEY_ATTR_NSH to a nested attribute etc.
>> 
>> In net/openvswitch/flow.h (or perhaps a different header would be more
>> appropriate?):
>> 
>> struct ovs_key_nsh {
>>      struct ovs_key_nsh_base base;
>>      __be32 context[4];
>> };
>> 
>> Plus needed conversions between OVS_KEY_ATTR_NSH and struct ovs_key_nsh
>> when interfacing between the kernel and user space.
>> 
>> That way, we can have MD type 1 support only for now while still being
>> allowed to redesign things in whatever way later.
>> 
>>  Jiri
>
>For the OVS_KEY_ATTR_NSH I agree to move the fixed size MD1 context headers 
>from nsh_base to a separate struct and use nested netlink attributes.
>
>For OVS_ACTION_ATTR_PUSH_NSH attribute any metadata included is opaque to the 
>datapath and should be copied as is into the packet header. I doubt that there 
>is any benefit to model this with nested attributes for MD1 or MD2. This just 
>adds complexity on sender and receiver side and requires updates in case there 
>should be other MD types added later on.
>
>Unless someone can explain to me why the datapath should understand the 
>internal structure/format of metadata in push_nsh, I would strongly vote to 
>keep the metadata as variable length octet sequence in the non-structured 
>OVS_ACTION_ATTR_PUSH_NSH

Could you please wrap lines at 72 chars? This is unreadable. Thanks!


Reply via email to