Skip to content

Use timer to remove stale STAs

This MR is aming at fixing high CPU usage of mapcontroller due to corrupted node->stalist.

There're couple of issues,

  • one being periodically (every second) checking for inactive STAs to delete which is CPU consuming, as there're couple of recursive for loops used (every second).
  • other is the possiblity for the node->stalist and ctrl->sta_table to go out of sync, causing indefinite for loops triggered from the above periodic run, due to improper removal of the sta (remove only from active node, but left over pointer on another node's stalist)

The fix is to add per-sta timer - each sta monitors it's state separately, and removes itself from the node->stalist of all nodes and ctrl->sta_table after connectivity timeout. The timer is initiated on any disassociated and cleared on associated trigger (event/notification).

Edited by Filip Matusiak

Merge request reports

Loading