[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [PATCH 0/7] 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 generic framework 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 they 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 Fixes: https://github.com/oasis-tcs/virtio-spec/issues/179 This series utilizes enhancements proposed in [2] and [3]. It uses updated control vq command format from [3]. It uses new _DYNAMIC feature to create queues when needed and saves guest and device resources. [1] https://lists.oasis-open.org/archives/virtio-comment/202308/msg00263.html [2] https://lists.oasis-open.org/archives/virtio-comment/202309/msg00236.html [3] https://lists.oasis-open.org/archives/virtio-comment/202309/msg00227.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 transport set command patch-5 adds packet match fields and values patch-6 adds flow filter requests to transport via vq patch-7 adds device and driver requirements Please review. Parav Pandit (7): 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 transport set command virtio-net: Add flow filter match values virtio-net: Add flow filter requests virtio-net: Add flow filter device and driver requirements device-types/net/description.tex | 671 ++++++++++++++++++++++++++++++- 1 file changed, 670 insertions(+), 1 deletion(-) -- 2.34.1
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]