/linux-6.12.1/drivers/net/bonding/ |
D | bond_options.c | 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); 36 static int bond_option_arp_ip_targets_set(struct bonding *bond, [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, 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 …]
|
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() 168 struct bonding *bond = to_bond(d); in bonding_show_slaves() local [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_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_netlink.c | 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() 246 err = __bond_opt_set(bond, BOND_OPT_DOWNDELAY, &newval, in bond_changelink() [all …]
|
D | bond_3ad.c | 145 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 …]
|
D | bond_sysfs_slave.c | 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 | 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) : \ 69 #define bond_first_slave_rcu(bond) \ argument [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 | 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); 165 void bond_slave_ns_maddrs_del(struct bonding *bond, struct slave *slave);
|
D | bond_3ad.h | 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); 310 void bond_3ad_update_ad_actor_settings(struct bonding *bond);
|
/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 …]
|
D | lan966x_mac.c | 217 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/ |
D | bond.c | 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() 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/ |
D | bond-break-lacpdu-tx.sh | 32 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
|
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-eth-type-change.sh | 40 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
|
D | bond-arp-interval-causes-panic.sh | 31 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 \
|
D | bond_topo_2d1c.sh | 61 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/ |
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 …]
|
D | ocelot_net.c | 1394 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/ |
D | xdp_bonding.c | 384 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/ |
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 …]
|