Skip to content

Commit

Permalink
net/ixgbe: fix parsing FDIR NVGRE issue
Browse files Browse the repository at this point in the history
This patch fixes the issue of mask check in NVGRE parser
for flow API.

Fixes: 1177743 ("net/ixgbe: parse flow director filter")
Cc: stable@dpdk.org

Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
  • Loading branch information
zhaowei413 authored and Ferruh Yigit committed Jan 16, 2018
1 parent 99726a8 commit cdcd6b6
Showing 1 changed file with 19 additions and 3 deletions.
22 changes: 19 additions & 3 deletions drivers/net/ixgbe/ixgbe_flow.c
Expand Up @@ -2492,15 +2492,23 @@ ixgbe_parse_fdir_filter_tunnel(const struct rte_flow_attr *attr,
item, "Not supported by fdir filter");
return -rte_errno;
}
if (nvgre_mask->c_k_s_rsvd0_ver !=
rte_cpu_to_be_16(0x3000) ||
if (nvgre_mask->protocol &&
nvgre_mask->protocol != 0xFFFF) {
memset(rule, 0, sizeof(struct ixgbe_fdir_rule));
rte_flow_error_set(error, EINVAL,
RTE_FLOW_ERROR_TYPE_ITEM,
item, "Not supported by fdir filter");
return -rte_errno;
}
if (nvgre_mask->c_k_s_rsvd0_ver &&
nvgre_mask->c_k_s_rsvd0_ver !=
rte_cpu_to_be_16(0xFFFF)) {
memset(rule, 0, sizeof(struct ixgbe_fdir_rule));
rte_flow_error_set(error, EINVAL,
RTE_FLOW_ERROR_TYPE_ITEM,
item, "Not supported by fdir filter");
return -rte_errno;
}
/* TNI must be totally masked or not. */
if (nvgre_mask->tni[0] &&
((nvgre_mask->tni[0] != 0xFF) ||
Expand All @@ -2522,7 +2530,15 @@ ixgbe_parse_fdir_filter_tunnel(const struct rte_flow_attr *attr,
nvgre_spec =
(const struct rte_flow_item_nvgre *)item->spec;
if (nvgre_spec->c_k_s_rsvd0_ver !=
rte_cpu_to_be_16(0x2000) ||
rte_cpu_to_be_16(0x2000) &&
nvgre_mask->c_k_s_rsvd0_ver) {
memset(rule, 0, sizeof(struct ixgbe_fdir_rule));
rte_flow_error_set(error, EINVAL,
RTE_FLOW_ERROR_TYPE_ITEM,
item, "Not supported by fdir filter");
return -rte_errno;
}
if (nvgre_mask->protocol &&
nvgre_spec->protocol !=
rte_cpu_to_be_16(NVGRE_PROTOCOL)) {
memset(rule, 0, sizeof(struct ixgbe_fdir_rule));
Expand Down

0 comments on commit cdcd6b6

Please sign in to comment.