/linux-6.12.1/drivers/net/bonding/ |
D | bond_options.c | 3 * drivers/net/bond/bond_options.c - bonding options 20 static int bond_option_active_slave_set(struct bonding *bond, 22 static int bond_option_miimon_set(struct bonding *bond, 24 static int bond_option_updelay_set(struct bonding *bond, 26 static int bond_option_downdelay_set(struct bonding *bond, 28 static int bond_option_peer_notif_delay_set(struct bonding *bond, 30 static int bond_option_use_carrier_set(struct bonding *bond, 32 static int bond_option_arp_interval_set(struct bonding *bond, 34 static int bond_option_arp_ip_target_add(struct bonding *bond, __be32 target); 35 static int bond_option_arp_ip_target_rem(struct bonding *bond, __be32 target); [all …]
|
D | bond_alb.c | 56 static void rlb_purge_src_ip(struct bonding *bond, struct arp_pkt *arp); 57 static void rlb_src_unlink(struct bonding *bond, u32 index); 58 static void rlb_src_link(struct bonding *bond, u32 ip_src_hash, 93 static void __tlb_clear_slave(struct bonding *bond, struct slave *slave, in __tlb_clear_slave() argument 100 tx_hash_table = BOND_ALB_INFO(bond).tx_hashtbl; in __tlb_clear_slave() 116 static void tlb_clear_slave(struct bonding *bond, struct slave *slave, in tlb_clear_slave() argument 119 spin_lock_bh(&bond->mode_lock); in tlb_clear_slave() 120 __tlb_clear_slave(bond, slave, save_load); in tlb_clear_slave() 121 spin_unlock_bh(&bond->mode_lock); in tlb_clear_slave() 125 static int tlb_initialize(struct bonding *bond) in tlb_initialize() argument [all …]
|
D | bond_main.c | 266 static bool bond_time_in_interval(struct bonding *bond, unsigned long last_act, 293 * @bond: bond device that got this skb for tx. 297 netdev_tx_t bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb, in bond_dev_queue_xmit() argument 306 if (unlikely(netpoll_tx_running(bond->dev))) in bond_dev_queue_xmit() 307 return bond_netpoll_send_skb(bond_get_slave_by_dev(bond, slave_dev), skb); in bond_dev_queue_xmit() 312 static bool bond_sk_check(struct bonding *bond) in bond_sk_check() argument 314 switch (BOND_MODE(bond)) { in bond_sk_check() 317 if (bond->params.xmit_policy == BOND_XMIT_POLICY_LAYER34) in bond_sk_check() 325 static bool bond_xdp_check(struct bonding *bond) in bond_xdp_check() argument 327 switch (BOND_MODE(bond)) { in bond_xdp_check() [all …]
|
D | bond_sysfs.c | 40 struct bonding *bond; in bonding_show_bonds() local 45 list_for_each_entry_rcu(bond, &bn->dev_list, bond_list) { in bonding_show_bonds() 53 res += sysfs_emit_at(buf, res, "%s ", bond->dev->name); in bonding_show_bonds() 64 struct bonding *bond; in bond_get_by_name() local 66 list_for_each_entry(bond, &bn->dev_list, bond_list) { in bond_get_by_name() 67 if (strncmp(bond->dev->name, ifname, IFNAMSIZ) == 0) in bond_get_by_name() 68 return bond->dev; in bond_get_by_name() 145 struct bonding *bond = to_bond(d); in bonding_sysfs_store_option() local 156 ret = bond_opt_tryset_rtnl(bond, opt->id, buffer_clone); in bonding_sysfs_store_option() 164 /* Show the slaves in the current bond. */ [all …]
|
D | bond_procfs.c | 14 struct bonding *bond = pde_data(file_inode(seq->file)); in bond_info_seq_start() local 24 bond_for_each_slave_rcu(bond, slave, iter) in bond_info_seq_start() 33 struct bonding *bond = pde_data(file_inode(seq->file)); in bond_info_seq_next() local 40 return bond_first_slave_rcu(bond); in bond_info_seq_next() 42 bond_for_each_slave_rcu(bond, slave, iter) { in bond_info_seq_next() 60 struct bonding *bond = pde_data(file_inode(seq->file)); in bond_info_show_master() local 65 curr = rcu_dereference(bond->curr_active_slave); in bond_info_show_master() 68 bond_mode_name(BOND_MODE(bond))); in bond_info_show_master() 70 if (BOND_MODE(bond) == BOND_MODE_ACTIVEBACKUP && in bond_info_show_master() 71 bond->params.fail_over_mac) { in bond_info_show_master() [all …]
|
D | bond_netlink.c | 3 * drivers/net/bond/bond_netlink.c - Netlink interface for bonding 61 if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) { in bond_fill_slave_info() 151 struct bonding *bond = netdev_priv(bond_dev); in bond_slave_changelink() local 166 err = __bond_opt_set(bond, BOND_OPT_QUEUE_ID, &newval, in bond_slave_changelink() 176 err = __bond_opt_set(bond, BOND_OPT_PRIO, &newval, in bond_slave_changelink() 189 struct bonding *bond = netdev_priv(bond_dev); in bond_changelink() local 201 err = __bond_opt_set(bond, BOND_OPT_MODE, &newval, in bond_changelink() 219 err = __bond_opt_set(bond, BOND_OPT_ACTIVE_SLAVE, &newval, in bond_changelink() 228 err = __bond_opt_set(bond, BOND_OPT_MIIMON, &newval, in bond_changelink() 237 err = __bond_opt_set(bond, BOND_OPT_UPDELAY, &newval, in bond_changelink() [all …]
|
D | bond_debugfs.c | 20 struct bonding *bond = m->private; in bond_debug_rlb_hash_show() local 21 struct alb_bond_info *bond_info = &(BOND_ALB_INFO(bond)); in bond_debug_rlb_hash_show() 25 if (BOND_MODE(bond) != BOND_MODE_ALB) in bond_debug_rlb_hash_show() 31 spin_lock_bh(&bond->mode_lock); in bond_debug_rlb_hash_show() 44 spin_unlock_bh(&bond->mode_lock); in bond_debug_rlb_hash_show() 50 void bond_debug_register(struct bonding *bond) in bond_debug_register() argument 52 bond->debug_dir = in bond_debug_register() 53 debugfs_create_dir(bond->dev->name, bonding_debug_root); in bond_debug_register() 55 debugfs_create_file("rlb_hash_table", 0400, bond->debug_dir, in bond_debug_register() 56 bond, &bond_debug_rlb_hash_fops); in bond_debug_register() [all …]
|
D | bond_3ad.c | 136 * __get_first_agg - get the first aggregator in the bond 139 * Return the aggregator of the first slave in @bond, or %NULL if it can't be 145 struct bonding *bond = __get_bond_by_port(port); in __get_first_agg() local 149 /* If there's no bond for this port, or bond has no slaves */ in __get_first_agg() 150 if (bond == NULL) in __get_first_agg() 154 first_slave = bond_first_slave_rcu(bond); in __get_first_agg() 259 struct bonding *bond = __get_bond_by_port(port); in __get_agg_selection_mode() local 261 if (bond == NULL) in __get_agg_selection_mode() 264 return bond->params.ad_select; in __get_agg_selection_mode() 273 struct bonding *bond = __get_bond_by_port(port); in __check_agg_selection_timer() local [all …]
|
D | bond_sysfs_slave.c | 2 /* Sysfs attributes of bond slaves 64 if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) { in ad_aggregator_id_show() 79 if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) { in ad_actor_oper_port_state_show() 94 if (BOND_MODE(slave->bond) == BOND_MODE_8023AD) { in ad_partner_oper_port_state_show()
|
/linux-6.12.1/include/net/ |
D | bonding.h | 3 * Bond several ethernet interfaces into a Cisco, running 'Etherchannel'. 51 #define BOND_MODE(bond) ((bond)->params.mode) argument 54 #define bond_slave_list(bond) (&(bond)->dev->adj_list.lower) argument 56 #define bond_has_slaves(bond) !list_empty(bond_slave_list(bond)) argument 59 #define bond_first_slave(bond) \ argument 60 (bond_has_slaves(bond) ? \ 61 netdev_adjacent_get_private(bond_slave_list(bond)->next) : \ 63 #define bond_last_slave(bond) \ argument 64 (bond_has_slaves(bond) ? \ 65 netdev_adjacent_get_private(bond_slave_list(bond)->prev) : \ [all …]
|
D | bond_alb.h | 14 #define BOND_ALB_INFO(bond) ((bond)->alb_info) argument 23 #define BOND_ALB_LP_INTERVAL(bond) (bond->params.lp_interval) /* In seconds, periodic send of argument 30 #define BOND_ALB_LP_TICKS(bond) (BOND_ALB_LP_INTERVAL(bond) \ argument 153 int bond_alb_initialize(struct bonding *bond, int rlb_enabled); 154 void bond_alb_deinitialize(struct bonding *bond); 155 int bond_alb_init_slave(struct bonding *bond, struct slave *slave); 156 void bond_alb_deinit_slave(struct bonding *bond, struct slave *slave); 157 void bond_alb_handle_link_change(struct bonding *bond, struct slave *slave, char link); 158 void bond_alb_handle_active_change(struct bonding *bond, struct slave *new_slave); 161 struct slave *bond_xmit_alb_slave_get(struct bonding *bond, [all …]
|
D | bond_options.h | 3 * drivers/net/bond/bond_options.h - bonding options 23 * BOND_OPTFLAG_NOSLAVES - check if the bond device is empty before setting 24 * BOND_OPTFLAG_IFDOWN - check if the bond device is down before setting 119 int (*set)(struct bonding *bond, const struct bond_opt_value *val); 122 int __bond_opt_set(struct bonding *bond, unsigned int option, 125 int __bond_opt_set_notify(struct bonding *bond, unsigned int option, 127 int bond_opt_tryset_rtnl(struct bonding *bond, unsigned int option, char *buf); 160 void bond_option_arp_ip_targets_clear(struct bonding *bond); 162 void bond_option_ns_ip6_targets_clear(struct bonding *bond); 164 void bond_slave_ns_maddrs_add(struct bonding *bond, struct slave *slave); [all …]
|
D | bond_3ad.h | 193 struct slave *slave; /* pointer to the bond slave that this aggregator belongs to */ 244 struct slave *slave; /* pointer to the bond slave that this port belongs to */ 262 #define BOND_AD_INFO(bond) ((bond)->ad_info) argument 296 void bond_3ad_initialize(struct bonding *bond); 300 void bond_3ad_initiate_agg_selection(struct bonding *bond, int timeout); 303 int bond_3ad_get_active_agg_info(struct bonding *bond, struct ad_info *ad_info); 304 int __bond_3ad_get_active_agg_info(struct bonding *bond, 306 int bond_3ad_lacpdu_recv(const struct sk_buff *skb, struct bonding *bond, 308 int bond_3ad_set_carrier(struct bonding *bond); 309 void bond_3ad_update_lacp_rate(struct bonding *bond); [all …]
|
/linux-6.12.1/tools/testing/selftests/bpf/prog_tests/ |
D | xdp_bonding.c | 7 * and verifies that XDP_TX program loaded on a bond device 149 SYS(fail, "ip link add bond1 type bond mode %s xmit_hash_policy %s", in bonding_setup() 152 SYS(fail, "ip -netns ns_dst link add bond2 type bond mode %s xmit_hash_policy %s", in bonding_setup() 329 * to neither the ingress bond device (bond2) or its slave (veth2_1). 379 /* Test that XDP programs cannot be attached to both the bond master and slaves simultaneously */ 384 int veth, bond, err; in test_xdp_bonding_attach() local 388 if (!ASSERT_OK(system("ip link add bond type bond"), "add bond")) in test_xdp_bonding_attach() 394 bond = if_nametoindex("bond"); in test_xdp_bonding_attach() 395 if (!ASSERT_GE(bond, 0, "if_nametoindex bond")) in test_xdp_bonding_attach() 403 err = system("ip link set veth master bond"); in test_xdp_bonding_attach() [all …]
|
/linux-6.12.1/drivers/net/ethernet/microchip/lan966x/ |
D | lan966x_lag.c | 32 if (!port || !port->bond) in lan966x_lag_set_aggr_pgids() 42 struct net_device *bond; in lan966x_lag_set_aggr_pgids() local 46 if (!port || !port->bond || (visited & BIT(lag))) in lan966x_lag_set_aggr_pgids() 49 bond = port->bond; in lan966x_lag_set_aggr_pgids() 50 bond_mask = lan966x_lag_get_mask(lan966x, bond); in lan966x_lag_set_aggr_pgids() 87 if (port->bond == bond) in lan966x_lag_set_aggr_pgids() 107 bond_mask = lan966x_lag_get_mask(lan966x, port->bond); in lan966x_lag_set_port_ids() 126 struct net_device *bond, in lan966x_lag_port_join() argument 135 bond_mask = lan966x_lag_get_mask(lan966x, bond); in lan966x_lag_port_join() 139 port->bond = bond; in lan966x_lag_port_join() [all …]
|
/linux-6.12.1/tools/testing/selftests/drivers/net/bonding/ |
D | bond-eth-type-change.sh | 4 # Test bond device ether type changing 21 check_err $? "MASTER flag is missing from the bond device" 24 check_err $? "SLAVE flag is missing from the bond device" 27 # test enslaved bond dev type change from ARPHRD_ETHER and back 40 ip link add name "$devbond0" type bond 43 ip link set dev "$devbond0" type bond mode active-backup 44 check_err $? "could not change bond mode to active-backup" 46 ip link add name "$devbond1" type bond 47 ip link add name "$devbond2" type bond 50 # change bond type to non-ARPHRD_ETHER [all …]
|
D | bond-break-lacpdu-tx.sh | 6 # the bond. 32 ip link del veth1-bond >/dev/null 2>&1 || : 33 ip link del veth2-bond >/dev/null 2>&1 || : 43 # create the bond 44 ip link add fbond type bond mode 4 miimon 200 xmit_hash_policy 1 \ 47 # set bond address 51 # set again bond sysfs parameters 52 ip link set fbond type bond ad_actor_sys_prio 65535 55 ip link add name veth1-bond type veth peer name veth1-end 56 ip link add name veth2-bond type veth peer name veth2-end [all …]
|
D | dev_addr_lists.sh | 4 # Test bond device handling of addr lists (dev->uc, mc) 40 # bond driver control paths vary between modes that have a primary slave 58 # Initial state of bond device, up | down 63 ip link add bond1 "$init_state" type bond mode 802.3ad 84 log_test "bonding LACPDU multicast address to slave (from bond $init_state)" 88 # of the bond when enslaving a device. Test both cases.
|
D | Makefile | 5 bond-arp-interval-causes-panic.sh \ 6 bond-break-lacpdu-tx.sh \ 7 bond-lladdr-target.sh \ 12 bond-eth-type-change.sh \
|
D | bond_options.sh | 37 ip -n ${s_ns} link add bond1 type bond ns_ip6_target ${g_ip6} 73 # create bond 76 ip -n ${s_ns} link set bond0 type bond active_slave eth1 141 # Test changing bond slave prio 188 log_test_skip "prio ns" "Current iproute or kernel doesn't support bond option 'ns_ip6_target'." 203 log_test_skip "prio" "Current iproute or kernel doesn't support bond option 'prio'." 228 # create bond 309 …log_test_skip "arp_validate ns" "Current iproute or kernel doesn't support bond option 'ns_ip6_tar… 333 # create bond
|
D | lag_lib.sh | 21 ip link add "$name" up type bond mode "$mode" 147 ip netns exec ${CLIENT} ip link add bond0 type bond $@ 164 # force the links of the bond down 174 check_err $rc "Bond failed to recover" 175 log_test "$1 ($2) bond recovery"
|
/linux-6.12.1/drivers/net/ethernet/mellanox/mlx5/core/en/rep/ |
D | bond.c | 27 /* private of uplink holding rep bond metadata list */ 42 list_for_each_entry(cur, &uplink_priv->bond->metadata_list, list) { in mlx5e_lookup_rep_bond_metadata() 107 list_add(&mdata->list, &rpriv->uplink_priv.bond->metadata_list); in mlx5e_rep_bond_enslave() 268 /* Bond device of representors and netdev events are used here in specific way 271 * also change the traditional behavior of lower dev under bond device. 273 * of bond device are not supported. 280 struct mlx5e_rep_bond *bond; in mlx5e_rep_esw_bond_netevent() local 286 bond = container_of(nb, struct mlx5e_rep_bond, nb); in mlx5e_rep_esw_bond_netevent() 289 /* Verify VF representor is on the same device of the bond handling the netevent. */ in mlx5e_rep_esw_bond_netevent() 290 if (rpriv->uplink_priv.bond != bond) in mlx5e_rep_esw_bond_netevent() [all …]
|
/linux-6.12.1/Documentation/networking/ |
D | bonding.rst | 156 configuring a bond, it is recommended "tail -f /var/log/messages" be 201 use the MAC of the bond itself. It is preferred to have the 230 - A slave is added to or removed from the bond 236 - The bond's administrative state changes to up 457 and Distributing states, maintaining the bond in coupled control. 473 bond's MAC address in accordance with the selected policy. 480 bonding to set all slaves of an active-backup bond to 487 MAC address of the bond should always be the MAC 490 address of the bond changes during a failover. 515 address of the bond to be selected normally (normally [all …]
|
/linux-6.12.1/Documentation/devicetree/bindings/media/ |
D | renesas,drif.yaml | 40 property called "renesas,primary-bond". 44 the zeroth channel is selected as primary-bond. This channels accepts 45 properties common to all the members of the bond. 47 "renesas,bonding" or "renesas,primary-bond" will have no effect. That 93 renesas,primary-bond: 134 - renesas,primary-bond 188 renesas,primary-bond;
|
/linux-6.12.1/drivers/net/ethernet/mscc/ |
D | ocelot.c | 1715 static u32 ocelot_get_bond_mask(struct ocelot *ocelot, struct net_device *bond) in ocelot_get_bond_mask() argument 1728 if (ocelot_port->bond == bond) in ocelot_get_bond_mask() 1738 int ocelot_bond_get_id(struct ocelot *ocelot, struct net_device *bond) in ocelot_bond_get_id() argument 1740 int bond_mask = ocelot_get_bond_mask(ocelot, bond); in ocelot_bond_get_id() 1775 if (cpu->bond) in ocelot_dsa_8021q_cpu_assigned_ports() 1776 mask &= ~ocelot_get_bond_mask(ocelot, cpu->bond); in ocelot_dsa_8021q_cpu_assigned_ports() 1792 if (cpu_port->bond) in ocelot_port_assigned_dsa_8021q_cpu_mask() 1793 return ocelot_get_bond_mask(ocelot, cpu_port->bond); in ocelot_port_assigned_dsa_8021q_cpu_mask() 1858 struct net_device *bond = ocelot_port->bond; in ocelot_apply_bridge_fwd_mask() local 1866 if (bond) in ocelot_apply_bridge_fwd_mask() [all …]
|