From 738d3fc2916e8f532a0f0b8bb69824a57ebeb88a Mon Sep 17 00:00:00 2001 From: Open vSwitch CI Date: Nov 03 2022 02:22:57 +0000 Subject: Import openvswitch2.16-2.16.0-105 from Fast DataPath --- diff --git a/SOURCES/openvswitch-2.16.0.patch b/SOURCES/openvswitch-2.16.0.patch index c899ef8..9a850ae 100644 --- a/SOURCES/openvswitch-2.16.0.patch +++ b/SOURCES/openvswitch-2.16.0.patch @@ -1,5 +1,5 @@ diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh -index 863f023888..c06e88c577 100755 +index 863f023888..dd0a578508 100755 --- a/.ci/linux-build.sh +++ b/.ci/linux-build.sh @@ -216,7 +216,7 @@ fi @@ -7,7 +7,7 @@ index 863f023888..c06e88c577 100755 if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then if [ -z "$DPDK_VER" ]; then - DPDK_VER="20.11.1" -+ DPDK_VER="20.11.4" ++ DPDK_VER="20.11.6" fi install_dpdk $DPDK_VER if [ "$CC" = "clang" ]; then @@ -23,10 +23,10 @@ index 863f023888..c06e88c577 100755 save_OPTS="${OPTS} $*" diff --git a/.ci/linux-prepare.sh b/.ci/linux-prepare.sh -index c55125cf78..c0b7473eda 100755 +index c55125cf78..fb1bcea7cd 100755 --- a/.ci/linux-prepare.sh +++ b/.ci/linux-prepare.sh -@@ -20,9 +20,13 @@ cd sparse +@@ -20,10 +20,14 @@ cd sparse make -j4 HAVE_LLVM= HAVE_SQLITE= install cd .. @@ -38,10 +38,12 @@ index c55125cf78..c0b7473eda 100755 pip3 install --disable-pip-version-check --user \ - flake8 hacking sphinx pyOpenSSL wheel setuptools -pip3 install --user --upgrade docutils +-pip3 install --user 'meson==0.47.1' + flake8 'hacking>=3.0' sphinx setuptools - pip3 install --user 'meson==0.47.1' ++pip3 install --user 'meson==0.48.1' if [ "$M32" ]; then + # Installing 32-bit libraries. diff --git a/.cirrus.yml b/.cirrus.yml index 358f2ba256..29be50029b 100644 --- a/.cirrus.yml @@ -66,7 +68,7 @@ index 358f2ba256..29be50029b 100644 COMPILER: gcc COMPILER: clang diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml -index e2350c6d9d..2074c1de0e 100644 +index e2350c6d9d..8398d124e6 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -6,7 +6,7 @@ jobs: @@ -87,24 +89,82 @@ index e2350c6d9d..2074c1de0e 100644 timeout-minutes: 30 strategy: -@@ -127,7 +127,7 @@ jobs: +@@ -111,7 +111,7 @@ jobs: + + steps: + - name: checkout +- uses: actions/checkout@v2 ++ uses: actions/checkout@v3 + + - name: fix up /etc/hosts + # https://github.com/actions/virtual-environments/issues/3353 +@@ -125,9 +125,9 @@ jobs: + echo "$HOME/.local/bin" >> $GITHUB_PATH + - name: set up python - uses: actions/setup-python@v2 +- uses: actions/setup-python@v2 ++ uses: actions/setup-python@v4 with: - python-version: '3.x' + python-version: '3.9' - name: create ci signature file for the dpdk cache key if: matrix.dpdk != '' || matrix.dpdk_shared != '' -@@ -215,7 +215,7 @@ jobs: +@@ -141,7 +141,7 @@ jobs: + + - name: cache + if: matrix.dpdk != '' || matrix.dpdk_shared != '' +- uses: actions/cache@v2 ++ uses: actions/cache@v3 + env: + matrix_key: ${{ matrix.dpdk }}${{ matrix.dpdk_shared }} + ci_key: ${{ hashFiles('dpdk-ci-signature') }} +@@ -169,7 +169,7 @@ jobs: + + - name: upload deb packages + if: matrix.deb_package != '' +- uses: actions/upload-artifact@v2 ++ uses: actions/upload-artifact@v3 + with: + name: deb-packages + path: '/home/runner/work/ovs/*.deb' +@@ -188,7 +188,7 @@ jobs: + + - name: upload logs on failure + if: failure() || cancelled() +- uses: actions/upload-artifact@v2 ++ uses: actions/upload-artifact@v3 + with: + name: logs-linux-${{ join(matrix.*, '-') }} + path: logs.tgz +@@ -207,15 +207,15 @@ jobs: + + steps: + - name: checkout +- uses: actions/checkout@v2 ++ uses: actions/checkout@v3 + - name: update PATH + run: | + echo "$HOME/bin" >> $GITHUB_PATH + echo "$HOME/.local/bin" >> $GITHUB_PATH - name: set up python - uses: actions/setup-python@v2 +- uses: actions/setup-python@v2 ++ uses: actions/setup-python@v4 with: - python-version: '3.x' + python-version: '3.9' - name: install dependencies run: brew install automake libtool - name: prepare +@@ -224,7 +224,7 @@ jobs: + run: ./.ci/osx-build.sh + - name: upload logs on failure + if: failure() +- uses: actions/upload-artifact@v2 ++ uses: actions/upload-artifact@v3 + with: + name: logs-osx-clang---disable-ssl + path: config.log diff --git a/.travis.yml b/.travis.yml index 51d0511080..c7aeede06e 100644 --- a/.travis.yml @@ -118,7 +178,7 @@ index 51d0511080..c7aeede06e 100644 - python3-sphinx - libelf-dev diff --git a/Documentation/faq/releases.rst b/Documentation/faq/releases.rst -index 68c9867b19..d62d575eba 100644 +index 68c9867b19..9778229840 100644 --- a/Documentation/faq/releases.rst +++ b/Documentation/faq/releases.rst @@ -205,10 +205,10 @@ Q: What DPDK version does each Open vSwitch release work with? @@ -129,15 +189,15 @@ index 68c9867b19..d62d575eba 100644 - 2.14.x 19.11.8 - 2.15.x 20.11.1 - 2.16.x 20.11.1 -+ 2.13.x 19.11.10 -+ 2.14.x 19.11.10 -+ 2.15.x 20.11.4 -+ 2.16.x 20.11.4 ++ 2.13.x 19.11.13 ++ 2.14.x 19.11.13 ++ 2.15.x 20.11.6 ++ 2.16.x 20.11.6 ============ ======== Q: Are all the DPDK releases that OVS versions work with maintained? diff --git a/Documentation/intro/install/dpdk.rst b/Documentation/intro/install/dpdk.rst -index d8fa931fab..9ce5285c58 100644 +index d8fa931fab..8bc6043f7b 100644 --- a/Documentation/intro/install/dpdk.rst +++ b/Documentation/intro/install/dpdk.rst @@ -42,7 +42,7 @@ Build requirements @@ -145,7 +205,7 @@ index d8fa931fab..9ce5285c58 100644 vSwitch with DPDK will require the following: -- DPDK 20.11.1 -+- DPDK 20.11.4 ++- DPDK 20.11.6 - A `DPDK supported NIC`_ @@ -156,9 +216,9 @@ index d8fa931fab..9ce5285c58 100644 - $ wget https://fast.dpdk.org/rel/dpdk-20.11.1.tar.xz - $ tar xf dpdk-20.11.1.tar.xz - $ export DPDK_DIR=/usr/src/dpdk-stable-20.11.1 -+ $ wget https://fast.dpdk.org/rel/dpdk-20.11.4.tar.xz -+ $ tar xf dpdk-20.11.4.tar.xz -+ $ export DPDK_DIR=/usr/src/dpdk-stable-20.11.4 ++ $ wget https://fast.dpdk.org/rel/dpdk-20.11.6.tar.xz ++ $ tar xf dpdk-20.11.6.tar.xz ++ $ export DPDK_DIR=/usr/src/dpdk-stable-20.11.6 $ cd $DPDK_DIR #. Configure and install DPDK using Meson @@ -217,13 +277,33 @@ index 95fa7af128..c1a35eb13a 100644 is discussed here. diff --git a/NEWS b/NEWS -index 559a51ba3f..c3c5c16ae6 100644 +index 559a51ba3f..9b4a0d6c7d 100644 --- a/NEWS +++ b/NEWS -@@ -1,3 +1,39 @@ -+v2.16.5 - xx xxx xxxx +@@ -1,3 +1,59 @@ ++v2.16.6 - xx xxx xxxx +--------------------- + ++v2.16.5 - 07 Oct 2022 ++--------------------- ++ - Bug fixes ++ - DPDK: ++ * OVS validated with DPDK 20.11.6. ++ DPDK 20.11.6 requires a meson version of 0.48.1 or higher. ++ A bug was introduced in DPDK 20.11.5 by the commit ++ 33f2e3756186 ("vhost: fix unsafe vring addresses modifications"). ++ This bug can cause a deadlock when vIOMMU is enabled and NUMA ++ reallocation of the virtqueues happen. ++ A fix has been posted and pushed to the DPDK 20.11 branch. ++ It can be found here: ++ https://patches.dpdk.org/project/dpdk/patch/20220725203206.427083-2-david.marchand@redhat.com/. ++ If a user wishes to avoid the issue then it is recommended to use ++ DPDK 20.11.4 until the release of DPDK 20.11.7. ++ It should be noted that DPDK 20.11.4 does not benefit from the numerous ++ bug fixes addressed since its release. ++ If a user wishes to benefit from these fixes it is recommended to use ++ DPDK 20.11.6. ++ +v2.16.4 - 15 Jun 2022 +--------------------- + - Bug fixes @@ -297,7 +377,7 @@ index dba365ea1a..1b957c3dcd 100644 AC_ARG_ENABLE( [sparse], diff --git a/configure.ac b/configure.ac -index 16b32be965..406df116ee 100644 +index 16b32be965..2a957c1e09 100644 --- a/configure.ac +++ b/configure.ac @@ -13,7 +13,7 @@ @@ -305,7 +385,7 @@ index 16b32be965..406df116ee 100644 AC_PREREQ(2.63) -AC_INIT(openvswitch, 2.16.0, bugs@openvswitch.org) -+AC_INIT(openvswitch, 2.16.5, bugs@openvswitch.org) ++AC_INIT(openvswitch, 2.16.6, bugs@openvswitch.org) AC_CONFIG_SRCDIR([datapath/datapath.c]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([build-aux]) @@ -836,15 +916,21 @@ index 4cce92f66c..bc18c56b81 100644 #define nf_conntrack_in rpl_nf_conntrack_in #endif /* HAVE_NF_CONNTRACK_IN_TAKES_NF_HOOK_STATE */ diff --git a/debian/changelog b/debian/changelog -index 239d210b96..522e10b0e5 100644 +index 239d210b96..e749ad5f28 100644 --- a/debian/changelog +++ b/debian/changelog -@@ -1,3 +1,33 @@ +@@ -1,3 +1,39 @@ ++openvswitch (2.16.6-1) unstable; urgency=low ++ [ Open vSwitch team ] ++ * New upstream version ++ ++ -- Open vSwitch team Fri, 07 Oct 2022 13:12:46 +0200 ++ +openvswitch (2.16.5-1) unstable; urgency=low + [ Open vSwitch team ] + * New upstream version + -+ -- Open vSwitch team Wed, 15 Jun 2022 12:03:55 +0200 ++ -- Open vSwitch team Fri, 07 Oct 2022 13:12:46 +0200 + +openvswitch (2.16.4-1) unstable; urgency=low + [ Open vSwitch team ] @@ -82047,6 +82133,19 @@ index 551c2061a7..b8183faa2d 100644 | conn->nat_info->min_port); hash = ct_endpoint_hash_add(hash, &conn->key.src); hash = ct_endpoint_hash_add(hash, &conn->key.dst); +diff --git a/lib/daemon-unix.c b/lib/daemon-unix.c +index 34d45b82a1..31db2d2c7c 100644 +--- a/lib/daemon-unix.c ++++ b/lib/daemon-unix.c +@@ -393,6 +393,8 @@ monitor_daemon(pid_t daemon_pid) + } + + log_received_backtrace(daemonize_fd); ++ close(daemonize_fd); ++ daemonize_fd = -1; + + /* Throttle restarts to no more than once every 10 seconds. */ + if (time(NULL) < last_restart + 10) { diff --git a/lib/db-ctl-base.c b/lib/db-ctl-base.c index 77cc76a9f6..7074561588 100644 --- a/lib/db-ctl-base.c @@ -83779,7 +83878,7 @@ index 45a96b9be2..738fb44b3c 100644 return; } diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c -index 60dd138914..c94cfc2ab7 100644 +index 60dd138914..25aeabfcbe 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -247,6 +247,14 @@ enum { @@ -83834,7 +83933,43 @@ index 60dd138914..c94cfc2ab7 100644 nl_msg_end_nested(request, offset); nl_msg_end_nested(request, act_offset); } -@@ -6285,7 +6296,14 @@ get_stats_via_netlink(const struct netdev *netdev_, struct netdev_stats *stats) +@@ -2960,12 +2971,18 @@ netdev_linux_set_qos(struct netdev *netdev_, + /* Delete existing qdisc. */ + error = tc_del_qdisc(netdev_); + if (error) { ++ VLOG_WARN_RL(&rl, "%s: Failed to delete existing qdisc: %s", ++ netdev_get_name(netdev_), ovs_strerror(error)); + goto exit; + } + ovs_assert(netdev->tc == NULL); + + /* Install new qdisc. */ + error = new_ops->tc_install(netdev_, details); ++ if (error) { ++ VLOG_WARN_RL(&rl, "%s: Failed to install new qdisc: %s", ++ netdev_get_name(netdev_), ovs_strerror(error)); ++ } + ovs_assert((error == 0) == (netdev->tc != NULL)); + } + +@@ -5956,13 +5973,12 @@ tc_del_qdisc(struct netdev *netdev_) + if (!tcmsg) { + return ENODEV; + } +- tcmsg->tcm_handle = tc_make_handle(1, 0); + tcmsg->tcm_parent = TC_H_ROOT; + + error = tc_transact(&request, NULL); +- if (error == EINVAL) { +- /* EINVAL probably means that the default qdisc was in use, in which +- * case we've accomplished our purpose. */ ++ if (error == EINVAL || error == ENOENT) { ++ /* EINVAL or ENOENT probably means that the default qdisc was in use, ++ * in which case we've accomplished our purpose. */ + error = 0; + } + if (!error && netdev->tc) { +@@ -6285,7 +6301,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)) { @@ -83850,7 +83985,7 @@ index 60dd138914..c94cfc2ab7 100644 error = 0; } else { a = nl_attr_find(reply, 0, IFLA_STATS); -@@ -6401,6 +6419,9 @@ netdev_linux_update_via_netlink(struct netdev_linux *netdev) +@@ -6401,6 +6424,9 @@ netdev_linux_update_via_netlink(struct netdev_linux *netdev) if (netdev_linux_netnsid_is_remote(netdev)) { nl_msg_put_u32(&request, IFLA_IF_NETNSID, netdev->netnsid); } @@ -86440,8 +86575,46 @@ index e4b42b0594..877bca3127 100644 int tnl_neigh_lookup(const char dev_name[IFNAMSIZ], const struct in6_addr *dst, struct eth_addr *mac); void tnl_neigh_cache_init(void); +diff --git a/lib/unaligned.h b/lib/unaligned.h +index f40e4e10df..15334e3c76 100644 +--- a/lib/unaligned.h ++++ b/lib/unaligned.h +@@ -95,7 +95,7 @@ GCC_UNALIGNED_ACCESSORS(ovs_be64, be64); + static inline uint16_t get_unaligned_u16(const uint16_t *p_) + { + const uint8_t *p = (const uint8_t *) p_; +- return ntohs((p[0] << 8) | p[1]); ++ return ntohs(((uint16_t) p[0] << 8) | (uint16_t) p[1]); + } + + static inline void put_unaligned_u16(uint16_t *p_, uint16_t x_) +@@ -110,7 +110,8 @@ static inline void put_unaligned_u16(uint16_t *p_, uint16_t x_) + static inline uint32_t get_unaligned_u32(const uint32_t *p_) + { + const uint8_t *p = (const uint8_t *) p_; +- return ntohl((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]); ++ return ntohl(((uint32_t) p[0] << 24) | ((uint32_t) p[1] << 16) | ++ ((uint32_t) p[2] << 8) | (uint32_t) p[3]); + } + + static inline void put_unaligned_u32(uint32_t *p_, uint32_t x_) +@@ -131,10 +132,10 @@ static inline uint64_t get_unaligned_u64__(const uint64_t *p_) + | ((uint64_t) p[1] << 48) + | ((uint64_t) p[2] << 40) + | ((uint64_t) p[3] << 32) +- | (p[4] << 24) +- | (p[5] << 16) +- | (p[6] << 8) +- | p[7]); ++ | ((uint64_t) p[4] << 24) ++ | ((uint64_t) p[5] << 16) ++ | ((uint64_t) p[6] << 8) ++ | (uint64_t) p[7]); + } + + static inline void put_unaligned_u64__(uint64_t *p_, uint64_t x_) diff --git a/ofproto/bond.c b/ofproto/bond.c -index a4116588f4..e07d12e58a 100644 +index a4116588f4..560380504a 100644 --- a/ofproto/bond.c +++ b/ofproto/bond.c @@ -185,10 +185,14 @@ static struct bond_member *choose_output_member(const struct bond *, @@ -86485,6 +86658,15 @@ index a4116588f4..e07d12e58a 100644 revalidate = bond->bond_revalidate; bond->bond_revalidate = false; ovs_rwlock_unlock(&rwlock); +@@ -871,7 +887,7 @@ bond_check_admissibility(struct bond *bond, const void *member_, + if (!member->enabled && member->may_enable) { + VLOG_DBG_RL(&rl, "bond %s: member %s: " + "main thread has not yet enabled member", +- bond->name, bond->active_member->name); ++ bond->name, member->name); + } + goto out; + case LACP_CONFIGURED: @@ -1033,7 +1049,7 @@ bond_may_recirc(const struct bond *bond) } @@ -90616,6 +90798,48 @@ index cdcd72c156..f652b59837 100644 AT_BANNER([conjunctive match]) AT_SETUP([single conjunctive match]) +diff --git a/tests/dpif-netdev.at b/tests/dpif-netdev.at +index 53eee185ad..d31502f64b 100644 +--- a/tests/dpif-netdev.at ++++ b/tests/dpif-netdev.at +@@ -6,8 +6,8 @@ m4_divert_push([PREPARE_TESTS]) + # that vary from one run to another (e.g., timing and bond actions). + strip_timers () { + sed ' +- s/duration:[0-9]*\.[0-9]*/duration:0.0/ +- s/used:[0-9]*\.[0-9]*/used:0.0/ ++ s/duration:[0-9\.][0-9\.]*/duration:0.0/ ++ s/used:[0-9\.][0-9\.]*/used:0.0/ + ' + } + +@@ -15,7 +15,7 @@ strip_xout () { + sed ' + s/mega_ufid:[-0-9a-f]* // + s/ufid:[-0-9a-f]* // +- s/used:[0-9]*\.[0-9]*/used:0.0/ ++ s/used:[0-9\.][0-9\.]*/used:0.0/ + s/actions:.*/actions: / + s/packets:[0-9]*/packets:0/ + s/bytes:[0-9]*/bytes:0/ +@@ -26,7 +26,7 @@ strip_xout_keep_actions () { + sed ' + s/mega_ufid:[-0-9a-f]* // + s/ufid:[-0-9a-f]* // +- s/used:[0-9]*\.[0-9]*/used:0.0/ ++ s/used:[0-9\.][0-9\.]*/used:0.0/ + s/packets:[0-9]*/packets:0/ + s/bytes:[0-9]*/bytes:0/ + ' | sort +@@ -51,7 +51,7 @@ filter_hw_packet_netdev_dummy () { + filter_flow_dump () { + grep 'flow_dump ' | sed ' + s/.*flow_dump // +- s/used:[0-9]*\.[0-9]*/used:0.0/ ++ s/used:[0-9\.][0-9\.]*/used:0.0/ + ' | sort | uniq + } + diff --git a/tests/drop-stats.at b/tests/drop-stats.at index f3e19cd83b..1d3af98dab 100644 --- a/tests/drop-stats.at @@ -92231,6 +92455,19 @@ index 0f74709f5a..5bca84351c 100644 run should send probe in IDLE for 0 ms (1000 ms backoff) +diff --git a/tests/stp.at b/tests/stp.at +index 7ddacfc3a0..69475843e5 100644 +--- a/tests/stp.at ++++ b/tests/stp.at +@@ -368,7 +368,7 @@ AT_CLEANUP + # Strips out uninteresting parts of flow output, as well as parts + # that vary from one run to another (e.g., timing and bond actions). + m4_define([STRIP_USED], [[sed ' +- s/used:[0-9]*\.[0-9]*/used:0.0/ ++ s/used:[0-9\.][0-9\.]*/used:0.0/ + s/duration=[0-9.]*s*/duration=Xs/ + s/idle_age=[0-9]*,/idle_age=X,/ + ']]) diff --git a/tests/system-common-macros.at b/tests/system-common-macros.at index 19a0b125b9..8b9f5c7525 100644 --- a/tests/system-common-macros.at @@ -92313,7 +92550,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 f400cfabc9..0f09d37139 100644 +index f400cfabc9..bb7b77ebb7 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 @@ -92556,7 +92793,50 @@ index f400cfabc9..0f09d37139 100644 OVS_CHECK_MIN_KERNEL(3, 10) OVS_TRAFFIC_VSWITCHD_START() -@@ -1981,6 +2085,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= +@@ -1454,6 +1558,42 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep "in_port=4" | ofctl_strip], [0], [dnl + OVS_TRAFFIC_VSWITCHD_STOP + AT_CLEANUP + ++AT_BANNER([QoS]) ++ ++AT_SETUP([QoS - basic configuration]) ++AT_SKIP_IF([test $HAVE_TC = no]) ++OVS_TRAFFIC_VSWITCHD_START() ++ ++ADD_NAMESPACES(at_ns0, at_ns1) ++ ++ADD_VETH(p0, at_ns0, br0, "10.1.1.1/24") ++ADD_VETH(p1, at_ns1, br0, "10.1.1.2/24") ++ ++dnl Adding a custom qdisc to ovs-p1, ovs-p0 will have the default qdisc. ++AT_CHECK([tc qdisc add dev ovs-p1 root noqueue]) ++AT_CHECK([tc qdisc show dev ovs-p1 | grep -q noqueue]) ++ ++dnl Configure the same QoS for both ports. ++AT_CHECK([ovs-vsctl set port ovs-p0 qos=@qos -- set port ovs-p1 qos=@qos dnl ++ -- --id=@qos create qos dnl ++ type=linux-htb other-config:max-rate=3000000 queues:0=@queue dnl ++ -- --id=@queue create queue dnl ++ other_config:min-rate=2000000 other_config:max-rate=3000000 dnl ++ other_config:burst=3000000], ++ [ignore], [ignore]) ++ ++dnl Wait for qdiscs to be applied. ++OVS_WAIT_UNTIL([tc qdisc show dev ovs-p0 | grep -q htb]) ++OVS_WAIT_UNTIL([tc qdisc show dev ovs-p1 | grep -q htb]) ++ ++dnl Check the configuration. ++m4_define([HTB_CONF], [rate 2Mbit ceil 3Mbit burst 375000b cburst 375000b]) ++AT_CHECK([tc class show dev ovs-p0 | grep -q 'class htb .* HTB_CONF']) ++AT_CHECK([tc class show dev ovs-p1 | grep -q 'class htb .* HTB_CONF']) ++ ++OVS_TRAFFIC_VSWITCHD_STOP ++AT_CLEANUP ++ + AT_BANNER([conntrack]) + + AT_SETUP([conntrack - controller]) +@@ -1981,6 +2121,111 @@ tcp,orig=(src=10.1.1.3,dst=10.1.1.4,sport=,dport=),reply=(src= OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -92668,7 +92948,7 @@ index f400cfabc9..0f09d37139 100644 AT_SETUP([conntrack - multiple bridges]) CHECK_CONNTRACK() OVS_TRAFFIC_VSWITCHD_START( -@@ -2384,6 +2593,15 @@ NXST_FLOW reply: +@@ -2384,6 +2629,15 @@ NXST_FLOW reply: table=1, priority=100,ct_state=+est+trk,in_port=1 actions=output:2 ]) @@ -92684,7 +92964,7 @@ index f400cfabc9..0f09d37139 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -2749,6 +2967,11 @@ AT_CHECK([ovs-ofctl bundle br0 bundle.txt]) +@@ -2749,6 +3003,11 @@ AT_CHECK([ovs-ofctl bundle br0 bundle.txt]) AT_CHECK([ovs-appctl dpctl/dump-conntrack | FORMAT_CT(10.1.1.2)], [0], [dnl ]) @@ -92696,7 +92976,7 @@ index f400cfabc9..0f09d37139 100644 OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP -@@ -3305,6 +3528,46 @@ NS_CHECK_EXEC([at_ns0], [ping6 -s 3200 -q -c 3 -i 0.3 -w 2 fc00::2 | FORMAT_PING +@@ -3305,6 +3564,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 @@ -92743,7 +93023,7 @@ index f400cfabc9..0f09d37139 100644 AT_SETUP([conntrack - resubmit to ct multiple times]) CHECK_CONNTRACK() -@@ -3464,15 +3727,15 @@ action=normal +@@ -3464,15 +3763,15 @@ action=normal AT_CHECK([ovs-ofctl --bundle add-flows br0 flows.txt]) @@ -92762,7 +93042,7 @@ index f400cfabc9..0f09d37139 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 +6080,7 @@ on_exit 'ovs-appctl revalidator/purge' +@@ -5817,7 +6116,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 @@ -92771,7 +93051,7 @@ index f400cfabc9..0f09d37139 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 +6369,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE +@@ -6106,6 +6405,132 @@ AT_CHECK([ovs-ofctl dump-flows br0 | grep table=2, | OFPROTO_CLEAR_DURATION_IDLE OVS_TRAFFIC_VSWITCHD_STOP AT_CLEANUP @@ -93708,6 +93988,18 @@ index 965f3c49f3..bb17092bf0 100644 +} + +OVSTEST_REGISTER("test-rcu", test_rcu); +diff --git a/tests/test-vconn.c b/tests/test-vconn.c +index fc8ce4a2c0..96c89bd4e6 100644 +--- a/tests/test-vconn.c ++++ b/tests/test-vconn.c +@@ -157,6 +157,7 @@ test_refuse_connection(struct ovs_cmdl_context *ctx) + error = vconn_connect_block(vconn, (TIMEOUT - 2) * 1000); + if (!strcmp(type, "tcp")) { + if (error != ECONNRESET && error != EPIPE && error != ETIMEDOUT ++ && error != ECONNREFUSED + #ifdef _WIN32 + && error != WSAECONNRESET + #endif diff --git a/tests/tunnel-push-pop-ipv6.at b/tests/tunnel-push-pop-ipv6.at index 59723e63b8..c7665a1aeb 100644 --- a/tests/tunnel-push-pop-ipv6.at @@ -94073,3 +94365,16 @@ index cb7c5cb769..c790a56adf 100644 mirror_destroy(m); } } +diff --git a/vswitchd/vswitch.xml b/vswitchd/vswitch.xml +index 24bfd13bbb..482264e6fc 100644 +--- a/vswitchd/vswitch.xml ++++ b/vswitchd/vswitch.xml +@@ -2302,7 +2302,7 @@ + lowest port-id is elected as the root. + + +- + The port path cost. The Port's contribution, when it is + the Root Port, to the Root Path Cost for the Bridge. By default the diff --git a/SPECS/openvswitch2.16.spec b/SPECS/openvswitch2.16.spec index a83f59e..6636c90 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: 103%{?dist} +Release: 105%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -699,6 +699,27 @@ exit 0 %endif %changelog +* Wed Nov 02 2022 Open vSwitch CI - 2.16.0-105 +- Merging upstream branch-2.16 [RH git: f0d9ff1c0c] + Commit list: + d28eff1755 netdev-linux: Fix inability to apply QoS on ports with custom qdiscs. (#2138339) + 89e1a2c934 vswitch.xml: Fix the name of rstp-path-cost option. + df90768de3 bond: Fix crash while logging not yet enabled member. + + +* Sun Oct 30 2022 Timothy Redaelli - 2.16.0-104 +- Merging upstream branch-2.16 [RH git: 02276d0fef] + Commit list: + 91932ecfc1 unaligned: Correct the stats of packet_count and byte_count on Windows. + f9a04f7e6b tests: Fix filtering of whole-second durations. + 68fc14a3fd github: Update versions of action dependencies. + 3d38056adf Prepare for 2.16.6. + 2b931cd850 Set release date for 2.16.5. + faeb53076c daemon-unix: Fix file descriptor leak when monitor restarts child. + fd59944808 vconn: Allow ECONNREFUSED in refuse connection test. + 11cefbb5f6 dpdk: Use DPDK 20.11.6 release. + + * Tue Oct 11 2022 Aaron Conole - 2.16.0-103 - netdev-linux: Skip some internal kernel stats gathering. [RH git: ce553c99e2] (#2118848) For netdev_linux_update_via_netlink(), hint to the kernel that