Commit c6451cda authored by Vladimir Oltean's avatar Vladimir Oltean Committed by David S. Miller
Browse files

net: switchdev: introduce helper for checking dynamically learned FDB entries



It is a bit difficult to understand what DSA checks when it tries to
avoid installing dynamically learned addresses on foreign interfaces as
local host addresses, so create a generic switchdev helper that can be
reused and is generally more readable.

Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 7d901a1e
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -238,6 +238,12 @@ switchdev_notifier_info_to_extack(const struct switchdev_notifier_info *info)
	return info->extack;
}

static inline bool
switchdev_fdb_is_dynamically_learned(const struct switchdev_notifier_fdb_info *fdb_info)
{
	return !fdb_info->added_by_user && !fdb_info->is_local;
}

#ifdef CONFIG_NET_SWITCHDEV

void switchdev_deferred_process(void);
+1 −1
Original line number Diff line number Diff line
@@ -2438,7 +2438,7 @@ static int dsa_slave_switchdev_event(struct notifier_block *unused,
			 * On the other hand, FDB entries for local termination
			 * should always be installed.
			 */
			if (!fdb_info->added_by_user && !fdb_info->is_local &&
			if (switchdev_fdb_is_dynamically_learned(fdb_info) &&
			    !dp->ds->assisted_learning_on_cpu_port)
				return NOTIFY_DONE;