Home
last modified time | relevance | path

Searched full:bond (Results 1 – 25 of 98) sorted by relevance

1234

/linux-6.12.1/drivers/net/bonding/
Dbond_options.c3 * 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 …]
Dbond_alb.c56 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 …]
Dbond_main.c266 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 …]
Dbond_sysfs.c40 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 …]
Dbond_procfs.c14 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 …]
Dbond_netlink.c3 * 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 …]
Dbond_debugfs.c20 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 …]
Dbond_3ad.c136 * __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 …]
Dbond_sysfs_slave.c2 /* 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/
Dbonding.h3 * 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 …]
Dbond_alb.h14 #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 …]
Dbond_options.h3 * 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 …]
Dbond_3ad.h193 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/
Dxdp_bonding.c7 * 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/
Dlan966x_lag.c32 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/
Dbond-eth-type-change.sh4 # 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 …]
Dbond-break-lacpdu-tx.sh6 # 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 …]
Ddev_addr_lists.sh4 # 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.
DMakefile5 bond-arp-interval-causes-panic.sh \
6 bond-break-lacpdu-tx.sh \
7 bond-lladdr-target.sh \
12 bond-eth-type-change.sh \
Dbond_options.sh37 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
Dlag_lib.sh21 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/
Dbond.c27 /* 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/
Dbonding.rst156 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/
Drenesas,drif.yaml40 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/
Docelot.c1715 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 …]

1234