summaryrefslogtreecommitdiff
path: root/lib/odp-util.c
diff options
context:
space:
mode:
authorPeng He <hepeng.0320@bytedance.com>2020-08-04 09:54:56 +0800
committerIlya Maximets <i.maximets@ovn.org>2020-08-04 17:25:49 +0200
commit8594d9ae4e79c78b53937a47ab349216509c7c66 (patch)
tree28417d1dfc44df9be66a4d68485cd7019f1e7ef3 /lib/odp-util.c
parente8bf77748ab8661391d6e00f5e51df5b02faeefe (diff)
downloadopenvswitch-8594d9ae4e79c78b53937a47ab349216509c7c66.tar.gz
odp-util: Clear padding in the nd_extension.
Silimar to the patch 67eb8110171f ("odp-util: Fix passing uninitialized bytes in OVS_KEY_ATTR_CT_ORIG_TUPLE_IPV*.") when change from flow into the netlink format, the tail padding of nd_extension should be cleared. this fixes the following warning logs: |ofproto_dpif_upcall(pmd-...)|WARN|Conflicting ukey for flows: ufid:763c7d3b-4d0c-4bff-aafc-fdfb6089c2ba <...>,eth(...),eth_type(0x86dd),ipv6(...),icmpv6(type=135,code=0),\ nd(target=fdbd:dc02:ff:1:1::1,sll=fa:16:3e:75:b3:a9,tll=00:00:00:00:00:00),\ nd_ext(nd_reserved=0x0,nd_options_type=1) ufid:763c7d3b-4d0c-4bff-aafc-fdfb6089c2ba <...>,eth(...),eth_type(0x86dd),ipv6(...),icmpv6(type=135,code=0),\ nd(target=fdbd:dc02:ff:1:1::1,sll=fa:16:3e:75:b3:a9,tll=00:00:00:00:00:00),\ nd_ext(nd_reserved=0x0,nd_options_type=1) |ofproto_dpif_upcall(pmd-...)|WARN|upcall_cb failure: ukey installation fails Fixes: 9b2b84973db7 ("Support for match & set ICMPv6 reserved and options type fields") Signed-off-by: Peng He <hepeng.0320@bytedance.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'lib/odp-util.c')
-rw-r--r--lib/odp-util.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/odp-util.c b/lib/odp-util.c
index e54a78b43..5989381e9 100644
--- a/lib/odp-util.c
+++ b/lib/odp-util.c
@@ -6357,7 +6357,9 @@ odp_flow_key_from_flow__(const struct odp_flow_key_parms *parms,
struct ovs_key_nd_extensions *nd_ext_key;
if (data->igmp_group_ip4 != 0 || data->tcp_flags != 0) {
- nd_ext_key = nl_msg_put_unspec_uninit(buf,
+ /* 'struct ovs_key_nd_extensions' has padding,
+ * clear it. */
+ nd_ext_key = nl_msg_put_unspec_zero(buf,
OVS_KEY_ATTR_ND_EXTENSIONS,
sizeof *nd_ext_key);
nd_ext_key->nd_reserved = data->igmp_group_ip4;