[ovs-dev] Adding NoviFlow experimenters to OVS.
yann.bourdeau at noviflow.com
Wed Oct 11 21:01:34 UTC 2017
> Le 11 oct. 2017 à 14:00, Ben Pfaff <blp at ovn.org> a écrit :
>> I was successful to add the flow with my new type.
>> However, I needed to comment some code in the following function because my OXM is not mapped.
> Oh, I forgot that the variable-length fields we have already follow a
> different model. Any individual field at a given time has a fixed
> length, but the controller can change those lengths. This is because
> they were invented for Geneve TLVs. Each TLV has a fixed length, but
> different controllers might use different TLVs, so when the controller
> connects to the switch it configures ("maps") the TLVs it wants onto
> OXMs reserved for that purpose.
> I think you're doing something else, where a single OXM can have
> different lengths at the same time. You might need to break new ground
> here, then. OVS doesn't have any variable-length OXMs of that kind yet.
The OXM is variable for each of its use. Not based on the controller like the tunnelMD. I will fix code where it does not work when I’ll try it (when running a packet to be matched, for now the flow install).
I’m looking to implement this OXM field in miniflow_extract() (lib/flow.c). However I don’t know the offset and length of the field until the switch receive an experimenter message for a table that set the offset and size for the field. When this message is received, the miniflow_extract() should start copying the field in miniflow (that goes in flow). So I’ll be able to match the OXM later on. In fact, I have talked to our switch dev guys and this is similar on how our switch work.
Here are the steps:
1- Configure the UDP offset and UDP size in TABLE 2 via an experimenter message.
2- miniflow_extract() start copying this new UDP field only for table 2.
3- put OXM UDP match payload in nx_put_raw().
In your opinion will this be hard to do? I there a structure that contains table information that can be used in miniflow_extract()?
Thanks again for all your help,
More information about the dev