Lines Matching refs:bond_dev
264 static int bond_init(struct net_device *bond_dev);
265 static void bond_uninit(struct net_device *bond_dev);
266 static void bond_get_stats(struct net_device *bond_dev,
371 static int bond_vlan_rx_add_vid(struct net_device *bond_dev, in bond_vlan_rx_add_vid() argument
374 struct bonding *bond = netdev_priv(bond_dev); in bond_vlan_rx_add_vid()
405 static int bond_vlan_rx_kill_vid(struct net_device *bond_dev, in bond_vlan_rx_kill_vid() argument
408 struct bonding *bond = netdev_priv(bond_dev); in bond_vlan_rx_kill_vid()
434 struct net_device *bond_dev = xs->xso.dev; in bond_ipsec_dev() local
438 bond = netdev_priv(bond_dev); in bond_ipsec_dev()
451 bond_dev->name, slave->dev->name, xs->xso.real_dev->name); in bond_ipsec_dev()
462 static int bond_ipsec_add_sa(struct net_device *bond_dev, in bond_ipsec_add_sa() argument
473 if (!bond_dev) in bond_ipsec_add_sa()
477 bond = netdev_priv(bond_dev); in bond_ipsec_add_sa()
519 struct net_device *bond_dev = bond->dev; in bond_ipsec_add_sa_all() local
534 slave_warn(bond_dev, real_dev, in bond_ipsec_add_sa_all()
547 slave_warn(bond_dev, real_dev, "%s: failed to add SA\n", __func__); in bond_ipsec_add_sa_all()
574 static void bond_ipsec_del_sa(struct net_device *bond_dev, in bond_ipsec_del_sa() argument
579 if (!bond_dev || !xs->xso.real_dev) in bond_ipsec_del_sa()
587 slave_warn(bond_dev, real_dev, "%s: no slave xdo_dev_state_delete\n", __func__); in bond_ipsec_del_sa()
596 struct net_device *bond_dev = bond->dev; in bond_ipsec_del_sa_all() local
614 slave_warn(bond_dev, real_dev, in bond_ipsec_del_sa_all()
635 static void bond_ipsec_free_sa(struct net_device *bond_dev, in bond_ipsec_free_sa() argument
642 if (!bond_dev) in bond_ipsec_free_sa()
645 bond = netdev_priv(bond_dev); in bond_ipsec_free_sa()
975 static void bond_hw_addr_flush(struct net_device *bond_dev, in bond_hw_addr_flush() argument
978 struct bonding *bond = netdev_priv(bond_dev); in bond_hw_addr_flush()
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()
1036 static int bond_set_dev_addr(struct net_device *bond_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()
1048 bond_dev->addr_assign_type = NET_ADDR_STOLEN; in bond_set_dev_addr()
1049 call_netdevice_notifiers(NETDEV_CHANGEADDR, bond_dev); in bond_set_dev_addr()
1452 static void bond_poll_controller(struct net_device *bond_dev) in bond_poll_controller() argument
1454 struct bonding *bond = netdev_priv(bond_dev); in bond_poll_controller()
1480 static void bond_netpoll_cleanup(struct net_device *bond_dev) in bond_netpoll_cleanup() argument
1482 struct bonding *bond = netdev_priv(bond_dev); in bond_netpoll_cleanup()
1515 static void bond_netpoll_cleanup(struct net_device *bond_dev) in bond_netpoll_cleanup() argument
1569 struct net_device *bond_dev = bond->dev; in bond_compute_features() local
1611 bond_dev->hard_header_len = max_hard_header_len; in bond_compute_features()
1614 bond_dev->gso_partial_features = gso_partial_features; in bond_compute_features()
1615 bond_dev->vlan_features = vlan_features; in bond_compute_features()
1616 bond_dev->hw_enc_features = enc_features | NETIF_F_GSO_ENCAP_ALL | in bond_compute_features()
1620 bond_dev->hw_enc_features |= xfrm_features; in bond_compute_features()
1622 bond_dev->mpls_features = mpls_features; in bond_compute_features()
1623 netif_set_tso_max_segs(bond_dev, tso_max_segs); in bond_compute_features()
1624 netif_set_tso_max_size(bond_dev, tso_max_size); in bond_compute_features()
1626 bond_dev->priv_flags &= ~IFF_XMIT_DST_RELEASE; in bond_compute_features()
1627 if ((bond_dev->priv_flags & IFF_XMIT_DST_RELEASE_PERM) && in bond_compute_features()
1629 bond_dev->priv_flags |= IFF_XMIT_DST_RELEASE; in bond_compute_features()
1631 netdev_change_features(bond_dev); in bond_compute_features()
1634 static void bond_setup_by_slave(struct net_device *bond_dev, in bond_setup_by_slave() argument
1637 bool was_up = !!(bond_dev->flags & IFF_UP); in bond_setup_by_slave()
1639 dev_close(bond_dev); in bond_setup_by_slave()
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()
1652 bond_dev->flags &= ~(IFF_BROADCAST | IFF_MULTICAST); in bond_setup_by_slave()
1653 bond_dev->flags |= (IFF_POINTOPOINT | IFF_NOARP); in bond_setup_by_slave()
1656 dev_open(bond_dev, NULL); in bond_setup_by_slave()
1911 #define BOND_NL_ERR(bond_dev, extack, errmsg) do { \ argument
1915 netdev_err(bond_dev, "Error: %s\n", errmsg); \
1918 #define SLAVE_NL_ERR(bond_dev, slave_dev, extack, errmsg) do { \ argument
1922 slave_err(bond_dev, slave_dev, "Error: %s\n", errmsg); \
1930 static void bond_ether_setup(struct net_device *bond_dev) in bond_ether_setup() argument
1932 unsigned int flags = bond_dev->flags & (IFF_SLAVE | IFF_UP); in bond_ether_setup()
1934 ether_setup(bond_dev); in bond_ether_setup()
1935 bond_dev->flags |= IFF_MASTER | flags; in bond_ether_setup()
1936 bond_dev->priv_flags &= ~IFF_TX_SKB_SHARING; in bond_ether_setup()
1939 void bond_xdp_set_features(struct net_device *bond_dev) in bond_xdp_set_features() argument
1941 struct bonding *bond = netdev_priv(bond_dev); in bond_xdp_set_features()
1949 xdp_clear_features_flag(bond_dev); in bond_xdp_set_features()
1958 xdp_set_features_flag(bond_dev, val); in bond_xdp_set_features()
1962 int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev, in bond_enslave() argument
1965 struct bonding *bond = netdev_priv(bond_dev); in bond_enslave()
1974 BOND_NL_ERR(bond_dev, extack, in bond_enslave()
1982 slave_warn(bond_dev, slave_dev, "no link monitoring support\n"); in bond_enslave()
1987 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
1992 if (bond_dev == slave_dev) { in bond_enslave()
1993 BOND_NL_ERR(bond_dev, extack, "Cannot enslave bond to itself."); in bond_enslave()
2000 slave_dbg(bond_dev, slave_dev, "is NETIF_F_VLAN_CHALLENGED\n"); in bond_enslave()
2001 if (vlan_uses_dev(bond_dev)) { 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()
2013 slave_dbg(bond_dev, slave_dev, "is esp-hw-offload capable\n"); 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()
2039 bond_dev); in bond_enslave()
2042 slave_err(bond_dev, slave_dev, "refused to change device type\n"); in bond_enslave()
2047 dev_uc_flush(bond_dev); in bond_enslave()
2048 dev_mc_flush(bond_dev); in bond_enslave()
2051 bond_setup_by_slave(bond_dev, slave_dev); in bond_enslave()
2053 bond_ether_setup(bond_dev); in bond_enslave()
2056 bond_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()
2066 SLAVE_NL_ERR(bond_dev, slave_dev, extack, 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()
2116 slave_err(bond_dev, slave_dev, "Error %d calling dev_set_mtu\n", res); in bond_enslave()
2132 memcpy(ss.__data, bond_dev->dev_addr, bond_dev->addr_len); in bond_enslave()
2135 memcmp(slave_dev->dev_addr, bond_dev->dev_addr, bond_dev->addr_len) == 0) { in bond_enslave()
2147 slave_err(bond_dev, slave_dev, "Error %d calling set_mac_address\n", res); in bond_enslave()
2159 slave_err(bond_dev, slave_dev, "Opening slave failed\n"); 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()
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()
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()
2316 if (!(bond_dev->features & NETIF_F_LRO)) 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()
2345 if (bond_dev->flags & IFF_PROMISC) { in bond_enslave()
2352 if (bond_dev->flags & IFF_ALLMULTI) { in bond_enslave()
2355 if (bond_dev->flags & IFF_PROMISC) in bond_enslave()
2361 if (bond_dev->flags & IFF_UP) { in bond_enslave()
2362 netif_addr_lock_bh(bond_dev); 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()
2365 netif_addr_unlock_bh(bond_dev); in bond_enslave()
2393 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2407 SLAVE_NL_ERR(bond_dev, slave_dev, extack, in bond_enslave()
2416 slave_dbg(bond_dev, slave_dev, "Error %d calling ndo_bpf\n", res); in bond_enslave()
2423 bond_xdp_set_features(bond_dev); in bond_enslave()
2425 slave_info(bond_dev, slave_dev, "Enslaving as %s interface with %s link\n", in bond_enslave()
2444 vlan_vids_del_by_dev(slave_dev, bond_dev); in bond_enslave()
2485 if (ether_addr_equal_64bits(bond_dev->dev_addr, in bond_enslave()
2487 eth_hw_addr_random(bond_dev); in bond_enslave()
2488 if (bond_dev->type != ARPHRD_ETHER) { in bond_enslave()
2489 dev_close(bond_dev); in bond_enslave()
2490 bond_ether_setup(bond_dev); in bond_enslave()
2508 static int __bond_release_one(struct net_device *bond_dev, in __bond_release_one() argument
2512 struct bonding *bond = netdev_priv(bond_dev); in __bond_release_one()
2515 int old_flags = bond_dev->flags; in __bond_release_one()
2516 netdev_features_t old_features = bond_dev->features; 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()
2530 slave_info(bond_dev, slave_dev, "interface not enslaved\n"); in __bond_release_one()
2550 slave_warn(bond_dev, slave_dev, "failed to unload XDP program\n"); in __bond_release_one()
2566 slave_info(bond_dev, slave_dev, "Releasing %s interface\n", in __bond_release_one()
2575 if (ether_addr_equal_64bits(bond_dev->dev_addr, slave->perm_hwaddr) && 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()
2614 eth_hw_addr_random(bond_dev); in __bond_release_one()
2626 if (!(bond_dev->features & NETIF_F_VLAN_CHALLENGED) && 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()
2651 bond_hw_addr_flush(bond_dev, slave_dev); in __bond_release_one()
2681 bond_xdp_set_features(bond_dev); 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()
2696 static int bond_release_and_destroy(struct net_device *bond_dev, in bond_release_and_destroy() argument
2699 struct bonding *bond = netdev_priv(bond_dev); in bond_release_and_destroy()
2702 ret = __bond_release_one(bond_dev, slave_dev, false, true); in bond_release_and_destroy()
2704 bond_dev->reg_state != NETREG_UNREGISTERING) { in bond_release_and_destroy()
2705 bond_dev->priv_flags |= IFF_DISABLE_NETPOLL; in bond_release_and_destroy()
2706 netdev_info(bond_dev, "Destroying bond\n"); in bond_release_and_destroy()
2708 unregister_netdevice(bond_dev); in bond_release_and_destroy()
2713 static void bond_info_query(struct net_device *bond_dev, struct ifbond *info) in bond_info_query() argument
2715 struct bonding *bond = netdev_priv(bond_dev); in bond_info_query()
2720 static int bond_slave_info_query(struct net_device *bond_dev, struct ifslave *info) in bond_slave_info_query() argument
2722 struct bonding *bond = netdev_priv(bond_dev); in bond_slave_info_query()
3054 struct net_device *bond_dev = slave->bond->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()
3099 struct net_device *bond_dev = slave->bond->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()
3320 struct net_device *bond_dev = slave->bond->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()
4004 struct net_device *bond_dev) in bond_master_netdev_event() argument
4006 struct bonding *event_bond = netdev_priv(bond_dev); in bond_master_netdev_event()
4008 netdev_dbg(bond_dev, "%s called\n", __func__); in bond_master_netdev_event()
4016 xfrm_dev_state_flush(dev_net(bond_dev), bond_dev, true); in bond_master_netdev_event()
4034 struct net_device *bond_dev; in bond_slave_netdev_event() local
4045 bond_dev = slave->bond->dev; in bond_slave_netdev_event()
4049 slave_dbg(bond_dev, slave_dev, "%s called\n", __func__); in bond_slave_netdev_event()
4053 if (bond_dev->type != ARPHRD_ETHER) 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()
4138 bond_xdp_set_features(bond_dev); in bond_slave_netdev_event()
4424 static int bond_open(struct net_device *bond_dev) in bond_open() argument
4426 struct bonding *bond = netdev_priv(bond_dev); in bond_open()
4487 static int bond_close(struct net_device *bond_dev) in bond_close() argument
4489 struct bonding *bond = netdev_priv(bond_dev); in bond_close()
4506 bond_hw_addr_flush(bond_dev, slave->dev); in bond_close()
4512 bond_hw_addr_flush(bond_dev, slave->dev); in bond_close()
4588 static void bond_get_stats(struct net_device *bond_dev, in bond_get_stats() argument
4591 struct bonding *bond = netdev_priv(bond_dev); in bond_get_stats()
4600 nest_level = bond_get_lowest_level_rcu(bond_dev); in bond_get_stats()
4621 static int bond_eth_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd) in bond_eth_ioctl() argument
4623 struct bonding *bond = netdev_priv(bond_dev); in bond_eth_ioctl()
4626 netdev_dbg(bond_dev, "bond_eth_ioctl: cmd=%d\n", cmd); in bond_eth_ioctl()
4658 static int bond_do_ioctl(struct net_device *bond_dev, struct ifreq *ifr, int cmd) in bond_do_ioctl() argument
4660 struct bonding *bond = netdev_priv(bond_dev); in bond_do_ioctl()
4670 netdev_dbg(bond_dev, "bond_ioctl: cmd=%d\n", cmd); in bond_do_ioctl()
4679 bond_info_query(bond_dev, &k_binfo); in bond_do_ioctl()
4690 res = bond_slave_info_query(bond_dev, &k_sinfo); in bond_do_ioctl()
4700 net = dev_net(bond_dev); in bond_do_ioctl()
4707 slave_dbg(bond_dev, slave_dev, "slave_dev=%p:\n", 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()
4734 static int bond_siocdevprivate(struct net_device *bond_dev, struct ifreq *ifr, in bond_siocdevprivate() argument
4741 return bond_do_ioctl(bond_dev, &ifrdata, SIOCBONDINFOQUERY); in bond_siocdevprivate()
4743 return bond_do_ioctl(bond_dev, &ifrdata, SIOCBONDSLAVEINFOQUERY); in bond_siocdevprivate()
4745 return bond_do_ioctl(bond_dev, ifr, SIOCBONDENSLAVE); in bond_siocdevprivate()
4747 return bond_do_ioctl(bond_dev, ifr, SIOCBONDRELEASE); in bond_siocdevprivate()
4749 return bond_do_ioctl(bond_dev, ifr, SIOCBONDSETHWADDR); in bond_siocdevprivate()
4751 return bond_do_ioctl(bond_dev, ifr, SIOCBONDCHANGEACTIVE); in bond_siocdevprivate()
4757 static void bond_change_rx_flags(struct net_device *bond_dev, int change) in bond_change_rx_flags() argument
4759 struct bonding *bond = netdev_priv(bond_dev); in bond_change_rx_flags()
4763 bond_dev->flags & IFF_PROMISC ? 1 : -1); in bond_change_rx_flags()
4767 bond_dev->flags & IFF_ALLMULTI ? 1 : -1); in bond_change_rx_flags()
4770 static void bond_set_rx_mode(struct net_device *bond_dev) in bond_set_rx_mode() argument
4772 struct bonding *bond = netdev_priv(bond_dev); in bond_set_rx_mode()
4780 dev_uc_sync(slave->dev, bond_dev); in bond_set_rx_mode()
4781 dev_mc_sync(slave->dev, bond_dev); in bond_set_rx_mode()
4785 dev_uc_sync_multiple(slave->dev, bond_dev); in bond_set_rx_mode()
4786 dev_mc_sync_multiple(slave->dev, bond_dev); in bond_set_rx_mode()
4848 static int bond_change_mtu(struct net_device *bond_dev, int new_mtu) in bond_change_mtu() argument
4850 struct bonding *bond = netdev_priv(bond_dev); in bond_change_mtu()
4855 netdev_dbg(bond_dev, "bond=%p, new_mtu=%d\n", bond, new_mtu); in bond_change_mtu()
4858 slave_dbg(bond_dev, slave->dev, "s %p c_m %p\n", in bond_change_mtu()
4872 slave_dbg(bond_dev, slave->dev, "err %d setting mtu to %d\n", in bond_change_mtu()
4878 WRITE_ONCE(bond_dev->mtu, new_mtu); in bond_change_mtu()
4890 tmp_res = dev_set_mtu(rollback_slave->dev, bond_dev->mtu); in bond_change_mtu()
4892 slave_dbg(bond_dev, rollback_slave->dev, "unwind err %d\n", in bond_change_mtu()
4905 static int bond_set_mac_address(struct net_device *bond_dev, void *addr) in bond_set_mac_address() argument
4907 struct bonding *bond = netdev_priv(bond_dev); in bond_set_mac_address()
4914 return bond_alb_set_mac_address(bond_dev, addr); in bond_set_mac_address()
4917 netdev_dbg(bond_dev, "%s: bond=%p\n", __func__, bond); in bond_set_mac_address()
4930 slave_dbg(bond_dev, slave->dev, "%s: slave=%p\n", in bond_set_mac_address()
4940 slave_dbg(bond_dev, slave->dev, "%s: err %d\n", in bond_set_mac_address()
4947 dev_addr_set(bond_dev, ss->__data); in bond_set_mac_address()
4951 memcpy(tmp_ss.__data, bond_dev->dev_addr, bond_dev->addr_len); in bond_set_mac_address()
4952 tmp_ss.ss_family = bond_dev->type; in bond_set_mac_address()
4963 slave_dbg(bond_dev, rollback_slave->dev, "%s: unwind err %d\n", in bond_set_mac_address()
5119 struct net_device *bond_dev) in bond_xmit_roundrobin() argument
5121 struct bonding *bond = netdev_priv(bond_dev); in bond_xmit_roundrobin()
5128 return bond_tx_drop(bond_dev, skb); in bond_xmit_roundrobin()
5140 struct net_device *bond_dev) in bond_xmit_activebackup() argument
5142 struct bonding *bond = netdev_priv(bond_dev); in bond_xmit_activebackup()
5149 return bond_tx_drop(bond_dev, skb); in bond_xmit_activebackup()
5391 struct net_device *bond_dev, in bond_xmit_broadcast() argument
5394 struct bonding *bond = netdev_priv(bond_dev); in bond_xmit_broadcast()
5420 bond_dev->name, __func__); in bond_xmit_broadcast()
5435 dev_core_stats_tx_dropped_inc(bond_dev); in bond_xmit_broadcast()
5686 bond_xdp_get_xmit_slave(struct net_device *bond_dev, struct xdp_buff *xdp) in bond_xdp_get_xmit_slave() argument
5688 struct bonding *bond = netdev_priv(bond_dev); in bond_xdp_get_xmit_slave()
5709 netdev_err(bond_dev, "Unknown bonding mode %d for xdp xmit\n", in bond_xdp_get_xmit_slave()
5720 static int bond_xdp_xmit(struct net_device *bond_dev, in bond_xdp_xmit() argument
5735 slave_dev = bond_xdp_get_xmit_slave(bond_dev, &xdp); in bond_xdp_xmit()
5924 static int bond_ethtool_get_link_ksettings(struct net_device *bond_dev, in bond_ethtool_get_link_ksettings() argument
5927 struct bonding *bond = netdev_priv(bond_dev); in bond_ethtool_get_link_ksettings()
5960 static void bond_ethtool_get_drvinfo(struct net_device *bond_dev, in bond_ethtool_get_drvinfo() argument
5968 static int bond_ethtool_get_ts_info(struct net_device *bond_dev, in bond_ethtool_get_ts_info() argument
5971 struct bonding *bond = netdev_priv(bond_dev); in bond_ethtool_get_ts_info()
6056 static void bond_destructor(struct net_device *bond_dev) in bond_destructor() argument
6058 struct bonding *bond = netdev_priv(bond_dev); in bond_destructor()
6066 void bond_setup(struct net_device *bond_dev) in bond_setup() argument
6068 struct bonding *bond = netdev_priv(bond_dev); in bond_setup()
6074 bond->dev = bond_dev; in bond_setup()
6077 ether_setup(bond_dev); in bond_setup()
6078 bond_dev->max_mtu = ETH_MAX_MTU; in bond_setup()
6079 bond_dev->netdev_ops = &bond_netdev_ops; in bond_setup()
6080 bond_dev->ethtool_ops = &bond_ethtool_ops; in bond_setup()
6082 bond_dev->needs_free_netdev = true; in bond_setup()
6083 bond_dev->priv_destructor = bond_destructor; in bond_setup()
6085 SET_NETDEV_DEVTYPE(bond_dev, &bond_type); in bond_setup()
6088 bond_dev->flags |= IFF_MASTER; in bond_setup()
6089 bond_dev->priv_flags |= IFF_BONDING | IFF_UNICAST_FLT | IFF_NO_QUEUE; in bond_setup()
6090 bond_dev->priv_flags &= ~(IFF_XMIT_DST_RELEASE | IFF_TX_SKB_SHARING); in bond_setup()
6094 bond_dev->xfrmdev_ops = &bond_xfrmdev_ops; in bond_setup()
6100 bond_dev->lltx = true; in bond_setup()
6103 bond_dev->netns_immutable = true; in bond_setup()
6112 bond_dev->hw_features = BOND_VLAN_FEATURES | in bond_setup()
6118 bond_dev->hw_features |= NETIF_F_GSO_ENCAP_ALL; in bond_setup()
6119 bond_dev->features |= bond_dev->hw_features; in bond_setup()
6120 bond_dev->features |= NETIF_F_HW_VLAN_CTAG_TX | NETIF_F_HW_VLAN_STAG_TX; in bond_setup()
6121 bond_dev->features |= NETIF_F_GSO_PARTIAL; in bond_setup()
6123 bond_dev->hw_features |= BOND_XFRM_FEATURES; in bond_setup()
6126 bond_dev->features |= BOND_XFRM_FEATURES; in bond_setup()
6133 static void bond_uninit(struct net_device *bond_dev) in bond_uninit() argument
6135 struct bonding *bond = netdev_priv(bond_dev); in bond_uninit()
6139 bond_netpoll_cleanup(bond_dev); in bond_uninit()
6143 __bond_release_one(bond_dev, slave->dev, true, true); in bond_uninit()
6144 netdev_info(bond_dev, "Released all slaves\n"); in bond_uninit()
6551 static int bond_init(struct net_device *bond_dev) in bond_init() argument
6553 struct bonding *bond = netdev_priv(bond_dev); in bond_init()
6554 struct bond_net *bn = net_generic(dev_net(bond_dev), bond_net_id); in bond_init()
6556 netdev_dbg(bond_dev, "Begin bond_init\n"); in bond_init()
6559 bond_dev->name); in bond_init()
6566 netdev_lockdep_set_classes(bond_dev); in bond_init()
6575 if (is_zero_ether_addr(bond_dev->dev_addr) && in bond_init()
6576 bond_dev->addr_assign_type == NET_ADDR_PERM) in bond_init()
6577 eth_hw_addr_random(bond_dev); in bond_init()
6594 struct net_device *bond_dev; in bond_create() local
6600 bond_dev = alloc_netdev_mq(sizeof(struct bonding), in bond_create()
6603 if (!bond_dev) in bond_create()
6606 bond = netdev_priv(bond_dev); in bond_create()
6607 dev_net_set(bond_dev, net); in bond_create()
6608 bond_dev->rtnl_link_ops = &bond_link_ops; in bond_create()
6610 res = register_netdevice(bond_dev); in bond_create()
6612 free_netdev(bond_dev); in bond_create()
6616 netif_carrier_off(bond_dev); in bond_create()