- if (src_wifi_link != nullptr)
- get_maxmin_system()->expand(src_wifi_link->get_constraint(), action->get_variable(),
- 1.0 / src_wifi_link->get_host_rate(src));
- if (dst_wifi_link != nullptr)
- get_maxmin_system()->expand(dst_wifi_link->get_constraint(), action->get_variable(),
- 1.0 / dst_wifi_link->get_host_rate(dst));
+ if (src_wifi_link != nullptr) {
+ /* In case of 0Mbps data rate, don't consider it in the LMM */
+ if (src_wifi_link->get_host_rate(src) != 0)
+ get_maxmin_system()->expand(src_wifi_link->get_constraint(), action->get_variable(),
+ 1.0 / src_wifi_link->get_host_rate(src));
+ else
+ get_maxmin_system()->update_variable_penalty(action->get_variable(), 0);
+ }
+ if (dst_wifi_link != nullptr) {
+ if (dst_wifi_link->get_host_rate(dst) != 0)
+ get_maxmin_system()->expand(dst_wifi_link->get_constraint(), action->get_variable(),
+ 1.0 / dst_wifi_link->get_host_rate(dst));
+ else {
+ get_maxmin_system()->update_variable_penalty(action->get_variable(), 0);
+ }
+ }