* @param routerFilter
* @return The chosen router or 'null' if no suitable router is available.
*/
public Router chooseRandomNode(WeightRule rule, RouterFilter routerFilter) {
final List<Router> candidates = getFilteredRouters(routerFilter, true);
final Router choice = chooseByBandwidth(candidates, rule);
if(choice == null) {
// try again with more permissive flags
return null;
}
return choice;