{
uint64_t roamability_node, roamability_ref;
- roamability_node = ((uint64_t)(node->roam_source + node->roam_destination)) * current_time / ((current_time - node->created) + 1);
- roamability_ref = ((uint64_t)(ref->roam_source + ref->roam_destination)) * current_time / ((current_time - ref->created) + 1);
+ roamability_node = ((uint64_t)(node->roam_events.source + node->roam_events.target)) * current_time / ((current_time - node->created) + 1);
+ roamability_ref = ((uint64_t)(ref->roam_events.source + ref->roam_events.target)) * current_time / ((current_time - ref->created) + 1);
if (roamability_node < roamability_ref)
return ref;
if (strcmp(current_node->ssid, rn->node.ssid))
continue;
+ /* Skip nodes which can't handle additional STA */
+ if (rn->node.max_assoc && rn->node.n_assoc >= rn->node.max_assoc)
+ continue;
+
/* Check if this node is ranked lower than the last one */
n1 = usteer_node_better_neighbor(last, &rn->node);
n2 = usteer_node_better_neighbor(&rn->node, last);