[ovs-dev] [PATCH 1/2] datapath: Refactor actions in terms of match fields.

Pravin Shelar pshelar at nicira.com
Tue Oct 11 17:33:20 UTC 2011


On Mon, Oct 10, 2011 at 11:05 PM, Jesse Gross <jesse at nicira.com> wrote:
> On Fri, Oct 7, 2011 at 1:03 PM, Pravin B Shelar <pshelar at nicira.com> wrote:
>> Almost all current actions can be expressed in the form of
>> push/pop/set <field>, where field is one of the match fields. We can
>> create three base actions and take a field. This has both a nice
>> symmetry and avoids inconsistencies where we can match on the vlan
>> TPID but not set it.
>> Following patch converts all actions to this new format.
>>
>> Bug #7115
>
>
>> +#define OVS_ACT_TYPE(type, key_id)     ((type << 8) | key_id)
>
> This compacted format never really thrilled me - it seems overly
> aggressive about compacting information without much benefit and
> seeing the code that uses it reinforces that belief.  Strictly
> speaking, it doesn't actually lose information but it definitely makes
> it more difficult to deal with and prevents effectively sharing code
> with the match fields.  For example, PUSH and SET could have the
> corresponding Netlink attribute as their data and POP would have just
> the u16 type.

I implemented this to make it more efficient/compact compared to
having nested netlink.
As far as code sharing is concerned all code sharing can be done with
this approach, as ovs_key is still used.
Anyways I will implement it as nested ovs_key as it looks more like
netlink model and it is
easier to share code.



More information about the dev mailing list