From patchwork Tue Oct 15 10:28:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: "Chia-Yu Chang (Nokia)" X-Patchwork-Id: 13836063 Received: from EUR05-DB8-obe.outbound.protection.outlook.com (mail-db8eur05on2084.outbound.protection.outlook.com [40.107.20.84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5A6914683 for ; Tue, 15 Oct 2024 10:30:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=40.107.20.84 ARC-Seal: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728988210; cv=fail; b=Gij5dufWf1fZdgaND42pDjFDwxsbM7B6qqJiLLGURo9v0H/esPoUrCqZz2iw/XJXsI1uLtODHuH26g9PTD/0a+BBQICBEyTSjq5WjU6Q7RkUvdLiQyHgUW43PgOQMPAs7sAQeDnGuPYe+KKn6pmVwiQotu8nHq8kRsNbBDmiidI= ARC-Message-Signature: i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1728988210; c=relaxed/simple; bh=aqRI2ufGxWxMdy6PCtZw+0GVTJZkdJFYFJBxBfiAiPs=; h=From:To:Cc:Subject:Date:Message-Id:MIME-Version:Content-Type; b=qx+Vw8hi3ZakYjoN92gQU7YTr/DddMrWy5/oE3tkvDAigrzXVnsT0ANtXaC+vt/JpmDwhsM2HFLiRSuKsEe9n2GLBxnWQoZk2uRYC/h6AsepT0Rgm9CL2cXhhrNAs0/fh+7d0hnjZD6dYDrGzyuvzrU9uMWH5/Q6bGrK9Rf2LQg= ARC-Authentication-Results: i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nokia-bell-labs.com; spf=fail smtp.mailfrom=nokia-bell-labs.com; dkim=pass (2048-bit key) header.d=nokia-bell-labs.com header.i=@nokia-bell-labs.com header.b=QXC3sbmI; arc=fail smtp.client-ip=40.107.20.84 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=nokia-bell-labs.com Authentication-Results: smtp.subspace.kernel.org; spf=fail smtp.mailfrom=nokia-bell-labs.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=nokia-bell-labs.com header.i=@nokia-bell-labs.com header.b="QXC3sbmI" ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=KwnR1MRm5wA4Wx9lkyGANfPOatz/scGqfZ4/wJTEoUjuWI0z6SoWcdJb/A27wO819sKaZWwhLHLkJ/hM6dY6L5j/hKelVamcA53tPFd5NFLMYelk91yvfl7YbVfg0fhNYXzaKUMHDmojACxu+kAFUWUUciaNUZXgSzuH66Rh1yMds1axcrnX/K7M/vLiigC+u5dOHJHs3xeQS+Epu9cMBkf+1B4ySQBNmn9g+uHZ8RpwVrufCnbudVPUuUabXEUvBidw3gUqZGYoPTRDfkL+9BmOGt9E5JdBXhKFCNcZfd2dFW/0GjFqxUEKhbKUcwcX75h42qQJ6keClR3egb8N7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QsBdypBk56+RcfmEeCIcYfFEC7Ize0ckJwyLXxxwVLY=; b=jH2FYbnAAu3lx30qyG+AeQHcMwgp4ZnL/JwvHTLYk4mK7IuMFCCRDG1ZuwMAwxKy6SjruPuj0vo5kfznd9DD1Tv6u1FivTnlMluh3VdBqaRRbLdy41GFqCHyYv7ZT7veCmfzlF6N17frtdI5255KQgoA6GaxW49FEdZdoAYP6ApMe5MzPUzLHpZoJRhJYWzvUH3v0Ab0LL1+V0OUrSnTzDv3IXbDEx3mYQleIQLLfzX06qPgrGUsZWnVKb9AnHLxUbTwugYLtH5qgGaVo3qivIwkV1tY3h5e7w4IVxphTpsnPalxxqnupNFiUSFmNLl+9TtJBgcTFaqEVRrLbto46w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=temperror (sender ip is 131.228.6.101) smtp.rcpttodomain=nokia-bell-labs.com smtp.mailfrom=nokia-bell-labs.com; dmarc=temperror action=none header.from=nokia-bell-labs.com; dkim=none (message not signed); arc=none (0) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia-bell-labs.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QsBdypBk56+RcfmEeCIcYfFEC7Ize0ckJwyLXxxwVLY=; b=QXC3sbmICQO952dnefBj4qbSIwanfmREJ17qJIN5IsK1/52Fk+mJin1I0aIVCb+D6mtrcTXqG0KdUrvtvU/11HD41aqtcIqxV9gKxAABPOR+KC5csrcLSRhREWjHLIvNPwUzNO9arhQX7tUBqDQ1evKxgi4euuvsFY5zjLSXLAHIQZLeCdfwU3qkecXKXXqnC6bwUp8fQewXGGckWj68gtaLavjc/F+B+7/PSRa5IFp/M8C0oBVyfX3lER5TFzS3WKreJWlSt4TA1s+Wu2SYW7Cqf/VjJhwLL9BdwedY0Aw+ZlqecSoPJmaj+ckjMxuOed3o0sPYPx/WMjmcfuxPyQ== Received: from DBBPR09CA0003.eurprd09.prod.outlook.com (2603:10a6:10:c0::15) by AS8PR07MB7845.eurprd07.prod.outlook.com (2603:10a6:20b:350::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.27; Tue, 15 Oct 2024 10:30:03 +0000 Received: from DU2PEPF00028D08.eurprd03.prod.outlook.com (2603:10a6:10:c0:cafe::4c) by DBBPR09CA0003.outlook.office365.com (2603:10a6:10:c0::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8048.27 via Frontend Transport; Tue, 15 Oct 2024 10:30:03 +0000 X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is 131.228.6.101) smtp.mailfrom=nokia-bell-labs.com; dkim=none (message not signed) header.d=none;dmarc=temperror action=none header.from=nokia-bell-labs.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of nokia-bell-labs.com: DNS Timeout) Received: from fr712usmtp1.zeu.alcatel-lucent.com (131.228.6.101) by DU2PEPF00028D08.mail.protection.outlook.com (10.167.242.168) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8069.17 via Frontend Transport; Tue, 15 Oct 2024 10:30:02 +0000 Received: from sarah.nbl.nsn-rdnet.net (sarah.nbl.nsn-rdnet.net [10.0.73.150]) by fr712usmtp1.zeu.alcatel-lucent.com (GMO) with ESMTP id 49FATtn4029578; Tue, 15 Oct 2024 10:29:56 GMT From: chia-yu.chang@nokia-bell-labs.com To: netdev@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 Cc: Chia-Yu Chang Subject: [PATCH net-next 00/44] DualPI2, Accurate ECN, TCP Prague patch series Date: Tue, 15 Oct 2024 12:28:56 +0200 Message-Id: <20241015102940.26157-1-chia-yu.chang@nokia-bell-labs.com> X-Mailer: git-send-email 2.34.1 Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PEPF00028D08:EE_|AS8PR07MB7845:EE_ X-MS-Office365-Filtering-Correlation-Id: 4e0d65da-cfd3-44e5-e195-08dced045402 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|376014|7416014|36860700013|82310400026|1800799024|921020; X-Microsoft-Antispam-Message-Info: =?utf-8?q?g2eqO69ek6FUFr9NMWUoA9uwpX6M98Q?= =?utf-8?q?e9Gt1zlyw3NLNBqeyWsteH4KmaRUzPICDUfNBRyQnfvt42SVohBnxU3f4oOt6UITV?= =?utf-8?q?c+8+dSXNx2sDY52hxxE876aruy80OqbMDBAtDLYdM+iWr40z54CYSztzteJgmjQrw?= =?utf-8?q?DCXr4gPgz8MxL6rDba91M7K1yK349eCwVbs51N44ovJc2m/elckCIApl9AUJKi+2s?= =?utf-8?q?EjoEdzBHLjcoaEpHcJLJyor2FsUlp5ainYkIeJS6VTIaXcSn18lzwuZELDoImjBtI?= =?utf-8?q?j0AXQb/6pPVvNgvff2jqXqequp33qRoiN+nK1mV0tkf7aDWR0zJb63VES8dUUg3xB?= =?utf-8?q?S1hfUde1ngnvzRSa79aoFFQelpoblh1UoooZcOERIdzqAf73+NUOsvxzVmUbRM5sm?= =?utf-8?q?tx370asrVPghXorFKDIusO1eTuO/x1cTB1ZGoLX2gDQ7YhUOT2rqcsiDj+VbPzkvz?= =?utf-8?q?jXdHYVmoHGNc628RvqJFZMAqx3LjGZ6ePzU2nFNlWjdlxD21MrXHpCseUhQB+bDKp?= =?utf-8?q?RB51Z4mUpn8m9c10lV4mgzwwMY8Qio/m5DcIdYCoaM/Go/q7e9pIZqW9IiYCO6XdE?= =?utf-8?q?gjl92KlWPdKN5H0igTRmpDHaJ3GLMUUVyc+lDgVlpBLFKZiS+QmWDWH6avLehDrf/?= =?utf-8?q?qNLUDsiDbql01WbyemJOpMgnOILHNmMC87D4wT6SEwEs6z2FHXaObk3p17Kf3c6/2?= =?utf-8?q?PappnYjiH3sEUSlIwB86lxxq+vusY19wwCFvlYVBnyLiCvZ65wp1kMKMMzekK/LSk?= =?utf-8?q?Jmbxw/s99pIbpuZG27oY3k9dfhFTwkuWp/0Mq+dtUuQ/UzGGkNWofou9YnlHNVQk4?= =?utf-8?q?SHVvlZE1vgsKCagqnviimnaAs+JTYtEhPtE8o9jVt93G7wZ3NEpdTbiSetRFw7+zK?= =?utf-8?q?gql6ZugQSb8+JH2ogbS/Mz7rG82ITqQcszwJS0ZDIHoEqwAtO5iEFF+rbyVGZqoxk?= =?utf-8?q?Kj4BLo+FcqVkYfDQ2c7YGRwcD2N5h5xJwZdCtaxEx5u863k+Q9G6TQNj7esKK4dcO?= =?utf-8?q?F9f9KYYLCylt/p2NrGk7QkQsO4FDnjp/CiZEZOM6IeZm9srJNeil6JF/mdzbM9Buu?= =?utf-8?q?IklyA7A5yH/Y9kEh9pYjp+EjBfOoefApbYGl4UVIo1nK1Oci0mLxbbadnZ9ONPbIt?= =?utf-8?q?Og3XpCrkUUzLluOI6gsNF0VlbKrlA6ICeWFd6zPZCQmWDJBYpla5ODcXIAfy0eyZi?= =?utf-8?q?+a215Gs7Z8nskV/7so/5QeiSK8d4neoVs+pZWO4Xuisto4Nx3X2zemQGh/XQFlAOf?= =?utf-8?q?RLwqRUQ/mwoVQ+XgUP49KRbDFKgyj7ykRRfnq20rVOLVxFUNH5MEeRIGXDYblZHmo?= =?utf-8?q?B+ScWIulyz6qFEZ2NFDa77kGJFxjCj2gQw=3D=3D?= X-Forefront-Antispam-Report: CIP:131.228.6.101;CTRY:FI;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:fr712usmtp1.zeu.alcatel-lucent.com;PTR:InfoDomainNonexistent;CAT:NONE;SFS:(13230040)(376014)(7416014)(36860700013)(82310400026)(1800799024)(921020);DIR:OUT;SFP:1101; X-OriginatorOrg: nokia-bell-labs.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2024 10:30:02.3019 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4e0d65da-cfd3-44e5-e195-08dced045402 X-MS-Exchange-CrossTenant-Id: 5d471751-9675-428d-917b-70f44f9630b0 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5d471751-9675-428d-917b-70f44f9630b0;Ip=[131.228.6.101];Helo=[fr712usmtp1.zeu.alcatel-lucent.com] X-MS-Exchange-CrossTenant-AuthSource: DU2PEPF00028D08.eurprd03.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR07MB7845 X-Patchwork-Delegate: kuba@kernel.org From: Chia-Yu Chang Hello, Please find the enclosed patch series covering the L4S (Low Latency, Low Loss, and Scalable Throughput) as outlined in IETF RFC9330: https://datatracker.ietf.org/doc/html/rfc9330 * 1 patch for DualPI2 (cf. IETF RFC9332 https://datatracker.ietf.org/doc/html/rfc9332) * 40 pataches for Accurate ECN (It implements the AccECN protocol in terms of negotiation, feedback, and compliance requirements: https://datatracker.ietf.org/doc/html/draft-ietf-tcpm-accurate-ecn-28) * 3 patches for TCP Prague (It implements the performance and safety requirements listed in Appendix A of IETF RFC9331: https://datatracker.ietf.org/doc/html/rfc9331) Best regagrds, Chia-Yu Chia-Yu Chang (17): tcp: use BIT() macro in include/net/tcp.h net: sysctl: introduce sysctl SYSCTL_FIVE tcp: accecn: AccECN option failure handling tcp: L4S ECT(1) identifier for CC modules tcp: disable RFC3168 fallback identifier for CC modules tcp: accecn: handle unexpected AccECN negotiation feedback tcp: accecn: retransmit downgraded SYN in AccECN negotiation tcp: move increment of num_retrans tcp: accecn: retransmit SYN/ACK without AccECN option or non-AccECN SYN/ACK tcp: accecn: unset ECT if receive or send ACE=0 in AccECN negotiaion tcp: accecn: fallback outgoing half link to non-AccECN tcp: accecn: verify ACE counter in 1st ACK after AccECN negotiation tcp: accecn: stop sending AccECN option when loss ACK with AccECN option Documentation: networking: Update ECN related sysctls tcp: Add tso_segs() CC callback for TCP Prague tcp: Add mss_cache_set_by_ca for CC algorithm to set MSS tcp: Add the TCP Prague congestion control module Ilpo Järvinen (26): tcp: reorganize tcp_in_ack_event() and tcp_count_delivered() tcp: create FLAG_TS_PROGRESS tcp: extend TCP flags to allow AE bit/ACE field tcp: reorganize SYN ECN code tcp: rework {__,}tcp_ecn_check_ce() -> tcp_data_ecn_check() tcp: helpers for ECN mode handling gso: AccECN support gro: prevent ACE field corruption & better AccECN handling tcp: AccECN support to tcp_add_backlog tcp: allow ECN bits in TOS/traffic class tcp: Pass flags to __tcp_send_ack tcp: fast path functions later tcp: AccECN core tcp: accecn: AccECN negotiation tcp: accecn: add AccECN rx byte counters tcp: allow embedding leftover into option padding tcp: accecn: AccECN needs to know delivered bytes tcp: sack option handling improvements tcp: accecn: AccECN option tcp: accecn: AccECN option send control tcp: accecn: AccECN option ceb/cep heuristic tcp: accecn: AccECN ACE field multi-wrap heuristic tcp: accecn: try to fit AccECN option with SACK tcp: try to avoid safer when ACKs are thinned gro: flushing when CWR is set negatively affects AccECN tcp: accecn: Add ece_delta to rate_sample Koen De Schepper (1): sched: Add dualpi2 qdisc Documentation/networking/ip-sysctl.rst | 55 +- include/linux/netdev_features.h | 5 +- include/linux/netdevice.h | 2 + include/linux/skbuff.h | 2 + include/linux/sysctl.h | 17 +- include/linux/tcp.h | 31 +- include/net/inet_ecn.h | 20 +- include/net/netns/ipv4.h | 2 + include/net/tcp.h | 299 +++++-- include/uapi/linux/inet_diag.h | 13 + include/uapi/linux/pkt_sched.h | 34 + include/uapi/linux/tcp.h | 16 +- kernel/sysctl.c | 2 +- net/ethtool/common.c | 1 + net/ipv4/Kconfig | 37 + net/ipv4/Makefile | 1 + net/ipv4/bpf_tcp_ca.c | 2 +- net/ipv4/inet_connection_sock.c | 8 +- net/ipv4/ip_output.c | 3 +- net/ipv4/syncookies.c | 3 + net/ipv4/sysctl_net_ipv4.c | 18 + net/ipv4/tcp.c | 26 +- net/ipv4/tcp_cong.c | 9 +- net/ipv4/tcp_dctcp.c | 2 +- net/ipv4/tcp_dctcp.h | 2 +- net/ipv4/tcp_input.c | 689 ++++++++++++++-- net/ipv4/tcp_ipv4.c | 33 +- net/ipv4/tcp_minisocks.c | 117 ++- net/ipv4/tcp_offload.c | 13 +- net/ipv4/tcp_output.c | 336 +++++++- net/ipv4/tcp_prague.c | 866 ++++++++++++++++++++ net/ipv6/syncookies.c | 1 + net/ipv6/tcp_ipv6.c | 27 +- net/netfilter/nf_log_syslog.c | 8 +- net/sched/Kconfig | 20 + net/sched/Makefile | 1 + net/sched/sch_dualpi2.c | 1046 ++++++++++++++++++++++++ 37 files changed, 3519 insertions(+), 248 deletions(-) create mode 100644 net/ipv4/tcp_prague.c create mode 100644 net/sched/sch_dualpi2.c