From: Paolo Abeni <pabeni@redhat.com>
To: chia-yu.chang@nokia-bell-labs.com, edumazet@google.com,
parav@nvidia.com, linux-doc@vger.kernel.org, corbet@lwn.net,
horms@kernel.org, dsahern@kernel.org, kuniyu@google.com,
bpf@vger.kernel.org, netdev@vger.kernel.org, dave.taht@gmail.com,
jhs@mojatatu.com, kuba@kernel.org, stephen@networkplumber.org,
xiyou.wangcong@gmail.com, jiri@resnulli.us, davem@davemloft.net,
andrew+netdev@lunn.ch, donald.hunter@gmail.com, ast@fiberby.net,
liuhangbin@gmail.com, shuah@kernel.org,
linux-kselftest@vger.kernel.org, ij@kernel.org,
ncardwell@google.com, koen.de_schepper@nokia-bell-labs.com,
g.white@cablelabs.com, ingemar.s.johansson@ericsson.com,
mirja.kuehlewind@ericsson.com, cheshire@apple.com,
rs.ietf@gmx.at, Jason_Livingood@comcast.com,
vidhi_goel@apple.com
Subject: Re: [PATCH v6 net-next 10/14] tcp: accecn: retransmit SYN/ACK without AccECN option or non-AccECN SYN/ACK
Date: Tue, 18 Nov 2025 14:58:56 +0100 [thread overview]
Message-ID: <769c1ba6-b622-402e-a615-dffa6f3d640c@redhat.com> (raw)
In-Reply-To: <20251114071345.10769-11-chia-yu.chang@nokia-bell-labs.com>
On 11/14/25 8:13 AM, chia-yu.chang@nokia-bell-labs.com wrote:
> From: Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com>
>
> For Accurate ECN, the first SYN/ACK sent by the TCP server shall set the
> ACE flag (see Table 1 of RFC9768) and the AccECN option to complete the
> capability negotiation. However, if the TCP server needs to retransmit such
> a SYN/ACK (for example, because it did not receive an ACK acknowledging its
> SYN/ACK, or received a second SYN requesting AccECN support), the TCP server
> retransmits the SYN/ACK without the AccECN option. This is because the
> SYN/ACK may be lost due to congestion, or a middlebox may block the AccECN
> option. Furthermore, if this retransmission also times out, to expedite
> connection establishment, the TCP server should retransmit the SYN/ACK with
> (AE,CWR,ECE) = (0,0,0) and without the AccECN option, while maintaining
> AccECN feedback mode.
>
> This complies with Section 3.2.3.2.2 of the AccECN specification (RFC9768).
>
> Signed-off-by: Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com>
>
> ---
> v6:
> - Use new synack_type TCP_SYNACK_RETRANS and num_retrans.
> ---
> include/net/tcp_ecn.h | 20 ++++++++++++++------
> net/ipv4/tcp_output.c | 4 ++--
> 2 files changed, 16 insertions(+), 8 deletions(-)
>
> diff --git a/include/net/tcp_ecn.h b/include/net/tcp_ecn.h
> index a709fb1756eb..57841dfa6705 100644
> --- a/include/net/tcp_ecn.h
> +++ b/include/net/tcp_ecn.h
> @@ -649,12 +649,20 @@ static inline void tcp_ecn_clear_syn(struct sock *sk, struct sk_buff *skb)
> }
>
> static inline void
> -tcp_ecn_make_synack(const struct request_sock *req, struct tcphdr *th)
> -{
> - if (tcp_rsk(req)->accecn_ok)
> - tcp_accecn_echo_syn_ect(th, tcp_rsk(req)->syn_ect_rcv);
> - else if (inet_rsk(req)->ecn_ok)
> - th->ece = 1;
> +tcp_ecn_make_synack(const struct request_sock *req, struct tcphdr *th,
> + enum tcp_synack_type synack_type)
> +{
> + // num_retrans will be incresaed after tcp_ecn_make_synack()
Please use /* */ for comments
> + if (!req->num_retrans) {
It's unclear you this function receives a `synack_type` argument and
don't use it. Should the above be
if (synack_type != TCP_SYNACK_RETRANS) {
?
Or just remove such argument.
/P
next prev parent reply other threads:[~2025-11-18 13:59 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-14 7:13 [PATCH v6 net-next 00/14] AccECN protocol case handling series chia-yu.chang
2025-11-14 7:13 ` [PATCH v6 net-next 01/14] tcp: try to avoid safer when ACKs are thinned chia-yu.chang
2025-11-14 7:13 ` [PATCH v6 net-next 02/14] gro: flushing when CWR is set negatively affects AccECN chia-yu.chang
2025-11-14 7:13 ` [PATCH v6 net-next 03/14] net: update commnets for SKB_GSO_TCP_ECN and SKB_GSO_TCP_ACCECN chia-yu.chang
2025-11-18 12:02 ` Paolo Abeni
2025-11-19 10:24 ` Chia-Yu Chang (Nokia)
2025-11-19 10:40 ` Paolo Abeni
2025-11-19 10:43 ` Paolo Abeni
2025-11-19 11:22 ` Chia-Yu Chang (Nokia)
2025-11-26 8:48 ` Chia-Yu Chang (Nokia)
2025-11-14 7:13 ` [PATCH v6 net-next 04/14] selftests/net: gro: add self-test for TCP CWR flag chia-yu.chang
2025-11-18 12:14 ` Paolo Abeni
2025-11-14 7:13 ` [PATCH v6 net-next 05/14] tcp: ECT_1_NEGOTIATION and NEEDS_ACCECN identifiers chia-yu.chang
2025-11-18 12:30 ` Paolo Abeni
2025-11-14 7:13 ` [PATCH v6 net-next 06/14] tcp: disable RFC3168 fallback identifier for CC modules chia-yu.chang
2025-11-14 7:13 ` [PATCH v6 net-next 07/14] tcp: accecn: handle unexpected AccECN negotiation feedback chia-yu.chang
2025-11-14 7:13 ` [PATCH v6 net-next 08/14] tcp: accecn: retransmit downgraded SYN in AccECN negotiation chia-yu.chang
2025-11-14 7:13 ` [PATCH v6 net-next 09/14] tcp: add TCP_SYNACK_RETRANS synack_type chia-yu.chang
2025-11-18 12:32 ` Paolo Abeni
2025-11-14 7:13 ` [PATCH v6 net-next 10/14] tcp: accecn: retransmit SYN/ACK without AccECN option or non-AccECN SYN/ACK chia-yu.chang
2025-11-18 13:58 ` Paolo Abeni [this message]
2025-11-19 10:32 ` Chia-Yu Chang (Nokia)
2025-11-14 7:13 ` [PATCH v6 net-next 11/14] tcp: accecn: unset ECT if receive or send ACE=0 in AccECN negotiaion chia-yu.chang
2025-11-14 7:13 ` [PATCH v6 net-next 12/14] tcp: accecn: fallback outgoing half link to non-AccECN chia-yu.chang
2025-11-14 7:13 ` [PATCH v6 net-next 13/14] tcp: accecn: detect loss ACK w/ AccECN option and add TCP_ACCECN_OPTION_PERSIST chia-yu.chang
2025-11-14 7:13 ` [PATCH v6 net-next 14/14] tcp: accecn: enable AccECN chia-yu.chang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=769c1ba6-b622-402e-a615-dffa6f3d640c@redhat.com \
--to=pabeni@redhat.com \
--cc=Jason_Livingood@comcast.com \
--cc=andrew+netdev@lunn.ch \
--cc=ast@fiberby.net \
--cc=bpf@vger.kernel.org \
--cc=cheshire@apple.com \
--cc=chia-yu.chang@nokia-bell-labs.com \
--cc=corbet@lwn.net \
--cc=dave.taht@gmail.com \
--cc=davem@davemloft.net \
--cc=donald.hunter@gmail.com \
--cc=dsahern@kernel.org \
--cc=edumazet@google.com \
--cc=g.white@cablelabs.com \
--cc=horms@kernel.org \
--cc=ij@kernel.org \
--cc=ingemar.s.johansson@ericsson.com \
--cc=jhs@mojatatu.com \
--cc=jiri@resnulli.us \
--cc=koen.de_schepper@nokia-bell-labs.com \
--cc=kuba@kernel.org \
--cc=kuniyu@google.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=liuhangbin@gmail.com \
--cc=mirja.kuehlewind@ericsson.com \
--cc=ncardwell@google.com \
--cc=netdev@vger.kernel.org \
--cc=parav@nvidia.com \
--cc=rs.ietf@gmx.at \
--cc=shuah@kernel.org \
--cc=stephen@networkplumber.org \
--cc=vidhi_goel@apple.com \
--cc=xiyou.wangcong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.