Message ID | 20231202130658.2266526-1-shaozhengchao@huawei.com (mailing list archive) |
---|---|
State | Accepted |
Commit | cb297cc5e194a2ea3cb8aaf722005286ee42b011 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2] macvlan: implement .parse_protocol hook function in macvlan_hard_header_ops | expand |
Zhengchao Shao wrote: > The .parse_protocol hook function in the macvlan_header_ops structure is > not implemented. As a result, when the AF_PACKET family is used to send > packets, skb->protocol will be set to 0. > Macvlan is a device of type ARPHRD_ETHER (ether_setup). Therefore, use > eth_header_parse_protocol function to obtain the protocol. > > Suggested-by: Eric Dumazet <edumazet@google.com> > Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> Reviewed-by: Willem de Bruijn <willemb@google.com> Macvlan does not use skb->protocol in its ndo_start_xmit often. But does use it once, in macvlan_broadcast, to not broadcast ETH_P_PAUSE frames.
Hello: This patch was applied to netdev/net-next.git (main) by Paolo Abeni <pabeni@redhat.com>: On Sat, 2 Dec 2023 21:06:58 +0800 you wrote: > The .parse_protocol hook function in the macvlan_header_ops structure is > not implemented. As a result, when the AF_PACKET family is used to send > packets, skb->protocol will be set to 0. > Macvlan is a device of type ARPHRD_ETHER (ether_setup). Therefore, use > eth_header_parse_protocol function to obtain the protocol. > > Suggested-by: Eric Dumazet <edumazet@google.com> > Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> > > [...] Here is the summary with links: - [net-next,v2] macvlan: implement .parse_protocol hook function in macvlan_hard_header_ops https://git.kernel.org/netdev/net-next/c/cb297cc5e194 You are awesome, thank you!
diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c index 88dd8a2245b0..a3cc665757e8 100644 --- a/drivers/net/macvlan.c +++ b/drivers/net/macvlan.c @@ -609,6 +609,7 @@ static const struct header_ops macvlan_hard_header_ops = { .parse = eth_header_parse, .cache = eth_header_cache, .cache_update = eth_header_cache_update, + .parse_protocol = eth_header_parse_protocol, }; static int macvlan_open(struct net_device *dev)
The .parse_protocol hook function in the macvlan_header_ops structure is not implemented. As a result, when the AF_PACKET family is used to send packets, skb->protocol will be set to 0. Macvlan is a device of type ARPHRD_ETHER (ether_setup). Therefore, use eth_header_parse_protocol function to obtain the protocol. Suggested-by: Eric Dumazet <edumazet@google.com> Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com> --- v2: remove Fixes tag --- drivers/net/macvlan.c | 1 + 1 file changed, 1 insertion(+)