[tcpm] About having reset reason in TCP option

Jason Xing <kerneljasonxing@gmail.com> Thu, 28 November 2024 01:20 UTC

Return-Path: <kerneljasonxing@gmail.com>
X-Original-To: tcpm@ietfa.amsl.com
Delivered-To: tcpm@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 96CB1C1D4A7F for <tcpm@ietfa.amsl.com>; Wed, 27 Nov 2024 17:20:00 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.105
X-Spam-Level:
X-Spam-Status: No, score=-2.105 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 5AzHm3fEIZfW for <tcpm@ietfa.amsl.com>; Wed, 27 Nov 2024 17:20:00 -0800 (PST)
Received: from mail-io1-xd2e.google.com (mail-io1-xd2e.google.com [IPv6:2607:f8b0:4864:20::d2e]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 14844C1D4A7B for <tcpm@ietf.org>; Wed, 27 Nov 2024 17:20:00 -0800 (PST)
Received: by mail-io1-xd2e.google.com with SMTP id ca18e2360f4ac-841a565f871so8890539f.1 for <tcpm@ietf.org>; Wed, 27 Nov 2024 17:20:00 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1732756799; x=1733361599; darn=ietf.org; h=cc:to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=db9mKV2e6x9tWsZY+ehfgRugLzX2uJngyviHoSoscBA=; b=Ro0IADYCdZ0nV5BKfnNGxXGhCaYR7rMkG2bA2ltmRfLFVFkE8NP+53yjl1Pf7bMn/G 5uSNIsbthFq/u7gQlHPyjjcA16331f54+IunPtEXNrLuWzxwuyS9AMCHV0TEpZwjEX3v TPfWFJv6mfg1/R7/vyRwcNU8fKI8z26TQf9znAGl9aXRj9RLc+bHc5oxYyDGrQmTeJ6s Ha4AMnb8EorJQqk0SeBo6/rPK+GDA1uzVA5q8lTCYV/egF72c6zaBiv2LlErEKAf9VTP iiYvOcoOfVPtbKkXLTwknow9yVheKzZ967xOkIPDKpZ4bPEf2fbpq5DyfHwnrpRSrPX2 sBqw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1732756799; x=1733361599; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=db9mKV2e6x9tWsZY+ehfgRugLzX2uJngyviHoSoscBA=; b=b1SEucoFutHWDJ99G+AmZLiBDlSoSXkBEJNnf3Pqxg8fRmPFK7X3RPAscNmglTNabI sYpMX+ID9Ypd1mUgji6ljOKrbygeJvJyJ4/4arXGicIx3mE4zKPoSFVWlmFlu/IaD4bo qjB9vb5f0nNjzsH5r58JARglYwEineoRccQO6KAStmtATUFfaOSwC+b8T3X3oed/WWLI nNPhCqpmsef1EpupNyXrlDhFh2w+meozehYlCji49UHAQatgC1N5TFrf1Q5Sy3A+XENs f1d0x0BRBMlJHQKRuE9AvDI0xjqRO9+S3IsHW0dVO+5/ciHGMC8vGAuWi9jmIQKE9u4/ CYWA==
X-Gm-Message-State: AOJu0YxQBIecKVw++iGtIeUHPMAdPkJvRewwjVSH966L9+Hx7NgAM12W AR/k73lsNTFEY5ySQOgtCt/b1k5R05LbHexDHQH29b2otBbKUHqxCxXqvxm/bKJJwEqFQ8jRkBa 0o7/0Fb6juyIkfU1coYuiG54tXa6XFAmK
X-Gm-Gg: ASbGncuhRgdeh6inbKM9bXTMKC8FHYS6mQmJW+XSfy6aEI7PflLoBn3cqwgQTzcTrjV GvOSz3SnGPaa4kyqN2uF9Ec2exGGAdA==
X-Google-Smtp-Source: AGHT+IF1feFu/jMRqsi7q4GBEnB4b2tZNhFSajohwh/Wro0cFhpcTcWhxxPrNqts7J54FcZaAcPK+0a8hkSGHHV538U=
X-Received: by 2002:a05:6602:6d16:b0:83b:a47c:dbfd with SMTP id ca18e2360f4ac-843ecfce118mr615738939f.6.1732756798666; Wed, 27 Nov 2024 17:19:58 -0800 (PST)
MIME-Version: 1.0
From: Jason Xing <kerneljasonxing@gmail.com>
Date: Thu, 28 Nov 2024 09:19:22 +0800
Message-ID: <CAL+tcoDXjGiDje_za+ECCu2v3bCJL+MbDbdo_xFq2WzRTG-Ufw@mail.gmail.com>
To: tcpm@ietf.org
Content-Type: text/plain; charset="UTF-8"
Message-ID-Hash: QQFDVQSWTGEZO2FVZC537UB34XKDEPYG
X-Message-ID-Hash: QQFDVQSWTGEZO2FVZC537UB34XKDEPYG
X-MailFrom: kerneljasonxing@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-tcpm.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Eric Dumazet <edumazet@google.com>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [tcpm] About having reset reason in TCP option
List-Id: TCP Maintenance and Minor Extensions Working Group <tcpm.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/tcpm/ZTvLkMeXM-BnvvZ3z68EmniUWls>
List-Archive: <https://mailarchive.ietf.org/arch/browse/tcpm>
List-Help: <mailto:tcpm-request@ietf.org?subject=help>
List-Owner: <mailto:tcpm-owner@ietf.org>
List-Post: <mailto:tcpm@ietf.org>
List-Subscribe: <mailto:tcpm-join@ietf.org>
List-Unsubscribe: <mailto:tcpm-leave@ietf.org>

Hello experts/tcpm-ers :)

I'd like to make a request to write the TCP reset reason feature as a
proposed standard RFC. It's my first time doing this, so if there is
something wrong or inappropriate, please let me know. Thanks in
advance.

The outline of the full draft would be like this:
1. explicitly define each possible reset reason with corresponding and
accurate meaning, say, TCP_LINGER_REASON, which stands for the socket
enables the linger option and then triggers the reset process.
2. negotiate first during a 3-way handshake, like the SACK permitted field.
3. If both sides enable this feature on, then let the sending side
that enters the reset process and puts the specific reset reason into the TCP
option in the RST packet. Then the other side will parse the TCP
option from the RST packet it receives and then detect what is going
on. Also, users
who use tcpdump can get benefits from this without guessing any more.
Default mode could be off.

MPTCP has already implemented this part in the kernel (please see
MPTCP_RST_EUNSPEC), which follows the RFC 8684[1].

I think the final format in TCP could be like [2].

[1]: https://datatracker.ietf.org/doc/html/rfc8684#name-mp_tcprst-reason-codes
[2]: https://datatracker.ietf.org/doc/html/rfc8684#name-subflow-reset

I've privately discussed with Eric, Neal, Yuchung (which are the TCP
maintainers in Linux kernel) before this. Then I'd like to hear more
opinions from this mailing list. Any suggestions are always welcome!!!

Thanks,
Jason