vlan: make a new function vlan_dev_vlan_proto() and export

The vlan support 2 proto: 802.1q and 802.1ad, so make a new function
called vlan_dev_vlan_proto() which could return the vlan proto for
input dev.

Signed-off-by: Ding Tianhong <dingtianhong@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
dingtianhong 2014-03-25 17:44:42 +08:00 committed by David S. Miller
parent 5a6b99170c
commit 71e415e44c
2 changed files with 13 additions and 0 deletions

View File

@ -110,6 +110,7 @@ extern struct net_device *__vlan_find_dev_deep(struct net_device *real_dev,
__be16 vlan_proto, u16 vlan_id); __be16 vlan_proto, u16 vlan_id);
extern struct net_device *vlan_dev_real_dev(const struct net_device *dev); extern struct net_device *vlan_dev_real_dev(const struct net_device *dev);
extern u16 vlan_dev_vlan_id(const struct net_device *dev); extern u16 vlan_dev_vlan_id(const struct net_device *dev);
extern __be16 vlan_dev_vlan_proto(const struct net_device *dev);
/** /**
* struct vlan_priority_tci_mapping - vlan egress priority mappings * struct vlan_priority_tci_mapping - vlan egress priority mappings
@ -216,6 +217,12 @@ static inline u16 vlan_dev_vlan_id(const struct net_device *dev)
return 0; return 0;
} }
static inline __be16 vlan_dev_vlan_proto(const struct net_device *dev)
{
BUG();
return 0;
}
static inline u16 vlan_dev_get_egress_qos_mask(struct net_device *dev, static inline u16 vlan_dev_get_egress_qos_mask(struct net_device *dev,
u32 skprio) u32 skprio)
{ {

View File

@ -106,6 +106,12 @@ u16 vlan_dev_vlan_id(const struct net_device *dev)
} }
EXPORT_SYMBOL(vlan_dev_vlan_id); EXPORT_SYMBOL(vlan_dev_vlan_id);
__be16 vlan_dev_vlan_proto(const struct net_device *dev)
{
return vlan_dev_priv(dev)->vlan_proto;
}
EXPORT_SYMBOL(vlan_dev_vlan_proto);
static struct sk_buff *vlan_reorder_header(struct sk_buff *skb) static struct sk_buff *vlan_reorder_header(struct sk_buff *skb)
{ {
if (skb_cow(skb, skb_headroom(skb)) < 0) if (skb_cow(skb, skb_headroom(skb)) < 0)