RSTP - path cost and root port question

Hi all,

I’ve set up a mesh network of 10 RB’s connected to our network via a ‘master’ running Hotspot authentication on the bridge of the master. This is to provide coverage to a University residence where we expect around 300 users to be accessing it, maybe more… Most of the user accounts will be 64k.

I’ve installed rstp on the mesh which seems to work quite well, and at this stage there are 10 test users using it with no real problems as yet.

My question is that on inspecting each RB’s bridge port status, I find one (so far) that does not seem to allocate a ‘root port’ or ‘alternate port’ roles on any of the WDS connections - they are all ‘designated port’.
This particular board has 4 WDS’s, and comparing it to one other that also has 4 WDS interfaces, I see port roles - 1 ‘root port’, 2 ‘designated ports’, and 1 ‘alternate port’.

Path cost on each is set as on others, and the RB in question does not seem to affect the operation of the mesh. I do get momentary packet gain (2-3 packets) when a WDS interface is switched on or off somewhere in the mesh, presumably as the new path is allocated.

So, to summarise:
What can be wrong (if anything) on the rogue routerboard port roles?
Does it matter what path cost value is set relative to the whole mesh?
Should each RB be set with path cost value relative to the ports on the local RB only?

Does anyone have anything to offer on path cost settings? Would be much appreciated…

:sunglasses:

In RSTP, the bridge device with the lowest priority becomes the “root bridge”, and all calculations are done relative to it. I’m not sure what is used to break a tie, but there will only be a single “root bridge”.

The port “role” is determined by it’s relation to the “root bridge”:

A “root port” has the currently used (lowest cost) path to the root bridge.

An “alternate port” is currently unused, but does have a (higher cost) path to the root bridge.

A “designated port” is a downstream port, facing away from the root bridge. There may or may not be another path to the root bridge over such a port, but if there is, it is unused.

The root bridge will never have root or alternate ports, only designated ports.
The other participating bridge devices will always have exactly one root port, and any number of alternate and/or designated ports.
If a non-root bridge does not have any alternate ports, it does not have redundancy.
If a non-root bridge does not have any designated ports, then it is not in the lowest cost path to anything else.

As you are using RSTP with WDS, you should not manually set the port costs, but rather simply let the external FDB adjust it on the fly (seems to have an inverse relationship with the CCQ of the WDS peer). If you want to exert more control (while still taking advantage of the nifty dynamic link between WDS and RSTP), you can adjust the “WDS Default Cost” and “WDS Cost Range” parameters of the wireless interface.

Since you only have one link into your mesh (the “master”), you should force that router to be the root bridge. Since the priority defaults to 8000, you can just set it to 7000 or so on your “master” router.

–Eric

Thanks for a most informative reply!

A couple more questions tho if I may:

Have now set the ‘root bridge’ - thanks for that bit of info - I saw it, but overlooked it… let’s see how it affects the system…

Another thing - I’m usnig static WDS between the AP’s, and here the path cost must be set manually. My method was to set the AP first to Dynamic WDS, wait for the router to assign path costs, and then use those values in my static WDS - is this acceptable?

thanks in advance…
:sunglasses:

It’s acceptable, if you accept it. :slight_smile:

Changing the WDS interfaces to static gives you more manual control, and perhaps makes it a bit more stable. But, it makes the system less dynamic.

Personally, I leave things dynamic. If a particular WDS link goes bad (but remains up), RSTP will avoid it when WDS is dynamic; but with static configuration, it will keep using it at the same cost.

People (myself included!) want OLSR for mesh, largely because it takes ever changing link quality into account. Many don’t seem to realise that MT’s WDS+RSTP pseudo-mesh already does that thanks to the external FDB, and for small systems it works great (albeit at L2, with an artificially imposed “virtual tree” topology).

Half the fun of mesh, is being able to ignore the mesh. :smiley:

–Eric

