diff options
| -rw-r--r-- | include/ouroboros/qos.h | 5 | ||||
| -rw-r--r-- | src/lib/qos.c | 32 | ||||
| -rw-r--r-- | src/lib/qoscube.c | 33 | 
3 files changed, 38 insertions, 32 deletions
diff --git a/include/ouroboros/qos.h b/include/ouroboros/qos.h index 0a9bc060..2419195b 100644 --- a/include/ouroboros/qos.h +++ b/include/ouroboros/qos.h @@ -34,6 +34,11 @@ typedef struct qos_spec {          uint32_t maximum_interruption; /* In ms */  } qosspec_t; +qosspec_t qos_raw; +qosspec_t qos_best_effort; +qosspec_t qos_video; +qosspec_t qos_voice; +  __BEGIN_DECLS  int qosspec_init(qosspec_t * qs); diff --git a/src/lib/qos.c b/src/lib/qos.c index 7a830b8b..f5fbf1fb 100644 --- a/src/lib/qos.c +++ b/src/lib/qos.c @@ -26,6 +26,38 @@  #include <stdint.h>  #include <stddef.h> +qosspec_t qos_raw = { +        .delay                = UINT32_MAX, +        .bandwidth            = UINT64_MAX, +        .availability         = 0, +        .in_order             = 0, +        .maximum_interruption = UINT32_MAX +}; + +qosspec_t qos_best_effort = { +        .delay                = UINT32_MAX, +        .bandwidth            = UINT64_MAX, +        .availability         = 0, +        .in_order             = 1, +        .maximum_interruption = UINT32_MAX +}; + +qosspec_t qos_video = { +        .delay                = 100, +        .bandwidth            = UINT64_MAX, +        .availability         = 3, +        .in_order             = 1, +        .maximum_interruption = 100 +}; + +qosspec_t qos_voice = { +        .delay                = 10, +        .bandwidth            = 100000, +        .availability         = 5, +        .in_order             = 1, +        .maximum_interruption = 50 +}; +  int qosspec_init(qosspec_t * qs)  {          if (qs == NULL) diff --git a/src/lib/qoscube.c b/src/lib/qoscube.c index 00210625..12f7c277 100644 --- a/src/lib/qoscube.c +++ b/src/lib/qoscube.c @@ -20,42 +20,11 @@   * Foundation, Inc., http://www.fsf.org/about/contact/.   */ +#include <ouroboros/qos.h>  #include <ouroboros/qoscube.h>  #include <string.h> -static struct qos_spec qos_raw = { -        .delay                = UINT32_MAX, -        .bandwidth            = UINT64_MAX, -        .availability         = 0, -        .in_order             = 0, -        .maximum_interruption = UINT32_MAX -}; - -static struct qos_spec qos_best_effort = { -        .delay                = UINT32_MAX, -        .bandwidth            = UINT64_MAX, -        .availability         = 0, -        .in_order             = 1, -        .maximum_interruption = UINT32_MAX -}; - -static struct qos_spec qos_video = { -        .delay                = 100, -        .bandwidth            = UINT64_MAX, -        .availability         = 3, -        .in_order             = 1, -        .maximum_interruption = 100 -}; - -static struct qos_spec qos_voice = { -        .delay                = 10, -        .bandwidth            = 100000, -        .availability         = 5, -        .in_order             = 1, -        .maximum_interruption = 50 -}; -  qoscube_t qos_spec_to_cube(qosspec_t qs)  {          if (qs.delay <= qos_voice.delay &&  | 
