From: Yuying Zhang <yuying.zh...@intel.com>

This patch is not for LTS upstream, just for users to cherry-pick.

Priority 0 and 1 were supported in switch filter. However,
FDIR, ACL and RSS don't support priority 1. Add priority check
in FDIR, ACL and RSS filter parse functions.

Signed-off-by: Yuying Zhang <yuying.zh...@intel.com>
---
 drivers/net/ice/ice_acl_filter.c  | 5 ++++-
 drivers/net/ice/ice_fdir_filter.c | 5 ++++-
 drivers/net/ice/ice_hash.c        | 5 ++++-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/drivers/net/ice/ice_acl_filter.c b/drivers/net/ice/ice_acl_filter.c
index 14e36aa9f6..201c9fb382 100644
--- a/drivers/net/ice/ice_acl_filter.c
+++ b/drivers/net/ice/ice_acl_filter.c
@@ -904,7 +904,7 @@ ice_acl_parse(struct ice_adapter *ad,
               uint32_t array_len,
               const struct rte_flow_item pattern[],
               const struct rte_flow_action actions[],
-              uint32_t priority __rte_unused,
+              uint32_t priority,
               void **meta,
               struct rte_flow_error *error)
 {
@@ -914,6 +914,9 @@ ice_acl_parse(struct ice_adapter *ad,
        uint64_t input_set;
        int ret;
 
+       if (priority >= 1)
+               return -rte_errno;
+
        memset(filter, 0, sizeof(*filter));
        item = ice_search_pattern_match_item(pattern, array, array_len, error);
        if (!item)
diff --git a/drivers/net/ice/ice_fdir_filter.c 
b/drivers/net/ice/ice_fdir_filter.c
index be04fcb8f3..1a9280a2eb 100644
--- a/drivers/net/ice/ice_fdir_filter.c
+++ b/drivers/net/ice/ice_fdir_filter.c
@@ -2029,7 +2029,7 @@ ice_fdir_parse(struct ice_adapter *ad,
               uint32_t array_len,
               const struct rte_flow_item pattern[],
               const struct rte_flow_action actions[],
-              uint32_t priority __rte_unused,
+              uint32_t priority,
               void **meta,
               struct rte_flow_error *error)
 {
@@ -2039,6 +2039,9 @@ ice_fdir_parse(struct ice_adapter *ad,
        uint64_t input_set;
        int ret;
 
+       if (priority >= 1)
+               return -rte_errno;
+
        memset(filter, 0, sizeof(*filter));
        item = ice_search_pattern_match_item(pattern, array, array_len, error);
        if (!item)
diff --git a/drivers/net/ice/ice_hash.c b/drivers/net/ice/ice_hash.c
index ae095eb3cf..b8a87ea1dd 100644
--- a/drivers/net/ice/ice_hash.c
+++ b/drivers/net/ice/ice_hash.c
@@ -1238,7 +1238,7 @@ ice_hash_parse_pattern_action(__rte_unused struct 
ice_adapter *ad,
                        uint32_t array_len,
                        const struct rte_flow_item pattern[],
                        const struct rte_flow_action actions[],
-                       uint32_t priority __rte_unused,
+                       uint32_t priority,
                        void **meta,
                        struct rte_flow_error *error)
 {
@@ -1246,6 +1246,9 @@ ice_hash_parse_pattern_action(__rte_unused struct 
ice_adapter *ad,
        struct ice_pattern_match_item *pattern_match_item;
        struct rss_meta *rss_meta_ptr;
 
+       if (priority >= 1)
+               return -rte_errno;
+
        rss_meta_ptr = rte_zmalloc(NULL, sizeof(*rss_meta_ptr), 0);
        if (!rss_meta_ptr) {
                rte_flow_error_set(error, EINVAL,
-- 
2.25.1

Reply via email to