Lines Matching refs:bond_dev

256 static int bond_init(struct net_device *bond_dev);
257 static void bond_uninit(struct net_device *bond_dev);
258 static void bond_get_stats(struct net_device *bond_dev,
363 static int bond_vlan_rx_add_vid(struct net_device *bond_dev, in bond_vlan_rx_add_vid() argument
366 struct bonding *bond = netdev_priv(bond_dev); in bond_vlan_rx_add_vid()
397 static int bond_vlan_rx_kill_vid(struct net_device *bond_dev, in bond_vlan_rx_kill_vid() argument
400 struct bonding *bond = netdev_priv(bond_dev); in bond_vlan_rx_kill_vid()
422 struct net_device *bond_dev = xs->xso.dev; in bond_ipsec_add_sa() local
428 if (!bond_dev) in bond_ipsec_add_sa()
432 bond = netdev_priv(bond_dev); in bond_ipsec_add_sa()
442 slave_warn(bond_dev, slave->dev, "Slave does not support ipsec offload\n"); in bond_ipsec_add_sa()
470 struct net_device *bond_dev = bond->dev; in bond_ipsec_add_sa_all() local
484 slave_warn(bond_dev, slave->dev, in bond_ipsec_add_sa_all()
495 slave_warn(bond_dev, slave->dev, "%s: failed to add SA\n", __func__); in bond_ipsec_add_sa_all()
510 struct net_device *bond_dev = xs->xso.dev; in bond_ipsec_del_sa() local
515 if (!bond_dev) in bond_ipsec_del_sa()
519 bond = netdev_priv(bond_dev); in bond_ipsec_del_sa()
533 slave_warn(bond_dev, slave->dev, "%s: no slave xdo_dev_state_delete\n", __func__); in bond_ipsec_del_sa()
553 struct net_device *bond_dev = bond->dev; in bond_ipsec_del_sa_all() local
572 slave_warn(bond_dev, slave->dev, in bond_ipsec_del_sa_all()
591 struct net_device *bond_dev = xs->xso.dev; in bond_ipsec_offload_ok() local
597 bond = netdev_priv(bond_dev); in bond_ipsec_offload_ok()
857 static void bond_hw_addr_flush(struct net_device *bond_dev, in bond_hw_addr_flush() argument
860 struct bonding *bond = netdev_priv(bond_dev); in bond_hw_addr_flush()
862 dev_uc_unsync(slave_dev, bond_dev); in bond_hw_addr_flush()
863 dev_mc_unsync(slave_dev, bond_dev); in bond_hw_addr_flush()
915 static int bond_set_dev_addr(struct net_device *bond_dev, in bond_set_dev_addr() argument
920 slave_dbg(bond_dev, slave_dev, "bond_dev=%p slave_dev=%p slave_dev->addr_len=%d\n", in bond_set_dev_addr()
921 bond_dev, slave_dev, slave_dev->addr_len); in bond_set_dev_addr()
922 err = dev_pre_changeaddr_notify(bond_dev, slave_dev->dev_addr, NULL); in bond_set_dev_addr()
926 __dev_addr_set(bond_dev, slave_dev->dev_addr, slave_dev->addr_len); in bond_set_dev_addr()
927 bond_dev->addr_assign_type = NET_ADDR_STOLEN; in bond_set_dev_addr()
928 call_netdevice_notifiers(NETDEV_CHANGEADDR, bond_dev); in bond_set_dev_addr()
1294 static void bond_poll_controller(struct net_device *bond_dev) in bond_poll_controller() argument
1296 struct bonding *bond = netdev_priv(bond_dev); in bond_poll_controller()
1322 static void bond_netpoll_cleanup(struct net_device *bond_dev) in bond_netpoll_cleanup() argument
1324 struct bonding *bond = netdev_priv(bond_dev); in bond_netpoll_cleanup()
1357 static void bond_netpoll_cleanup(struct net_device *bond_dev) in bond_netpoll_cleanup() argument
1415 struct net_device *bond_dev = bond->dev; in bond_compute_features() local
1452 bond_dev->hard_header_len = max_hard_header_len; in bond_compute_features()
1455 bond_dev->vlan_features = vlan_features; in bond_compute_features()
1456 bond_dev->hw_enc_features = enc_features | NETIF_F_GSO_ENCAP_ALL | in bond_compute_features()
1460 bond_dev->hw_enc_features |= xfrm_features; in bond_compute_features()
1462 bond_dev->mpls_features = mpls_features; in bond_compute_features()
1463 bond_dev->gso_max_segs = gso_max_segs; in bond_compute_features()
1464 netif_set_gso_max_size(bond_dev, gso_max_size); in bond_compute_features()
1466 bond_dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; in bond_compute_features()
1467 if ((bond_dev->priv_flags & IFF_XMIT_DST_RELEASE_PERM) && in bond_compute_features()
1469 bond_dev->priv_flags |= IFF_XMIT_DST_RELEASE; in bond_compute_features()
1471 netdev_change_features(bond_dev); in bond_compute_features()
1474 static void bond_setup_by_slave(struct net_device *bond_dev, in bond_setup_by_slave() argument
1477 bond_dev->header_ops = slave_dev->header_ops; in bond_setup_by_slave()
1479 bond_dev->type = slave_dev->type; in bond_setup_by_slave()
1480 bond_dev->hard_header_len = slave_dev->hard_header_len; in bond_setup_by_slave()
1481 bond_dev->needed_headroom = slave_dev->needed_headroom; in bond_setup_by_slave()
1482 bond_dev->addr_len = slave_dev->addr_len; in bond_setup_by_slave()
1484 memcpy(bond_dev->broadcast, slave_dev->broadcast, in bond_setup_by_slave()
1734 #define BOND_NL_ERR(bond_dev, extack, errmsg) do { \ argument
1738 netdev_err(bond_dev, "Error: %s\n", errmsg); \
1741 #define SLAVE_NL_ERR(bond_dev, slave_dev, extack, errmsg) do { \ argument
1745 slave_err(bond_dev, slave_dev, "Error: %s\n", errmsg); \
1749 int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev, in bond_enslave() argument
1752 struct bonding *bond = netdev_priv(bond_dev); in bond_enslave()
1761 BOND_NL_ERR(bond_dev, extack, in bond_enslave()
1769 slave_warn(bond_dev, slave_dev, "no link monitoring support\n"); in bond_enslave()
1774 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
1779 if (bond_dev == slave_dev) { in bond_enslave()
1780 BOND_NL_ERR(bond_dev, extack, "Cannot enslave bond to itself."); in bond_enslave()
1787 slave_dbg(bond_dev, slave_dev, "is NETIF_F_VLAN_CHALLENGED\n"); in bond_enslave()
1788 if (vlan_uses_dev(bond_dev)) { in bond_enslave()
1789 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
1793 …slave_warn(bond_dev, slave_dev, "enslaved VLAN challenged slave. Adding VLANs will be blocked as l… in bond_enslave()
1796 slave_dbg(bond_dev, slave_dev, "is !NETIF_F_VLAN_CHALLENGED\n"); in bond_enslave()
1800 slave_dbg(bond_dev, slave_dev, "is esp-hw-offload capable\n"); in bond_enslave()
1808 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
1821 if (bond_dev->type != slave_dev->type) { in bond_enslave()
1822 slave_dbg(bond_dev, slave_dev, "change device type from %d to %d\n", in bond_enslave()
1823 bond_dev->type, slave_dev->type); in bond_enslave()
1826 bond_dev); in bond_enslave()
1829 slave_err(bond_dev, slave_dev, "refused to change device type\n"); in bond_enslave()
1834 dev_uc_flush(bond_dev); in bond_enslave()
1835 dev_mc_flush(bond_dev); in bond_enslave()
1838 bond_setup_by_slave(bond_dev, slave_dev); in bond_enslave()
1840 ether_setup(bond_dev); in bond_enslave()
1841 bond_dev->priv_flags &= ~IFF_TX_SKB_SHARING; in bond_enslave()
1845 bond_dev); in bond_enslave()
1847 } else if (bond_dev->type != slave_dev->type) { in bond_enslave()
1848 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
1855 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
1863 …slave_warn(bond_dev, slave_dev, "The slave device specified does not support setting the MAC addre… in bond_enslave()
1868 slave_warn(bond_dev, slave_dev, "Setting fail_over_mac to active for active-backup mode\n"); in bond_enslave()
1870 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
1905 slave_err(bond_dev, slave_dev, "Error %d calling dev_set_mtu\n", res); in bond_enslave()
1921 memcpy(ss.__data, bond_dev->dev_addr, bond_dev->addr_len); in bond_enslave()
1926 slave_err(bond_dev, slave_dev, "Error %d calling set_mac_address\n", res); in bond_enslave()
1937 slave_err(bond_dev, slave_dev, "Opening slave failed\n"); in bond_enslave()
1954 res = vlan_vids_add_by_dev(slave_dev, bond_dev); in bond_enslave()
1956 slave_err(bond_dev, slave_dev, "Couldn't add bond vlan ids\n"); in bond_enslave()
1986 …slave_warn(bond_dev, slave_dev, "MII and ETHTOOL support not available for slave, and arp_interval… in bond_enslave()
1989 …slave_warn(bond_dev, slave_dev, "can't get link status from slave; the network driver associated w… in bond_enslave()
2023 slave_dbg(bond_dev, slave_dev, "Initial state of slave is BOND_LINK_%s\n", in bond_enslave()
2066 slave_dbg(bond_dev, slave_dev, "This slave is always active in trunk mode\n"); in bond_enslave()
2085 …slave_info(bond_dev, slave_dev, "master_dev is using netpoll, but new slave device does not suppor… in bond_enslave()
2092 if (!(bond_dev->features & NETIF_F_LRO)) in bond_enslave()
2098 slave_dbg(bond_dev, slave_dev, "Error %d calling netdev_rx_handler_register\n", res); in bond_enslave()
2104 slave_dbg(bond_dev, slave_dev, "Error %d calling bond_master_upper_dev_link\n", res); in bond_enslave()
2112 slave_dbg(bond_dev, slave_dev, "Error %d calling bond_sysfs_slave_add\n", res); in bond_enslave()
2121 if (bond_dev->flags & IFF_PROMISC) { in bond_enslave()
2128 if (bond_dev->flags & IFF_ALLMULTI) { in bond_enslave()
2131 if (bond_dev->flags & IFF_PROMISC) in bond_enslave()
2137 netif_addr_lock_bh(bond_dev); in bond_enslave()
2138 dev_mc_sync_multiple(slave_dev, bond_dev); in bond_enslave()
2139 dev_uc_sync_multiple(slave_dev, bond_dev); in bond_enslave()
2140 netif_addr_unlock_bh(bond_dev); in bond_enslave()
2167 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2181 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2190 slave_dbg(bond_dev, slave_dev, "Error %d calling ndo_bpf\n", res); in bond_enslave()
2197 slave_info(bond_dev, slave_dev, "Enslaving as %s interface with %s link\n", in bond_enslave()
2216 vlan_vids_del_by_dev(slave_dev, bond_dev); in bond_enslave()
2257 if (ether_addr_equal_64bits(bond_dev->dev_addr, in bond_enslave()
2259 eth_hw_addr_random(bond_dev); in bond_enslave()
2260 if (bond_dev->type != ARPHRD_ETHER) { in bond_enslave()
2261 dev_close(bond_dev); in bond_enslave()
2262 ether_setup(bond_dev); in bond_enslave()
2263 bond_dev->flags |= IFF_MASTER; in bond_enslave()
2264 bond_dev->priv_flags &= ~IFF_TX_SKB_SHARING; in bond_enslave()
2282 static int __bond_release_one(struct net_device *bond_dev, in __bond_release_one() argument
2286 struct bonding *bond = netdev_priv(bond_dev); in __bond_release_one()
2289 int old_flags = bond_dev->flags; in __bond_release_one()
2290 netdev_features_t old_features = bond_dev->features; in __bond_release_one()
2294 !netdev_has_upper_dev(slave_dev, bond_dev)) { in __bond_release_one()
2295 slave_dbg(bond_dev, slave_dev, "cannot release slave\n"); in __bond_release_one()
2304 slave_info(bond_dev, slave_dev, "interface not enslaved\n"); in __bond_release_one()
2324 slave_warn(bond_dev, slave_dev, "failed to unload XDP program\n"); in __bond_release_one()
2340 slave_info(bond_dev, slave_dev, "Releasing %s interface\n", in __bond_release_one()
2349 if (ether_addr_equal_64bits(bond_dev->dev_addr, slave->perm_hwaddr) && in __bond_release_one()
2351 …slave_warn(bond_dev, slave_dev, "the permanent HWaddr of slave - %pM - is still in use by bond - s… in __bond_release_one()
2382 eth_hw_addr_random(bond_dev); in __bond_release_one()
2395 if (!(bond_dev->features & NETIF_F_VLAN_CHALLENGED) && in __bond_release_one()
2397 …slave_info(bond_dev, slave_dev, "last VLAN challenged slave left bond - VLAN blocking is removed\n… in __bond_release_one()
2399 vlan_vids_del_by_dev(slave_dev, bond_dev); in __bond_release_one()
2419 bond_hw_addr_flush(bond_dev, slave_dev); in __bond_release_one()
2450 int bond_release(struct net_device *bond_dev, struct net_device *slave_dev) in bond_release() argument
2452 return __bond_release_one(bond_dev, slave_dev, false, false); in bond_release()
2458 static int bond_release_and_destroy(struct net_device *bond_dev, in bond_release_and_destroy() argument
2461 struct bonding *bond = netdev_priv(bond_dev); in bond_release_and_destroy()
2464 ret = __bond_release_one(bond_dev, slave_dev, false, true); in bond_release_and_destroy()
2466 bond_dev->reg_state != NETREG_UNREGISTERING) { in bond_release_and_destroy()
2467 bond_dev->priv_flags |= IFF_DISABLE_NETPOLL; in bond_release_and_destroy()
2468 netdev_info(bond_dev, "Destroying bond\n"); in bond_release_and_destroy()
2470 unregister_netdevice(bond_dev); in bond_release_and_destroy()
2475 static void bond_info_query(struct net_device *bond_dev, struct ifbond *info) in bond_info_query() argument
2477 struct bonding *bond = netdev_priv(bond_dev); in bond_info_query()
2482 static int bond_slave_info_query(struct net_device *bond_dev, struct ifslave *info) in bond_slave_info_query() argument
2484 struct bonding *bond = netdev_priv(bond_dev); in bond_slave_info_query()
2805 struct net_device *bond_dev = slave->bond->dev; in bond_arp_send() local
2807 slave_dbg(bond_dev, slave_dev, "arp %d on slave: dst %pI4 src %pI4\n", in bond_arp_send()
2830 slave_dbg(bond_dev, slave_dev, "inner tag: proto %X vid %X\n", in bond_arp_send()
2843 slave_dbg(bond_dev, slave_dev, "outer tag: proto %X vid %X\n", in bond_arp_send()
3515 struct net_device *bond_dev) in bond_master_netdev_event() argument
3517 struct bonding *event_bond = netdev_priv(bond_dev); in bond_master_netdev_event()
3519 netdev_dbg(bond_dev, "%s called\n", __func__); in bond_master_netdev_event()
3527 xfrm_dev_state_flush(dev_net(bond_dev), bond_dev, true); in bond_master_netdev_event()
3545 struct net_device *bond_dev; in bond_slave_netdev_event() local
3556 bond_dev = slave->bond->dev; in bond_slave_netdev_event()
3560 slave_dbg(bond_dev, slave_dev, "%s called\n", __func__); in bond_slave_netdev_event()
3564 if (bond_dev->type != ARPHRD_ETHER) in bond_slave_netdev_event()
3565 bond_release_and_destroy(bond_dev, slave_dev); in bond_slave_netdev_event()
3567 __bond_release_one(bond_dev, slave_dev, false, true); in bond_slave_netdev_event()
3923 static int bond_open(struct net_device *bond_dev) in bond_open() argument
3925 struct bonding *bond = netdev_priv(bond_dev); in bond_open()
3974 static int bond_close(struct net_device *bond_dev) in bond_close() argument
3976 struct bonding *bond = netdev_priv(bond_dev); in bond_close()
4057 static void bond_get_stats(struct net_device *bond_dev, in bond_get_stats() argument
4060 struct bonding *bond = netdev_priv(bond_dev); in bond_get_stats()
4069 nest_level = bond_get_lowest_level_rcu(bond_dev); in bond_get_stats()
4090 static int bond_eth_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd) in bond_eth_ioctl() argument
4092 struct bonding *bond = netdev_priv(bond_dev); in bond_eth_ioctl()
4096 netdev_dbg(bond_dev, "bond_eth_ioctl: cmd=%d\n", cmd); in bond_eth_ioctl()
4128 static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd) in bond_do_ioctl() argument
4130 struct bonding *bond = netdev_priv(bond_dev); in bond_do_ioctl()
4140 netdev_dbg(bond_dev, "bond_ioctl: cmd=%d\n", cmd); in bond_do_ioctl()
4149 bond_info_query(bond_dev, &k_binfo); in bond_do_ioctl()
4160 res = bond_slave_info_query(bond_dev, &k_sinfo); in bond_do_ioctl()
4170 net = dev_net(bond_dev); in bond_do_ioctl()
4177 slave_dbg(bond_dev, slave_dev, "slave_dev=%p:\n", slave_dev); in bond_do_ioctl()
4184 res = bond_enslave(bond_dev, slave_dev, NULL); in bond_do_ioctl()
4187 res = bond_release(bond_dev, slave_dev); in bond_do_ioctl()
4190 res = bond_set_dev_addr(bond_dev, slave_dev); in bond_do_ioctl()
4204 static int bond_siocdevprivate(struct net_device *bond_dev, struct ifreq *ifr, in bond_siocdevprivate() argument
4211 return bond_do_ioctl(bond_dev, &ifrdata, SIOCBONDINFOQUERY); in bond_siocdevprivate()
4213 return bond_do_ioctl(bond_dev, &ifrdata, SIOCBONDSLAVEINFOQUERY); in bond_siocdevprivate()
4215 return bond_do_ioctl(bond_dev, ifr, SIOCBONDENSLAVE); in bond_siocdevprivate()
4217 return bond_do_ioctl(bond_dev, ifr, SIOCBONDRELEASE); in bond_siocdevprivate()
4219 return bond_do_ioctl(bond_dev, ifr, SIOCBONDSETHWADDR); in bond_siocdevprivate()
4221 return bond_do_ioctl(bond_dev, ifr, SIOCBONDCHANGEACTIVE); in bond_siocdevprivate()
4227 static void bond_change_rx_flags(struct net_device *bond_dev, int change) in bond_change_rx_flags() argument
4229 struct bonding *bond = netdev_priv(bond_dev); in bond_change_rx_flags()
4233 bond_dev->flags & IFF_PROMISC ? 1 : -1); in bond_change_rx_flags()
4237 bond_dev->flags & IFF_ALLMULTI ? 1 : -1); in bond_change_rx_flags()
4240 static void bond_set_rx_mode(struct net_device *bond_dev) in bond_set_rx_mode() argument
4242 struct bonding *bond = netdev_priv(bond_dev); in bond_set_rx_mode()
4250 dev_uc_sync(slave->dev, bond_dev); in bond_set_rx_mode()
4251 dev_mc_sync(slave->dev, bond_dev); in bond_set_rx_mode()
4255 dev_uc_sync_multiple(slave->dev, bond_dev); in bond_set_rx_mode()
4256 dev_mc_sync_multiple(slave->dev, bond_dev); in bond_set_rx_mode()
4318 static int bond_change_mtu(struct net_device *bond_dev, int new_mtu) in bond_change_mtu() argument
4320 struct bonding *bond = netdev_priv(bond_dev); in bond_change_mtu()
4325 netdev_dbg(bond_dev, "bond=%p, new_mtu=%d\n", bond, new_mtu); in bond_change_mtu()
4328 slave_dbg(bond_dev, slave->dev, "s %p c_m %p\n", in bond_change_mtu()
4342 slave_dbg(bond_dev, slave->dev, "err %d setting mtu to %d\n", in bond_change_mtu()
4348 bond_dev->mtu = new_mtu; in bond_change_mtu()
4360 tmp_res = dev_set_mtu(rollback_slave->dev, bond_dev->mtu); in bond_change_mtu()
4362 slave_dbg(bond_dev, rollback_slave->dev, "unwind err %d\n", in bond_change_mtu()
4375 static int bond_set_mac_address(struct net_device *bond_dev, void *addr) in bond_set_mac_address() argument
4377 struct bonding *bond = netdev_priv(bond_dev); in bond_set_mac_address()
4384 return bond_alb_set_mac_address(bond_dev, addr); in bond_set_mac_address()
4387 netdev_dbg(bond_dev, "%s: bond=%p\n", __func__, bond); in bond_set_mac_address()
4400 slave_dbg(bond_dev, slave->dev, "%s: slave=%p\n", in bond_set_mac_address()
4410 slave_dbg(bond_dev, slave->dev, "%s: err %d\n", in bond_set_mac_address()
4417 dev_addr_set(bond_dev, ss->__data); in bond_set_mac_address()
4421 memcpy(tmp_ss.__data, bond_dev->dev_addr, bond_dev->addr_len); in bond_set_mac_address()
4422 tmp_ss.ss_family = bond_dev->type; in bond_set_mac_address()
4434 slave_dbg(bond_dev, rollback_slave->dev, "%s: unwind err %d\n", in bond_set_mac_address()
4590 struct net_device *bond_dev) in bond_xmit_roundrobin() argument
4592 struct bonding *bond = netdev_priv(bond_dev); in bond_xmit_roundrobin()
4599 return bond_tx_drop(bond_dev, skb); in bond_xmit_roundrobin()
4611 struct net_device *bond_dev) in bond_xmit_activebackup() argument
4613 struct bonding *bond = netdev_priv(bond_dev); in bond_xmit_activebackup()
4620 return bond_tx_drop(bond_dev, skb); in bond_xmit_activebackup()
4841 struct net_device *bond_dev) in bond_xmit_broadcast() argument
4843 struct bonding *bond = netdev_priv(bond_dev); in bond_xmit_broadcast()
4855 bond_dev->name, __func__); in bond_xmit_broadcast()
4864 return bond_tx_drop(bond_dev, skb); in bond_xmit_broadcast()
5105 bond_xdp_get_xmit_slave(struct net_device *bond_dev, struct xdp_buff *xdp) in bond_xdp_get_xmit_slave() argument
5107 struct bonding *bond = netdev_priv(bond_dev); in bond_xdp_get_xmit_slave()
5128 netdev_err(bond_dev, "Unknown bonding mode %d for xdp xmit\n", BOND_MODE(bond)); in bond_xdp_get_xmit_slave()
5139 static int bond_xdp_xmit(struct net_device *bond_dev, in bond_xdp_xmit() argument
5154 slave_dev = bond_xdp_get_xmit_slave(bond_dev, &xdp); in bond_xdp_xmit()
5279 static int bond_ethtool_get_link_ksettings(struct net_device *bond_dev, in bond_ethtool_get_link_ksettings() argument
5282 struct bonding *bond = netdev_priv(bond_dev); in bond_ethtool_get_link_ksettings()
5314 static void bond_ethtool_get_drvinfo(struct net_device *bond_dev, in bond_ethtool_get_drvinfo() argument
5366 static void bond_destructor(struct net_device *bond_dev) in bond_destructor() argument
5368 struct bonding *bond = netdev_priv(bond_dev); in bond_destructor()
5377 void bond_setup(struct net_device *bond_dev) in bond_setup() argument
5379 struct bonding *bond = netdev_priv(bond_dev); in bond_setup()
5385 bond->dev = bond_dev; in bond_setup()
5388 ether_setup(bond_dev); in bond_setup()
5389 bond_dev->max_mtu = ETH_MAX_MTU; in bond_setup()
5390 bond_dev->netdev_ops = &bond_netdev_ops; in bond_setup()
5391 bond_dev->ethtool_ops = &bond_ethtool_ops; in bond_setup()
5393 bond_dev->needs_free_netdev = true; in bond_setup()
5394 bond_dev->priv_destructor = bond_destructor; in bond_setup()
5396 SET_NETDEV_DEVTYPE(bond_dev, &bond_type); in bond_setup()
5399 bond_dev->flags |= IFF_MASTER; in bond_setup()
5400 bond_dev->priv_flags |= IFF_BONDING | IFF_UNICAST_FLT | IFF_NO_QUEUE; in bond_setup()
5401 bond_dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING); in bond_setup()
5405 bond_dev->xfrmdev_ops = &bond_xfrmdev_ops; in bond_setup()
5411 bond_dev->features |= NETIF_F_LLTX; in bond_setup()
5421 bond_dev->features |= NETIF_F_NETNS_LOCAL; in bond_setup()
5423 bond_dev->hw_features = BOND_VLAN_FEATURES | in bond_setup()
5427 bond_dev->hw_features |= NETIF_F_GSO_ENCAP_ALL; in bond_setup()
5428 bond_dev->features |= bond_dev->hw_features; in bond_setup()
5429 bond_dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX; in bond_setup()
5431 bond_dev->hw_features |= BOND_XFRM_FEATURES; in bond_setup()
5434 bond_dev->features |= BOND_XFRM_FEATURES; in bond_setup()
5438 bond_dev->features |= BOND_TLS_FEATURES; in bond_setup()
5445 static void bond_uninit(struct net_device *bond_dev) in bond_uninit() argument
5447 struct bonding *bond = netdev_priv(bond_dev); in bond_uninit()
5452 bond_netpoll_cleanup(bond_dev); in bond_uninit()
5456 __bond_release_one(bond_dev, slave->dev, true, true); in bond_uninit()
5457 netdev_info(bond_dev, "Released all slaves\n"); in bond_uninit()
5864 static int bond_init(struct net_device *bond_dev) in bond_init() argument
5866 struct bonding *bond = netdev_priv(bond_dev); in bond_init()
5867 struct bond_net *bn = net_generic(dev_net(bond_dev), bond_net_id); in bond_init()
5869 netdev_dbg(bond_dev, "Begin bond_init\n"); in bond_init()
5871 bond->wq = alloc_ordered_workqueue(bond_dev->name, WQ_MEM_RECLAIM); in bond_init()
5885 netdev_lockdep_set_classes(bond_dev); in bond_init()
5894 if (is_zero_ether_addr(bond_dev->dev_addr) && in bond_init()
5895 bond_dev->addr_assign_type == NET_ADDR_PERM) in bond_init()
5896 eth_hw_addr_random(bond_dev); in bond_init()
5913 struct net_device *bond_dev; in bond_create() local
5920 bond_dev = alloc_netdev_mq(sizeof(struct bonding), in bond_create()
5923 if (!bond_dev) { in bond_create()
5933 bond = netdev_priv(bond_dev); in bond_create()
5937 dev_net_set(bond_dev, net); in bond_create()
5938 bond_dev->rtnl_link_ops = &bond_link_ops; in bond_create()
5940 res = register_netdevice(bond_dev); in bond_create()
5942 free_netdev(bond_dev); in bond_create()
5948 netif_carrier_off(bond_dev); in bond_create()