Max Min Fairness
calculate_fair_allocation(capacity, demands)
Calculates network shares using the Max-Min Fairness algorithm [1].
[1] Gebali, F. (2008). Scheduling Algorithms. In: Analysis of Computer and Communication Networks. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-74437-7_12.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
capacity |
int
|
Network bandwidth to be shared. |
required |
demands |
list
|
List of demands (e.g.: list of demands of services that will be migrated). |
required |
Returns:
Name | Type | Description |
---|---|---|
list |
list
|
Fair network allocation scheme. |
Source code in edge_sim_py/components/flow_scheduling/max_min_fairness.py
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
|
get_overprovisioned_slices(demands, allocated)
Calculates the leftover demand and finds items with satisfied bandwidth.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
demands |
list
|
List of demands (or the demand of services that will be migrated). |
required |
allocated |
list
|
Allocated demand for each service within the list. |
required |
Returns:
Type | Description |
---|---|
list
|
list, int: Flows that were overprovisioned and their leftover bandwidth, respectively. |
Source code in edge_sim_py/components/flow_scheduling/max_min_fairness.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
max_min_fairness(topology, flows)
Manages the execution of the Max-Min Fairness algorithm for sharing the bandwidth of links among network flows.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
topology |
object
|
Network topology object. |
required |
flows |
list
|
List of flows in the topology. |
required |
Source code in edge_sim_py/components/flow_scheduling/max_min_fairness.py
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
|