[ovs-dev] [PATCH 1/2] datapath: Refactor actions in terms of match fields.
pshelar at nicira.com
Tue Oct 11 10:33:20 PDT 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