From 11e452183647bbc9813e63ba2753b9ddcefe4be8 Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Aug 04 2022 21:04:37 +0000 Subject: Import openvswitch2.16-2.16.0-90 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.16.0.patch b/SOURCES/openvswitch-2.16.0.patch index 3720591..4fd7071 100644 --- a/SOURCES/openvswitch-2.16.0.patch +++ b/SOURCES/openvswitch-2.16.0.patch @@ -2701,7 +2701,7 @@ index bddce75b63..5f90dd4ceb 100644 return subtables_changed; } diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c -index 34fc042373..5f4b60c5a6 100644 +index 34fc042373..a681fa1b33 100644 --- a/lib/dpif-netlink.c +++ b/lib/dpif-netlink.c @@ -84,6 +84,8 @@ enum { MAX_PORTS = USHRT_MAX }; @@ -2798,6 +2798,15 @@ index 34fc042373..5f4b60c5a6 100644 ofpbuf_delete(buf); if (create) { +@@ -1036,7 +1064,7 @@ dpif_netlink_port_add_compat(struct dpif_netlink *dpif, struct netdev *netdev, + + ext_ofs = nl_msg_start_nested(&options, OVS_TUNNEL_ATTR_EXTENSION); + for (i = 0; i < 32; i++) { +- if (tnl_cfg->exts & (1 << i)) { ++ if (tnl_cfg->exts & (UINT32_C(1) << i)) { + nl_msg_put_flag(&options, i); + } + } diff --git a/lib/flow.c b/lib/flow.c index 89837de95d..a021bc0eba 100644 --- a/lib/flow.c @@ -3141,6 +3150,28 @@ index 32d25003b8..0baf7c622c 100644 + } ds_put_char(ds, '"'); } +diff --git a/lib/libopenvswitch.pc.in b/lib/libopenvswitch.pc.in +index 2a3f2ca7bc..44fbb1f9fd 100644 +--- a/lib/libopenvswitch.pc.in ++++ b/lib/libopenvswitch.pc.in +@@ -7,5 +7,5 @@ Name: libopenvswitch + Description: Open vSwitch library + Version: @VERSION@ + Libs: -L${libdir} -lopenvswitch +-Libs.private: @LIBS@ +-Cflags: -I${includedir}/openvswitch ++Libs.private: @LIBS@ @SSL_LIBS@ @CAPNG_LDADD@ @LIBBPF_LDADD@ ++Cflags: -I${includedir} +diff --git a/lib/libsflow.pc.in b/lib/libsflow.pc.in +index e70a2b7048..34bb7e3d69 100644 +--- a/lib/libsflow.pc.in ++++ b/lib/libsflow.pc.in +@@ -8,4 +8,4 @@ Description: sFlow library of Open vSwitch + Version: @VERSION@ + Libs: -L${libdir} -lsflow + Libs.private: @LIBS@ +-Cflags: -I${includedir}/openvswitch ++Cflags: -I${includedir} diff --git a/lib/lldp/lldp.c b/lib/lldp/lldp.c index 18afbab9a7..dfeb2a8002 100644 --- a/lib/lldp/lldp.c @@ -3243,7 +3274,7 @@ index 45a96b9be2..738fb44b3c 100644 return; } diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c -index 60dd138914..94c9737110 100644 +index 60dd138914..28b8f21a02 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -627,6 +627,7 @@ netdev_linux_notify_sock(void) @@ -3262,7 +3293,19 @@ index 60dd138914..94c9737110 100644 ovsthread_once_done(&once); } -@@ -6285,7 +6285,14 @@ get_stats_via_netlink(const struct netdev *netdev_, struct netdev_stats *stats) +@@ -682,7 +682,10 @@ netdev_linux_update_lag(struct rtnetlink_change *change) + return; + } + +- if (is_netdev_linux_class(master_netdev->netdev_class)) { ++ /* If LAG master is not attached to ovs, ingress block on LAG ++ * members shoud not be updated. */ ++ if (!master_netdev->auto_classified && ++ is_netdev_linux_class(master_netdev->netdev_class)) { + block_id = netdev_get_block_id(master_netdev); + if (!block_id) { + netdev_close(master_netdev); +@@ -6285,7 +6288,14 @@ get_stats_via_netlink(const struct netdev *netdev_, struct netdev_stats *stats) if (ofpbuf_try_pull(reply, NLMSG_HDRLEN + sizeof(struct ifinfomsg))) { const struct nlattr *a = nl_attr_find(reply, 0, IFLA_STATS64); if (a && nl_attr_get_size(a) >= sizeof(struct rtnl_link_stats64)) { @@ -3403,6 +3446,59 @@ index 9845e8d3fe..e1568e38a0 100644 } } +diff --git a/lib/netdev.c b/lib/netdev.c +index 8305f6c427..ce0d4117ac 100644 +--- a/lib/netdev.c ++++ b/lib/netdev.c +@@ -387,25 +387,30 @@ netdev_open(const char *name, const char *type, struct netdev **netdevp) + ovs_mutex_lock(&netdev_mutex); + netdev = shash_find_data(&netdev_shash, name); + +- if (netdev && +- type && type[0] && strcmp(type, netdev->netdev_class->type)) { +- +- if (netdev->auto_classified) { +- /* If this device was first created without a classification type, +- * for example due to routing or tunneling code, and they keep a +- * reference, a "classified" call to open will fail. In this case +- * we remove the classless device, and re-add it below. We remove +- * the netdev from the shash, and change the sequence, so owners of +- * the old classless device can release/cleanup. */ +- if (netdev->node) { +- shash_delete(&netdev_shash, netdev->node); +- netdev->node = NULL; +- netdev_change_seq_changed(netdev); +- } ++ if (netdev && type && type[0]) { ++ if (strcmp(type, netdev->netdev_class->type)) { ++ ++ if (netdev->auto_classified) { ++ /* If this device was first created without a classification ++ * type, for example due to routing or tunneling code, and they ++ * keep a reference, a "classified" call to open will fail. ++ * In this case we remove the classless device, and re-add it ++ * below. We remove the netdev from the shash, and change the ++ * sequence, so owners of the old classless device can ++ * release/cleanup. */ ++ if (netdev->node) { ++ shash_delete(&netdev_shash, netdev->node); ++ netdev->node = NULL; ++ netdev_change_seq_changed(netdev); ++ } + +- netdev = NULL; +- } else { +- error = EEXIST; ++ netdev = NULL; ++ } else { ++ error = EEXIST; ++ } ++ } else if (netdev->auto_classified) { ++ /* If netdev reopened with type "system", clear auto_classified. */ ++ netdev->auto_classified = false; + } + } + diff --git a/lib/odp-util.c b/lib/odp-util.c index 7729a90608..ce3b853e0f 100644 --- a/lib/odp-util.c @@ -4526,6 +4622,52 @@ index 2198c69c60..496ec490d3 100644 ovsdb_idl_try_commit_loop_txn(loop, NULL); } +diff --git a/lib/packets.c b/lib/packets.c +index 4a7643c5dd..60bb25c382 100644 +--- a/lib/packets.c ++++ b/lib/packets.c +@@ -1107,7 +1107,7 @@ packet_set_ipv4_addr(struct dp_packet *packet, + * + * This function assumes that L3 and L4 offsets are set in the packet. */ + static bool +-packet_rh_present(struct dp_packet *packet, uint8_t *nexthdr) ++packet_rh_present(struct dp_packet *packet, uint8_t *nexthdr, bool *first_frag) + { + const struct ovs_16aligned_ip6_hdr *nh; + size_t len; +@@ -1157,6 +1157,8 @@ packet_rh_present(struct dp_packet *packet, uint8_t *nexthdr) + const struct ovs_16aligned_ip6_frag *frag_hdr + = ALIGNED_CAST(struct ovs_16aligned_ip6_frag *, data); + ++ *first_frag = !(frag_hdr->ip6f_offlg & IP6F_OFF_MASK) && ++ (frag_hdr->ip6f_offlg & IP6F_MORE_FRAG); + *nexthdr = frag_hdr->ip6f_nxt; + len = sizeof *frag_hdr; + } else if (*nexthdr == IPPROTO_ROUTING) { +@@ -1287,18 +1289,20 @@ packet_set_ipv6(struct dp_packet *packet, const struct in6_addr *src, + uint8_t key_hl) + { + struct ovs_16aligned_ip6_hdr *nh = dp_packet_l3(packet); ++ bool recalc_csum = true; + uint8_t proto = 0; + bool rh_present; + +- rh_present = packet_rh_present(packet, &proto); ++ rh_present = packet_rh_present(packet, &proto, &recalc_csum); + + if (memcmp(&nh->ip6_src, src, sizeof(ovs_be32[4]))) { +- packet_set_ipv6_addr(packet, proto, nh->ip6_src.be32, src, true); ++ packet_set_ipv6_addr(packet, proto, nh->ip6_src.be32, ++ src, recalc_csum); + } + + if (memcmp(&nh->ip6_dst, dst, sizeof(ovs_be32[4]))) { + packet_set_ipv6_addr(packet, proto, nh->ip6_dst.be32, dst, +- !rh_present); ++ !rh_present && recalc_csum); + } + + packet_set_ipv6_tc(&nh->ip6_flow, key_tc); diff --git a/lib/pcap-file.c b/lib/pcap-file.c index b30a11c24b..41835f6f4d 100644 --- a/lib/pcap-file.c @@ -5641,6 +5783,16 @@ index a4116588f4..2c0ad5ef84 100644 } /* Removes 'member' from its current list and then inserts it into 'bals' so +diff --git a/ofproto/libofproto.pc.in b/ofproto/libofproto.pc.in +index 2740712505..49894fb695 100644 +--- a/ofproto/libofproto.pc.in ++++ b/ofproto/libofproto.pc.in +@@ -8,4 +8,4 @@ Description: OpenFlow library of Open vSwitch + Version: @VERSION@ + Libs: -L${libdir} -lofproto + Libs.private: @LIBS@ +-Cflags: -I${includedir}/openvswitch ++Cflags: -I${includedir} diff --git a/ofproto/ofproto-dpif-ipfix.c b/ofproto/ofproto-dpif-ipfix.c index 796eb6f881..92692470fd 100644 --- a/ofproto/ofproto-dpif-ipfix.c @@ -6829,6 +6981,16 @@ index 59220824fa..ca80c28235 100644 ovsdb_storage_unread(storage); break; } +diff --git a/ovsdb/libovsdb.pc.in b/ovsdb/libovsdb.pc.in +index fe367ea7b1..54c9039cfd 100644 +--- a/ovsdb/libovsdb.pc.in ++++ b/ovsdb/libovsdb.pc.in +@@ -8,4 +8,4 @@ Description: OVSDB library of Open vSwitch + Version: @VERSION@ + Libs: -L${libdir} -lovsdb + Libs.private: @LIBS@ +-Cflags: -I${includedir}/openvswitch ++Cflags: -I${includedir} diff --git a/ovsdb/monitor.c b/ovsdb/monitor.c index 532dedcb64..ab814cf20e 100644 --- a/ovsdb/monitor.c @@ -9448,6 +9610,73 @@ index f5a520862c..ac5b0fd0c6 100644 +if ssl: # Register SSL only if the OpenSSL module is available Stream.register_method("ssl", SSLStream) +diff --git a/python/setup.py b/python/setup.py +index cfe01763f3..f6eb777f9e 100644 +--- a/python/setup.py ++++ b/python/setup.py +@@ -102,6 +102,6 @@ except BuildFailed: + print("Retrying the build without the C extension.") + print("*" * 75) + +- del(setup_args['cmdclass']) +- del(setup_args['ext_modules']) ++ del setup_args['cmdclass'] ++ del setup_args['ext_modules'] + setuptools.setup(**setup_args) +diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in +index 90f242b1f6..1a4b8e3195 100644 +--- a/rhel/openvswitch-fedora.spec.in ++++ b/rhel/openvswitch-fedora.spec.in +@@ -199,20 +199,6 @@ make install DESTDIR=$RPM_BUILD_ROOT + install -d -m 0755 $RPM_BUILD_ROOT%{_rundir}/openvswitch + install -d -m 0750 $RPM_BUILD_ROOT%{_localstatedir}/log/openvswitch + install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch +-copy_headers() { +- src=$1 +- dst=$RPM_BUILD_ROOT/$2 +- install -d -m 0755 $dst +- install -m 0644 $src/*.h $dst +-} +-copy_headers include %{_includedir}/openvswitch +-copy_headers include/openflow %{_includedir}/openvswitch/openflow +-copy_headers include/openvswitch %{_includedir}/openvswitch/openvswitch +-copy_headers include/sparse %{_includedir}/openvswitch/sparse +-copy_headers include/sparse/arpa %{_includedir}/openvswitch/sparse/arpa +-copy_headers include/sparse/netinet %{_includedir}/openvswitch/sparse/netinet +-copy_headers include/sparse/sys %{_includedir}/openvswitch/sparse/sys +-copy_headers lib %{_includedir}/openvswitch/lib + + %if %{with dpdk} + install -p -D -m 0644 rhel/usr_lib_udev_rules.d_91-vfio.rules \ +diff --git a/rhel/openvswitch.spec.in b/rhel/openvswitch.spec.in +index 220e5c7472..806ebe3781 100644 +--- a/rhel/openvswitch.spec.in ++++ b/rhel/openvswitch.spec.in +@@ -110,24 +110,6 @@ install -d -m 0755 $RPM_BUILD_ROOT%{_rundir}/openvswitch + install -d -m 0755 $RPM_BUILD_ROOT%{_localstatedir}/log/openvswitch + install -d -m 0755 $RPM_BUILD_ROOT/var/lib/openvswitch + +-copy_headers() { +- src=$1 +- dst=$RPM_BUILD_ROOT/$2 +- install -d -m 0755 $dst +- install -m 0644 $src/*.h $dst +-} +-copy_headers include %{_includedir}/openvswitch +-copy_headers include/openflow %{_includedir}/openvswitch/openflow +-copy_headers include/openvswitch %{_includedir}/openvswitch/openvswitch +-copy_headers include/sparse %{_includedir}/openvswitch/sparse +-copy_headers include/sparse/arpa %{_includedir}/openvswitch/sparse/arpa +-copy_headers include/sparse/netinet %{_includedir}/openvswitch/sparse/netinet +-copy_headers include/sparse/sys %{_includedir}/openvswitch/sparse/sys +-copy_headers lib %{_includedir}/openvswitch/lib +- +-install -D -m 0644 lib/.libs/libopenvswitch.a \ +- $RPM_BUILD_ROOT/%{_libdir}/libopenvswitch.a +- + %check + %if %{with check} + if make check TESTSUITEFLAGS='%{_smp_mflags}' RECHECK=yes; then :; diff --git a/tests/alb.at b/tests/alb.at index 903238fcb2..67eb14f473 100644 --- a/tests/alb.at @@ -11147,10 +11376,52 @@ 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 f400cfabc9..26fea94a4d 100644 +index f400cfabc9..a24d59ef1c 100644 --- a/tests/system-traffic.at +++ b/tests/system-traffic.at -@@ -218,6 +218,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -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 + OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + ++AT_SETUP([datapath - ping6 between two ports with header modify]) ++OVS_TRAFFIC_VSWITCHD_START() ++ ++AT_CHECK([ovs-ofctl add-flow br0 "actions=normal"]) ++ ++ADD_NAMESPACES(at_ns0, at_ns1) ++ ++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]) ++ ++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]) ++ ++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 ++]) ++NS_CHECK_EXEC([at_ns0], [ping6 -s 1600 -q -c 3 -i 0.3 -w 2 fc00::3 | FORMAT_PING], [0], [dnl ++3 packets transmitted, 3 received, 0% packet loss, time 0ms ++]) ++NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::3 | FORMAT_PING], [0], [dnl ++3 packets transmitted, 3 received, 0% packet loss, time 0ms ++]) ++ ++OVS_TRAFFIC_VSWITCHD_STOP ++AT_CLEANUP ++ + AT_SETUP([datapath - ping over bond]) + OVS_TRAFFIC_VSWITCHD_START() + +@@ -218,6 +253,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over vxlan tunnel]) @@ -11158,7 +11429,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_VXLAN() OVS_TRAFFIC_VSWITCHD_START() -@@ -258,7 +259,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 +294,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 @@ -11214,7 +11485,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_VXLAN_UDP6ZEROCSUM() OVS_TRAFFIC_VSWITCHD_START() -@@ -302,6 +351,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -302,6 +386,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over gre tunnel]) @@ -11222,7 +11493,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() -@@ -343,6 +393,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -343,6 +428,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6gre L2 tunnel]) @@ -11230,7 +11501,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -383,6 +434,7 @@ AT_CLEANUP +@@ -383,6 +469,7 @@ AT_CLEANUP AT_SETUP([datapath - ping over erspan v1 tunnel]) @@ -11238,7 +11509,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -419,6 +471,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -419,6 +506,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over erspan v2 tunnel]) @@ -11246,7 +11517,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -455,6 +508,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -455,6 +543,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v1 tunnel]) @@ -11254,7 +11525,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -494,6 +548,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -494,6 +583,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v2 tunnel]) @@ -11262,7 +11533,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_KERNEL_EXCL(3, 10, 4, 15) OVS_CHECK_GRE() OVS_CHECK_ERSPAN() -@@ -534,6 +589,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -534,6 +624,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over geneve tunnel]) @@ -11270,7 +11541,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_GENEVE() OVS_TRAFFIC_VSWITCHD_START() -@@ -575,6 +631,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -575,6 +666,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over geneve tunnel, delete flow regression]) @@ -11278,7 +11549,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_GENEVE() OVS_TRAFFIC_VSWITCHD_START() -@@ -629,6 +686,7 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/|ERR|/d +@@ -629,6 +721,7 @@ OVS_TRAFFIC_VSWITCHD_STOP(["/|ERR|/d AT_CLEANUP AT_SETUP([datapath - flow resume with geneve tun_metadata]) @@ -11286,7 +11557,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_GENEVE() OVS_TRAFFIC_VSWITCHD_START() -@@ -666,7 +724,7 @@ NS_CHECK_EXEC([at_ns0], [ping -q -c 3 10.1.1.100 | FORMAT_PING], [0], [dnl +@@ -666,7 +759,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. @@ -11295,7 +11566,7 @@ index f400cfabc9..26fea94a4d 100644 AT_CHECK([ovs-ofctl add-tlv-map br0 "{class=0xffff,type=0x88,len=4}->tun_metadata1"]) sleep 1 -@@ -680,6 +738,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -680,6 +773,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over geneve6 tunnel]) @@ -11303,7 +11574,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_GENEVE_UDP6ZEROCSUM() OVS_TRAFFIC_VSWITCHD_START() -@@ -723,6 +782,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -723,6 +817,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over gre tunnel by simulated packets]) @@ -11311,7 +11582,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -769,6 +829,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -769,6 +864,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over erspan v1 tunnel by simulated packets]) @@ -11319,7 +11590,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -817,6 +878,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -817,6 +913,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over erspan v2 tunnel by simulated packets]) @@ -11327,7 +11598,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -870,6 +932,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -870,6 +967,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v1 tunnel by simulated packets]) @@ -11335,7 +11606,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -925,6 +988,7 @@ OVS_TRAFFIC_VSWITCHD_STOP +@@ -925,6 +1023,7 @@ OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP AT_SETUP([datapath - ping over ip6erspan v2 tunnel by simulated packets]) @@ -11343,7 +11614,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -1981,6 +2045,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= +@@ -1981,6 +2080,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -11455,7 +11726,7 @@ index f400cfabc9..26fea94a4d 100644 AT_SETUP([conntrack - multiple bridges]) CHECK_CONNTRACK() OVS_TRAFFIC_VSWITCHD_START( -@@ -2384,6 +2553,15 @@ NXST_FLOW reply: +@@ -2384,6 +2588,15 @@ NXST_FLOW reply: table=1, priority=100,ct_state=+est+trk,in_port=1 actions=output:2 ]) @@ -11471,7 +11742,7 @@ index f400cfabc9..26fea94a4d 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -3305,6 +3483,46 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING +@@ -3305,6 +3518,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 @@ -11518,7 +11789,7 @@ index f400cfabc9..26fea94a4d 100644 AT_SETUP([conntrack - resubmit to ct multiple times]) CHECK_CONNTRACK() -@@ -3464,15 +3682,15 @@ action=normal +@@ -3464,15 +3717,15 @@ action=normal AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) @@ -11537,7 +11808,7 @@ index f400cfabc9..26fea94a4d 100644 "1616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161610a, actions=ct(table=1)"]) AT_CHECK([ovs-appctl dpctl/dump-flows | head -2 | tail -1 | grep -q -e ["]udp[(]src=5001["]]) -@@ -5817,7 +6035,7 @@ on_exit 'ovs-appctl revalidator/purge' +@@ -5817,7 +6070,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 @@ -11546,7 +11817,7 @@ index f400cfabc9..26fea94a4d 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 -@@ -6106,6 +6324,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE +@@ -6106,6 +6359,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -12279,7 +12550,7 @@ index daa55dab7b..57572cd3ed 100644 idltest_simple3_index_destroy_row(equal); diff --git a/tests/test-ovsdb.py b/tests/test-ovsdb.py -index 5bc0bf6814..853264f22b 100644 +index 5bc0bf6814..402cacbe9d 100644 --- a/tests/test-ovsdb.py +++ b/tests/test-ovsdb.py @@ -232,75 +232,87 @@ def get_singleton_table_printable_row(row): @@ -12383,6 +12654,15 @@ index 5bc0bf6814..853264f22b 100644 n += 1 if not n: +@@ -608,7 +620,7 @@ def update_condition(idl, commands): + commands = commands[len("condition "):].split(";") + for command in commands: + command = command.split(" ") +- if(len(command) != 2): ++ if len(command) != 2: + sys.stderr.write("Error parsing condition %s\n" % command) + sys.exit(1) + @@ -701,6 +713,12 @@ def do_idl(schema_file, remote, *commands): step += 1 @@ -12708,6 +12988,19 @@ index b8ae7caa9b..fd482aa872 100644 ]) OVS_VSWITCHD_STOP +diff --git a/utilities/bugtool/ovs-bugtool.in b/utilities/bugtool/ovs-bugtool.in +index fa62cbe949..fee0de8532 100755 +--- a/utilities/bugtool/ovs-bugtool.in ++++ b/utilities/bugtool/ovs-bugtool.in +@@ -956,7 +956,7 @@ def load_plugins(just_capabilities=False, filter=None): + filters = [] + else: + filters = filters_tmp.split(',') +- if not(filter is None or filter in filters): ++ if not (filter is None or filter in filters): + continue + if el.tagName == "files": + newest_first = getBoolAttr(el, 'newest_first') diff --git a/utilities/ovs-ctl.in b/utilities/ovs-ctl.in index 71800795c0..e6e07f4763 100644 --- a/utilities/ovs-ctl.in diff --git a/SPECS/openvswitch2.16.spec b/SPECS/openvswitch2.16.spec index cce708f..d38a50d 100644 --- a/SPECS/openvswitch2.16.spec +++ b/SPECS/openvswitch2.16.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 2.16.0 -Release: 88%{?dist} +Release: 90%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -699,6 +699,23 @@ exit 0 %endif %changelog +* Thu Aug 04 2022 Open vSwitch CI - 2.16.0-90 +- Merging upstream branch-2.16 [RH git: d31b5a2a53] + Commit list: + 27936e0f9a python: Fix E275 missing whitespace after keyword. + 0d3a67c462 dpif-netlink: Fix incorrect bit shift in compat mode. + 4e319c98fa packets: Re-calculate IPv6 checksum only for first frag upon modify. + + +* Fri Jul 29 2022 Open vSwitch CI - 2.16.0-89 +- Merging upstream branch-2.16 [RH git: a9d421666d] + Commit list: + 2de2ef224e libopenvswitch.pc: Add missing libs for a static build. + bdf147c584 rhel: Stop installing internal headers. + a48436481a netdev-linux: Do not touch LAG members if master is not attached to OVS. + 9cc1335f91 netdev: Clear auto_classified if netdev reopened with the type specified. + + * Mon Jul 25 2022 Open vSwitch CI - 2.16.0-88 - Merging upstream branch-2.16 [RH git: 11b35522e2] Commit list: