bond 1507 drivers/gpu/drm/i915/gem/i915_gem_context.c struct intel_engine_cs *bond; bond 1512 drivers/gpu/drm/i915/gem/i915_gem_context.c bond = intel_engine_lookup_user(set->ctx->i915, bond 1515 drivers/gpu/drm/i915/gem/i915_gem_context.c if (!bond) { bond 1528 drivers/gpu/drm/i915/gem/i915_gem_context.c bond); bond 3689 drivers/gpu/drm/i915/gt/intel_lrc.c struct ve_bond *bond; bond 3693 drivers/gpu/drm/i915/gt/intel_lrc.c bond = virtual_find_bond(ve, to_request(signal)->engine); bond 3694 drivers/gpu/drm/i915/gt/intel_lrc.c if (bond) bond 3695 drivers/gpu/drm/i915/gt/intel_lrc.c allowed &= bond->sibling_mask; bond 3883 drivers/gpu/drm/i915/gt/intel_lrc.c struct ve_bond *bond; bond 3893 drivers/gpu/drm/i915/gt/intel_lrc.c bond = virtual_find_bond(ve, master); bond 3894 drivers/gpu/drm/i915/gt/intel_lrc.c if (bond) { bond 3895 drivers/gpu/drm/i915/gt/intel_lrc.c bond->sibling_mask |= sibling->mask; bond 3899 drivers/gpu/drm/i915/gt/intel_lrc.c bond = krealloc(ve->bonds, bond 3900 drivers/gpu/drm/i915/gt/intel_lrc.c sizeof(*bond) * (ve->num_bonds + 1), bond 3902 drivers/gpu/drm/i915/gt/intel_lrc.c if (!bond) bond 3905 drivers/gpu/drm/i915/gt/intel_lrc.c bond[ve->num_bonds].master = master; bond 3906 drivers/gpu/drm/i915/gt/intel_lrc.c bond[ve->num_bonds].sibling_mask = sibling->mask; bond 3908 drivers/gpu/drm/i915/gt/intel_lrc.c ve->bonds = bond; bond 151 drivers/net/bonding/bond_3ad.c struct bonding *bond = __get_bond_by_port(port); bond 156 drivers/net/bonding/bond_3ad.c if (bond == NULL) bond 160 drivers/net/bonding/bond_3ad.c first_slave = bond_first_slave_rcu(bond); bond 217 drivers/net/bonding/bond_3ad.c struct bonding *bond = __get_bond_by_port(port); bond 219 drivers/net/bonding/bond_3ad.c if (bond == NULL) bond 222 drivers/net/bonding/bond_3ad.c return bond->params.ad_select; bond 231 drivers/net/bonding/bond_3ad.c struct bonding *bond = __get_bond_by_port(port); bond 233 drivers/net/bonding/bond_3ad.c if (bond == NULL) bond 236 drivers/net/bonding/bond_3ad.c return BOND_AD_INFO(bond).agg_select_timer ? 1 : 0; bond 329 drivers/net/bonding/bond_3ad.c slave->bond->dev->name, bond 337 drivers/net/bonding/bond_3ad.c slave_dbg(slave->bond->dev, slave->dev, "Port %d Received link speed %d update from adapter\n", bond 362 drivers/net/bonding/bond_3ad.c slave_dbg(slave->bond->dev, slave->dev, "Port %d Received status full duplex update from adapter\n", bond 368 drivers/net/bonding/bond_3ad.c slave_dbg(slave->bond->dev, slave->dev, "Port %d Received status NOT full duplex update from adapter\n", bond 378 drivers/net/bonding/bond_3ad.c const struct bonding *bond = bond_get_bond_by_slave(port->slave); bond 380 drivers/net/bonding/bond_3ad.c port->actor_system = BOND_AD_INFO(bond).system.sys_mac_addr; bond 381 drivers/net/bonding/bond_3ad.c port->actor_system_priority = BOND_AD_INFO(bond).system.sys_priority; bond 503 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, port->slave->dev, bond 507 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, port->slave->dev, bond 761 drivers/net/bonding/bond_3ad.c struct bonding *bond = aggregator->slave->bond; bond 765 drivers/net/bonding/bond_3ad.c bond_for_each_slave_rcu(bond, slave, iter) bond 794 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, port->slave->dev, bond 842 drivers/net/bonding/bond_3ad.c atomic64_inc(&BOND_AD_INFO(slave->bond).stats.lacpdu_tx); bond 888 drivers/net/bonding/bond_3ad.c atomic64_inc(&BOND_AD_INFO(slave->bond).stats.marker_tx); bond 892 drivers/net/bonding/bond_3ad.c atomic64_inc(&BOND_AD_INFO(slave->bond).stats.marker_resp_tx); bond 1028 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, port->slave->dev, bond 1092 drivers/net/bonding/bond_3ad.c atomic64_inc(&BOND_AD_INFO(port->slave->bond).stats.lacpdu_rx); bond 1146 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, port->slave->dev, bond 1198 drivers/net/bonding/bond_3ad.c slave_err(port->slave->bond->dev, port->slave->dev, "An illegal loopback occurred on slave\n" bond 1268 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, bond 1350 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, port->slave->dev, bond 1389 drivers/net/bonding/bond_3ad.c struct bonding *bond; bond 1397 drivers/net/bonding/bond_3ad.c bond = __get_bond_by_port(port); bond 1429 drivers/net/bonding/bond_3ad.c slave_dbg(bond->dev, port->slave->dev, "Port %d left LAG %d\n", bond 1445 drivers/net/bonding/bond_3ad.c port->slave->bond->dev->name, bond 1452 drivers/net/bonding/bond_3ad.c bond_for_each_slave(bond, slave, iter) { bond 1478 drivers/net/bonding/bond_3ad.c slave_dbg(bond->dev, slave->dev, "Port %d joined LAG %d (existing LAG)\n", bond 1525 drivers/net/bonding/bond_3ad.c slave_dbg(bond->dev, port->slave->dev, "Port %d joined LAG %d (new LAG)\n", bond 1529 drivers/net/bonding/bond_3ad.c slave_err(bond->dev, port->slave->dev, bond 1611 drivers/net/bonding/bond_3ad.c curr->slave->bond->dev->name, bond 1667 drivers/net/bonding/bond_3ad.c struct bonding *bond = agg->slave->bond; bond 1677 drivers/net/bonding/bond_3ad.c bond_for_each_slave_rcu(bond, slave, iter) { bond 1713 drivers/net/bonding/bond_3ad.c netdev_dbg(bond->dev, "(slave %s): best Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n", bond 1719 drivers/net/bonding/bond_3ad.c netdev_dbg(bond->dev, "(slave %s): best ports %p slave %p\n", bond 1723 drivers/net/bonding/bond_3ad.c bond_for_each_slave_rcu(bond, slave, iter) { bond 1726 drivers/net/bonding/bond_3ad.c slave_dbg(bond->dev, slave->dev, "Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n", bond 1736 drivers/net/bonding/bond_3ad.c bond->dev->name); bond 1739 drivers/net/bonding/bond_3ad.c netdev_dbg(bond->dev, "(slave %s): LAG %d chosen as the active LAG\n", bond 1742 drivers/net/bonding/bond_3ad.c netdev_dbg(bond->dev, "(slave %s): Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n", bond 1778 drivers/net/bonding/bond_3ad.c bond_3ad_set_carrier(bond); bond 1898 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, port->slave->dev, bond 1919 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, port->slave->dev, bond 1940 drivers/net/bonding/bond_3ad.c atomic64_inc(&BOND_AD_INFO(port->slave->bond).stats.marker_rx); bond 1949 drivers/net/bonding/bond_3ad.c slave_dbg(port->slave->bond->dev, port->slave->dev, bond 1967 drivers/net/bonding/bond_3ad.c atomic64_inc(&BOND_AD_INFO(port->slave->bond).stats.marker_resp_rx); bond 1985 drivers/net/bonding/bond_3ad.c void bond_3ad_initiate_agg_selection(struct bonding *bond, int timeout) bond 1987 drivers/net/bonding/bond_3ad.c BOND_AD_INFO(bond).agg_select_timer = timeout; bond 1997 drivers/net/bonding/bond_3ad.c void bond_3ad_initialize(struct bonding *bond, u16 tick_resolution) bond 2000 drivers/net/bonding/bond_3ad.c if (!MAC_ADDRESS_EQUAL(&(BOND_AD_INFO(bond).system.sys_mac_addr), bond 2001 drivers/net/bonding/bond_3ad.c bond->dev->dev_addr)) { bond 2003 drivers/net/bonding/bond_3ad.c BOND_AD_INFO(bond).aggregator_identifier = 0; bond 2005 drivers/net/bonding/bond_3ad.c BOND_AD_INFO(bond).system.sys_priority = bond 2006 drivers/net/bonding/bond_3ad.c bond->params.ad_actor_sys_prio; bond 2007 drivers/net/bonding/bond_3ad.c if (is_zero_ether_addr(bond->params.ad_actor_system)) bond 2008 drivers/net/bonding/bond_3ad.c BOND_AD_INFO(bond).system.sys_mac_addr = bond 2009 drivers/net/bonding/bond_3ad.c *((struct mac_addr *)bond->dev->dev_addr); bond 2011 drivers/net/bonding/bond_3ad.c BOND_AD_INFO(bond).system.sys_mac_addr = bond 2012 drivers/net/bonding/bond_3ad.c *((struct mac_addr *)bond->params.ad_actor_system); bond 2019 drivers/net/bonding/bond_3ad.c bond_3ad_initiate_agg_selection(bond, bond 2034 drivers/net/bonding/bond_3ad.c struct bonding *bond = bond_get_bond_by_slave(slave); bond 2044 drivers/net/bonding/bond_3ad.c ad_initialize_port(port, bond->params.lacp_fast); bond 2051 drivers/net/bonding/bond_3ad.c port->actor_admin_port_key = bond->params.ad_user_port_key << 6; bond 2067 drivers/net/bonding/bond_3ad.c aggregator->aggregator_mac_address = *((struct mac_addr *)bond->dev->dev_addr); bond 2068 drivers/net/bonding/bond_3ad.c aggregator->aggregator_identifier = ++BOND_AD_INFO(bond).aggregator_identifier; bond 2088 drivers/net/bonding/bond_3ad.c struct bonding *bond = slave->bond; bond 2094 drivers/net/bonding/bond_3ad.c spin_lock_bh(&bond->mode_lock); bond 2100 drivers/net/bonding/bond_3ad.c slave_warn(bond->dev, slave->dev, "Trying to unbind an uninitialized port\n"); bond 2104 drivers/net/bonding/bond_3ad.c slave_dbg(bond->dev, slave->dev, "Unbinding Link Aggregation Group %d\n", bond 2125 drivers/net/bonding/bond_3ad.c bond_for_each_slave(bond, slave_iter, iter) { bond 2143 drivers/net/bonding/bond_3ad.c slave_dbg(bond->dev, slave->dev, "Some port(s) related to LAG %d - replacing with LAG %d\n", bond 2149 drivers/net/bonding/bond_3ad.c slave_info(bond->dev, slave->dev, "Removing an active aggregator\n"); bond 2180 drivers/net/bonding/bond_3ad.c slave_warn(bond->dev, slave->dev, "unbinding aggregator, and could not find a new aggregator for its ports\n"); bond 2189 drivers/net/bonding/bond_3ad.c slave_info(bond->dev, slave->dev, "Removing an active aggregator\n"); bond 2199 drivers/net/bonding/bond_3ad.c slave_dbg(bond->dev, slave->dev, "Unbinding port %d\n", port->actor_port_number); bond 2202 drivers/net/bonding/bond_3ad.c bond_for_each_slave(bond, slave_iter, iter) { bond 2222 drivers/net/bonding/bond_3ad.c slave_info(bond->dev, slave->dev, "Removing an active aggregator\n"); bond 2235 drivers/net/bonding/bond_3ad.c spin_unlock_bh(&bond->mode_lock); bond 2245 drivers/net/bonding/bond_3ad.c void bond_3ad_update_ad_actor_settings(struct bonding *bond) bond 2252 drivers/net/bonding/bond_3ad.c BOND_AD_INFO(bond).system.sys_priority = bond->params.ad_actor_sys_prio; bond 2253 drivers/net/bonding/bond_3ad.c if (is_zero_ether_addr(bond->params.ad_actor_system)) bond 2254 drivers/net/bonding/bond_3ad.c BOND_AD_INFO(bond).system.sys_mac_addr = bond 2255 drivers/net/bonding/bond_3ad.c *((struct mac_addr *)bond->dev->dev_addr); bond 2257 drivers/net/bonding/bond_3ad.c BOND_AD_INFO(bond).system.sys_mac_addr = bond 2258 drivers/net/bonding/bond_3ad.c *((struct mac_addr *)bond->params.ad_actor_system); bond 2260 drivers/net/bonding/bond_3ad.c spin_lock_bh(&bond->mode_lock); bond 2261 drivers/net/bonding/bond_3ad.c bond_for_each_slave(bond, slave, iter) { bond 2267 drivers/net/bonding/bond_3ad.c spin_unlock_bh(&bond->mode_lock); bond 2285 drivers/net/bonding/bond_3ad.c struct bonding *bond = container_of(work, struct bonding, bond 2298 drivers/net/bonding/bond_3ad.c spin_lock_bh(&bond->mode_lock); bond 2302 drivers/net/bonding/bond_3ad.c if (!bond_has_slaves(bond)) bond 2306 drivers/net/bonding/bond_3ad.c if (BOND_AD_INFO(bond).agg_select_timer && bond 2307 drivers/net/bonding/bond_3ad.c !(--BOND_AD_INFO(bond).agg_select_timer)) { bond 2308 drivers/net/bonding/bond_3ad.c slave = bond_first_slave_rcu(bond); bond 2315 drivers/net/bonding/bond_3ad.c bond->dev->name); bond 2322 drivers/net/bonding/bond_3ad.c bond_3ad_set_carrier(bond); bond 2326 drivers/net/bonding/bond_3ad.c bond_for_each_slave_rcu(bond, slave, iter) { bond 2330 drivers/net/bonding/bond_3ad.c bond->dev->name); bond 2347 drivers/net/bonding/bond_3ad.c bond_for_each_slave_rcu(bond, slave, iter) { bond 2354 drivers/net/bonding/bond_3ad.c spin_unlock_bh(&bond->mode_lock); bond 2357 drivers/net/bonding/bond_3ad.c bond_slave_arr_work_rearm(bond, 0); bond 2360 drivers/net/bonding/bond_3ad.c bond_slave_state_notify(bond); bond 2363 drivers/net/bonding/bond_3ad.c queue_delayed_work(bond->wq, &bond->ad_work, ad_delta_in_ticks); bond 2377 drivers/net/bonding/bond_3ad.c struct bonding *bond = slave->bond; bond 2386 drivers/net/bonding/bond_3ad.c slave->dev->name, slave->bond->dev->name); bond 2393 drivers/net/bonding/bond_3ad.c slave_dbg(slave->bond->dev, slave->dev, bond 2397 drivers/net/bonding/bond_3ad.c spin_lock(&slave->bond->mode_lock); bond 2399 drivers/net/bonding/bond_3ad.c spin_unlock(&slave->bond->mode_lock); bond 2409 drivers/net/bonding/bond_3ad.c slave_dbg(slave->bond->dev, slave->dev, "Received Marker Information on port %d\n", bond 2414 drivers/net/bonding/bond_3ad.c slave_dbg(slave->bond->dev, slave->dev, "Received Marker Response on port %d\n", bond 2419 drivers/net/bonding/bond_3ad.c slave_dbg(slave->bond->dev, slave->dev, "Received an unknown Marker subtype on port %d\n", bond 2423 drivers/net/bonding/bond_3ad.c stat = &BOND_AD_INFO(bond).stats.marker_unknown_rx; bond 2429 drivers/net/bonding/bond_3ad.c atomic64_inc(&BOND_AD_INFO(bond).stats.lacpdu_unknown_rx); bond 2470 drivers/net/bonding/bond_3ad.c slave_err(port->slave->bond->dev, bond 2498 drivers/net/bonding/bond_3ad.c slave_warn(slave->bond->dev, slave->dev, bond 2503 drivers/net/bonding/bond_3ad.c spin_lock_bh(&slave->bond->mode_lock); bond 2505 drivers/net/bonding/bond_3ad.c spin_unlock_bh(&slave->bond->mode_lock); bond 2506 drivers/net/bonding/bond_3ad.c slave_dbg(slave->bond->dev, slave->dev, "Port %d changed speed/duplex\n", bond 2527 drivers/net/bonding/bond_3ad.c slave_warn(slave->bond->dev, slave->dev, "link status changed for uninitialized port\n"); bond 2531 drivers/net/bonding/bond_3ad.c spin_lock_bh(&slave->bond->mode_lock); bond 2550 drivers/net/bonding/bond_3ad.c spin_unlock_bh(&slave->bond->mode_lock); bond 2552 drivers/net/bonding/bond_3ad.c slave_dbg(slave->bond->dev, slave->dev, "Port %d changed link status to %s\n", bond 2559 drivers/net/bonding/bond_3ad.c bond_update_slave_arr(slave->bond, NULL); bond 2575 drivers/net/bonding/bond_3ad.c int bond_3ad_set_carrier(struct bonding *bond) bond 2582 drivers/net/bonding/bond_3ad.c first_slave = bond_first_slave_rcu(bond); bond 2590 drivers/net/bonding/bond_3ad.c if (__agg_active_ports(active) < bond->params.min_links) { bond 2591 drivers/net/bonding/bond_3ad.c if (netif_carrier_ok(bond->dev)) { bond 2592 drivers/net/bonding/bond_3ad.c netif_carrier_off(bond->dev); bond 2595 drivers/net/bonding/bond_3ad.c } else if (!netif_carrier_ok(bond->dev)) { bond 2596 drivers/net/bonding/bond_3ad.c netif_carrier_on(bond->dev); bond 2599 drivers/net/bonding/bond_3ad.c } else if (netif_carrier_ok(bond->dev)) { bond 2600 drivers/net/bonding/bond_3ad.c netif_carrier_off(bond->dev); bond 2615 drivers/net/bonding/bond_3ad.c int __bond_3ad_get_active_agg_info(struct bonding *bond, bond 2623 drivers/net/bonding/bond_3ad.c bond_for_each_slave_rcu(bond, slave, iter) { bond 2643 drivers/net/bonding/bond_3ad.c int bond_3ad_get_active_agg_info(struct bonding *bond, struct ad_info *ad_info) bond 2648 drivers/net/bonding/bond_3ad.c ret = __bond_3ad_get_active_agg_info(bond, ad_info); bond 2654 drivers/net/bonding/bond_3ad.c int bond_3ad_lacpdu_recv(const struct sk_buff *skb, struct bonding *bond, bond 2668 drivers/net/bonding/bond_3ad.c atomic64_inc(&BOND_AD_INFO(bond).stats.lacpdu_illegal_rx); bond 2686 drivers/net/bonding/bond_3ad.c void bond_3ad_update_lacp_rate(struct bonding *bond) bond 2693 drivers/net/bonding/bond_3ad.c lacp_fast = bond->params.lacp_fast; bond 2694 drivers/net/bonding/bond_3ad.c spin_lock_bh(&bond->mode_lock); bond 2695 drivers/net/bonding/bond_3ad.c bond_for_each_slave(bond, slave, iter) { bond 2702 drivers/net/bonding/bond_3ad.c spin_unlock_bh(&bond->mode_lock); bond 56 drivers/net/bonding/bond_alb.c static void rlb_purge_src_ip(struct bonding *bond, struct arp_pkt *arp); bond 57 drivers/net/bonding/bond_alb.c static void rlb_src_unlink(struct bonding *bond, u32 index); bond 58 drivers/net/bonding/bond_alb.c static void rlb_src_link(struct bonding *bond, u32 ip_src_hash, bond 93 drivers/net/bonding/bond_alb.c static void __tlb_clear_slave(struct bonding *bond, struct slave *slave, bond 100 drivers/net/bonding/bond_alb.c tx_hash_table = BOND_ALB_INFO(bond).tx_hashtbl; bond 115 drivers/net/bonding/bond_alb.c static void tlb_clear_slave(struct bonding *bond, struct slave *slave, bond 118 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 119 drivers/net/bonding/bond_alb.c __tlb_clear_slave(bond, slave, save_load); bond 120 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 124 drivers/net/bonding/bond_alb.c static int tlb_initialize(struct bonding *bond) bond 126 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 135 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 142 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 148 drivers/net/bonding/bond_alb.c static void tlb_deinitialize(struct bonding *bond) bond 150 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 152 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 157 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 166 drivers/net/bonding/bond_alb.c static struct slave *tlb_get_least_loaded_slave(struct bonding *bond) bond 176 drivers/net/bonding/bond_alb.c bond_for_each_slave_rcu(bond, slave, iter) { bond 190 drivers/net/bonding/bond_alb.c static struct slave *__tlb_choose_channel(struct bonding *bond, u32 hash_index, bond 193 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 200 drivers/net/bonding/bond_alb.c assigned_slave = tlb_get_least_loaded_slave(bond); bond 226 drivers/net/bonding/bond_alb.c static struct slave *tlb_choose_channel(struct bonding *bond, u32 hash_index, bond 235 drivers/net/bonding/bond_alb.c spin_lock(&bond->mode_lock); bond 236 drivers/net/bonding/bond_alb.c tx_slave = __tlb_choose_channel(bond, hash_index, skb_len); bond 237 drivers/net/bonding/bond_alb.c spin_unlock(&bond->mode_lock); bond 247 drivers/net/bonding/bond_alb.c static void rlb_update_entry_from_arp(struct bonding *bond, struct arp_pkt *arp) bond 249 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 253 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 268 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 271 drivers/net/bonding/bond_alb.c static int rlb_arp_recv(const struct sk_buff *skb, struct bonding *bond, bond 293 drivers/net/bonding/bond_alb.c rlb_purge_src_ip(bond, arp); bond 297 drivers/net/bonding/bond_alb.c rlb_update_entry_from_arp(bond, arp); bond 298 drivers/net/bonding/bond_alb.c slave_dbg(bond->dev, slave->dev, "Server received an ARP Reply from client\n"); bond 305 drivers/net/bonding/bond_alb.c static struct slave *__rlb_next_rx_slave(struct bonding *bond) bond 307 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 312 drivers/net/bonding/bond_alb.c bond_for_each_slave_rcu(bond, slave, iter) { bond 338 drivers/net/bonding/bond_alb.c static struct slave *rlb_next_rx_slave(struct bonding *bond) bond 345 drivers/net/bonding/bond_alb.c rx_slave = __rlb_next_rx_slave(bond); bond 356 drivers/net/bonding/bond_alb.c static void rlb_teach_disabled_mac_on_primary(struct bonding *bond, u8 addr[]) bond 358 drivers/net/bonding/bond_alb.c struct slave *curr_active = rtnl_dereference(bond->curr_active_slave); bond 363 drivers/net/bonding/bond_alb.c if (!bond->alb_info.primary_is_promisc) { bond 365 drivers/net/bonding/bond_alb.c bond->alb_info.primary_is_promisc = 1; bond 367 drivers/net/bonding/bond_alb.c bond->alb_info.primary_is_promisc = 0; bond 370 drivers/net/bonding/bond_alb.c bond->alb_info.rlb_promisc_timeout_counter = 0; bond 379 drivers/net/bonding/bond_alb.c static void rlb_clear_slave(struct bonding *bond, struct slave *slave) bond 381 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 386 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 393 drivers/net/bonding/bond_alb.c struct slave *assigned_slave = rlb_next_rx_slave(bond); bond 416 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 418 drivers/net/bonding/bond_alb.c if (slave != rtnl_dereference(bond->curr_active_slave)) bond 419 drivers/net/bonding/bond_alb.c rlb_teach_disabled_mac_on_primary(bond, slave->dev->dev_addr); bond 440 drivers/net/bonding/bond_alb.c slave_err(client_info->slave->bond->dev, bond 458 drivers/net/bonding/bond_alb.c static void rlb_update_rx_clients(struct bonding *bond) bond 460 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 464 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 482 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 486 drivers/net/bonding/bond_alb.c static void rlb_req_update_slave_clients(struct bonding *bond, struct slave *slave) bond 488 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 493 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 514 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 518 drivers/net/bonding/bond_alb.c static void rlb_req_update_subnet_clients(struct bonding *bond, __be32 src_ip) bond 520 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 524 drivers/net/bonding/bond_alb.c spin_lock(&bond->mode_lock); bond 532 drivers/net/bonding/bond_alb.c netdev_err(bond->dev, "found a client with no channel in the client's hash table\n"); bond 541 drivers/net/bonding/bond_alb.c bond->dev->dev_addr) && bond 548 drivers/net/bonding/bond_alb.c spin_unlock(&bond->mode_lock); bond 552 drivers/net/bonding/bond_alb.c struct bonding *bond, bond 555 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 560 drivers/net/bonding/bond_alb.c spin_lock(&bond->mode_lock); bond 562 drivers/net/bonding/bond_alb.c curr_active_slave = rcu_dereference(bond->curr_active_slave); bond 579 drivers/net/bonding/bond_alb.c spin_unlock(&bond->mode_lock); bond 595 drivers/net/bonding/bond_alb.c assigned_slave = __rlb_next_rx_slave(bond); bond 605 drivers/net/bonding/bond_alb.c rlb_src_unlink(bond, hash_index); bond 606 drivers/net/bonding/bond_alb.c rlb_src_link(bond, hash_src, hash_index); bond 621 drivers/net/bonding/bond_alb.c bond->alb_info.rx_ntt = 1; bond 641 drivers/net/bonding/bond_alb.c spin_unlock(&bond->mode_lock); bond 650 drivers/net/bonding/bond_alb.c static struct slave *rlb_arp_xmit(struct sk_buff *skb, struct bonding *bond) bond 662 drivers/net/bonding/bond_alb.c if (!bond_slave_has_mac_rx(bond, arp->mac_src)) bond 667 drivers/net/bonding/bond_alb.c tx_slave = rlb_choose_channel(skb, bond, arp); bond 671 drivers/net/bonding/bond_alb.c netdev_dbg(bond->dev, "(slave %s): Server sent ARP Reply packet\n", bond 679 drivers/net/bonding/bond_alb.c tx_slave = rlb_choose_channel(skb, bond, arp); bond 684 drivers/net/bonding/bond_alb.c bond->alb_info.rlb_update_delay_counter = RLB_UPDATE_DELAY; bond 691 drivers/net/bonding/bond_alb.c rlb_req_update_subnet_clients(bond, arp->ip_src); bond 692 drivers/net/bonding/bond_alb.c netdev_dbg(bond->dev, "(slave %s): Server sent ARP Request packet\n", bond 699 drivers/net/bonding/bond_alb.c static void rlb_rebalance(struct bonding *bond) bond 701 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 707 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 714 drivers/net/bonding/bond_alb.c assigned_slave = __rlb_next_rx_slave(bond); bond 727 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 753 drivers/net/bonding/bond_alb.c static void rlb_delete_table_entry_dst(struct bonding *bond, u32 index) bond 755 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 768 drivers/net/bonding/bond_alb.c static void rlb_src_unlink(struct bonding *bond, u32 index) bond 770 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 791 drivers/net/bonding/bond_alb.c static void rlb_delete_table_entry(struct bonding *bond, u32 index) bond 793 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 796 drivers/net/bonding/bond_alb.c rlb_delete_table_entry_dst(bond, index); bond 799 drivers/net/bonding/bond_alb.c rlb_src_unlink(bond, index); bond 805 drivers/net/bonding/bond_alb.c static void rlb_src_link(struct bonding *bond, u32 ip_src_hash, u32 ip_dst_hash) bond 807 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 821 drivers/net/bonding/bond_alb.c static void rlb_purge_src_ip(struct bonding *bond, struct arp_pkt *arp) bond 823 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 827 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 835 drivers/net/bonding/bond_alb.c rlb_delete_table_entry(bond, index); bond 838 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 841 drivers/net/bonding/bond_alb.c static int rlb_initialize(struct bonding *bond) bond 843 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 852 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 861 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 864 drivers/net/bonding/bond_alb.c bond->recv_probe = rlb_arp_recv; bond 869 drivers/net/bonding/bond_alb.c static void rlb_deinitialize(struct bonding *bond) bond 871 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 873 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 879 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 882 drivers/net/bonding/bond_alb.c static void rlb_clear_vlan(struct bonding *bond, unsigned short vlan_id) bond 884 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 887 drivers/net/bonding/bond_alb.c spin_lock_bh(&bond->mode_lock); bond 895 drivers/net/bonding/bond_alb.c rlb_delete_table_entry(bond, curr_index); bond 900 drivers/net/bonding/bond_alb.c spin_unlock_bh(&bond->mode_lock); bond 929 drivers/net/bonding/bond_alb.c slave_dbg(slave->bond->dev, slave->dev, bond 939 drivers/net/bonding/bond_alb.c struct bonding *bond; bond 949 drivers/net/bonding/bond_alb.c struct bonding *bond = data->bond; bond 955 drivers/net/bonding/bond_alb.c bond->dev->lower_level == upper->lower_level - 1) { bond 971 drivers/net/bonding/bond_alb.c tags = bond_verify_device_path(bond->dev, upper, 0); bond 985 drivers/net/bonding/bond_alb.c struct bonding *bond = bond_get_bond_by_slave(slave); bond 990 drivers/net/bonding/bond_alb.c .bond = bond, bond 1000 drivers/net/bonding/bond_alb.c netdev_walk_all_upper_dev_rcu(bond->dev, alb_upper_dev_walk, &data); bond 1010 drivers/net/bonding/bond_alb.c if (BOND_MODE(slave->bond) == BOND_MODE_TLB) { bond 1021 drivers/net/bonding/bond_alb.c slave_err(slave->bond->dev, dev, "dev_set_mac_address on slave failed! ALB mode requires that the base driver support setting the hw address also when the network device's interface is open\n"); bond 1048 drivers/net/bonding/bond_alb.c static void alb_fasten_mac_swap(struct bonding *bond, struct slave *slave1, bond 1059 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled) { bond 1063 drivers/net/bonding/bond_alb.c rlb_req_update_slave_clients(bond, slave1); bond 1071 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled) { bond 1075 drivers/net/bonding/bond_alb.c rlb_req_update_slave_clients(bond, slave2); bond 1081 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled && slaves_state_differ) { bond 1083 drivers/net/bonding/bond_alb.c rlb_teach_disabled_mac_on_primary(bond, bond 1102 drivers/net/bonding/bond_alb.c static void alb_change_hw_addr_on_detach(struct bonding *bond, struct slave *slave) bond 1111 drivers/net/bonding/bond_alb.c bond->dev->dev_addr); bond 1114 drivers/net/bonding/bond_alb.c found_slave = bond_slave_has_mac(bond, slave->perm_hwaddr); bond 1118 drivers/net/bonding/bond_alb.c alb_fasten_mac_swap(bond, slave, found_slave); bond 1145 drivers/net/bonding/bond_alb.c static int alb_handle_addr_collision_on_attach(struct bonding *bond, struct slave *slave) bond 1147 drivers/net/bonding/bond_alb.c struct slave *has_bond_addr = rcu_access_pointer(bond->curr_active_slave); bond 1151 drivers/net/bonding/bond_alb.c if (!bond_has_slaves(bond)) { bond 1160 drivers/net/bonding/bond_alb.c if (!ether_addr_equal_64bits(slave->perm_hwaddr, bond->dev->dev_addr)) { bond 1161 drivers/net/bonding/bond_alb.c if (!bond_slave_has_mac(bond, slave->dev->dev_addr)) bond 1167 drivers/net/bonding/bond_alb.c alb_set_slave_mac_addr(slave, bond->dev->dev_addr, bond 1168 drivers/net/bonding/bond_alb.c bond->dev->addr_len); bond 1174 drivers/net/bonding/bond_alb.c bond_for_each_slave(bond, tmp_slave1, iter) { bond 1175 drivers/net/bonding/bond_alb.c if (!bond_slave_has_mac(bond, tmp_slave1->perm_hwaddr)) { bond 1185 drivers/net/bonding/bond_alb.c bond->dev->dev_addr)) { bond 1196 drivers/net/bonding/bond_alb.c slave_warn(bond->dev, slave->dev, "the slave hw address is in use by the bond; giving it the hw address of %s\n", bond 1200 drivers/net/bonding/bond_alb.c slave_err(bond->dev, slave->dev, "the slave hw address is in use by the bond; couldn't find a slave with a free hw address to give it (this should not have happened)\n"); bond 1221 drivers/net/bonding/bond_alb.c static int alb_set_mac_address(struct bonding *bond, void *addr) bond 1229 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled) bond 1232 drivers/net/bonding/bond_alb.c bond_for_each_slave(bond, slave, iter) { bond 1250 drivers/net/bonding/bond_alb.c memcpy(ss.__data, bond->dev->dev_addr, bond->dev->addr_len); bond 1251 drivers/net/bonding/bond_alb.c ss.ss_family = bond->dev->type; bond 1254 drivers/net/bonding/bond_alb.c bond_for_each_slave(bond, rollback_slave, iter) { bond 1270 drivers/net/bonding/bond_alb.c int bond_alb_initialize(struct bonding *bond, int rlb_enabled) bond 1274 drivers/net/bonding/bond_alb.c res = tlb_initialize(bond); bond 1279 drivers/net/bonding/bond_alb.c bond->alb_info.rlb_enabled = 1; bond 1280 drivers/net/bonding/bond_alb.c res = rlb_initialize(bond); bond 1282 drivers/net/bonding/bond_alb.c tlb_deinitialize(bond); bond 1286 drivers/net/bonding/bond_alb.c bond->alb_info.rlb_enabled = 0; bond 1292 drivers/net/bonding/bond_alb.c void bond_alb_deinitialize(struct bonding *bond) bond 1294 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 1296 drivers/net/bonding/bond_alb.c tlb_deinitialize(bond); bond 1299 drivers/net/bonding/bond_alb.c rlb_deinitialize(bond); bond 1302 drivers/net/bonding/bond_alb.c static netdev_tx_t bond_do_alb_xmit(struct sk_buff *skb, struct bonding *bond, bond 1305 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 1310 drivers/net/bonding/bond_alb.c tx_slave = rcu_dereference(bond->curr_active_slave); bond 1311 drivers/net/bonding/bond_alb.c if (bond->params.tlb_dynamic_lb) bond 1316 drivers/net/bonding/bond_alb.c if (tx_slave != rcu_access_pointer(bond->curr_active_slave)) { bond 1321 drivers/net/bonding/bond_alb.c bond_dev_queue_xmit(bond, skb, tx_slave->dev); bond 1325 drivers/net/bonding/bond_alb.c if (tx_slave && bond->params.tlb_dynamic_lb) { bond 1326 drivers/net/bonding/bond_alb.c spin_lock(&bond->mode_lock); bond 1327 drivers/net/bonding/bond_alb.c __tlb_clear_slave(bond, tx_slave, 0); bond 1328 drivers/net/bonding/bond_alb.c spin_unlock(&bond->mode_lock); bond 1332 drivers/net/bonding/bond_alb.c bond_tx_drop(bond->dev, skb); bond 1339 drivers/net/bonding/bond_alb.c struct bonding *bond = netdev_priv(bond_dev); bond 1354 drivers/net/bonding/bond_alb.c hash_index = bond_xmit_hash(bond, skb); bond 1355 drivers/net/bonding/bond_alb.c if (bond->params.tlb_dynamic_lb) { bond 1356 drivers/net/bonding/bond_alb.c tx_slave = tlb_choose_channel(bond, bond 1363 drivers/net/bonding/bond_alb.c slaves = rcu_dereference(bond->slave_arr); bond 1372 drivers/net/bonding/bond_alb.c return bond_do_alb_xmit(skb, bond, tx_slave); bond 1377 drivers/net/bonding/bond_alb.c struct bonding *bond = netdev_priv(bond_dev); bond 1379 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 1477 drivers/net/bonding/bond_alb.c tx_slave = rlb_arp_xmit(skb, bond); bond 1485 drivers/net/bonding/bond_alb.c if (bond->params.tlb_dynamic_lb) { bond 1487 drivers/net/bonding/bond_alb.c tx_slave = tlb_choose_channel(bond, hash_index, skb->len); bond 1497 drivers/net/bonding/bond_alb.c slaves = rcu_dereference(bond->slave_arr); bond 1500 drivers/net/bonding/bond_alb.c tx_slave = slaves->arr[bond_xmit_hash(bond, skb) % bond 1505 drivers/net/bonding/bond_alb.c return bond_do_alb_xmit(skb, bond, tx_slave); bond 1510 drivers/net/bonding/bond_alb.c struct bonding *bond = container_of(work, struct bonding, bond 1512 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 1516 drivers/net/bonding/bond_alb.c if (!bond_has_slaves(bond)) { bond 1528 drivers/net/bonding/bond_alb.c if (bond_info->lp_counter >= BOND_ALB_LP_TICKS(bond)) { bond 1531 drivers/net/bonding/bond_alb.c bond_for_each_slave_rcu(bond, slave, iter) { bond 1537 drivers/net/bonding/bond_alb.c strict_match = (slave != rcu_access_pointer(bond->curr_active_slave) || bond 1547 drivers/net/bonding/bond_alb.c bond_for_each_slave_rcu(bond, slave, iter) { bond 1548 drivers/net/bonding/bond_alb.c tlb_clear_slave(bond, slave, 1); bond 1549 drivers/net/bonding/bond_alb.c if (slave == rcu_access_pointer(bond->curr_active_slave)) { bond 1576 drivers/net/bonding/bond_alb.c dev_set_promiscuity(rtnl_dereference(bond->curr_active_slave)->dev, bond 1586 drivers/net/bonding/bond_alb.c rlb_rebalance(bond); bond 1594 drivers/net/bonding/bond_alb.c rlb_update_rx_clients(bond); bond 1604 drivers/net/bonding/bond_alb.c queue_delayed_work(bond->wq, &bond->alb_work, alb_delta_in_ticks); bond 1610 drivers/net/bonding/bond_alb.c int bond_alb_init_slave(struct bonding *bond, struct slave *slave) bond 1619 drivers/net/bonding/bond_alb.c res = alb_handle_addr_collision_on_attach(bond, slave); bond 1626 drivers/net/bonding/bond_alb.c bond->alb_info.tx_rebalance_counter = BOND_TLB_REBALANCE_TICKS; bond 1628 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled) bond 1629 drivers/net/bonding/bond_alb.c bond->alb_info.rlb_rebalance = 1; bond 1639 drivers/net/bonding/bond_alb.c void bond_alb_deinit_slave(struct bonding *bond, struct slave *slave) bond 1641 drivers/net/bonding/bond_alb.c if (bond_has_slaves(bond)) bond 1642 drivers/net/bonding/bond_alb.c alb_change_hw_addr_on_detach(bond, slave); bond 1644 drivers/net/bonding/bond_alb.c tlb_clear_slave(bond, slave, 0); bond 1646 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled) { bond 1647 drivers/net/bonding/bond_alb.c bond->alb_info.rx_slave = NULL; bond 1648 drivers/net/bonding/bond_alb.c rlb_clear_slave(bond, slave); bond 1653 drivers/net/bonding/bond_alb.c void bond_alb_handle_link_change(struct bonding *bond, struct slave *slave, char link) bond 1655 drivers/net/bonding/bond_alb.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 1658 drivers/net/bonding/bond_alb.c tlb_clear_slave(bond, slave, 0); bond 1659 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled) bond 1660 drivers/net/bonding/bond_alb.c rlb_clear_slave(bond, slave); bond 1664 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled) { bond 1665 drivers/net/bonding/bond_alb.c bond->alb_info.rlb_rebalance = 1; bond 1674 drivers/net/bonding/bond_alb.c if (bond_is_nondyn_tlb(bond)) { bond 1675 drivers/net/bonding/bond_alb.c if (bond_update_slave_arr(bond, NULL)) bond 1690 drivers/net/bonding/bond_alb.c void bond_alb_handle_active_change(struct bonding *bond, struct slave *new_slave) bond 1695 drivers/net/bonding/bond_alb.c curr_active = rtnl_dereference(bond->curr_active_slave); bond 1699 drivers/net/bonding/bond_alb.c if (curr_active && bond->alb_info.primary_is_promisc) { bond 1701 drivers/net/bonding/bond_alb.c bond->alb_info.primary_is_promisc = 0; bond 1702 drivers/net/bonding/bond_alb.c bond->alb_info.rlb_promisc_timeout_counter = 0; bond 1706 drivers/net/bonding/bond_alb.c rcu_assign_pointer(bond->curr_active_slave, new_slave); bond 1708 drivers/net/bonding/bond_alb.c if (!new_slave || !bond_has_slaves(bond)) bond 1715 drivers/net/bonding/bond_alb.c swap_slave = bond_slave_has_mac(bond, bond->dev->dev_addr); bond 1722 drivers/net/bonding/bond_alb.c tlb_clear_slave(bond, swap_slave, 1); bond 1723 drivers/net/bonding/bond_alb.c tlb_clear_slave(bond, new_slave, 1); bond 1728 drivers/net/bonding/bond_alb.c if (BOND_MODE(bond) == BOND_MODE_TLB) { bond 1735 drivers/net/bonding/bond_alb.c bond_hw_addr_copy(ss.__data, bond->dev->dev_addr, bond 1736 drivers/net/bonding/bond_alb.c bond->dev->addr_len); bond 1737 drivers/net/bonding/bond_alb.c ss.ss_family = bond->dev->type; bond 1750 drivers/net/bonding/bond_alb.c alb_fasten_mac_swap(bond, swap_slave, new_slave); bond 1753 drivers/net/bonding/bond_alb.c alb_set_slave_mac_addr(new_slave, bond->dev->dev_addr, bond 1754 drivers/net/bonding/bond_alb.c bond->dev->addr_len); bond 1755 drivers/net/bonding/bond_alb.c alb_send_learning_packets(new_slave, bond->dev->dev_addr, bond 1763 drivers/net/bonding/bond_alb.c struct bonding *bond = netdev_priv(bond_dev); bond 1772 drivers/net/bonding/bond_alb.c res = alb_set_mac_address(bond, addr); bond 1782 drivers/net/bonding/bond_alb.c curr_active = rtnl_dereference(bond->curr_active_slave); bond 1786 drivers/net/bonding/bond_alb.c swap_slave = bond_slave_has_mac(bond, bond_dev->dev_addr); bond 1790 drivers/net/bonding/bond_alb.c alb_fasten_mac_swap(bond, swap_slave, curr_active); bond 1797 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled) { bond 1799 drivers/net/bonding/bond_alb.c rlb_req_update_slave_clients(bond, curr_active); bond 1806 drivers/net/bonding/bond_alb.c void bond_alb_clear_vlan(struct bonding *bond, unsigned short vlan_id) bond 1808 drivers/net/bonding/bond_alb.c if (bond->alb_info.rlb_enabled) bond 1809 drivers/net/bonding/bond_alb.c rlb_clear_vlan(bond, vlan_id); bond 20 drivers/net/bonding/bond_debugfs.c struct bonding *bond = m->private; bond 21 drivers/net/bonding/bond_debugfs.c struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); bond 25 drivers/net/bonding/bond_debugfs.c if (BOND_MODE(bond) != BOND_MODE_ALB) bond 31 drivers/net/bonding/bond_debugfs.c spin_lock_bh(&bond->mode_lock); bond 44 drivers/net/bonding/bond_debugfs.c spin_unlock_bh(&bond->mode_lock); bond 50 drivers/net/bonding/bond_debugfs.c void bond_debug_register(struct bonding *bond) bond 55 drivers/net/bonding/bond_debugfs.c bond->debug_dir = bond 56 drivers/net/bonding/bond_debugfs.c debugfs_create_dir(bond->dev->name, bonding_debug_root); bond 58 drivers/net/bonding/bond_debugfs.c debugfs_create_file("rlb_hash_table", 0400, bond->debug_dir, bond 59 drivers/net/bonding/bond_debugfs.c bond, &bond_debug_rlb_hash_fops); bond 62 drivers/net/bonding/bond_debugfs.c void bond_debug_unregister(struct bonding *bond) bond 67 drivers/net/bonding/bond_debugfs.c debugfs_remove_recursive(bond->debug_dir); bond 70 drivers/net/bonding/bond_debugfs.c void bond_debug_reregister(struct bonding *bond) bond 77 drivers/net/bonding/bond_debugfs.c d = debugfs_rename(bonding_debug_root, bond->debug_dir, bond 78 drivers/net/bonding/bond_debugfs.c bonding_debug_root, bond->dev->name); bond 80 drivers/net/bonding/bond_debugfs.c bond->debug_dir = d; bond 82 drivers/net/bonding/bond_debugfs.c netdev_warn(bond->dev, "failed to reregister, so just unregister old one\n"); bond 83 drivers/net/bonding/bond_debugfs.c bond_debug_unregister(bond); bond 105 drivers/net/bonding/bond_debugfs.c void bond_debug_register(struct bonding *bond) bond 109 drivers/net/bonding/bond_debugfs.c void bond_debug_unregister(struct bonding *bond) bond 113 drivers/net/bonding/bond_debugfs.c void bond_debug_reregister(struct bonding *bond) bond 210 drivers/net/bonding/bond_main.c static bool bond_time_in_interval(struct bonding *bond, unsigned long last_act, bond 243 drivers/net/bonding/bond_main.c void bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, bond 252 drivers/net/bonding/bond_main.c if (unlikely(netpoll_tx_running(bond->dev))) bond 253 drivers/net/bonding/bond_main.c bond_netpoll_send_skb(bond_get_slave_by_dev(bond, slave_dev), skb); bond 282 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 287 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 297 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, rollback_slave, iter) { bond 315 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 319 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) bond 322 drivers/net/bonding/bond_main.c if (bond_is_lb(bond)) bond 323 drivers/net/bonding/bond_main.c bond_alb_clear_vlan(bond, vid); bond 336 drivers/net/bonding/bond_main.c int bond_set_carrier(struct bonding *bond) bond 341 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) bond 344 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) bond 345 drivers/net/bonding/bond_main.c return bond_3ad_set_carrier(bond); bond 347 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 349 drivers/net/bonding/bond_main.c if (!netif_carrier_ok(bond->dev)) { bond 350 drivers/net/bonding/bond_main.c netif_carrier_on(bond->dev); bond 358 drivers/net/bonding/bond_main.c if (netif_carrier_ok(bond->dev)) { bond 359 drivers/net/bonding/bond_main.c netif_carrier_off(bond->dev); bond 430 drivers/net/bonding/bond_main.c static int bond_check_dev_link(struct bonding *bond, bond 441 drivers/net/bonding/bond_main.c if (bond->params.use_carrier) bond 485 drivers/net/bonding/bond_main.c static int bond_set_promiscuity(struct bonding *bond, int inc) bond 490 drivers/net/bonding/bond_main.c if (bond_uses_primary(bond)) { bond 491 drivers/net/bonding/bond_main.c struct slave *curr_active = rtnl_dereference(bond->curr_active_slave); bond 498 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 508 drivers/net/bonding/bond_main.c static int bond_set_allmulti(struct bonding *bond, int inc) bond 513 drivers/net/bonding/bond_main.c if (bond_uses_primary(bond)) { bond 514 drivers/net/bonding/bond_main.c struct slave *curr_active = rtnl_dereference(bond->curr_active_slave); bond 521 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 536 drivers/net/bonding/bond_main.c struct bonding *bond = container_of(work, struct bonding, bond 540 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->mcast_work, 1); bond 543 drivers/net/bonding/bond_main.c call_netdevice_notifiers(NETDEV_RESEND_IGMP, bond->dev); bond 545 drivers/net/bonding/bond_main.c if (bond->igmp_retrans > 1) { bond 546 drivers/net/bonding/bond_main.c bond->igmp_retrans--; bond 547 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->mcast_work, HZ/5); bond 556 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 561 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 576 drivers/net/bonding/bond_main.c static void bond_hw_addr_swap(struct bonding *bond, struct slave *new_active, bond 580 drivers/net/bonding/bond_main.c if (bond->dev->flags & IFF_PROMISC) bond 583 drivers/net/bonding/bond_main.c if (bond->dev->flags & IFF_ALLMULTI) bond 586 drivers/net/bonding/bond_main.c bond_hw_addr_flush(bond->dev, old_active->dev); bond 591 drivers/net/bonding/bond_main.c if (bond->dev->flags & IFF_PROMISC) bond 594 drivers/net/bonding/bond_main.c if (bond->dev->flags & IFF_ALLMULTI) bond 597 drivers/net/bonding/bond_main.c netif_addr_lock_bh(bond->dev); bond 598 drivers/net/bonding/bond_main.c dev_uc_sync(new_active->dev, bond->dev); bond 599 drivers/net/bonding/bond_main.c dev_mc_sync(new_active->dev, bond->dev); bond 600 drivers/net/bonding/bond_main.c netif_addr_unlock_bh(bond->dev); bond 628 drivers/net/bonding/bond_main.c static struct slave *bond_get_old_active(struct bonding *bond, bond 634 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 638 drivers/net/bonding/bond_main.c if (ether_addr_equal(bond->dev->dev_addr, slave->dev->dev_addr)) bond 651 drivers/net/bonding/bond_main.c static void bond_do_fail_over_mac(struct bonding *bond, bond 659 drivers/net/bonding/bond_main.c switch (bond->params.fail_over_mac) { bond 662 drivers/net/bonding/bond_main.c rv = bond_set_dev_addr(bond->dev, new_active->dev); bond 664 drivers/net/bonding/bond_main.c slave_err(bond->dev, new_active->dev, "Error %d setting bond MAC from slave\n", bond 677 drivers/net/bonding/bond_main.c old_active = bond_get_old_active(bond, new_active); bond 687 drivers/net/bonding/bond_main.c bond_hw_addr_copy(ss.__data, bond->dev->dev_addr, bond 688 drivers/net/bonding/bond_main.c bond->dev->addr_len); bond 689 drivers/net/bonding/bond_main.c ss.ss_family = bond->dev->type; bond 695 drivers/net/bonding/bond_main.c slave_err(bond->dev, new_active->dev, "Error %d setting MAC of new active slave\n", bond 710 drivers/net/bonding/bond_main.c slave_err(bond->dev, old_active->dev, "Error %d setting MAC of old active slave\n", bond 715 drivers/net/bonding/bond_main.c netdev_err(bond->dev, "bond_do_fail_over_mac impossible: bad policy %d\n", bond 716 drivers/net/bonding/bond_main.c bond->params.fail_over_mac); bond 722 drivers/net/bonding/bond_main.c static struct slave *bond_choose_primary_or_current(struct bonding *bond) bond 724 drivers/net/bonding/bond_main.c struct slave *prim = rtnl_dereference(bond->primary_slave); bond 725 drivers/net/bonding/bond_main.c struct slave *curr = rtnl_dereference(bond->curr_active_slave); bond 733 drivers/net/bonding/bond_main.c if (bond->force_primary) { bond 734 drivers/net/bonding/bond_main.c bond->force_primary = false; bond 742 drivers/net/bonding/bond_main.c switch (bond->params.primary_reselect) { bond 754 drivers/net/bonding/bond_main.c netdev_err(bond->dev, "impossible primary_reselect %d\n", bond 755 drivers/net/bonding/bond_main.c bond->params.primary_reselect); bond 764 drivers/net/bonding/bond_main.c static struct slave *bond_find_best_slave(struct bonding *bond) bond 768 drivers/net/bonding/bond_main.c int mintime = bond->params.updelay; bond 770 drivers/net/bonding/bond_main.c slave = bond_choose_primary_or_current(bond); bond 774 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 787 drivers/net/bonding/bond_main.c static bool bond_should_notify_peers(struct bonding *bond) bond 792 drivers/net/bonding/bond_main.c slave = rcu_dereference(bond->curr_active_slave); bond 795 drivers/net/bonding/bond_main.c netdev_dbg(bond->dev, "bond_should_notify_peers: slave %s\n", bond 798 drivers/net/bonding/bond_main.c if (!slave || !bond->send_peer_notif || bond 799 drivers/net/bonding/bond_main.c bond->send_peer_notif % bond 800 drivers/net/bonding/bond_main.c max(1, bond->params.peer_notif_delay) != 0 || bond 801 drivers/net/bonding/bond_main.c !netif_carrier_ok(bond->dev) || bond 823 drivers/net/bonding/bond_main.c void bond_change_active_slave(struct bonding *bond, struct slave *new_active) bond 829 drivers/net/bonding/bond_main.c old_active = rtnl_dereference(bond->curr_active_slave); bond 838 drivers/net/bonding/bond_main.c if (bond_uses_primary(bond)) { bond 839 drivers/net/bonding/bond_main.c slave_info(bond->dev, new_active->dev, "making interface the new active one %d ms earlier\n", bond 840 drivers/net/bonding/bond_main.c (bond->params.updelay - new_active->delay) * bond->params.miimon); bond 847 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) bond 850 drivers/net/bonding/bond_main.c if (bond_is_lb(bond)) bond 851 drivers/net/bonding/bond_main.c bond_alb_handle_link_change(bond, new_active, BOND_LINK_UP); bond 853 drivers/net/bonding/bond_main.c if (bond_uses_primary(bond)) { bond 854 drivers/net/bonding/bond_main.c slave_info(bond->dev, new_active->dev, "making interface the new active one\n"); bond 859 drivers/net/bonding/bond_main.c if (bond_uses_primary(bond)) bond 860 drivers/net/bonding/bond_main.c bond_hw_addr_swap(bond, new_active, old_active); bond 862 drivers/net/bonding/bond_main.c if (bond_is_lb(bond)) { bond 863 drivers/net/bonding/bond_main.c bond_alb_handle_active_change(bond, new_active); bond 871 drivers/net/bonding/bond_main.c rcu_assign_pointer(bond->curr_active_slave, new_active); bond 874 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) { bond 885 drivers/net/bonding/bond_main.c if (bond->params.fail_over_mac) bond 886 drivers/net/bonding/bond_main.c bond_do_fail_over_mac(bond, new_active, bond 889 drivers/net/bonding/bond_main.c if (netif_running(bond->dev)) { bond 890 drivers/net/bonding/bond_main.c bond->send_peer_notif = bond 891 drivers/net/bonding/bond_main.c bond->params.num_peer_notif * bond 892 drivers/net/bonding/bond_main.c max(1, bond->params.peer_notif_delay); bond 894 drivers/net/bonding/bond_main.c bond_should_notify_peers(bond); bond 897 drivers/net/bonding/bond_main.c call_netdevice_notifiers(NETDEV_BONDING_FAILOVER, bond->dev); bond 899 drivers/net/bonding/bond_main.c bond->send_peer_notif--; bond 901 drivers/net/bonding/bond_main.c bond->dev); bond 911 drivers/net/bonding/bond_main.c if (netif_running(bond->dev) && (bond->params.resend_igmp > 0) && bond 912 drivers/net/bonding/bond_main.c ((bond_uses_primary(bond) && new_active) || bond 913 drivers/net/bonding/bond_main.c BOND_MODE(bond) == BOND_MODE_ROUNDROBIN)) { bond 914 drivers/net/bonding/bond_main.c bond->igmp_retrans = bond->params.resend_igmp; bond 915 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->mcast_work, 1); bond 930 drivers/net/bonding/bond_main.c void bond_select_active_slave(struct bonding *bond) bond 937 drivers/net/bonding/bond_main.c best_slave = bond_find_best_slave(bond); bond 938 drivers/net/bonding/bond_main.c if (best_slave != rtnl_dereference(bond->curr_active_slave)) { bond 939 drivers/net/bonding/bond_main.c bond_change_active_slave(bond, best_slave); bond 940 drivers/net/bonding/bond_main.c rv = bond_set_carrier(bond); bond 944 drivers/net/bonding/bond_main.c if (netif_carrier_ok(bond->dev)) bond 945 drivers/net/bonding/bond_main.c netdev_info(bond->dev, "active interface up!\n"); bond 947 drivers/net/bonding/bond_main.c netdev_info(bond->dev, "now running without any active interface!\n"); bond 985 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 990 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) bond 991 drivers/net/bonding/bond_main.c if (bond_3ad_get_active_agg_info(bond, &ad_info)) bond 994 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 998 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 1013 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 1017 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) bond 1024 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(dev); bond 1029 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 1056 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(dev); bond 1066 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 1086 drivers/net/bonding/bond_main.c static void bond_compute_features(struct bonding *bond) bond 1093 drivers/net/bonding/bond_main.c struct net_device *bond_dev = bond->dev; bond 1100 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) bond 1105 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 1162 drivers/net/bonding/bond_main.c struct bonding *bond) bond 1165 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_ALB && bond 1178 drivers/net/bonding/bond_main.c struct bonding *bond; bond 1190 drivers/net/bonding/bond_main.c bond = slave->bond; bond 1192 drivers/net/bonding/bond_main.c recv_probe = READ_ONCE(bond->recv_probe); bond 1194 drivers/net/bonding/bond_main.c ret = recv_probe(skb, bond, slave); bond 1212 drivers/net/bonding/bond_main.c if (bond_should_deliver_exact_match(skb, slave, bond)) { bond 1218 drivers/net/bonding/bond_main.c skb->dev = bond->dev; bond 1220 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_ALB && bond 1221 drivers/net/bonding/bond_main.c bond->dev->priv_flags & IFF_BRIDGE_PORT && bond 1229 drivers/net/bonding/bond_main.c bond_hw_addr_copy(eth_hdr(skb)->h_dest, bond->dev->dev_addr, bond 1230 drivers/net/bonding/bond_main.c bond->dev->addr_len); bond 1236 drivers/net/bonding/bond_main.c static enum netdev_lag_tx_type bond_lag_tx_type(struct bonding *bond) bond 1238 drivers/net/bonding/bond_main.c switch (BOND_MODE(bond)) { bond 1253 drivers/net/bonding/bond_main.c static enum netdev_lag_hash bond_lag_hash_type(struct bonding *bond, bond 1259 drivers/net/bonding/bond_main.c switch (bond->params.xmit_policy) { bond 1275 drivers/net/bonding/bond_main.c static int bond_master_upper_dev_link(struct bonding *bond, struct slave *slave, bond 1281 drivers/net/bonding/bond_main.c type = bond_lag_tx_type(bond); bond 1283 drivers/net/bonding/bond_main.c lag_upper_info.hash_type = bond_lag_hash_type(bond, type); bond 1285 drivers/net/bonding/bond_main.c return netdev_master_upper_dev_link(slave->dev, bond->dev, slave, bond 1289 drivers/net/bonding/bond_main.c static void bond_upper_dev_unlink(struct bonding *bond, struct slave *slave) bond 1291 drivers/net/bonding/bond_main.c netdev_upper_dev_unlink(slave->dev, bond->dev); bond 1295 drivers/net/bonding/bond_main.c static struct slave *bond_alloc_slave(struct bonding *bond) bond 1303 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 1318 drivers/net/bonding/bond_main.c struct bonding *bond = bond_get_bond_by_slave(slave); bond 1321 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) bond 1327 drivers/net/bonding/bond_main.c static void bond_fill_ifbond(struct bonding *bond, struct ifbond *info) bond 1329 drivers/net/bonding/bond_main.c info->bond_mode = BOND_MODE(bond); bond 1330 drivers/net/bonding/bond_main.c info->miimon = bond->params.miimon; bond 1331 drivers/net/bonding/bond_main.c info->num_slaves = bond->slave_cnt; bond 1351 drivers/net/bonding/bond_main.c bond_fill_ifbond(slave->bond, &binfo.master); bond 1355 drivers/net/bonding/bond_main.c queue_delayed_work(slave->bond->wq, &slave->notify_work, 1); bond 1361 drivers/net/bonding/bond_main.c queue_delayed_work(slave->bond->wq, &slave->notify_work, 0); bond 1378 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 1385 drivers/net/bonding/bond_main.c if (!bond->params.use_carrier && bond 1438 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) { bond 1473 drivers/net/bonding/bond_main.c BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) { bond 1484 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP && bond 1485 drivers/net/bonding/bond_main.c bond->params.fail_over_mac != BOND_FOM_ACTIVE) { bond 1486 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) { bond 1487 drivers/net/bonding/bond_main.c bond->params.fail_over_mac = BOND_FOM_ACTIVE; bond 1503 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond) && bond 1504 drivers/net/bonding/bond_main.c bond->dev->addr_assign_type == NET_ADDR_RANDOM) { bond 1505 drivers/net/bonding/bond_main.c res = bond_set_dev_addr(bond->dev, slave_dev); bond 1510 drivers/net/bonding/bond_main.c new_slave = bond_alloc_slave(bond); bond 1516 drivers/net/bonding/bond_main.c new_slave->bond = bond; bond 1525 drivers/net/bonding/bond_main.c res = dev_set_mtu(slave_dev, bond->dev->mtu); bond 1538 drivers/net/bonding/bond_main.c if (!bond->params.fail_over_mac || bond 1539 drivers/net/bonding/bond_main.c BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) { bond 1567 drivers/net/bonding/bond_main.c if (bond_is_lb(bond)) { bond 1571 drivers/net/bonding/bond_main.c res = bond_alb_init_slave(bond, new_slave); bond 1582 drivers/net/bonding/bond_main.c prev_slave = bond_last_slave(bond); bond 1588 drivers/net/bonding/bond_main.c bond_needs_speed_duplex(bond)) bond 1592 drivers/net/bonding/bond_main.c (msecs_to_jiffies(bond->params.arp_interval) + 1); bond 1596 drivers/net/bonding/bond_main.c if (bond->params.miimon && !bond->params.use_carrier) { bond 1597 drivers/net/bonding/bond_main.c link_reporting = bond_check_dev_link(bond, slave_dev, 1); bond 1599 drivers/net/bonding/bond_main.c if ((link_reporting == -1) && !bond->params.arp_interval) { bond 1617 drivers/net/bonding/bond_main.c if (bond->params.miimon) { bond 1618 drivers/net/bonding/bond_main.c if (bond_check_dev_link(bond, slave_dev, 0) == BMSR_LSTATUS) { bond 1619 drivers/net/bonding/bond_main.c if (bond->params.updelay) { bond 1623 drivers/net/bonding/bond_main.c new_slave->delay = bond->params.updelay; bond 1633 drivers/net/bonding/bond_main.c } else if (bond->params.arp_interval) { bond 1649 drivers/net/bonding/bond_main.c if (bond_uses_primary(bond) && bond->params.primary[0]) { bond 1651 drivers/net/bonding/bond_main.c if (strcmp(bond->params.primary, new_slave->dev->name) == 0) { bond 1652 drivers/net/bonding/bond_main.c rcu_assign_pointer(bond->primary_slave, new_slave); bond 1653 drivers/net/bonding/bond_main.c bond->force_primary = true; bond 1657 drivers/net/bonding/bond_main.c switch (BOND_MODE(bond)) { bond 1674 drivers/net/bonding/bond_main.c bond_3ad_initialize(bond, 1000/AD_TIMER_INTERVAL); bond 1697 drivers/net/bonding/bond_main.c if (!rcu_access_pointer(bond->curr_active_slave) && bond 1699 drivers/net/bonding/bond_main.c rcu_assign_pointer(bond->curr_active_slave, new_slave); bond 1705 drivers/net/bonding/bond_main.c if (bond->dev->npinfo) { bond 1724 drivers/net/bonding/bond_main.c res = bond_master_upper_dev_link(bond, new_slave, extack); bond 1739 drivers/net/bonding/bond_main.c if (!bond_uses_primary(bond)) { bond 1762 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 1770 drivers/net/bonding/bond_main.c bond->slave_cnt++; bond 1771 drivers/net/bonding/bond_main.c bond_compute_features(bond); bond 1772 drivers/net/bonding/bond_main.c bond_set_carrier(bond); bond 1774 drivers/net/bonding/bond_main.c if (bond_uses_primary(bond)) { bond 1776 drivers/net/bonding/bond_main.c bond_select_active_slave(bond); bond 1780 drivers/net/bonding/bond_main.c if (bond_mode_can_use_xmit_hash(bond)) bond 1781 drivers/net/bonding/bond_main.c bond_update_slave_arr(bond, NULL); bond 1797 drivers/net/bonding/bond_main.c bond_upper_dev_unlink(bond, new_slave); bond 1804 drivers/net/bonding/bond_main.c if (rcu_access_pointer(bond->primary_slave) == new_slave) bond 1805 drivers/net/bonding/bond_main.c RCU_INIT_POINTER(bond->primary_slave, NULL); bond 1806 drivers/net/bonding/bond_main.c if (rcu_access_pointer(bond->curr_active_slave) == new_slave) { bond 1808 drivers/net/bonding/bond_main.c bond_change_active_slave(bond, NULL); bond 1809 drivers/net/bonding/bond_main.c bond_select_active_slave(bond); bond 1823 drivers/net/bonding/bond_main.c if (!bond->params.fail_over_mac || bond 1824 drivers/net/bonding/bond_main.c BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) { bond 1843 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) { bond 1873 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 1888 drivers/net/bonding/bond_main.c slave = bond_get_slave_by_dev(bond, slave_dev); bond 1901 drivers/net/bonding/bond_main.c bond_get_stats(bond->dev, &bond->bond_stats); bond 1903 drivers/net/bonding/bond_main.c bond_upper_dev_unlink(bond, slave); bond 1909 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) bond 1912 drivers/net/bonding/bond_main.c if (bond_mode_can_use_xmit_hash(bond)) bond 1913 drivers/net/bonding/bond_main.c bond_update_slave_arr(bond, slave); bond 1918 drivers/net/bonding/bond_main.c oldcurrent = rcu_access_pointer(bond->curr_active_slave); bond 1920 drivers/net/bonding/bond_main.c RCU_INIT_POINTER(bond->current_arp_slave, NULL); bond 1922 drivers/net/bonding/bond_main.c if (!all && (!bond->params.fail_over_mac || bond 1923 drivers/net/bonding/bond_main.c BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP)) { bond 1925 drivers/net/bonding/bond_main.c bond_has_slaves(bond)) bond 1930 drivers/net/bonding/bond_main.c if (rtnl_dereference(bond->primary_slave) == slave) bond 1931 drivers/net/bonding/bond_main.c RCU_INIT_POINTER(bond->primary_slave, NULL); bond 1934 drivers/net/bonding/bond_main.c bond_change_active_slave(bond, NULL); bond 1936 drivers/net/bonding/bond_main.c if (bond_is_lb(bond)) { bond 1942 drivers/net/bonding/bond_main.c bond_alb_deinit_slave(bond, slave); bond 1946 drivers/net/bonding/bond_main.c RCU_INIT_POINTER(bond->curr_active_slave, NULL); bond 1952 drivers/net/bonding/bond_main.c bond_select_active_slave(bond); bond 1955 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) { bond 1956 drivers/net/bonding/bond_main.c bond_set_carrier(bond); bond 1962 drivers/net/bonding/bond_main.c bond->slave_cnt--; bond 1964 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) { bond 1965 drivers/net/bonding/bond_main.c call_netdevice_notifiers(NETDEV_CHANGEADDR, bond->dev); bond 1966 drivers/net/bonding/bond_main.c call_netdevice_notifiers(NETDEV_RELEASE, bond->dev); bond 1969 drivers/net/bonding/bond_main.c bond_compute_features(bond); bond 1979 drivers/net/bonding/bond_main.c if (!bond_uses_primary(bond)) { bond 2002 drivers/net/bonding/bond_main.c if (bond->params.fail_over_mac != BOND_FOM_ACTIVE || bond 2003 drivers/net/bonding/bond_main.c BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) { bond 2036 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 2040 drivers/net/bonding/bond_main.c if (ret == 0 && !bond_has_slaves(bond)) { bond 2043 drivers/net/bonding/bond_main.c bond_remove_proc_entry(bond); bond 2051 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 2052 drivers/net/bonding/bond_main.c bond_fill_ifbond(bond, info); bond 2057 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 2062 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 2076 drivers/net/bonding/bond_main.c static int bond_miimon_inspect(struct bonding *bond) bond 2083 drivers/net/bonding/bond_main.c ignore_updelay = !rcu_dereference(bond->curr_active_slave); bond 2085 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 2088 drivers/net/bonding/bond_main.c link_state = bond_check_dev_link(bond, slave->dev, 0); bond 2097 drivers/net/bonding/bond_main.c slave->delay = bond->params.downdelay; bond 2099 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "link status down for %sinterface, disabling it in %d ms\n", bond 2100 drivers/net/bonding/bond_main.c (BOND_MODE(bond) == bond 2104 drivers/net/bonding/bond_main.c bond->params.downdelay * bond->params.miimon); bond 2112 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "link status up again after %d ms\n", bond 2113 drivers/net/bonding/bond_main.c (bond->params.downdelay - slave->delay) * bond 2114 drivers/net/bonding/bond_main.c bond->params.miimon); bond 2134 drivers/net/bonding/bond_main.c slave->delay = bond->params.updelay; bond 2137 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "link status up, enabling it in %d ms\n", bond 2139 drivers/net/bonding/bond_main.c bond->params.updelay * bond 2140 drivers/net/bonding/bond_main.c bond->params.miimon); bond 2146 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "link status down again after %d ms\n", bond 2147 drivers/net/bonding/bond_main.c (bond->params.updelay - slave->delay) * bond 2148 drivers/net/bonding/bond_main.c bond->params.miimon); bond 2171 drivers/net/bonding/bond_main.c static void bond_miimon_link_change(struct bonding *bond, bond 2175 drivers/net/bonding/bond_main.c switch (BOND_MODE(bond)) { bond 2181 drivers/net/bonding/bond_main.c bond_alb_handle_link_change(bond, slave, link); bond 2184 drivers/net/bonding/bond_main.c bond_update_slave_arr(bond, NULL); bond 2189 drivers/net/bonding/bond_main.c static void bond_miimon_commit(struct bonding *bond) bond 2194 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 2203 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD && bond 2210 drivers/net/bonding/bond_main.c bond_needs_speed_duplex(bond)) { bond 2213 drivers/net/bonding/bond_main.c slave_warn(bond->dev, slave->dev, bond 2221 drivers/net/bonding/bond_main.c primary = rtnl_dereference(bond->primary_slave); bond 2222 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 2225 drivers/net/bonding/bond_main.c } else if (BOND_MODE(bond) != BOND_MODE_ACTIVEBACKUP) { bond 2230 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "link status definitely up, %u Mbps %s duplex\n", bond 2234 drivers/net/bonding/bond_main.c bond_miimon_link_change(bond, slave, BOND_LINK_UP); bond 2236 drivers/net/bonding/bond_main.c if (!bond->curr_active_slave || slave == primary) bond 2248 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP || bond 2249 drivers/net/bonding/bond_main.c BOND_MODE(bond) == BOND_MODE_8023AD) bond 2253 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "link status definitely down, disabling slave\n"); bond 2255 drivers/net/bonding/bond_main.c bond_miimon_link_change(bond, slave, BOND_LINK_DOWN); bond 2257 drivers/net/bonding/bond_main.c if (slave == rcu_access_pointer(bond->curr_active_slave)) bond 2263 drivers/net/bonding/bond_main.c slave_err(bond->dev, slave->dev, "invalid new link %d on slave\n", bond 2272 drivers/net/bonding/bond_main.c bond_select_active_slave(bond); bond 2276 drivers/net/bonding/bond_main.c bond_set_carrier(bond); bond 2288 drivers/net/bonding/bond_main.c struct bonding *bond = container_of(work, struct bonding, bond 2296 drivers/net/bonding/bond_main.c delay = msecs_to_jiffies(bond->params.miimon); bond 2298 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) bond 2302 drivers/net/bonding/bond_main.c should_notify_peers = bond_should_notify_peers(bond); bond 2303 drivers/net/bonding/bond_main.c commit = !!bond_miimon_inspect(bond); bond 2304 drivers/net/bonding/bond_main.c if (bond->send_peer_notif) { bond 2307 drivers/net/bonding/bond_main.c bond->send_peer_notif--; bond 2322 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 2325 drivers/net/bonding/bond_main.c bond_miimon_commit(bond); bond 2331 drivers/net/bonding/bond_main.c if (bond->params.miimon) bond 2332 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->mii_work, delay); bond 2337 drivers/net/bonding/bond_main.c call_netdevice_notifiers(NETDEV_NOTIFY_PEERS, bond->dev); bond 2349 drivers/net/bonding/bond_main.c static bool bond_has_this_ip(struct bonding *bond, __be32 ip) bond 2353 drivers/net/bonding/bond_main.c if (ip == bond_confirm_addr(bond->dev, 0, ip)) bond 2357 drivers/net/bonding/bond_main.c if (netdev_walk_all_upper_dev_rcu(bond->dev, bond_upper_dev_walk, &ip)) bond 2374 drivers/net/bonding/bond_main.c struct net_device *bond_dev = slave->bond->dev; bond 2462 drivers/net/bonding/bond_main.c static void bond_arp_send_all(struct bonding *bond, struct slave *slave) bond 2466 drivers/net/bonding/bond_main.c __be32 *targets = bond->params.arp_targets, addr; bond 2470 drivers/net/bonding/bond_main.c slave_dbg(bond->dev, slave->dev, "%s: target %pI4\n", bond 2475 drivers/net/bonding/bond_main.c rt = ip_route_output(dev_net(bond->dev), targets[i], 0, bond 2481 drivers/net/bonding/bond_main.c if (bond->params.arp_validate) bond 2483 drivers/net/bonding/bond_main.c bond->dev->name, bond 2491 drivers/net/bonding/bond_main.c if (rt->dst.dev == bond->dev) bond 2495 drivers/net/bonding/bond_main.c tags = bond_verify_device_path(bond->dev, rt->dst.dev, 0); bond 2502 drivers/net/bonding/bond_main.c slave_dbg(bond->dev, slave->dev, "no path to arp_ip_target %pI4 via rt.dev %s\n", bond 2516 drivers/net/bonding/bond_main.c static void bond_validate_arp(struct bonding *bond, struct slave *slave, __be32 sip, __be32 tip) bond 2520 drivers/net/bonding/bond_main.c if (!sip || !bond_has_this_ip(bond, tip)) { bond 2521 drivers/net/bonding/bond_main.c slave_dbg(bond->dev, slave->dev, "%s: sip %pI4 tip %pI4 not found\n", bond 2526 drivers/net/bonding/bond_main.c i = bond_get_targets_ip(bond->params.arp_targets, sip); bond 2528 drivers/net/bonding/bond_main.c slave_dbg(bond->dev, slave->dev, "%s: sip %pI4 not found in targets\n", bond 2536 drivers/net/bonding/bond_main.c int bond_arp_rcv(const struct sk_buff *skb, struct bonding *bond, bond 2546 drivers/net/bonding/bond_main.c if (!slave_do_arp_validate(bond, slave)) { bond 2547 drivers/net/bonding/bond_main.c if ((slave_do_arp_validate_only(bond) && is_arp) || bond 2548 drivers/net/bonding/bond_main.c !slave_do_arp_validate_only(bond)) bond 2555 drivers/net/bonding/bond_main.c alen = arp_hdr_len(bond->dev); bond 2557 drivers/net/bonding/bond_main.c slave_dbg(bond->dev, slave->dev, "%s: skb->dev %s\n", bond 2568 drivers/net/bonding/bond_main.c if (arp->ar_hln != bond->dev->addr_len || bond 2577 drivers/net/bonding/bond_main.c arp_ptr += bond->dev->addr_len; bond 2579 drivers/net/bonding/bond_main.c arp_ptr += 4 + bond->dev->addr_len; bond 2582 drivers/net/bonding/bond_main.c slave_dbg(bond->dev, slave->dev, "%s: %s/%d av %d sv %d sip %pI4 tip %pI4\n", bond 2584 drivers/net/bonding/bond_main.c bond->params.arp_validate, slave_do_arp_validate(bond, slave), bond 2587 drivers/net/bonding/bond_main.c curr_active_slave = rcu_dereference(bond->curr_active_slave); bond 2588 drivers/net/bonding/bond_main.c curr_arp_slave = rcu_dereference(bond->current_arp_slave); bond 2614 drivers/net/bonding/bond_main.c bond_validate_arp(bond, slave, sip, tip); bond 2616 drivers/net/bonding/bond_main.c time_after(slave_last_rx(bond, curr_active_slave), bond 2618 drivers/net/bonding/bond_main.c bond_validate_arp(bond, slave, tip, sip); bond 2620 drivers/net/bonding/bond_main.c bond_time_in_interval(bond, bond 2622 drivers/net/bonding/bond_main.c bond_validate_arp(bond, slave, sip, tip); bond 2634 drivers/net/bonding/bond_main.c static bool bond_time_in_interval(struct bonding *bond, unsigned long last_act, bond 2637 drivers/net/bonding/bond_main.c int delta_in_ticks = msecs_to_jiffies(bond->params.arp_interval); bond 2650 drivers/net/bonding/bond_main.c static void bond_loadbalance_arp_mon(struct bonding *bond) bond 2656 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) bond 2661 drivers/net/bonding/bond_main.c oldcurrent = rcu_dereference(bond->curr_active_slave); bond 2670 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 2676 drivers/net/bonding/bond_main.c if (bond_time_in_interval(bond, trans_start, 1) && bond 2677 drivers/net/bonding/bond_main.c bond_time_in_interval(bond, slave->last_rx, 1)) { bond 2688 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "link status definitely up\n"); bond 2691 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "interface is now up\n"); bond 2701 drivers/net/bonding/bond_main.c if (!bond_time_in_interval(bond, trans_start, 2) || bond 2702 drivers/net/bonding/bond_main.c !bond_time_in_interval(bond, slave->last_rx, 2)) { bond 2710 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "interface is now down\n"); bond 2725 drivers/net/bonding/bond_main.c bond_arp_send_all(bond, slave); bond 2734 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 2740 drivers/net/bonding/bond_main.c bond_slave_state_change(bond); bond 2741 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_XOR) bond 2742 drivers/net/bonding/bond_main.c bond_update_slave_arr(bond, NULL); bond 2746 drivers/net/bonding/bond_main.c bond_select_active_slave(bond); bond 2753 drivers/net/bonding/bond_main.c if (bond->params.arp_interval) bond 2754 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->arp_work, bond 2755 drivers/net/bonding/bond_main.c msecs_to_jiffies(bond->params.arp_interval)); bond 2765 drivers/net/bonding/bond_main.c static int bond_ab_arp_inspect(struct bonding *bond) bond 2772 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 2774 drivers/net/bonding/bond_main.c last_rx = slave_last_rx(bond, slave); bond 2777 drivers/net/bonding/bond_main.c if (bond_time_in_interval(bond, last_rx, 1)) { bond 2788 drivers/net/bonding/bond_main.c if (bond_time_in_interval(bond, slave->last_link_up, 2)) bond 2804 drivers/net/bonding/bond_main.c !rcu_access_pointer(bond->current_arp_slave) && bond 2805 drivers/net/bonding/bond_main.c !bond_time_in_interval(bond, last_rx, 3)) { bond 2817 drivers/net/bonding/bond_main.c (!bond_time_in_interval(bond, trans_start, 2) || bond 2818 drivers/net/bonding/bond_main.c !bond_time_in_interval(bond, last_rx, 2))) { bond 2832 drivers/net/bonding/bond_main.c static void bond_ab_arp_commit(struct bonding *bond) bond 2838 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 2845 drivers/net/bonding/bond_main.c if (rtnl_dereference(bond->curr_active_slave) != slave || bond 2846 drivers/net/bonding/bond_main.c (!rtnl_dereference(bond->curr_active_slave) && bond 2847 drivers/net/bonding/bond_main.c bond_time_in_interval(bond, trans_start, 1))) { bond 2850 drivers/net/bonding/bond_main.c current_arp_slave = rtnl_dereference(bond->current_arp_slave); bond 2857 drivers/net/bonding/bond_main.c RCU_INIT_POINTER(bond->current_arp_slave, NULL); bond 2860 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "link status definitely up\n"); bond 2862 drivers/net/bonding/bond_main.c if (!rtnl_dereference(bond->curr_active_slave) || bond 2863 drivers/net/bonding/bond_main.c slave == rtnl_dereference(bond->primary_slave)) bond 2879 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "link status definitely down, disabling slave\n"); bond 2881 drivers/net/bonding/bond_main.c if (slave == rtnl_dereference(bond->curr_active_slave)) { bond 2882 drivers/net/bonding/bond_main.c RCU_INIT_POINTER(bond->current_arp_slave, NULL); bond 2889 drivers/net/bonding/bond_main.c slave_err(bond->dev, slave->dev, bond 2897 drivers/net/bonding/bond_main.c bond_select_active_slave(bond); bond 2901 drivers/net/bonding/bond_main.c bond_set_carrier(bond); bond 2908 drivers/net/bonding/bond_main.c static bool bond_ab_arp_probe(struct bonding *bond) bond 2911 drivers/net/bonding/bond_main.c *curr_arp_slave = rcu_dereference(bond->current_arp_slave), bond 2912 drivers/net/bonding/bond_main.c *curr_active_slave = rcu_dereference(bond->curr_active_slave); bond 2918 drivers/net/bonding/bond_main.c netdev_info(bond->dev, "PROBE: c_arp %s && cas %s BAD\n", bond 2923 drivers/net/bonding/bond_main.c bond_arp_send_all(bond, curr_active_slave); bond 2933 drivers/net/bonding/bond_main.c curr_arp_slave = bond_first_slave_rcu(bond); bond 2940 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 2962 drivers/net/bonding/bond_main.c slave_info(bond->dev, slave->dev, "backup interface is now down\n"); bond 2977 drivers/net/bonding/bond_main.c bond_arp_send_all(bond, new_slave); bond 2979 drivers/net/bonding/bond_main.c rcu_assign_pointer(bond->current_arp_slave, new_slave); bond 2982 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 2991 drivers/net/bonding/bond_main.c static void bond_activebackup_arp_mon(struct bonding *bond) bond 2997 drivers/net/bonding/bond_main.c delta_in_ticks = msecs_to_jiffies(bond->params.arp_interval); bond 2999 drivers/net/bonding/bond_main.c if (!bond_has_slaves(bond)) bond 3004 drivers/net/bonding/bond_main.c should_notify_peers = bond_should_notify_peers(bond); bond 3006 drivers/net/bonding/bond_main.c if (bond_ab_arp_inspect(bond)) { bond 3016 drivers/net/bonding/bond_main.c bond_ab_arp_commit(bond); bond 3022 drivers/net/bonding/bond_main.c should_notify_rtnl = bond_ab_arp_probe(bond); bond 3026 drivers/net/bonding/bond_main.c if (bond->params.arp_interval) bond 3027 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->arp_work, delta_in_ticks); bond 3035 drivers/net/bonding/bond_main.c bond->dev); bond 3037 drivers/net/bonding/bond_main.c bond_slave_state_notify(bond); bond 3038 drivers/net/bonding/bond_main.c bond_slave_link_notify(bond); bond 3047 drivers/net/bonding/bond_main.c struct bonding *bond = container_of(work, struct bonding, bond 3050 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) bond 3051 drivers/net/bonding/bond_main.c bond_activebackup_arp_mon(bond); bond 3053 drivers/net/bonding/bond_main.c bond_loadbalance_arp_mon(bond); bond 3059 drivers/net/bonding/bond_main.c static int bond_event_changename(struct bonding *bond) bond 3061 drivers/net/bonding/bond_main.c bond_remove_proc_entry(bond); bond 3062 drivers/net/bonding/bond_main.c bond_create_proc_entry(bond); bond 3064 drivers/net/bonding/bond_main.c bond_debug_reregister(bond); bond 3096 drivers/net/bonding/bond_main.c struct bonding *bond; bond 3108 drivers/net/bonding/bond_main.c bond_dev = slave->bond->dev; bond 3109 drivers/net/bonding/bond_main.c bond = slave->bond; bond 3110 drivers/net/bonding/bond_main.c primary = rtnl_dereference(bond->primary_slave); bond 3131 drivers/net/bonding/bond_main.c BOND_MODE(bond) == BOND_MODE_8023AD) { bond 3138 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) bond 3150 drivers/net/bonding/bond_main.c if (bond_mode_can_use_xmit_hash(bond)) bond 3151 drivers/net/bonding/bond_main.c bond_update_slave_arr(bond, NULL); bond 3168 drivers/net/bonding/bond_main.c if (!bond_uses_primary(bond) || bond 3169 drivers/net/bonding/bond_main.c !bond->params.primary[0]) bond 3174 drivers/net/bonding/bond_main.c RCU_INIT_POINTER(bond->primary_slave, NULL); bond 3175 drivers/net/bonding/bond_main.c } else if (!strcmp(slave_dev->name, bond->params.primary)) { bond 3177 drivers/net/bonding/bond_main.c rcu_assign_pointer(bond->primary_slave, slave); bond 3182 drivers/net/bonding/bond_main.c netdev_info(bond->dev, "Primary slave changed to %s, reselecting active slave\n", bond 3186 drivers/net/bonding/bond_main.c bond_select_active_slave(bond); bond 3190 drivers/net/bonding/bond_main.c bond_compute_features(bond); bond 3194 drivers/net/bonding/bond_main.c call_netdevice_notifiers(event, slave->bond->dev); bond 3253 drivers/net/bonding/bond_main.c static bool bond_flow_dissect(struct bonding *bond, struct sk_buff *skb, bond 3260 drivers/net/bonding/bond_main.c if (bond->params.xmit_policy > BOND_XMIT_POLICY_LAYER23) bond 3283 drivers/net/bonding/bond_main.c if (bond->params.xmit_policy == BOND_XMIT_POLICY_LAYER34 && proto >= 0) bond 3297 drivers/net/bonding/bond_main.c u32 bond_xmit_hash(struct bonding *bond, struct sk_buff *skb) bond 3302 drivers/net/bonding/bond_main.c if (bond->params.xmit_policy == BOND_XMIT_POLICY_ENCAP34 && bond 3306 drivers/net/bonding/bond_main.c if (bond->params.xmit_policy == BOND_XMIT_POLICY_LAYER2 || bond 3307 drivers/net/bonding/bond_main.c !bond_flow_dissect(bond, skb, &flow)) bond 3310 drivers/net/bonding/bond_main.c if (bond->params.xmit_policy == BOND_XMIT_POLICY_LAYER23 || bond 3311 drivers/net/bonding/bond_main.c bond->params.xmit_policy == BOND_XMIT_POLICY_ENCAP23) bond 3325 drivers/net/bonding/bond_main.c void bond_work_init_all(struct bonding *bond) bond 3327 drivers/net/bonding/bond_main.c INIT_DELAYED_WORK(&bond->mcast_work, bond 3329 drivers/net/bonding/bond_main.c INIT_DELAYED_WORK(&bond->alb_work, bond_alb_monitor); bond 3330 drivers/net/bonding/bond_main.c INIT_DELAYED_WORK(&bond->mii_work, bond_mii_monitor); bond 3331 drivers/net/bonding/bond_main.c INIT_DELAYED_WORK(&bond->arp_work, bond_arp_monitor); bond 3332 drivers/net/bonding/bond_main.c INIT_DELAYED_WORK(&bond->ad_work, bond_3ad_state_machine_handler); bond 3333 drivers/net/bonding/bond_main.c INIT_DELAYED_WORK(&bond->slave_arr_work, bond_slave_arr_handler); bond 3336 drivers/net/bonding/bond_main.c static void bond_work_cancel_all(struct bonding *bond) bond 3338 drivers/net/bonding/bond_main.c cancel_delayed_work_sync(&bond->mii_work); bond 3339 drivers/net/bonding/bond_main.c cancel_delayed_work_sync(&bond->arp_work); bond 3340 drivers/net/bonding/bond_main.c cancel_delayed_work_sync(&bond->alb_work); bond 3341 drivers/net/bonding/bond_main.c cancel_delayed_work_sync(&bond->ad_work); bond 3342 drivers/net/bonding/bond_main.c cancel_delayed_work_sync(&bond->mcast_work); bond 3343 drivers/net/bonding/bond_main.c cancel_delayed_work_sync(&bond->slave_arr_work); bond 3348 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3353 drivers/net/bonding/bond_main.c if (bond_has_slaves(bond)) { bond 3354 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 3355 drivers/net/bonding/bond_main.c if (bond_uses_primary(bond) && bond 3356 drivers/net/bonding/bond_main.c slave != rcu_access_pointer(bond->curr_active_slave)) { bond 3359 drivers/net/bonding/bond_main.c } else if (BOND_MODE(bond) != BOND_MODE_8023AD) { bond 3366 drivers/net/bonding/bond_main.c if (bond_is_lb(bond)) { bond 3370 drivers/net/bonding/bond_main.c if (bond_alb_initialize(bond, (BOND_MODE(bond) == BOND_MODE_ALB))) bond 3372 drivers/net/bonding/bond_main.c if (bond->params.tlb_dynamic_lb || BOND_MODE(bond) == BOND_MODE_ALB) bond 3373 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->alb_work, 0); bond 3376 drivers/net/bonding/bond_main.c if (bond->params.miimon) /* link check interval, in milliseconds. */ bond 3377 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->mii_work, 0); bond 3379 drivers/net/bonding/bond_main.c if (bond->params.arp_interval) { /* arp interval, in milliseconds. */ bond 3380 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->arp_work, 0); bond 3381 drivers/net/bonding/bond_main.c bond->recv_probe = bond_arp_rcv; bond 3384 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 3385 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->ad_work, 0); bond 3387 drivers/net/bonding/bond_main.c bond->recv_probe = bond_3ad_lacpdu_recv; bond 3388 drivers/net/bonding/bond_main.c bond_3ad_initiate_agg_selection(bond, 1); bond 3391 drivers/net/bonding/bond_main.c if (bond_mode_can_use_xmit_hash(bond)) bond 3392 drivers/net/bonding/bond_main.c bond_update_slave_arr(bond, NULL); bond 3399 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3401 drivers/net/bonding/bond_main.c bond_work_cancel_all(bond); bond 3402 drivers/net/bonding/bond_main.c bond->send_peer_notif = 0; bond 3403 drivers/net/bonding/bond_main.c if (bond_is_lb(bond)) bond 3404 drivers/net/bonding/bond_main.c bond_alb_deinitialize(bond); bond 3405 drivers/net/bonding/bond_main.c bond->recv_probe = NULL; bond 3483 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3495 drivers/net/bonding/bond_main.c spin_lock_nested(&bond->stats_lock, nest_level); bond 3496 drivers/net/bonding/bond_main.c memcpy(stats, &bond->bond_stats, sizeof(*stats)); bond 3498 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 3508 drivers/net/bonding/bond_main.c memcpy(&bond->bond_stats, stats, sizeof(*stats)); bond 3509 drivers/net/bonding/bond_main.c spin_unlock(&bond->stats_lock); bond 3515 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3546 drivers/net/bonding/bond_main.c if (netif_carrier_ok(bond->dev)) bond 3610 drivers/net/bonding/bond_main.c res = __bond_opt_set_notify(bond, BOND_OPT_ACTIVE_SLAVE, bond 3622 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3625 drivers/net/bonding/bond_main.c bond_set_promiscuity(bond, bond 3629 drivers/net/bonding/bond_main.c bond_set_allmulti(bond, bond 3635 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3640 drivers/net/bonding/bond_main.c if (bond_uses_primary(bond)) { bond 3641 drivers/net/bonding/bond_main.c slave = rcu_dereference(bond->curr_active_slave); bond 3647 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 3657 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(n->dev); bond 3664 drivers/net/bonding/bond_main.c slave = bond_first_slave_rcu(bond); bond 3713 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3718 drivers/net/bonding/bond_main.c netdev_dbg(bond_dev, "bond=%p, new_mtu=%d\n", bond, new_mtu); bond 3720 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 3747 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, rollback_slave, iter) { bond 3770 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3776 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_ALB) bond 3780 drivers/net/bonding/bond_main.c netdev_dbg(bond_dev, "%s: bond=%p\n", __func__, bond); bond 3785 drivers/net/bonding/bond_main.c if (bond->params.fail_over_mac && bond 3786 drivers/net/bonding/bond_main.c BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP) bond 3792 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 3818 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, rollback_slave, iter) { bond 3845 drivers/net/bonding/bond_main.c static void bond_xmit_slave_id(struct bonding *bond, struct sk_buff *skb, int slave_id) bond 3852 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 3855 drivers/net/bonding/bond_main.c bond_dev_queue_xmit(bond, skb, slave->dev); bond 3863 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 3867 drivers/net/bonding/bond_main.c bond_dev_queue_xmit(bond, skb, slave->dev); bond 3872 drivers/net/bonding/bond_main.c bond_tx_drop(bond->dev, skb); bond 3883 drivers/net/bonding/bond_main.c static u32 bond_rr_gen_slave_id(struct bonding *bond) bond 3887 drivers/net/bonding/bond_main.c int packets_per_slave = bond->params.packets_per_slave; bond 3894 drivers/net/bonding/bond_main.c slave_id = bond->rr_tx_counter; bond 3898 drivers/net/bonding/bond_main.c bond->params.reciprocal_packets_per_slave; bond 3899 drivers/net/bonding/bond_main.c slave_id = reciprocal_divide(bond->rr_tx_counter, bond 3903 drivers/net/bonding/bond_main.c bond->rr_tx_counter++; bond 3911 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3931 drivers/net/bonding/bond_main.c slave = rcu_dereference(bond->curr_active_slave); bond 3933 drivers/net/bonding/bond_main.c bond_dev_queue_xmit(bond, skb, slave->dev); bond 3935 drivers/net/bonding/bond_main.c bond_xmit_slave_id(bond, skb, 0); bond 3941 drivers/net/bonding/bond_main.c slave_cnt = READ_ONCE(bond->slave_cnt); bond 3943 drivers/net/bonding/bond_main.c slave_id = bond_rr_gen_slave_id(bond); bond 3944 drivers/net/bonding/bond_main.c bond_xmit_slave_id(bond, skb, slave_id % slave_cnt); bond 3957 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 3960 drivers/net/bonding/bond_main.c slave = rcu_dereference(bond->curr_active_slave); bond 3962 drivers/net/bonding/bond_main.c bond_dev_queue_xmit(bond, skb, slave->dev); bond 3973 drivers/net/bonding/bond_main.c void bond_slave_arr_work_rearm(struct bonding *bond, unsigned long delay) bond 3975 drivers/net/bonding/bond_main.c queue_delayed_work(bond->wq, &bond->slave_arr_work, delay); bond 3981 drivers/net/bonding/bond_main.c struct bonding *bond = container_of(work, struct bonding, bond 3988 drivers/net/bonding/bond_main.c ret = bond_update_slave_arr(bond, NULL); bond 3997 drivers/net/bonding/bond_main.c bond_slave_arr_work_rearm(bond, 1); bond 4008 drivers/net/bonding/bond_main.c int bond_update_slave_arr(struct bonding *bond, struct slave *skipslave) bond 4017 drivers/net/bonding/bond_main.c WARN_ON(lockdep_is_held(&bond->mode_lock)); bond 4020 drivers/net/bonding/bond_main.c new_arr = kzalloc(offsetof(struct bond_up_slave, arr[bond->slave_cnt]), bond 4027 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 4030 drivers/net/bonding/bond_main.c if (bond_3ad_get_active_agg_info(bond, &ad_info)) { bond 4036 drivers/net/bonding/bond_main.c old_arr = rtnl_dereference(bond->slave_arr); bond 4038 drivers/net/bonding/bond_main.c RCU_INIT_POINTER(bond->slave_arr, NULL); bond 4045 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 4046 drivers/net/bonding/bond_main.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 4058 drivers/net/bonding/bond_main.c slave_dbg(bond->dev, slave->dev, "Adding slave to tx hash array[%d]\n", bond 4064 drivers/net/bonding/bond_main.c old_arr = rtnl_dereference(bond->slave_arr); bond 4065 drivers/net/bonding/bond_main.c rcu_assign_pointer(bond->slave_arr, new_arr); bond 4080 drivers/net/bonding/bond_main.c old_arr = rtnl_dereference(bond->slave_arr); bond 4100 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(dev); bond 4105 drivers/net/bonding/bond_main.c slaves = rcu_dereference(bond->slave_arr); bond 4108 drivers/net/bonding/bond_main.c slave = slaves->arr[bond_xmit_hash(bond, skb) % count]; bond 4109 drivers/net/bonding/bond_main.c bond_dev_queue_xmit(bond, skb, slave->dev); bond 4121 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 4125 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 4126 drivers/net/bonding/bond_main.c if (bond_is_last_slave(bond, slave)) bond 4136 drivers/net/bonding/bond_main.c bond_dev_queue_xmit(bond, skb2, slave->dev); bond 4140 drivers/net/bonding/bond_main.c bond_dev_queue_xmit(bond, skb, slave->dev); bond 4150 drivers/net/bonding/bond_main.c static inline int bond_slave_override(struct bonding *bond, bond 4160 drivers/net/bonding/bond_main.c bond_for_each_slave_rcu(bond, slave, iter) { bond 4164 drivers/net/bonding/bond_main.c bond_dev_queue_xmit(bond, skb, slave->dev); bond 4199 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(dev); bond 4201 drivers/net/bonding/bond_main.c if (bond_should_override_tx_queue(bond) && bond 4202 drivers/net/bonding/bond_main.c !bond_slave_override(bond, skb)) bond 4205 drivers/net/bonding/bond_main.c switch (BOND_MODE(bond)) { bond 4221 drivers/net/bonding/bond_main.c netdev_err(dev, "Unknown bonding mode %d\n", BOND_MODE(bond)); bond 4230 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(dev); bond 4240 drivers/net/bonding/bond_main.c if (bond_has_slaves(bond)) bond 4252 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 4265 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) { bond 4327 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 4328 drivers/net/bonding/bond_main.c if (bond->wq) bond 4329 drivers/net/bonding/bond_main.c destroy_workqueue(bond->wq); bond 4334 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 4336 drivers/net/bonding/bond_main.c spin_lock_init(&bond->mode_lock); bond 4337 drivers/net/bonding/bond_main.c bond->params = bonding_defaults; bond 4340 drivers/net/bonding/bond_main.c bond->dev = bond_dev; bond 4385 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 4393 drivers/net/bonding/bond_main.c bond_for_each_slave(bond, slave, iter) bond 4397 drivers/net/bonding/bond_main.c arr = rtnl_dereference(bond->slave_arr); bond 4399 drivers/net/bonding/bond_main.c RCU_INIT_POINTER(bond->slave_arr, NULL); bond 4403 drivers/net/bonding/bond_main.c list_del(&bond->bond_list); bond 4405 drivers/net/bonding/bond_main.c lockdep_unregister_key(&bond->stats_lock_key); bond 4406 drivers/net/bonding/bond_main.c bond_debug_unregister(bond); bond 4800 drivers/net/bonding/bond_main.c struct bonding *bond = netdev_priv(bond_dev); bond 4805 drivers/net/bonding/bond_main.c bond->wq = alloc_ordered_workqueue(bond_dev->name, WQ_MEM_RECLAIM); bond 4806 drivers/net/bonding/bond_main.c if (!bond->wq) bond 4809 drivers/net/bonding/bond_main.c spin_lock_init(&bond->stats_lock); bond 4810 drivers/net/bonding/bond_main.c lockdep_register_key(&bond->stats_lock_key); bond 4811 drivers/net/bonding/bond_main.c lockdep_set_class(&bond->stats_lock, &bond->stats_lock_key); bond 4813 drivers/net/bonding/bond_main.c list_add_tail(&bond->bond_list, &bn->dev_list); bond 4815 drivers/net/bonding/bond_main.c bond_prepare_sysfs_group(bond); bond 4817 drivers/net/bonding/bond_main.c bond_debug_register(bond); bond 4840 drivers/net/bonding/bond_main.c struct bonding *bond; bond 4859 drivers/net/bonding/bond_main.c bond = netdev_priv(bond_dev); bond 4860 drivers/net/bonding/bond_main.c bond_info = &(BOND_ALB_INFO(bond)); bond 4870 drivers/net/bonding/bond_main.c bond_work_init_all(bond); bond 4894 drivers/net/bonding/bond_main.c struct bonding *bond, *tmp_bond; bond 4901 drivers/net/bonding/bond_main.c list_for_each_entry_safe(bond, tmp_bond, &bn->dev_list, bond_list) bond 4902 drivers/net/bonding/bond_main.c unregister_netdevice_queue(bond->dev, &list); bond 55 drivers/net/bonding/bond_netlink.c if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) { bond 135 drivers/net/bonding/bond_netlink.c struct bonding *bond = netdev_priv(bond_dev); bond 150 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_QUEUE_ID, &newval); bond 162 drivers/net/bonding/bond_netlink.c struct bonding *bond = netdev_priv(bond_dev); bond 174 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_MODE, &newval); bond 191 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_ACTIVE_SLAVE, &newval); bond 199 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_MIIMON, &newval); bond 207 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_UPDELAY, &newval); bond 215 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_DOWNDELAY, &newval); bond 223 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_PEER_NOTIF_DELAY, &newval); bond 231 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_USE_CARRIER, &newval); bond 239 drivers/net/bonding/bond_netlink.c netdev_err(bond->dev, "ARP monitoring cannot be used with MII monitoring\n"); bond 244 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_ARP_INTERVAL, &newval); bond 252 drivers/net/bonding/bond_netlink.c bond_option_arp_ip_targets_clear(bond); bond 262 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_ARP_TARGETS, bond 268 drivers/net/bonding/bond_netlink.c if (i == 0 && bond->params.arp_interval) bond 269 drivers/net/bonding/bond_netlink.c netdev_warn(bond->dev, "Removing last arp target with arp_interval on\n"); bond 277 drivers/net/bonding/bond_netlink.c netdev_err(bond->dev, "ARP validating cannot be used with MII monitoring\n"); bond 282 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_ARP_VALIDATE, &newval); bond 291 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_ARP_ALL_TARGETS, &newval); bond 305 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_PRIMARY, &newval); bond 314 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_PRIMARY_RESELECT, &newval); bond 323 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_FAIL_OVER_MAC, &newval); bond 332 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_XMIT_HASH, &newval); bond 341 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_RESEND_IGMP, &newval); bond 350 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_NUM_PEER_NOTIF, &newval); bond 359 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_ALL_SLAVES_ACTIVE, &newval); bond 368 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_MINLINKS, &newval); bond 377 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_LP_INTERVAL, &newval); bond 386 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_PACKETS_PER_SLAVE, &newval); bond 395 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_LACP_RATE, &newval); bond 404 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_AD_SELECT, &newval); bond 413 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_AD_ACTOR_SYS_PRIO, &newval); bond 422 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_AD_USER_PORT_KEY, &newval); bond 432 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_AD_ACTOR_SYSTEM, &newval); bond 440 drivers/net/bonding/bond_netlink.c err = __bond_opt_set(bond, BOND_OPT_TLB_DYNAMIC_LB, &newval); bond 462 drivers/net/bonding/bond_netlink.c struct bonding *bond = netdev_priv(bond_dev); bond 464 drivers/net/bonding/bond_netlink.c bond_work_init_all(bond); bond 510 drivers/net/bonding/bond_netlink.c static int bond_option_active_slave_get_ifindex(struct bonding *bond) bond 516 drivers/net/bonding/bond_netlink.c slave = bond_option_active_slave_get_rcu(bond); bond 525 drivers/net/bonding/bond_netlink.c struct bonding *bond = netdev_priv(bond_dev); bond 531 drivers/net/bonding/bond_netlink.c if (nla_put_u8(skb, IFLA_BOND_MODE, BOND_MODE(bond))) bond 534 drivers/net/bonding/bond_netlink.c ifindex = bond_option_active_slave_get_ifindex(bond); bond 538 drivers/net/bonding/bond_netlink.c if (nla_put_u32(skb, IFLA_BOND_MIIMON, bond->params.miimon)) bond 542 drivers/net/bonding/bond_netlink.c bond->params.updelay * bond->params.miimon)) bond 546 drivers/net/bonding/bond_netlink.c bond->params.downdelay * bond->params.miimon)) bond 550 drivers/net/bonding/bond_netlink.c bond->params.peer_notif_delay * bond->params.miimon)) bond 553 drivers/net/bonding/bond_netlink.c if (nla_put_u8(skb, IFLA_BOND_USE_CARRIER, bond->params.use_carrier)) bond 556 drivers/net/bonding/bond_netlink.c if (nla_put_u32(skb, IFLA_BOND_ARP_INTERVAL, bond->params.arp_interval)) bond 565 drivers/net/bonding/bond_netlink.c if (bond->params.arp_targets[i]) { bond 566 drivers/net/bonding/bond_netlink.c if (nla_put_be32(skb, i, bond->params.arp_targets[i])) bond 577 drivers/net/bonding/bond_netlink.c if (nla_put_u32(skb, IFLA_BOND_ARP_VALIDATE, bond->params.arp_validate)) bond 581 drivers/net/bonding/bond_netlink.c bond->params.arp_all_targets)) bond 584 drivers/net/bonding/bond_netlink.c primary = rtnl_dereference(bond->primary_slave); bond 590 drivers/net/bonding/bond_netlink.c bond->params.primary_reselect)) bond 594 drivers/net/bonding/bond_netlink.c bond->params.fail_over_mac)) bond 598 drivers/net/bonding/bond_netlink.c bond->params.xmit_policy)) bond 602 drivers/net/bonding/bond_netlink.c bond->params.resend_igmp)) bond 606 drivers/net/bonding/bond_netlink.c bond->params.num_peer_notif)) bond 610 drivers/net/bonding/bond_netlink.c bond->params.all_slaves_active)) bond 614 drivers/net/bonding/bond_netlink.c bond->params.min_links)) bond 618 drivers/net/bonding/bond_netlink.c bond->params.lp_interval)) bond 621 drivers/net/bonding/bond_netlink.c packets_per_slave = bond->params.packets_per_slave; bond 627 drivers/net/bonding/bond_netlink.c bond->params.lacp_fast)) bond 631 drivers/net/bonding/bond_netlink.c bond->params.ad_select)) bond 635 drivers/net/bonding/bond_netlink.c bond->params.tlb_dynamic_lb)) bond 638 drivers/net/bonding/bond_netlink.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 643 drivers/net/bonding/bond_netlink.c bond->params.ad_actor_sys_prio)) bond 647 drivers/net/bonding/bond_netlink.c bond->params.ad_user_port_key)) bond 651 drivers/net/bonding/bond_netlink.c ETH_ALEN, &bond->params.ad_actor_system)) bond 654 drivers/net/bonding/bond_netlink.c if (!bond_3ad_get_active_agg_info(bond, &info)) { bond 708 drivers/net/bonding/bond_netlink.c struct bonding *bond; bond 712 drivers/net/bonding/bond_netlink.c bond = netdev_priv(dev); bond 718 drivers/net/bonding/bond_netlink.c bond = slave->bond; bond 727 drivers/net/bonding/bond_netlink.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 733 drivers/net/bonding/bond_netlink.c stats = &BOND_AD_INFO(bond).stats; bond 19 drivers/net/bonding/bond_options.c static int bond_option_active_slave_set(struct bonding *bond, bond 21 drivers/net/bonding/bond_options.c static int bond_option_miimon_set(struct bonding *bond, bond 23 drivers/net/bonding/bond_options.c static int bond_option_updelay_set(struct bonding *bond, bond 25 drivers/net/bonding/bond_options.c static int bond_option_downdelay_set(struct bonding *bond, bond 27 drivers/net/bonding/bond_options.c static int bond_option_peer_notif_delay_set(struct bonding *bond, bond 29 drivers/net/bonding/bond_options.c static int bond_option_use_carrier_set(struct bonding *bond, bond 31 drivers/net/bonding/bond_options.c static int bond_option_arp_interval_set(struct bonding *bond, bond 33 drivers/net/bonding/bond_options.c static int bond_option_arp_ip_target_add(struct bonding *bond, __be32 target); bond 34 drivers/net/bonding/bond_options.c static int bond_option_arp_ip_target_rem(struct bonding *bond, __be32 target); bond 35 drivers/net/bonding/bond_options.c static int bond_option_arp_ip_targets_set(struct bonding *bond, bond 37 drivers/net/bonding/bond_options.c static int bond_option_arp_validate_set(struct bonding *bond, bond 39 drivers/net/bonding/bond_options.c static int bond_option_arp_all_targets_set(struct bonding *bond, bond 41 drivers/net/bonding/bond_options.c static int bond_option_primary_set(struct bonding *bond, bond 43 drivers/net/bonding/bond_options.c static int bond_option_primary_reselect_set(struct bonding *bond, bond 45 drivers/net/bonding/bond_options.c static int bond_option_fail_over_mac_set(struct bonding *bond, bond 47 drivers/net/bonding/bond_options.c static int bond_option_xmit_hash_policy_set(struct bonding *bond, bond 49 drivers/net/bonding/bond_options.c static int bond_option_resend_igmp_set(struct bonding *bond, bond 51 drivers/net/bonding/bond_options.c static int bond_option_num_peer_notif_set(struct bonding *bond, bond 53 drivers/net/bonding/bond_options.c static int bond_option_all_slaves_active_set(struct bonding *bond, bond 55 drivers/net/bonding/bond_options.c static int bond_option_min_links_set(struct bonding *bond, bond 57 drivers/net/bonding/bond_options.c static int bond_option_lp_interval_set(struct bonding *bond, bond 59 drivers/net/bonding/bond_options.c static int bond_option_pps_set(struct bonding *bond, bond 61 drivers/net/bonding/bond_options.c static int bond_option_lacp_rate_set(struct bonding *bond, bond 63 drivers/net/bonding/bond_options.c static int bond_option_ad_select_set(struct bonding *bond, bond 65 drivers/net/bonding/bond_options.c static int bond_option_queue_id_set(struct bonding *bond, bond 67 drivers/net/bonding/bond_options.c static int bond_option_mode_set(struct bonding *bond, bond 69 drivers/net/bonding/bond_options.c static int bond_option_slaves_set(struct bonding *bond, bond 71 drivers/net/bonding/bond_options.c static int bond_option_tlb_dynamic_lb_set(struct bonding *bond, bond 73 drivers/net/bonding/bond_options.c static int bond_option_ad_actor_sys_prio_set(struct bonding *bond, bond 75 drivers/net/bonding/bond_options.c static int bond_option_ad_actor_system_set(struct bonding *bond, bond 77 drivers/net/bonding/bond_options.c static int bond_option_ad_user_port_key_set(struct bonding *bond, bond 574 drivers/net/bonding/bond_options.c static int bond_opt_check_deps(struct bonding *bond, bond 577 drivers/net/bonding/bond_options.c struct bond_params *params = &bond->params; bond 581 drivers/net/bonding/bond_options.c if ((opt->flags & BOND_OPTFLAG_NOSLAVES) && bond_has_slaves(bond)) bond 583 drivers/net/bonding/bond_options.c if ((opt->flags & BOND_OPTFLAG_IFDOWN) && (bond->dev->flags & IFF_UP)) bond 589 drivers/net/bonding/bond_options.c static void bond_opt_dep_print(struct bonding *bond, bond 595 drivers/net/bonding/bond_options.c params = &bond->params; bond 598 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "option %s: mode dependency failed, not supported in mode %s(%llu)\n", bond 602 drivers/net/bonding/bond_options.c static void bond_opt_error_interpret(struct bonding *bond, bond 617 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "option %s: invalid value (%s)\n", bond 620 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "option %s: invalid value (%llu)\n", bond 628 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "option %s: allowed values %llu - %llu\n", bond 632 drivers/net/bonding/bond_options.c bond_opt_dep_print(bond, opt); bond 635 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "option %s: unable to set because the bond device has slaves\n", bond 639 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "option %s: unable to set because the bond device is up\n", bond 657 drivers/net/bonding/bond_options.c int __bond_opt_set(struct bonding *bond, bond 669 drivers/net/bonding/bond_options.c ret = bond_opt_check_deps(bond, opt); bond 677 drivers/net/bonding/bond_options.c ret = opt->set(bond, retval); bond 680 drivers/net/bonding/bond_options.c bond_opt_error_interpret(bond, opt, ret, val); bond 695 drivers/net/bonding/bond_options.c int __bond_opt_set_notify(struct bonding *bond, bond 702 drivers/net/bonding/bond_options.c ret = __bond_opt_set(bond, option, val); bond 704 drivers/net/bonding/bond_options.c if (!ret && (bond->dev->reg_state == NETREG_REGISTERED)) bond 705 drivers/net/bonding/bond_options.c call_netdevice_notifiers(NETDEV_CHANGEINFODATA, bond->dev); bond 719 drivers/net/bonding/bond_options.c int bond_opt_tryset_rtnl(struct bonding *bond, unsigned int option, char *buf) bond 727 drivers/net/bonding/bond_options.c ret = __bond_opt_set_notify(bond, option, &optval); bond 748 drivers/net/bonding/bond_options.c static int bond_option_mode_set(struct bonding *bond, bond 752 drivers/net/bonding/bond_options.c if (bond->params.arp_interval) { bond 753 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "%s mode is incompatible with arp monitoring, start mii monitoring\n", bond 756 drivers/net/bonding/bond_options.c bond->params.arp_interval = 0; bond 759 drivers/net/bonding/bond_options.c if (!bond->params.miimon) { bond 761 drivers/net/bonding/bond_options.c bond->params.miimon = BOND_DEFAULT_MIIMON; bond 762 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting MII monitoring interval to %d\n", bond 763 drivers/net/bonding/bond_options.c bond->params.miimon); bond 768 drivers/net/bonding/bond_options.c bond->params.tlb_dynamic_lb = 1; bond 771 drivers/net/bonding/bond_options.c bond->params.arp_validate = BOND_ARP_VALIDATE_NONE; bond 772 drivers/net/bonding/bond_options.c bond->params.mode = newval->value; bond 777 drivers/net/bonding/bond_options.c static int bond_option_active_slave_set(struct bonding *bond, bond 788 drivers/net/bonding/bond_options.c slave_dev = __dev_get_by_name(dev_net(bond->dev), ifname); bond 795 drivers/net/bonding/bond_options.c slave_err(bond->dev, slave_dev, "Device is not bonding slave\n"); bond 799 drivers/net/bonding/bond_options.c if (bond->dev != netdev_master_upper_dev_get(slave_dev)) { bond 800 drivers/net/bonding/bond_options.c slave_err(bond->dev, slave_dev, "Device is not our slave\n"); bond 808 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Clearing current active slave\n"); bond 809 drivers/net/bonding/bond_options.c RCU_INIT_POINTER(bond->curr_active_slave, NULL); bond 810 drivers/net/bonding/bond_options.c bond_select_active_slave(bond); bond 812 drivers/net/bonding/bond_options.c struct slave *old_active = rtnl_dereference(bond->curr_active_slave); bond 819 drivers/net/bonding/bond_options.c slave_dbg(bond->dev, new_active->dev, "is already the current active slave\n"); bond 823 drivers/net/bonding/bond_options.c slave_dbg(bond->dev, new_active->dev, "Setting as active slave\n"); bond 824 drivers/net/bonding/bond_options.c bond_change_active_slave(bond, new_active); bond 826 drivers/net/bonding/bond_options.c slave_err(bond->dev, new_active->dev, "Could not set as active slave; either %s is down or the link is down\n", bond 841 drivers/net/bonding/bond_options.c static int bond_option_miimon_set(struct bonding *bond, bond 844 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting MII monitoring interval to %llu\n", bond 846 drivers/net/bonding/bond_options.c bond->params.miimon = newval->value; bond 847 drivers/net/bonding/bond_options.c if (bond->params.updelay) bond 848 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Note: Updating updelay (to %d) since it is a multiple of the miimon value\n", bond 849 drivers/net/bonding/bond_options.c bond->params.updelay * bond->params.miimon); bond 850 drivers/net/bonding/bond_options.c if (bond->params.downdelay) bond 851 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Note: Updating downdelay (to %d) since it is a multiple of the miimon value\n", bond 852 drivers/net/bonding/bond_options.c bond->params.downdelay * bond->params.miimon); bond 853 drivers/net/bonding/bond_options.c if (bond->params.peer_notif_delay) bond 854 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Note: Updating peer_notif_delay (to %d) since it is a multiple of the miimon value\n", bond 855 drivers/net/bonding/bond_options.c bond->params.peer_notif_delay * bond->params.miimon); bond 856 drivers/net/bonding/bond_options.c if (newval->value && bond->params.arp_interval) { bond 857 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "MII monitoring cannot be used with ARP monitoring - disabling ARP monitoring...\n"); bond 858 drivers/net/bonding/bond_options.c bond->params.arp_interval = 0; bond 859 drivers/net/bonding/bond_options.c if (bond->params.arp_validate) bond 860 drivers/net/bonding/bond_options.c bond->params.arp_validate = BOND_ARP_VALIDATE_NONE; bond 862 drivers/net/bonding/bond_options.c if (bond->dev->flags & IFF_UP) { bond 869 drivers/net/bonding/bond_options.c cancel_delayed_work_sync(&bond->mii_work); bond 871 drivers/net/bonding/bond_options.c cancel_delayed_work_sync(&bond->arp_work); bond 872 drivers/net/bonding/bond_options.c queue_delayed_work(bond->wq, &bond->mii_work, 0); bond 883 drivers/net/bonding/bond_options.c static int _bond_option_delay_set(struct bonding *bond, bond 890 drivers/net/bonding/bond_options.c if (!bond->params.miimon) { bond 891 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "Unable to set %s as MII monitoring is disabled\n", bond 895 drivers/net/bonding/bond_options.c if ((value % bond->params.miimon) != 0) { bond 896 drivers/net/bonding/bond_options.c netdev_warn(bond->dev, bond 899 drivers/net/bonding/bond_options.c value, bond->params.miimon, bond 900 drivers/net/bonding/bond_options.c (value / bond->params.miimon) * bond 901 drivers/net/bonding/bond_options.c bond->params.miimon); bond 903 drivers/net/bonding/bond_options.c *target = value / bond->params.miimon; bond 904 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting %s to %d\n", bond 906 drivers/net/bonding/bond_options.c *target * bond->params.miimon); bond 911 drivers/net/bonding/bond_options.c static int bond_option_updelay_set(struct bonding *bond, bond 914 drivers/net/bonding/bond_options.c return _bond_option_delay_set(bond, newval, "up delay", bond 915 drivers/net/bonding/bond_options.c &bond->params.updelay); bond 918 drivers/net/bonding/bond_options.c static int bond_option_downdelay_set(struct bonding *bond, bond 921 drivers/net/bonding/bond_options.c return _bond_option_delay_set(bond, newval, "down delay", bond 922 drivers/net/bonding/bond_options.c &bond->params.downdelay); bond 925 drivers/net/bonding/bond_options.c static int bond_option_peer_notif_delay_set(struct bonding *bond, bond 928 drivers/net/bonding/bond_options.c int ret = _bond_option_delay_set(bond, newval, bond 930 drivers/net/bonding/bond_options.c &bond->params.peer_notif_delay); bond 934 drivers/net/bonding/bond_options.c static int bond_option_use_carrier_set(struct bonding *bond, bond 937 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting use_carrier to %llu\n", bond 939 drivers/net/bonding/bond_options.c bond->params.use_carrier = newval->value; bond 948 drivers/net/bonding/bond_options.c static int bond_option_arp_interval_set(struct bonding *bond, bond 951 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting ARP monitoring interval to %llu\n", bond 953 drivers/net/bonding/bond_options.c bond->params.arp_interval = newval->value; bond 955 drivers/net/bonding/bond_options.c if (bond->params.miimon) { bond 956 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "ARP monitoring cannot be used with MII monitoring. Disabling MII monitoring\n"); bond 957 drivers/net/bonding/bond_options.c bond->params.miimon = 0; bond 959 drivers/net/bonding/bond_options.c if (!bond->params.arp_targets[0]) bond 960 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "ARP monitoring has been set up, but no ARP targets have been specified\n"); bond 962 drivers/net/bonding/bond_options.c if (bond->dev->flags & IFF_UP) { bond 969 drivers/net/bonding/bond_options.c if (bond->params.arp_validate) bond 970 drivers/net/bonding/bond_options.c bond->recv_probe = NULL; bond 971 drivers/net/bonding/bond_options.c cancel_delayed_work_sync(&bond->arp_work); bond 974 drivers/net/bonding/bond_options.c bond->recv_probe = bond_arp_rcv; bond 975 drivers/net/bonding/bond_options.c cancel_delayed_work_sync(&bond->mii_work); bond 976 drivers/net/bonding/bond_options.c queue_delayed_work(bond->wq, &bond->arp_work, 0); bond 983 drivers/net/bonding/bond_options.c static void _bond_options_arp_ip_target_set(struct bonding *bond, int slot, bond 987 drivers/net/bonding/bond_options.c __be32 *targets = bond->params.arp_targets; bond 992 drivers/net/bonding/bond_options.c bond_for_each_slave(bond, slave, iter) bond 998 drivers/net/bonding/bond_options.c static int _bond_option_arp_ip_target_add(struct bonding *bond, __be32 target) bond 1000 drivers/net/bonding/bond_options.c __be32 *targets = bond->params.arp_targets; bond 1004 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "invalid ARP target %pI4 specified for addition\n", bond 1010 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "ARP target %pI4 is already present\n", bond 1017 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "ARP target table is full!\n"); bond 1021 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Adding ARP target %pI4\n", &target); bond 1023 drivers/net/bonding/bond_options.c _bond_options_arp_ip_target_set(bond, ind, target, jiffies); bond 1028 drivers/net/bonding/bond_options.c static int bond_option_arp_ip_target_add(struct bonding *bond, __be32 target) bond 1030 drivers/net/bonding/bond_options.c return _bond_option_arp_ip_target_add(bond, target); bond 1033 drivers/net/bonding/bond_options.c static int bond_option_arp_ip_target_rem(struct bonding *bond, __be32 target) bond 1035 drivers/net/bonding/bond_options.c __be32 *targets = bond->params.arp_targets; bond 1042 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "invalid ARP target %pI4 specified for removal\n", bond 1049 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "unable to remove nonexistent ARP target %pI4\n", bond 1054 drivers/net/bonding/bond_options.c if (ind == 0 && !targets[1] && bond->params.arp_interval) bond 1055 drivers/net/bonding/bond_options.c netdev_warn(bond->dev, "Removing last arp target with arp_interval on\n"); bond 1057 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Removing ARP target %pI4\n", &target); bond 1059 drivers/net/bonding/bond_options.c bond_for_each_slave(bond, slave, iter) { bond 1072 drivers/net/bonding/bond_options.c void bond_option_arp_ip_targets_clear(struct bonding *bond) bond 1077 drivers/net/bonding/bond_options.c _bond_options_arp_ip_target_set(bond, i, 0, 0); bond 1080 drivers/net/bonding/bond_options.c static int bond_option_arp_ip_targets_set(struct bonding *bond, bond 1088 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "invalid ARP target %pI4 specified\n", bond 1093 drivers/net/bonding/bond_options.c ret = bond_option_arp_ip_target_add(bond, target); bond 1095 drivers/net/bonding/bond_options.c ret = bond_option_arp_ip_target_rem(bond, target); bond 1097 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "no command found in arp_ip_targets file - use +<addr> or -<addr>\n"); bond 1100 drivers/net/bonding/bond_options.c ret = bond_option_arp_ip_target_add(bond, target); bond 1106 drivers/net/bonding/bond_options.c static int bond_option_arp_validate_set(struct bonding *bond, bond 1109 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting arp_validate to %s (%llu)\n", bond 1111 drivers/net/bonding/bond_options.c bond->params.arp_validate = newval->value; bond 1116 drivers/net/bonding/bond_options.c static int bond_option_arp_all_targets_set(struct bonding *bond, bond 1119 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting arp_all_targets to %s (%llu)\n", bond 1121 drivers/net/bonding/bond_options.c bond->params.arp_all_targets = newval->value; bond 1126 drivers/net/bonding/bond_options.c static int bond_option_primary_set(struct bonding *bond, bond 1140 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting primary slave to None\n"); bond 1141 drivers/net/bonding/bond_options.c RCU_INIT_POINTER(bond->primary_slave, NULL); bond 1142 drivers/net/bonding/bond_options.c memset(bond->params.primary, 0, sizeof(bond->params.primary)); bond 1143 drivers/net/bonding/bond_options.c bond_select_active_slave(bond); bond 1147 drivers/net/bonding/bond_options.c bond_for_each_slave(bond, slave, iter) { bond 1149 drivers/net/bonding/bond_options.c slave_dbg(bond->dev, slave->dev, "Setting as primary slave\n"); bond 1150 drivers/net/bonding/bond_options.c rcu_assign_pointer(bond->primary_slave, slave); bond 1151 drivers/net/bonding/bond_options.c strcpy(bond->params.primary, slave->dev->name); bond 1152 drivers/net/bonding/bond_options.c bond->force_primary = true; bond 1153 drivers/net/bonding/bond_options.c bond_select_active_slave(bond); bond 1158 drivers/net/bonding/bond_options.c if (rtnl_dereference(bond->primary_slave)) { bond 1159 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting primary slave to None\n"); bond 1160 drivers/net/bonding/bond_options.c RCU_INIT_POINTER(bond->primary_slave, NULL); bond 1161 drivers/net/bonding/bond_options.c bond_select_active_slave(bond); bond 1163 drivers/net/bonding/bond_options.c strncpy(bond->params.primary, primary, IFNAMSIZ); bond 1164 drivers/net/bonding/bond_options.c bond->params.primary[IFNAMSIZ - 1] = 0; bond 1166 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Recording %s as primary, but it has not been enslaved yet\n", bond 1175 drivers/net/bonding/bond_options.c static int bond_option_primary_reselect_set(struct bonding *bond, bond 1178 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting primary_reselect to %s (%llu)\n", bond 1180 drivers/net/bonding/bond_options.c bond->params.primary_reselect = newval->value; bond 1183 drivers/net/bonding/bond_options.c bond_select_active_slave(bond); bond 1189 drivers/net/bonding/bond_options.c static int bond_option_fail_over_mac_set(struct bonding *bond, bond 1192 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting fail_over_mac to %s (%llu)\n", bond 1194 drivers/net/bonding/bond_options.c bond->params.fail_over_mac = newval->value; bond 1199 drivers/net/bonding/bond_options.c static int bond_option_xmit_hash_policy_set(struct bonding *bond, bond 1202 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting xmit hash policy to %s (%llu)\n", bond 1204 drivers/net/bonding/bond_options.c bond->params.xmit_policy = newval->value; bond 1209 drivers/net/bonding/bond_options.c static int bond_option_resend_igmp_set(struct bonding *bond, bond 1212 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting resend_igmp to %llu\n", bond 1214 drivers/net/bonding/bond_options.c bond->params.resend_igmp = newval->value; bond 1219 drivers/net/bonding/bond_options.c static int bond_option_num_peer_notif_set(struct bonding *bond, bond 1222 drivers/net/bonding/bond_options.c bond->params.num_peer_notif = newval->value; bond 1227 drivers/net/bonding/bond_options.c static int bond_option_all_slaves_active_set(struct bonding *bond, bond 1233 drivers/net/bonding/bond_options.c if (newval->value == bond->params.all_slaves_active) bond 1235 drivers/net/bonding/bond_options.c bond->params.all_slaves_active = newval->value; bond 1236 drivers/net/bonding/bond_options.c bond_for_each_slave(bond, slave, iter) { bond 1248 drivers/net/bonding/bond_options.c static int bond_option_min_links_set(struct bonding *bond, bond 1251 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting min links value to %llu\n", bond 1253 drivers/net/bonding/bond_options.c bond->params.min_links = newval->value; bond 1254 drivers/net/bonding/bond_options.c bond_set_carrier(bond); bond 1259 drivers/net/bonding/bond_options.c static int bond_option_lp_interval_set(struct bonding *bond, bond 1262 drivers/net/bonding/bond_options.c bond->params.lp_interval = newval->value; bond 1267 drivers/net/bonding/bond_options.c static int bond_option_pps_set(struct bonding *bond, bond 1270 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting packets per slave to %llu\n", bond 1272 drivers/net/bonding/bond_options.c bond->params.packets_per_slave = newval->value; bond 1274 drivers/net/bonding/bond_options.c bond->params.reciprocal_packets_per_slave = bond 1280 drivers/net/bonding/bond_options.c bond->params.reciprocal_packets_per_slave = bond 1287 drivers/net/bonding/bond_options.c static int bond_option_lacp_rate_set(struct bonding *bond, bond 1290 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting LACP rate to %s (%llu)\n", bond 1292 drivers/net/bonding/bond_options.c bond->params.lacp_fast = newval->value; bond 1293 drivers/net/bonding/bond_options.c bond_3ad_update_lacp_rate(bond); bond 1298 drivers/net/bonding/bond_options.c static int bond_option_ad_select_set(struct bonding *bond, bond 1301 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting ad_select to %s (%llu)\n", bond 1303 drivers/net/bonding/bond_options.c bond->params.ad_select = newval->value; bond 1308 drivers/net/bonding/bond_options.c static int bond_option_queue_id_set(struct bonding *bond, bond 1332 drivers/net/bonding/bond_options.c qid > bond->dev->real_num_tx_queues) bond 1336 drivers/net/bonding/bond_options.c sdev = __dev_get_by_name(dev_net(bond->dev), newval->string); bond 1342 drivers/net/bonding/bond_options.c bond_for_each_slave(bond, slave, iter) { bond 1363 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "invalid input for queue_id set\n"); bond 1369 drivers/net/bonding/bond_options.c static int bond_option_slaves_set(struct bonding *bond, bond 1384 drivers/net/bonding/bond_options.c dev = __dev_get_by_name(dev_net(bond->dev), ifname); bond 1386 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "interface %s does not exist!\n", bond 1394 drivers/net/bonding/bond_options.c slave_dbg(bond->dev, dev, "Enslaving interface\n"); bond 1395 drivers/net/bonding/bond_options.c ret = bond_enslave(bond->dev, dev, NULL); bond 1399 drivers/net/bonding/bond_options.c slave_dbg(bond->dev, dev, "Releasing interface\n"); bond 1400 drivers/net/bonding/bond_options.c ret = bond_release(bond->dev, dev); bond 1414 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "no command found in slaves file - use +ifname or -ifname\n"); bond 1419 drivers/net/bonding/bond_options.c static int bond_option_tlb_dynamic_lb_set(struct bonding *bond, bond 1422 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting dynamic-lb to %s (%llu)\n", bond 1424 drivers/net/bonding/bond_options.c bond->params.tlb_dynamic_lb = newval->value; bond 1429 drivers/net/bonding/bond_options.c static int bond_option_ad_actor_sys_prio_set(struct bonding *bond, bond 1432 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting ad_actor_sys_prio to %llu\n", bond 1435 drivers/net/bonding/bond_options.c bond->params.ad_actor_sys_prio = newval->value; bond 1436 drivers/net/bonding/bond_options.c bond_3ad_update_ad_actor_settings(bond); bond 1441 drivers/net/bonding/bond_options.c static int bond_option_ad_actor_system_set(struct bonding *bond, bond 1458 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting ad_actor_system to %pM\n", mac); bond 1459 drivers/net/bonding/bond_options.c ether_addr_copy(bond->params.ad_actor_system, mac); bond 1460 drivers/net/bonding/bond_options.c bond_3ad_update_ad_actor_settings(bond); bond 1465 drivers/net/bonding/bond_options.c netdev_err(bond->dev, "Invalid ad_actor_system MAC address.\n"); bond 1469 drivers/net/bonding/bond_options.c static int bond_option_ad_user_port_key_set(struct bonding *bond, bond 1472 drivers/net/bonding/bond_options.c netdev_dbg(bond->dev, "Setting ad_user_port_key to %llu\n", bond 1475 drivers/net/bonding/bond_options.c bond->params.ad_user_port_key = newval->value; bond 13 drivers/net/bonding/bond_procfs.c struct bonding *bond = PDE_DATA(file_inode(seq->file)); bond 23 drivers/net/bonding/bond_procfs.c bond_for_each_slave_rcu(bond, slave, iter) bond 32 drivers/net/bonding/bond_procfs.c struct bonding *bond = PDE_DATA(file_inode(seq->file)); bond 39 drivers/net/bonding/bond_procfs.c return bond_first_slave_rcu(bond); bond 41 drivers/net/bonding/bond_procfs.c bond_for_each_slave_rcu(bond, slave, iter) { bond 59 drivers/net/bonding/bond_procfs.c struct bonding *bond = PDE_DATA(file_inode(seq->file)); bond 64 drivers/net/bonding/bond_procfs.c curr = rcu_dereference(bond->curr_active_slave); bond 67 drivers/net/bonding/bond_procfs.c bond_mode_name(BOND_MODE(bond))); bond 69 drivers/net/bonding/bond_procfs.c if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP && bond 70 drivers/net/bonding/bond_procfs.c bond->params.fail_over_mac) { bond 72 drivers/net/bonding/bond_procfs.c bond->params.fail_over_mac); bond 78 drivers/net/bonding/bond_procfs.c if (bond_mode_uses_xmit_hash(bond)) { bond 80 drivers/net/bonding/bond_procfs.c bond->params.xmit_policy); bond 82 drivers/net/bonding/bond_procfs.c optval->string, bond->params.xmit_policy); bond 85 drivers/net/bonding/bond_procfs.c if (bond_uses_primary(bond)) { bond 86 drivers/net/bonding/bond_procfs.c primary = rcu_dereference(bond->primary_slave); bond 91 drivers/net/bonding/bond_procfs.c bond->params.primary_reselect); bond 100 drivers/net/bonding/bond_procfs.c seq_printf(seq, "MII Status: %s\n", netif_carrier_ok(bond->dev) ? bond 102 drivers/net/bonding/bond_procfs.c seq_printf(seq, "MII Polling Interval (ms): %d\n", bond->params.miimon); bond 104 drivers/net/bonding/bond_procfs.c bond->params.updelay * bond->params.miimon); bond 106 drivers/net/bonding/bond_procfs.c bond->params.downdelay * bond->params.miimon); bond 108 drivers/net/bonding/bond_procfs.c bond->params.peer_notif_delay * bond->params.miimon); bond 112 drivers/net/bonding/bond_procfs.c if (bond->params.arp_interval > 0) { bond 115 drivers/net/bonding/bond_procfs.c bond->params.arp_interval); bond 120 drivers/net/bonding/bond_procfs.c if (!bond->params.arp_targets[i]) bond 124 drivers/net/bonding/bond_procfs.c seq_printf(seq, " %pI4", &bond->params.arp_targets[i]); bond 130 drivers/net/bonding/bond_procfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 135 drivers/net/bonding/bond_procfs.c (bond->params.lacp_fast) ? "fast" : "slow"); bond 136 drivers/net/bonding/bond_procfs.c seq_printf(seq, "Min links: %d\n", bond->params.min_links); bond 138 drivers/net/bonding/bond_procfs.c bond->params.ad_select); bond 143 drivers/net/bonding/bond_procfs.c BOND_AD_INFO(bond).system.sys_priority); bond 145 drivers/net/bonding/bond_procfs.c &BOND_AD_INFO(bond).system.sys_mac_addr); bond 147 drivers/net/bonding/bond_procfs.c if (__bond_3ad_get_active_agg_info(bond, &ad_info)) { bond 150 drivers/net/bonding/bond_procfs.c bond->dev->name); bond 172 drivers/net/bonding/bond_procfs.c struct bonding *bond = PDE_DATA(file_inode(seq->file)); bond 193 drivers/net/bonding/bond_procfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 262 drivers/net/bonding/bond_procfs.c void bond_create_proc_entry(struct bonding *bond) bond 264 drivers/net/bonding/bond_procfs.c struct net_device *bond_dev = bond->dev; bond 268 drivers/net/bonding/bond_procfs.c bond->proc_entry = proc_create_seq_data(bond_dev->name, 0444, bond 269 drivers/net/bonding/bond_procfs.c bn->proc_dir, &bond_info_seq_ops, bond); bond 270 drivers/net/bonding/bond_procfs.c if (bond->proc_entry == NULL) bond 274 drivers/net/bonding/bond_procfs.c memcpy(bond->proc_file_name, bond_dev->name, IFNAMSIZ); bond 278 drivers/net/bonding/bond_procfs.c void bond_remove_proc_entry(struct bonding *bond) bond 280 drivers/net/bonding/bond_procfs.c struct net_device *bond_dev = bond->dev; bond 283 drivers/net/bonding/bond_procfs.c if (bn->proc_dir && bond->proc_entry) { bond 284 drivers/net/bonding/bond_procfs.c remove_proc_entry(bond->proc_file_name, bn->proc_dir); bond 285 drivers/net/bonding/bond_procfs.c memset(bond->proc_file_name, 0, IFNAMSIZ); bond 286 drivers/net/bonding/bond_procfs.c bond->proc_entry = NULL; bond 41 drivers/net/bonding/bond_sysfs.c struct bonding *bond; bond 45 drivers/net/bonding/bond_sysfs.c list_for_each_entry(bond, &bn->dev_list, bond_list) { bond 53 drivers/net/bonding/bond_sysfs.c res += sprintf(buf + res, "%s ", bond->dev->name); bond 64 drivers/net/bonding/bond_sysfs.c struct bonding *bond; bond 66 drivers/net/bonding/bond_sysfs.c list_for_each_entry(bond, &bn->dev_list, bond_list) { bond 67 drivers/net/bonding/bond_sysfs.c if (strncmp(bond->dev->name, ifname, IFNAMSIZ) == 0) bond 68 drivers/net/bonding/bond_sysfs.c return bond->dev; bond 145 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 156 drivers/net/bonding/bond_sysfs.c ret = bond_opt_tryset_rtnl(bond, opt->id, buffer_clone); bond 168 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 176 drivers/net/bonding/bond_sysfs.c bond_for_each_slave(bond, slave, iter) { bond 201 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 204 drivers/net/bonding/bond_sysfs.c val = bond_opt_get_val(BOND_OPT_MODE, BOND_MODE(bond)); bond 206 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%s %d\n", val->string, BOND_MODE(bond)); bond 215 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 218 drivers/net/bonding/bond_sysfs.c val = bond_opt_get_val(BOND_OPT_XMIT_HASH, bond->params.xmit_policy); bond 220 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%s %d\n", val->string, bond->params.xmit_policy); bond 230 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 234 drivers/net/bonding/bond_sysfs.c bond->params.arp_validate); bond 236 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%s %d\n", val->string, bond->params.arp_validate); bond 246 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 250 drivers/net/bonding/bond_sysfs.c bond->params.arp_all_targets); bond 252 drivers/net/bonding/bond_sysfs.c val->string, bond->params.arp_all_targets); bond 262 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 266 drivers/net/bonding/bond_sysfs.c bond->params.fail_over_mac); bond 268 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%s %d\n", val->string, bond->params.fail_over_mac); bond 278 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 280 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.arp_interval); bond 290 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 294 drivers/net/bonding/bond_sysfs.c if (bond->params.arp_targets[i]) bond 296 drivers/net/bonding/bond_sysfs.c &bond->params.arp_targets[i]); bond 311 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 313 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.downdelay * bond->params.miimon); bond 322 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 324 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.updelay * bond->params.miimon); bond 334 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 337 drivers/net/bonding/bond_sysfs.c bond->params.peer_notif_delay * bond->params.miimon); bond 347 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 350 drivers/net/bonding/bond_sysfs.c val = bond_opt_get_val(BOND_OPT_LACP_RATE, bond->params.lacp_fast); bond 352 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%s %d\n", val->string, bond->params.lacp_fast); bond 361 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 363 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%u\n", bond->params.min_links); bond 372 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 375 drivers/net/bonding/bond_sysfs.c val = bond_opt_get_val(BOND_OPT_AD_SELECT, bond->params.ad_select); bond 377 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%s %d\n", val->string, bond->params.ad_select); bond 387 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 388 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.num_peer_notif); bond 400 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 402 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.miimon); bond 412 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 417 drivers/net/bonding/bond_sysfs.c primary = rcu_dereference(bond->primary_slave); bond 432 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 436 drivers/net/bonding/bond_sysfs.c bond->params.primary_reselect); bond 439 drivers/net/bonding/bond_sysfs.c val->string, bond->params.primary_reselect); bond 449 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 451 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.use_carrier); bond 462 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 467 drivers/net/bonding/bond_sysfs.c slave_dev = bond_option_active_slave_get_rcu(bond); bond 482 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 483 drivers/net/bonding/bond_sysfs.c bool active = netif_carrier_ok(bond->dev); bond 495 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 497 drivers/net/bonding/bond_sysfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 500 drivers/net/bonding/bond_sysfs.c bond_3ad_get_active_agg_info(bond, &ad_info) bond 515 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 517 drivers/net/bonding/bond_sysfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD) { bond 520 drivers/net/bonding/bond_sysfs.c bond_3ad_get_active_agg_info(bond, &ad_info) bond 535 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 537 drivers/net/bonding/bond_sysfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD && capable(CAP_NET_ADMIN)) { bond 540 drivers/net/bonding/bond_sysfs.c bond_3ad_get_active_agg_info(bond, &ad_info) bond 555 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 557 drivers/net/bonding/bond_sysfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD && capable(CAP_NET_ADMIN)) { bond 560 drivers/net/bonding/bond_sysfs.c bond_3ad_get_active_agg_info(bond, &ad_info) bond 575 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 577 drivers/net/bonding/bond_sysfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD && capable(CAP_NET_ADMIN)) { bond 579 drivers/net/bonding/bond_sysfs.c if (!bond_3ad_get_active_agg_info(bond, &ad_info)) bond 592 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 600 drivers/net/bonding/bond_sysfs.c bond_for_each_slave(bond, slave, iter) { bond 627 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 629 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.all_slaves_active); bond 639 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 641 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.resend_igmp); bond 651 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 653 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.lp_interval); bond 662 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 663 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%d\n", bond->params.tlb_dynamic_lb); bond 672 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 673 drivers/net/bonding/bond_sysfs.c unsigned int packets_per_slave = bond->params.packets_per_slave; bond 684 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 686 drivers/net/bonding/bond_sysfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD && capable(CAP_NET_ADMIN)) bond 687 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%hu\n", bond->params.ad_actor_sys_prio); bond 698 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 700 drivers/net/bonding/bond_sysfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD && capable(CAP_NET_ADMIN)) bond 701 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%pM\n", bond->params.ad_actor_system); bond 713 drivers/net/bonding/bond_sysfs.c struct bonding *bond = to_bond(d); bond 715 drivers/net/bonding/bond_sysfs.c if (BOND_MODE(bond) == BOND_MODE_8023AD && capable(CAP_NET_ADMIN)) bond 716 drivers/net/bonding/bond_sysfs.c return sprintf(buf, "%hu\n", bond->params.ad_user_port_key); bond 812 drivers/net/bonding/bond_sysfs.c void bond_prepare_sysfs_group(struct bonding *bond) bond 814 drivers/net/bonding/bond_sysfs.c bond->dev->sysfs_groups[0] = &bonding_group; bond 70 drivers/net/bonding/bond_sysfs_slave.c if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) { bond 85 drivers/net/bonding/bond_sysfs_slave.c if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) { bond 100 drivers/net/bonding/bond_sysfs_slave.c if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) { bond 2984 drivers/net/ethernet/mellanox/mlx4/en_netdev.c struct mlx4_en_bond *bond = container_of(work, bond 2988 drivers/net/ethernet/mellanox/mlx4/en_netdev.c struct mlx4_dev *dev = bond->priv->mdev->dev; bond 2990 drivers/net/ethernet/mellanox/mlx4/en_netdev.c if (bond->is_bonded) { bond 2994 drivers/net/ethernet/mellanox/mlx4/en_netdev.c en_err(bond->priv, "Fail to bond device\n"); bond 2997 drivers/net/ethernet/mellanox/mlx4/en_netdev.c err = mlx4_port_map_set(dev, &bond->port_map); bond 2999 drivers/net/ethernet/mellanox/mlx4/en_netdev.c en_err(bond->priv, "Fail to set port map [%d][%d]: %d\n", bond 3000 drivers/net/ethernet/mellanox/mlx4/en_netdev.c bond->port_map.port1, bond 3001 drivers/net/ethernet/mellanox/mlx4/en_netdev.c bond->port_map.port2, bond 3007 drivers/net/ethernet/mellanox/mlx4/en_netdev.c en_err(bond->priv, "Fail to unbond device\n"); bond 3009 drivers/net/ethernet/mellanox/mlx4/en_netdev.c dev_put(bond->priv->dev); bond 3010 drivers/net/ethernet/mellanox/mlx4/en_netdev.c kfree(bond); bond 3016 drivers/net/ethernet/mellanox/mlx4/en_netdev.c struct mlx4_en_bond *bond = NULL; bond 3018 drivers/net/ethernet/mellanox/mlx4/en_netdev.c bond = kzalloc(sizeof(*bond), GFP_ATOMIC); bond 3019 drivers/net/ethernet/mellanox/mlx4/en_netdev.c if (!bond) bond 3022 drivers/net/ethernet/mellanox/mlx4/en_netdev.c INIT_WORK(&bond->work, mlx4_en_bond_work); bond 3023 drivers/net/ethernet/mellanox/mlx4/en_netdev.c bond->priv = priv; bond 3024 drivers/net/ethernet/mellanox/mlx4/en_netdev.c bond->is_bonded = is_bonded; bond 3025 drivers/net/ethernet/mellanox/mlx4/en_netdev.c bond->port_map.port1 = v2p_p1; bond 3026 drivers/net/ethernet/mellanox/mlx4/en_netdev.c bond->port_map.port2 = v2p_p2; bond 3028 drivers/net/ethernet/mellanox/mlx4/en_netdev.c queue_work(priv->mdev->workqueue, &bond->work); bond 5024 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c static int mlx4_mirror_fs_rules(struct mlx4_dev *dev, bool bond) bond 5037 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c if ((bond && fs_rule->mirr_mbox_size) || bond 5038 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c (!bond && !fs_rule->mirr_mbox_size)) bond 5043 drivers/net/ethernet/mellanox/mlx4/resource_tracker.c if (bond) bond 1598 drivers/net/ethernet/mscc/ocelot.c struct net_device *bond) bond 1607 drivers/net/ethernet/mscc/ocelot.c for_each_netdev_in_bond_rcu(bond, ndev) { bond 1639 drivers/net/ethernet/mscc/ocelot.c struct net_device *bond) bond 2569 include/linux/netdevice.h #define for_each_netdev_in_bond_rcu(bond, slave) \ bond 2571 include/linux/netdevice.h if (netdev_master_upper_dev_get_rcu(slave) == (bond)) bond 259 include/net/bond_3ad.h #define BOND_AD_INFO(bond) ((bond)->ad_info) bond 293 include/net/bond_3ad.h void bond_3ad_initialize(struct bonding *bond, u16 tick_resolution); bond 297 include/net/bond_3ad.h void bond_3ad_initiate_agg_selection(struct bonding *bond, int timeout); bond 300 include/net/bond_3ad.h int bond_3ad_get_active_agg_info(struct bonding *bond, struct ad_info *ad_info); bond 301 include/net/bond_3ad.h int __bond_3ad_get_active_agg_info(struct bonding *bond, bond 303 include/net/bond_3ad.h int bond_3ad_lacpdu_recv(const struct sk_buff *skb, struct bonding *bond, bond 305 include/net/bond_3ad.h int bond_3ad_set_carrier(struct bonding *bond); bond 306 include/net/bond_3ad.h void bond_3ad_update_lacp_rate(struct bonding *bond); bond 307 include/net/bond_3ad.h void bond_3ad_update_ad_actor_settings(struct bonding *bond); bond 14 include/net/bond_alb.h #define BOND_ALB_INFO(bond) ((bond)->alb_info) bond 23 include/net/bond_alb.h #define BOND_ALB_LP_INTERVAL(bond) (bond->params.lp_interval) /* In seconds, periodic send of bond 30 include/net/bond_alb.h #define BOND_ALB_LP_TICKS(bond) (BOND_ALB_LP_INTERVAL(bond) \ bond 153 include/net/bond_alb.h int bond_alb_initialize(struct bonding *bond, int rlb_enabled); bond 154 include/net/bond_alb.h void bond_alb_deinitialize(struct bonding *bond); bond 155 include/net/bond_alb.h int bond_alb_init_slave(struct bonding *bond, struct slave *slave); bond 156 include/net/bond_alb.h void bond_alb_deinit_slave(struct bonding *bond, struct slave *slave); bond 157 include/net/bond_alb.h void bond_alb_handle_link_change(struct bonding *bond, struct slave *slave, char link); bond 158 include/net/bond_alb.h void bond_alb_handle_active_change(struct bonding *bond, struct slave *new_slave); bond 163 include/net/bond_alb.h void bond_alb_clear_vlan(struct bonding *bond, unsigned short vlan_id); bond 99 include/net/bond_options.h int (*set)(struct bonding *bond, const struct bond_opt_value *val); bond 102 include/net/bond_options.h int __bond_opt_set(struct bonding *bond, unsigned int option, bond 104 include/net/bond_options.h int __bond_opt_set_notify(struct bonding *bond, unsigned int option, bond 106 include/net/bond_options.h int bond_opt_tryset_rtnl(struct bonding *bond, unsigned int option, char *buf); bond 131 include/net/bond_options.h void bond_option_arp_ip_targets_clear(struct bonding *bond); bond 50 include/net/bonding.h #define BOND_MODE(bond) ((bond)->params.mode) bond 53 include/net/bonding.h #define bond_slave_list(bond) (&(bond)->dev->adj_list.lower) bond 55 include/net/bonding.h #define bond_has_slaves(bond) !list_empty(bond_slave_list(bond)) bond 58 include/net/bonding.h #define bond_first_slave(bond) \ bond 59 include/net/bonding.h (bond_has_slaves(bond) ? \ bond 60 include/net/bonding.h netdev_adjacent_get_private(bond_slave_list(bond)->next) : \ bond 62 include/net/bonding.h #define bond_last_slave(bond) \ bond 63 include/net/bonding.h (bond_has_slaves(bond) ? \ bond 64 include/net/bonding.h netdev_adjacent_get_private(bond_slave_list(bond)->prev) : \ bond 68 include/net/bonding.h #define bond_first_slave_rcu(bond) \ bond 69 include/net/bonding.h netdev_lower_get_first_private_rcu(bond->dev) bond 71 include/net/bonding.h #define bond_is_first_slave(bond, pos) (pos == bond_first_slave(bond)) bond 72 include/net/bonding.h #define bond_is_last_slave(bond, pos) (pos == bond_last_slave(bond)) bond 82 include/net/bonding.h #define bond_for_each_slave(bond, pos, iter) \ bond 83 include/net/bonding.h netdev_for_each_lower_private((bond)->dev, pos, iter) bond 86 include/net/bonding.h #define bond_for_each_slave_rcu(bond, pos, iter) \ bond 87 include/net/bonding.h netdev_for_each_lower_private_rcu((bond)->dev, pos, iter) bond 154 include/net/bonding.h struct bonding *bond; /* our master */ bond 262 include/net/bonding.h static inline struct slave *bond_get_slave_by_dev(struct bonding *bond, bond 265 include/net/bonding.h return netdev_lower_dev_get_private(bond->dev, slave_dev); bond 270 include/net/bonding.h return slave->bond; bond 273 include/net/bonding.h static inline bool bond_should_override_tx_queue(struct bonding *bond) bond 275 include/net/bonding.h return BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP || bond 276 include/net/bonding.h BOND_MODE(bond) == BOND_MODE_ROUNDROBIN; bond 279 include/net/bonding.h static inline bool bond_is_lb(const struct bonding *bond) bond 281 include/net/bonding.h return BOND_MODE(bond) == BOND_MODE_TLB || bond 282 include/net/bonding.h BOND_MODE(bond) == BOND_MODE_ALB; bond 285 include/net/bonding.h static inline bool bond_needs_speed_duplex(const struct bonding *bond) bond 287 include/net/bonding.h return BOND_MODE(bond) == BOND_MODE_8023AD || bond_is_lb(bond); bond 290 include/net/bonding.h static inline bool bond_is_nondyn_tlb(const struct bonding *bond) bond 292 include/net/bonding.h return (bond_is_lb(bond) && bond->params.tlb_dynamic_lb == 0); bond 295 include/net/bonding.h static inline bool bond_mode_can_use_xmit_hash(const struct bonding *bond) bond 297 include/net/bonding.h return (BOND_MODE(bond) == BOND_MODE_8023AD || bond 298 include/net/bonding.h BOND_MODE(bond) == BOND_MODE_XOR || bond 299 include/net/bonding.h BOND_MODE(bond) == BOND_MODE_TLB || bond 300 include/net/bonding.h BOND_MODE(bond) == BOND_MODE_ALB); bond 303 include/net/bonding.h static inline bool bond_mode_uses_xmit_hash(const struct bonding *bond) bond 305 include/net/bonding.h return (BOND_MODE(bond) == BOND_MODE_8023AD || bond 306 include/net/bonding.h BOND_MODE(bond) == BOND_MODE_XOR || bond 307 include/net/bonding.h bond_is_nondyn_tlb(bond)); bond 322 include/net/bonding.h static inline bool bond_uses_primary(struct bonding *bond) bond 324 include/net/bonding.h return bond_mode_uses_primary(BOND_MODE(bond)); bond 327 include/net/bonding.h static inline struct net_device *bond_option_active_slave_get_rcu(struct bonding *bond) bond 329 include/net/bonding.h struct slave *slave = rcu_dereference(bond->curr_active_slave); bond 331 include/net/bonding.h return bond_uses_primary(bond) && slave ? slave->dev : NULL; bond 376 include/net/bonding.h static inline void bond_slave_state_change(struct bonding *bond) bond 381 include/net/bonding.h bond_for_each_slave(bond, tmp, iter) { bond 389 include/net/bonding.h static inline void bond_slave_state_notify(struct bonding *bond) bond 394 include/net/bonding.h bond_for_each_slave(bond, tmp, iter) { bond 466 include/net/bonding.h static inline int slave_do_arp_validate(struct bonding *bond, bond 469 include/net/bonding.h return bond->params.arp_validate & (1 << bond_slave_state(slave)); bond 472 include/net/bonding.h static inline int slave_do_arp_validate_only(struct bonding *bond) bond 474 include/net/bonding.h return bond->params.arp_validate & BOND_ARP_FILTER; bond 485 include/net/bonding.h static inline unsigned long slave_oldest_target_arp_rx(struct bonding *bond, bond 491 include/net/bonding.h for (; (i < BOND_MAX_ARP_TARGETS) && bond->params.arp_targets[i]; i++) bond 498 include/net/bonding.h static inline unsigned long slave_last_rx(struct bonding *bond, bond 501 include/net/bonding.h if (bond->params.arp_all_targets == BOND_ARP_TARGETS_ALL) bond 502 include/net/bonding.h return slave_oldest_target_arp_rx(bond, slave); bond 526 include/net/bonding.h if (!bond_is_lb(slave->bond)) bond 528 include/net/bonding.h if (!slave->bond->params.all_slaves_active) bond 574 include/net/bonding.h static inline void bond_slave_link_notify(struct bonding *bond) bond 579 include/net/bonding.h bond_for_each_slave(bond, tmp, iter) { bond 612 include/net/bonding.h int bond_arp_rcv(const struct sk_buff *skb, struct bonding *bond, struct slave *slave); bond 613 include/net/bonding.h void bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, struct net_device *slave_dev); bond 617 include/net/bonding.h void bond_prepare_sysfs_group(struct bonding *bond); bond 623 include/net/bonding.h u32 bond_xmit_hash(struct bonding *bond, struct sk_buff *skb); bond 624 include/net/bonding.h int bond_set_carrier(struct bonding *bond); bond 625 include/net/bonding.h void bond_select_active_slave(struct bonding *bond); bond 626 include/net/bonding.h void bond_change_active_slave(struct bonding *bond, struct slave *new_active); bond 629 include/net/bonding.h void bond_debug_register(struct bonding *bond); bond 630 include/net/bonding.h void bond_debug_unregister(struct bonding *bond); bond 631 include/net/bonding.h void bond_debug_reregister(struct bonding *bond); bond 637 include/net/bonding.h struct net_device *bond_option_active_slave_get_rcu(struct bonding *bond); bond 642 include/net/bonding.h int bond_update_slave_arr(struct bonding *bond, struct slave *skipslave); bond 643 include/net/bonding.h void bond_slave_arr_work_rearm(struct bonding *bond, unsigned long delay); bond 644 include/net/bonding.h void bond_work_init_all(struct bonding *bond); bond 647 include/net/bonding.h void bond_create_proc_entry(struct bonding *bond); bond 648 include/net/bonding.h void bond_remove_proc_entry(struct bonding *bond); bond 652 include/net/bonding.h static inline void bond_create_proc_entry(struct bonding *bond) bond 656 include/net/bonding.h static inline void bond_remove_proc_entry(struct bonding *bond) bond 669 include/net/bonding.h static inline struct slave *bond_slave_has_mac(struct bonding *bond, bond 675 include/net/bonding.h bond_for_each_slave(bond, tmp, iter) bond 683 include/net/bonding.h static inline struct slave *bond_slave_has_mac_rcu(struct bonding *bond, bond 689 include/net/bonding.h bond_for_each_slave_rcu(bond, tmp, iter) bond 697 include/net/bonding.h static inline bool bond_slave_has_mac_rx(struct bonding *bond, const u8 *mac) bond 703 include/net/bonding.h bond_for_each_slave_rcu(bond, tmp, iter) bond 707 include/net/bonding.h if (netdev_uc_empty(bond->dev)) bond 710 include/net/bonding.h netdev_for_each_uc_addr(ha, bond->dev)