diff options
author | Ting Xu <ting.xu@intel.com> | 2022-12-13 03:10:54 +0000 |
---|---|---|
committer | Damjan Marion <dmarion@0xa5.net> | 2023-02-08 10:10:28 +0000 |
commit | 11d9d02459ee3ac6ae402dd565aabbdfeea2c4fb (patch) | |
tree | 11b8231914e0c8d4005a98d10db02fecf21e05c1 /src | |
parent | 25ab42e33b03d9d9a0e3478c3ee346891cf65aef (diff) |
avf dpdk: fix incorrect handling of IPv6 src address in flow
In current flow creating process in native avf and dpdk-plugins, when
parsing the input arguments, it does not copy IPv6 src address correctly,
so that IPv6 src address will not be configured in any flow rule, and
any packet with the same address will not be matched.
Type: fix
Signed-off-by: Ting Xu <ting.xu@intel.com>
Change-Id: Ic957c57e3e1488b74e6281f4ed1df7fd491af35c
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/avf/avf_fdir_lib.c | 4 | ||||
-rw-r--r-- | src/plugins/dpdk/device/flow.c | 3 |
2 files changed, 4 insertions, 3 deletions
diff --git a/src/plugins/avf/avf_fdir_lib.c b/src/plugins/avf/avf_fdir_lib.c index cf774a7d138..52937874186 100644 --- a/src/plugins/avf/avf_fdir_lib.c +++ b/src/plugins/avf/avf_fdir_lib.c @@ -257,9 +257,9 @@ avf_fdir_rcfg_set_field (struct avf_fdir_conf *rcfg, int layer, { rcfg->input_set |= AVF_INSET_IPV6_DST; VIRTCHNL_ADD_PROTO_HDR_FIELD_BIT (hdr, IPV6, DST); - - clib_memcpy (hdr->buffer, ipv6_spec, sizeof (*ipv6_spec)); } + + clib_memcpy (hdr->buffer, ipv6_spec, sizeof (*ipv6_spec)); } break; diff --git a/src/plugins/dpdk/device/flow.c b/src/plugins/dpdk/device/flow.c index ae76b3df169..be453bb9577 100644 --- a/src/plugins/dpdk/device/flow.c +++ b/src/plugins/dpdk/device/flow.c @@ -319,7 +319,8 @@ dpdk_flow_add (dpdk_device_t * xd, vnet_flow_t * f, dpdk_flow_entry_t * fe) if ((ip6_ptr->src_addr.mask.as_u64[0] == 0) && (ip6_ptr->src_addr.mask.as_u64[1] == 0) && - (!ip6_ptr->protocol.mask)) + (ip6_ptr->dst_addr.mask.as_u64[0] == 0) && + (ip6_ptr->dst_addr.mask.as_u64[1] == 0) && (!ip6_ptr->protocol.mask)) { item->spec = NULL; item->mask = NULL; |