RE: [PATCH v2 0/6] virtio-net: Support flow filter for receive packets

From
Parav Pandit <>
Date
2023-10-26T06:11:27+00:00
ID
Thread
RE: [PATCH v2 0/6] virtio-net: Support flow filter for receive packets
> From: Parav Pandit <>
> Sent: Friday, October 20, 2023 6:03 PM
> To: ; ;
> 
> Cc: ; Shahaf Shuler <>; si-
> ; ; Parav Pandit
> <>
> Subject: [PATCH v2 0/6] 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
> 
> 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/202310/msg00183.html
> [3] https://lists.oasis-open.org/archives/virtio-
> comment/202310/msg00047.html

I will rebase this series without depending on [2] which was abusing the init time register for dynamic things.
Please hold your review in the text around dynamic flow filter vqs until v3 of this series.