sgw: add SmartGatewayMaxCostMaxEtx configuration setting
[olsrd.git] / src / gateway_costs.h
index 72f49a6..5cafc90 100644 (file)
@@ -78,14 +78,19 @@ extern "C" {
    * If the ETX divider is zero, then no weighing is performed and only the path
    * costs are considered (classic behaviour), but scaled to a 64 bit number.
    *
+   * If path_cost is the maximum AND path_cost < max_cost_etx_max then
+   * the gateway costs are equal to path_cost.
+   *
    * @param up true when the relevant interface is up
    * @param weights the weights for the calculation
    * @param path_cost the (ETX) path cost to the gateway
+   * @param max_cost_etx_max the maximum (ETX) path cost for when path_costs is the maximum
+   * to take the calculation shortcut.
    * @param exitUk the gateway exit link uplink bandwidth (in kbps)
    * @param exitDk the gateway exit link downlink bandwidth (in kbps)
    * @return the weighed path cost, INT64_MAX when up is false or when exitUk and/or exitDk are zero
    */
-  int64_t gw_costs_weigh(bool up, const struct costs_weights weights, uint32_t path_cost, uint32_t exitUk, uint32_t exitDk);
+  int64_t gw_costs_weigh(bool up, const struct costs_weights weights, uint32_t path_cost, uint32_t max_cost_etx_max, uint32_t exitUk, uint32_t exitDk);
 
 #ifdef __cplusplus
 }