Lines Matching full:lag
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()
405 a = dsa_mac_addr_find(&lag->fdbs, addr, vid, db); in dsa_switch_do_lag_fdb_del()
407 trace_dsa_lag_fdb_del_not_found(lag->dev, addr, vid, &db); in dsa_switch_do_lag_fdb_del()
413 trace_dsa_lag_fdb_del_drop(lag->dev, addr, vid, &db, in dsa_switch_do_lag_fdb_del()
418 err = ds->ops->lag_fdb_del(ds, *lag, addr, vid, db); in dsa_switch_do_lag_fdb_del()
419 trace_dsa_lag_fdb_del_hw(lag->dev, addr, vid, &db, err); in dsa_switch_do_lag_fdb_del()
429 mutex_unlock(&lag->fdb_lock); in dsa_switch_do_lag_fdb_del()
446 err = dsa_switch_do_lag_fdb_add(ds, dp->lag, in dsa_switch_host_fdb_add()
474 err = dsa_switch_do_lag_fdb_del(ds, dp->lag, in dsa_switch_host_fdb_del()
522 /* Notify switch only if it has a port in this LAG */ in dsa_switch_lag_fdb_add()
524 if (dsa_port_offloads_lag(dp, info->lag)) in dsa_switch_lag_fdb_add()
525 return dsa_switch_do_lag_fdb_add(ds, info->lag, in dsa_switch_lag_fdb_add()
540 /* Notify switch only if it has a port in this LAG */ in dsa_switch_lag_fdb_del()
542 if (dsa_port_offloads_lag(dp, info->lag)) in dsa_switch_lag_fdb_del()
543 return dsa_switch_do_lag_fdb_del(ds, info->lag, in dsa_switch_lag_fdb_del()
567 return ds->ops->port_lag_join(ds, info->dp->index, info->lag, in dsa_switch_lag_join()
572 info->dp->index, info->lag, in dsa_switch_lag_join()
582 return ds->ops->port_lag_leave(ds, info->dp->index, info->lag); in dsa_switch_lag_leave()
586 info->dp->index, info->lag); in dsa_switch_lag_leave()