I am running authsae + kernel 3.8.3. But I believe the behavior is the same on all kernel versions.
The dot11MeshMaxPeerLinks accepts value configured from user space (e.g. iw mesh0 set mesh_param)
But it does not take effect.
In the setup of 10 nodes, each one can see the rest. dot11MeshMaxPeerLinks is set to 4 in one node. However, this node still establishes 9 peers.
The 1st problem can be the estab_plinks counter itself. The /debugfs/ieee80211/phy0/netdev:mesh0/mesh_stats/estab_plinks shows 0. It does not match to the established 9 peer links.
Other problem can be timing issue. The mesh_plink_free_count() is checked on receiving peer-open peer-confirm packets. While mesh_plink_inc_estab_count() is called when peer is established. If all 9 peers issue peer-open at the same time to the UUT, mesh_plink_free_count() is good for all 9 peers since nobody is established yet. They all can establish link to UUT whose dot11MeshMaxPeerLinks is set to 4, though.