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