diff options
author | Lennert Buytenhek <buytenh@wantstofly.org> | 2008-10-07 09:46:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-10-08 20:24:16 -0400 |
commit | 396138f03f4521c55ecc3a5dd75d4c56e6323244 (patch) | |
tree | 61dc43e540c861a4b05753da56a9fe2a19bea206 /include | |
parent | 2e5f032095ff101274dfb03d5fd5e06d9aeb83cd (diff) |
dsa: add support for Trailer tagging format
This adds support for the Trailer switch tagging format. This is
another tagging that doesn't explicitly mark tagged packets with a
distinct ethertype, so that we need to add a similar hack in the
receive path as for the Original DSA tagging format.
Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Tested-by: Byron Bradley <byron.bbradley@gmail.com>
Tested-by: Tim Ellis <tim.ellis@mac.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/if_ether.h | 1 | ||||
-rw-r--r-- | include/linux/netdevice.h | 10 | ||||
-rw-r--r-- | include/net/dsa.h | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/include/linux/if_ether.h b/include/linux/if_ether.h index 32b9dcda68c7..a0099e98b5c4 100644 --- a/include/linux/if_ether.h +++ b/include/linux/if_ether.h | |||
@@ -102,6 +102,7 @@ | |||
102 | #define ETH_P_HDLC 0x0019 /* HDLC frames */ | 102 | #define ETH_P_HDLC 0x0019 /* HDLC frames */ |
103 | #define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */ | 103 | #define ETH_P_ARCNET 0x001A /* 1A for ArcNet :-) */ |
104 | #define ETH_P_DSA 0x001B /* Distributed Switch Arch. */ | 104 | #define ETH_P_DSA 0x001B /* Distributed Switch Arch. */ |
105 | #define ETH_P_TRAILER 0x001C /* Trailer switch tagging */ | ||
105 | #define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */ | 106 | #define ETH_P_PHONET 0x00F5 /* Nokia Phonet frames */ |
106 | 107 | ||
107 | /* | 108 | /* |
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h index 97f0c64c152a..d3ea3de70a8a 100644 --- a/include/linux/netdevice.h +++ b/include/linux/netdevice.h | |||
@@ -812,6 +812,16 @@ static inline bool netdev_uses_dsa_tags(struct net_device *dev) | |||
812 | return 0; | 812 | return 0; |
813 | } | 813 | } |
814 | 814 | ||
815 | static inline bool netdev_uses_trailer_tags(struct net_device *dev) | ||
816 | { | ||
817 | #ifdef CONFIG_NET_DSA_TAG_TRAILER | ||
818 | if (dev->dsa_ptr != NULL) | ||
819 | return dsa_uses_trailer_tags(dev->dsa_ptr); | ||
820 | #endif | ||
821 | |||
822 | return 0; | ||
823 | } | ||
824 | |||
815 | /** | 825 | /** |
816 | * netdev_priv - access network device private data | 826 | * netdev_priv - access network device private data |
817 | * @dev: network device | 827 | * @dev: network device |
diff --git a/include/net/dsa.h b/include/net/dsa.h index 72e509b6a12e..52e97bfca5a1 100644 --- a/include/net/dsa.h +++ b/include/net/dsa.h | |||
@@ -31,6 +31,7 @@ struct dsa_platform_data { | |||
31 | }; | 31 | }; |
32 | 32 | ||
33 | extern bool dsa_uses_dsa_tags(void *dsa_ptr); | 33 | extern bool dsa_uses_dsa_tags(void *dsa_ptr); |
34 | extern bool dsa_uses_trailer_tags(void *dsa_ptr); | ||
34 | 35 | ||
35 | 36 | ||
36 | #endif | 37 | #endif |