[ovs-dev] Adding NoviFlow experimenters to OVS.

Ben Pfaff blp at ovn.org
Wed Oct 11 17:09:48 UTC 2017

On Wed, Oct 11, 2017 at 12:35:05PM -0400, yann bourdeau wrote:
> Hi Ben,
> 	I was able to add successfully an experimenter flow to OVS(It is missing the matching on the packet). I have two questions:
> 1- Is it normal that the experimenter OXM is not shown on dump-flows (I think it is normal from what I have understood from the code)?
> root at yannb-virtual-machine:/home/yannb/src/ovs# ovs-ofctl13 dump-flows br0
>  cookie=0xa, duration=89.874s, table=2, n_packets=0, n_bytes=0, send_flow_rem priority=2 actions=drop

Did you add anything to the code to display it?  Fields are not
displayed automatically, it requires new code.

> 2- The experimenter OXM field I need to implements are of variable length (both payload and mask to match on the payload of the packet). Can I create a new type that is variable length? Can I base my code on tunnnelMD type?
> Here is the structure if you are interested:
> struct oxm_fields {
> uint16_t oxm_class; /* Match class OFPXMC_EXPERIMENTER 0xffff */
> uint oxm_field:7; /* Match field within the class NOVI_OXM_UDP_PAYLOAD 0b0000001 */
> uint oxm_hasmask:1; /* Set if OXM includes a bitmask in payload (wildcard match tables only) */
> uint8_t oxm_length; /* Length of OXM payload */
> uint32_t experimenter; /* NoviFlow experimenter ID 0xff000002 */
> uint8_t payload[1-32] /* 1-32 payload bytes to be matched on*/
> uint8_t mask [0-32] /* Optional mask present if oxm_hasmask bit is set in the header */
> };

tunnelMD is probably the best model since it's the only variable-length
field we have.  I'd start with the code there.

More information about the dev mailing list