Wifi mesh with TP Link TGR1900 google onhub

There are lots of threads on this forum about it.
In my opinion it does not work reliably and is more trouble than it is worth.
In my experience, having different ssids and "training" your devices with each ssid, while reducing the transmitted power etc works much better, with devices generally switching from ssid to ssid according to signal strength.

Now to deal with unstable paths - or have you done so already by relocating peers?

Just trying to confirm, but by interference you mean these messages that i posted earlier right ?


gw_ip=192.168.0.1..
Wed May 15 20:34:12 2024 daemon.debug mesh11sd[1855]: Leaving check portal....
Wed May 15 20:34:13 2024 daemon.info mesh11sd[1855]: Path to station [ ] is stable
Wed May 15 20:34:13 2024 daemon.warn mesh11sd[1855]: Warning! Station [  ] is an immediate neighbour, but has had [ 5 ] path_change(s) detected
Wed May 15 20:34:13 2024 daemon.warn mesh11sd[1855]: Warning! Station [  ], consider its location or adjust txpower and/or rssi_threshold
Wed May 15 20:34:13 2024 daemon.debug mesh11sd[1855]: checkinterval 10 seconds

No, not interference. I mean path changes.

This means it has changed path at least once since the last checkinterval (10 seconds) and this will be bad for tcp/ip packets.

The layout of the nodes is important here. If there is one node in the middle of the overlapping coverage of the other two for example....

If I move the station a little closer to the portal then I stop getting the Warnings. Just to clarify, the warning means that the path to the portal for the station on question was constantly changing?

