Bug 2189292

Summary: sctp: backports from upstream
Product: Red Hat Enterprise Linux 9 Reporter: Xin Long <lxin>
Component: kernelAssignee: Xin Long <lxin>
kernel sub component: sctp QA Contact: ying xu <yinxu>
Status: CLOSED ERRATA Docs Contact: Jaroslav Klech <jklech>
Severity: high    
Priority: high CC: allarkin, jiji, jklech, network-qe, yinxu
Version: 9.2Keywords: Triaged
Target Milestone: rc   
Target Release: 9.3   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: kernel-5.14.0-316.el9 Doc Type: Enhancement
Doc Text:
.SCTP rebased to the latest version of the kernel networking tree for RHEL 9 Notable changes in the Stream Control Transmission Protocol (SCTP) networking subsystem include: * Virtual routing and forwarding (VRF) support to segment and isolate SCTP traffic within complex network environments. * New stream schedulers (`fair capacity`, and `weighted fair queueing`) to ensure efficient and equal resource allocation in the network.
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-11-07 08:47:01 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2173430, 2212174    

Comment 7 ying xu 2023-05-18 08:34:34 UTC
tested on version:
5.14.0-303.2417_847101554.el9.x86_64

1.test sctp_diag
# cat hasslog
State Recv-Q Send-Q Local Address:Port Peer Address:PortProcess
State    Recv-Q Send-Q        Local Address:Port          Peer Address:Port         Process                         
LISTEN   0      5               192.168.0.1:commplex-link      0.0.0.0:*            
	 locals:192.168.0.1 v4mapped:1
`- ESTAB 0      0      192.168.0.1%ha_veth0:commplex-link  192.168.0.2:commplex-link
	 locals:192.168.0.1 peers:192.168.0.2 tag:d9b5bb3e state:ESTAB rwnd:106492 instrms:10 outstrms:10 maxburst:4 maxseg:1452 prwnd:106496 ptag:7c3f886d pcapable:106 psack:2
State    Recv-Q Send-Q        Local Address:Port          Peer Address:Port         Process                         
LISTEN   0      5               192.168.0.1:commplex-link      0.0.0.0:*            
	 locals:192.168.0.1 v4mapped:1
`- ESTAB 0      0      192.168.0.1%ha_veth0:commplex-link  192.168.0.2:commplex-link
	 locals:192.168.0.1 peers:192.168.0.2 tag:322ff716 state:ESTAB rwnd:106492 instrms:10 outstrms:10 maxburst:4 maxseg:1452 prwnd:106496 ptag:6644daf4 pcapable:98 psack:2
there is no difference .

2.test vrf
Testing For SCTP VRF:
TEST 01: nobind, connect from client 1, l3mdev_accept=1, Y [PASS]
TEST 02: nobind, connect from client 2, l3mdev_accept=1, N [PASS]
TEST 03: nobind, connect from client 1, l3mdev_accept=0, N [PASS]
TEST 04: nobind, connect from client 2, l3mdev_accept=0, N [PASS]
TEST 05: bind veth2 in server, connect from client 1, N [PASS]
TEST 06: bind veth1 in server, connect from client 1, Y [PASS]
TEST 07: bind vrf-1 in server, connect from client 1, Y [PASS]
TEST 08: bind vrf-2 in server, connect from client 1, N [PASS]
TEST 09: bind vrf-2 in server, connect from client 2, Y [PASS]
TEST 10: bind vrf-1 in server, connect from client 2, N [PASS]
TEST 11: bind vrf-1 & 2 in server, connect from client 1 & 2, Y [PASS]
TEST 12: bind vrf-2 & 1 in server, connect from client 1 & 2, N [PASS]
***v4 Tests Done***
TEST 01: nobind, connect from client 1, l3mdev_accept=1, Y [PASS]
TEST 02: nobind, connect from client 2, l3mdev_accept=1, N [PASS]
TEST 03: nobind, connect from client 1, l3mdev_accept=0, N [PASS]
TEST 04: nobind, connect from client 2, l3mdev_accept=0, N [PASS]
TEST 05: bind veth2 in server, connect from client 1, N [PASS]
TEST 06: bind veth1 in server, connect from client 1, Y [PASS]
TEST 07: bind vrf-1 in server, connect from client 1, Y [PASS]
TEST 08: bind vrf-2 in server, connect from client 1, N [PASS]
TEST 09: bind vrf-2 in server, connect from client 2, Y [PASS]
TEST 10: bind vrf-1 in server, connect from client 2, N [PASS]
TEST 11: bind vrf-1 & 2 in server, connect from client 1 & 2, Y [PASS]
TEST 12: bind vrf-2 & 1 in server, connect from client 1 & 2, N [PASS]
***v6 Tests Done***

3. test scheduler:
start parse_arguments
Notification: SCTP_ASSOC_CHANGE(SHUTDOWN_COMPLETE)
		(assoc_change: state=3, error=0, instr=0 outstr=0)
	recvmsg(sk=3) set_num_ostreams - 'Set ostreams :65535' Success!
enable_msg_intl - 'Enable SCTP_INTERLEAVING_SUPPORTED' Success!
Notification: SCTP_ASSOC_CHANGE(COMMUNICATION_UP)
		(assoc_change: state=0, error=0, instr=65535 outstr=10)
	recvmsg(sk=3) Data 5000 bytes. First 10 bytes: 012345678
	recvmsg(sk=3) set_get_stream_sch - 'Set SCTP_SS_FCFS' Success!
