Lines Matching refs:vlan
8 * VLAN Home Page: http://www.candelatech.com/~greear/vlan.html
32 #include "vlan.h"
51 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
57 if (!(vlan->flags & VLAN_FLAG_REORDER_HDR)) {
60 vlan_tci = vlan->vlan_id;
73 skb->protocol = vlan->vlan_proto;
74 type = ntohs(vlan->vlan_proto);
83 dev = vlan->real_dev;
90 static inline netdev_tx_t vlan_netpoll_send_skb(struct vlan_dev_priv *vlan, struct sk_buff *skb)
93 return netpoll_send_skb(vlan->netpoll, skb);
103 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
113 if (vlan->flags & VLAN_FLAG_REORDER_HDR ||
114 veth->h_vlan_proto != vlan->vlan_proto) {
116 vlan_tci = vlan->vlan_id;
118 __vlan_hwaccel_put_tag(skb, vlan->vlan_proto, vlan_tci);
121 skb->dev = vlan->real_dev;
124 return vlan_netpoll_send_skb(vlan, skb);
131 stats = this_cpu_ptr(vlan->vlan_pcpu_stats);
137 this_cpu_inc(vlan->vlan_pcpu_stats->tx_dropped);
161 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
163 if (vlan->ingress_priority_map[vlan_prio & 0x7] && !skb_prio)
164 vlan->nr_ingress_mappings--;
165 else if (!vlan->ingress_priority_map[vlan_prio & 0x7] && skb_prio)
166 vlan->nr_ingress_mappings++;
168 vlan->ingress_priority_map[vlan_prio & 0x7] = skb_prio;
174 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
182 mpp = &vlan->egress_priority_map[bucket];
188 vlan->nr_egress_mappings--;
209 RCU_INIT_POINTER(np->next, rtnl_dereference(vlan->egress_priority_map[bucket]));
210 rcu_assign_pointer(vlan->egress_priority_map[bucket], np);
212 vlan->nr_egress_mappings++;
221 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
222 u32 old_flags = vlan->flags;
229 vlan->flags = (old_flags & ~mask) | (flags & mask);
231 if (netif_running(dev) && (vlan->flags ^ old_flags) & VLAN_FLAG_GVRP) {
232 if (vlan->flags & VLAN_FLAG_GVRP)
238 if (netif_running(dev) && (vlan->flags ^ old_flags) & VLAN_FLAG_MVRP) {
239 if (vlan->flags & VLAN_FLAG_MVRP)
265 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
266 struct net_device *real_dev = vlan->real_dev;
270 !(vlan->flags & VLAN_FLAG_LOOSE_BINDING))
280 ether_addr_copy(vlan->real_dev_addr, real_dev->dev_addr);
282 if (vlan->flags & VLAN_FLAG_GVRP)
285 if (vlan->flags & VLAN_FLAG_MVRP)
289 !(vlan->flags & VLAN_FLAG_BRIDGE_BINDING))
300 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
301 struct net_device *real_dev = vlan->real_dev;
309 if (!(vlan->flags & VLAN_FLAG_BRIDGE_BINDING))
504 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
505 struct net_device *real_dev = vlan->real_dev;
520 .name = "vlan",
527 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
528 struct net_device *real_dev = vlan->real_dev;
539 if (vlan->flags & VLAN_FLAG_BRIDGE_BINDING)
578 if (vlan_hw_offload_capable(real_dev->features, vlan->vlan_proto)) {
592 vlan->vlan_pcpu_stats = netdev_alloc_pcpu_stats(struct vlan_pcpu_stats);
593 if (!vlan->vlan_pcpu_stats)
596 /* Get vlan's reference to real_dev */
597 netdev_hold(real_dev, &vlan->dev_tracker, GFP_KERNEL);
606 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
609 for (i = 0; i < ARRAY_SIZE(vlan->egress_priority_map); i++) {
610 pm = rtnl_dereference(vlan->egress_priority_map[i]);
611 RCU_INIT_POINTER(vlan->egress_priority_map[i], NULL);
620 vlan->nr_egress_mappings = 0;
640 * checksum offload on the vlan device.
653 const struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
655 return __ethtool_get_link_ksettings(vlan->real_dev, cmd);
669 const struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
670 return ethtool_get_ts_info_by_layer(vlan->real_dev, info);
715 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
716 struct net_device *real_dev = vlan->real_dev;
731 vlan->netpoll = netpoll;
739 struct vlan_dev_priv *vlan= vlan_dev_priv(dev);
740 struct netpoll *netpoll = vlan->netpoll;
745 vlan->netpoll = NULL;
760 struct vlan_dev_priv *vlan = vlan_dev_priv(ctx->dev);
763 path->encap.id = vlan->vlan_id;
764 path->encap.proto = vlan->vlan_proto;
766 ctx->dev = vlan->real_dev;
767 if (ctx->num_vlans >= ARRAY_SIZE(ctx->vlan))
770 ctx->vlan[ctx->num_vlans].id = vlan->vlan_id;
771 ctx->vlan[ctx->num_vlans].proto = vlan->vlan_proto;
1057 struct vlan_dev_priv *vlan = vlan_dev_priv(dev);
1059 free_percpu(vlan->vlan_pcpu_stats);
1060 vlan->vlan_pcpu_stats = NULL;
1062 /* Get rid of the vlan's reference to real_dev */
1063 netdev_put(vlan->real_dev, &vlan->dev_tracker);