diff --git a/SOURCES/openvswitch-2.17.0.patch b/SOURCES/openvswitch-2.17.0.patch
index 6b336f3..0151798 100644
--- a/SOURCES/openvswitch-2.17.0.patch
+++ b/SOURCES/openvswitch-2.17.0.patch
@@ -1,8 +1,8 @@
diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
-index 6cd38ff3ef..74872753d0 100755
+index 6cd38ff3ef..f5021e1a8f 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
-@@ -220,7 +220,7 @@ fi
+@@ -220,11 +220,15 @@ fi
if [ "$DPDK" ] || [ "$DPDK_SHARED" ]; then
if [ -z "$DPDK_VER" ]; then
@@ -11,7 +11,15 @@ index 6cd38ff3ef..74872753d0 100755
fi
install_dpdk $DPDK_VER
fi
-@@ -233,7 +233,7 @@ elif [ "$M32" ]; then
+
++if [ "$STD" ]; then
++ CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} -std=$STD"
++fi
++
+ if [ "$CC" = "clang" ]; then
+ CFLAGS_FOR_OVS="${CFLAGS_FOR_OVS} -Wno-error=unused-command-line-argument"
+ elif [ "$M32" ]; then
+@@ -233,7 +237,7 @@ elif [ "$M32" ]; then
# difference on 'configure' and 'make' stages.
export CC="$CC -m32"
elif [ "$TRAVIS_ARCH" != "aarch64" ]; then
@@ -20,7 +28,7 @@ index 6cd38ff3ef..74872753d0 100755
if [ "$AFXDP" ]; then
# netdev-afxdp uses memset for 64M for umem initialization.
SPARSE_FLAGS="${SPARSE_FLAGS} -Wno-memcpy-max-count"
-@@ -244,9 +244,7 @@ fi
+@@ -244,9 +248,7 @@ fi
if [ "$ASAN" ]; then
# This will override default option configured in tests/atlocal.in.
export ASAN_OPTIONS='detect_leaks=1'
@@ -73,7 +81,7 @@ index a7ae793bc4..c460103bb1 100644
memory: 4G
diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml
-index eac3504e48..6ccab8e908 100644
+index eac3504e48..c923df3ea7 100644
--- a/.github/workflows/build-and-test.yml
+++ b/.github/workflows/build-and-test.yml
@@ -6,7 +6,7 @@ jobs:
@@ -85,7 +93,11 @@ index eac3504e48..6ccab8e908 100644
libssl-dev llvm-dev libelf-dev libnuma-dev libpcap-dev \
ninja-build selinux-policy-dev
deb_dependencies: |
-@@ -25,7 +25,7 @@ jobs:
+@@ -22,10 +22,11 @@ jobs:
+ LIBS: ${{ matrix.libs }}
+ M32: ${{ matrix.m32 }}
+ OPTS: ${{ matrix.opts }}
++ STD: ${{ matrix.std }}
TESTSUITE: ${{ matrix.testsuite }}
name: linux ${{ join(matrix.*, ' ') }}
@@ -94,7 +106,19 @@ index eac3504e48..6ccab8e908 100644
timeout-minutes: 30
strategy:
-@@ -111,7 +111,7 @@ jobs:
+@@ -37,6 +38,11 @@ jobs:
+ - compiler: clang
+ opts: --disable-ssl
+
++ - compiler: gcc
++ std: c99
++ - compiler: clang
++ std: c99
++
+ - compiler: gcc
+ testsuite: test
+ kernel: 3.16
+@@ -111,7 +117,7 @@ jobs:
steps:
- name: checkout
@@ -103,7 +127,7 @@ index eac3504e48..6ccab8e908 100644
- name: update PATH
run: |
-@@ -119,7 +119,7 @@ jobs:
+@@ -119,7 +125,7 @@ jobs:
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: set up python
@@ -112,7 +136,7 @@ index eac3504e48..6ccab8e908 100644
with:
python-version: '3.9'
-@@ -135,7 +135,7 @@ jobs:
+@@ -135,7 +141,7 @@ jobs:
- name: cache
if: matrix.dpdk != '' || matrix.dpdk_shared != ''
@@ -121,7 +145,7 @@ index eac3504e48..6ccab8e908 100644
env:
matrix_key: ${{ matrix.dpdk }}${{ matrix.dpdk_shared }}
ci_key: ${{ hashFiles('dpdk-ci-signature') }}
-@@ -163,7 +163,7 @@ jobs:
+@@ -163,7 +169,7 @@ jobs:
- name: upload deb packages
if: matrix.deb_package != ''
@@ -130,7 +154,7 @@ index eac3504e48..6ccab8e908 100644
with:
name: deb-packages
path: '/home/runner/work/ovs/*.deb'
-@@ -182,7 +182,7 @@ jobs:
+@@ -182,7 +188,7 @@ jobs:
- name: upload logs on failure
if: failure() || cancelled()
@@ -139,7 +163,7 @@ index eac3504e48..6ccab8e908 100644
with:
name: logs-linux-${{ join(matrix.*, '-') }}
path: logs.tgz
-@@ -201,13 +201,13 @@ jobs:
+@@ -201,13 +207,13 @@ jobs:
steps:
- name: checkout
@@ -155,7 +179,7 @@ index eac3504e48..6ccab8e908 100644
with:
python-version: '3.9'
- name: install dependencies
-@@ -218,7 +218,7 @@ jobs:
+@@ -218,7 +224,7 @@ jobs:
run: ./.ci/osx-build.sh
- name: upload logs on failure
if: failure()
@@ -348,6 +372,19 @@ index 27be4aa412..1dc406170f 100644
+ `__
+.. |emeritus-status| replace:: `Emeritus Status for OVS Committers
+ `__
+diff --git a/Makefile.am b/Makefile.am
+index cb8076433e..2a41e63ad9 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -368,7 +368,7 @@ ALL_LOCAL += manpage-check
+ manpage-check: $(man_MANS) $(dist_man_MANS) $(noinst_man_MANS)
+ @error=false; \
+ for manpage in $?; do \
+- LANG=en_US.UTF-8 groff -w mac -w delim -w escape -w input -w missing -w tab -T utf8 -man -p -z $$manpage >$@.tmp 2>&1; \
++ LANG=en_US.UTF-8 groff -t -w mac -w delim -w escape -w input -w missing -w tab -T utf8 -man -p -z $$manpage >$@.tmp 2>&1; \
+ if grep warning: $@.tmp; then error=:; fi; \
+ rm -f $@.tmp; \
+ done; \
diff --git a/NEWS b/NEWS
index c10e9bfacc..673f227202 100644
--- a/NEWS
@@ -531,6 +568,37 @@ index 0c360fd1ef..c981f90bc7 100644
[], [enable_sparse=no])
AM_CONDITIONAL([ENABLE_SPARSE_BY_DEFAULT], [test $enable_sparse = yes])])
+diff --git a/build-aux/extract-ofp-fields b/build-aux/extract-ofp-fields
+index 8766995d9a..7a9788be96 100755
+--- a/build-aux/extract-ofp-fields
++++ b/build-aux/extract-ofp-fields
+@@ -578,7 +578,7 @@ def field_to_xml(field_node, f, body, summary):
+ body += [""".PP
+ \\fB%s Field\\fR
+ .TS
+-tab(;);
++tab(;),nowarn;
+ l lx.
+ """ % title]
+
+@@ -655,7 +655,7 @@ def group_xml_to_nroff(group_node, fields):
+ '.SH \"%s\"\n' % build.nroff.text_to_nroff(title.upper() + " FIELDS"),
+ '.SS "Summary:"\n',
+ '.TS\n',
+- 'tab(;);\n',
++ 'tab(;),nowarn;\n',
+ 'l l l l l l l.\n',
+ 'Name;Bytes;Mask;RW?;Prereqs;NXM/OXM Support\n',
+ '\_;\_;\_;\_;\_;\_\n']
+@@ -665,7 +665,7 @@ def group_xml_to_nroff(group_node, fields):
+ return ''.join(content)
+
+ def make_oxm_classes_xml(document):
+- s = '''tab(;);
++ s = '''tab(;),nowarn;
+ l l l.
+ Prefix;Vendor;Class
+ \_;\_;\_
diff --git a/build-aux/generate-dhparams-c b/build-aux/generate-dhparams-c
index 1884c99e1f..aca1dbca91 100755
--- a/build-aux/generate-dhparams-c
@@ -50266,6 +50334,27 @@ index 0000000000..6fae6f727c
+
+#endif /* __KERNEL__ || !HAVE_TCA_STATS_PKT64 */
+#endif /* __LINUX_GEN_STATS_WRAPPER_H */
+diff --git a/include/openvswitch/compiler.h b/include/openvswitch/compiler.h
+index cf009f8264..52614a5ac0 100644
+--- a/include/openvswitch/compiler.h
++++ b/include/openvswitch/compiler.h
+@@ -37,6 +37,16 @@
+ #define OVS_NO_RETURN
+ #endif
+
++#ifndef typeof
++#define typeof __typeof__
++#endif
++
++#ifndef __cplusplus
++#ifndef asm
++#define asm __asm__
++#endif
++#endif
++
+ #if __GNUC__ && !__CHECKER__
+ #define OVS_UNUSED __attribute__((__unused__))
+ #define OVS_PRINTF_FORMAT(FMT, ARG1) __attribute__((__format__(printf, FMT, ARG1)))
diff --git a/include/openvswitch/dynamic-string.h b/include/openvswitch/dynamic-string.h
index ee18217107..1c262b0494 100644
--- a/include/openvswitch/dynamic-string.h
@@ -50939,7 +51028,7 @@ index a8b0705d9f..631a8fca80 100755
"""Remove all OVS IPsec related state from the NSS database"""
try:
diff --git a/lib/automake.mk b/lib/automake.mk
-index a23cdc4ade..e9a5978e88 100644
+index a23cdc4ade..3c4a58ed9c 100644
--- a/lib/automake.mk
+++ b/lib/automake.mk
@@ -38,8 +38,6 @@ lib_libopenvswitchavx512_la_CFLAGS = \
@@ -50960,6 +51049,15 @@ index a23cdc4ade..e9a5978e88 100644
lib/crc32c.c \
lib/crc32c.h \
lib/csum.c \
+@@ -437,7 +437,7 @@ lib_libsflow_la_SOURCES = \
+ lib/sflow_poller.c \
+ lib/sflow_receiver.c
+ lib_libsflow_la_CPPFLAGS = $(AM_CPPFLAGS)
+-lib_libsflow_la_CFLAGS = $(AM_CFLAGS)
++lib_libsflow_la_CFLAGS = $(AM_CFLAGS) -D_BSD_SOURCE -D_DEFAULT_SOURCE
+ if HAVE_WNO_UNUSED
+ lib_libsflow_la_CFLAGS += -Wno-unused
+ endif
diff --git a/lib/cfm.c b/lib/cfm.c
index cc43e70e31..c3742f3de2 100644
--- a/lib/cfm.c
@@ -53901,10 +53999,18 @@ index e03cd8d0c5..474344194f 100644
+ }
+}
diff --git a/lib/meta-flow.xml b/lib/meta-flow.xml
-index 28865f88c8..ff81fddc5e 100644
+index 28865f88c8..fe80ee930d 100644
--- a/lib/meta-flow.xml
+++ b/lib/meta-flow.xml
-@@ -4303,9 +4303,9 @@ r r c c c.
+@@ -3517,6 +3517,7 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
+
+
+
++nowarn;
+ r r r r r.
+ Criteria OpenFlow 1.0 OpenFlow 1.1 OpenFlow 1.2+ NXM
+ \_ \_ \_ \_ \_
+@@ -4303,9 +4304,9 @@ r r c c c.
@@ -65487,6 +65593,18 @@ index 220e5c7472..8ee8a99c22 100644
/usr/share/openvswitch/vswitch.ovsschema
/usr/share/openvswitch/vtep.ovsschema
%doc NOTICE README.rst NEWS rhel/README.RHEL.rst
+diff --git a/tests/.gitignore b/tests/.gitignore
+index a3d927e5d5..4c52fb2534 100644
+--- a/tests/.gitignore
++++ b/tests/.gitignore
+@@ -3,6 +3,7 @@
+ /Makefile.in
+ /atconfig
+ /atlocal
++/clang-analyzer-results/
+ /idltest.c
+ /idltest.h
+ /idltest.ovsidl
diff --git a/tests/alb.at b/tests/alb.at
index 2bef06f39c..922185d61d 100644
--- a/tests/alb.at
@@ -72037,6 +72155,28 @@ index f639ba53a2..53c86ef2fd 100644
+[
+ AT_SKIP_IF([:])
+])
+diff --git a/tests/test-barrier.c b/tests/test-barrier.c
+index 3bc5291cc1..fb0ab0e695 100644
+--- a/tests/test-barrier.c
++++ b/tests/test-barrier.c
+@@ -14,13 +14,13 @@
+ * limitations under the License.
+ */
+
+-#include
+-
+ #include
++#undef NDEBUG
++#include
+
+-#include "ovs-thread.h"
+-#include "ovs-rcu.h"
+ #include "ovstest.h"
++#include "ovs-rcu.h"
++#include "ovs-thread.h"
+ #include "random.h"
+ #include "util.h"
+
diff --git a/tests/test-cmap.c b/tests/test-cmap.c
index 0705475606..588a5dea63 100644
--- a/tests/test-cmap.c
@@ -72226,6 +72366,25 @@ index 9259b0b3fc..e50c7c3807 100644
hmap_destroy(&hmap);
}
+diff --git a/tests/test-id-fpool.c b/tests/test-id-fpool.c
+index 25275d9aef..27800aa9ba 100644
+--- a/tests/test-id-fpool.c
++++ b/tests/test-id-fpool.c
+@@ -14,12 +14,12 @@
+ * limitations under the License.
+ */
+
++#include
+ #undef NDEBUG
+ #include
+ #include
+ #include
+-
+-#include
++#include
+
+ #include "command-line.h"
+ #include "id-fpool.h"
diff --git a/tests/test-json.c b/tests/test-json.c
index 072a537252..fa51bb31c5 100644
--- a/tests/test-json.c
@@ -72481,6 +72640,25 @@ index 6f1fb059bc..ac82f2048e 100644
}
}
}
+diff --git a/tests/test-mpsc-queue.c b/tests/test-mpsc-queue.c
+index a38bf9e6df..16aa804a03 100644
+--- a/tests/test-mpsc-queue.c
++++ b/tests/test-mpsc-queue.c
+@@ -14,12 +14,12 @@
+ * limitations under the License.
+ */
+
++#include
+ #undef NDEBUG
+ #include
+ #include
+ #include
+-
+-#include
++#include
+
+ #include "command-line.h"
+ #include "guarded-list.h"
diff --git a/tests/test-ovsdb.c b/tests/test-ovsdb.c
index ca4e87b811..cd1c31a6c2 100644
--- a/tests/test-ovsdb.c
diff --git a/SPECS/openvswitch2.17.spec b/SPECS/openvswitch2.17.spec
index b5b4760..3feec1b 100644
--- a/SPECS/openvswitch2.17.spec
+++ b/SPECS/openvswitch2.17.spec
@@ -63,7 +63,7 @@ Summary: Open vSwitch
Group: System Environment/Daemons daemon/database/utilities
URL: http://www.openvswitch.org/
Version: 2.17.0
-Release: 116%{?dist}
+Release: 117%{?dist}
# Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the
# lib/sflow*.[ch] files are SISSL
@@ -749,6 +749,18 @@ exit 0
%endif
%changelog
+* Wed Aug 23 2023 Open vSwitch CI - 2.17.0-117
+- Merging upstream branch-2.17 [RH git: 80b6f5d177]
+ Commit list:
+ 93412e00e7 docs: Run tbl preprocessor in manpage-check rule.
+ 6929485d31 docs: Add `nowarn` region option to tables.
+ 08b6b83a36 tests: Add clang-analyzer-results to gitignore.
+ c252b1f8a7 ci: Add jobs to test -std=c99 builds.
+ 242bb2624c tests: Fix order of includes in barrier/id-fpool/mpsc-queue tests.
+ 292eca58c6 sflow: Always enable _BSD_SOURCE.
+ 82aa3fb019 compiler.h: Don't use asm and typeof with non-GNU compilers.
+
+
* Thu Aug 17 2023 Open vSwitch CI - 2.17.0-116
- Merging upstream branch-2.17 [RH git: c9b4175537]
Commit list: