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 |
* 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 --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 -------------------
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(+)