Hi, We have a quite complex API for VLAN filter/push/pop, per port, per queue or per flow.
These are the old per-port functions: rte_eth_dev_vlan_filter rte_eth_dev_set_vlan_strip_on_queue rte_eth_dev_set_vlan_ether_type rte_eth_dev_set_vlan_offload rte_eth_dev_get_vlan_offload rte_eth_dev_set_vlan_pvid In rte_eth_dev_data: struct rte_vlan_filter_conf vlan_filter_conf In rte_eth_txmode struct: uint16_t pvid; hw_vlan_reject_tagged : 1, hw_vlan_reject_untagged : 1, hw_vlan_insert_pvid : 1; Configurartion flags: ETH_VLAN_STRIP_OFFLOAD ETH_VLAN_FILTER_OFFLOAD ETH_VLAN_EXTEND_OFFLOAD ETH_QINQ_STRIP_OFFLOAD RX offload capabilities: DEV_RX_OFFLOAD_VLAN_STRIP DEV_RX_OFFLOAD_VLAN_FILTER DEV_RX_OFFLOAD_VLAN_EXTEND DEV_RX_OFFLOAD_QINQ_STRIP TX offload capabilities: DEV_TX_OFFLOAD_VLAN_INSERT Types: ETH_VLAN_TYPE_UNKNOWN ETH_VLAN_TYPE_INNER ETH_VLAN_TYPE_OUTER rte_flow configuration: RTE_FLOW_ITEM_TYPE_VLAN RTE_FLOW_ACTION_TYPE_OF_POP_VLAN RTE_FLOW_ACTION_TYPE_OF_PUSH_VLAN RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_VID RTE_FLOW_ACTION_TYPE_OF_SET_VLAN_PCP What can be done to simplify this mess? Wouldn't it be simpler to keep only rte_flow?