[dpdk-dev] discussion about VLAN API

Thomas Monjalon thomas at monjalon.net
Tue Aug 4 12:02:03 CEST 2020


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?




More information about the dev mailing list