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: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
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);
* 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;