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)},
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;
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 *