Home
last modified time | relevance | path

Searched refs:bond (Results 1 – 25 of 51) sorted by relevance

123

/linux-6.12.1/drivers/net/bonding/
Dbond_options.c20 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);
36 static int bond_option_arp_ip_targets_set(struct bonding *bond,
[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,
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()
336 if (bond->params.xmit_policy != BOND_XMIT_POLICY_VLAN_SRCMAC) 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()
168 struct bonding *bond = to_bond(d); in bonding_show_slaves() local
[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_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_netlink.c61 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()
246 err = __bond_opt_set(bond, BOND_OPT_DOWNDELAY, &newval, in bond_changelink()
[all …]
Dbond_3ad.c145 struct bonding *bond = __get_bond_by_port(port); in __get_first_agg() local
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
275 if (bond == NULL) in __check_agg_selection_timer()
278 return atomic_read(&BOND_AD_INFO(bond).agg_select_timer) ? 1 : 0; in __check_agg_selection_timer()
386 slave->bond->dev->name, in __get_link_speed()
[all …]
Dbond_sysfs_slave.c64 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.h51 #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) : \
69 #define bond_first_slave_rcu(bond) \ argument
[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.h119 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);
165 void bond_slave_ns_maddrs_del(struct bonding *bond, struct slave *slave);
Dbond_3ad.h262 #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);
310 void bond_3ad_update_ad_actor_settings(struct bonding *bond);
/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 …]
Dlan966x_mac.c217 mac_entry->lag = port->bond ? true : false; in lan966x_mac_alloc_entry()
306 port->bond ?: port->dev); in lan966x_mac_add_entry()
482 port->bond ?: port->dev); in lan966x_mac_irq_process()
526 mac, vid, port->bond ?: port->dev); in lan966x_mac_irq_process()
/linux-6.12.1/drivers/net/ethernet/mellanox/mlx5/core/en/rep/
Dbond.c42 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()
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()
290 if (rpriv->uplink_priv.bond != bond) in mlx5e_rep_esw_bond_netevent()
318 uplink_priv->bond = kvzalloc(sizeof(*uplink_priv->bond), GFP_KERNEL); in mlx5e_rep_bond_init()
319 if (!uplink_priv->bond) { in mlx5e_rep_bond_init()
324 INIT_LIST_HEAD(&uplink_priv->bond->metadata_list); in mlx5e_rep_bond_init()
325 uplink_priv->bond->nb.notifier_call = mlx5e_rep_esw_bond_netevent; in mlx5e_rep_bond_init()
327 &uplink_priv->bond->nb, in mlx5e_rep_bond_init()
[all …]
/linux-6.12.1/tools/testing/selftests/drivers/net/bonding/
Dbond-break-lacpdu-tx.sh32 ip link del veth1-bond >/dev/null 2>&1 || :
33 ip link del veth2-bond >/dev/null 2>&1 || :
44 ip link add fbond type bond mode 4 miimon 200 xmit_hash_policy 1 \
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
60 ip link set veth1-bond master fbond
61 ip link set veth2-bond master fbond
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-eth-type-change.sh40 ip link add name "$devbond0" type bond
43 ip link set dev "$devbond0" type bond mode active-backup
46 ip link add name "$devbond1" type bond
47 ip link add name "$devbond2" type bond
Dbond-arp-interval-causes-panic.sh31 ip netns exec client ip link add dev bond0 down type bond mode 1 \
40 ip netns exec client ip link set dev bond0 type bond mode 0 \
Dbond_topo_2d1c.sh61 ip -n ${s_ns} link add bond0 type bond mode active-backup miimon 100
90 ip -n ${s_ns} link add bond0 type bond $param
/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 …]
Docelot_net.c1394 struct net_device *bond, in ocelot_netdevice_lag_join() argument
1405 err = ocelot_port_lag_join(ocelot, port, bond, info, extack); in ocelot_netdevice_lag_join()
1410 bridge_dev = netdev_master_upper_dev_get(bond); in ocelot_netdevice_lag_join()
1414 err = ocelot_netdevice_bridge_join(dev, bond, bridge_dev, extack); in ocelot_netdevice_lag_join()
1421 ocelot_port_lag_leave(ocelot, port, bond); in ocelot_netdevice_lag_join()
1426 struct net_device *bond) in ocelot_netdevice_pre_lag_leave() argument
1430 bridge_dev = netdev_master_upper_dev_get(bond); in ocelot_netdevice_pre_lag_leave()
1434 ocelot_netdevice_pre_bridge_leave(dev, bond); in ocelot_netdevice_pre_lag_leave()
1438 struct net_device *bond) in ocelot_netdevice_lag_leave() argument
1446 ocelot_port_lag_leave(ocelot, port, bond); in ocelot_netdevice_lag_leave()
[all …]
/linux-6.12.1/tools/testing/selftests/bpf/prog_tests/
Dxdp_bonding.c384 int veth, bond, err; in test_xdp_bonding_attach() local
394 bond = if_nametoindex("bond"); in test_xdp_bonding_attach()
395 if (!ASSERT_GE(bond, 0, "if_nametoindex bond")) in test_xdp_bonding_attach()
416 link2 = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond); in test_xdp_bonding_attach()
424 link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond); in test_xdp_bonding_attach()
446 link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond); in test_xdp_bonding_attach()
463 int bond, err; in test_xdp_bonding_nested() local
468 bond = if_nametoindex("bond"); in test_xdp_bonding_nested()
469 if (!ASSERT_GE(bond, 0, "if_nametoindex bond")) in test_xdp_bonding_nested()
486 link = bpf_program__attach_xdp(skeletons->xdp_dummy->progs.xdp_dummy_prog, bond); in test_xdp_bonding_nested()
/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 …]

123