I hear you about the static vs dynamic WDS - what I’m trying to avoid is an apparent reaction by the MT to ‘think too hard’ about which way to go with marginal signals from far nodes. I see dynamic WDS appearing and dropping all the time, and I figure this can only introduce more latency as paths keep changing quite frequently.

So - what I did (while the mesh was completely dynamic) was to choose the best 3 signal strengths on each node and set those as static WDS paths, thereby still keeping the reduncy of the mesh. I then set the path cost as i mentioned earlier.

I do see in wireless logging that although all the nodes are now static WDS mode, there are still dynamic requests coming in.

Why is this happening? My feeling is once again that the MT is going to waste time denying dynamic requests.

:sunglasses:

Some more strange stuff… maybe to do with RSTP ‘test package’ status…

Forcing the root bridge definitely makes a difference in the stability & ping times through the mesh, but setting dynamic WDS really slows it down a LOT. Static WDS seems to be much more stable - BUT for some reason my root bridge loses its root status occasionally!

How can this happen? All other routers have their priority set to the default 8000, and I’ve steadily changed my root bridge priority setting down by 1000 each time it changes - I’ve got it set on 5000 now…

What I do see is that if the router reboots, the bridge status window reflects a change in the priority back to 8000, even though it has been set as a lower number…

Anyone :question:

Just yesterday, I did notice similar strangeness.

After a root bridge reboot, it did not resume acting as the root bridge. It’s priority was still 7000, but the root bridge role remained with another unit at 8000. Upon changing the intended bridge’s priority to 6000, things began working as they should. Even after changing back to 7000, it remained the root.

I don’t know why that happened, but I’m going to be keeping an eye on it. (that little pseudo-mesh had previously been running 2 months without issue)

As to the stability of dynamic WDS, I have not had a problem; but, I’m only using WDS+RSTP on a very small scale, and I’m not too surprised there are problems. If static WDS is more stable for you, than by all means go for it.

–Eric

As to the stability of dynamic WDS, I have not had a problem; but, I’m only using WDS+RSTP on a very small scale, and I’m not too surprised there are problems.

All seemed to be fine when there were only 5 MT’s in fairly close proximity - mounted around 4 thick concrete 6-story buildings. All MT’s have little 8dBi omni’s on CM9’s.

When I added the next 5 to extend the range to a cluster of double-story student accomodation, things started to fall over. Now I’m really struggling to get a balance between static WDS and signal strengths… :confused:

Maybe I should split the two sections and link them with 5Ghz…

:sunglasses:

Dynamic WDS is good when you are making a new mesh system. If the WDS node count will increase in wide area then lot of wds liks will be establishing and disconnecting the wds links (the nodes wich has very low signal strenght between them).
First place all the nodes in their places enable dynamic WDS, then monitor few hours, days or maybe more to see which WDS links ar stable and wich not. Then start changing these dynamic WDS links wich are stable to static ones. After you have done that, you can disable the Dynamic WDS mode.

Lovely - exactly what I have done. Thanks uldis!

Another question if I may - is there an ‘optimal’ or maximum recommended number of WDS links per AP?

Don’t know if I’m imagining things, but I seem to get better ping times with fewer WDS’s per AP… like around 3 maximum?

And what about the root bridge changing on a reboot?

:sunglasses:

Better to leave so many WDS per AP that all of them are connected with other end all the times - not disconnecting. Maybe you were getting lower ping times because the traffic was going through the one of the WDS that you have removed later (slower WDS link with lower signal strenght and quality).

About the root bridge changing - we will research that.

Thanks! Looking forward to your findings…

/out

looks like a bug, we will try to fix it.
Also an aditional comment on the dynamic wds and the links with bad signal that are disconnecting - you can use connect-list to specify wich links for WDS to establish and what should be the minimum signal strenght - min-signal-strength argument.

Thanks for that I thought about using connect list just today funnily enough, and I have a new bug for you when you’re done with that one!

