aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLennert Buytenhek <buytenh@wantstofly.org>2008-10-07 09:46:07 -0400
committerDavid S. Miller <davem@davemloft.net>2008-10-08 20:24:16 -0400
commit396138f03f4521c55ecc3a5dd75d4c56e6323244 (patch)
tree61dc43e540c861a4b05753da56a9fe2a19bea206 /include
parent2e5f032095ff101274dfb03d5fd5e06d9aeb83cd (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.h1
-rw-r--r--include/linux/netdevice.h10
-rw-r--r--include/net/dsa.h1
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
815static 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
33extern bool dsa_uses_dsa_tags(void *dsa_ptr); 33extern bool dsa_uses_dsa_tags(void *dsa_ptr);
34extern bool dsa_uses_trailer_tags(void *dsa_ptr);
34 35
35 36
36#endif 37#endif