- __be16 eth_type_trans(struct sk_buff * skb, struct net_device * dev);
- received socket data
- 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.