[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]