diff --git a/SOURCES/openvswitch-2.16.0.patch b/SOURCES/openvswitch-2.16.0.patch
index 6bd7ae8..aef4484 100644
--- a/SOURCES/openvswitch-2.16.0.patch
+++ b/SOURCES/openvswitch-2.16.0.patch
@@ -2036,6 +2036,21 @@ index 7729a90608..65f028ba02 100644
              const struct nlattr *ma = nl_attr_find__(mask, mask_len,
                                                       OVS_KEY_ATTR_ETHERTYPE);
              if (ma) {
+diff --git a/lib/ofp-actions.c b/lib/ofp-actions.c
+index ecf914eac1..7ea4b6ed56 100644
+--- a/lib/ofp-actions.c
++++ b/lib/ofp-actions.c
+@@ -853,7 +853,9 @@ decode_NXAST_RAW_CONTROLLER2(const struct ext_action_header *eah,
+         case NXAC2PT_REASON: {
+             uint8_t u8;
+             error = ofpprop_parse_u8(&payload, &u8);
+-            oc->reason = u8;
++            if (!error) {
++                oc->reason = u8;
++            }
+             break;
+         }
+ 
 diff --git a/lib/ofp-flow.c b/lib/ofp-flow.c
 index ff0396845a..3bc744f78f 100644
 --- a/lib/ofp-flow.c
@@ -2058,6 +2073,43 @@ index ff0396845a..3bc744f78f 100644
      fs_->match.flow.tunnel.metadata.tab = orig_tun_table;
  }
  
+diff --git a/lib/ofp-packet.c b/lib/ofp-packet.c
+index 4579548ee1..9485ddfc93 100644
+--- a/lib/ofp-packet.c
++++ b/lib/ofp-packet.c
+@@ -133,7 +133,9 @@ decode_nx_packet_in2(const struct ofp_header *oh, bool loose,
+         case NXPINT_FULL_LEN: {
+             uint32_t u32;
+             error = ofpprop_parse_u32(&payload, &u32);
+-            *total_len = u32;
++            if (!error) {
++                *total_len = u32;
++            }
+             break;
+         }
+ 
+@@ -152,7 +154,9 @@ decode_nx_packet_in2(const struct ofp_header *oh, bool loose,
+         case NXPINT_REASON: {
+             uint8_t reason;
+             error = ofpprop_parse_u8(&payload, &reason);
+-            pin->reason = reason;
++            if (!error) {
++                pin->reason = reason;
++            }
+             break;
+         }
+ 
+@@ -883,7 +887,9 @@ ofputil_decode_packet_in_private(const struct ofp_header *oh, bool loose,
+         case NXCPT_ODP_PORT: {
+             uint32_t value;
+             error = ofpprop_parse_u32(&payload, &value);
+-            pin->odp_port = u32_to_odp(value);
++            if (!error) {
++                pin->odp_port = u32_to_odp(value);
++            }
+             break;
+          }
+ 
 diff --git a/lib/ovsdb-cs.c b/lib/ovsdb-cs.c
 index 659d49dbf7..dead31275d 100644
 --- a/lib/ovsdb-cs.c
@@ -6855,7 +6907,7 @@ index 604f15c2d1..c93cb9f16c 100644
 +OVS_VSWITCHD_STOP(["/Flow exceeded the maximum flow statistics reply size and was excluded from the response set/d"])
 +AT_CLEANUP
 diff --git a/tests/ovsdb-cluster.at b/tests/ovsdb-cluster.at
-index fc6253cfe9..07af1160fc 100644
+index fc6253cfe9..ee9c7b9379 100644
 --- a/tests/ovsdb-cluster.at
 +++ b/tests/ovsdb-cluster.at
 @@ -400,6 +400,61 @@ done
@@ -6920,6 +6972,30 @@ index fc6253cfe9..07af1160fc 100644
  
  
  OVS_START_SHELL_HELPERS
+@@ -416,9 +471,8 @@ ovsdb_cluster_failure_test () {
+ 
+     cp $top_srcdir/vswitchd/vswitch.ovsschema 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], [], [dnl
+-ovsdb|WARN|schema: changed 30 columns in 'Open_vSwitch' database from ephemeral to persistent, including 'status' column in 'Manager' table, because clusters do not support ephemeral columns
+-])
++    AT_CHECK([ovsdb-tool '-vPATTERN:console:%c|%p|%m' create-cluster s1.db schema unix:s1.raft], [0], [], [stderr])
++    AT_CHECK([sed < stderr "/ovsdb|WARN|schema: changed .* columns in 'Open_vSwitch' database from ephemeral to persistent/d"])
+ 
+     n=3
+     join_cluster() {
+@@ -629,9 +683,8 @@ ovsdb_torture_test () {
+     local variant=$3            # 'kill' and restart or 'remove' and add
+     cp $top_srcdir/vswitchd/vswitch.ovsschema 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], [], [dnl
+-ovsdb|WARN|schema: changed 30 columns in 'Open_vSwitch' database from ephemeral to persistent, including 'status' column in 'Manager' table, because clusters do not support ephemeral columns
+-])
++    AT_CHECK([ovsdb-tool '-vPATTERN:console:%c|%p|%m' create-cluster s1.db schema unix:s1.raft], [0], [], [stderr])
++    AT_CHECK([sed < stderr "/ovsdb|WARN|schema: changed .* columns in 'Open_vSwitch' database from ephemeral to persistent/d"])
+ 
+     join_cluster() {
+         local i=$1
 diff --git a/tests/ovsdb-data.at b/tests/ovsdb-data.at
 index 8cd2a26cb3..25c6acdac6 100644
 --- a/tests/ovsdb-data.at
@@ -7304,6 +7380,32 @@ index 19a0b125b9..8b9f5c7525 100644
  # OVS_CHECK_VXLAN()
  #
  # Do basic check for vxlan functionality, skip the test if it's not there.
+diff --git a/tests/system-dpdk.at b/tests/system-dpdk.at
+index e0e750fde5..512aa87d4c 100644
+--- a/tests/system-dpdk.at
++++ b/tests/system-dpdk.at
+@@ -248,6 +248,10 @@ AT_CHECK([ovs-vsctl show], [], [stdout])
+ AT_SKIP_IF([! ovs-appctl dpif-netdev/miniflow-parser-get | sed 1,4d | grep "True"], [], [dnl
+ ])
+ 
++AT_CHECK([ovs-appctl dpif-netdev/dpif-impl-set dpif_avx512], [0], [dnl
++DPIF implementation set to dpif_avx512.
++])
++
+ AT_CHECK([ovs-appctl dpif-netdev/miniflow-parser-set autovalidator], [0], [dnl
+ Miniflow extract implementation set to autovalidator.
+ ])
+@@ -275,6 +279,10 @@ AT_CHECK([ovs-vsctl show], [], [stdout])
+ AT_SKIP_IF([! ovs-appctl dpif-netdev/miniflow-parser-get | sed 1,4d | grep "True"], [], [dnl
+ ])
+ 
++AT_CHECK([ovs-appctl dpif-netdev/dpif-impl-set dpif_avx512], [0], [dnl
++DPIF implementation set to dpif_avx512.
++])
++
+ AT_CHECK([ovs-appctl dpif-netdev/miniflow-parser-set autovalidator], [0], [dnl
+ Miniflow extract implementation set to autovalidator.
+ ])
 diff --git a/tests/system-traffic.at b/tests/system-traffic.at
 index f400cfabc9..852e2520b4 100644
 --- a/tests/system-traffic.at
diff --git a/SPECS/openvswitch2.16.spec b/SPECS/openvswitch2.16.spec
index c067704..92308ec 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: 61%{?dist}
+Release: 62%{?dist}
 
 # Nearly all of openvswitch is ASL 2.0.  The bugtool is LGPLv2+, and the
 # lib/sflow*.[ch] files are SISSL
@@ -699,6 +699,14 @@ exit 0
 %endif
 
 %changelog
+* Fri Mar 11 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-62
+- Merging upstream branch-2.16 [RH git: 561b178a3d]
+    Commit list:
+    47b5374280 system-dpdk: Fix mfex autovalidator tests.
+    98a74bd487 ofp-prop: Silence the 'may be uninitialized' warning.
+    ab4f30e02b ovsdb-cluster.at: Avoid test failures due to different hashing.
+
+
 * Mon Mar 07 2022 Open vSwitch CI <ovs-ci@redhat.com> - 2.16.0-61
 - Merging upstream branch-2.16 [RH git: 0e0cf86cf5]
     Commit list: