rx-vlan-offload 和 tx-vlan-offload ethtool 选项究竟有什么作用?
What exactly do the rx-vlan-offload and tx-vlan-offload ethtool options do?
ethtool 手册页只给出了模糊的解释:
rxvlan on|off
Specifies whether RX VLAN acceleration should be enabled
txvlan on|off
Specifies whether TX VLAN acceleration should be enabled
假设您可以启用这些选项,这些选项究竟有什么作用?
显然,rxvlan
和 txvlan
分别是内核功能 rx-vlan-hw-parse
和 tx-vlan-hw-insert
的别名(参见 ethtool.c
)。
在内核中,它们被翻译成 netdev 特性 NETIF_F_HW_VLAN_CTAG_RX_BIT
和 NETIF_F_HW_VLAN_CTAG_TX_BIT
。 (参见 net/core/ethtool.c
)
据我所知,TX_BIT 允许 NIC 在传输过程中添加 VLAN 标记,而无需将其显式放置在数据包中。参见VLAN driver.
中的相关代码
同样,当RX_BIT启用时,NIC可以从传入的数据包中剥离VLAN标签,让驱动程序将VLAN标签中的信息放入相关的skb中。
ethtool 手册页只给出了模糊的解释:
rxvlan on|off
Specifies whether RX VLAN acceleration should be enabled
txvlan on|off
Specifies whether TX VLAN acceleration should be enabled
假设您可以启用这些选项,这些选项究竟有什么作用?
显然,rxvlan
和 txvlan
分别是内核功能 rx-vlan-hw-parse
和 tx-vlan-hw-insert
的别名(参见 ethtool.c
)。
在内核中,它们被翻译成 netdev 特性 NETIF_F_HW_VLAN_CTAG_RX_BIT
和 NETIF_F_HW_VLAN_CTAG_TX_BIT
。 (参见 net/core/ethtool.c
)
据我所知,TX_BIT 允许 NIC 在传输过程中添加 VLAN 标记,而无需将其显式放置在数据包中。参见VLAN driver.
中的相关代码同样,当RX_BIT启用时,NIC可以从传入的数据包中剥离VLAN标签,让驱动程序将VLAN标签中的信息放入相关的skb中。