Skip to content

Commit

Permalink
net/ethernet: Add parse_protocol header_ops support
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: David S. Miller <[email protected]>
  • Loading branch information
Maxim Mikityanskiy authored and davem330 committed Feb 22, 2019
1 parent e78b291 commit ace53b2
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 0 deletions.
1 change: 1 addition & 0 deletions include/linux/etherdevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ int eth_header_cache(const struct neighbour *neigh, struct hh_cache *hh,
__be16 type);
void eth_header_cache_update(struct hh_cache *hh, const struct net_device *dev,
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);
void eth_commit_mac_addr_change(struct net_device *dev, void *p);
int eth_mac_addr(struct net_device *dev, void *p);
Expand Down
13 changes: 13 additions & 0 deletions net/ethernet/eth.c
Original file line number Diff line number Diff line change
Expand Up @@ -264,6 +264,18 @@ void eth_header_cache_update(struct hh_cache *hh,
}
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
* @dev: network device
Expand Down Expand Up @@ -346,6 +358,7 @@ const struct header_ops eth_header_ops ____cacheline_aligned = {
.parse = eth_header_parse,
.cache = eth_header_cache,
.cache_update = eth_header_cache_update,
.parse_protocol = eth_header_parse_protocol,
};

/**
Expand Down

0 comments on commit ace53b2

Please sign in to comment.