|
@@ -110,39 +110,6 @@ static struct sk_buff *vlan_reorder_header(struct sk_buff *skb)
|
|
|
return skb;
|
|
|
}
|
|
|
|
|
|
-static void vlan_set_encap_proto(struct sk_buff *skb, struct vlan_hdr *vhdr)
|
|
|
-{
|
|
|
- __be16 proto;
|
|
|
- unsigned char *rawp;
|
|
|
-
|
|
|
- /*
|
|
|
- * Was a VLAN packet, grab the encapsulated protocol, which the layer
|
|
|
- * three protocols care about.
|
|
|
- */
|
|
|
-
|
|
|
- proto = vhdr->h_vlan_encapsulated_proto;
|
|
|
- if (ntohs(proto) >= 1536) {
|
|
|
- skb->protocol = proto;
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- rawp = skb->data;
|
|
|
- if (*(unsigned short *) rawp == 0xFFFF)
|
|
|
- /*
|
|
|
- * This is a magic hack to spot IPX packets. Older Novell
|
|
|
- * breaks the protocol design and runs IPX over 802.3 without
|
|
|
- * an 802.2 LLC layer. We look for FFFF which isn't a used
|
|
|
- * 802.2 SSAP/DSAP. This won't work for fault tolerant netware
|
|
|
- * but does for the rest.
|
|
|
- */
|
|
|
- skb->protocol = htons(ETH_P_802_3);
|
|
|
- else
|
|
|
- /*
|
|
|
- * Real 802.2 LLC
|
|
|
- */
|
|
|
- skb->protocol = htons(ETH_P_802_2);
|
|
|
-}
|
|
|
-
|
|
|
struct sk_buff *vlan_untag(struct sk_buff *skb)
|
|
|
{
|
|
|
struct vlan_hdr *vhdr;
|