Lines Matching refs:ipvlan
12 struct ipvl_dev *ipvlan; in ipvlan_set_port_mode() local
18 list_for_each_entry(ipvlan, &port->ipvlans, pnode) { in ipvlan_set_port_mode()
19 flags = ipvlan->dev->flags; in ipvlan_set_port_mode()
21 err = dev_change_flags(ipvlan->dev, in ipvlan_set_port_mode()
25 err = dev_change_flags(ipvlan->dev, in ipvlan_set_port_mode()
47 list_for_each_entry_continue_reverse(ipvlan, &port->ipvlans, pnode) { in ipvlan_set_port_mode()
48 flags = ipvlan->dev->flags; in ipvlan_set_port_mode()
51 dev_change_flags(ipvlan->dev, flags | IFF_NOARP, in ipvlan_set_port_mode()
54 dev_change_flags(ipvlan->dev, flags & ~IFF_NOARP, in ipvlan_set_port_mode()
132 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_init() local
133 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_init()
149 ipvlan->pcpu_stats = netdev_alloc_pcpu_stats(struct ipvl_pcpu_stats); in ipvlan_init()
150 if (!ipvlan->pcpu_stats) in ipvlan_init()
156 free_percpu(ipvlan->pcpu_stats); in ipvlan_init()
167 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_uninit() local
168 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_uninit()
171 free_percpu(ipvlan->pcpu_stats); in ipvlan_uninit()
181 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_open() local
184 if (ipvlan->port->mode == IPVLAN_MODE_L3 || in ipvlan_open()
185 ipvlan->port->mode == IPVLAN_MODE_L3S) in ipvlan_open()
191 list_for_each_entry_rcu(addr, &ipvlan->addrs, anode) in ipvlan_open()
192 ipvlan_ht_addr_add(ipvlan, addr); in ipvlan_open()
200 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_stop() local
201 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_stop()
208 list_for_each_entry_rcu(addr, &ipvlan->addrs, anode) in ipvlan_stop()
218 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_start_xmit() local
226 pcptr = this_cpu_ptr(ipvlan->pcpu_stats); in ipvlan_start_xmit()
233 this_cpu_inc(ipvlan->pcpu_stats->tx_drps); in ipvlan_start_xmit()
241 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_fix_features() local
244 features &= (ipvlan->sfeatures | ~IPVLAN_FEATURES); in ipvlan_fix_features()
245 features = netdev_increment_features(ipvlan->phy_dev->features, in ipvlan_fix_features()
255 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_change_rx_flags() local
256 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_change_rx_flags()
264 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_set_multicast_mac_filter() local
267 bitmap_fill(ipvlan->mac_filters, IPVLAN_MAC_FILTER_SIZE); in ipvlan_set_multicast_mac_filter()
282 bitmap_copy(ipvlan->mac_filters, mc_filters, in ipvlan_set_multicast_mac_filter()
285 dev_uc_sync(ipvlan->phy_dev, dev); in ipvlan_set_multicast_mac_filter()
286 dev_mc_sync(ipvlan->phy_dev, dev); in ipvlan_set_multicast_mac_filter()
292 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_get_stats64() local
294 if (ipvlan->pcpu_stats) { in ipvlan_get_stats64()
302 pcptr = per_cpu_ptr(ipvlan->pcpu_stats, idx); in ipvlan_get_stats64()
331 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_vlan_rx_add_vid() local
332 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_vlan_rx_add_vid()
340 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_vlan_rx_kill_vid() local
341 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_vlan_rx_kill_vid()
349 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_get_iflink() local
351 return ipvlan->phy_dev->ifindex; in ipvlan_get_iflink()
373 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_hard_header() local
374 struct net_device *phy_dev = ipvlan->phy_dev; in ipvlan_hard_header()
391 static void ipvlan_adjust_mtu(struct ipvl_dev *ipvlan, struct net_device *dev) in ipvlan_adjust_mtu() argument
393 ipvlan->dev->mtu = dev->mtu; in ipvlan_adjust_mtu()
405 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_ethtool_get_link_ksettings() local
407 return __ethtool_get_link_ksettings(ipvlan->phy_dev, cmd); in ipvlan_ethtool_get_link_ksettings()
419 const struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_ethtool_get_msglevel() local
421 return ipvlan->msg_enable; in ipvlan_ethtool_get_msglevel()
426 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_ethtool_set_msglevel() local
428 ipvlan->msg_enable = value; in ipvlan_ethtool_set_msglevel()
443 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_nl_changelink() local
444 struct ipvl_port *port = ipvlan_port_get_rtnl(ipvlan->phy_dev); in ipvlan_nl_changelink()
449 if (!ns_capable(dev_net(ipvlan->phy_dev)->user_ns, CAP_NET_ADMIN)) in ipvlan_nl_changelink()
513 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_nl_fillinfo() local
514 struct ipvl_port *port = ipvlan_port_get_rtnl(ipvlan->phy_dev); in ipvlan_nl_fillinfo()
536 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_link_new() local
570 ipvlan->phy_dev = phy_dev; in ipvlan_link_new()
571 ipvlan->dev = dev; in ipvlan_link_new()
572 ipvlan->sfeatures = IPVLAN_FEATURES; in ipvlan_link_new()
574 ipvlan_adjust_mtu(ipvlan, phy_dev); in ipvlan_link_new()
575 INIT_LIST_HEAD(&ipvlan->addrs); in ipvlan_link_new()
576 spin_lock_init(&ipvlan->addrs_lock); in ipvlan_link_new()
592 ipvlan->port = port; in ipvlan_link_new()
635 list_add_tail_rcu(&ipvlan->pnode, &port->ipvlans); in ipvlan_link_new()
651 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_link_delete() local
654 spin_lock_bh(&ipvlan->addrs_lock); in ipvlan_link_delete()
655 list_for_each_entry_safe(addr, next, &ipvlan->addrs, anode) { in ipvlan_link_delete()
660 spin_unlock_bh(&ipvlan->addrs_lock); in ipvlan_link_delete()
662 ida_simple_remove(&ipvlan->port->ida, dev->dev_id); in ipvlan_link_delete()
663 list_del_rcu(&ipvlan->pnode); in ipvlan_link_delete()
665 netdev_upper_dev_unlink(ipvlan->phy_dev, dev); in ipvlan_link_delete()
691 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_get_link_net() local
693 return dev_net(ipvlan->phy_dev); in ipvlan_get_link_net()
724 struct ipvl_dev *ipvlan, *next; in ipvlan_device_event() local
737 list_for_each_entry(ipvlan, &port->ipvlans, pnode) in ipvlan_device_event()
738 netif_stacked_transfer_operstate(ipvlan->phy_dev, in ipvlan_device_event()
739 ipvlan->dev); in ipvlan_device_event()
759 list_for_each_entry_safe(ipvlan, next, &port->ipvlans, pnode) in ipvlan_device_event()
760 ipvlan->dev->rtnl_link_ops->dellink(ipvlan->dev, in ipvlan_device_event()
766 list_for_each_entry(ipvlan, &port->ipvlans, pnode) { in ipvlan_device_event()
767 netif_inherit_tso_max(ipvlan->dev, dev); in ipvlan_device_event()
768 netdev_update_features(ipvlan->dev); in ipvlan_device_event()
773 list_for_each_entry(ipvlan, &port->ipvlans, pnode) in ipvlan_device_event()
774 ipvlan_adjust_mtu(ipvlan, dev); in ipvlan_device_event()
779 list_for_each_entry(ipvlan, &port->ipvlans, pnode) { in ipvlan_device_event()
780 err = dev_pre_changeaddr_notify(ipvlan->dev, in ipvlan_device_event()
789 list_for_each_entry(ipvlan, &port->ipvlans, pnode) { in ipvlan_device_event()
790 eth_hw_addr_set(ipvlan->dev, dev->dev_addr); in ipvlan_device_event()
791 call_netdevice_notifiers(NETDEV_CHANGEADDR, ipvlan->dev); in ipvlan_device_event()
803 static int ipvlan_add_addr(struct ipvl_dev *ipvlan, void *iaddr, bool is_v6) in ipvlan_add_addr() argument
811 addr->master = ipvlan; in ipvlan_add_addr()
822 list_add_tail_rcu(&addr->anode, &ipvlan->addrs); in ipvlan_add_addr()
827 if (netif_running(ipvlan->dev)) in ipvlan_add_addr()
828 ipvlan_ht_addr_add(ipvlan, addr); in ipvlan_add_addr()
833 static void ipvlan_del_addr(struct ipvl_dev *ipvlan, void *iaddr, bool is_v6) in ipvlan_del_addr() argument
837 spin_lock_bh(&ipvlan->addrs_lock); in ipvlan_del_addr()
838 addr = ipvlan_find_addr(ipvlan, iaddr, is_v6); in ipvlan_del_addr()
840 spin_unlock_bh(&ipvlan->addrs_lock); in ipvlan_del_addr()
846 spin_unlock_bh(&ipvlan->addrs_lock); in ipvlan_del_addr()
852 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_is_valid_dev() local
857 if (!ipvlan || !ipvlan->port) in ipvlan_is_valid_dev()
864 static int ipvlan_add_addr6(struct ipvl_dev *ipvlan, struct in6_addr *ip6_addr) in ipvlan_add_addr6() argument
868 spin_lock_bh(&ipvlan->addrs_lock); in ipvlan_add_addr6()
869 if (ipvlan_addr_busy(ipvlan->port, ip6_addr, true)) in ipvlan_add_addr6()
870 netif_err(ipvlan, ifup, ipvlan->dev, in ipvlan_add_addr6()
872 ip6_addr, ipvlan->dev->name); in ipvlan_add_addr6()
874 ret = ipvlan_add_addr(ipvlan, ip6_addr, true); in ipvlan_add_addr6()
875 spin_unlock_bh(&ipvlan->addrs_lock); in ipvlan_add_addr6()
879 static void ipvlan_del_addr6(struct ipvl_dev *ipvlan, struct in6_addr *ip6_addr) in ipvlan_del_addr6() argument
881 return ipvlan_del_addr(ipvlan, ip6_addr, true); in ipvlan_del_addr6()
889 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_addr6_event() local
896 if (ipvlan_add_addr6(ipvlan, &if6->addr)) in ipvlan_addr6_event()
901 ipvlan_del_addr6(ipvlan, &if6->addr); in ipvlan_addr6_event()
913 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_addr6_validator_event() local
920 if (ipvlan_addr_busy(ipvlan->port, &i6vi->i6vi_addr, true)) { in ipvlan_addr6_validator_event()
932 static int ipvlan_add_addr4(struct ipvl_dev *ipvlan, struct in_addr *ip4_addr) in ipvlan_add_addr4() argument
936 spin_lock_bh(&ipvlan->addrs_lock); in ipvlan_add_addr4()
937 if (ipvlan_addr_busy(ipvlan->port, ip4_addr, false)) in ipvlan_add_addr4()
938 netif_err(ipvlan, ifup, ipvlan->dev, in ipvlan_add_addr4()
940 ip4_addr, ipvlan->dev->name); in ipvlan_add_addr4()
942 ret = ipvlan_add_addr(ipvlan, ip4_addr, false); in ipvlan_add_addr4()
943 spin_unlock_bh(&ipvlan->addrs_lock); in ipvlan_add_addr4()
947 static void ipvlan_del_addr4(struct ipvl_dev *ipvlan, struct in_addr *ip4_addr) in ipvlan_del_addr4() argument
949 return ipvlan_del_addr(ipvlan, ip4_addr, false); in ipvlan_del_addr4()
957 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_addr4_event() local
966 if (ipvlan_add_addr4(ipvlan, &ip4_addr)) in ipvlan_addr4_event()
972 ipvlan_del_addr4(ipvlan, &ip4_addr); in ipvlan_addr4_event()
984 struct ipvl_dev *ipvlan = netdev_priv(dev); in ipvlan_addr4_validator_event() local
991 if (ipvlan_addr_busy(ipvlan->port, &ivi->ivi_addr, false)) { in ipvlan_addr4_validator_event()