Message ID | 20241015102940.26157-1-chia-yu.chang@nokia-bell-labs.com (mailing list archive) |
---|---|
Headers | show |
Series | DualPI2, Accurate ECN, TCP Prague patch series | expand |
On 10/15/24 12:28, chia-yu.chang@nokia-bell-labs.com wrote: > From: Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com> > > 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 I haven't looked into the series yet, and I doubt I'll be able to do that anytime soon, but you must have a good read of the netdev process before any other action, specifically: https://elixir.bootlin.com/linux/v6.11.3/source/Documentation/process/maintainer-netdev.rst#L351 and https://elixir.bootlin.com/linux/v6.11.3/source/Documentation/process/maintainer-netdev.rst#L15 Just to be clear: splitting the series into 3 and posting all of them together will not be good either. Thanks, Paolo
We had several internal review rounds, that were specifically making sure it is in line with the processes/guidelines you are referring to. DualPI2 and TCP-Prague are new modules mostly in a separate file. ACC_ECN unfortunately involves quite some changes in different files with different functionalities and were split into manageable smaller incremental chunks according to the guidelines, ending up in 40 patches. Good thing is that they are small and should be easily processable. It could be split in these 3 features, but would still involve all the ACC_ECN as preferably one patch set. On top of that the 3 TCP-Prague patches rely on the 40 ACC_ECN, so preferably we keep them together too... The 3 functions are used and tested in many kernels. Initial development started from 3.16 to 4.x, 5.x and recently also in the 6.x kernels. So, the code should be pretty mature (at least from a functionality and stability point of view). Koen. -----Original Message----- From: Paolo Abeni <pabeni@redhat.com> Sent: Tuesday, October 15, 2024 12:51 PM To: Chia-Yu Chang (Nokia) <chia-yu.chang@nokia-bell-labs.com>; netdev@vger.kernel.org; ij@kernel.org; ncardwell@google.com; Koen De Schepper (Nokia) <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 net-next 00/44] DualPI2, Accurate ECN, TCP Prague patch series CAUTION: This is an external email. Please be very careful when clicking links or opening attachments. See the URL nok.it/ext for additional information. On 10/15/24 12:28, chia-yu.chang@nokia-bell-labs.com wrote: > From: Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com> > > 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 I haven't looked into the series yet, and I doubt I'll be able to do that anytime soon, but you must have a good read of the netdev process before any other action, specifically: https://elixir.bootlin.com/linux/v6.11.3/source/Documentation/process/maintainer-netdev.rst#L351 and https://elixir.bootlin.com/linux/v6.11.3/source/Documentation/process/maintainer-netdev.rst#L15 Just to be clear: splitting the series into 3 and posting all of them together will not be good either. Thanks, Paolo
On 10/15/24 5:14 PM, Koen De Schepper (Nokia) wrote: > We had several internal review rounds, that were specifically making sure it is in line with the processes/guidelines you are referring to. > > DualPI2 and TCP-Prague are new modules mostly in a separate file. ACC_ECN unfortunately involves quite some changes in different files with different functionalities and were split into manageable smaller incremental chunks according to the guidelines, ending up in 40 patches. Good thing is that they are small and should be easily processable. It could be split in these 3 features, but would still involve all the ACC_ECN as preferably one patch set. On top of that the 3 TCP-Prague patches rely on the 40 ACC_ECN, so preferably we keep them together too... > > The 3 functions are used and tested in many kernels. Initial development started from 3.16 to 4.x, 5.x and recently also in the 6.x kernels. So, the code should be pretty mature (at least from a functionality and stability point of view). We want bisection to be able to work all the time. This is a must. That means that you should be able to split a series in arbitrary chunks. If you take the first 15 patches, and end up with a kernel that breaks, then something is wrong. Make sure to CC edumazet@google.com next time. Thank you. > Koen. > > -----Original Message----- > From: Paolo Abeni <pabeni@redhat.com> > Sent: Tuesday, October 15, 2024 12:51 PM > To: Chia-Yu Chang (Nokia) <chia-yu.chang@nokia-bell-labs.com>; netdev@vger.kernel.org; ij@kernel.org; ncardwell@google.com; Koen De Schepper (Nokia) <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 net-next 00/44] DualPI2, Accurate ECN, TCP Prague patch series > > > CAUTION: This is an external email. Please be very careful when clicking links or opening attachments. See the URL nok.it/ext for additional information. > > > > On 10/15/24 12:28, chia-yu.chang@nokia-bell-labs.com wrote: >> From: Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com> >> >> 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 > I haven't looked into the series yet, and I doubt I'll be able to do that anytime soon, but you must have a good read of the netdev process before any other action, specifically: > > https://elixir.bootlin.com/linux/v6.11.3/source/Documentation/process/maintainer-netdev.rst#L351 > > and > > https://elixir.bootlin.com/linux/v6.11.3/source/Documentation/process/maintainer-netdev.rst#L15 > > Just to be clear: splitting the series into 3 and posting all of them together will not be good either. > > Thanks, > > Paolo > >
We will split into several chunks to follow this guideline and make sure Eric in CC'ed. Thanks. Chia-Yu -----Original Message----- From: Eric Dumazet <eric.dumazet@gmail.com> Sent: Tuesday, October 15, 2024 7:53 PM To: Koen De Schepper (Nokia) <koen.de_schepper@nokia-bell-labs.com>; Paolo Abeni <pabeni@redhat.com>; Chia-Yu Chang (Nokia) <chia-yu.chang@nokia-bell-labs.com>; netdev@vger.kernel.org; ij@kernel.org; ncardwell@google.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; edumazet@google.com Subject: Re: [PATCH net-next 00/44] DualPI2, Accurate ECN, TCP Prague patch series CAUTION: This is an external email. Please be very careful when clicking links or opening attachments. See the URL nok.it/ext for additional information. On 10/15/24 5:14 PM, Koen De Schepper (Nokia) wrote: > We had several internal review rounds, that were specifically making sure it is in line with the processes/guidelines you are referring to. > > DualPI2 and TCP-Prague are new modules mostly in a separate file. ACC_ECN unfortunately involves quite some changes in different files with different functionalities and were split into manageable smaller incremental chunks according to the guidelines, ending up in 40 patches. Good thing is that they are small and should be easily processable. It could be split in these 3 features, but would still involve all the ACC_ECN as preferably one patch set. On top of that the 3 TCP-Prague patches rely on the 40 ACC_ECN, so preferably we keep them together too... > > The 3 functions are used and tested in many kernels. Initial development started from 3.16 to 4.x, 5.x and recently also in the 6.x kernels. So, the code should be pretty mature (at least from a functionality and stability point of view). We want bisection to be able to work all the time. This is a must. That means that you should be able to split a series in arbitrary chunks. If you take the first 15 patches, and end up with a kernel that breaks, then something is wrong. Make sure to CC edumazet@google.com next time. Thank you. > Koen. > > -----Original Message----- > From: Paolo Abeni <pabeni@redhat.com> > Sent: Tuesday, October 15, 2024 12:51 PM > To: Chia-Yu Chang (Nokia) <chia-yu.chang@nokia-bell-labs.com>; > netdev@vger.kernel.org; ij@kernel.org; ncardwell@google.com; Koen De > Schepper (Nokia) <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 net-next 00/44] DualPI2, Accurate ECN, TCP Prague > patch series > > > CAUTION: This is an external email. Please be very careful when clicking links or opening attachments. See the URL nok.it/ext for additional information. > > > > On 10/15/24 12:28, chia-yu.chang@nokia-bell-labs.com wrote: >> From: Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com> >> >> 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 > I haven't looked into the series yet, and I doubt I'll be able to do that anytime soon, but you must have a good read of the netdev process before any other action, specifically: > > https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Felix > ir.bootlin.com%2Flinux%2Fv6.11.3%2Fsource%2FDocumentation%2Fprocess%2F > maintainer-netdev.rst%23L351&data=05%7C02%7Cchia-yu.chang%40nokia-bell > -labs.com%7Cd3d50c18d3fd483af47908dced4228e5%7C5d4717519675428d917b70f > 44f9630b0%7C0%7C0%7C638646115617608802%7CUnknown%7CTWFpbGZsb3d8eyJWIjo > iMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C% > 7C&sdata=4ZRJsQYIsYDrKQV1olJEcrcY7uZ%2Bg7CPhR4lWWPDsL0%3D&reserved=0 > > and > > https://eur03.safelinks.protection.outlook.com/?url=https%3A%2F%2Felix > ir.bootlin.com%2Flinux%2Fv6.11.3%2Fsource%2FDocumentation%2Fprocess%2F > maintainer-netdev.rst%23L15&data=05%7C02%7Cchia-yu.chang%40nokia-bell- > labs.com%7Cd3d50c18d3fd483af47908dced4228e5%7C5d4717519675428d917b70f4 > 4f9630b0%7C0%7C0%7C638646115617637044%7CUnknown%7CTWFpbGZsb3d8eyJWIjoi > MC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C0%7C%7C%7 > C&sdata=Yc3mqMnAOICPRzhPzRPbFmkOsuPReaBIgpZvtZaLPvc%3D&reserved=0 > > Just to be clear: splitting the series into 3 and posting all of them together will not be good either. > > Thanks, > > Paolo > >
From: Chia-Yu Chang <chia-yu.chang@nokia-bell-labs.com> 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