Lines Matching full:slave

127 	if (port->slave == NULL)  in __get_bond_by_port()
130 return bond_get_bond_by_slave(port->slave); in __get_bond_by_port()
137 * Return the aggregator of the first slave in @bond, or %NULL if it can't be
144 struct slave *first_slave; in __get_first_agg()
172 * __disable_port - disable the port's slave
177 bond_set_slave_inactive_flags(port->slave, BOND_SLAVE_NOTIFY_LATER); in __disable_port()
181 * __enable_port - enable the port's slave, if it's up
186 struct slave *slave = port->slave; in __enable_port() local
188 if ((slave->link == BOND_LINK_UP) && bond_slave_is_up(slave)) in __enable_port()
189 bond_set_slave_active_flags(slave, BOND_SLAVE_NOTIFY_LATER); in __enable_port()
193 * __port_is_enabled - check if the port's slave is in active state
198 return bond_is_active_slave(port->slave); in __port_is_enabled()
255 struct slave *slave = port->slave; in __get_link_speed() local
263 if (slave->link != BOND_LINK_UP) in __get_link_speed()
266 switch (slave->speed) { in __get_link_speed()
329 if (slave->speed != SPEED_UNKNOWN) in __get_link_speed()
330 pr_err_once("%s: (slave %s): unknown ethtool speed (%d) for port %d (set it to 0)\n", in __get_link_speed()
331 slave->bond->dev->name, in __get_link_speed()
332 slave->dev->name, slave->speed, in __get_link_speed()
339 slave_dbg(slave->bond->dev, slave->dev, "Port %d Received link speed %d update from adapter\n", in __get_link_speed()
354 struct slave *slave = port->slave; in __get_duplex() local
360 if (slave->link == BOND_LINK_UP) { in __get_duplex()
361 switch (slave->duplex) { in __get_duplex()
364 …slave_dbg(slave->bond->dev, slave->dev, "Port %d Received status full duplex update from adapter\n… in __get_duplex()
370 …slave_dbg(slave->bond->dev, slave->dev, "Port %d Received status NOT full duplex update from adapt… in __get_duplex()
380 const struct bonding *bond = bond_get_bond_by_slave(port->slave); in __ad_actor_update_port()
505 slave_dbg(port->slave->bond->dev, port->slave->dev, in __record_pdu()
509 slave_dbg(port->slave->bond->dev, port->slave->dev, in __record_pdu()
769 struct bonding *bond = aggregator->slave->bond; in __get_active_agg()
771 struct slave *slave; in __get_active_agg() local
773 bond_for_each_slave_rcu(bond, slave, iter) in __get_active_agg()
774 if (SLAVE_AD_INFO(slave)->aggregator.is_active) in __get_active_agg()
775 return &(SLAVE_AD_INFO(slave)->aggregator); in __get_active_agg()
802 slave_dbg(port->slave->bond->dev, port->slave->dev, in __update_lacpdu_from_port()
840 struct slave *slave = port->slave; in ad_lacpdu_send() local
849 atomic64_inc(&SLAVE_AD_INFO(slave)->stats.lacpdu_tx); in ad_lacpdu_send()
850 atomic64_inc(&BOND_AD_INFO(slave->bond).stats.lacpdu_tx); in ad_lacpdu_send()
852 skb->dev = slave->dev; in ad_lacpdu_send()
864 ether_addr_copy(lacpdu_header->hdr.h_source, slave->perm_hwaddr); in ad_lacpdu_send()
884 struct slave *slave = port->slave; in ad_marker_send() local
895 atomic64_inc(&SLAVE_AD_INFO(slave)->stats.marker_tx); in ad_marker_send()
896 atomic64_inc(&BOND_AD_INFO(slave->bond).stats.marker_tx); in ad_marker_send()
899 atomic64_inc(&SLAVE_AD_INFO(slave)->stats.marker_resp_tx); in ad_marker_send()
900 atomic64_inc(&BOND_AD_INFO(slave->bond).stats.marker_resp_tx); in ad_marker_send()
906 skb->dev = slave->dev; in ad_marker_send()
917 ether_addr_copy(marker_header->hdr.h_source, slave->perm_hwaddr); in ad_marker_send()
930 * @update_slave_arr: Does slave array need update?
1036 slave_dbg(port->slave->bond->dev, port->slave->dev, in ad_mux_machine()
1099 atomic64_inc(&SLAVE_AD_INFO(port->slave)->stats.lacpdu_rx); in ad_rx_machine()
1100 atomic64_inc(&BOND_AD_INFO(port->slave->bond).stats.lacpdu_rx); in ad_rx_machine()
1154 slave_dbg(port->slave->bond->dev, port->slave->dev, in ad_rx_machine()
1206 slave_err(port->slave->bond->dev, port->slave->dev, "An illegal loopback occurred on slave\n" in ad_rx_machine()
1276 slave_dbg(port->slave->bond->dev, in ad_tx_machine()
1277 port->slave->dev, in ad_tx_machine()
1359 slave_dbg(port->slave->bond->dev, port->slave->dev, in ad_periodic_machine()
1387 * @update_slave_arr: Does slave array need update?
1399 struct slave *slave; in ad_port_selection_logic() local
1438 slave_dbg(bond->dev, port->slave->dev, "Port %d left LAG %d\n", in ad_port_selection_logic()
1453 …net_warn_ratelimited("%s: (slave %s): Warning: Port %d was related to aggregator %d but was not on… in ad_port_selection_logic()
1454 port->slave->bond->dev->name, in ad_port_selection_logic()
1455 port->slave->dev->name, in ad_port_selection_logic()
1461 bond_for_each_slave(bond, slave, iter) { in ad_port_selection_logic()
1462 aggregator = &(SLAVE_AD_INFO(slave)->aggregator); in ad_port_selection_logic()
1487 slave_dbg(bond->dev, slave->dev, "Port %d joined LAG %d (existing LAG)\n", in ad_port_selection_logic()
1534 slave_dbg(bond->dev, port->slave->dev, "Port %d joined LAG %d (new LAG)\n", in ad_port_selection_logic()
1538 slave_err(bond->dev, port->slave->dev, in ad_port_selection_logic()
1619 net_warn_ratelimited("%s: (slave %s): Impossible agg select mode %d\n", in ad_agg_selection_test()
1620 curr->slave->bond->dev->name, in ad_agg_selection_test()
1621 curr->slave->dev->name, in ad_agg_selection_test()
1638 if (netif_running(port->slave->dev) && in agg_device_up()
1639 netif_carrier_ok(port->slave->dev)) in agg_device_up()
1649 * @update_slave_arr: Does slave array need update?
1676 struct bonding *bond = agg->slave->bond; in ad_agg_selection_logic()
1678 struct slave *slave; in ad_agg_selection_logic() local
1686 bond_for_each_slave_rcu(bond, slave, iter) { in ad_agg_selection_logic()
1687 agg = &(SLAVE_AD_INFO(slave)->aggregator); in ad_agg_selection_logic()
1722 netdev_dbg(bond->dev, "(slave %s): best Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n", in ad_agg_selection_logic()
1723 best->slave ? best->slave->dev->name : "NULL", in ad_agg_selection_logic()
1728 netdev_dbg(bond->dev, "(slave %s): best ports %p slave %p\n", in ad_agg_selection_logic()
1729 best->slave ? best->slave->dev->name : "NULL", in ad_agg_selection_logic()
1730 best->lag_ports, best->slave); in ad_agg_selection_logic()
1732 bond_for_each_slave_rcu(bond, slave, iter) { in ad_agg_selection_logic()
1733 agg = &(SLAVE_AD_INFO(slave)->aggregator); in ad_agg_selection_logic()
1735 slave_dbg(bond->dev, slave->dev, "Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n", in ad_agg_selection_logic()
1748 netdev_dbg(bond->dev, "(slave %s): LAG %d chosen as the active LAG\n", in ad_agg_selection_logic()
1749 best->slave ? best->slave->dev->name : "NULL", in ad_agg_selection_logic()
1751 netdev_dbg(bond->dev, "(slave %s): Agg=%d; P=%d; a k=%d; p k=%d; Ind=%d; Act=%d\n", in ad_agg_selection_logic()
1752 best->slave ? best->slave->dev->name : "NULL", in ad_agg_selection_logic()
1767 /* Slave array needs update. */ in ad_agg_selection_logic()
1809 aggregator->slave ? in ad_clear_agg()
1810 aggregator->slave->dev->name : "NULL", in ad_clear_agg()
1826 aggregator->slave = NULL; in ad_initialize_agg()
1899 * @update_slave_arr: Does slave array need update?
1907 slave_dbg(port->slave->bond->dev, port->slave->dev, in ad_enable_collecting_distributing()
1912 /* Slave array needs update */ in ad_enable_collecting_distributing()
1920 * @update_slave_arr: Does slave array need update?
1928 slave_dbg(port->slave->bond->dev, port->slave->dev, in ad_disable_collecting_distributing()
1933 /* Slave array needs an update */ in ad_disable_collecting_distributing()
1948 atomic64_inc(&SLAVE_AD_INFO(port->slave)->stats.marker_rx); in ad_marker_info_received()
1949 atomic64_inc(&BOND_AD_INFO(port->slave->bond).stats.marker_rx); in ad_marker_info_received()
1958 slave_dbg(port->slave->bond->dev, port->slave->dev, in ad_marker_info_received()
1975 atomic64_inc(&SLAVE_AD_INFO(port->slave)->stats.marker_resp_rx); in ad_marker_response_received()
1976 atomic64_inc(&BOND_AD_INFO(port->slave->bond).stats.marker_resp_rx); in ad_marker_response_received()
2036 * bond_3ad_bind_slave - initialize a slave's port
2037 * @slave: slave struct to work on
2042 void bond_3ad_bind_slave(struct slave *slave) in bond_3ad_bind_slave() argument
2044 struct bonding *bond = bond_get_bond_by_slave(slave); in bond_3ad_bind_slave()
2048 /* check that the slave has not been initialized yet. */ in bond_3ad_bind_slave()
2049 if (SLAVE_AD_INFO(slave)->port.slave != slave) { in bond_3ad_bind_slave()
2052 port = &(SLAVE_AD_INFO(slave)->port); in bond_3ad_bind_slave()
2056 port->slave = slave; in bond_3ad_bind_slave()
2057 port->actor_port_number = SLAVE_AD_INFO(slave)->id; in bond_3ad_bind_slave()
2073 aggregator = &(SLAVE_AD_INFO(slave)->aggregator); in bond_3ad_bind_slave()
2079 aggregator->slave = slave; in bond_3ad_bind_slave()
2086 * bond_3ad_unbind_slave - deinitialize a slave's port
2087 * @slave: slave struct to work on
2093 void bond_3ad_unbind_slave(struct slave *slave) in bond_3ad_unbind_slave() argument
2098 struct bonding *bond = slave->bond; in bond_3ad_unbind_slave()
2099 struct slave *slave_iter; in bond_3ad_unbind_slave()
2105 aggregator = &(SLAVE_AD_INFO(slave)->aggregator); in bond_3ad_unbind_slave()
2106 port = &(SLAVE_AD_INFO(slave)->port); in bond_3ad_unbind_slave()
2108 /* if slave is null, the whole port is not initialized */ in bond_3ad_unbind_slave()
2109 if (!port->slave) { in bond_3ad_unbind_slave()
2110 slave_warn(bond->dev, slave->dev, "Trying to unbind an uninitialized port\n"); in bond_3ad_unbind_slave()
2114 slave_dbg(bond->dev, slave->dev, "Unbinding Link Aggregation Group %d\n", in bond_3ad_unbind_slave()
2128 * except the port related to this slave(thats ensure us that in bond_3ad_unbind_slave()
2153 slave_dbg(bond->dev, slave->dev, "Some port(s) related to LAG %d - replacing with LAG %d\n", in bond_3ad_unbind_slave()
2159 slave_info(bond->dev, slave->dev, "Removing an active aggregator\n"); in bond_3ad_unbind_slave()
2190 …slave_warn(bond->dev, slave->dev, "unbinding aggregator, and could not find a new aggregator for i… in bond_3ad_unbind_slave()
2199 slave_info(bond->dev, slave->dev, "Removing an active aggregator\n"); in bond_3ad_unbind_slave()
2209 slave_dbg(bond->dev, slave->dev, "Unbinding port %d\n", port->actor_port_number); in bond_3ad_unbind_slave()
2232 slave_info(bond->dev, slave->dev, "Removing an active aggregator\n"); in bond_3ad_unbind_slave()
2242 port->slave = NULL; in bond_3ad_unbind_slave()
2258 struct slave *slave; in bond_3ad_update_ad_actor_settings() local
2271 bond_for_each_slave(bond, slave, iter) { in bond_3ad_update_ad_actor_settings()
2272 struct port *port = &(SLAVE_AD_INFO(slave))->port; in bond_3ad_update_ad_actor_settings()
2299 struct slave *slave; in bond_3ad_state_machine_handler() local
2318 slave = bond_first_slave_rcu(bond); in bond_3ad_state_machine_handler()
2319 port = slave ? &(SLAVE_AD_INFO(slave)->port) : NULL; in bond_3ad_state_machine_handler()
2323 if (!port->slave) { in bond_3ad_state_machine_handler()
2336 bond_for_each_slave_rcu(bond, slave, iter) { in bond_3ad_state_machine_handler()
2337 port = &(SLAVE_AD_INFO(slave)->port); in bond_3ad_state_machine_handler()
2338 if (!port->slave) { in bond_3ad_state_machine_handler()
2357 bond_for_each_slave_rcu(bond, slave, iter) { in bond_3ad_state_machine_handler()
2358 if (slave->should_notify) { in bond_3ad_state_machine_handler()
2379 * @slave: slave struct to work on
2385 static int bond_3ad_rx_indication(struct lacpdu *lacpdu, struct slave *slave) in bond_3ad_rx_indication() argument
2387 struct bonding *bond = slave->bond; in bond_3ad_rx_indication()
2393 port = &(SLAVE_AD_INFO(slave)->port); in bond_3ad_rx_indication()
2394 if (!port->slave) { in bond_3ad_rx_indication()
2395 net_warn_ratelimited("%s: Warning: port of slave %s is uninitialized\n", in bond_3ad_rx_indication()
2396 slave->dev->name, slave->bond->dev->name); in bond_3ad_rx_indication()
2403 slave_dbg(slave->bond->dev, slave->dev, in bond_3ad_rx_indication()
2407 spin_lock(&slave->bond->mode_lock); in bond_3ad_rx_indication()
2409 spin_unlock(&slave->bond->mode_lock); in bond_3ad_rx_indication()
2419 slave_dbg(slave->bond->dev, slave->dev, "Received Marker Information on port %d\n", in bond_3ad_rx_indication()
2424 slave_dbg(slave->bond->dev, slave->dev, "Received Marker Response on port %d\n", in bond_3ad_rx_indication()
2429 slave_dbg(slave->bond->dev, slave->dev, "Received an unknown Marker subtype on port %d\n", in bond_3ad_rx_indication()
2431 stat = &SLAVE_AD_INFO(slave)->stats.marker_unknown_rx; in bond_3ad_rx_indication()
2438 atomic64_inc(&SLAVE_AD_INFO(slave)->stats.lacpdu_unknown_rx); in bond_3ad_rx_indication()
2480 slave_err(port->slave->bond->dev, in ad_update_actor_keys()
2481 port->slave->dev, in ad_update_actor_keys()
2493 * bond_3ad_adapter_speed_duplex_changed - handle a slave's speed / duplex
2496 * @slave: slave struct to work on
2500 void bond_3ad_adapter_speed_duplex_changed(struct slave *slave) in bond_3ad_adapter_speed_duplex_changed() argument
2504 port = &(SLAVE_AD_INFO(slave)->port); in bond_3ad_adapter_speed_duplex_changed()
2506 /* if slave is null, the whole port is not initialized */ in bond_3ad_adapter_speed_duplex_changed()
2507 if (!port->slave) { in bond_3ad_adapter_speed_duplex_changed()
2508 slave_warn(slave->bond->dev, slave->dev, in bond_3ad_adapter_speed_duplex_changed()
2513 spin_lock_bh(&slave->bond->mode_lock); in bond_3ad_adapter_speed_duplex_changed()
2515 spin_unlock_bh(&slave->bond->mode_lock); in bond_3ad_adapter_speed_duplex_changed()
2516 slave_dbg(slave->bond->dev, slave->dev, "Port %d changed speed/duplex\n", in bond_3ad_adapter_speed_duplex_changed()
2521 * bond_3ad_handle_link_change - handle a slave's link status change indication
2522 * @slave: slave struct to work on
2527 void bond_3ad_handle_link_change(struct slave *slave, char link) in bond_3ad_handle_link_change() argument
2533 port = &(SLAVE_AD_INFO(slave)->port); in bond_3ad_handle_link_change()
2535 /* if slave is null, the whole port is not initialized */ in bond_3ad_handle_link_change()
2536 if (!port->slave) { in bond_3ad_handle_link_change()
2537 slave_warn(slave->bond->dev, slave->dev, "link status changed for uninitialized port\n"); in bond_3ad_handle_link_change()
2541 spin_lock_bh(&slave->bond->mode_lock); in bond_3ad_handle_link_change()
2560 spin_unlock_bh(&slave->bond->mode_lock); in bond_3ad_handle_link_change()
2562 slave_dbg(slave->bond->dev, slave->dev, "Port %d changed link status to %s\n", in bond_3ad_handle_link_change()
2569 bond_update_slave_arr(slave->bond, NULL); in bond_3ad_handle_link_change()
2588 struct slave *first_slave; in bond_3ad_set_carrier()
2630 struct slave *slave; in __bond_3ad_get_active_agg_info() local
2633 bond_for_each_slave_rcu(bond, slave, iter) { in __bond_3ad_get_active_agg_info()
2634 port = &(SLAVE_AD_INFO(slave)->port); in __bond_3ad_get_active_agg_info()
2665 struct slave *slave) in bond_3ad_lacpdu_recv() argument
2677 atomic64_inc(&SLAVE_AD_INFO(slave)->stats.lacpdu_illegal_rx); in bond_3ad_lacpdu_recv()
2682 return bond_3ad_rx_indication(lacpdu, slave); in bond_3ad_lacpdu_recv()
2700 struct slave *slave; in bond_3ad_update_lacp_rate() local
2705 bond_for_each_slave(bond, slave, iter) { in bond_3ad_update_lacp_rate()
2706 port = &(SLAVE_AD_INFO(slave)->port); in bond_3ad_update_lacp_rate()