“skb->protocol”应该设置成什么?

问题描述 投票:0回答:1

由于

sk_buff
通常会包含与多个协议相对应的标头,我想知道
protocol
字段预计将保留什么值。

直观上,我认为它应该属于

sk_buff
中包含的最外层或最内层协议头。 然而,函数
skb_flow_dissect_flow_keys
似乎假设
protocol
属于
skb_network_header

network-programming linux-kernel
1个回答
0
投票

协议字段由设备驱动程序设置为介质上的低层(最外层)协议。 例如,几乎所有以太网驱动程序都将其设置为传输协议

eth_type_trans
的输出。
https://elixir.bootlin.com/linux/v6.11.5/source/net/ethernet/eth.c#L155

© www.soinside.com 2019 - 2024. All rights reserved.