diff options
author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2018-06-05 18:39:10 +0200 |
---|---|---|
committer | Sander Vrijders <sander.vrijders@ugent.be> | 2018-06-05 19:53:41 +0200 |
commit | 85e8b0a4476fc0aff1b9192c36e807cb68f5320e (patch) | |
tree | db57e6d21937f071d27c648d322bdb561124ab32 | |
parent | df526d95a9e4d7c251713c50436d88546c33c2f0 (diff) | |
download | ouroboros-85e8b0a4476fc0aff1b9192c36e807cb68f5320e.tar.gz ouroboros-85e8b0a4476fc0aff1b9192c36e807cb68f5320e.zip |
lib: Define default qosspecs in qos sources
This moves the definition of the predefined qosspecs to qos.h and
qos.c. This allows applications to select them using qos_best_effort
etc.
Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be>
Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
-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 && |