[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