Belkin RT3200/Linksys E8450 WiFi AX discussion

Wasn't there something DSA-related that on some devices (probably the CPU port intp the switch?) results in a larger apparent MTU in the device section? Some sort of data tag required for DSA. On my recent snapshot I see 1508 for eth0...

Good evening @darksky!

The new leads I use are as follows, purchased on Amazon: https://www.amazon.com/gp/product/B07MM88N6J/ref=ppx_yo_dt_b_asin_title_o00_s02?ie=UTF8&psc=1

In terms of performance (remembering I'm in a pretty adverse environment: condo, many FIOS routers around me, etc... at a little over 20 yards, I was at about 60-70Mbps with my TP-Link Archer C1900, 100-120Mbps with the RT3200 stock, and 150-170Mbps with RT3200 with the new antennas/leads.

1 Like

Have others been experiencing sudden drops of WiFi connectivity on the RT3200? I started a new thread to keep this one a bit more tidy. Would appreciate any comments/suggestions/insights in the new thread.

2 Likes

You can try adding WAN port to another bridge to enable learning.

@quarky Have you tried it?

No. My E8450 is running with learning enabled for now. Monitoring for issues.

Edit: Previously I tried add the wan port to br-lan and set it up with vid 2, with lan as 1. It’s not stable. I’ll loose IPv6 wan after a while. But that without the recent VLAN patches. So my E8450 is setup with vlan filtering for lan ports and bridge only.

Is it me or OpenWRT on this router, gives you mixed speed?
I tried the cake script, was getting a whopping 3mbps. then I try software AND hardware offloading with IRQ enabled both times (IRQ and cake, fyi). was okayish, getting around 400mbps. now no matter what I do, the speed is always slow. with the cake script or without. IRQ doesn't seem to help, well, not sure if it does at all.

I was testing with the waveform buffer bloat, with cake/sqm it would never go above 80mbps but on a speedtest site it was maxed out at 400mbps. I have a unlimited 1gbps line.

I tried with just packet sheering, IRQ and software offloading and it was around 500mbps. added hardware to that made no difference.

I purchased this router because it was recommended, now I'm starting to think it was £90 waste.

Thoughts?

hi everybody maybe can interested for bricked router :wink:

enjoy

1 Like

How are you hitting 1gbps with cake? Enlighten us. :wink:

1 Like

what is your connexion ? please give precision :wink:

I put below in startup script and testing. Hopefully this will resolve the wifi issue.

echo 0 > /sys/kernel/debug/ieee80211/phy0/aql_enable
echo 0 > /sys/kernel/debug/ieee80211/phy1/aql_enable
2 Likes

Hi @darksky we are already trying to collect "no connectivity" case in this thread no connectiviy issue thread.

Did you try SW and HW offloading with firewall4, only nftables and iptables removed? Think you can't run QoS then though.

1gbps. with the cake script, I get a max of 400/500mbps.

1 Like

is normal cpu max 500 with cake

witouth cake 1gbits

1 Like

Please try this patch

patch
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -1193,7 +1193,7 @@ mt7530_port_bridge_join(struct dsa_switch *ds, int port,
 			   PCR_MATRIX_MASK, PCR_MATRIX(port_bitmap));
 	priv->ports[port].pm |= PCR_MATRIX(port_bitmap);
 
-	mt7530_clear(priv, MT7530_PSC_P(port), SA_DIS);
+	mt7530_rmw(priv, MT7530_PSC_P(port), SA_CNT_EN, MAC_SA_LRN);
 
 	/* Set to fallback mode for independent VLAN learning */
 	mt7530_rmw(priv, MT7530_PCR_P(port), PCR_PORT_VLAN_MASK,
@@ -1300,7 +1300,7 @@ mt7530_port_bridge_leave(struct dsa_switch *ds, int port,
 			   PCR_MATRIX(BIT(MT7530_CPU_PORT)));
 	priv->ports[port].pm = PCR_MATRIX(BIT(MT7530_CPU_PORT));
 
-	mt7530_set(priv, MT7530_PSC_P(port), SA_DIS);
+	mt7530_rmw(priv, MT7530_PSC_P(port), MAC_SA_LRN, SA_CNT_EN);
 
 	/* When a port is removed from the bridge, the port would be set up
 	 * back to the default as is at initial boot which is a VLAN-unaware
@@ -2714,7 +2714,7 @@ mt7530_setup(struct dsa_switch *ds)
 			   PCR_MATRIX_CLR);
 
 		/* Disable learning by default on all ports */
-		mt7530_set(priv, MT7530_PSC_P(i), SA_DIS);
+		mt7530_rmw(priv, MT7530_PSC_P(i), MAC_SA_LRN, SA_CNT_EN);
 
 		if (dsa_is_cpu_port(ds, i)) {
 			ret = mt753x_cpu_port_enable(ds, i);
@@ -2887,7 +2887,7 @@ mt7531_setup(struct dsa_switch *ds)
 			   PCR_MATRIX_CLR);
 
 		/* Disable learning by default on all ports */
-		mt7530_set(priv, MT7530_PSC_P(i), SA_DIS);
+		mt7530_rmw(priv, MT7530_PSC_P(i), MAC_SA_LRN, SA_CNT_EN);
 
 		mt7530_set(priv, MT7531_DBG_CNT(i), MT7531_DIS_CLR);
 
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -294,6 +294,8 @@ enum mt7530_port_mode {
 
 /* Register for port security control */
 #define MT7530_PSC_P(x)			(0x200c + ((x) * 0x100))
+#define  MAC_SA_LRN			GENMASK(19, 8)
+#define  SA_CNT_EN			BIT(5)
 #define  SA_DIS				BIT(4)
 
 /* Register for port vlan control */

Instead of setting SA_DIS, this enables address learning counter SA_CNT_EN and sets the limit MAC_SA_LRN to 0.

How did you get 1gbps with cake above, then?

Isn’t this effectively does the same thing?

Edit: Forgot to add that I think the issue is likely with the CPU port. When I tried to upload to router, only the LAN ports and the CPU port is involved. The LAN ports being bridged will have learning enabled, while the CPU port is disabled. One of the LAN port is at 10mbps, one at 1000mbps while the other two is disconnected. This resulted in the client to bridge direction sped stuck at 10mbps.

In any case, I’m not convinced that the switch should disable address learning on its own. It is purpose built for such a task.

Yes. Just in another way, in case the SA_DIS bit is bugged.

Standalone switch ports should have address learning disabled.
As for the CPU port, refer to this discussion for the reason why assisted learning is required.

May I know the reason why? The switch needs to know how to route frames coming in from the stand-alone port and whether frames could be sent out from it based on the MAC-addresses that it can reach. Either the switch ARL table is auto-learned or it’s maintained by the CPU. Since it’s already built to learn, why disable it?

CPU ports is a VLAN aware switch should be VLAN tagged. Not sure why the discussion is discussing non tagged CPU port. AFAIK, CPU will have problem sending to more than 1 VLAN if it’s not tagged.

From my tests, I haven't been able to get more than ~500-600 mbps with Cake (Irqbalance, packet steering,etc.). I can, however, saturate a 1gbps cable connection (1gbps download, 50 mbps upload) with fq_codel though (using sqm).

1 Like