OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

virtio-comment message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: RE: [PATCH v6 0/5] virtio-net: Support flow filter for receive packets


Hi Cornelia, Michael,


> -----Original Message-----
> From: Parav Pandit <parav@nvidia.com>
> Sent: Friday, November 10, 2023 6:09 PM
> To: virtio-comment@lists.oasis-open.org; mst@redhat.com;
> cohuck@redhat.com
> Cc: sburla@marvell.com; Shahaf Shuler <shahafs@nvidia.com>; si-
> wei.liu@oracle.com; xuanzhuo@linux.alibaba.com; Parav Pandit
> <parav@nvidia.com>
> Subject: [PATCH v6 0/5] virtio-net: Support flow filter for receive packets
> 
> Summary:
> ========
> This series improves virtio net receive packet steering to forward/steer packets
> to specific RQ.
> 
> This basic functionality will enable Linux ethtool steering, Accelerated receive
> flow steering (ARFS) as starting point, and more use cases in future.
> 
> Problem statement:
> ==================
> Currently packet allow/drop interface has few limitations.
> 
> 1. Driver cannot add or delete an individual entry for mac and vlan.
> 2. Driver cannot select mac+vlan combination for which
>     to allow/drop packet.
> 3. Driver cannot not set other commonly used packet match fields
>     such as IP header fields, TCP, UDP, SCP header fields.
> 4. Driver cannot steer specific packets based on the match
>    fields to specific receiveq.
> 5. Driver do not have multiple or dedicated virtqueues to
>     perform flow filter requests in accelerated manner in
>     the device.
> 
> Solution:
> =========
> Flow filter as a generic framework to overcome above limitations.
> 
> Overview:
> =========
> A flow filter defines the flow based on one or more match fields of the packet,
> defines an action like drop/forward to RQ.
> 
> The flow filters are organized in flow filter groups so that their processing can be
> ordered when multiple applications wants to use it.
> 
> Flow filters requests can be transported via control vq or dedicated flow filter
> virtqueue so that it does not get intermixed with other slow operations of cvq.
> 
> Flow filter requirements addressed by this series is worked by virtio community
> at [1].
> 
> Fixes: https://github.com/oasis-tcs/virtio-spec/issues/179
> 

Now that this has been mature phase and on list for several weeks,
I updated the github to point to v6.

Can you please start the voting process?


> It uses updated control vq command format from [2].
> 
> [1] https://lists.oasis-open.org/archives/virtio-
> comment/202308/msg00263.html
> [2] https://lists.oasis-open.org/archives/virtio-
> comment/202310/msg00047.html
> 
> Patch summary:
> ==============
> patch-1 adds theory of operation description for flow filter
> patch-2 adds device capabilities cvq commands
> patch-3 adds group add/delete commands
> patch-4 adds flow filter match key, action and requests to transport via vq
> patch-5 adds device and driver requirements
> 
> Please review.
> 
> Changelog:
> ==========
> v5->v6:
> - pick next unique bit 65 as to avoid conflict with rss context feature
> - fixed missing conformance links
> - removed white spaces at end of line
> v3->v5:
> - removed left over dependencies of flow filter virtqueues
> - removed partial sentence
> v2->v3:
> - removed dependency on dynamic queue infrastucture which is
>   not yet ready
> v1->v2:
> - addressed comments from Satananda
> - squashed with match fields definition patch of v1
> - added length to the flexible array definition struct to benefit
>   from future runtime length bound checkers listed in
>   https://people.kernel.org/kees/bounded-flexible-arrays-in-c
> - renamed value to key
> - addressed comments from Satananda
> - merged destination and action to one struct
> - added vlan type match field
> - kept space for types between l2, l3, l4 header match types
> - renamed mask to mask_supported with shorter width
> - made more fields reserved for future
> - addressed comments from Heng
> - grammar correction
> - added field to indicate supported number of actions per flow
>   filter match entry
> - added missing documentation for max_flow_priorities_per_group
> - fixed comments from Heng
> - grammar corrections
> - spelling corrections
> - fixed spelling from initializaton to initialization
> - added more requirements for multiple actions
> 
> v0->v1:
> - addressed comments from Satananda
> - added device requirement to return non zero value in fields_bmap
> - added device requirement to not repeat filter type in response
> - added driver requirement to order filter match field as it
>   appears in the packet
> - added device requirement to fail group delete command on existing
>   flow entries
> - added mask field in the type to indicate supported mask by device
>   and also in later patch to use it to indicate mask on adding
>   flow filter. As a result removed the mask_supported capability
>   field
> 
> Parav Pandit (5):
>   virtio-net: Add theory of operation for flow filter
>   virtio-net: Add flow filter capabilities read commands
>   virtio-net: Add flow filter group life cycle commands
>   virtio-net: Add flow filter match entry, action and requests
>   virtio-net: Add flow filter device and driver requirements
> 
>  device-types/net/description.tex        | 630 ++++++++++++++++++++++++
>  device-types/net/device-conformance.tex |   1 +
>  device-types/net/driver-conformance.tex |   1 +
>  3 files changed, 632 insertions(+)
> 
> --
> 2.34.1



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]