Lines Matching refs:ipvlan

13 	struct ipvl_dev *ipvlan;  in ipvlan_set_port_mode()  local
19 list_for_each_entry(ipvlan, &port->ipvlans, pnode) { in ipvlan_set_port_mode()
20 flags = ipvlan->dev->flags; in ipvlan_set_port_mode()
22 err = dev_change_flags(ipvlan->dev, in ipvlan_set_port_mode()
26 err = dev_change_flags(ipvlan->dev, in ipvlan_set_port_mode()
48 list_for_each_entry_continue_reverse(ipvlan, &port->ipvlans, pnode) { in ipvlan_set_port_mode()
49 flags = ipvlan->dev->flags; in ipvlan_set_port_mode()
52 dev_change_flags(ipvlan->dev, flags | IFF_NOARP, in ipvlan_set_port_mode()
55 dev_change_flags(ipvlan->dev, flags & ~IFF_NOARP, in ipvlan_set_port_mode()
134 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_init() local
135 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_init()
152 ipvlan->pcpu_stats = netdev_alloc_pcpu_stats(struct ipvl_pcpu_stats); in ipvlan_init()
153 if (!ipvlan->pcpu_stats) in ipvlan_init()
159 free_percpu(ipvlan->pcpu_stats); in ipvlan_init()
170 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_uninit() local
171 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_uninit()
174 free_percpu(ipvlan->pcpu_stats); in ipvlan_uninit()
184 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_open() local
185 struct ipvl_port *port = ipvlan->port; in ipvlan_open()
188 if (ipvlan->port->mode == IPVLAN_MODE_L3 || in ipvlan_open()
189 ipvlan->port->mode == IPVLAN_MODE_L3S) in ipvlan_open()
195 list_for_each_entry(addr, &ipvlan->addrs, anode) in ipvlan_open()
196 ipvlan_ht_addr_add(ipvlan, addr); in ipvlan_open()
204 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_stop() local
205 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_stop()
211 spin_lock_bh(&ipvlan->port->addrs_lock); in ipvlan_stop()
212 list_for_each_entry(addr, &ipvlan->addrs, anode) in ipvlan_stop()
214 spin_unlock_bh(&ipvlan->port->addrs_lock); in ipvlan_stop()
222 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_start_xmit() local
230 pcptr = this_cpu_ptr(ipvlan->pcpu_stats); in ipvlan_start_xmit()
237 this_cpu_inc(ipvlan->pcpu_stats->tx_drps); in ipvlan_start_xmit()
245 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_fix_features() local
248 features &= (ipvlan->sfeatures | ~IPVLAN_FEATURES); in ipvlan_fix_features()
249 features = netdev_increment_features(ipvlan->phy_dev->features, in ipvlan_fix_features()
259 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_change_rx_flags() local
260 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_change_rx_flags()
268 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_set_multicast_mac_filter() local
271 bitmap_fill(ipvlan->mac_filters, IPVLAN_MAC_FILTER_SIZE); in ipvlan_set_multicast_mac_filter()
286 bitmap_copy(ipvlan->mac_filters, mc_filters, in ipvlan_set_multicast_mac_filter()
289 dev_uc_sync(ipvlan->phy_dev, dev); in ipvlan_set_multicast_mac_filter()
290 dev_mc_sync(ipvlan->phy_dev, dev); in ipvlan_set_multicast_mac_filter()
296 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_get_stats64() local
298 if (ipvlan->pcpu_stats) { in ipvlan_get_stats64()
306 pcptr = per_cpu_ptr(ipvlan->pcpu_stats, idx); in ipvlan_get_stats64()
336 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_vlan_rx_add_vid() local
337 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_vlan_rx_add_vid()
345 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_vlan_rx_kill_vid() local
346 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_vlan_rx_kill_vid()
354 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_get_iflink() local
356 return READ_ONCE(ipvlan->phy_dev->ifindex); in ipvlan_get_iflink()
378 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_hard_header() local
379 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_hard_header()
397 static void ipvlan_adjust_mtu(struct ipvl_dev *ipvlan, struct net_device *dev) in ipvlan_adjust_mtu() argument
399 ipvlan->dev->mtu = dev->mtu; in ipvlan_adjust_mtu()
411 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_ethtool_get_link_ksettings() local
413 return __ethtool_get_link_ksettings(ipvlan->phy_dev, cmd); in ipvlan_ethtool_get_link_ksettings()
425 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_ethtool_get_msglevel() local
427 return ipvlan->msg_enable; in ipvlan_ethtool_get_msglevel()
432 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_ethtool_set_msglevel() local
434 ipvlan->msg_enable = value; in ipvlan_ethtool_set_msglevel()
449 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_nl_changelink() local
450 struct ipvl_port *port = ipvlan_port_get_rtnl(ipvlan->phy_dev); in ipvlan_nl_changelink()
455 if (!ns_capable(dev_net(ipvlan->phy_dev)->user_ns, CAP_NET_ADMIN)) in ipvlan_nl_changelink()
519 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_nl_fillinfo() local
520 struct ipvl_port *port = ipvlan_port_get_rtnl(ipvlan->phy_dev); in ipvlan_nl_fillinfo()
542 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_link_new() local
578 ipvlan->phy_dev = phy_dev; in ipvlan_link_new()
579 ipvlan->dev = dev; in ipvlan_link_new()
580 ipvlan->sfeatures = IPVLAN_FEATURES; in ipvlan_link_new()
582 ipvlan_adjust_mtu(ipvlan, phy_dev); in ipvlan_link_new()
583 INIT_LIST_HEAD(&ipvlan->addrs); in ipvlan_link_new()
599 ipvlan->port = port; in ipvlan_link_new()
642 list_add_tail_rcu(&ipvlan->pnode, &port->ipvlans); in ipvlan_link_new()
658 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_link_delete() local
661 spin_lock_bh(&ipvlan->port->addrs_lock); in ipvlan_link_delete()
662 list_for_each_entry_safe(addr, next, &ipvlan->addrs, anode) { in ipvlan_link_delete()
667 spin_unlock_bh(&ipvlan->port->addrs_lock); in ipvlan_link_delete()
669 ida_free(&ipvlan->port->ida, dev->dev_id); in ipvlan_link_delete()
670 list_del_rcu(&ipvlan->pnode); in ipvlan_link_delete()
672 netdev_upper_dev_unlink(ipvlan->phy_dev, dev); in ipvlan_link_delete()
698 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_get_link_net() local
700 return dev_net(ipvlan->phy_dev); in ipvlan_get_link_net()
731 struct ipvl_dev *ipvlan, *next; in ipvlan_device_event() local
745 list_for_each_entry(ipvlan, &port->ipvlans, pnode) in ipvlan_device_event()
746 netif_stacked_transfer_operstate(ipvlan->phy_dev, in ipvlan_device_event()
747 ipvlan->dev); in ipvlan_device_event()
767 list_for_each_entry_safe(ipvlan, next, &port->ipvlans, pnode) in ipvlan_device_event()
768 ipvlan->dev->rtnl_link_ops->dellink(ipvlan->dev, in ipvlan_device_event()
774 list_for_each_entry(ipvlan, &port->ipvlans, pnode) { in ipvlan_device_event()
775 netif_inherit_tso_max(ipvlan->dev, dev); in ipvlan_device_event()
776 netdev_update_features(ipvlan->dev); in ipvlan_device_event()
781 list_for_each_entry(ipvlan, &port->ipvlans, pnode) in ipvlan_device_event()
782 ipvlan_adjust_mtu(ipvlan, dev); in ipvlan_device_event()
787 list_for_each_entry(ipvlan, &port->ipvlans, pnode) { in ipvlan_device_event()
788 err = netif_pre_changeaddr_notify(ipvlan->dev, in ipvlan_device_event()
797 list_for_each_entry(ipvlan, &port->ipvlans, pnode) { in ipvlan_device_event()
798 eth_hw_addr_set(ipvlan->dev, dev->dev_addr); in ipvlan_device_event()
799 call_netdevice_notifiers(NETDEV_CHANGEADDR, ipvlan->dev); in ipvlan_device_event()
810 list_for_each_entry(ipvlan, &port->ipvlans, pnode) in ipvlan_device_event()
811 call_netdevice_notifiers(event, ipvlan->dev); in ipvlan_device_event()
817 static int ipvlan_add_addr(struct ipvl_dev *ipvlan, void *iaddr, bool is_v6) in ipvlan_add_addr() argument
821 assert_spin_locked(&ipvlan->port->addrs_lock); in ipvlan_add_addr()
827 addr->master = ipvlan; in ipvlan_add_addr()
838 list_add_tail_rcu(&addr->anode, &ipvlan->addrs); in ipvlan_add_addr()
843 if (netif_running(ipvlan->dev)) in ipvlan_add_addr()
844 ipvlan_ht_addr_add(ipvlan, addr); in ipvlan_add_addr()
849 static void ipvlan_del_addr(struct ipvl_dev *ipvlan, void *iaddr, bool is_v6) in ipvlan_del_addr() argument
853 spin_lock_bh(&ipvlan->port->addrs_lock); in ipvlan_del_addr()
854 addr = ipvlan_find_addr(ipvlan, iaddr, is_v6); in ipvlan_del_addr()
856 spin_unlock_bh(&ipvlan->port->addrs_lock); in ipvlan_del_addr()
862 spin_unlock_bh(&ipvlan->port->addrs_lock); in ipvlan_del_addr()
868 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_is_valid_dev() local
873 if (!ipvlan || !ipvlan->port) in ipvlan_is_valid_dev()
880 static int ipvlan_add_addr6(struct ipvl_dev *ipvlan, struct in6_addr *ip6_addr) in ipvlan_add_addr6() argument
884 spin_lock_bh(&ipvlan->port->addrs_lock); in ipvlan_add_addr6()
885 if (ipvlan_addr_busy(ipvlan->port, ip6_addr, true)) in ipvlan_add_addr6()
886 netif_err(ipvlan, ifup, ipvlan->dev, in ipvlan_add_addr6()
888 ip6_addr, ipvlan->dev->name); in ipvlan_add_addr6()
890 ret = ipvlan_add_addr(ipvlan, ip6_addr, true); in ipvlan_add_addr6()
891 spin_unlock_bh(&ipvlan->port->addrs_lock); in ipvlan_add_addr6()
895 static void ipvlan_del_addr6(struct ipvl_dev *ipvlan, struct in6_addr *ip6_addr) in ipvlan_del_addr6() argument
897 return ipvlan_del_addr(ipvlan, ip6_addr, true); in ipvlan_del_addr6()
905 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_addr6_event() local
912 if (ipvlan_add_addr6(ipvlan, &if6->addr)) in ipvlan_addr6_event()
917 ipvlan_del_addr6(ipvlan, &if6->addr); in ipvlan_addr6_event()
929 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_addr6_validator_event() local
937 spin_lock_bh(&ipvlan->port->addrs_lock); in ipvlan_addr6_validator_event()
938 if (ipvlan_addr_busy(ipvlan->port, &i6vi->i6vi_addr, true)) { in ipvlan_addr6_validator_event()
943 spin_unlock_bh(&ipvlan->port->addrs_lock); in ipvlan_addr6_validator_event()
951 static int ipvlan_add_addr4(struct ipvl_dev *ipvlan, struct in_addr *ip4_addr) in ipvlan_add_addr4() argument
955 spin_lock_bh(&ipvlan->port->addrs_lock); in ipvlan_add_addr4()
956 if (ipvlan_addr_busy(ipvlan->port, ip4_addr, false)) in ipvlan_add_addr4()
957 netif_err(ipvlan, ifup, ipvlan->dev, in ipvlan_add_addr4()
959 ip4_addr, ipvlan->dev->name); in ipvlan_add_addr4()
961 ret = ipvlan_add_addr(ipvlan, ip4_addr, false); in ipvlan_add_addr4()
962 spin_unlock_bh(&ipvlan->port->addrs_lock); in ipvlan_add_addr4()
966 static void ipvlan_del_addr4(struct ipvl_dev *ipvlan, struct in_addr *ip4_addr) in ipvlan_del_addr4() argument
968 return ipvlan_del_addr(ipvlan, ip4_addr, false); in ipvlan_del_addr4()
976 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_addr4_event() local
985 if (ipvlan_add_addr4(ipvlan, &ip4_addr)) in ipvlan_addr4_event()
991 ipvlan_del_addr4(ipvlan, &ip4_addr); in ipvlan_addr4_event()
1003 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_addr4_validator_event() local
1011 spin_lock_bh(&ipvlan->port->addrs_lock); in ipvlan_addr4_validator_event()
1012 if (ipvlan_addr_busy(ipvlan->port, &ivi->ivi_addr, false)) { in ipvlan_addr4_validator_event()
1017 spin_unlock_bh(&ipvlan->port->addrs_lock); in ipvlan_addr4_validator_event()