[ovs-dev] [PATCH v4 01/10] ofp-actions: allow ofpacts_put_openflow10() return error

Isaku Yamahata yamahata at valinux.co.jp
Wed Aug 15 02:36:03 UTC 2012


On Tue, Aug 14, 2012 at 09:43:16AM -0700, Ben Pfaff wrote:
> On Thu, Aug 02, 2012 at 12:24:06AM +0900, Isaku Yamahata wrote:
> > When OF11+ only actions is introduced, ofpacts_put_openflow10() will be
> > unable to handle all ofp-actions. So allow it return error in that case.
> > 
> > Signed-off-by: Isaku Yamahata <yamahata at valinux.co.jp>
> 
> I'd prefer to make it possible for OpenFlow 1.0 to handle all OF1.1
> actions, by introducing extensions for them as necessary.

I see. So the problem is how to encode instructions/actions.
How about the following?

* OF1.0 case: action
- use vendor specific action
  What vendor id(ovs_be32) should be used?
  - allocate new one like 'openvsw\0' or 'ovs\0\0\0\0\0\0'.
  - reuse NXET_VENDOR_ID = 0xb0c2

- How to encapsulate actions
  - whole actions into single action
    This is my preference because the implementation would be simpler.
  - encapsulate single action which can't be represent in OF1.0.

- how to encode each action
  - ascii representation that is used by ovs.
    This is my preference because the format would be stable and human
    readable and the existing test parser/formatter can be reused.
    When analyzing captured OF packet, it is easy to understand what's
    going on.
  - binary encoding used by OF
    Which version of OF?
  - other way?

* OF1.1+ case: instruction and action
- instruction or action
  - use experimenter instruction
    What experimenter code (ovs_be16) should be used?
    assign new one like 'ovs\0' or reuse NXET_VENDOR_ID?
  - Use apply_actions(vendor specific actions)
    Action encoding is same to OF1.0 case

- How to encapsulate instructions/actions
- how to encode each instructions/actions
Those two is same to OF1.0 case

thanks
---
yamahata



More information about the dev mailing list