diff mbox series

[net-next,2/4] net: dsa: sja1105: request promiscuous mode for master

Message ID 20200511202046.20515-3-olteanv@gmail.com
State New
Headers show
Series DSA: promisc on master, generic flow dissector code | expand

Commit Message

Vladimir Oltean May 11, 2020, 8:20 p.m. UTC
From: Vladimir Oltean <vladimir.oltean@nxp.com>

Currently PTP is broken when ports are in standalone mode (the tagger
keeps printing this message):

sja1105 spi0.1: Expected meta frame, is  180c200000e in the DSA master multicast filter?

Sure, one might say "simply add 01-80-c2-00-00-0e to the master's RX
filter" but things become more complicated because:

- Actually all frames in the 01-80-c2-xx-xx-xx and 01-1b-19-xx-xx-xx
  range are trapped to the CPU automatically
- The switch mangles bytes 3 and 4 of the MAC address via the incl_srcpt
  ("include source port [in the DMAC]") option, so an address installed
  to the RX filter would, at the end of the day, not correspond to the
  final address seen by the DSA master.

Assume RX filters on DSA masters are typically too small to include all
necessary addresses for PTP to work properly on sja1105, and just
request promiscuous mode unconditionally.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
---
 drivers/net/dsa/sja1105/sja1105_main.c | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/drivers/net/dsa/sja1105/sja1105_main.c b/drivers/net/dsa/sja1105/sja1105_main.c
index d5de9305df25..786e698b1856 100644
--- a/drivers/net/dsa/sja1105/sja1105_main.c
+++ b/drivers/net/dsa/sja1105/sja1105_main.c
@@ -2080,6 +2080,9 @@  static int sja1105_setup(struct dsa_switch *ds)
 		dev_err(ds->dev, "Failed to configure MII clocking: %d\n", rc);
 		return rc;
 	}
+
+	ds->promisc_on_master = true;
+
 	/* On SJA1105, VLAN filtering per se is always enabled in hardware.
 	 * The only thing we can do to disable it is lie about what the 802.1Q
 	 * EtherType is.