[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [PATCH v1 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 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 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.
Changelog:
==========
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 (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 | 687 ++++++++++++++++++++++++++++++-
1 file changed, 686 insertions(+), 1 deletion(-)
--
2.34.1
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]