RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Bug 1984733 - [iproute][mptcp] please add set_flags and set_port
Summary: [iproute][mptcp] please add set_flags and set_port
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 8
Classification: Red Hat
Component: iproute
Version: 8.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: beta
: ---
Assignee: Andrea Claudi
QA Contact: xmu
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2021-07-22 04:04 UTC by xmu
Modified: 2023-02-22 03:47 UTC (History)
4 users (show)

Fixed In Version: iproute-5.12.0-3.el8
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2021-11-09 19:37:07 UTC
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2021:4389 0 None None None 2021-11-09 19:37:23 UTC

Description xmu 2021-07-22 04:04:27 UTC
Description of problem:

please add set_flags and set_port for "ip mptcp", which are similar with pm_ml_ctl in mptcp kselftest.

like:
ip mptcp endpoint add ADDRESS [ dev NAME ] [ id ID ] [ FLAG-LIST ] [PORT]

ip mptcp endpoint set ADDRESS [backup|nobackup]

Version-Release number of selected component (if applicable):
iproute-5.12.0-1.el8.x86_64

How reproducible:
always

Steps to Reproduce:
1.ip mptcp help
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Andrea Claudi 2021-08-09 13:21:13 UTC
Hi Mingyu, can you please consider to set itm and qa_ack+ for this issue? Thanks in advance!

Comment 6 xmu 2021-08-20 07:55:07 UTC
I checked the patch for this bug:
 mptcp: add support for port based endpoint (Andrea Claudi) [1984733]


add_addr_ports_tests_iproute(){
	# signal address with port
	reset
	ip netns exec $ns1 ip mptcp limits set add_addr_accepted 0 subflows 1
	ip netns exec $ns2 ip mptcp limits set add_addr_accepted 1 subflows 1
	ip netns exec $ns1 ip mptcp endpoint add 10.0.2.1 port 10100 signal
	run_tests $ns1 $ns2 10.0.1.1
	chk_join_nr "signal address with port" 1 1 1
	chk_add_nr 1 1 1

	# subflow and signal with port
	reset
	ip netns exec $ns1 ip mptcp endpoint add 10.0.2.1 port 10100 signal
	ip netns exec $ns1 ip mptcp limits set add_addr_accepted 0 subflows 2
	ip netns exec $ns2 ip mptcp limits set add_addr_accepted 1 subflows 2
	ip netns exec $ns2 ip mptcp endpoint add 10.0.3.2 subflow
	run_tests $ns1 $ns2 10.0.1.1
	chk_join_nr "subflow and signal with port" 2 2 2
	chk_add_nr 1 1 1

	# single address with port, remove
	reset
	ip netns exec $ns1 ip mptcp limits set add_addr_accepted 0 subflows 1
	ip netns exec $ns1 ip mptcp endpoint add 10.0.2.1 signal port 10100
	ip netns exec $ns2 ip mptcp limits set add_addr_accepted 1 subflows 1
	run_tests $ns1 $ns2 10.0.1.1 0 -1 0 slow
	chk_join_nr "remove single address with port" 1 1 1
	chk_add_nr 1 1 1
	chk_rm_nr 1 1 invert

	# subflow and signal with port, remove
	reset
	ip netns exec $ns1 ip mptcp limits set add_addr_accepted 0 subflows 2
	ip netns exec $ns1 ip mptcp endpoint add 10.0.2.1 signal port 10100
	ip netns exec $ns2 ip mptcp limits set add_addr_accepted 1 subflows 2
	ip netns exec $ns2 ip mptcp endpoint add 10.0.3.2 subflow
	run_tests $ns1 $ns2 10.0.1.1 0 -1 -1 slow
	chk_join_nr "remove subflow and signal with port" 2 2 2
	chk_add_nr 1 1 1
	chk_rm_nr 1 1

	# subflows and signal with port, flush
	reset
	ip netns exec $ns1 ip mptcp limits set add_addr_accepted 0 subflows 3
	ip netns exec $ns1 ip mptcp endpoint add 10.0.2.1 signal port 10100
	ip netns exec $ns2 ip mptcp limits set add_addr_accepted 1 subflows 3
	ip netns exec $ns2 ip mptcp endpoint add 10.0.3.2 subflow
	ip netns exec $ns2 ip mptcp endpoint add 10.0.4.2 subflow
	run_tests $ns1 $ns2 10.0.1.1 0 -8 -8 slow
	chk_join_nr "flush subflows and signal with port" 3 3 3
	chk_add_nr 1 1
	chk_rm_nr 2 2

	# multiple addresses with port
	reset
	ip netns exec $ns1 ip mptcp limits set add_addr_accepted 2 subflows 2
	ip netns exec $ns1 ip mptcp endpoint add 10.0.2.1 signal port 10100
	ip netns exec $ns1 ip mptcp endpoint add 10.0.3.1 signal port 10100
	ip netns exec $ns2 ip mptcp limits set add_addr_accepted 2 subflows 2
	run_tests $ns1 $ns2 10.0.1.1
	chk_join_nr "multiple addresses with port" 2 2 2
	chk_add_nr 2 2 2

	# multiple addresses with ports
	reset
	ip netns exec $ns1 ip mptcp limits set add_addr_accepted 2 subflows 2
	ip netns exec $ns1 ip mptcp endpoint add 10.0.2.1 signal port 10100
	ip netns exec $ns1 ip mptcp endpoint add 10.0.3.1 signal port 10101
	ip netns exec $ns2 ip mptcp limits set add_addr_accepted 2 subflows 2
	ip netns exec $ns2 ./pm_nl_ctl limits 2 2
	run_tests $ns1 $ns2 10.0.1.1
	chk_join_nr "multiple addresses with ports" 2 2 2
	chk_add_nr 2 2 2

}

