From 390766734c14fcb10bc56022ba7ab061b3328376 Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Jan 06 2023 20:11:00 +0000 Subject: Import openvswitch2.17-2.17.0-69 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.17.0.patch b/SOURCES/openvswitch-2.17.0.patch index 1712036..a7c9106 100644 --- a/SOURCES/openvswitch-2.17.0.patch +++ b/SOURCES/openvswitch-2.17.0.patch @@ -181,6 +181,19 @@ index af524251ff..49895c595f 100644 ============ ======== Q: Are all the DPDK releases that OVS versions work with maintained? +diff --git a/Documentation/internals/maintainers.rst b/Documentation/internals/maintainers.rst +index 172d684df9..0203bbe955 100644 +--- a/Documentation/internals/maintainers.rst ++++ b/Documentation/internals/maintainers.rst +@@ -22,3 +22,8 @@ + Avoid deeper levels because they do not render well. + + .. include:: ../../MAINTAINERS.rst ++ :end-before: Cut here for the Documentation/internals/maintainers.rst ++ ++.. |responsibilities| replace:: :doc:`committer-responsibilities` ++.. |grant-revocation| replace:: :doc:`committer-grant-revocation` ++.. |emeritus-status| replace:: :doc:`committer-emeritus-status` diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst index d9f44055db..a284e68514 100644 --- a/Documentation/intro/install/dpdk.rst @@ -220,6 +233,95 @@ index c4300cd53e..a297aadac8 100644 (https://git.kernel.org/pub/scm/devel/sparse/sparse.git/). - GNU make. +diff --git a/Documentation/topics/dpdk/phy.rst b/Documentation/topics/dpdk/phy.rst +index 937f4c40e5..90c8691e32 100644 +--- a/Documentation/topics/dpdk/phy.rst ++++ b/Documentation/topics/dpdk/phy.rst +@@ -76,8 +76,8 @@ persist across reboots. In addition, there are two options available for this + kernel space driver - VFIO (Virtual Function I/O) and UIO (Userspace I/O) - + along with a number of drivers for each option. We will demonstrate examples of + both tools and will use the ``vfio-pci`` driver, which is the more secure, +-robust driver of those available. More information can be found in the `DPDK +-documentation `__. ++robust driver of those available. More information can be found in the ++`DPDK drivers documentation`_. + + To list devices using :command:`driverctl`, run:: + +@@ -115,9 +115,9 @@ tool:: + Open vSwitch 2.6.0 added support for DPDK 16.07, which in turn renamed the + former ``dpdk_nic_bind`` tool to ``dpdk-devbind``. + +-For more information, refer to the `DPDK documentation `__. ++For more information, refer to the `DPDK drivers documentation`_. + +-.. _dpdk-drivers: https://doc.dpdk.org/guides-21.11/linux_gsg/linux_drivers.html ++.. _DPDK drivers documentation: https://doc.dpdk.org/guides-21.11/linux_gsg/linux_drivers.html + + .. _dpdk-phy-multiqueue: + +@@ -394,14 +394,14 @@ in the ``options`` column of the ``Interface`` table. + + .. important:: + +- Some DPDK port use `bifurcated drivers `__, +- which means that a kernel netdevice remains when Open vSwitch is stopped. ++ Some DPDK port use `bifurcated drivers`_, which means that a kernel ++ netdevice remains when Open vSwitch is stopped. + + In such case, any configuration applied to a VF would remain set on the + kernel netdevice, and be inherited from it when Open vSwitch is restarted, + even if the options described in this section are unset from Open vSwitch. + +-.. _bifurcated-drivers: https://doc.dpdk.org/guides-21.11/linux_gsg/linux_drivers.html#bifurcated-driver ++.. _bifurcated drivers: https://doc.dpdk.org/guides-21.11/linux_gsg/linux_drivers.html#bifurcated-driver + + - Configure the VF MAC address:: + +diff --git a/MAINTAINERS.rst b/MAINTAINERS.rst +index 27be4aa412..1dc406170f 100644 +--- a/MAINTAINERS.rst ++++ b/MAINTAINERS.rst +@@ -28,11 +28,11 @@ Committers + Open vSwitch committers are the people who have been granted access to push + changes to the Open vSwitch git repository. + +-The responsibilities of an Open vSwitch committer are documented +-`here `__. ++The responsibilities of an Open vSwitch committer are documented here: ++|responsibilities|. + +-The process for adding or removing committers is documented +-`here `__. ++The process for adding or removing committers is documented here: ++|grant-revocation|. + + This is the current list of active Open vSwitch committers: + +@@ -77,8 +77,8 @@ This is the current list of active Open vSwitch committers: + - yamamoto@midokura.com + + The project also maintains a list of Emeritus Committers (or Maintainers). +-More information about Emeritus Committers can be found +-`here `__. ++More information about Emeritus Committers can be found here: ++|emeritus-status|. + + .. list-table:: OVS Emeritus Maintainers + :header-rows: 1 +@@ -91,3 +91,12 @@ More information about Emeritus Committers can be found + - ejj@eecs.berkeley.edu + * - Joe Stringer + - joe@ovn.org ++ ++.. Cut here for the Documentation/internals/maintainers.rst ++ ++.. |responsibilities| replace:: `Expectations for Developers with Open vSwitch ++ Repo Access `__ ++.. |grant-revocation| replace:: `OVS Committer Grant/Revocation Policy ++ `__ ++.. |emeritus-status| replace:: `Emeritus Status for OVS Committers ++ `__ diff --git a/NEWS b/NEWS index c10e9bfacc..45b974ed22 100644 --- a/NEWS @@ -52206,6 +52308,19 @@ index 71e35ccdda..484545cfb8 100644 return true; } +diff --git a/lib/dpif.c b/lib/dpif.c +index 40f5fe4460..fe4db83fbf 100644 +--- a/lib/dpif.c ++++ b/lib/dpif.c +@@ -1213,7 +1213,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)); diff --git a/lib/dynamic-string.c b/lib/dynamic-string.c index fd0127ed17..8e9555a630 100644 --- a/lib/dynamic-string.c @@ -63560,7 +63675,7 @@ index 06b671df8c..2d14f1ac26 100644 AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --remote=punix:socket db], [0], [ignore], [ignore]) sed 's/5\.1\.3/5.1.4/' < schema > schema2 diff --git a/tests/ovsdb-cluster.at b/tests/ovsdb-cluster.at -index fc6253cfe9..920b833b72 100644 +index fc6253cfe9..9fbf5dc897 100644 --- a/tests/ovsdb-cluster.at +++ b/tests/ovsdb-cluster.at @@ -1,12 +1,25 @@ @@ -63577,7 +63692,7 @@ index fc6253cfe9..920b833b72 100644 $schema_func > schema schema=`ovsdb-tool schema-name schema` AT_CHECK([ovsdb-tool '-vPATTERN:console:%c|%p|%m' create-cluster s1.db schema unix:s1.raft], [0], [], [stderr]) -+ if test X$local_config == X"yes"; then ++ if test X$local_config = X"yes"; then + for i in `seq $n`; do + AT_CHECK([ovsdb-tool create c$i.db $top_srcdir/ovsdb/local-config.ovsschema], [0], [], [stderr]) + local ctxn="[[\"Local_Config\", @@ -63599,7 +63714,7 @@ index fc6253cfe9..920b833b72 100644 - AT_CHECK([ovsdb-server -vraft -vconsole:off -vsyslog:off --detach --no-chdir --log-file=s$i.log --pidfile=s$i.pid --unixctl=s$i --remote=punix:s$i.ovsdb s$i.db]) + local remote=punix:s$i.ovsdb + local config_db= -+ if test X$local_config == X"yes"; then ++ if test X$local_config = X"yes"; then + remote=db:Local_Config,Config,connections + config_db=c$i.db + fi @@ -63643,6 +63758,31 @@ index fc6253cfe9..920b833b72 100644 AT_CLEANUP]) EXECUTION_EXAMPLES +@@ -101,7 +129,7 @@ ovsdb_test_cluster_disconnect () { + # When a node is disconnected from the cluster, the IDL should disconnect + # and retry even if it uses a single remote, because the remote IP can be + # a VIP on a load-balance. So we use single remote to test here. +- if test $leader_or_follower == "leader"; then ++ if test $leader_or_follower = "leader"; then + target=1 + shutdown=`seq $(($n/2 + 1)) $n` + cleanup=`seq $(($n/2))` +@@ -160,13 +188,13 @@ ovsdb_test_cluster_disconnect () { + count_old=`grep "raft_is_connected: true" raft_is_connected.log | wc -l` + echo count_old $count_old + +- if test X$check_flapping == X"yes"; then ++ if test X$check_flapping = X"yes"; then + sleep 10 + fi + # Make sure raft_is_connected didn't flap from false to true. + count_new=`grep "raft_is_connected: true" raft_is_connected.log | wc -l` + echo count_new $count_new +- AT_CHECK([test $count_new == $count_old]) ++ AT_CHECK([test $count_new = $count_old]) + + for i in $cleanup; do + OVS_APP_EXIT_AND_WAIT_BY_TARGET([`pwd`/s$i], [s$i.pid]) @@ -400,6 +428,61 @@ done AT_CLEANUP @@ -63705,8 +63845,12 @@ index fc6253cfe9..920b833b72 100644 OVS_START_SHELL_HELPERS -@@ -413,12 +496,12 @@ ovsdb_cluster_failure_test () { - if test "$crash_node" == "1"; then +@@ -410,15 +493,15 @@ ovsdb_cluster_failure_test () { + remote_2=$2 + crash_node=$3 + crash_command=$4 +- if test "$crash_node" == "1"; then ++ if test "$crash_node" = "1"; then new_leader=$5 fi + log_grep=$6 @@ -63730,7 +63874,15 @@ index fc6253cfe9..920b833b72 100644 } connect_server() { local i=$1 -@@ -460,14 +543,23 @@ ovsdb|WARN|schema: changed 30 columns in 'Open_vSwitch' database from ephemeral +@@ -453,21 +536,30 @@ ovsdb|WARN|schema: changed 30 columns in 'Open_vSwitch' database from ephemeral + # To ensure $new_leader node the new leader, we delay election timer for + # the other follower. + if test -n "$new_leader"; then +- if test "$new_leader" == "2"; then ++ if test "$new_leader" = "2"; then + delay_election_node=3 + else + delay_election_node=2 fi AT_CHECK([ovs-appctl -t "`pwd`"/s$delay_election_node cluster/failure-test delay-election], [0], [ignore]) fi @@ -64129,7 +64281,7 @@ index 62e2b63832..092d9f81a2 100644 +006: done +]]) diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at -index 876cb836cd..e672c13b27 100644 +index 876cb836cd..d49de0daa4 100644 --- a/tests/ovsdb-server.at +++ b/tests/ovsdb-server.at @@ -4,7 +4,7 @@ m4_define([OVSDB_SERVER_SHUTDOWN], @@ -64222,6 +64374,15 @@ index 876cb836cd..e672c13b27 100644 OVSDB_SERVER_SHUTDOWN } OVS_END_SHELL_HELPERS +@@ -1255,7 +1254,7 @@ dnl a case where there is only one transaction in a history. + get_memory_value () { + n=$(ovs-appctl -t ovsdb-server memory/show dnl + | tr ' ' '\n' | grep "^$1:" | cut -d ':' -f 2) +- if test X"$n" == "X"; then ++ if test X"$n" = "X"; then + n=0 + fi + echo $n @@ -1319,15 +1318,14 @@ m4_define([OVSDB_CHECK_EXECUTION], $2 > schema PKIDIR=$abs_top_builddir/tests @@ -64999,7 +65160,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 f22d86e466..9d1c96bb43 100644 +index f22d86e466..4808e78de3 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 @@ -65202,15 +65363,64 @@ index f22d86e466..9d1c96bb43 100644 OVS_CHECK_GENEVE_UDP6ZEROCSUM() OVS_TRAFFIC_VSWITCHD_START() -@@ -723,6 +822,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -722,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() -@@ -759,16 +859,17 @@ dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], [172.31.1.100], [10.1.1.1/2 +@@ -759,16 +907,17 @@ dnl ADD_NATIVE_TUNNEL([gretap], [ns_gre0], [at_ns0], [172.31.1.100], [10.1.1.1/2 dnl Now, check the overlay by sending out raw arp and icmp packets. ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff00000002f2ff00000003080045000042ec2c4000402ff3bcac1f0101ac1f016400006558fffffffffffff2ff0000000408060001080006040001f2ff000000040a0101010000000000000a010164 actions=NORMAL" @@ -65230,7 +65440,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -803,20 +904,21 @@ dnl Okay, now send out an arp request from 10.1.1.1 for 10.1.1.100 in erspan. +@@ -803,20 +952,21 @@ dnl Okay, now send out an arp request from 10.1.1.1 for 10.1.1.100 in erspan. ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff00000002f2ff0000000308004500004e151d4000402fcac0ac1f0101ac1f0164100088be000000061000000100000007fffffffffffff2ff0000000408060001080006040001f2ff000000040a0101010000000000000a010164 actions=normal" dnl 0002 is arp reply, followed by mac address of 10.1.1.100. @@ -65256,7 +65466,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -854,22 +956,23 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 172.31.1.100 | FORMAT_PING], [ +@@ -854,22 +1004,23 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 172.31.1.100 | FORMAT_PING], [ dnl Okay, send raw arp request and icmp echo request. ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff00000002f2ff00000003080045000052373d4000402fa89cac1f0101ac1f0164100088be00000006200000016f54b41700008078fffffffffffff2ff0000000408060001080006040001f2ff000000040a0101010000000000000a010164 actions=normal" @@ -65285,7 +65495,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -911,20 +1014,21 @@ dnl Okay, now send raw arp request and icmp echo request. +@@ -911,20 +1062,21 @@ dnl Okay, now send raw arp request and icmp echo request. ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff00000002f2ff0000000386dd60008531003a2f40fc000100000000000000000000000001fc000100000000000000000000000100100088be000000051000007b00000007fffffffffffff2ff0000000408060001080006040001f2ff000000040a0101010000000000000a010164 actions=normal" dnl Check arp reply. @@ -65312,7 +65522,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -965,15 +1069,15 @@ NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00:100::100 | FORMAT_PING], +@@ -965,15 +1117,15 @@ NS_CHECK_EXEC([at_ns0], [ping6 -q -c 3 -i 0.3 -w 2 fc00:100::100 | FORMAT_PING], dnl Okay, now send raw arp request and icmp echo request. ovs-ofctl -O OpenFlow13 packet-out br-underlay "in_port=1 packet=f2ff00000002f2ff0000000386dd60008531003e2f40fc000100000000000000000000000001fc000100000000000000000000000100100088be0000000620000079af514f9900008070fffffffffffff2ff0000000408060001080006040001f2ff000000040a0101010000000000000a010164 actions=normal" @@ -65333,7 +65543,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -1004,9 +1108,9 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.1.1.2 | FORMAT_PING], [0], +@@ -1004,9 +1156,9 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 -i 0.3 -w 2 10.1.1.2 | FORMAT_PING], [0], OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) AT_CHECK([cat ofctl_monitor.log | STRIP_MONITOR_CSUM], [0], [dnl @@ -65346,7 +65556,7 @@ index f22d86e466..9d1c96bb43 100644 ]) OVS_TRAFFIC_VSWITCHD_STOP -@@ -1765,10 +1869,10 @@ dnl p1(at_ns1) interface +@@ -1765,10 +1917,10 @@ dnl p1(at_ns1) interface NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 36 b1 ee 7c 01 02 36 b1 ee 7c 01 03 08 00 45 00 00 54 03 44 40 00 40 01 21 61 0a 01 01 01 0a 01 01 02 08 00 ef ac 7c e4 00 03 5b 2c 1f 61 00 00 00 00 50 0b 02 00 00 00 00 00 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 > /dev/null]) dnl Check the expected mpls encapsulated packet on the egress interface @@ -65361,7 +65571,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -1797,10 +1901,10 @@ dnl p1(at_ns1) interface +@@ -1797,10 +1949,10 @@ dnl p1(at_ns1) interface NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 36 b1 ee 7c 01 02 36 b1 ee 7c 01 03 08 00 45 00 00 54 03 44 40 00 40 01 21 61 0a 01 01 01 0a 01 01 02 08 00 ef ac 7c e4 00 03 5b 2c 1f 61 00 00 00 00 50 0b 02 00 00 00 00 00 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 > /dev/null]) dnl Check the expected mpls encapsulated packet on the egress interface @@ -65376,7 +65586,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -1830,10 +1934,10 @@ dnl p1(at_ns1) interface +@@ -1830,10 +1982,10 @@ dnl p1(at_ns1) interface NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 36 b1 ee 7c 01 02 36 b1 ee 7c 01 03 08 00 45 00 00 54 03 44 40 00 40 01 21 61 0a 01 01 01 0a 01 01 02 08 00 ef ac 7c e4 00 03 5b 2c 1f 61 00 00 00 00 50 0b 02 00 00 00 00 00 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 > /dev/null]) dnl Check the expected mpls encapsulated packet on the egress interface @@ -65391,7 +65601,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -1862,10 +1966,10 @@ dnl p1(at_ns1) interface +@@ -1862,10 +2014,10 @@ dnl p1(at_ns1) interface NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 36 b1 ee 7c 01 02 36 b1 ee 7c 01 03 08 00 45 00 00 54 03 44 40 00 40 01 21 61 0a 01 01 01 0a 01 01 02 08 00 ef ac 7c e4 00 03 5b 2c 1f 61 00 00 00 00 50 0b 02 00 00 00 00 00 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 > /dev/null]) dnl Check the expected mpls encapsulated packet on the egress interface @@ -65406,7 +65616,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -1896,13 +2000,13 @@ dnl p1(at_ns1) interface +@@ -1896,13 +2048,13 @@ dnl p1(at_ns1) interface NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 00 00 00 00 00 02 00 00 00 00 00 01 88 47 00 00 21 40 36 b1 ee 7c 01 02 36 b1 ee 7c 01 03 08 00 45 00 00 54 03 44 40 00 40 01 21 61 0a 01 01 01 0a 01 01 02 08 00 ef ac 7c e4 00 03 5b 2c 1f 61 00 00 00 00 50 0b 02 00 00 00 00 00 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 > /dev/null]) dnl Check the expected decapsulated on the egress interface @@ -65427,7 +65637,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP -@@ -1933,15 +2037,51 @@ dnl p1(at_ns1) interface +@@ -1933,15 +2085,51 @@ dnl p1(at_ns1) interface NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 00 00 00 00 00 02 00 00 00 00 00 01 88 47 00 00 21 40 36 b1 ee 7c 01 02 36 b1 ee 7c 01 03 08 00 45 00 00 54 03 44 40 00 40 01 21 61 0a 01 01 01 0a 01 01 02 08 00 ef ac 7c e4 00 03 5b 2c 1f 61 00 00 00 00 50 0b 02 00 00 00 00 00 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 > /dev/null]) dnl Check the expected decapsulated on the egress interface @@ -65486,7 +65696,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -1985,9 +2125,9 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -1985,9 +2173,9 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) dnl Check this output. We only see the latter two packets, not the first. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN2 (xid=0x0): total_len=42 in_port=1 (via action) data_len=42 (unbuffered) @@ -65498,7 +65708,7 @@ index f22d86e466..9d1c96bb43 100644 ]) OVS_TRAFFIC_VSWITCHD_STOP -@@ -2033,9 +2173,9 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -2033,9 +2221,9 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) dnl Check this output. We only see the latter two packets, not the first. AT_CHECK([cat ofctl_monitor.log], [0], [dnl NXT_PACKET_IN2 (xid=0x0): cookie=0x0 total_len=42 in_port=1 (via action) data_len=42 (unbuffered) @@ -65510,7 +65720,7 @@ index f22d86e466..9d1c96bb43 100644 ]) dnl -@@ -2980,6 +3120,15 @@ NXST_FLOW reply: +@@ -2980,6 +3168,15 @@ NXST_FLOW reply: table=1, priority=100,ct_state=+est+trk,in_port=1 actions=output:2 ]) @@ -65526,7 +65736,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -3140,11 +3289,11 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) +@@ -3140,11 +3337,11 @@ OVS_APP_EXIT_AND_WAIT([ovs-ofctl]) dnl Check this output. We only see the latter two packets, not the first. AT_CHECK([cat ofctl_monitor.log | grep -v ff02 | grep -v fe80 | grep -v no_match], [0], [dnl NXT_PACKET_IN2 (xid=0x0): table_id=1 cookie=0x0 total_len=75 ct_state=inv|trk,ip,in_port=2 (via action) data_len=75 (unbuffered) @@ -65541,7 +65751,7 @@ index f22d86e466..9d1c96bb43 100644 ]) AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(172.16.0.1)], [0], [dnl -@@ -3345,6 +3494,11 @@ AT_CHECK([ovs-ofctl bundle br0 bundle.txt]) +@@ -3345,6 +3542,11 @@ AT_CHECK([ovs-ofctl bundle br0 bundle.txt]) AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(10.1.1.2)], [0], [dnl ]) @@ -65553,7 +65763,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -4100,15 +4254,15 @@ action=normal +@@ -4100,15 +4302,15 @@ action=normal AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) @@ -65572,7 +65782,7 @@ index f22d86e466..9d1c96bb43 100644 "1616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161610a, actions=ct(table=1)"]) AT_CHECK([ovs-appctl dpctl/dump-flows | head -2 | tail -1 | grep -q -e ["]udp[(]src=5001["]]) -@@ -5384,7 +5538,7 @@ AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(10.1.1.2) | sed -e 's/dst= +@@ -5384,7 +5586,7 @@ AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(10.1.1.2) | sed -e 's/dst= udp,orig=(src=10.1.1.1,dst=10.1.1.2,sport=,dport=),reply=(src=10.1.1.2,dst=10.1.1.2XX,sport=,dport=),mark=1 ]) @@ -65581,7 +65791,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -6134,7 +6288,7 @@ sleep 1 +@@ -6134,7 +6336,7 @@ sleep 1 dnl UDP packets from ns0->ns1 should solicit "destination unreachable" response. NS_CHECK_EXEC([at_ns0], [bash -c "echo a | nc -6 $NC_EOF_OPT -u fc00::2 1"]) @@ -65590,7 +65800,7 @@ index f22d86e466..9d1c96bb43 100644 AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(fc00::2)], [0], [dnl udp,orig=(src=fc00::1,dst=fc00::2,sport=,dport=),reply=(src=fc00::2,dst=fc00::240,sport=,dport=) -@@ -6454,7 +6608,7 @@ on_exit 'ovs-appctl revalidator/purge' +@@ -6454,7 +6656,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 @@ -65599,7 +65809,7 @@ index f22d86e466..9d1c96bb43 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 -@@ -6743,6 +6897,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE +@@ -6743,6 +6945,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -65732,7 +65942,7 @@ index f22d86e466..9d1c96bb43 100644 AT_BANNER([802.1ad]) AT_SETUP([802.1ad - vlan_limit]) -@@ -7007,12 +7287,12 @@ dnl p1(at_ns1) interface +@@ -7007,12 +7335,12 @@ dnl p1(at_ns1) interface NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 f2 00 00 00 00 02 f2 00 00 00 00 01 08 00 45 00 00 28 00 01 00 00 40 06 b0 13 c0 a8 00 0a 0a 00 00 0a 04 00 08 00 00 00 00 c8 00 00 00 00 50 02 20 00 b8 5e 00 00 > /dev/null]) dnl Check the expected nsh encapsulated packet on the egress interface @@ -65751,7 +65961,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -7039,10 +7319,10 @@ dnl p1(at_ns1) interface +@@ -7039,10 +7367,10 @@ dnl p1(at_ns1) interface NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 f2 ff 00 00 00 02 f2 ff 00 00 00 01 89 4f 02 06 01 03 00 00 64 03 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 f2 00 00 00 00 02 f2 00 00 00 00 01 08 00 45 00 00 28 00 01 00 00 40 06 b0 13 c0 a8 00 0a 0a 00 00 0a 04 00 08 00 00 00 00 c8 00 00 00 00 50 02 20 00 b8 5e 00 00 > /dev/null]) dnl Check the expected de-capsulated TCP packet on the egress interface @@ -65766,7 +65976,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -7072,12 +7352,12 @@ dnl p1(at_ns1) interface +@@ -7072,12 +7400,12 @@ dnl p1(at_ns1) interface NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 f2 ff 00 00 00 02 f2 ff 00 00 00 01 89 4f 02 06 01 03 00 01 00 03 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 f2 00 00 00 00 02 f2 00 00 00 00 01 08 00 45 00 00 28 00 01 00 00 40 06 b0 13 c0 a8 00 0a 0a 00 00 0a 04 00 08 00 00 00 00 c8 00 00 00 00 50 02 20 00 b8 5e 00 00 > /dev/null]) dnl Check the expected NSH packet with new fields in the header @@ -65785,7 +65995,7 @@ index f22d86e466..9d1c96bb43 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -7106,23 +7386,23 @@ dnl First send packet from at_ns0 --> OVS with SPI=0x100 and SI=2 +@@ -7106,23 +7434,23 @@ dnl First send packet from at_ns0 --> OVS with SPI=0x100 and SI=2 NS_CHECK_EXEC([at_ns0], [$PYTHON3 $srcdir/sendpkt.py p0 f2 ff 00 00 00 02 f2 ff 00 00 00 01 89 4f 02 06 01 03 00 01 00 02 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f 10 f2 00 00 00 00 02 f2 00 00 00 00 01 08 00 45 00 00 28 00 01 00 00 40 06 b0 13 c0 a8 00 0a 0a 00 00 0a 04 00 08 00 00 00 00 c8 00 00 00 00 50 02 20 00 b8 5e 00 00 > /dev/null]) dnl Check for the above packet on p1 interface @@ -67090,6 +67300,37 @@ index fb2025b765..67092ecf7e 100755 ovs-ofctl dump-tlv-map ${bridge} -O $ofp_version | \ awk '/^ *0x/ {if (cnt != 0) printf ","; \ cnt++;printf "{class="$1",type="$2",len="$3"}->"$4}' +diff --git a/utilities/ovs-sim.in b/utilities/ovs-sim.in +index 08957bdf46..779ea60aee 100755 +--- a/utilities/ovs-sim.in ++++ b/utilities/ovs-sim.in +@@ -131,7 +131,7 @@ EOF + export -f as + + sim_add() { +- if test "$1" == --help; then ++ if test "$1" = --help; then + cat < - 2.17.0-69 +- Merging upstream branch-2.17 [RH git: a7b4835415] + Commit list: + ba62a1eae6 Documentation: Fix links in maintainers.rst. + 1b76faf8d1 Documentation: Fix links in the DPDK guide on physical ports. + e1ee9c32a4 treewide: Don't use non-portable '==' with test command. + a7d7c30c48 dpif: Fix tunnel key set for IPv6 tunnels with SLOW_ACTION. + + * Wed Jan 04 2023 Open vSwitch CI - 2.17.0-68 - Merging upstream branch-2.17 [RH git: ba8ea0794a] Commit list: