Some engines do not implement a validation callback. Rejecting these
engines after successful pattern and action parsing prevents their flows
from passing validation.

Fix the validation function to treat successful parsing as sufficient when
no validation callback is provided.

Fixes: fae5ce5de601 ("net/iavf: fix false success on flow validation")
Cc: [email protected]

Signed-off-by: Anatoly Burakov <[email protected]>
---
 drivers/net/intel/iavf/iavf_generic_flow.c | 13 +++----------
 1 file changed, 3 insertions(+), 10 deletions(-)

diff --git a/drivers/net/intel/iavf/iavf_generic_flow.c 
b/drivers/net/intel/iavf/iavf_generic_flow.c
index be7ddf5db63..1ebab3ddefe 100644
--- a/drivers/net/intel/iavf/iavf_generic_flow.c
+++ b/drivers/net/intel/iavf/iavf_generic_flow.c
@@ -2148,16 +2148,9 @@ iavf_parse_engine_validate(struct iavf_adapter *ad,
                        continue;
 
                engine = parser_node->parser->engine;
-               if (engine->validation == NULL) {
-                       rte_free(meta);
-                       meta = NULL;
-                       rte_flow_error_set(error, EINVAL,
-                               RTE_FLOW_ERROR_TYPE_HANDLE,
-                               NULL, "Validation not support");
-                       continue;
-               }
-
-               ret = engine->validation(ad, flow, meta, error);
+               ret = 0;
+               if (engine->validation != NULL)
+                       ret = engine->validation(ad, flow, meta, error);
                rte_free(meta);
                meta = NULL;
                if (ret != 0) {
-- 
2.52.0

Reply via email to