From 85e8b0a4476fc0aff1b9192c36e807cb68f5320e Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Tue, 5 Jun 2018 18:39:10 +0200 Subject: 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 Signed-off-by: Sander Vrijders --- include/ouroboros/qos.h | 5 +++++ src/lib/qos.c | 32 ++++++++++++++++++++++++++++++++ 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 #include +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 #include #include -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 && -- cgit v1.2.3