diff options
| author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2018-10-04 18:06:32 +0200 | 
|---|---|---|
| committer | Sander Vrijders <sander.vrijders@ugent.be> | 2018-10-05 09:07:47 +0200 | 
| commit | b802b25ddfe6f1b6ecabe3ba70e3dac2e99e7a50 (patch) | |
| tree | 94e787f0f0ca1f0254b3728b0156b2e3283d8518 /src/lib/qoscube.c | |
| parent | 937adca2a718b160b6d42bb8a3f28d96321fdb49 (diff) | |
| download | ouroboros-b802b25ddfe6f1b6ecabe3ba70e3dac2e99e7a50.tar.gz ouroboros-b802b25ddfe6f1b6ecabe3ba70e3dac2e99e7a50.zip | |
lib: Pass qosspec at flow allocation
The flow allocator now passes the full qos specification to the
endpoint, instead of just a cube. This is a more flexible
architecture, as it makes QoS cubes internal to the layers.
Adds endianness transforms for the flow allocator protocol in the
normal IPCP.
Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
Diffstat (limited to 'src/lib/qoscube.c')
| -rw-r--r-- | src/lib/qoscube.c | 30 | 
1 files changed, 6 insertions, 24 deletions
| diff --git a/src/lib/qoscube.c b/src/lib/qoscube.c index 5dfa35ad..efca0e42 100644 --- a/src/lib/qoscube.c +++ b/src/lib/qoscube.c @@ -25,38 +25,20 @@  #include <string.h> + +  qoscube_t qos_spec_to_cube(qosspec_t qs)  { -        if (qs.loss == 0) -                return QOS_CUBE_DATA; -        else if (qs.delay <= qos_voice.delay && +        if (qs.delay <= qos_voice.delay &&              qs.bandwidth <= qos_voice.bandwidth &&              qs.availability >= qos_voice.availability && -            qs.maximum_interruption <= qos_voice.maximum_interruption) +            qs.max_gap <= qos_voice.max_gap)                  return QOS_CUBE_VOICE;          else if (qs.delay <= qos_video.delay &&                   qs.bandwidth <= qos_video.bandwidth &&                   qs.availability >= qos_video.availability && -                 qs.maximum_interruption <= qos_video.maximum_interruption) +                 qs.max_gap <= qos_video.max_gap)                  return QOS_CUBE_VIDEO; -        else if (qs.in_order == 1) -                return QOS_CUBE_BE;          else -                return QOS_CUBE_RAW; -} - -qosspec_t qos_cube_to_spec(qoscube_t qc) -{ -        switch (qc) { -        case QOS_CUBE_VOICE: -                return qos_voice; -        case QOS_CUBE_VIDEO: -                return qos_video; -        case QOS_CUBE_BE: -                return qos_best_effort; -        case QOS_CUBE_DATA: -                return qos_data; -        default: -                return qos_raw; -        } +                return QOS_CUBE_BE;  } | 
