> 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.