That being said how do I get to keep the station in the original location(I have some ethernet connected machines there which I don't want to move) and still not get the warning? lower the rssi_threshold to -80 for the mesh network for instance ?

Also, I have only one SSID across all three nodes(each node has the same SSID for 2g/5g) and the speed test is coming up really slow now. Is that a problem? is any tuning on tx-power required?(mentioning based on my reading of other discussions regarding that)

Also, can you please help to share the commands for switching the mesh to 5ghz band and testing it out?

Yes.

No, this is a "threshold" in dBm (a log scale meaning decibels relative to 1 milliwatt).
So lowering the threshold (making it more negative) will allow weaker signals to connect. What we would want is the opposite, ie block higher signal strengths.

But this would be what we would want if the 3 nodes were wider spread in distance from each other.

But as you want the intermediate node primarily to provide ethernet connections to fixed, wired devices, and not to contribute to mesh backhaul, we can change this intermediate node into "leech mode". Here it will connect to the mesh backhaul, but will not contribute to it.

On the intermediate node, do:

service mesh11sd stop
uci set mesh11sd.setup.mesh_gate_only='1'
uci commit mesh11sd
service mesh11sd start; exit

Now wait a little while for it to rejoin the mesh, monitoring on the portal node with logread -f if you wish, and see if the paths stabilise - may take a few minutes.

Yes we will do this, but first lest fix the intermediate node issue.

This is because of the constantly changing paths. For example, TCP connections will be constantly dropping packets and retrying.

I had actually already tried that.. that did not fix it. For some reason the portal is still connecting to it and classifying it as immediate neighbor in logs. I rebooted the portal and the intermediate node but still I see the same problem.

Another thing I have tried is to change the mesh_rssi_threshold to -55 but that also does not prevent the portal from connecting to the intermediate node(wich has mesh_gate_only=1).

let me try increasing the txpower(currently 21) to something like 25 and see if that makes a difference.

It depends on the actual layout of the nodes.
Set the intermediate back to mesh_gate_only='0' in the same way you did setting it.

Then set mesh_gate_only='1' on the furthest node.
It does sound like you have strong signals and loads of reflections everywhere.

Increasing mesh_rssi_threshold (towards zero) can help.

BUT increasing txpower can only make things much worse. You would have to reduce tx power on the node causing the problem.

On the portal, show me the output of mesh11sd stations...

I had set mesh_gate_only=1 in the node furthest from the portal. But still the portal and the other node were connecting to this and I could see logs similar to before about paths.

To simplify things I have remove the node in between and now i have two nodes:

  1. Portal
  2. Farthest node

Now i see no messages in the log.
mesh11sd stations shows signal strength as -62/64.
Threshold is -65

But the internet speed is very slow if i am connecting to furthest node and very fast i am connecting to portal.

I don’t really have any other things to try.. any ideas ?

I need to clarify what this means with respect to a leech node.
The important path is the path to the portal.

I will give an example from my test system. For this putpose I have set it up to be similar to yours, two nodes, widely spaced to give coverage, then a third node added between the first two. This intermediate node is set as a leech node (mesh_gate_only=1). Transmit power and mesh_rssi_threshold settings are left at default on all three nodes.

On the portal, the logs show:

Sat May 18 05:38:31 2024 daemon.debug mesh11sd[30501]: interface m-11s-0 is up
Sat May 18 05:38:31 2024 daemon.debug mesh11sd[30501]: node [DEST,ADDR]
Sat May 18 05:38:31 2024 daemon.debug mesh11sd[30501]: node [e6:95:6e:44:60:2e,e6:95:6e:44:60:2e]
Sat May 18 05:38:31 2024 daemon.debug mesh11sd[30501]: node [96:83:c4:06:71:50,96:83:c4:06:71:50]
Sat May 18 05:38:31 2024 daemon.debug mesh11sd[30501]: Entering check portal.... lan
Sat May 18 05:38:31 2024 daemon.debug mesh11sd[30501]: In get_portal_state. firstloop=0...
Sat May 18 05:38:32 2024 daemon.debug mesh11sd[30501]: default_gw=default via 192.168.8.1 dev eth0  src 192.168.8.242 ....
Sat May 18 05:38:33 2024 daemon.debug mesh11sd[30501]: leaving get_portal_state - is_portal=REACHABLE.. gwstatus=REACHABLE.. gw_ip=192.168.8.1..
Sat May 18 05:38:33 2024 daemon.debug mesh11sd[30501]: Leaving check portal....
Sat May 18 05:38:33 2024 daemon.info mesh11sd[30501]: Path to station [ e6:95:6e:44:60:2e ] is stable
Sat May 18 05:38:33 2024 daemon.info mesh11sd[30501]: Path to station [ 96:83:c4:06:71:50 ] is stable
Sat May 18 05:38:33 2024 daemon.debug mesh11sd[30501]: checkinterval 10 seconds

On the intermediate leech node:

Sat May 18 05:40:21 2024 daemon.debug mesh11sd[13259]: interface m-11s-0 is up
Sat May 18 05:40:23 2024 daemon.debug mesh11sd[13259]: node [DEST,ADDR]
Sat May 18 05:40:23 2024 daemon.debug mesh11sd[13259]: node [96:83:c4:06:71:50,96:83:c4:2c:c5:25]
Sat May 18 05:40:23 2024 daemon.debug mesh11sd[13259]: node [96:83:c4:2c:c5:25,96:83:c4:2c:c5:25]
Sat May 18 05:40:23 2024 daemon.debug mesh11sd[13259]: Entering check portal.... lan
Sat May 18 05:40:23 2024 daemon.debug mesh11sd[13259]: In get_portal_state. firstloop=0...
Sat May 18 05:40:23 2024 daemon.debug mesh11sd[13259]: default_gw=default via 192.168.1.1 dev br-lan ....
Sat May 18 05:40:24 2024 daemon.debug mesh11sd[13259]: leaving get_portal_state - is_portal=.. gwstatus=.. gw_ip=192.168.1.1..
Sat May 18 05:40:24 2024 daemon.debug mesh11sd[13259]: checking for working channel....
Sat May 18 05:40:24 2024 daemon.debug mesh11sd[13259]: Leaving check portal....
Sat May 18 05:40:26 2024 daemon.warn mesh11sd[13259]: Warning! Station [ 96:83:c4:06:71:50 ] is [ 2 ] hops away and [ 240 ] path_change(s) for station have been detected
Sat May 18 05:40:26 2024 daemon.warn mesh11sd[13259]: Warning! Station [ 96:83:c4:06:71:50 ], consider its location or adjust txpower and/or rssi_threshold
Sat May 18 05:40:26 2024 daemon.info mesh11sd[13259]: Path to station [ 96:83:c4:2c:c5:25 ] is stable
Sat May 18 05:40:26 2024 daemon.debug mesh11sd[13259]: checkinterval 10 seconds

Here "96:83:c4:2c:c5:25" is the portal, "96:83:c4:06:71:50" is the remote node, and "e6:95:6e:44:60:2e" is the leech (intermediate) node.

You can see the leech node has a stable connection with the portal as is required, but has an unstable path to the remote node, but it does not need to send packets to the remote so this does not matter.

If we look at mesh11sd stations on the portal:

root@meshnode-c525:/tmp# mesh11sd stations
===========================================================================
Stations connected to this node:
Station 96:83:c4:06:71:50 (on m-11s-0)
	inactive time:	700 ms
	rx bytes:	120828724
	rx packets:	1371226
	tx bytes:	40121008
	tx packets:	62479
	tx retries:	48145
	tx failed:	48302
	rx drop misc:	103835
	signal:  	-71 [-76, -72] dBm
	signal avg:	-70 [-76, -71] dBm
	Toffset:	66949007675 us
	tx bitrate:	162.0 MBit/s MCS 12 40MHz
	tx duration:	145344796 us
	rx bitrate:	90.0 MBit/s MCS 10 40MHz short GI
	rx duration:	31761294 us
	last ack signal:-67 dBm
	avg ack signal:	-68 dBm
	airtime weight: 256
	mesh llid:	0
	mesh plid:	0
	mesh plink:	ESTAB
	mesh airtime link metric: 90
	mesh connected to gate:	yes
	mesh connected to auth server:	no
	mesh local PS mode:	ACTIVE
	mesh peer PS mode:	ACTIVE
	mesh non-peer PS mode:	ACTIVE
	authorized:	yes
	authenticated:	yes
	associated:	yes
	preamble:	long
	WMM/WME:	yes
	MFP:		yes
	TDLS peer:	no
	DTIM period:	2
	beacon interval:100
	connected time:	67283 seconds
	associated at [boottime]:	62154.405s
	associated at:	1715944052575 ms
	current time:	1716011335190 ms
Station e6:95:6e:44:60:2e (on m-11s-0)
	inactive time:	30 ms
	rx bytes:	2170245
	rx packets:	22974
	tx bytes:	171496
	tx packets:	1339
	tx retries:	218
	tx failed:	218
	rx drop misc:	50
	signal:  	-20 [-26, -21] dBm
	signal avg:	-19 [-26, -21] dBm
	Toffset:	494846894186 us
	tx bitrate:	270.0 MBit/s MCS 15 40MHz
	tx duration:	1825372 us
	rx bitrate:	300.0 MBit/s MCS 15 40MHz short GI
	rx duration:	642477 us
	last ack signal:-19 dBm
	avg ack signal:	-18 dBm
	airtime weight: 256
	mesh llid:	0
	mesh plid:	0
	mesh plink:	ESTAB
	mesh airtime link metric: 55
	mesh connected to gate:	yes
	mesh connected to auth server:	no
	mesh local PS mode:	ACTIVE
	mesh peer PS mode:	ACTIVE
	mesh non-peer PS mode:	ACTIVE
	authorized:	yes
	authenticated:	yes
	associated:	yes
	preamble:	long
	WMM/WME:	yes
	MFP:		yes
	TDLS peer:	no
	DTIM period:	2
	beacon interval:100
	connected time:	1320 seconds
	associated at [boottime]:	128117.920s
	associated at:	1716010016090 ms
	current time:	1716011335190 ms
===========================================================================

root@meshnode-c525:/tmp# 

This shows good connectivity to both the leech and remote peer, with a low value of mesh "airtime link metric" and tx and rx bitrates up where should be expected.

In your setup, you should have the intermediate set to leech mode and ther remote in normal peer mode.

Once you are back to this, show what you get from mesh11sd stations.
This should give a good indication of what is happening.

Thanks for the explanation. I have to cover two floors with the three nodes I have. So I need to have a triangle topology, practically speaking. Also I reset all my nodes and did a simple test with two nodes meshed using 2g and measured the speed at the non portal node. Then I tried to do the same with 5g but it turned out to be harder with auto-config. mesh11sd seems to use all 5g radios and my router has 2 of them and they just thrash each other with interference and did not really work. So I wrote up some manual config and flashed all 3 nodes, measured signal strength, put all of them in a triangular shape at the edge of the threshold values. After a lot of tweaking/moving around, I have a setup that seems to work and results in +-10% of speed near mesh.
I am using 5G for the meash and the speeds are just crazy high(30 mbps/vs 180 mbps). I have stared at logread -f enough by now and I don't see any warnings.

Now I just need a guest network setup which I can try after testing these out for a week atleast.

Thank your help now!

Yes, that is the beta version you are using. This was fixed in a later beta, which is why I suggested we finish testing on 2g first - but never mind :wink:

If possible the mesh_gate_only=1 nodes should probably not issue warning messages in case their paths are changing. That would be useful.

Another thing I have notice is that even after changing the threshold values, the associations would not be dropped for some time and the connections would still show up in mesh11sd stations. Is there a delay between changing the config and connections actually getting dropped ?

Remember you are using a beta version that has been superseded over the time since you installed it. Reactive stabilisation of paths has since been enabled along with some friendlier debug messages.

This is because the mesh_rssi_threshold only applies when a connection is attempted. Any changes do not effect existing connections.
In manual mode you will have to restart the wireless on the nodes after you make a change.
In auto mode you can use mesh11sd mesh_rssi_threshold + force to immediately enforce a 3dBm increase.
When satisfied you can use mesh11sd commit_changes commit to make it permanent.