| /linux/drivers/net/ethernet/netronome/nfp/flower/ |
| H A D | lag_conf.c | 6 /* LAG group config flags. */ 15 /* LAG port state flags. */ 27 * struct nfp_flower_cmsg_lag_config - control message payload for LAG config 49 * struct nfp_fl_lag_group - list entry for each LAG group 86 static unsigned int nfp_fl_get_next_pkt_number(struct nfp_fl_lag *lag) in nfp_fl_get_next_pkt_number() argument 88 lag->pkt_num++; in nfp_fl_get_next_pkt_number() 89 lag->pkt_num &= NFP_FL_LAG_PKT_NUMBER_MASK; in nfp_fl_get_next_pkt_number() 91 return lag->pkt_num; in nfp_fl_get_next_pkt_number() 94 static void nfp_fl_increment_version(struct nfp_fl_lag *lag) in nfp_fl_increment_version() argument 97 lag->batch_ver += 2; in nfp_fl_increment_version() [all …]
|
| H A D | main.h | 109 * struct nfp_tun_neigh_lag - lag info 110 * @lag_version: lag version 111 * @lag_instance: lag instance 148 * @lag: lag port info 155 struct nfp_tun_neigh_lag lag; member 164 * @lag: lag port info 171 struct nfp_tun_neigh_lag lag; member 229 * @rst_cfg: Marker to reset HW LAG config 363 * @lag_port_flags: Extended port flags to record lag state of repr 655 void nfp_flower_lag_init(struct nfp_fl_lag *lag); [all …]
|
| /linux/drivers/net/ethernet/microchip/lan966x/ |
| H A D | lan966x_lag.c | 10 int p, lag, i; in lan966x_lag_set_aggr_pgids() local 25 * port ID == LAG ID. So we mark as visited all further ports in the in lan966x_lag_set_aggr_pgids() 38 /* Now, set PGIDs for each active LAG */ in lan966x_lag_set_aggr_pgids() 39 for (lag = 0; lag < lan966x->num_phys_ports; ++lag) { in lan966x_lag_set_aggr_pgids() 40 struct lan966x_port *port = lan966x->ports[lag]; in lan966x_lag_set_aggr_pgids() 46 if (!port || !port->bond || (visited & BIT(lag))) in lan966x_lag_set_aggr_pgids() 78 /* Mark all ports in the same LAG as visited to avoid applying in lan966x_lag_set_aggr_pgids() 81 for (p = lag; p < lan966x->num_phys_ports; p++) { in lan966x_lag_set_aggr_pgids() 224 "LAG device using unsupported Tx type"); in lan966x_lag_port_prechangeupper() 230 "LAG devices can have only the same hash_type"); in lan966x_lag_port_prechangeupper() [all …]
|
| /linux/Documentation/scheduler/ |
| H A D | sched-eevdf.rst | 15 time to each task, creating a "lag" value that can be used to determine 17 with a positive lag is owed CPU time, while a negative lag means the task 18 has exceeded its portion. EEVDF picks tasks with lag greater or equal to 24 There are ongoing discussions on how to manage lag, especially for sleeping 27 by sleeping briefly to reset their negative lag: when a task sleeps, it 29 lag to decay over VRT. Hence, long-sleeping tasks eventually have their lag
|
| /linux/tools/testing/selftests/drivers/net/mlxsw/ |
| H A D | q_in_q_veto.sh | 121 check_fail $? "802.1ad vlan upper creation on top of a lag not rejected" 126 check_err $? "802.1ad vlan upper creation on top of a lag rejected without extack" 128 log_test "create 802.1ad vlan upper on top of a lag" 192 check_fail $? "vlan upper creation on top of lag enslaved to 802.1ad bridge not rejected" 196 check_err $? "vlan upper creation on top of lag enslaved to 802.1ad bridge rejected without extack" 198 log_test "create vlan upper on top of lag enslaved to 802.1ad bridge" 242 check_fail $? "lag with vlan upper enslavemnt to 802.1ad bridge not rejected" 246 check_err $? "lag with vlan upper enslavemnt to 802.1ad bridge rejected without extack" 248 log_test "enslave lag with vlan upper to 802.1ad bridge"
|
| /linux/net/dsa/ |
| H A D | switch.c | 354 static int dsa_switch_do_lag_fdb_add(struct dsa_switch *ds, struct dsa_lag *lag, in dsa_switch_do_lag_fdb_add() argument 361 mutex_lock(&lag->fdb_lock); in dsa_switch_do_lag_fdb_add() 363 a = dsa_mac_addr_find(&lag->fdbs, addr, vid, db); in dsa_switch_do_lag_fdb_add() 366 trace_dsa_lag_fdb_add_bump(lag->dev, addr, vid, &db, in dsa_switch_do_lag_fdb_add() 377 err = ds->ops->lag_fdb_add(ds, *lag, addr, vid, db); in dsa_switch_do_lag_fdb_add() 378 trace_dsa_lag_fdb_add_hw(lag->dev, addr, vid, &db, err); in dsa_switch_do_lag_fdb_add() 388 list_add_tail(&a->list, &lag->fdbs); in dsa_switch_do_lag_fdb_add() 391 mutex_unlock(&lag->fdb_lock); in dsa_switch_do_lag_fdb_add() 396 static int dsa_switch_do_lag_fdb_del(struct dsa_switch *ds, struct dsa_lag *lag, in dsa_switch_do_lag_fdb_del() argument 403 mutex_lock(&lag->fdb_lock); in dsa_switch_do_lag_fdb_del() [all …]
|
| H A D | trace.c | 15 sprintf(buf, "lag %s id %d", db->lag.dev->name, db->lag.id); in dsa_db_print()
|
| H A D | dsa.c | 53 * dsa_lag_map() - Map LAG structure to a linear LAG array 55 * @lag: LAG structure that is to be mapped to the tree's array. 63 void dsa_lag_map(struct dsa_switch_tree *dst, struct dsa_lag *lag) in dsa_lag_map() argument 69 dst->lags[id - 1] = lag; in dsa_lag_map() 70 lag->id = id; in dsa_lag_map() 77 * returns an error for this device when joining the LAG. The in dsa_lag_map() 79 * fall back to a software LAG. in dsa_lag_map() 84 * dsa_lag_unmap() - Remove a LAG ID mapping 86 * @lag: LAG structure that was mapped. 91 void dsa_lag_unmap(struct dsa_switch_tree *dst, struct dsa_lag *lag) in dsa_lag_unmap() argument [all …]
|
| H A D | dsa.h | 20 void dsa_lag_map(struct dsa_switch_tree *dst, struct dsa_lag *lag); 21 void dsa_lag_unmap(struct dsa_switch_tree *dst, struct dsa_lag *lag);
|
| H A D | switch.h | 63 struct dsa_lag *lag; member 79 struct dsa_lag lag; member
|
| H A D | tag_dsa.c | 261 struct dsa_lag *lag; in dsa_rcv_ll() local 267 lag = dsa_lag_by_id(cpu_dp->dst, source_port + 1); in dsa_rcv_ll() 268 skb->dev = lag ? lag->dev : NULL; in dsa_rcv_ll() 277 /* When using LAG offload, skb->dev is not a DSA user interface, in dsa_rcv_ll()
|
| H A D | user.c | 1948 * - If standalone (this includes software bridge, software LAG): 3074 if (!dp->lag) in dsa_user_lag_changeupper() 3075 /* Software LAG */ in dsa_user_lag_changeupper() 3106 if (!dp->lag) in dsa_user_lag_prechangeupper() 3107 /* Software LAG */ in dsa_user_lag_prechangeupper() 3208 /* To be eligible as a DSA conduit, a LAG must have all lower interfaces be 3209 * eligible DSA conduits. Additionally, all LAG slaves must be DSA conduits of 3223 "All LAG ports must be eligible as DSA conduits"); in dsa_lag_conduit_validate() 3233 "LAG contains DSA conduits of disjoint switch trees"); in dsa_lag_conduit_validate() 3264 /* Allow LAG uppers, subject to further restrictions in in dsa_conduit_prechangeupper_sanity_check() [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlxsw/ |
| H A D | pci_hw.h | 146 * Packet arrives from a port which is a LAG 148 MLXSW_ITEM32(pci, cqe0, lag, 0x00, 23, 1); 149 MLXSW_ITEM32(pci, cqe12, lag, 0x00, 24, 1); 150 mlxsw_pci_cqe_item_helpers(lag, 0, 12, 12); 153 * When lag=0: System port on which the packet was received 154 * When lag=1: 155 * bits [15:4] LAG ID on which the packet was received 250 * The Tx port of a packet that is mirrored / sampled to the CPU is a LAG. 255 * The port index within the LAG of a packet that is mirrored / sampled to the 264 * The Tx LAG ID of the original packet that is mirrored / sampled to the CPU. [all …]
|
| H A D | spectrum.c | 2551 /* In DDD mode, which we by default use, each LAG entry is 8 PGT in mlxsw_sp_lag_pgt_init() 2552 * entries. The LAG table address needs to be 8-aligned, but that ought in mlxsw_sp_lag_pgt_init() 2553 * to be the case, since the LAG table is allocated first. in mlxsw_sp_lag_pgt_init() 3028 /* Initialize before FIDs so that the LAG table is at the start of PGT in mlxsw_sp_init() 3033 dev_err(mlxsw_sp->bus_info->dev, "Failed to initialize LAG\n"); in mlxsw_sp_init() 4113 struct mlxsw_sp_lag *lag; in mlxsw_sp_lag_create() local 4124 "Exceeded number of supported LAG devices"); in mlxsw_sp_lag_create() 4134 lag = &mlxsw_sp->lags[lag_id]; in mlxsw_sp_lag_create() 4135 lag->lag_id = lag_id; in mlxsw_sp_lag_create() 4136 lag->dev = lag_dev; in mlxsw_sp_lag_create() [all …]
|
| /linux/Documentation/networking/dsa/ |
| H A D | configuration.rst | 383 This can be achieved by placing the DSA conduits under a LAG interface (bonding 384 or team). DSA monitors this operation and creates a mirror of this software LAG 385 on the CPU ports facing the physical DSA conduits that constitute the LAG slave 399 information, or a LAG interface which contains only slaves which are valid 417 # CPU ports in LAG, using explicit assignment of the DSA conduit 429 # CPU ports in LAG, relying on implicit migration of the DSA conduit 437 Notice that in the case of CPU ports under a LAG, the use of the 447 static user to CPU port assignment with LAG between DSA conduits. It is not 449 upper interfaces (this includes LAG devices - the conduit must always be the LAG 455 Physical DSA conduits are allowed to join and leave at any time a LAG interface [all …]
|
| H A D | dsa.rst | 310 When using multiple CPU ports, it is possible to stack a LAG (bonding/team) 311 device between the DSA user devices and the physical DSA conduits. The LAG 312 device is thus also a DSA conduit, but the LAG slave devices continue to be DSA 314 recovery in case the LAG DSA conduit disappears). Thus, the data path of the LAG 317 LAG slave). Therefore, the RX data path of the LAG DSA conduit is not used. 319 ``dsa_enqueue_skb``, which calls ``dev_queue_xmit`` towards the LAG DSA conduit. 659 conduit->dsa_ptr``. Additionally, the conduit can also be a LAG device where 660 all the slave devices are physical DSA conduits. LAG DSA also have a 662 duplicate of the first physical DSA conduit's (LAG slave) ``dsa_ptr``. In case 663 of a LAG DSA conduit, a further call to ``port_lag_join`` will be emitted [all …]
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/lag/ |
| H A D | lag.c | 43 #include "lag.h" 212 mlx5_core_info(dev, "lag map active ports: %s\n", buf); in mlx5_lag_print_mapping() 224 mlx5_core_info(dev, "lag map:%s\n", buf); in mlx5_lag_print_mapping() 282 mlx5_core_err(dev, "Failed to register LAG netdev notifier\n"); in mlx5_lag_dev_alloc() 288 mlx5_core_err(dev, "Failed to init multipath lag err=%d\n", in mlx5_lag_dev_alloc() 466 "Failed to create lag drop rule, error: %d", err); in mlx5_lag_drop_rule_setup() 565 "Failed to modify LAG (%d)\n", in mlx5_modify_lag() 582 /** Only sriov and roce lag should have tracker->tx_type set so in mlx5_modify_lag() 702 "Failed to create LAG (%d)\n", in mlx5_create_lag() 719 "Failed to deactivate RoCE LAG; driver restart required\n"); in mlx5_create_lag() [all …]
|
| H A D | mpesw.c | 6 #include "lag/lag.h" 94 mlx5_core_warn(dev0, "Failed to create LAG in MPESW mode (%d)\n", err); in enable_mpesw() 132 struct mlx5_lag *ldev = mpesww->lag; in mlx5_mpesw_work() 172 work->lag = ldev; in mlx5_lag_mpesw_queue_work()
|
| H A D | mpesw.h | 7 #include "lag.h" 22 struct mlx5_lag *lag; member
|
| /linux/include/net/ |
| H A D | dsa.h | 136 /* Maps offloaded LAG netdevs to a zero-based linear ID for 168 /* LAG IDs are one-based, the dst->lags array is zero-based */ 184 /* DSA LAG IDs are one-based, dst->lags is zero-based */ in dsa_lag_by_id() 194 struct dsa_lag *lag = dsa_lag_by_id(dst, id); in dsa_lag_id() local 196 if (lag->dev == lag_dev) in dsa_lag_id() 197 return lag->id; in dsa_lag_id() 301 struct dsa_lag *lag; member 359 struct dsa_lag lag; member 495 * offloaded LAG should set this to the maximum number of 727 return dp->lag ? dp->lag->id : 0; in dsa_port_lag_id_get() [all …]
|
| /linux/drivers/net/ethernet/intel/ice/ |
| H A D | ice_dcb_nl.c | 73 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setets() 178 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setdcbx() 274 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setpfc() 341 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_set_pfc_cfg() 402 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setstate() 479 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_set_pg_tc_cfg_tx() 538 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_set_pg_bwg_cfg_tx() 763 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_setapp() 879 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_delapp() 985 if (pf->lag && pf->lag->bonded) { in ice_dcbnl_cee_set_all()
|
| /linux/net/switchdev/ |
| H A D | switchdev.c | 647 * towards a bridge or a LAG device. in __switchdev_handle_fdb_event_to_device() 654 /* Bridge ports might be either us, or LAG interfaces in __switchdev_handle_fdb_event_to_device() 670 /* Event is neither on a bridge nor a LAG. Check whether it is on an in __switchdev_handle_fdb_event_to_device() 734 /* Switch ports might be stacked under e.g. a LAG. Ignore the in __switchdev_handle_port_obj_add() 760 /* Event is neither on a bridge nor a LAG. Check whether it is on an in __switchdev_handle_port_obj_add() 783 * bridge or a LAG. 845 /* Switch ports might be stacked under e.g. a LAG. Ignore the in __switchdev_handle_port_obj_del() 871 /* Event is neither on a bridge nor a LAG. Check whether it is on an in __switchdev_handle_port_obj_del() 894 * bridge or a LAG. 956 /* Switch ports might be stacked under e.g. a LAG. Ignore the in __switchdev_handle_port_attr_set()
|
| /linux/drivers/net/ethernet/mscc/ |
| H A D | ocelot.c | 1741 /* The logical port number of a LAG is equal to the lowest numbered physical 1742 * port ID present in that LAG. It may change if that port ever leaves the LAG. 1756 * Note that when CPU ports are in a LAG, the user ports are assigned to the 1758 * port number of the LAG. 1760 * We leave PGID_SRC poorly configured for the 'secondary' CPU port in the LAG 1788 * or the bit mask of CPU ports if said CPU port is in a LAG. 2281 int i, port, lag; in ocelot_set_aggr_pgids() local 2295 * port ID == LAG ID. So we mark as visited all further ports in the in ocelot_set_aggr_pgids() 2308 /* Now, set PGIDs for each active LAG */ in ocelot_set_aggr_pgids() 2309 for (lag = 0; lag < ocelot->num_phys_ports; lag++) { in ocelot_set_aggr_pgids() [all …]
|
| /linux/drivers/net/ethernet/marvell/prestera/ |
| H A D | prestera.h | 136 struct prestera_lag *lag; member 262 /* the interface is of lag type (lag-id) */
|
| /linux/drivers/net/ethernet/mellanox/mlx5/core/en/tc/act/ |
| H A D | mirred.c | 13 #include "lag/lag.h" 36 * In LAG case, *priv* is the private data of in verify_uplink_forwarding()
|