rx-vlan-offload和tx-vlan-offload ethtool选项究竟做了什么?

Chr*_*ian 6 networking offloading vlan

ethtool手册页只给出了一个模糊的解释:

   rxvlan on|off
          Specifies whether RX VLAN acceleration should be enabled

   txvlan on|off
          Specifies whether TX VLAN acceleration should be enabled
Run Code Online (Sandbox Code Playgroud)

假设您可以启用它们,这些选项到底完成了什么?

hag*_*i_e 5

显然,rxvlantxvlan是核心功能的别名rx-vlan-hw-parse,并tx-vlan-hw-insert分别为(见ethtool.c).

在内核中,它们被转换为netdev特性NETIF_F_HW_VLAN_CTAG_RX_BITNETIF_F_HW_VLAN_CTAG_TX_BIT.(见net/core/ethtool.c)

据我所知,TX_BIT允许NIC在传输过程中添加VLAN标记,而无需将其明确地放入数据包中.请参阅VLAN驱动程序中的相关代码.

同样,当启用RX_BIT时,NIC可以从传入的数据包中剥离VLAN标记,并让驱动程序将来自VLAN标记的信息放在相关的skb中.