765-net-dsa-Include-local-addresses-in-assisted-CPU-port.patch 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. From dd082716b43a3684b2f473ae5d1e76d1c076d86d Mon Sep 17 00:00:00 2001
  2. From: Tobias Waldekranz <[email protected]>
  3. Date: Sat, 16 Jan 2021 02:25:12 +0100
  4. Subject: [PATCH] net: dsa: Include local addresses in assisted CPU port
  5. learning
  6. Add local addresses (i.e. the ports' MAC addresses) to the hardware
  7. FDB when assisted CPU port learning is enabled.
  8. NOTE: The bridge's own MAC address is also "local". If that address is
  9. not shared with any port, the bridge's MAC is not be added by this
  10. functionality - but the following commit takes care of that case.
  11. Signed-off-by: Tobias Waldekranz <[email protected]>
  12. ---
  13. net/dsa/slave.c | 8 +++++---
  14. 1 file changed, 5 insertions(+), 3 deletions(-)
  15. --- a/net/dsa/slave.c
  16. +++ b/net/dsa/slave.c
  17. @@ -2192,10 +2192,12 @@ static int dsa_slave_switchdev_event(str
  18. fdb_info = ptr;
  19. if (dsa_slave_dev_check(dev)) {
  20. - if (!fdb_info->added_by_user)
  21. - return NOTIFY_OK;
  22. -
  23. dp = dsa_slave_to_port(dev);
  24. +
  25. + if (fdb_info->local && dp->ds->assisted_learning_on_cpu_port)
  26. + dp = dp->cpu_dp;
  27. + else if (!fdb_info->added_by_user)
  28. + return NOTIFY_OK;
  29. } else {
  30. /* Snoop addresses learnt on foreign interfaces
  31. * bridged with us, for switches that don't