Commit 62734c74 authored by Ioana Ciornei's avatar Ioana Ciornei Committed by David S. Miller
Browse files

dpaa2-switch: keep track of the current learning state per port



Keep track of the current learning state per port so that we can
reference it in the next patches when setting up a STP state.

Signed-off-by: default avatarIoana Ciornei <ioana.ciornei@nxp.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 90f07102
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -1329,6 +1329,7 @@ static int dpaa2_switch_port_bridge_flags(struct net_device *netdev,
		err = dpaa2_switch_port_set_learning(port_priv, learn_ena);
		if (err)
			return err;
		port_priv->learn_ena = learn_ena;
	}

	if (flags.mask & (BR_BCAST_FLOOD | BR_FLOOD | BR_MCAST_FLOOD)) {
@@ -1637,6 +1638,7 @@ static int dpaa2_switch_port_bridge_join(struct net_device *netdev,
	/* Inherit the initial bridge port learning state */
	learn_ena = br_port_flag_is_set(netdev, BR_LEARNING);
	err = dpaa2_switch_port_set_learning(port_priv, learn_ena);
	port_priv->learn_ena = learn_ena;

	/* Setup the egress flood policy (broadcast, unknown unicast) */
	err = dpaa2_switch_fdb_set_egress_flood(ethsw, port_priv->fdb->fdb_id);
@@ -1719,6 +1721,7 @@ static int dpaa2_switch_port_bridge_leave(struct net_device *netdev)
	err = dpaa2_switch_port_set_learning(port_priv, false);
	if (err)
		return err;
	port_priv->learn_ena = false;

	/* Add the VLAN 1 as PVID when not under a bridge. We need this since
	 * the dpaa2 switch interfaces are not capable to be VLAN unaware
@@ -2839,6 +2842,7 @@ static int dpaa2_switch_probe_port(struct ethsw_core *ethsw,
	err = dpaa2_switch_port_set_learning(port_priv, false);
	if (err)
		goto err_port_probe;
	port_priv->learn_ena = false;

	return 0;

+1 −0
Original line number Diff line number Diff line
@@ -115,6 +115,7 @@ struct ethsw_port_priv {
	struct dpaa2_switch_fdb	*fdb;
	bool			bcast_flood;
	bool			ucast_flood;
	bool			learn_ena;

	u16			acl_tbl;
};