mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-11 04:18:39 +08:00
net/ethernet: Add parse_protocol header_ops support
The previous commit introduced parse_protocol callback which should extract the protocol number from the L2 header. Make all Ethernet devices support it. Signed-off-by: Maxim Mikityanskiy <maximmi@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
e78b291551
commit
ace53b2e29
@ -44,6 +44,7 @@ int eth_header_cache(const struct neighbour *neigh, struct hh_cache *hh,
|
|||||||
__be16 type);
|
__be16 type);
|
||||||
void eth_header_cache_update(struct hh_cache *hh, const struct net_device *dev,
|
void eth_header_cache_update(struct hh_cache *hh, const struct net_device *dev,
|
||||||
const unsigned char *haddr);
|
const unsigned char *haddr);
|
||||||
|
__be16 eth_header_parse_protocol(const struct sk_buff *skb);
|
||||||
int eth_prepare_mac_addr_change(struct net_device *dev, void *p);
|
int eth_prepare_mac_addr_change(struct net_device *dev, void *p);
|
||||||
void eth_commit_mac_addr_change(struct net_device *dev, void *p);
|
void eth_commit_mac_addr_change(struct net_device *dev, void *p);
|
||||||
int eth_mac_addr(struct net_device *dev, void *p);
|
int eth_mac_addr(struct net_device *dev, void *p);
|
||||||
|
@ -264,6 +264,18 @@ void eth_header_cache_update(struct hh_cache *hh,
|
|||||||
}
|
}
|
||||||
EXPORT_SYMBOL(eth_header_cache_update);
|
EXPORT_SYMBOL(eth_header_cache_update);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* eth_header_parser_protocol - extract protocol from L2 header
|
||||||
|
* @skb: packet to extract protocol from
|
||||||
|
*/
|
||||||
|
__be16 eth_header_parse_protocol(const struct sk_buff *skb)
|
||||||
|
{
|
||||||
|
const struct ethhdr *eth = eth_hdr(skb);
|
||||||
|
|
||||||
|
return eth->h_proto;
|
||||||
|
}
|
||||||
|
EXPORT_SYMBOL(eth_header_parse_protocol);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* eth_prepare_mac_addr_change - prepare for mac change
|
* eth_prepare_mac_addr_change - prepare for mac change
|
||||||
* @dev: network device
|
* @dev: network device
|
||||||
@ -346,6 +358,7 @@ const struct header_ops eth_header_ops ____cacheline_aligned = {
|
|||||||
.parse = eth_header_parse,
|
.parse = eth_header_parse,
|
||||||
.cache = eth_header_cache,
|
.cache = eth_header_cache,
|
||||||
.cache_update = eth_header_cache_update,
|
.cache_update = eth_header_cache_update,
|
||||||
|
.parse_protocol = eth_header_parse_protocol,
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user