[root@localhost mptcp]# ./mptcp_join_iproute.sh -p
Created /tmp/tmp.poENcxp8Wq (size 1 KB) containing data sent by client
Created /tmp/tmp.DW8XTWOy6z (size 1 KB) containing data sent by server
Capturing traffic for test 1 into mp_join-01-ns1-0-UM6eKM.pcap
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535 bytes
74 packets captured
74 packets received by filter
0 packets dropped by kernel
01 signal address with port             syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        add[ ok ] - echo  [ ok ] - pt [ ok ]
                                        syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        syn[ ok ] - ack   [ ok ]
Capturing traffic for test 2 into mp_join-02-ns1-0-c3dYVr.pcap
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535 bytes
93 packets captured
93 packets received by filter
0 packets dropped by kernel
02 subflow and signal with port         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        add[ ok ] - echo  [ ok ] - pt [ ok ]
                                        syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        syn[ ok ] - ack   [ ok ]
Capturing traffic for test 3 into mp_join-03-ns1-0-totOVB.pcap
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535 bytes
168 packets captured
168 packets received by filter
0 packets dropped by kernel
03 remove single address with port      syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        add[ ok ] - echo  [ ok ] - pt [ ok ]
                                        syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        syn[ ok ] - ack   [ ok ]
                                        rm [ ok ] - sf    [ ok ]
Capturing traffic for test 4 into mp_join-04-ns1-0-9cB67T.pcap
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535 bytes
176 packets captured
176 packets received by filter
0 packets dropped by kernel
04 remove subflow and signal with port  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        add[ ok ] - echo  [ ok ] - pt [ ok ]
                                        syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        syn[ ok ] - ack   [ ok ]
                                        rm [ ok ] - sf    [ ok ]
Capturing traffic for test 5 into mp_join-05-ns1-0-aZk86y.pcap
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535 bytes
186 packets captured
186 packets received by filter
0 packets dropped by kernel
05 flush subflows and signal with port  syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        add[ ok ] - echo  [ ok ]
                                        rm [ ok ] - sf    [ ok ]
Capturing traffic for test 6 into mp_join-06-ns1-0-aWJJ9w.pcap
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535 bytes
90 packets captured
90 packets received by filter
0 packets dropped by kernel
06 multiple addresses with port         syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        add[ ok ] - echo  [ ok ] - pt [ ok ]
                                        syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        syn[ ok ] - ack   [ ok ]
Capturing traffic for test 7 into mp_join-07-ns1-0-s2Z6wp.pcap
tcpdump: data link type LINUX_SLL2
tcpdump: listening on any, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535 bytes
94 packets captured
94 packets received by filter
0 packets dropped by kernel
07 multiple addresses with ports        syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        add[ ok ] - echo  [ ok ] - pt [ ok ]
                                        syn[ ok ] - synack[ ok ] - ack[ ok ]
                                        syn[ ok ] - ack   [ ok ]


[root@localhost mptcp]# tcpdump -r mp_join-07-ns1-0-s2Z6wp.pcap -nn tcp | grep "Flags \[S\]"
reading from file mp_join-07-ns1-0-s2Z6wp.pcap, link-type LINUX_SLL2 (Linux cooked v2), snapshot length 65535
Warning: interface names might be incorrect
03:20:34.829025 eth2  In  IP 10.0.1.2.42554 > 10.0.1.1.10006: Flags [S], seq 1638319244, win 29200, options [mss 1460,sackOK,TS val 1714776571 ecr 0,nop,wscale 7,mptcp capable v1], length 0
03:20:34.829513 ?     In  IP 10.0.2.2.59583 > 10.0.2.1.10100: Flags [S], seq 3837322995, win 29200, options [mss 1460,sackOK,TS val 1813516878 ecr 0,nop,wscale 7,mptcp join id 0 token 0x24f8b91b nonce 0x7436dc7c], length 0
03:20:34.829668 ?     In  IP 10.0.3.2.33391 > 10.0.3.1.10101: Flags [S], seq 1770196718, win 29200, options [mss 1460,sackOK,TS val 1094635554 ecr 0,nop,wscale 7,mptcp join id 0 token 0x24f8b91b nonce 0xb5909af8], length 0

Comment 8 errata-xmlrpc 2021-11-09 19:37:07 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (iproute bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2021:4389


Note You need to log in before you can comment on or make changes to this bug.