net/ice/base: support priority configuration of exact node
[dpdk.git] / drivers / net / cnxk / cnxk_flow.c
index ff962c1..06301b9 100644 (file)
@@ -14,6 +14,9 @@ const struct cnxk_rte_flow_term_info term[] = {
                                     sizeof(struct rte_flow_item_ipv4)},
        [RTE_FLOW_ITEM_TYPE_IPV6] = {ROC_NPC_ITEM_TYPE_IPV6,
                                     sizeof(struct rte_flow_item_ipv6)},
+       [RTE_FLOW_ITEM_TYPE_IPV6_FRAG_EXT] = {
+                       ROC_NPC_ITEM_TYPE_IPV6_FRAG_EXT,
+                       sizeof(struct rte_flow_item_ipv6_frag_ext)},
        [RTE_FLOW_ITEM_TYPE_ARP_ETH_IPV4] = {
                        ROC_NPC_ITEM_TYPE_ARP_ETH_IPV4,
                        sizeof(struct rte_flow_item_arp_eth_ipv4)},
@@ -207,6 +210,7 @@ cnxk_map_actions(struct rte_eth_dev *eth_dev, const struct rte_flow_attr *attr,
 
                case RTE_FLOW_ACTION_TYPE_SECURITY:
                        in_actions[i].type = ROC_NPC_ACTION_TYPE_SEC;
+                       in_actions[i].conf = actions->conf;
                        break;
                case RTE_FLOW_ACTION_TYPE_OF_POP_VLAN:
                        in_actions[i].type = ROC_NPC_ACTION_TYPE_VLAN_STRIP;
@@ -299,7 +303,14 @@ cnxk_flow_validate(struct rte_eth_dev *eth_dev,
                return rc;
        }
 
-       return roc_npc_flow_parse(npc, &in_attr, in_pattern, in_actions, &flow);
+       rc = roc_npc_flow_parse(npc, &in_attr, in_pattern, in_actions, &flow);
+
+       if (rc) {
+               rte_flow_error_set(error, 0, rc, NULL,
+                                  "Flow validation failed");
+               return rc;
+       }
+       return 0;
 }
 
 struct roc_npc_flow *