diff options
author | Zhengchao Shao <shaozhengchao@huawei.com> | 2023-12-02 21:04:38 +0800 |
---|---|---|
committer | Paolo Abeni <pabeni@redhat.com> | 2023-12-05 13:42:08 +0100 |
commit | fb70136ded2e1ea3cde27d0393cfadab4240a141 (patch) | |
tree | bec643246b12b1b0aba2f17463507f9ad464dccd /drivers/net/ipvlan | |
parent | cb297cc5e194a2ea3cb8aaf722005286ee42b011 (diff) |
ipvlan: implement .parse_protocol hook function in ipvlan_header_ops
The .parse_protocol hook function in the ipvlan_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.
Ipvlan is a device of type ARPHRD_ETHER (ether_setup). Therefore, use
eth_header_parse_protocol function to obtain the protocol.
Signed-off-by: Zhengchao Shao <shaozhengchao@huawei.com>
Reviewed-by: Willem de Bruijn <willemb@google.com>
Link: https://lore.kernel.org/r/20231202130438.2266343-1-shaozhengchao@huawei.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Diffstat (limited to 'drivers/net/ipvlan')
-rw-r--r-- | drivers/net/ipvlan/ipvlan_main.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c index 57c79f5f2991..f28fd7b6b708 100644 --- a/drivers/net/ipvlan/ipvlan_main.c +++ b/drivers/net/ipvlan/ipvlan_main.c @@ -387,6 +387,7 @@ static const struct header_ops ipvlan_header_ops = { .parse = eth_header_parse, .cache = eth_header_cache, .cache_update = eth_header_cache_update, + .parse_protocol = eth_header_parse_protocol, }; static void ipvlan_adjust_mtu(struct ipvl_dev *ipvlan, struct net_device *dev) |