From e57c5880ab3e8f590bf2e9ca70c8e86dd3fc104a Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Jan 06 2023 23:28:51 +0000 Subject: Import openvswitch2.15-2.15.0-132 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.15.0.patch b/SOURCES/openvswitch-2.15.0.patch index 36d2bc1..9520536 100644 --- a/SOURCES/openvswitch-2.15.0.patch +++ b/SOURCES/openvswitch-2.15.0.patch @@ -99836,7 +99836,7 @@ index b817fceac6..59e0a3a9dd 100644 /* Disables or enables conntrack fragment reassembly. The default diff --git a/lib/dpif.c b/lib/dpif.c -index 56d0b4a654..5f5cb6eb05 100644 +index 56d0b4a654..9dda311bce 100644 --- a/lib/dpif.c +++ b/lib/dpif.c @@ -24,22 +24,18 @@ @@ -99880,6 +99880,15 @@ index 56d0b4a654..5f5cb6eb05 100644 VLOG_DEFINE_THIS_MODULE(dpif); +@@ -1209,7 +1210,7 @@ dpif_execute_helper_cb(void *aux_, struct dp_packet_batch *packets_, + /* The Linux kernel datapath throws away the tunnel information + * that we supply as metadata. We have to use a "set" action to + * supply it. */ +- if (md->tunnel.ip_dst) { ++ if (flow_tnl_dst_is_set(&md->tunnel)) { + odp_put_tunnel_action(&md->tunnel, &execute_actions, NULL); + } + ofpbuf_put(&execute_actions, action, NLA_ALIGN(action->nla_len)); @@ -1240,6 +1241,7 @@ dpif_execute_helper_cb(void *aux_, struct dp_packet_batch *packets_, execute.needs_help = false; execute.probe = false; @@ -109729,7 +109738,7 @@ 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..73bb11e44f 100644 +index fb5b9a36d2..4a848a7096 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at @@ -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 @@ -109980,15 +109989,64 @@ index fb5b9a36d2..73bb11e44f 100644 OVS_CHECK_GENEVE_UDP6ZEROCSUM() OVS_TRAFFIC_VSWITCHD_START() -@@ -669,6 +822,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -668,7 +821,56 @@ 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 ++AT_SETUP([datapath - slow_action on geneve6 tunnel]) ++AT_SKIP_IF([test $HAVE_TCPDUMP = no]) ++OVS_CHECK_TUNNEL_TSO() ++OVS_CHECK_GENEVE_UDP6ZEROCSUM() ++ ++OVS_TRAFFIC_VSWITCHD_START() ++ADD_BR([br-underlay]) ++ ++AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) ++AT_CHECK([ovs-ofctl add-flow br-underlay "actions=normal"]) ++ ++ADD_NAMESPACES(at_ns0) ++ ++dnl Set up underlay link from host into the namespace using veth pair. ++ADD_VETH(p0, at_ns0, br-underlay, "fc00::1/64", [], [], "nodad") ++AT_CHECK([ip addr add dev br-underlay "fc00::100/64" nodad]) ++AT_CHECK([ip link set dev br-underlay up]) ++ ++dnl Set up tunnel endpoints on OVS outside the namespace and with a native ++dnl linux device inside the namespace. ++ADD_OVS_TUNNEL6([geneve], [br0], [at_gnv0], [fc00::1], [10.1.1.100/24]) ++ADD_NATIVE_TUNNEL6([geneve], [ns_gnv0], [at_ns0], [fc00::100], [10.1.1.1/24], ++ [vni 0 udp6zerocsumtx udp6zerocsumrx]) ++AT_CHECK([ovs-ofctl add-flow br0 "table=37,actions=at_gnv0"]) ++ ++OVS_WAIT_UNTIL([ip netns exec at_ns0 ping6 -c 1 fc00::100]) ++ ++dnl First, check the underlay. ++NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00::100 | FORMAT_PING], [0], [dnl ++3 packets transmitted, 3 received, 0% packet loss, time 0ms ++]) ++ ++dnl Start tcpdump to capture the encapsulated packets. ++NETNS_DAEMONIZE([at_ns0], [tcpdump -U -i p0 -w p0.pcap], [tcpdump.pid]) ++sleep 1 ++ ++dnl Generate a single packet trough the controler that needs an ARP modification ++AT_CHECK([ovs-ofctl -O OpenFlow15 packet-out br0 "in_port=controller packet=fffffffffffffa163e949d8008060001080006040001fa163e949d80c0a820300000000000000a0000fe actions=set_field:0xa0000f4->reg1,move:NXM_NX_XXREG0[[64..95]]->NXM_OF_ARP_SPA[[]],resubmit(,37)"]) ++sleep 1 ++ ++dnl Stop OVS and tcpdump and verify the results. ++OVS_TRAFFIC_VSWITCHD_STOP ++ ++ovs-pcap p0.pcap ++ ++AT_CHECK([ovs-pcap p0.pcap | grep -Eq "^[[[:xdigit:]]]{24}86dd60000000003a1140fc000000000000000000000000000100fc000000000000000000000000000001[[[:xdigit:]]]{4}17c1003a[[[:xdigit:]]]{4}0000655800000000fffffffffffffa163e949d8008060001080006040001[[[:xdigit:]]]{12}0a0000f40000000000000a0000fe$"]) ++AT_CLEANUP ++ AT_SETUP([datapath - ping over gre tunnel by simulated packets]) +OVS_CHECK_TUNNEL_TSO() OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -715,6 +869,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -715,6 +917,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over erspan v1 tunnel by simulated packets]) @@ -109996,7 +110054,7 @@ index fb5b9a36d2..73bb11e44f 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -763,6 +918,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -763,6 +966,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over erspan v2 tunnel by simulated packets]) @@ -110004,7 +110062,7 @@ index fb5b9a36d2..73bb11e44f 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -816,6 +972,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -816,6 +1020,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v1 tunnel by simulated packets]) @@ -110012,7 +110070,7 @@ index fb5b9a36d2..73bb11e44f 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -871,6 +1028,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -871,6 +1076,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v2 tunnel by simulated packets]) @@ -110020,7 +110078,7 @@ index fb5b9a36d2..73bb11e44f 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -1400,6 +1558,42 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep "in_port=4" | ofctl_strip], [0], [dnl +@@ -1400,6 +1606,42 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep "in_port=4" | ofctl_strip], [0], [dnl OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -110063,7 +110121,7 @@ index fb5b9a36d2..73bb11e44f 100644 AT_BANNER([conntrack]) AT_SETUP([conntrack - controller]) -@@ -1927,6 +2121,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= +@@ -1927,6 +2169,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -110175,7 +110233,7 @@ index fb5b9a36d2..73bb11e44f 100644 AT_SETUP([conntrack - multiple bridges]) CHECK_CONNTRACK() OVS_TRAFFIC_VSWITCHD_START( -@@ -2330,6 +2629,15 @@ NXST_FLOW reply: +@@ -2330,6 +2677,15 @@ NXST_FLOW reply: table=1, priority=100,ct_state=+est+trk,in_port=1 actions=output:2 ]) @@ -110191,7 +110249,7 @@ index fb5b9a36d2..73bb11e44f 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -2695,6 +3003,11 @@ AT_CHECK([ovs-ofctl bundle br0 bundle.txt]) +@@ -2695,6 +3051,11 @@ AT_CHECK([ovs-ofctl bundle br0 bundle.txt]) AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(10.1.1.2)], [0], [dnl ]) @@ -110203,7 +110261,7 @@ index fb5b9a36d2..73bb11e44f 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -3251,6 +3564,46 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING +@@ -3251,6 +3612,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 @@ -110250,7 +110308,7 @@ index fb5b9a36d2..73bb11e44f 100644 AT_SETUP([conntrack - resubmit to ct multiple times]) CHECK_CONNTRACK() -@@ -3410,15 +3763,15 @@ action=normal +@@ -3410,15 +3811,15 @@ action=normal AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) @@ -110269,7 +110327,7 @@ index fb5b9a36d2..73bb11e44f 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 +4786,52 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= +@@ -4433,6 +4834,52 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -110322,7 +110380,7 @@ index fb5b9a36d2..73bb11e44f 100644 AT_SETUP([conntrack - simple DNAT]) CHECK_CONNTRACK() CHECK_CONNTRACK_NAT() -@@ -4488,6 +4887,41 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= +@@ -4488,6 +4935,41 @@ tcp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -110364,7 +110422,7 @@ index fb5b9a36d2..73bb11e44f 100644 AT_SETUP([conntrack - more complex DNAT]) CHECK_CONNTRACK() CHECK_CONNTRACK_NAT() -@@ -5682,7 +6116,7 @@ on_exit 'ovs-appctl revalidator/purge' +@@ -5682,7 +6164,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 @@ -110373,7 +110431,7 @@ index fb5b9a36d2..73bb11e44f 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 +6405,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE +@@ -5971,6 +6453,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP diff --git a/SPECS/openvswitch2.15.spec b/SPECS/openvswitch2.15.spec index 5f11685..d6692aa 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: 131%{?dist} +Release: 132%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -702,6 +702,12 @@ exit 0 %endif %changelog +* Fri Jan 06 2023 Open vSwitch CI - 2.15.0-132 +- Merging upstream branch-2.15 [RH git: 5840d96507] + Commit list: + 1687321b19 dpif: Fix tunnel key set for IPv6 tunnels with SLOW_ACTION. + + * Tue Jan 03 2023 Open vSwitch CI - 2.15.0-131 - Merging upstream branch-2.15 [RH git: a985627824] Commit list: