From a90b035ed84542a53e0a07f8e77ad59dca97e613 Mon Sep 17 00:00:00 2001 From: Qiming Yang Date: Tue, 16 Jul 2019 10:38:55 +0800 Subject: [PATCH] net/ice: fix outer input set empty Should allow the outer input set be empty. Fixes: d76116a4678f ("net/ice: add generic flow API") Signed-off-by: Qiming Yang Acked-by: Qi Zhang --- drivers/net/ice/ice_generic_flow.c | 41 ++++++++---------------------- 1 file changed, 10 insertions(+), 31 deletions(-) diff --git a/drivers/net/ice/ice_generic_flow.c b/drivers/net/ice/ice_generic_flow.c index 05a1678fc0..c2931a1c43 100644 --- a/drivers/net/ice/ice_generic_flow.c +++ b/drivers/net/ice/ice_generic_flow.c @@ -238,13 +238,8 @@ static uint64_t ice_get_flow_field(const struct rte_flow_item pattern[], ipv4_spec = item->spec; ipv4_mask = item->mask; - if (!(ipv4_spec && ipv4_mask)) { - rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ITEM, - item, - "Invalid IPv4 spec or mask."); - return 0; - } + if (!(ipv4_spec && ipv4_mask)) + break; /* Check IPv4 mask and update input set */ if (ipv4_mask->hdr.version_ihl || @@ -284,12 +279,8 @@ static uint64_t ice_get_flow_field(const struct rte_flow_item pattern[], ipv6_spec = item->spec; ipv6_mask = item->mask; - if (!(ipv6_spec && ipv6_mask)) { - rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ITEM, - item, "Invalid IPv6 spec or mask"); - return 0; - } + if (!(ipv6_spec && ipv6_mask)) + break; if (ipv6_mask->hdr.payload_len || ipv6_mask->hdr.vtc_flow) { @@ -333,12 +324,8 @@ static uint64_t ice_get_flow_field(const struct rte_flow_item pattern[], udp_spec = item->spec; udp_mask = item->mask; - if (!(udp_spec && udp_mask)) { - rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ITEM, - item, "Invalid UDP mask"); - return 0; - } + if (!(udp_spec && udp_mask)) + break; /* Check UDP mask and update input set*/ if (udp_mask->hdr.dgram_len || @@ -367,12 +354,8 @@ static uint64_t ice_get_flow_field(const struct rte_flow_item pattern[], tcp_spec = item->spec; tcp_mask = item->mask; - if (!(tcp_spec && tcp_mask)) { - rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ITEM, - item, "Invalid TCP mask"); - return 0; - } + if (!(tcp_spec && tcp_mask)) + break; /* Check TCP mask and update input set */ if (tcp_mask->hdr.sent_seq || @@ -406,12 +389,8 @@ static uint64_t ice_get_flow_field(const struct rte_flow_item pattern[], sctp_spec = item->spec; sctp_mask = item->mask; - if (!(sctp_spec && sctp_mask)) { - rte_flow_error_set(error, EINVAL, - RTE_FLOW_ERROR_TYPE_ITEM, - item, "Invalid SCTP mask"); - return 0; - } + if (!(sctp_spec && sctp_mask)) + break; /* Check SCTP mask and update input set */ if (sctp_mask->hdr.cksum) { -- 2.20.1