set_get_stream_sch - 'Set SCTP_SS_PRIO' Success!
set_get_stream_sch - 'Set SCTP_SS_RR' Success!
set_get_stream_sch - 'Set SCTP_SS_FC' Success!
set_get_stream_sch - 'Set SCTP_SS_WFQ' Success!
test SCTP_CURRENT_ASOC begin!
set_get_stream_sch - 'Set SCTP_SS_FCFS' Success!
set_get_stream_sch - 'Set SCTP_SS_PRIO' Success!
set_get_stream_sch - 'Set SCTP_SS_RR' Success!
set_get_stream_sch - 'Set SCTP_SS_FC' Success!
set_get_stream_sch - 'Set SCTP_SS_WFQ' Success!
set SCTP_CURRENT_ASSOC done!
test SCTP_ALL_ASOC begin!
set_get_stream_sch - 'Set SCTP_SS_FCFS' Success!
set_get_stream_sch - 'Set SCTP_SS_PRIO' Success!
set_get_stream_sch - 'Set SCTP_SS_RR' Success!
set_get_stream_sch - 'Set SCTP_SS_FC' Success!
set_get_stream_sch - 'Set SCTP_SS_WFQ' Success!
set SCTP_ALL_ASSOC done!



set tested.

Comment 8 ying xu 2023-05-19 07:57:24 UTC
since it has't moved to next step ,delay to ITM14

Comment 13 ying xu 2023-05-24 08:02:04 UTC
verified on version:
kernel-5.14.0-316.el9

run the regression test:
https://beaker.engineering.redhat.com/jobs/7878146
https://beaker.engineering.redhat.com/jobs/7881092

Testing For SCTP VRF:
TEST 01: nobind, connect from client 1, l3mdev_accept=1, Y [PASS]
TEST 02: nobind, connect from client 2, l3mdev_accept=1, N [PASS]
TEST 03: nobind, connect from client 1, l3mdev_accept=0, N [PASS]
TEST 04: nobind, connect from client 2, l3mdev_accept=0, N [PASS]
TEST 05: bind veth2 in server, connect from client 1, N [PASS]
TEST 06: bind veth1 in server, connect from client 1, Y [PASS]
TEST 07: bind vrf-1 in server, connect from client 1, Y [PASS]
TEST 08: bind vrf-2 in server, connect from client 1, N [PASS]
TEST 09: bind vrf-2 in server, connect from client 2, Y [PASS]
TEST 10: bind vrf-1 in server, connect from client 2, N [PASS]
TEST 11: bind vrf-1 & 2 in server, connect from client 1 & 2, Y [PASS]
TEST 12: bind vrf-2 & 1 in server, connect from client 1 & 2, N [PASS]
***v4 Tests Done***
TEST 01: nobind, connect from client 1, l3mdev_accept=1, Y [PASS]
TEST 02: nobind, connect from client 2, l3mdev_accept=1, N [PASS]
TEST 03: nobind, connect from client 1, l3mdev_accept=0, N [PASS]
TEST 04: nobind, connect from client 2, l3mdev_accept=0, N [PASS]
TEST 05: bind veth2 in server, connect from client 1, N [PASS]
TEST 06: bind veth1 in server, connect from client 1, Y [PASS]
TEST 07: bind vrf-1 in server, connect from client 1, Y [PASS]
TEST 08: bind vrf-2 in server, connect from client 1, N [PASS]
TEST 09: bind vrf-2 in server, connect from client 2, Y [PASS]
TEST 10: bind vrf-1 in server, connect from client 2, N [PASS]
TEST 11: bind vrf-1 & 2 in server, connect from client 1 & 2, Y [PASS]
TEST 12: bind vrf-2 & 1 in server, connect from client 1 & 2, N [PASS]
***v6 Tests Done***


set_get_stream_sch - 'Set SCTP_SS_PRIO' Success!
set_get_stream_sch - 'Set SCTP_SS_RR' Success!
set_get_stream_sch - 'Set SCTP_SS_FC' Success!
set_get_stream_sch - 'Set SCTP_SS_WFQ' Success!
test SCTP_CURRENT_ASOC begin!
set_get_stream_sch - 'Set SCTP_SS_FCFS' Success!
set_get_stream_sch - 'Set SCTP_SS_PRIO' Success!
set_get_stream_sch - 'Set SCTP_SS_RR' Success!
set_get_stream_sch - 'Set SCTP_SS_FC' Success!
set_get_stream_sch - 'Set SCTP_SS_WFQ' Success!
set SCTP_CURRENT_ASSOC done!
test SCTP_ALL_ASOC begin!
set_get_stream_sch - 'Set SCTP_SS_FCFS' Success!
set_get_stream_sch - 'Set SCTP_SS_PRIO' Success!
set_get_stream_sch - 'Set SCTP_SS_RR' Success!
set_get_stream_sch - 'Set SCTP_SS_FC' Success!
set_get_stream_sch - 'Set SCTP_SS_WFQ' Success!
set SCTP_ALL_ASSOC done!

Comment 14 Xin Long 2023-06-07 21:47:03 UTC
*** Bug 2212172 has been marked as a duplicate of this bug. ***

Comment 22 errata-xmlrpc 2023-11-07 08:47:01 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 (Important: kernel security, 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/RHSA-2023:6583