diff options
author | Peng He <hepeng.0320@bytedance.com> | 2020-08-04 09:54:56 +0800 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2020-08-04 17:28:33 +0200 |
commit | 81286727b731d406d1c3846e4af7bcffcb1a02ba (patch) | |
tree | 63f27bde68ae1b4309f1e84ab11183d3fe5c93d0 | |
parent | 485a422e40ab912bca6420a02e7941b952f06aeb (diff) | |
download | openvswitch-81286727b731d406d1c3846e4af7bcffcb1a02ba.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>
-rw-r--r-- | lib/odp-util.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/odp-util.c b/lib/odp-util.c index 0bdfeeab0..b503f960b 100644 --- a/lib/odp-util.c +++ b/lib/odp-util.c @@ -6194,7 +6194,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; |