diff mbox series

[4/5] docs: introduce RSS support in Vhost-user specification

Message ID 20220408122813.1357045-5-maxime.coquelin@redhat.com (mailing list archive)
State New, archived
Headers show
Series Vhost-user: add Virtio RSS support | expand

Commit Message

Maxime Coquelin April 8, 2022, 12:28 p.m. UTC
This patch documents RSS feature in Vhost-user specification.
Two new requests are introduced backed by a dedicated
protocol feature.

First one is to query the Vhost-user slave RSS capabilities
such as supported hash types, maximum key length and
indirection table size.

The second one is to provide the slave with driver's RSS
configuration.

Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
 docs/interop/vhost-user.rst | 57 +++++++++++++++++++++++++++++++++++++
 1 file changed, 57 insertions(+)

Comments

Dr. David Alan Gilbert April 11, 2022, 12:18 p.m. UTC | #1
* Maxime Coquelin (maxime.coquelin@redhat.com) wrote:
> This patch documents RSS feature in Vhost-user specification.
> Two new requests are introduced backed by a dedicated
> protocol feature.
> 
> First one is to query the Vhost-user slave RSS capabilities
> such as supported hash types, maximum key length and
> indirection table size.
> 
> The second one is to provide the slave with driver's RSS
> configuration.
> 
> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>

Perhaps it would be worth adding a link to devel/ebpf_rss.rst somewhere
in there; I didn't know what RSS so had to dig.
Also, perhaps it's useful to update that file to point back to the
vhost-user or dpdk implementations.

Dave

> ---
>  docs/interop/vhost-user.rst | 57 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 57 insertions(+)
> 
> diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
> index 4dbc84fd00..9de6297568 100644
> --- a/docs/interop/vhost-user.rst
> +++ b/docs/interop/vhost-user.rst
> @@ -258,6 +258,42 @@ Inflight description
>  
>  :queue size: a 16-bit size of virtqueues
>  
> +RSS capabilities description
> +~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> +
> ++----------------------+-------------+---------------+
> +| supported hash types | max key len | max indir len |
> ++----------------------+-------------+---------------+
> +
> +:supported hash types: a 32-bit bitfield of supported hash types as defined
> +                       in the Virtio specification
> +
> +:max key len: a 8-bit maximum size of the RSS key
> +
> +:max indir len: a 16-bits maximum size of the RSS indirection table
> +
> +RSS data description
> +^^^^^^^^^^^^^^^^^^^^
> +
> ++------------+---------+-----+-----------+-------------+---------------+
> +| hash types | key len | key | indir len | indir table | default queue |
> ++------------+---------+-----+-----------+-------------+---------------+
> +
> +:hash types: a 32-bit bitfield of supported hash types as defined in the
> +             Virtio specification
> +
> +:key len: 8-bit size of the RSS key
> +
> +:key: a 8-bit array of 52 elements containing the RSS key
> +
> +:indir len: a 16-bit size of the RSS indirection table
> +
> +:indir table: a 16-bit array of 512 elements containing the hash indirection
> +              table
> +
> +:default queue: the default queue index for flows not matching requested hash
> +                types
> +
>  C structure
>  -----------
>  
> @@ -858,6 +894,7 @@ Protocol features
>    #define VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS 14
>    #define VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS  15
>    #define VHOST_USER_PROTOCOL_F_STATUS               16
> +  #define VHOST_USER_PROTOCOL_F_NET_RSS              17
>  
>  Master message types
>  --------------------
> @@ -1371,6 +1408,26 @@ Master message types
>    query the backend for its device status as defined in the Virtio
>    specification.
>  
> +``VHOST_USER_NET_GET_RSS``
> +  :id: 41
> +  :equivalent ioctl: N/A
> +  :slave payload: RSS capabilities description
> +  :master payload: N/A
> +
> +  When the ``VHOST_USER_PROTOCOL_F_NET_RSS`` protocol has been successfully
> +  negotiated, this message is submitted by the master to get the RSS
> +  capabilities of the slave.
> +
> +``VHOST_USER_NET_SET_RSS``
> +  :id: 42
> +  :equivalent ioctl: N/A
> +  :slave payload: N/A
> +  :master payload: RSS data description
> +
> +  When the ``VHOST_USER_PROTOCOL_F_NET_RSS`` protocol has been successfully
> +  negotiated, this message is submitted by the master to set the RSS
> +  configuration defined by the Virtio driver.
> +
>  
>  Slave message types
>  -------------------
> -- 
> 2.35.1
>
diff mbox series

Patch

diff --git a/docs/interop/vhost-user.rst b/docs/interop/vhost-user.rst
index 4dbc84fd00..9de6297568 100644
--- a/docs/interop/vhost-user.rst
+++ b/docs/interop/vhost-user.rst
@@ -258,6 +258,42 @@  Inflight description
 
 :queue size: a 16-bit size of virtqueues
 
+RSS capabilities description
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
++----------------------+-------------+---------------+
+| supported hash types | max key len | max indir len |
++----------------------+-------------+---------------+
+
+:supported hash types: a 32-bit bitfield of supported hash types as defined
+                       in the Virtio specification
+
+:max key len: a 8-bit maximum size of the RSS key
+
+:max indir len: a 16-bits maximum size of the RSS indirection table
+
+RSS data description
+^^^^^^^^^^^^^^^^^^^^
+
++------------+---------+-----+-----------+-------------+---------------+
+| hash types | key len | key | indir len | indir table | default queue |
++------------+---------+-----+-----------+-------------+---------------+
+
+:hash types: a 32-bit bitfield of supported hash types as defined in the
+             Virtio specification
+
+:key len: 8-bit size of the RSS key
+
+:key: a 8-bit array of 52 elements containing the RSS key
+
+:indir len: a 16-bit size of the RSS indirection table
+
+:indir table: a 16-bit array of 512 elements containing the hash indirection
+              table
+
+:default queue: the default queue index for flows not matching requested hash
+                types
+
 C structure
 -----------
 
@@ -858,6 +894,7 @@  Protocol features
   #define VHOST_USER_PROTOCOL_F_INBAND_NOTIFICATIONS 14
   #define VHOST_USER_PROTOCOL_F_CONFIGURE_MEM_SLOTS  15
   #define VHOST_USER_PROTOCOL_F_STATUS               16
+  #define VHOST_USER_PROTOCOL_F_NET_RSS              17
 
 Master message types
 --------------------
@@ -1371,6 +1408,26 @@  Master message types
   query the backend for its device status as defined in the Virtio
   specification.
 
+``VHOST_USER_NET_GET_RSS``
+  :id: 41
+  :equivalent ioctl: N/A
+  :slave payload: RSS capabilities description
+  :master payload: N/A
+
+  When the ``VHOST_USER_PROTOCOL_F_NET_RSS`` protocol has been successfully
+  negotiated, this message is submitted by the master to get the RSS
+  capabilities of the slave.
+
+``VHOST_USER_NET_SET_RSS``
+  :id: 42
+  :equivalent ioctl: N/A
+  :slave payload: N/A
+  :master payload: RSS data description
+
+  When the ``VHOST_USER_PROTOCOL_F_NET_RSS`` protocol has been successfully
+  negotiated, this message is submitted by the master to set the RSS
+  configuration defined by the Virtio driver.
+
 
 Slave message types
 -------------------