Lines Matching refs:dev
46 static int vlan_dev_hard_header(struct sk_buff *skb, struct net_device *dev, in vlan_dev_hard_header() argument
51 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_hard_header()
61 vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb->priority); in vlan_dev_hard_header()
80 saddr = dev->dev_addr; in vlan_dev_hard_header()
83 dev = vlan->real_dev; in vlan_dev_hard_header()
84 rc = dev_hard_header(skb, dev, type, daddr, saddr, len + vhdrlen); in vlan_dev_hard_header()
101 struct net_device *dev) in vlan_dev_hard_start_xmit() argument
103 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_hard_start_xmit()
117 vlan_tci |= vlan_dev_get_egress_qos_mask(dev, skb->priority); in vlan_dev_hard_start_xmit()
121 skb->dev = vlan->real_dev; in vlan_dev_hard_start_xmit()
123 if (unlikely(netpoll_tx_running(dev))) in vlan_dev_hard_start_xmit()
143 static int vlan_dev_change_mtu(struct net_device *dev, int new_mtu) in vlan_dev_change_mtu() argument
145 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_change_mtu()
153 WRITE_ONCE(dev->mtu, new_mtu); in vlan_dev_change_mtu()
158 void vlan_dev_set_ingress_priority(const struct net_device *dev, in vlan_dev_set_ingress_priority() argument
161 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_set_ingress_priority()
171 int vlan_dev_set_egress_priority(const struct net_device *dev, in vlan_dev_set_egress_priority() argument
174 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_set_egress_priority()
216 int vlan_dev_change_flags(const struct net_device *dev, u32 flags, u32 mask) in vlan_dev_change_flags() argument
218 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_change_flags()
228 if (netif_running(dev) && (vlan->flags ^ old_flags) & VLAN_FLAG_GVRP) { in vlan_dev_change_flags()
230 vlan_gvrp_request_join(dev); in vlan_dev_change_flags()
232 vlan_gvrp_request_leave(dev); in vlan_dev_change_flags()
235 if (netif_running(dev) && (vlan->flags ^ old_flags) & VLAN_FLAG_MVRP) { in vlan_dev_change_flags()
237 vlan_mvrp_request_join(dev); in vlan_dev_change_flags()
239 vlan_mvrp_request_leave(dev); in vlan_dev_change_flags()
244 void vlan_dev_get_realdev_name(const struct net_device *dev, char *result, size_t size) in vlan_dev_get_realdev_name() argument
246 strscpy_pad(result, vlan_dev_priv(dev)->real_dev->name, size); in vlan_dev_get_realdev_name()
249 bool vlan_dev_inherit_address(struct net_device *dev, in vlan_dev_inherit_address() argument
252 if (dev->addr_assign_type != NET_ADDR_STOLEN) in vlan_dev_inherit_address()
255 eth_hw_addr_set(dev, real_dev->dev_addr); in vlan_dev_inherit_address()
256 call_netdevice_notifiers(NETDEV_CHANGEADDR, dev); in vlan_dev_inherit_address()
260 static int vlan_dev_open(struct net_device *dev) in vlan_dev_open() argument
262 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_open()
270 if (!ether_addr_equal(dev->dev_addr, real_dev->dev_addr) && in vlan_dev_open()
271 !vlan_dev_inherit_address(dev, real_dev)) { in vlan_dev_open()
272 err = dev_uc_add(real_dev, dev->dev_addr); in vlan_dev_open()
280 vlan_gvrp_request_join(dev); in vlan_dev_open()
283 vlan_mvrp_request_join(dev); in vlan_dev_open()
287 netif_carrier_on(dev); in vlan_dev_open()
291 netif_carrier_off(dev); in vlan_dev_open()
295 static int vlan_dev_stop(struct net_device *dev) in vlan_dev_stop() argument
297 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_stop()
300 dev_mc_unsync(real_dev, dev); in vlan_dev_stop()
301 dev_uc_unsync(real_dev, dev); in vlan_dev_stop()
303 if (!ether_addr_equal(dev->dev_addr, real_dev->dev_addr)) in vlan_dev_stop()
304 dev_uc_del(real_dev, dev->dev_addr); in vlan_dev_stop()
307 netif_carrier_off(dev); in vlan_dev_stop()
311 static int vlan_dev_set_mac_address(struct net_device *dev, void *p) in vlan_dev_set_mac_address() argument
313 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_set_mac_address()
320 if (!(dev->flags & IFF_UP)) in vlan_dev_set_mac_address()
329 if (!ether_addr_equal(dev->dev_addr, real_dev->dev_addr)) in vlan_dev_set_mac_address()
330 dev_uc_del(real_dev, dev->dev_addr); in vlan_dev_set_mac_address()
333 eth_hw_addr_set(dev, addr->sa_data); in vlan_dev_set_mac_address()
337 static int vlan_hwtstamp_get(struct net_device *dev, in vlan_hwtstamp_get() argument
340 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_hwtstamp_get()
345 static int vlan_hwtstamp_set(struct net_device *dev, in vlan_hwtstamp_set() argument
349 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_hwtstamp_set()
351 if (!net_eq(dev_net(dev), dev_net(real_dev))) in vlan_hwtstamp_set()
357 static int vlan_dev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd) in vlan_dev_ioctl() argument
359 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_ioctl()
380 static int vlan_dev_neigh_setup(struct net_device *dev, struct neigh_parms *pa) in vlan_dev_neigh_setup() argument
382 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_neigh_setup()
393 static int vlan_dev_fcoe_ddp_setup(struct net_device *dev, u16 xid, in vlan_dev_fcoe_ddp_setup() argument
396 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_fcoe_ddp_setup()
406 static int vlan_dev_fcoe_ddp_done(struct net_device *dev, u16 xid) in vlan_dev_fcoe_ddp_done() argument
408 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_fcoe_ddp_done()
418 static int vlan_dev_fcoe_enable(struct net_device *dev) in vlan_dev_fcoe_enable() argument
420 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_fcoe_enable()
429 static int vlan_dev_fcoe_disable(struct net_device *dev) in vlan_dev_fcoe_disable() argument
431 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_fcoe_disable()
440 static int vlan_dev_fcoe_ddp_target(struct net_device *dev, u16 xid, in vlan_dev_fcoe_ddp_target() argument
443 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_fcoe_ddp_target()
455 static int vlan_dev_fcoe_get_wwn(struct net_device *dev, u64 *wwn, int type) in vlan_dev_fcoe_get_wwn() argument
457 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_fcoe_get_wwn()
467 static void vlan_dev_change_rx_flags(struct net_device *dev, int change) in vlan_dev_change_rx_flags() argument
469 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_change_rx_flags()
472 dev_set_allmulti(real_dev, dev->flags & IFF_ALLMULTI ? 1 : -1); in vlan_dev_change_rx_flags()
474 dev_set_promiscuity(real_dev, dev->flags & IFF_PROMISC ? 1 : -1); in vlan_dev_change_rx_flags()
496 static int vlan_passthru_hard_header(struct sk_buff *skb, struct net_device *dev, in vlan_passthru_hard_header() argument
501 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_passthru_hard_header()
505 saddr = dev->dev_addr; in vlan_passthru_hard_header()
522 static int vlan_dev_init(struct net_device *dev) in vlan_dev_init() argument
524 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_init()
527 netif_carrier_off(dev); in vlan_dev_init()
530 dev->flags = real_dev->flags & ~(IFF_UP | IFF_PROMISC | IFF_ALLMULTI | in vlan_dev_init()
532 dev->state = (real_dev->state & ((1<<__LINK_STATE_NOCARRIER) | in vlan_dev_init()
537 dev->state |= (1 << __LINK_STATE_NOCARRIER); in vlan_dev_init()
539 dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG | in vlan_dev_init()
546 dev->hw_features |= NETIF_F_HW_MACSEC; in vlan_dev_init()
548 dev->features |= dev->hw_features; in vlan_dev_init()
549 dev->lltx = true; in vlan_dev_init()
550 dev->fcoe_mtu = true; in vlan_dev_init()
551 netif_inherit_tso_max(dev, real_dev); in vlan_dev_init()
552 if (dev->features & NETIF_F_VLAN_FEATURES) in vlan_dev_init()
555 dev->vlan_features = real_dev->vlan_features & in vlan_dev_init()
557 dev->hw_enc_features = vlan_tnl_features(real_dev); in vlan_dev_init()
558 dev->mpls_features = real_dev->mpls_features; in vlan_dev_init()
561 dev->dev_id = real_dev->dev_id; in vlan_dev_init()
563 if (is_zero_ether_addr(dev->dev_addr)) { in vlan_dev_init()
564 eth_hw_addr_set(dev, real_dev->dev_addr); in vlan_dev_init()
565 dev->addr_assign_type = NET_ADDR_STOLEN; in vlan_dev_init()
567 if (is_zero_ether_addr(dev->broadcast)) in vlan_dev_init()
568 memcpy(dev->broadcast, real_dev->broadcast, dev->addr_len); in vlan_dev_init()
571 dev->fcoe_ddp_xid = real_dev->fcoe_ddp_xid; in vlan_dev_init()
574 dev->needed_headroom = real_dev->needed_headroom; in vlan_dev_init()
576 dev->header_ops = &vlan_passthru_header_ops; in vlan_dev_init()
577 dev->hard_header_len = real_dev->hard_header_len; in vlan_dev_init()
579 dev->header_ops = &vlan_header_ops; in vlan_dev_init()
580 dev->hard_header_len = real_dev->hard_header_len + VLAN_HLEN; in vlan_dev_init()
583 dev->netdev_ops = &vlan_netdev_ops; in vlan_dev_init()
585 SET_NETDEV_DEVTYPE(dev, &vlan_type); in vlan_dev_init()
587 netdev_lockdep_set_classes(dev); in vlan_dev_init()
600 void vlan_dev_free_egress_priority(const struct net_device *dev) in vlan_dev_free_egress_priority() argument
603 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_free_egress_priority()
614 static void vlan_dev_uninit(struct net_device *dev) in vlan_dev_uninit() argument
616 vlan_dev_free_egress_priority(dev); in vlan_dev_uninit()
619 static netdev_features_t vlan_dev_fix_features(struct net_device *dev, in vlan_dev_fix_features() argument
622 struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_fix_features()
641 static int vlan_ethtool_get_link_ksettings(struct net_device *dev, in vlan_ethtool_get_link_ksettings() argument
644 const struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_ethtool_get_link_ksettings()
649 static void vlan_ethtool_get_drvinfo(struct net_device *dev, in vlan_ethtool_get_drvinfo() argument
657 static int vlan_ethtool_get_ts_info(struct net_device *dev, in vlan_ethtool_get_ts_info() argument
660 const struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_ethtool_get_ts_info()
664 static void vlan_dev_get_stats64(struct net_device *dev, in vlan_dev_get_stats64() argument
675 p = per_cpu_ptr(vlan_dev_priv(dev)->vlan_pcpu_stats, i); in vlan_dev_get_stats64()
699 static void vlan_dev_poll_controller(struct net_device *dev) in vlan_dev_poll_controller() argument
704 static int vlan_dev_netpoll_setup(struct net_device *dev) in vlan_dev_netpoll_setup() argument
706 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_netpoll_setup()
728 static void vlan_dev_netpoll_cleanup(struct net_device *dev) in vlan_dev_netpoll_cleanup() argument
730 struct vlan_dev_priv *vlan= vlan_dev_priv(dev); in vlan_dev_netpoll_cleanup()
741 static int vlan_dev_get_iflink(const struct net_device *dev) in vlan_dev_get_iflink() argument
743 const struct net_device *real_dev = vlan_dev_priv(dev)->real_dev; in vlan_dev_get_iflink()
751 struct vlan_dev_priv *vlan = vlan_dev_priv(ctx->dev); in vlan_dev_fill_forward_path()
756 path->dev = ctx->dev; in vlan_dev_fill_forward_path()
757 ctx->dev = vlan->real_dev; in vlan_dev_fill_forward_path()
1046 static void vlan_dev_free(struct net_device *dev) in vlan_dev_free() argument
1048 struct vlan_dev_priv *vlan = vlan_dev_priv(dev); in vlan_dev_free()
1057 void vlan_setup(struct net_device *dev) in vlan_setup() argument
1059 ether_setup(dev); in vlan_setup()
1061 dev->priv_flags |= IFF_802_1Q_VLAN | IFF_NO_QUEUE; in vlan_setup()
1062 dev->priv_flags |= IFF_UNICAST_FLT; in vlan_setup()
1063 dev->priv_flags &= ~IFF_TX_SKB_SHARING; in vlan_setup()
1064 netif_keep_dst(dev); in vlan_setup()
1066 dev->netdev_ops = &vlan_netdev_ops; in vlan_setup()
1067 dev->needs_free_netdev = true; in vlan_setup()
1068 dev->priv_destructor = vlan_dev_free; in vlan_setup()
1069 dev->ethtool_ops = &vlan_ethtool_ops; in vlan_setup()
1072 dev->macsec_ops = &macsec_offload_ops; in vlan_setup()
1074 dev->min_mtu = 0; in vlan_setup()
1075 dev->max_mtu = ETH_MAX_MTU; in vlan_setup()
1077 eth_zero_addr(dev->broadcast); in vlan_setup()