switch.c (56435d9145f5b97decca66244d2049e2d5e4616d) | switch.c (18596f504a3e56c4f8e132b2a437cbe23a3f4635) |
---|---|
1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Handling of a single switch chip, part of a switch fabric 4 * 5 * Copyright (c) 2017 Savoir-faire Linux Inc. 6 * Vivien Didelot <vivien.didelot@savoirfairelinux.com> 7 */ 8 --- 152 unchanged lines hidden (view full) --- 161 int port = dsa_towards_port(ds, info->sw_index, info->port); 162 163 if (!ds->ops->port_fdb_del) 164 return -EOPNOTSUPP; 165 166 return ds->ops->port_fdb_del(ds, port, info->addr, info->vid); 167} 168 | 1// SPDX-License-Identifier: GPL-2.0-or-later 2/* 3 * Handling of a single switch chip, part of a switch fabric 4 * 5 * Copyright (c) 2017 Savoir-faire Linux Inc. 6 * Vivien Didelot <vivien.didelot@savoirfairelinux.com> 7 */ 8 --- 152 unchanged lines hidden (view full) --- 161 int port = dsa_towards_port(ds, info->sw_index, info->port); 162 163 if (!ds->ops->port_fdb_del) 164 return -EOPNOTSUPP; 165 166 return ds->ops->port_fdb_del(ds, port, info->addr, info->vid); 167} 168 |
169static int dsa_switch_hsr_join(struct dsa_switch *ds, 170 struct dsa_notifier_hsr_info *info) 171{ 172 if (ds->index == info->sw_index && ds->ops->port_hsr_join) 173 return ds->ops->port_hsr_join(ds, info->port, info->hsr); 174 175 return -EOPNOTSUPP; 176} 177 178static int dsa_switch_hsr_leave(struct dsa_switch *ds, 179 struct dsa_notifier_hsr_info *info) 180{ 181 if (ds->index == info->sw_index && ds->ops->port_hsr_leave) 182 return ds->ops->port_hsr_leave(ds, info->port, info->hsr); 183 184 return -EOPNOTSUPP; 185} 186 |
|
169static int dsa_switch_lag_change(struct dsa_switch *ds, 170 struct dsa_notifier_lag_info *info) 171{ 172 if (ds->index == info->sw_index && ds->ops->port_lag_change) 173 return ds->ops->port_lag_change(ds, info->port); 174 175 if (ds->index != info->sw_index && ds->ops->crosschip_lag_change) 176 return ds->ops->crosschip_lag_change(ds, info->sw_index, --- 189 unchanged lines hidden (view full) --- 366 err = dsa_switch_bridge_leave(ds, info); 367 break; 368 case DSA_NOTIFIER_FDB_ADD: 369 err = dsa_switch_fdb_add(ds, info); 370 break; 371 case DSA_NOTIFIER_FDB_DEL: 372 err = dsa_switch_fdb_del(ds, info); 373 break; | 187static int dsa_switch_lag_change(struct dsa_switch *ds, 188 struct dsa_notifier_lag_info *info) 189{ 190 if (ds->index == info->sw_index && ds->ops->port_lag_change) 191 return ds->ops->port_lag_change(ds, info->port); 192 193 if (ds->index != info->sw_index && ds->ops->crosschip_lag_change) 194 return ds->ops->crosschip_lag_change(ds, info->sw_index, --- 189 unchanged lines hidden (view full) --- 384 err = dsa_switch_bridge_leave(ds, info); 385 break; 386 case DSA_NOTIFIER_FDB_ADD: 387 err = dsa_switch_fdb_add(ds, info); 388 break; 389 case DSA_NOTIFIER_FDB_DEL: 390 err = dsa_switch_fdb_del(ds, info); 391 break; |
392 case DSA_NOTIFIER_HSR_JOIN: 393 err = dsa_switch_hsr_join(ds, info); 394 break; 395 case DSA_NOTIFIER_HSR_LEAVE: 396 err = dsa_switch_hsr_leave(ds, info); 397 break; |
|
374 case DSA_NOTIFIER_LAG_CHANGE: 375 err = dsa_switch_lag_change(ds, info); 376 break; 377 case DSA_NOTIFIER_LAG_JOIN: 378 err = dsa_switch_lag_join(ds, info); 379 break; 380 case DSA_NOTIFIER_LAG_LEAVE: 381 err = dsa_switch_lag_leave(ds, info); --- 46 unchanged lines hidden --- | 398 case DSA_NOTIFIER_LAG_CHANGE: 399 err = dsa_switch_lag_change(ds, info); 400 break; 401 case DSA_NOTIFIER_LAG_JOIN: 402 err = dsa_switch_lag_join(ds, info); 403 break; 404 case DSA_NOTIFIER_LAG_LEAVE: 405 err = dsa_switch_lag_leave(ds, info); --- 46 unchanged lines hidden --- |