Determine the packets protocol id.
__be16 eth_type_trans(struct sk_buff * skb, struct net_device * dev);
skb
received socket data
dev
receiving network device
The rule here is that we assume 802.3 if the type field is short enough to be a length. This is normal practice and works for any 'now in use' protocol.