Lines Matching refs:slave_dev

301 			struct net_device *slave_dev)  in bond_dev_queue_xmit()  argument
303 skb->dev = slave_dev; in bond_dev_queue_xmit()
310 return bond_netpoll_send_skb(bond_get_slave_by_dev(bond, slave_dev), skb); in bond_dev_queue_xmit()
791 struct net_device *slave_dev = slave->dev; in bond_update_speed_duplex() local
798 res = __ethtool_get_link_ksettings(slave_dev, &ecmd); in bond_update_speed_duplex()
849 struct net_device *slave_dev, int reporting) in bond_check_dev_link() argument
851 const struct net_device_ops *slave_ops = slave_dev->netdev_ops; in bond_check_dev_link()
856 if (!reporting && !netif_running(slave_dev)) in bond_check_dev_link()
860 return netif_carrier_ok(slave_dev) ? BMSR_LSTATUS : 0; in bond_check_dev_link()
863 if (slave_dev->ethtool_ops->get_link) { in bond_check_dev_link()
864 netdev_lock_ops(slave_dev); in bond_check_dev_link()
865 ret = slave_dev->ethtool_ops->get_link(slave_dev); in bond_check_dev_link()
866 netdev_unlock_ops(slave_dev); in bond_check_dev_link()
886 strscpy_pad(ifr.ifr_name, slave_dev->name, IFNAMSIZ); in bond_check_dev_link()
889 if (dev_eth_ioctl(slave_dev, &ifr, SIOCGMIIPHY) == 0) { in bond_check_dev_link()
891 if (dev_eth_ioctl(slave_dev, &ifr, SIOCGMIIREG) == 0) in bond_check_dev_link()
976 struct net_device *slave_dev) in bond_hw_addr_flush() argument
980 dev_uc_unsync(slave_dev, bond_dev); in bond_hw_addr_flush()
981 dev_mc_unsync(slave_dev, bond_dev); in bond_hw_addr_flush()
984 dev_mc_del(slave_dev, lacpdu_mcast_addr); in bond_hw_addr_flush()
1037 struct net_device *slave_dev) in bond_set_dev_addr() argument
1041 slave_dbg(bond_dev, slave_dev, "bond_dev=%p slave_dev=%p slave_dev->addr_len=%d\n", in bond_set_dev_addr()
1042 bond_dev, slave_dev, slave_dev->addr_len); in bond_set_dev_addr()
1043 err = netif_pre_changeaddr_notify(bond_dev, slave_dev->dev_addr, NULL); in bond_set_dev_addr()
1047 __dev_addr_set(bond_dev, slave_dev->dev_addr, slave_dev->addr_len); in bond_set_dev_addr()
1635 struct net_device *slave_dev) in bond_setup_by_slave() argument
1641 bond_dev->header_ops = slave_dev->header_ops; in bond_setup_by_slave()
1643 bond_dev->type = slave_dev->type; in bond_setup_by_slave()
1644 bond_dev->hard_header_len = slave_dev->hard_header_len; in bond_setup_by_slave()
1645 bond_dev->needed_headroom = slave_dev->needed_headroom; in bond_setup_by_slave()
1646 bond_dev->addr_len = slave_dev->addr_len; in bond_setup_by_slave()
1648 memcpy(bond_dev->broadcast, slave_dev->broadcast, in bond_setup_by_slave()
1649 slave_dev->addr_len); in bond_setup_by_slave()
1651 if (slave_dev->flags & IFF_POINTOPOINT) { in bond_setup_by_slave()
1837 struct net_device *slave_dev) in bond_alloc_slave() argument
1846 slave->dev = slave_dev; in bond_alloc_slave()
1918 #define SLAVE_NL_ERR(bond_dev, slave_dev, extack, errmsg) do { \ argument
1922 slave_err(bond_dev, slave_dev, "Error: %s\n", errmsg); \
1962 int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev, in bond_enslave() argument
1966 const struct net_device_ops *slave_ops = slave_dev->netdev_ops; in bond_enslave()
1972 if (slave_dev->flags & IFF_MASTER && in bond_enslave()
1973 !netif_is_bond_master(slave_dev)) { in bond_enslave()
1980 slave_dev->ethtool_ops->get_link == NULL && in bond_enslave()
1982 slave_warn(bond_dev, slave_dev, "no link monitoring support\n"); in bond_enslave()
1986 if (netdev_is_rx_handler_busy(slave_dev)) { in bond_enslave()
1987 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
1992 if (bond_dev == slave_dev) { in bond_enslave()
1999 if (slave_dev->features & NETIF_F_VLAN_CHALLENGED) { in bond_enslave()
2000 slave_dbg(bond_dev, slave_dev, "is NETIF_F_VLAN_CHALLENGED\n"); in bond_enslave()
2002 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2006 …slave_warn(bond_dev, slave_dev, "enslaved VLAN challenged slave. Adding VLANs will be blocked as l… in bond_enslave()
2009 slave_dbg(bond_dev, slave_dev, "is !NETIF_F_VLAN_CHALLENGED\n"); in bond_enslave()
2012 if (slave_dev->features & NETIF_F_HW_ESP) in bond_enslave()
2013 slave_dbg(bond_dev, slave_dev, "is esp-hw-offload capable\n"); in bond_enslave()
2020 if (slave_dev->flags & IFF_UP) { in bond_enslave()
2021 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2034 if (bond_dev->type != slave_dev->type) { in bond_enslave()
2035 slave_dbg(bond_dev, slave_dev, "change device type from %d to %d\n", in bond_enslave()
2036 bond_dev->type, slave_dev->type); in bond_enslave()
2042 slave_err(bond_dev, slave_dev, "refused to change device type\n"); in bond_enslave()
2050 if (slave_dev->type != ARPHRD_ETHER) in bond_enslave()
2051 bond_setup_by_slave(bond_dev, slave_dev); in bond_enslave()
2058 } else if (bond_dev->type != slave_dev->type) { in bond_enslave()
2059 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2064 if (slave_dev->type == ARPHRD_INFINIBAND && in bond_enslave()
2066 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2073 slave_dev->type == ARPHRD_INFINIBAND) { in bond_enslave()
2074 …slave_warn(bond_dev, slave_dev, "The slave device specified does not support setting the MAC addre… in bond_enslave()
2079 slave_warn(bond_dev, slave_dev, "Setting fail_over_mac to active for active-backup mode\n"); in bond_enslave()
2081 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2089 call_netdevice_notifiers(NETDEV_JOIN, slave_dev); in bond_enslave()
2096 res = bond_set_dev_addr(bond->dev, slave_dev); in bond_enslave()
2101 new_slave = bond_alloc_slave(bond, slave_dev); in bond_enslave()
2113 new_slave->original_mtu = slave_dev->mtu; in bond_enslave()
2114 res = dev_set_mtu(slave_dev, bond->dev->mtu); in bond_enslave()
2116 slave_err(bond_dev, slave_dev, "Error %d calling dev_set_mtu\n", res); in bond_enslave()
2124 bond_hw_addr_copy(new_slave->perm_hwaddr, slave_dev->dev_addr, in bond_enslave()
2125 slave_dev->addr_len); in bond_enslave()
2135 memcmp(slave_dev->dev_addr, bond_dev->dev_addr, bond_dev->addr_len) == 0) { in bond_enslave()
2144 ss.ss_family = slave_dev->type; in bond_enslave()
2145 res = dev_set_mac_address(slave_dev, &ss, extack); in bond_enslave()
2147 slave_err(bond_dev, slave_dev, "Error %d calling set_mac_address\n", res); in bond_enslave()
2154 slave_dev->priv_flags |= IFF_NO_ADDRCONF; in bond_enslave()
2157 res = dev_open(slave_dev, extack); in bond_enslave()
2159 slave_err(bond_dev, slave_dev, "Opening slave failed\n"); in bond_enslave()
2163 slave_dev->priv_flags |= IFF_BONDING; in bond_enslave()
2176 res = vlan_vids_add_by_dev(slave_dev, bond_dev); in bond_enslave()
2178 slave_err(bond_dev, slave_dev, "Couldn't add bond vlan ids\n"); in bond_enslave()
2199 link_reporting = bond_check_dev_link(bond, slave_dev, 1); in bond_enslave()
2210 …slave_warn(bond_dev, slave_dev, "MII and ETHTOOL support not available for slave, and arp_interval… in bond_enslave()
2213 …slave_warn(bond_dev, slave_dev, "can't get link status from slave; the network driver associated w… in bond_enslave()
2220 if (bond_check_dev_link(bond, slave_dev, 0) == BMSR_LSTATUS) { in bond_enslave()
2237 (netif_carrier_ok(slave_dev) ? in bond_enslave()
2247 slave_dbg(bond_dev, slave_dev, "Initial state of slave is BOND_LINK_%s\n", in bond_enslave()
2290 slave_dbg(bond_dev, slave_dev, "This slave is always active in trunk mode\n"); in bond_enslave()
2309 …slave_info(bond_dev, slave_dev, "master_dev is using netpoll, but new slave device does not suppor… in bond_enslave()
2317 dev_disable_lro(slave_dev); in bond_enslave()
2319 res = netdev_rx_handler_register(slave_dev, bond_handle_frame, in bond_enslave()
2322 slave_dbg(bond_dev, slave_dev, "Error %d calling netdev_rx_handler_register\n", res); in bond_enslave()
2328 slave_dbg(bond_dev, slave_dev, "Error %d calling bond_master_upper_dev_link\n", res); in bond_enslave()
2336 slave_dbg(bond_dev, slave_dev, "Error %d calling bond_sysfs_slave_add\n", res); in bond_enslave()
2346 res = dev_set_promiscuity(slave_dev, 1); in bond_enslave()
2353 res = dev_set_allmulti(slave_dev, 1); in bond_enslave()
2356 dev_set_promiscuity(slave_dev, -1); in bond_enslave()
2363 dev_mc_sync_multiple(slave_dev, bond_dev); in bond_enslave()
2364 dev_uc_sync_multiple(slave_dev, bond_dev); in bond_enslave()
2368 dev_mc_add(slave_dev, lacpdu_mcast_addr); in bond_enslave()
2390 if (!slave_dev->netdev_ops->ndo_bpf || in bond_enslave()
2391 !slave_dev->netdev_ops->ndo_xdp_xmit) { in bond_enslave()
2393 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2406 if (dev_xdp_prog_count(slave_dev) > 0) { in bond_enslave()
2407 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2413 res = dev_xdp_propagate(slave_dev, &xdp); in bond_enslave()
2416 slave_dbg(bond_dev, slave_dev, "Error %d calling ndo_bpf\n", res); in bond_enslave()
2425 slave_info(bond_dev, slave_dev, "Enslaving as %s interface with %s link\n", in bond_enslave()
2441 netdev_rx_handler_unregister(slave_dev); in bond_enslave()
2444 vlan_vids_del_by_dev(slave_dev, bond_dev); in bond_enslave()
2458 if (!netif_is_bond_master(slave_dev)) in bond_enslave()
2459 slave_dev->priv_flags &= ~IFF_BONDING; in bond_enslave()
2460 dev_close(slave_dev); in bond_enslave()
2463 slave_dev->priv_flags &= ~IFF_NO_ADDRCONF; in bond_enslave()
2472 ss.ss_family = slave_dev->type; in bond_enslave()
2473 dev_set_mac_address(slave_dev, &ss, NULL); in bond_enslave()
2477 dev_set_mtu(slave_dev, new_slave->original_mtu); in bond_enslave()
2486 slave_dev->dev_addr)) in bond_enslave()
2509 struct net_device *slave_dev, in __bond_release_one() argument
2519 if (!(slave_dev->flags & IFF_SLAVE) || in __bond_release_one()
2520 !netdev_has_upper_dev(slave_dev, bond_dev)) { in __bond_release_one()
2521 slave_dbg(bond_dev, slave_dev, "cannot release slave\n"); in __bond_release_one()
2527 slave = bond_get_slave_by_dev(bond, slave_dev); in __bond_release_one()
2530 slave_info(bond_dev, slave_dev, "interface not enslaved\n"); in __bond_release_one()
2549 if (dev_xdp_propagate(slave_dev, &xdp)) in __bond_release_one()
2550 slave_warn(bond_dev, slave_dev, "failed to unload XDP program\n"); in __bond_release_one()
2556 netdev_rx_handler_unregister(slave_dev); in __bond_release_one()
2566 slave_info(bond_dev, slave_dev, "Releasing %s interface\n", in __bond_release_one()
2577 …slave_warn(bond_dev, slave_dev, "the permanent HWaddr of slave - %pM - is still in use by bond - s… in __bond_release_one()
2628 …slave_info(bond_dev, slave_dev, "last VLAN challenged slave left bond - VLAN blocking is removed\n… in __bond_release_one()
2630 vlan_vids_del_by_dev(slave_dev, bond_dev); in __bond_release_one()
2644 dev_set_promiscuity(slave_dev, -1); in __bond_release_one()
2648 dev_set_allmulti(slave_dev, -1); in __bond_release_one()
2651 bond_hw_addr_flush(bond_dev, slave_dev); in __bond_release_one()
2657 dev_close(slave_dev); in __bond_release_one()
2659 slave_dev->priv_flags &= ~IFF_NO_ADDRCONF; in __bond_release_one()
2666 ss.ss_family = slave_dev->type; in __bond_release_one()
2667 dev_set_mac_address(slave_dev, &ss, NULL); in __bond_release_one()
2671 netdev_lock_ops(slave_dev); in __bond_release_one()
2672 __netif_set_mtu(slave_dev, slave->original_mtu); in __bond_release_one()
2673 netdev_unlock_ops(slave_dev); in __bond_release_one()
2675 dev_set_mtu(slave_dev, slave->original_mtu); in __bond_release_one()
2678 if (!netif_is_bond_master(slave_dev)) in __bond_release_one()
2679 slave_dev->priv_flags &= ~IFF_BONDING; in __bond_release_one()
2688 int bond_release(struct net_device *bond_dev, struct net_device *slave_dev) in bond_release() argument
2690 return __bond_release_one(bond_dev, slave_dev, false, false); in bond_release()
2697 struct net_device *slave_dev) in bond_release_and_destroy() argument
2702 ret = __bond_release_one(bond_dev, slave_dev, false, true); in bond_release_and_destroy()
3055 struct net_device *slave_dev = slave->dev; in bond_handle_vlan() local
3070 slave_dbg(bond_dev, slave_dev, "inner tag: proto %X vid %X\n", in bond_handle_vlan()
3083 slave_dbg(bond_dev, slave_dev, "outer tag: proto %X vid %X\n", in bond_handle_vlan()
3100 struct net_device *slave_dev = slave->dev; in bond_arp_send() local
3103 slave_dbg(bond_dev, slave_dev, "arp %d on slave: dst %pI4 src %pI4\n", in bond_arp_send()
3106 skb = arp_create(arp_op, ETH_P_ARP, dest_ip, slave_dev, src_ip, in bond_arp_send()
3107 NULL, slave_dev->dev_addr, NULL); in bond_arp_send()
3321 struct net_device *slave_dev = slave->dev; in bond_ns_send() local
3325 slave_dbg(bond_dev, slave_dev, "NS on slave: dst %pI6c src %pI6c\n", in bond_ns_send()
3328 skb = ndisc_ns_create(slave_dev, daddr, saddr, 0); in bond_ns_send()
4030 struct net_device *slave_dev) in bond_slave_netdev_event() argument
4032 struct slave *slave = bond_slave_get_rtnl(slave_dev), *primary; in bond_slave_netdev_event()
4041 netdev_dbg(slave_dev, "%s called on NULL slave\n", __func__); in bond_slave_netdev_event()
4049 slave_dbg(bond_dev, slave_dev, "%s called\n", __func__); in bond_slave_netdev_event()
4054 bond_release_and_destroy(bond_dev, slave_dev); in bond_slave_netdev_event()
4056 __bond_release_one(bond_dev, slave_dev, false, true); in bond_slave_netdev_event()
4112 } else if (!strcmp(slave_dev->name, bond->params.primary)) { in bond_slave_netdev_event()
4120 primary ? slave_dev->name : "none"); in bond_slave_netdev_event()
4661 struct net_device *slave_dev = NULL; in bond_do_ioctl() local
4705 slave_dev = __dev_get_by_name(net, ifr->ifr_slave); in bond_do_ioctl()
4707 slave_dbg(bond_dev, slave_dev, "slave_dev=%p:\n", slave_dev); in bond_do_ioctl()
4709 if (!slave_dev) in bond_do_ioctl()
4714 res = bond_enslave(bond_dev, slave_dev, NULL); in bond_do_ioctl()
4717 res = bond_release(bond_dev, slave_dev); in bond_do_ioctl()
4720 res = bond_set_dev_addr(bond_dev, slave_dev); in bond_do_ioctl()
4723 bond_opt_initstr(&newval, slave_dev->name); in bond_do_ioctl()
5730 struct net_device *slave_dev; in bond_xdp_xmit() local
5735 slave_dev = bond_xdp_get_xmit_slave(bond_dev, &xdp); in bond_xdp_xmit()
5736 if (!slave_dev) { in bond_xdp_xmit()
5741 err = slave_dev->netdev_ops->ndo_xdp_xmit(slave_dev, 1, frames1, flags); in bond_xdp_xmit()
5784 struct net_device *slave_dev = slave->dev; in bond_xdp_set() local
5786 if (!slave_dev->netdev_ops->ndo_bpf || in bond_xdp_set()
5787 !slave_dev->netdev_ops->ndo_xdp_xmit) { in bond_xdp_set()
5788 SLAVE_NL_ERR(dev, slave_dev, extack, in bond_xdp_set()
5794 if (dev_xdp_prog_count(slave_dev) > 0) { in bond_xdp_set()
5795 SLAVE_NL_ERR(dev, slave_dev, extack, in bond_xdp_set()
5801 err = dev_xdp_propagate(slave_dev, &xdp); in bond_xdp_set()
5804 slave_err(dev, slave_dev, "Error %d calling ndo_bpf\n", err); in bond_xdp_set()
5827 struct net_device *slave_dev = rollback_slave->dev; in bond_xdp_set() local
5833 err_unwind = dev_xdp_propagate(slave_dev, &xdp); in bond_xdp_set()
5835 slave_err(dev, slave_dev, in bond_xdp_set()