net: vlan: prepare for 802.1ad VLAN filtering offload

Change the rx_{add,kill}_vid callbacks to take a protocol argument in
preparation of 802.1ad support. The protocol argument used so far is
always htons(ETH_P_8021Q).

Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Patrick McHardy
2013-04-19 02:04:28 +00:00
committed by David S. Miller
parent f646968f8f
commit 80d5c3689b
34 changed files with 184 additions and 137 deletions

View File

@@ -508,8 +508,10 @@ static struct rtnl_link_stats64 *rhine_get_stats64(struct net_device *dev,
static int netdev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
static const struct ethtool_ops netdev_ethtool_ops;
static int rhine_close(struct net_device *dev);
static int rhine_vlan_rx_add_vid(struct net_device *dev, unsigned short vid);
static int rhine_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid);
static int rhine_vlan_rx_add_vid(struct net_device *dev,
__be16 proto, u16 vid);
static int rhine_vlan_rx_kill_vid(struct net_device *dev,
__be16 proto, u16 vid);
static void rhine_restart_tx(struct net_device *dev);
static void rhine_wait_bit(struct rhine_private *rp, u8 reg, u8 mask, bool low)
@@ -1415,7 +1417,7 @@ static void rhine_update_vcam(struct net_device *dev)
rhine_set_vlan_cam_mask(ioaddr, vCAMmask);
}
static int rhine_vlan_rx_add_vid(struct net_device *dev, unsigned short vid)
static int rhine_vlan_rx_add_vid(struct net_device *dev, __be16 proto, u16 vid)
{
struct rhine_private *rp = netdev_priv(dev);
@@ -1426,7 +1428,7 @@ static int rhine_vlan_rx_add_vid(struct net_device *dev, unsigned short vid)
return 0;
}
static int rhine_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
static int rhine_vlan_rx_kill_vid(struct net_device *dev, __be16 proto, u16 vid)
{
struct rhine_private *rp = netdev_priv(dev);

View File

@@ -525,7 +525,8 @@ static void velocity_init_cam_filter(struct velocity_info *vptr)
mac_set_vlan_cam_mask(regs, vptr->vCAMmask);
}
static int velocity_vlan_rx_add_vid(struct net_device *dev, unsigned short vid)
static int velocity_vlan_rx_add_vid(struct net_device *dev,
__be16 proto, u16 vid)
{
struct velocity_info *vptr = netdev_priv(dev);
@@ -536,7 +537,8 @@ static int velocity_vlan_rx_add_vid(struct net_device *dev, unsigned short vid)
return 0;
}
static int velocity_vlan_rx_kill_vid(struct net_device *dev, unsigned short vid)
static int velocity_vlan_rx_kill_vid(struct net_device *dev,
__be16 proto, u16 vid)
{
struct velocity_info *vptr = netdev_priv(dev);