RE: [PATCH v10 1/2] virtio-net: Fix ECN feature descriptions

Parav Pandit <[email protected]>
Newsgroups dev.linux.lists.virtio-comment
Message-ID <CY8PR12MB7195670B68CC8F454DA821C6DC1BA@CY8PR12MB7195.namprd12.prod.outlook.com>
Hi,

> From: [email protected] <chia-yu.chang@nokia-bell-
> labs.com>
> 
> From: Chia-Yu Chang <[email protected]>
> 
> Clarify that the VIRTIO_NET_HDR_GSO_ECN gso_type flag does not mean that
> TCP has IP-ECN set; instead, it identifies that the TCP CWR flag is set and will
> be cleared from the second segment of an aggregated segment.
>
Above text is seems to be clarified only in commit message, not in the spec changes below.
Can you please add it in the actual spec wording, including requirements?

> This is used to offload the TCP CWR flag in a way that is compatible with
> RFC3168 ECN but is problematic for non-RFC3168 use of the TCP CWR flag.
> 
> Foe detailed requirements, please refer to IETF RFC3168:

[..]

> Signed-off-by: Chia-Yu Chang <[email protected]>
> ---
>  device-types/net/description.tex | 35 +++++++++++++++++---------------
>  introduction.tex                 |  3 +++
>  2 files changed, 22 insertions(+), 16 deletions(-)
> 
> diff --git a/device-types/net/description.tex b/device-
> types/net/description.tex
> index da9ff17..0da8f9f 100644
> --- a/device-types/net/description.tex
> +++ b/device-types/net/description.tex
> @@ -54,7 +54,9 @@ \subsection{Feature bits}\label{sec:Device Types /
> Network Device / Feature bits
> 
>  \item[VIRTIO_NET_F_GUEST_TSO6 (8)] Driver can receive TSOv6.
> 
> -\item[VIRTIO_NET_F_GUEST_ECN (9)] Driver can receive TSO with ECN.
> +\item[VIRTIO_NET_F_GUEST_ECN (9)] Driver can receive TSO with the CWR
> flag set
> +    and follow the requirements of the CWR bit described in
> +    ``Section 6.1.2. The TCP Sender'' of \hyperref[intro:rfc3168]{[RFC3168]}.
> 
>  \item[VIRTIO_NET_F_GUEST_UFO (10)] Driver can receive UFO.
> 
> @@ -62,7 +64,9 @@ \subsection{Feature bits}\label{sec:Device Types /
> Network Device / Feature bits
> 
>  \item[VIRTIO_NET_F_HOST_TSO6 (12)] Device can receive TSOv6.
> 
> -\item[VIRTIO_NET_F_HOST_ECN (13)] Device can receive TSO with ECN.
> +\item[VIRTIO_NET_F_HOST_ECN (13)] Device can receive TSO with the CWR
> flag set
> +    and follow the requirements of the CWR bit described in
> +    ``Section 6.1.2. The TCP Sender'' of \hyperref[intro:rfc3168]{[RFC3168]}.
> 
>  \item[VIRTIO_NET_F_HOST_UFO (14)] Device can receive UFO.
> 
> @@ -729,9 +733,10 @@ \subsubsection{Packet
> Transmission}\label{sec:Device Types / Network Device / De
>      header (ie. MSS).
> 
>    \item If the driver negotiated the VIRTIO_NET_F_HOST_ECN feature,
> -    the VIRTIO_NET_HDR_GSO_ECN bit in \field{gso_type}
> -    indicates that the TCP packet has the ECN bit set\footnote{This case is not
> handled by some older hardware, so is called out
> -specifically in the protocol.}.
> +    the VIRTIO_NET_HDR_GSO_ECN bit in \field{gso_type} indicates that the
> TCP packet
> +    has the CWR flag set and follows the requirements of the CWR flag
> described in
> +    ``Section 6.1.2. The TCP Sender'' of \hyperref[intro:rfc3168]{[RFC3168]}.
> +    \footnote{This case is not handled by some older hardware, so is called
> out specifically in the protocol.}.
>     \end{itemize}
> 
>  \item If the driver negotiated the VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO
> feature and the @@ -828,10 +833,9 @@ \subsubsection{Packet
> Transmission}\label{sec:Device Types / Network Device / De  \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
> -driver MUST set the VIRTIO_NET_HDR_GSO_ECN bit in -\field{gso_type}.
> +which need to follow the CWR flag requirements described in ``Section 6.1.2.
> The TCP Sender''
> +of \hyperref[intro:rfc3168]{[RFC3168]}, unless the
> +VIRTIO_NET_F_HOST_ECN feature is negotiated, in which case the driver
> MUST set the VIRTIO_NET_HDR_GSO_ECN bit in \field{gso_type}.
> 
>  If VIRTIO_NET_F_HOST_UDP_TUNNEL_GSO is negotiated, the driver MAY set
>  VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV4 bit or the
> VIRTIO_NET_HDR_GSO_UDP_TUNNEL_IPV6 bit @@ -1168,9 +1172,9 @@
> \subsubsection{Processing of Incoming Packets}\label{sec:Device Types /
> Network  \end{enumerate}
> 
>  Additionally, VIRTIO_NET_F_GUEST_CSUM, TSO4, TSO6, UDP, UDP_TUNNEL -
> and ECN features enable receive checksum, large receive offload and ECN -
> support which are the input equivalents of the transmit checksum, -transmit
> segmentation offloading and ECN features, as described
> +and ECN features enable receive checksum, large receive offload and
> +RFC3168 ECN support which are the input equivalents of the transmit
> +checksum, transmit segmentation offloading and RFC3168 ECN features, as
> +described
>  in \ref{sec:Device Types / Network Device / Device Operation /  Packet
> Transmission}:
>  \begin{enumerate}
> @@ -1273,10 +1277,9 @@ \subsubsection{Processing of Incoming
> Packets}\label{sec:Device Types / Network  the
> VIRTIO_NET_HDR_F_UDP_TUNNEL_CSUM bit in \field{flags}.
> 
>  The device SHOULD NOT send to the driver TCP packets requiring
> segmentation offload -which have the Explicit Congestion Notification bit set,
> unless the -VIRTIO_NET_F_GUEST_ECN feature is negotiated, in which case
> the -device MUST set the VIRTIO_NET_HDR_GSO_ECN bit in -\field{gso_type}.
> +which need to follow the CWR flag requirements described in ``Section 6.1.2.
> The TCP Sender''
> +of \hyperref[intro:rfc3168]{[RFC3168]}, unless the
> +VIRTIO_NET_F_GUEST_ECN feature is negotiated, in which case the device
> MUST set the VIRTIO_NET_HDR_GSO_ECN bit in \field{gso_type}.
> 
>  If VIRTIO_NET_F_OUT_NET_HEADER has been negotiated, the device MAY
> set the \field{outer_nh_offset} to nonzero value to indicate outer network
> header offset, diff --git a/introduction.tex b/introduction.tex index
> 80aa67a..1c4cb33 100644
> --- a/introduction.tex
> +++ b/introduction.tex
> @@ -180,6 +180,9 @@ \section{Normative References}\label{sec:Normative
> References}
>      Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words",
> BCP
>      14, RFC 8174, DOI 10.17487/RFC8174, May 2017
> 
> \newline\url{https://nam11.safelinks.protection.outlook.com/?url=http%3A%
> 2F%2Fwww.ietf.org%2Frfc%2Frfc8174.txt&data=05%7C02%7Cparav%40nvidia.
> com%7Cc6ffebfc748f4772784708dddb2a50c9%7C43083d15727340c1b7db39e
> fd9ccc17a%7C0%7C0%7C638907696998232587%7CUnknown%7CTWFpbGZsb
> 3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkF
> OIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=jRjpor%2FkXifPfp
> t7IFBo5JNF4%2FlE8pBsw7CMT4wS%2FRo%3D&reserved=0}\\
> +	\phantomsection\label{intro:rfc3168}\textbf{[RFC3168]} &
> +    S. Floyd., ``The Addition of Explicit Congestion Notification (ECN) to IP'',
> September 2001.
> +
> +\newline\url{https://nam11.safelinks.protection.outlook.com/?url=http%3
> +A%2F%2Fwww.ietf.org%2Frfc%2Frfc3168.txt&data=05%7C02%7Cparav%40nv
> idia.c
> +om%7Cc6ffebfc748f4772784708dddb2a50c9%7C43083d15727340c1b7db39e
> fd9ccc17
> +a%7C0%7C0%7C638907696998249586%7CUnknown%7CTWFpbGZsb3d8eyJ
> FbXB0eU1hcGki
> +OnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIj
> oyfQ%
> +3D%3D%7C0%7C%7C%7C&sdata=q7NaQPhNzVlOz0bGZVTw5ZYWFcq412q8J
> 57YHxTpkMs%3D
> +&reserved=0}\\
>  \end{longtable}
> 
>  \section{Non-Normative References}
> --
> 2.34.1
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.