return -EINVAL;
/* Clear mark offload flag if there are no more mark actions */
- if (rte_atomic32_sub_return(&npc->mark_actions, 1) == 0)
+ if (rte_atomic32_sub_return(&npc->mark_actions, 1) == 0) {
hw->rx_offload_flags &= ~NIX_RX_OFFLOAD_MARK_UPDATE_F;
+ otx2_eth_set_rx_function(dev);
+ }
}
rc = flow_free_rss_action(dev, flow);
xtract_info->hdr_off = (val >> HDR_OFF_SHIFT) & 0xff;
xtract_info->key_off = val & 0x3f;
xtract_info->enable = ((val >> 7) & 0x1);
+ xtract_info->flags_enable = ((val >> 6) & 0x1);
}
static void
struct otx2_npc_flow_info *npc = &dev->npc_flow;
struct npc_get_kex_cfg_rsp *kex_rsp;
struct otx2_mbox *mbox = dev->mbox;
+ char mkex_pfl_name[MKEX_NAME_LEN];
struct otx2_idev_kex_cfg *idev;
int rc = 0;
sizeof(struct npc_get_kex_cfg_rsp));
}
+ otx2_mbox_memcpy(mkex_pfl_name,
+ idev->kex_cfg.mkex_pfl_name, MKEX_NAME_LEN);
+
+ strlcpy((char *)dev->mkex_pfl_name,
+ mkex_pfl_name, sizeof(dev->mkex_pfl_name));
+
flow_process_mkex_cfg(npc, &idev->kex_cfg);
done:
}
npc->free_entries = rte_zmalloc(NULL, npc->flow_max_priority
- * sizeof(struct rte_bitmap),
+ * sizeof(struct rte_bitmap *),
0);
if (npc->free_entries == NULL) {
otx2_err("free_entries alloc failed");
}
npc->free_entries_rev = rte_zmalloc(NULL, npc->flow_max_priority
- * sizeof(struct rte_bitmap),
+ * sizeof(struct rte_bitmap *),
0);
if (npc->free_entries_rev == NULL) {
otx2_err("free_entries_rev alloc failed");
}
npc->live_entries = rte_zmalloc(NULL, npc->flow_max_priority
- * sizeof(struct rte_bitmap),
+ * sizeof(struct rte_bitmap *),
0);
if (npc->live_entries == NULL) {
otx2_err("live_entries alloc failed");
}
npc->live_entries_rev = rte_zmalloc(NULL, npc->flow_max_priority
- * sizeof(struct rte_bitmap),
+ * sizeof(struct rte_bitmap *),
0);
if (npc->live_entries_rev == NULL) {
otx2_err("live_entries_rev alloc failed");
rte_free(npc->flow_entry_info);
if (npc_mem)
rte_free(npc_mem);
- if (nix_mem)
- rte_free(nix_mem);
return rc;
}