RB112 in the mesh set to ‘static WDS’ will not forward clients to the Hotspot authentication router. Set ‘dynamic WDS’ and all is fine.

This does not happen on RB532.

:sunglasses:

Please send the support output file from the RB112 router which doesn’t work.
Maybe you haven’t added that static wds interface to the bridge port?

Please send the support output file from the RB112 router which doesn’t work.
Maybe you haven’t added that static wds interface to the bridge port?

Will send supout.rif…

And nope - definitely have bridge ports set - here is an example of my programming script - I have one for each of the routers for quick setting of static WDS:

#To Magalies.28:
#===============

/ interface wireless wds
add name=“wds2-Magalies.28” mtu=1500 arp=enabled disable-running-check=no
master-interface=wlan1 wds-address=00:0B:6B:4D:F9:A1 comment=“Static
WDS to Magalies.28” disabled=no
/
/ interface bridge port
add interface=wds2-Magalies.28 bridge=bridge1 priority=0x80 path-cost=118 edge=auto
point-to-point=auto external-fdb=auto comment=“” disabled=no
/

And managing dynamic WDS I am struggling with:

‘connect-list’ entries does not seem to stop wds partners with marginal signal strength from connecting… I still get Dyn WDS connections…

Config in connect list is:

int wir conn pr
Flags: X - disabled
0 interface=wlan1 connect=no mac-address=00:0B:6B:4D:FB:02 ssid=“” min-signal-strength=-85
area-prefix=“” security-profile=none

1 interface=wlan1 connect=no mac-address=00:0B:6B:37:43:7D ssid=“” min-signal-strength=-85
area-prefix=“” security-profile=none

2 interface=wlan1 connect=no mac-address=00:0B:6B:4D:FC:BD ssid=“” min-signal-strength=-85
area-prefix=“” security-profile=none

3 interface=wlan1 connect=no mac-address=00:0B:6B:4D:F9:C0 ssid=“” min-signal-strength=-85
area-prefix=“” security-profile=none

4 interface=wlan1 connect=yes mac-address=00:00:00:00:00:00 ssid=“” min-signal-strength=-90
area-prefix=“” security-profile=WPA2

Interface 0 & 1 keep making dynamic WDS connections. I have default authenticate turned on on the wireless settings…

Any ideas?

:sunglasses:

should “connect=no” not set to “connect=yes” , but “only when signal is better then -85” ?

could you also explain your #4 setting ?

and couldyou add wich version ROS you are using ?

should “connect=no” not set to “connect=yes” , but “only when signal is better then -85” ?

could you also explain your #4 setting ?

and couldyou add wich version ROS you are using ?

Well my thinking was to force routers that I don’t want connected to stay disconnected.

My #4 setting is straight out of the Mesh wiki, and controls the router WDS authentication.

I did try using the min-signal-strength setting on #4, but that also didn’t appear to help. The setting of -90 was my threshold, but still got connections at -92.

OS 2.9.27

Well my thinking was to force routers that I don’t want connected to stay disconnected.

if you mean you NEVER want the mac to associate then you should add the mac to the wireless acces list and refuse acces.

for as far as i know the connect list is for clients you “want” to connect BUT only when …

from the manual ;

The Connect List is a list of rules (order is important), that determine to which AP the station should connect to.

At first, the station is searching for APs all frequencies (from scan-list) in the respective band and makes a list of Access Points. If the ssid is set under /interface wireless, the router removes all Access Points from its AP list which do not have such ssid

If a rule is matched and the parameter connect is set to yes, the station will connect to this AP. If the parameter says connect=no or the rule is not matched, we jump to the next rule.

If we have gone through all rules and haven’t connected to any AP, yet. The router chooses an AP with the best signal and ssid that is set under /interface wireless.

In case when the station has not connected to any AP, this process repeats from beginning.


acces list is for clients you want/don’t want to connect

i think you should use acces list if you would like WDS AP’s to STAY disconnected.

not sure all rules also work for WDS, most of the manual only speaks of stations.