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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox