[ovs-dev] [PATCH] match: Add support for matching IGMP fields.

Jarno Rajahalme jarno at ovn.org
Wed Dec 16 21:46:55 UTC 2015


> On Dec 16, 2015, at 1:22 PM, Jarno Rajahalme <jarno at ovn.org> wrote:
> 
> 
>> On Dec 15, 2015, at 5:48 PM, Jarno Rajahalme <jarno at ovn.org <mailto:jarno at ovn.org>> wrote:
>> 
>> 
>>> On Dec 15, 2015, at 5:47 PM, Ben Pfaff <blp at ovn.org <mailto:blp at ovn.org>> wrote:
>>> 
>>> On Mon, Dec 14, 2015 at 04:36:08PM -0800, Jarno Rajahalme wrote:
>>>> 
>>>>> On Dec 14, 2015, at 3:12 AM, Ben Pfaff <blp at ovn.org <mailto:blp at ovn.org>> wrote:
>>>>> 
>>>>> On Thu, Dec 10, 2015 at 01:42:41PM -0800, Jarno Rajahalme wrote:
>>>>>> Complete the IGMP protocol support by making IGMP fields (type, code,
>>>>>> and group) matchable via OpenFlow by the way of new Nicira extensions.
>>>>>> 
>>>>>> The new fields are: 8-bit NXM_NX_IGMP_TYPE (111), 8-bit
>>>>>> NXM_NX_IGMP_CODE (112), and 32-bit NXM_NX_IGMP_GROUP (113).
>>>>>> 
>>>>>> VMware-BZ: #1558992
>>>>>> Signed-off-by: Jarno Rajahalme <jarno at ovn.org <mailto:jarno at ovn.org>>
>>>>> 
>>>>> Is this something we're targeting to backport to OVS 2.5?  If not, then
>>>>> the meta-flow.h headers should say "since v2.6" instead of "since
>>>>> v2.5".
>>>>> 
>>>>> This needs to add an item to NEWS and documentation to ovs-ofctl(8).
>>>>> 
>>>>> What's here looks good, and I trust you to do a good job on the above,
>>>>> so:
>>>>> Acked-by: Ben Pfaff <blp at ovn.org <mailto:blp at ovn.org>>
>>>> 
>>>> While doing this I just realized that this may require further work,
>>>> as the kernel module does not seem to parse the IGMP fields!
>>> 
>>> Userspace should be able to handle that.  It might require a little work
>>> in odp-util.c to mark the received packet as ODP_FIT_TOO_LITTLE.
>> 
>> Justin suggested the same offline. I’ll have a look at this tomorrow,
>> 
> 
> It seems to me that the users in upcall processing and revalidation only care about ODP_FIT_ERROR, i.e., ODP_FIT_TOO_LITTLE and ODP_FIT_TOO_MUCH get the same treatment as ODP_FIT_PERFECT. However, to work as intended, at least for IGMP matching, ODP_FIT_TOO_LITTLE flows should be slow-pathed (a new SLOW_MATCH is needed), and ODP_FIT_TOO_MUCH flows should be exact matched (i.e., non-mega-flow-ed). Making these changes and making sure we don’t introduce new revalidation bugs would take more time than I have now.
> 

I was too fast here, the ODP_FIT_TOO_MUCH is already treated correctly, as the unknown-to-userspace fields are left wildcarded in the megaflow. However, slowpathing ODP_FIT_TOO_LITTLE flow keys needs to be added in the case where the fields not understood by the datapath are used in the flow translation. Daniele promised to take a stab at it.

  Jarno




More information about the dev mailing list