当尝试使用RTE API
进行VLAN
卸载和VLAN过滤时,我发现VLAN标记和未标记的数据包都被发送出去了。
使用的API:
rte_eth_dev_set_vlan_offload ,
rte_eth_dev_vlan_filter
DPDK - 18.08
RHEL - 7.6
Driver - igb_uio
有没有办法只允许发送带VLAN标记的数据包?
问候,
不确定我是否理解正确 - 你试图从tx数据包剥离vlan标签?你为什么要卸载它?如果你转发来自其他地方的数据包,他们已经将标签剥离了rx offload。如果您自己创建它们,那么 - 您可以控制它。
无论如何,如果你想卸载tx vlan插入:
rte_eth_dev_set_vlan_offload
只设置RX卸载标志。
您可能必须手动在端口配置中设置tx offload标志,就像DPDK Flow Filtering示例代码中的这个简略片段一样:
struct rte_eth_conf port_conf = {
.txmode = {
.offloads =
DEV_TX_OFFLOAD_VLAN_INSERT,
},
};