FAILED: patch "[PATCH] mptcp: mib: count MPJ with backup flag" failed to apply to 5.10-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 5.10-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
To reproduce the conflict and resubmit, you may use the following commands:
git fetch https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/ linux-5.10.y
git checkout FETCH_HEAD
git cherry-pick -x 4dde0d72ccec500c60c798e036b852e013d6e124
# <resolve conflicts, build, test, etc.>
git commit -s
git send-email --to '<[email protected]>' --in-reply-to '2024080723-untangled-rogue-da43@gregkh' --subject-prefix 'PATCH 5.10.y' HEAD^..
Possible dependencies:
4dde0d72ccec ("mptcp: mib: count MPJ with backup flag") b3ea6b272d79 ("mptcp: consolidate initial ack seq generation") f3589be0c420 ("mptcp: never shrink offered window")74c7dfbee3e1 ("mptcp: consolidate in_opt sub-options fields in a bitmask") a086aebae0eb ("mptcp: better binary layout for mptcp_options_received") 8d548ea1dd15 ("mptcp: do not set unconditionally csum_reqd on incoming opt") eb7f33654dc1 ("mptcp: add the mibs for MP_FAIL")478d770008b0 ("mptcp: send out MP_FAIL when data checksum fails") 5580d41b758a ("mptcp: MP_FAIL suboption receiving")f444fea7896d ("Merge git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 4dde0d72ccec500c60c798e036b852e013d6e124 Mon Sep 17 00:00:00 2001
From: "Matthieu Baerts (NGI0)" <[email protected]>
Date: Sat, 27 Jul 2024 12:01:26 +0200
Subject: [PATCH] mptcp: mib: count MPJ with backup flag
Without such counters, it is difficult to easily debug issues with MPJ not having the backup flags on production servers.
This is not strictly a fix, but it eases to validate the following patches without requiring to take packet traces, to query ongoing connections with Netlink with admin permissions, or to guess by looking at the behaviour of the packet scheduler. Also, the modification is self contained, isolated, well controlled, and the increments are done just after others, there from the beginning. It looks then safe, and helpful to backport this.
net/mptcp/mib.c +2 -0
@@ -19,7 +19,9 @@ static const struct snmp_mib mptcp_snmp_list[] = {SNMP_MIB_ITEM ("MPTCPRetrans" ,MPTCP_MIB_RETRANSSEGS ),SNMP_MIB_ITEM ("MPJoinNoTokenFound" ,MPTCP_MIB_JOINNOTOKEN ),SNMP_MIB_ITEM ("MPJoinSynRx" ,MPTCP_MIB_JOINSYNRX ), +SNMP_MIB_ITEM ("MPJoinSynBackupRx" ,MPTCP_MIB_JOINSYNBACKUPRX ),SNMP_MIB_ITEM ("MPJoinSynAckRx" ,MPTCP_MIB_JOINSYNACKRX ), +SNMP_MIB_ITEM ("MPJoinSynAckBackupRx" ,MPTCP_MIB_JOINSYNACKBACKUPRX ),SNMP_MIB_ITEM ("MPJoinSynAckHMacFailure" ,MPTCP_MIB_JOINSYNACKMAC ),SNMP_MIB_ITEM ("MPJoinAckRx" ,MPTCP_MIB_JOINACKRX ), SNMP_MIB_ITEM("MPJoinAckHMacFailure", MPTCP_MIB_JOINACKMAC),
net/mptcp/mib.h +2 -0
@@ -14,7 +14,9 @@ enum linux_mptcp_mib_field {MPTCP_MIB_RETRANSSEGS ,/* Segments retransmitted at the MPTCP-level */ MPTCP_MIB_JOINNOTOKEN ,/* Received MP_JOIN but the token was not found */ MPTCP_MIB_JOINSYNRX ,/* Received a SYN + MP_JOIN */ +MPTCP_MIB_JOINSYNBACKUPRX ,/* Received a SYN + MP_JOIN + backup flag */ MPTCP_MIB_JOINSYNACKRX ,/* Received a SYN/ACK + MP_JOIN */ +MPTCP_MIB_JOINSYNACKBACKUPRX ,/* Received a SYN/ACK + MP_JOIN + backup flag */ MPTCP_MIB_JOINSYNACKMAC ,/* HMAC was wrong on SYN/ACK + MP_JOIN */ MPTCP_MIB_JOINACKRX ,/* Received an ACK + MP_JOIN */ MPTCP_MIB_JOINACKMAC, /* HMAC was wrong on ACK + MP_JOIN */
net/mptcp/subflow.c +6 -0
@@ -168,6 +168,9 @@ static int subflow_check_req(struct request_sock *req,return 0 ; }else if (opt_mp_join) {SUBFLOW_REQ_INC_STATS (req,MPTCP_MIB_JOINSYNRX ); + +if (mp_opt.backup) +SUBFLOW_REQ_INC_STATS (req,MPTCP_MIB_JOINSYNBACKUPRX ); }if (opt_mp_capable && listener->request_mptcp) {
@@ -577,6 +580,9 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb) subflow->mp_join =1 ;MPTCP_INC_STATS (sock_net (sk),MPTCP_MIB_JOINSYNACKRX ); +if (subflow->backup) +MPTCP_INC_STATS (sock_net (sk),MPTCP_MIB_JOINSYNACKBACKUPRX ); +if (subflow_use_different_dport (msk, sk)) { pr_debug("synack inet_dport=%d %d", ntohs(inet_sk(sk)->inet_dport),
Matthieu Baerts (NGI0)
maintainerPATCH 1/1 mptcp: mib: count MPJ with backup flag
commit 4dde0d72ccec500c60c798e036b852e013d6e124 upstream.
Without such counters, it is difficult to easily debug issues with MPJ not having the backup flags on production servers.
This is not strictly a fix, but it eases to validate the following patches without requiring to take packet traces, to query ongoing connections with Netlink with admin permissions, or to guess by looking at the behaviour of the packet scheduler. Also, the modification is self contained, isolated, well controlled, and the increments are done just after others, there from the beginning. It looks then safe, and helpful to backport this.
[ Conflicts in subflow.c because the context has changed in
commit b3ea6b272d79 ("mptcp: consolidate initial ack seq generation") and commit 5bc56388c74f ("mptcp: add port number check for MP_JOIN") which are not in this version. These commits are unrelated to this modification. ]
--- net/mptcp/mib.c | 2 ++ net/mptcp/mib.h | 2 ++ net/mptcp/subflow.c | 6 ++++++ 3 files changed, 10 insertions(+)
net/mptcp/mib.c +2 -0
@@ -16,7 +16,9 @@ static const struct snmp_mib mptcp_snmp_list[] = {SNMP_MIB_ITEM ("MPTCPRetrans" ,MPTCP_MIB_RETRANSSEGS ),SNMP_MIB_ITEM ("MPJoinNoTokenFound" ,MPTCP_MIB_JOINNOTOKEN ),SNMP_MIB_ITEM ("MPJoinSynRx" ,MPTCP_MIB_JOINSYNRX ), +SNMP_MIB_ITEM ("MPJoinSynBackupRx" ,MPTCP_MIB_JOINSYNBACKUPRX ),SNMP_MIB_ITEM ("MPJoinSynAckRx" ,MPTCP_MIB_JOINSYNACKRX ), +SNMP_MIB_ITEM ("MPJoinSynAckBackupRx" ,MPTCP_MIB_JOINSYNACKBACKUPRX ),SNMP_MIB_ITEM ("MPJoinSynAckHMacFailure" ,MPTCP_MIB_JOINSYNACKMAC ),SNMP_MIB_ITEM ("MPJoinAckRx" ,MPTCP_MIB_JOINACKRX ), SNMP_MIB_ITEM("MPJoinAckHMacFailure", MPTCP_MIB_JOINACKMAC),
net/mptcp/mib.h +2 -0
@@ -9,7 +9,9 @@ enum linux_mptcp_mib_field {MPTCP_MIB_RETRANSSEGS ,/* Segments retransmitted at the MPTCP-level */ MPTCP_MIB_JOINNOTOKEN ,/* Received MP_JOIN but the token was not found */ MPTCP_MIB_JOINSYNRX ,/* Received a SYN + MP_JOIN */ +MPTCP_MIB_JOINSYNBACKUPRX ,/* Received a SYN + MP_JOIN + backup flag */ MPTCP_MIB_JOINSYNACKRX ,/* Received a SYN/ACK + MP_JOIN */ +MPTCP_MIB_JOINSYNACKBACKUPRX ,/* Received a SYN/ACK + MP_JOIN + backup flag */ MPTCP_MIB_JOINSYNACKMAC ,/* HMAC was wrong on SYN/ACK + MP_JOIN */ MPTCP_MIB_JOINACKRX ,/* Received an ACK + MP_JOIN */ MPTCP_MIB_JOINACKMAC, /* HMAC was wrong on ACK + MP_JOIN */
net/mptcp/subflow.c +6 -0
@@ -135,6 +135,9 @@ static void subflow_init_req(struct request_sock *req,return ; }else if (mp_opt.mp_join) {SUBFLOW_REQ_INC_STATS (req,MPTCP_MIB_JOINSYNRX ); + +if (mp_opt.backup) +SUBFLOW_REQ_INC_STATS (req,MPTCP_MIB_JOINSYNBACKUPRX ); }if (mp_opt.mp_capable && listener->request_mptcp) {
@@ -347,6 +350,9 @@ static void subflow_finish_connect(struct sock *sk, const struct sk_buff *skb) subflow->mp_join =1 ;MPTCP_INC_STATS (sock_net (sk),MPTCP_MIB_JOINSYNACKRX ); + +if (subflow->backup) +MPTCP_INC_STATS (sock_net (sk),MPTCP_MIB_JOINSYNACKBACKUPRX ); }else if (mptcp_check_fallback (sk)) { fallback:mptcp_rcv_space_init (mptcp_sk (parent), sk);
Signature · 1 line
2.45.2
Patch "mptcp: mib: count MPJ with backup flag" has been added to the 5.10-stable tree
This is a note to let you know that I've just added the patch titled
mptcp: mib: count MPJ with backup flag
to the 5.10-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mptcp-mib-count-mpj-with-backup-flag.patch
and it can be found in the queue-5.10 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
From [email protected] Fri Aug 9 12:55:30 2024
From: "Matthieu Baerts (NGI0)" <[email protected]>
Date: Fri, 9 Aug 2024 12:55:15 +0200
Subject: mptcp: mib: count MPJ with backup flag
To: [email protected], [email protected]
Cc: MPTCP Upstream <[email protected]>, "Matthieu Baerts (NGI0)" <[email protected]>, Mat Martineau <[email protected]>, Paolo Abeni <[email protected]>
Message-ID: <[email protected]>
From: "Matthieu Baerts (NGI0)" <[email protected]>
commit 4dde0d72ccec500c60c798e036b852e013d6e124 upstream.
Without such counters, it is difficult to easily debug issues with MPJ not having the backup flags on production servers.
This is not strictly a fix, but it eases to validate the following patches without requiring to take packet traces, to query ongoing connections with Netlink with admin permissions, or to guess by looking at the behaviour of the packet scheduler. Also, the modification is self contained, isolated, well controlled, and the increments are done just after others, there from the beginning. It looks then safe, and helpful to backport this.
[ Conflicts in subflow.c because the context has changed in
commit b3ea6b272d79 ("mptcp: consolidate initial ack seq generation") and commit 5bc56388c74f ("mptcp: add port number check for MP_JOIN") which are not in this version. These commits are unrelated to this modification. ]
--- net/mptcp/mib.c | 2 ++ net/mptcp/mib.h | 2 ++ net/mptcp/subflow.c | 6 ++++++ 3 files changed, 10 insertions(+)
net/mptcp/mib.c +2 -0
@@ -16,7 +16,9 @@ static const struct snmp_mib mptcp_snmp_SNMP_MIB_ITEM ("MPTCPRetrans" ,MPTCP_MIB_RETRANSSEGS ),SNMP_MIB_ITEM ("MPJoinNoTokenFound" ,MPTCP_MIB_JOINNOTOKEN ),SNMP_MIB_ITEM ("MPJoinSynRx" ,MPTCP_MIB_JOINSYNRX ), +SNMP_MIB_ITEM ("MPJoinSynBackupRx" ,MPTCP_MIB_JOINSYNBACKUPRX ),SNMP_MIB_ITEM ("MPJoinSynAckRx" ,MPTCP_MIB_JOINSYNACKRX ), +SNMP_MIB_ITEM ("MPJoinSynAckBackupRx" ,MPTCP_MIB_JOINSYNACKBACKUPRX ),SNMP_MIB_ITEM ("MPJoinSynAckHMacFailure" ,MPTCP_MIB_JOINSYNACKMAC ),SNMP_MIB_ITEM ("MPJoinAckRx" ,MPTCP_MIB_JOINACKRX ), SNMP_MIB_ITEM("MPJoinAckHMacFailure", MPTCP_MIB_JOINACKMAC),
net/mptcp/mib.h +2 -0
@@ -9,7 +9,9 @@ enum linux_mptcp_mib_field {MPTCP_MIB_RETRANSSEGS ,/* Segments retransmitted at the MPTCP-level */ MPTCP_MIB_JOINNOTOKEN ,/* Received MP_JOIN but the token was not found */ MPTCP_MIB_JOINSYNRX ,/* Received a SYN + MP_JOIN */ +MPTCP_MIB_JOINSYNBACKUPRX ,/* Received a SYN + MP_JOIN + backup flag */ MPTCP_MIB_JOINSYNACKRX ,/* Received a SYN/ACK + MP_JOIN */ +MPTCP_MIB_JOINSYNACKBACKUPRX ,/* Received a SYN/ACK + MP_JOIN + backup flag */ MPTCP_MIB_JOINSYNACKMAC ,/* HMAC was wrong on SYN/ACK + MP_JOIN */ MPTCP_MIB_JOINACKRX ,/* Received an ACK + MP_JOIN */ MPTCP_MIB_JOINACKMAC, /* HMAC was wrong on ACK + MP_JOIN */
net/mptcp/subflow.c +6 -0
@@ -135,6 +135,9 @@ static void subflow_init_req(struct requreturn ; }else if (mp_opt.mp_join) {SUBFLOW_REQ_INC_STATS (req,MPTCP_MIB_JOINSYNRX ); + +if (mp_opt.backup) +SUBFLOW_REQ_INC_STATS (req,MPTCP_MIB_JOINSYNBACKUPRX ); }if (mp_opt.mp_capable && listener->request_mptcp) {
@@ -347,6 +350,9 @@ static void subflow_finish_connect(struc subflow->mp_join =1 ;MPTCP_INC_STATS (sock_net (sk),MPTCP_MIB_JOINSYNACKRX ); + +if (subflow->backup) +MPTCP_INC_STATS (sock_net (sk),MPTCP_MIB_JOINSYNACKBACKUPRX ); }else if (mptcp_check_fallback (sk)) { fallback:mptcp_rcv_space_init (mptcp_sk (parent), sk);
Patches currently in stable-queue which might be from [email protected] are
queue-5.10/mptcp-fix-nl-pm-announced-address-accounting.patch queue-5.10/mptcp-distinguish-rcv-vs-sent-backup-flag-in-requests.patch queue-5.10/mptcp-pm-fix-backup-support-in-signal-endpoints.patch queue-5.10/mptcp-mib-count-mpj-with-backup-flag.patch queue-5.10/mptcp-sched-check-both-directions-for-backup.patch queue-5.10/mptcp-export-local_address.patch