*/
#include "otx2_ethdev.h"
+#include "otx2_ethdev_sec.h"
#include "otx2_flow.h"
int
return 0;
}
+static int
+flow_update_sec_tt(struct rte_eth_dev *eth_dev,
+ const struct rte_flow_action actions[])
+{
+ int rc = 0;
+
+ for (; actions->type != RTE_FLOW_ACTION_TYPE_END; actions++) {
+ if (actions->type == RTE_FLOW_ACTION_TYPE_SECURITY) {
+ rc = otx2_eth_sec_update_tag_type(eth_dev);
+ break;
+ }
+ }
+
+ return rc;
+}
static int
flow_parse_meta_items(__rte_unused struct otx2_parse_state *pst)
{
flow_parse_stage_func_t parse_stage_funcs[] = {
flow_parse_meta_items,
+ otx2_flow_parse_higig2_hdr,
otx2_flow_parse_la,
otx2_flow_parse_lb,
otx2_flow_parse_lc,
goto err_exit;
}
+ if (hw->rx_offloads & DEV_RX_OFFLOAD_SECURITY) {
+ rc = flow_update_sec_tt(dev, actions);
+ if (rc != 0) {
+ rte_flow_error_set(error, EIO,
+ RTE_FLOW_ERROR_TYPE_UNSPECIFIED,
+ NULL,
+ "Failed to update tt with sec act");
+ goto err_exit;
+ }
+ }
list = &hw->npc_flow.flow_list[flow->priority];
/* List in ascending order of mcam entries */