* [virtio-comment] [PATCH v2 0/2] define USO feature
@ 2021-04-28 6:35 Yuri Benditovich
2021-04-28 6:35 ` [virtio-comment] [PATCH v2 1/2] virtio-net: fix mistake: segmentation -> fragmentation Yuri Benditovich
` (2 more replies)
0 siblings, 3 replies; 5+ messages in thread
From: Yuri Benditovich @ 2021-04-28 6:35 UTC (permalink / raw)
To: virtio-comment; +Cc: yan
changes v1->v2:
Added separate patch fixing mistake in UFO definition
Added USO feature explanation
Yuri Benditovich (2):
virtio-net: fix mistake: segmentation -> fragmentation
virtio-net: define USO feature
content.tex | 33 ++++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 11 deletions(-)
--
2.25.1
This publicly archived list offers a means to provide input to the
OASIS Virtual I/O Device (VIRTIO) TC.
In order to verify user consent to the Feedback License terms and
to minimize spam in the list archive, subscription is required
before posting.
Subscribe: virtio-comment-subscribe@lists.oasis-open.org
Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org
List help: virtio-comment-help@lists.oasis-open.org
List archive: https://lists.oasis-open.org/archives/virtio-comment/
Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf
List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists
Committee: https://www.oasis-open.org/committees/virtio/
Join OASIS: https://www.oasis-open.org/join/
^ permalink raw reply [flat|nested] 5+ messages in thread* [virtio-comment] [PATCH v2 1/2] virtio-net: fix mistake: segmentation -> fragmentation 2021-04-28 6:35 [virtio-comment] [PATCH v2 0/2] define USO feature Yuri Benditovich @ 2021-04-28 6:35 ` Yuri Benditovich 2021-04-28 6:35 ` [virtio-comment] [PATCH v2 2/2] virtio-net: define USO feature Yuri Benditovich 2021-05-05 10:59 ` [virtio-comment] Re: [PATCH v2 0/2] " Yuri Benditovich 2 siblings, 0 replies; 5+ messages in thread From: Yuri Benditovich @ 2021-04-28 6:35 UTC (permalink / raw) To: virtio-comment; +Cc: yan The VIRTIO_NET_F_HOST_UFO feature fragments the packet. Only first fragment has a UDP header. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> --- content.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content.tex b/content.tex index e536fd4..63a5c52 100644 --- a/content.tex +++ b/content.tex @@ -3372,7 +3372,7 @@ \subsubsection{Packet Transmission}\label{sec:Device Types / Network Device / De If VIRTIO_NET_F_HOST_UFO is negotiated, the driver MAY set \field{gso_type} to VIRTIO_NET_HDR_GSO_UDP to request UDP -segmentation, otherwise the driver MUST NOT set +fragmentation, otherwise the driver MUST NOT set \field{gso_type} to VIRTIO_NET_HDR_GSO_UDP. The driver SHOULD NOT send to the device TCP packets requiring segmentation offload -- 2.25.1 This publicly archived list offers a means to provide input to the OASIS Virtual I/O Device (VIRTIO) TC. In order to verify user consent to the Feedback License terms and to minimize spam in the list archive, subscription is required before posting. Subscribe: virtio-comment-subscribe@lists.oasis-open.org Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org List help: virtio-comment-help@lists.oasis-open.org List archive: https://lists.oasis-open.org/archives/virtio-comment/ Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists Committee: https://www.oasis-open.org/committees/virtio/ Join OASIS: https://www.oasis-open.org/join/ ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [virtio-comment] [PATCH v2 2/2] virtio-net: define USO feature 2021-04-28 6:35 [virtio-comment] [PATCH v2 0/2] define USO feature Yuri Benditovich 2021-04-28 6:35 ` [virtio-comment] [PATCH v2 1/2] virtio-net: fix mistake: segmentation -> fragmentation Yuri Benditovich @ 2021-04-28 6:35 ` Yuri Benditovich 2021-05-05 10:59 ` [virtio-comment] Re: [PATCH v2 0/2] " Yuri Benditovich 2 siblings, 0 replies; 5+ messages in thread From: Yuri Benditovich @ 2021-04-28 6:35 UTC (permalink / raw) To: virtio-comment; +Cc: yan Fixes: https://github.com/oasis-tcs/virtio-spec/issues/104 Unlike UFO (fragmenting the packet) the USO splits large UDP packet to several segments when each of these smaller packets has UDP header. In Linux see SKB_GSO_UDP_L4. Signed-off-by: Yuri Benditovich <yuri.benditovich@daynix.com> --- content.tex | 31 +++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 10 deletions(-) diff --git a/content.tex b/content.tex index 63a5c52..8822f17 100644 --- a/content.tex +++ b/content.tex @@ -2964,6 +2964,10 @@ \subsection{Feature bits}\label{sec:Device Types / Network Device / Feature bits \item[VIRTIO_NET_F_CTRL_MAC_ADDR(23)] Set MAC address through control channel. +\item[VIRTIO_NET_F_HOST_USO (56)] Device can receive USO packets. Unlike UFO + (fragmenting the packet) the USO splits large UDP packet + to several segments when each of these smaller packets has UDP header. + \item[VIRTIO_NET_F_HASH_REPORT(57)] Device can report per-packet hash value and a type of calculated hash. @@ -2998,6 +3002,7 @@ \subsubsection{Feature bit requirements}\label{sec:Device Types / Network Device \item[VIRTIO_NET_F_HOST_TSO6] Requires VIRTIO_NET_F_CSUM. \item[VIRTIO_NET_F_HOST_ECN] Requires VIRTIO_NET_F_HOST_TSO4 or VIRTIO_NET_F_HOST_TSO6. \item[VIRTIO_NET_F_HOST_UFO] Requires VIRTIO_NET_F_CSUM. +\item[VIRTIO_NET_F_HOST_USO] Requires VIRTIO_NET_F_CSUM. \item[VIRTIO_NET_F_CTRL_RX] Requires VIRTIO_NET_F_CTRL_VQ. \item[VIRTIO_NET_F_CTRL_VLAN] Requires VIRTIO_NET_F_CTRL_VQ. @@ -3200,10 +3205,10 @@ \subsection{Device Initialization}\label{sec:Device Types / Network Device / Dev \item A performant driver would indicate that it will generate checksumless packets by negotating the VIRTIO_NET_F_CSUM feature. -\item If that feature is negotiated, a driver can use TCP or UDP - segmentation offload by negotiating the VIRTIO_NET_F_HOST_TSO4 (IPv4 - TCP), VIRTIO_NET_F_HOST_TSO6 (IPv6 TCP) and VIRTIO_NET_F_HOST_UFO - (UDP fragmentation) features. +\item If that feature is negotiated, a driver can use TCP segmentation or UDP + segmentation/fragmentation offload by negotiating the VIRTIO_NET_F_HOST_TSO4 (IPv4 + TCP), VIRTIO_NET_F_HOST_TSO6 (IPv6 TCP), VIRTIO_NET_F_HOST_UFO + (UDP fragmentation) and VIRTIO_NET_F_HOST_USO (UDP segmentation) features. \item The converse features are also available: a driver can save the virtual device some work by negotiating these features.\note{For example, a network packet transported between two guests on @@ -3242,6 +3247,7 @@ \subsection{Device Operation}\label{sec:Device Types / Network Device / Device O #define VIRTIO_NET_HDR_GSO_TCPV4 1 #define VIRTIO_NET_HDR_GSO_UDP 3 #define VIRTIO_NET_HDR_GSO_TCPV6 4 +#define VIRTIO_NET_HDR_GSO_UDP_L4 5 #define VIRTIO_NET_HDR_GSO_ECN 0x80 u8 gso_type; le16 hdr_len; @@ -3312,9 +3318,9 @@ \subsubsection{Packet Transmission}\label{sec:Device Types / Network Device / De \end{note} \item If the driver negotiated - VIRTIO_NET_F_HOST_TSO4, TSO6 or UFO, and the packet requires - TCP segmentation or UDP fragmentation, then \field{gso_type} - is set to VIRTIO_NET_HDR_GSO_TCPV4, TCPV6 or UDP. + VIRTIO_NET_F_HOST_TSO4, TSO6, USO or UFO, and the packet requires + TCP segmentation, UDP segmentation or fragmentation, then \field{gso_type} + is set to VIRTIO_NET_HDR_GSO_TCPV4, TCPV6, UDP_L4 or UDP. (Otherwise, it is set to VIRTIO_NET_HDR_GSO_NONE). In this case, packets larger than 1514 bytes can be transmitted: the metadata indicates how to replicate the packet header to cut it @@ -3375,6 +3381,11 @@ \subsubsection{Packet Transmission}\label{sec:Device Types / Network Device / De fragmentation, otherwise the driver MUST NOT set \field{gso_type} to VIRTIO_NET_HDR_GSO_UDP. +If VIRTIO_NET_F_HOST_USO is negotiated, the driver MAY set +\field{gso_type} to VIRTIO_NET_HDR_GSO_UDP_L4 to request UDP +segmentation, otherwise the driver MUST NOT set +\field{gso_type} to VIRTIO_NET_HDR_GSO_UDP_L4. + The driver SHOULD NOT send to the device TCP packets requiring segmentation offload which have the Explicit Congestion Notification bit set, unless the VIRTIO_NET_F_HOST_ECN feature is negotiated, in which case the @@ -3398,7 +3409,7 @@ \subsubsection{Packet Transmission}\label{sec:Device Types / Network Device / De packet; \end{enumerate} -If none of the VIRTIO_NET_F_HOST_TSO4, TSO6 or UFO options have +If none of the VIRTIO_NET_F_HOST_TSO4, TSO6, USO or UFO options have been negotiated, the driver MUST set \field{gso_type} to VIRTIO_NET_HDR_GSO_NONE. @@ -3407,7 +3418,7 @@ \subsubsection{Packet Transmission}\label{sec:Device Types / Network Device / De \field{flags} and MUST set \field{gso_size} to indicate the desired MSS. -If one of the VIRTIO_NET_F_HOST_TSO4, TSO6 or UFO options have +If one of the VIRTIO_NET_F_HOST_TSO4, TSO6, USO or UFO options have been negotiated: \begin{itemize} \item If the VIRTIO_NET_F_GUEST_HDRLEN feature has been negotiated, @@ -3434,7 +3445,7 @@ \subsubsection{Packet Transmission}\label{sec:Device Types / Network Device / De If VIRTIO_NET_HDR_F_NEEDS_CSUM bit in \field{flags} is not set, the device MUST NOT use the \field{csum_start} and \field{csum_offset}. -If one of the VIRTIO_NET_F_HOST_TSO4, TSO6 or UFO options have +If one of the VIRTIO_NET_F_HOST_TSO4, TSO6, USO or UFO options have been negotiated: \begin{itemize} \item If the VIRTIO_NET_F_GUEST_HDRLEN feature has been negotiated, -- 2.25.1 This publicly archived list offers a means to provide input to the OASIS Virtual I/O Device (VIRTIO) TC. In order to verify user consent to the Feedback License terms and to minimize spam in the list archive, subscription is required before posting. Subscribe: virtio-comment-subscribe@lists.oasis-open.org Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org List help: virtio-comment-help@lists.oasis-open.org List archive: https://lists.oasis-open.org/archives/virtio-comment/ Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists Committee: https://www.oasis-open.org/committees/virtio/ Join OASIS: https://www.oasis-open.org/join/ ^ permalink raw reply related [flat|nested] 5+ messages in thread
* [virtio-comment] Re: [PATCH v2 0/2] define USO feature 2021-04-28 6:35 [virtio-comment] [PATCH v2 0/2] define USO feature Yuri Benditovich 2021-04-28 6:35 ` [virtio-comment] [PATCH v2 1/2] virtio-net: fix mistake: segmentation -> fragmentation Yuri Benditovich 2021-04-28 6:35 ` [virtio-comment] [PATCH v2 2/2] virtio-net: define USO feature Yuri Benditovich @ 2021-05-05 10:59 ` Yuri Benditovich 2021-05-05 11:12 ` Michael S. Tsirkin 2 siblings, 1 reply; 5+ messages in thread From: Yuri Benditovich @ 2021-05-05 10:59 UTC (permalink / raw) To: Michael S . Tsirkin; +Cc: Yan Vugenfirer, virtio-comment Hi Michael, If there are no more comments, can you please initiate the ballot? Thanks, Yuri Benditovich On Wed, Apr 28, 2021 at 9:35 AM Yuri Benditovich <yuri.benditovich@daynix.com> wrote: > > changes v1->v2: > Added separate patch fixing mistake in UFO definition > Added USO feature explanation > > Yuri Benditovich (2): > virtio-net: fix mistake: segmentation -> fragmentation > virtio-net: define USO feature > > content.tex | 33 ++++++++++++++++++++++----------- > 1 file changed, 22 insertions(+), 11 deletions(-) > > -- > 2.25.1 > This publicly archived list offers a means to provide input to the OASIS Virtual I/O Device (VIRTIO) TC. In order to verify user consent to the Feedback License terms and to minimize spam in the list archive, subscription is required before posting. Subscribe: virtio-comment-subscribe@lists.oasis-open.org Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org List help: virtio-comment-help@lists.oasis-open.org List archive: https://lists.oasis-open.org/archives/virtio-comment/ Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists Committee: https://www.oasis-open.org/committees/virtio/ Join OASIS: https://www.oasis-open.org/join/ ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [virtio-comment] Re: [PATCH v2 0/2] define USO feature 2021-05-05 10:59 ` [virtio-comment] Re: [PATCH v2 0/2] " Yuri Benditovich @ 2021-05-05 11:12 ` Michael S. Tsirkin 0 siblings, 0 replies; 5+ messages in thread From: Michael S. Tsirkin @ 2021-05-05 11:12 UTC (permalink / raw) To: Yuri Benditovich; +Cc: Yan Vugenfirer, virtio-comment Note link to proposal should be part of the issue itself, not a comment. comments are ignored. I fixed it up. On Wed, May 05, 2021 at 01:59:57PM +0300, Yuri Benditovich wrote: > Hi Michael, > If there are no more comments, can you please initiate the ballot? > > Thanks, > Yuri Benditovich > > > > On Wed, Apr 28, 2021 at 9:35 AM Yuri Benditovich > <yuri.benditovich@daynix.com> wrote: > > > > changes v1->v2: > > Added separate patch fixing mistake in UFO definition > > Added USO feature explanation > > > > Yuri Benditovich (2): > > virtio-net: fix mistake: segmentation -> fragmentation > > virtio-net: define USO feature > > > > content.tex | 33 ++++++++++++++++++++++----------- > > 1 file changed, 22 insertions(+), 11 deletions(-) > > > > -- > > 2.25.1 > > > > This publicly archived list offers a means to provide input to the > OASIS Virtual I/O Device (VIRTIO) TC. > > In order to verify user consent to the Feedback License terms and > to minimize spam in the list archive, subscription is required > before posting. > > Subscribe: virtio-comment-subscribe@lists.oasis-open.org > Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org > List help: virtio-comment-help@lists.oasis-open.org > List archive: https://lists.oasis-open.org/archives/virtio-comment/ > Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf > List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists > Committee: https://www.oasis-open.org/committees/virtio/ > Join OASIS: https://www.oasis-open.org/join/ This publicly archived list offers a means to provide input to the OASIS Virtual I/O Device (VIRTIO) TC. In order to verify user consent to the Feedback License terms and to minimize spam in the list archive, subscription is required before posting. Subscribe: virtio-comment-subscribe@lists.oasis-open.org Unsubscribe: virtio-comment-unsubscribe@lists.oasis-open.org List help: virtio-comment-help@lists.oasis-open.org List archive: https://lists.oasis-open.org/archives/virtio-comment/ Feedback License: https://www.oasis-open.org/who/ipr/feedback_license.pdf List Guidelines: https://www.oasis-open.org/policies-guidelines/mailing-lists Committee: https://www.oasis-open.org/committees/virtio/ Join OASIS: https://www.oasis-open.org/join/ ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2021-05-05 11:12 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2021-04-28 6:35 [virtio-comment] [PATCH v2 0/2] define USO feature Yuri Benditovich 2021-04-28 6:35 ` [virtio-comment] [PATCH v2 1/2] virtio-net: fix mistake: segmentation -> fragmentation Yuri Benditovich 2021-04-28 6:35 ` [virtio-comment] [PATCH v2 2/2] virtio-net: define USO feature Yuri Benditovich 2021-05-05 10:59 ` [virtio-comment] Re: [PATCH v2 0/2] " Yuri Benditovich 2021-05-05 11:12 ` Michael S. Tsirkin
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.