[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAL+tcoB-12pUS0adK8M_=C97aXewYYmDA6rJKLXvAXEHvEsWjA@mail.gmail.com>
Date: Wed, 31 Jul 2024 08:09:42 +0800
From: Jason Xing <kerneljasonxing@...il.com>
To: Kuniyuki Iwashima <kuniyu@...zon.com>
Cc: davem@...emloft.net, dsahern@...nel.org, edumazet@...gle.com,
kernelxing@...cent.com, kuba@...nel.org, netdev@...r.kernel.org,
pabeni@...hat.com
Subject: Re: [PATCH net-next 5/6] tcp: rstreason: introduce
SK_RST_REASON_TCP_TIMEOUT for active reset
On Wed, Jul 31, 2024 at 4:00 AM Kuniyuki Iwashima <kuniyu@...zon.com> wrote:
>
> From: Jason Xing <kerneljasonxing@...il.com>
> Date: Tue, 30 Jul 2024 21:35:12 +0800
> > From: Jason Xing <kernelxing@...cent.com>
> >
> > Only when user sets TCP_USER_TIMEOUT option and there is no left
> > chance to proceed, we will send an RST to the other side.
> >
> > Signed-off-by: Jason Xing <kernelxing@...cent.com>
> > ---
> > include/net/rstreason.h | 7 +++++++
> > net/ipv4/tcp_timer.c | 2 +-
> > 2 files changed, 8 insertions(+), 1 deletion(-)
> >
> > diff --git a/include/net/rstreason.h b/include/net/rstreason.h
> > index fecaa57f1634..ca10aaebd768 100644
> > --- a/include/net/rstreason.h
> > +++ b/include/net/rstreason.h
> > @@ -21,6 +21,7 @@
> > FN(TCP_ABORT_ON_LINGER) \
> > FN(TCP_ABORT_ON_MEMORY) \
> > FN(TCP_STATE) \
> > + FN(TCP_TIMEOUT) \
> > FN(MPTCP_RST_EUNSPEC) \
> > FN(MPTCP_RST_EMPTCP) \
> > FN(MPTCP_RST_ERESOURCE) \
> > @@ -108,6 +109,12 @@ enum sk_rst_reason {
> > * Please see RFC 793 for all possible reset conditions
> > */
> > SK_RST_REASON_TCP_STATE,
> > + /**
> > + * @SK_RST_REASON_TCP_TIMEOUT: time to timeout
> > + * When user sets TCP_USER_TIMEOUT options and run out of all the
> > + * chance, we have to reset the connection
> > + */
> > + SK_RST_REASON_TCP_TIMEOUT,
>
> nit: Maybe SK_RST_REASON_TCP_USER_TIMEOUT ?
>
> It's more user-friendly.
Oh, after you reminding me, I double-check this part and find this
changelog is not that right because there is the other case where user
doesn't set TCP_USER_TIMEOUT option:
"user_timeout == 0 && icsk->icsk_probes_out >= keepalive_probes(tp)"
in tcp_keepalive_timer().
I will correct my comment as well.
I think I can keep SK_RST_REASON_TCP_STATE instead of
SK_RST_REASON_TCP_USER_TIMEOUT to show "we already try as many times
as we can whether TCP_USER_TIMEOUT option is set or not, but we have
to reset".
Thanks,
Jason
Powered by blists - more mailing lists