summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri.staessens@ugent.be>2018-06-05 18:39:10 +0200
committerSander Vrijders <sander.vrijders@ugent.be>2018-06-05 19:53:41 +0200
commit85e8b0a4476fc0aff1b9192c36e807cb68f5320e (patch)
treedb57e6d21937f071d27c648d322bdb561124ab32
parentdf526d95a9e4d7c251713c50436d88546c33c2f0 (diff)
downloadouroboros-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.h5
-rw-r--r--src/lib/qos.c32
-rw-r--r--src/lib/qoscube.c33
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 &&