diff --git a/SOURCES/openvswitch-2.15.0.patch b/SOURCES/openvswitch-2.15.0.patch index 1bb532c..4896e33 100644 --- a/SOURCES/openvswitch-2.15.0.patch +++ b/SOURCES/openvswitch-2.15.0.patch @@ -30470,7 +30470,7 @@ index 9d5e24a292..7a44e697a3 100644 # # Do basic check for vxlan functionality, skip the test if it's not there. diff --git a/tests/system-kmod-macros.at b/tests/system-kmod-macros.at -index 15628a7c6f..86d633ac4f 100644 +index 15628a7c6f..f0aaae63eb 100644 --- a/tests/system-kmod-macros.at +++ b/tests/system-kmod-macros.at @@ -99,6 +99,17 @@ m4_define([CHECK_CONNTRACK_FRAG_OVERLAP], @@ -30491,6 +30491,20 @@ index 15628a7c6f..86d633ac4f 100644 # CHECK_CONNTRACK_TIMEOUT() # # Perform requirements checks for running conntrack customized timeout tests. +@@ -189,6 +200,13 @@ m4_define([OVS_CHECK_KERNEL_EXCL], + AT_SKIP_IF([ ! ( test $version -lt $1 || ( test $version -eq $1 && test $sublevel -lt $2 ) || test $version -gt $3 || ( test $version -eq $3 && test $sublevel -gt $4 ) ) ]) + ]) + ++# CHECK_LATER_IPV6_FRAGMENTS() ++# ++# Upstream kernels beetween 4.20 and 5.19 are not parsing IPv6 fragments ++# correctly. The issue was also backported in some older distribution ++# kernels, so kernels below 4.20 are not reliable. ++m4_define([CHECK_LATER_IPV6_FRAGMENTS], [OVS_CHECK_MIN_KERNEL(5, 19)]) ++ + # VSCTL_ADD_DATAPATH_TABLE() + # + # Create system datapath table "system" for kernel tests in ovsdb diff --git a/tests/system-offloads-traffic.at b/tests/system-offloads-traffic.at index 4f601ef939..c8e4c68fae 100644 --- a/tests/system-offloads-traffic.at @@ -30568,15 +30582,16 @@ index 1714273e35..270956d13f 100644 dnl Delete ip address. AT_CHECK([ip addr del 10.0.0.17/24 dev p1-route], [0], [stdout]) diff --git a/tests/system-traffic.at b/tests/system-traffic.at -index fb5b9a36d2..fd3f13f25b 100644 +index fb5b9a36d2..dff89aa089 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at -@@ -192,6 +192,41 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PI +@@ -192,6 +192,46 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00:1::2 | FORMAT_PI OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP +AT_SETUP([datapath - ping6 between two ports with header modify]) +OVS_TRAFFIC_VSWITCHD_START() ++CHECK_LATER_IPV6_FRAGMENTS() + +AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) + @@ -30585,17 +30600,21 @@ index fb5b9a36d2..fd3f13f25b 100644 +ADD_VETH(p0, at_ns0, br0, "fc00::1/96", e4:11:22:33:44:55) +ADD_VETH(p1, at_ns1, br0, "fc00::2/96", e4:11:22:33:44:54) +NS_CHECK_EXEC([at_ns0], [ip -6 neigh add fc00::3 lladdr e4:11:22:33:44:54 dev p0]) -+NS_CHECK_EXEC([at_ns0], [ip -6 neigh add fc00::2 lladdr e4:11:22:33:44:54 dev p0]) -+NS_CHECK_EXEC([at_ns0], [ip -6 neigh add fc00::1 lladdr e4:11:22:33:44:55 dev p0]) + +dnl Linux seems to take a little time to get its IPv6 stack in order. Without +dnl waiting, we get occasional failures due to the following error: +dnl "connect: Cannot assign requested address" +OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::2]) ++OVS_WAIT_UNTIL([ip netns exec at_ns1 ping6 -c 1 fc00::1]) + -+AT_CHECK([ovs-ofctl del-flows -OOpenFlow15 br0]) -+AT_CHECK([ovs-ofctl add-flow -OOpenFlow15 br0 in_port=ovs-p0,ipv6,ipv6_dst=fc00::3,ipv6_src=fc00::1,actions=set_field:fc00::2-\>ipv6_dst,ovs-p1]) -+AT_CHECK([ovs-ofctl add-flow -OOpenFlow15 br0 in_port=ovs-p1,ipv6,ipv6_dst=fc00::1,ipv6_src=fc00::2,actions=set_field:fc00::3-\>ipv6_src,ovs-p0]) ++AT_DATA([flows.txt], [dnl ++priority=100,in_port=ovs-p0,ipv6,ipv6_src=fc00::1,ipv6_dst=fc00::3,actions=set_field:fc00::2->ipv6_dst,ovs-p1 ++priority=100,in_port=ovs-p1,ipv6,ipv6_src=fc00::2,ipv6_dst=fc00::1,actions=set_field:fc00::3->ipv6_src,ovs-p0 ++priority=0,actions=NORMAL ++]) ++ ++AT_CHECK([ovs-ofctl del-flows br0]) ++AT_CHECK([ovs-ofctl add-flows br0 flows.txt]) + +NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00::3 | FORMAT_PING], [0], [dnl +3 packets transmitted, 3 received, 0% packet loss, time 0ms @@ -30613,7 +30632,7 @@ index fb5b9a36d2..fd3f13f25b 100644 AT_SETUP([datapath - ping over bond]) OVS_TRAFFIC_VSWITCHD_START() -@@ -218,6 +253,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -218,6 +258,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over vxlan tunnel]) @@ -30621,7 +30640,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_VXLAN() OVS_TRAFFIC_VSWITCHD_START() -@@ -258,7 +294,55 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.1.1.100 | FORMAT_PI +@@ -258,7 +299,55 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.1.1.100 | FORMAT_PI OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -30677,7 +30696,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_VXLAN_UDP6ZEROCSUM() OVS_TRAFFIC_VSWITCHD_START() -@@ -302,6 +386,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -302,6 +391,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over gre tunnel]) @@ -30685,7 +30704,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() -@@ -343,6 +428,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -343,6 +433,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6gre L2 tunnel]) @@ -30693,7 +30712,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -383,6 +469,7 @@ AT_CLEANUP +@@ -383,6 +474,7 @@ AT_CLEANUP AT_SETUP([datapath - ping over erspan v1 tunnel]) @@ -30701,7 +30720,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -419,6 +506,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -419,6 +511,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over erspan v2 tunnel]) @@ -30709,7 +30728,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -455,6 +543,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -455,6 +548,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v1 tunnel]) @@ -30717,7 +30736,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -494,6 +583,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -494,6 +588,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v2 tunnel]) @@ -30725,7 +30744,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -534,6 +624,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -534,6 +629,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over geneve tunnel]) @@ -30733,7 +30752,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_GENEVE() OVS_TRAFFIC_VSWITCHD_START() -@@ -574,7 +665,63 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.1.1.100 | FORMAT_PI +@@ -574,7 +670,63 @@ NS_CHECK_EXEC([at_ns0], [ping -s 3200 -q -c 3 -i 0.3 -w 2 10.1.1.100 | FORMAT_PI OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -30797,7 +30816,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_GENEVE() OVS_TRAFFIC_VSWITCHD_START() -@@ -612,7 +759,7 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 10.1.1.100 | FORMAT_PING], [0], [dnl +@@ -612,7 +764,7 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 10.1.1.100 | FORMAT_PING], [0], [dnl ]) dnl Test OVS handles TLV map modifictions properly when restores frozen state. @@ -30806,7 +30825,7 @@ index fb5b9a36d2..fd3f13f25b 100644 AT_CHECK([ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0x88,len=4}->tun_metadata1"]) sleep 1 -@@ -626,6 +773,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -626,6 +778,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over geneve6 tunnel]) @@ -30814,7 +30833,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_GENEVE_UDP6ZEROCSUM() OVS_TRAFFIC_VSWITCHD_START() -@@ -669,6 +817,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -669,6 +822,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over gre tunnel by simulated packets]) @@ -30822,7 +30841,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -715,6 +864,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -715,6 +869,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over erspan v1 tunnel by simulated packets]) @@ -30830,7 +30849,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -763,6 +913,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -763,6 +918,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over erspan v2 tunnel by simulated packets]) @@ -30838,7 +30857,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -816,6 +967,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -816,6 +972,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v1 tunnel by simulated packets]) @@ -30846,7 +30865,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -871,6 +1023,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -871,6 +1028,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v2 tunnel by simulated packets]) @@ -30854,7 +30873,7 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -1927,6 +2080,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= +@@ -1927,6 +2085,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -30966,7 +30985,7 @@ index fb5b9a36d2..fd3f13f25b 100644 AT_SETUP([conntrack - multiple bridges]) CHECK_CONNTRACK() OVS_TRAFFIC_VSWITCHD_START( -@@ -2330,6 +2588,15 @@ NXST_FLOW reply: +@@ -2330,6 +2593,15 @@ NXST_FLOW reply: table=1, priority=100,ct_state=+est+trk,in_port=1 actions=output:2 ]) @@ -30982,7 +31001,19 @@ index fb5b9a36d2..fd3f13f25b 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -3251,6 +3518,46 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING +@@ -2695,6 +2967,11 @@ AT_CHECK([ovs-ofctl bundle br0 bundle.txt]) + AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(10.1.1.2)], [0], [dnl + ]) + ++dnl Send the second fragment in order to avoid keeping the first fragment ++dnl in the queue until the expiration occurs. Fragments already queued, if resent, ++dnl may lead to failures on the kernel datapath. ++AT_CHECK([ovs-ofctl -O OpenFlow13 packet-out br0 "in_port=1, packet=50540000000a505400000009080045000030000100320011a4860a0101010a01010200010002000800000010203040506070809000010203040506070809, actions=ct(commit)"]) ++ + OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + +@@ -3251,6 +3528,46 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -31029,7 +31060,7 @@ index fb5b9a36d2..fd3f13f25b 100644 AT_SETUP([conntrack - resubmit to ct multiple times]) CHECK_CONNTRACK() -@@ -3410,15 +3717,15 @@ action=normal +@@ -3410,15 +3727,15 @@ action=normal AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) @@ -31048,7 +31079,7 @@ index fb5b9a36d2..fd3f13f25b 100644 "1616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161610a, actions=ct(table=1)"]) AT_CHECK([ovs-appctl dpctl/dump-flows | head -2 | tail -1 | grep -q -e ["]udp[(]src=5001["]]) -@@ -4433,6 +4740,52 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= +@@ -4433,6 +4750,52 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -31101,7 +31132,7 @@ index fb5b9a36d2..fd3f13f25b 100644 AT_SETUP([conntrack - simple DNAT]) CHECK_CONNTRACK() CHECK_CONNTRACK_NAT() -@@ -4488,6 +4841,41 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= +@@ -4488,6 +4851,41 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -31143,7 +31174,7 @@ index fb5b9a36d2..fd3f13f25b 100644 AT_SETUP([conntrack - more complex DNAT]) CHECK_CONNTRACK() CHECK_CONNTRACK_NAT() -@@ -5682,7 +6070,7 @@ on_exit 'ovs-appctl revalidator/purge' +@@ -5682,7 +6080,7 @@ on_exit 'ovs-appctl revalidator/purge' on_exit 'ovs-appctl dpif/dump-flows br0' dnl Should work with the virtual IP address through NAT @@ -31152,7 +31183,7 @@ index fb5b9a36d2..fd3f13f25b 100644 echo Request $i NS_CHECK_EXEC([at_ns1], [wget 10.1.1.64 -t 5 -T 1 --retry-connrefused -v -o wget$i.log]) done -@@ -5971,6 +6359,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE +@@ -5971,6 +6369,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -31296,7 +31327,7 @@ index 406334f3e0..1a80047619 100644 + +m4_define([CHECK_SYSTEM_TSO], []) diff --git a/tests/system-userspace-macros.at b/tests/system-userspace-macros.at -index 34f82cee3d..9f0d38dfb3 100644 +index 34f82cee3d..38e00b2014 100644 --- a/tests/system-userspace-macros.at +++ b/tests/system-userspace-macros.at @@ -96,6 +96,16 @@ m4_define([CHECK_CONNTRACK_FRAG_OVERLAP]) @@ -31316,6 +31347,18 @@ index 34f82cee3d..9f0d38dfb3 100644 # CHECK_CONNTRACK_TIMEOUT() # # Perform requirements checks for running conntrack customized timeout tests. +@@ -291,6 +301,11 @@ m4_define([OVS_CHECK_KERNEL_EXCL], + AT_SKIP_IF([:]) + ]) + ++# CHECK_LATER_IPV6_FRAGMENTS() ++# ++# Userspace is parsing later IPv6 fragments correctly. ++m4_define([CHECK_LATER_IPV6_FRAGMENTS], []) ++ + # VSCTL_ADD_DATAPATH_TABLE() + # + # Create datapath table "netdev" for userspace tests in ovsdb diff --git a/tests/test-cmap.c b/tests/test-cmap.c index 0705475606..f8cc4dd80a 100644 --- a/tests/test-cmap.c diff --git a/SPECS/openvswitch2.15.spec b/SPECS/openvswitch2.15.spec index 61d8ded..2467d02 100644 --- a/SPECS/openvswitch2.15.spec +++ b/SPECS/openvswitch2.15.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.15.0 -Release: 114%{?dist} +Release: 115%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -702,6 +702,14 @@ exit 0 %endif %changelog +* Mon Aug 08 2022 Open vSwitch CI - 2.15.0-115 +- Merging upstream branch-2.15 [RH git: f0a32c6c60] + Commit list: + 173769badf system-traffic: Fix IPv4 fragmentation test sequence for check-kernel. + 3e9debe5be system-traffic: Fix incorrect neigh entry in ipv6 header modification test. + 8ec1752be7 system-traffic: Don't run IPv6 header modification test on kernels < 5.19. + + * Thu Aug 04 2022 Open vSwitch CI - 2.15.0-114 - Merging upstream branch-2.15 [RH git: 61c9b3f738] Commit list: