On Mon, 4 Sep 2017 12:57:15 +0000, Jan Scheurich wrote:
> So is what you are suggesting the following?
> 
> For matching:
> OVS_KEY_ATTR_NSH_BASE_HEADER          mandatory
> OVS_KEY_ATTR_NSH_MD1_CONTEXT          optional, in case MDTYPE == MD1

This needs to be:

OVS_KEY_ATTR_NSH
        OVS_KEY_ATTR_NSH_BASE_HEADER
        OVS_KEY_ATTR_NSH_MD1_CONTEXT

> For setting:
> OVS_ACTION_ATTR_SET_MASKED
> -    OVS_KEY_ATTR_NSH_BASE_HEADER             when setting any base header 
> fields
> OVS_ACTION_ATTR_SET_MASKED
> -    OVS_KEY_ATTR_NSH_MD1_CONTEXT     when setting any MD1 context data fields

This needs to be:

OVS_ACTION_ATTR_SET_MASKED
        OVS_KEY_ATTR_NSH
                OVS_KEY_ATTR_NSH_BASE_HEADER
                OVS_KEY_ATTR_NSH_MD1_CONTEXT

In your example, there's no way to distinguish OVS_KEY_ATTR_ENCAP and
OVS_KEY_ATTR_NSH_BASE_HEADER, they are both "1".

> Should we consider to stick to that simple and efficient approach? As far 
> As I can see it will be generic for the foreseeable future.

I'm not sure. From the kernel point of view, we want the same
functionality offered by the openvswitch module and by a tc action.

In theory, it can be the tc tool that constructs the header from the
command line but there's no precedent. Dunno.

 Jiri

Reply via email to