From b74980761cdcd9a706760ae9a4efb3806ca9bee2 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Thu, 7 Jun 2018 23:35:14 +0200 Subject: lib: Add a data qos cube This adds a data qos cube that is reliable. Reliable qos can be selected by setting the loss parameter of the qosspec to 0. Signed-off-by: Dimitri Staessens Signed-off-by: Sander Vrijders --- src/lib/qos.c | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) (limited to 'src/lib/qos.c') diff --git a/src/lib/qos.c b/src/lib/qos.c index f5fbf1fb..bee6ed71 100644 --- a/src/lib/qos.c +++ b/src/lib/qos.c @@ -25,19 +25,22 @@ #include #include +#include qosspec_t qos_raw = { .delay = UINT32_MAX, - .bandwidth = UINT64_MAX, + .bandwidth = 0, .availability = 0, + .loss = 1, .in_order = 0, .maximum_interruption = UINT32_MAX }; qosspec_t qos_best_effort = { .delay = UINT32_MAX, - .bandwidth = UINT64_MAX, + .bandwidth = 0, .availability = 0, + .loss = 1, .in_order = 1, .maximum_interruption = UINT32_MAX }; @@ -46,27 +49,35 @@ qosspec_t qos_video = { .delay = 100, .bandwidth = UINT64_MAX, .availability = 3, + .loss = 1, .in_order = 1, .maximum_interruption = 100 }; qosspec_t qos_voice = { - .delay = 10, + .delay = 50, .bandwidth = 100000, .availability = 5, + .loss = 1, .in_order = 1, .maximum_interruption = 50 }; +qosspec_t qos_data = { + .delay = 1000, + .bandwidth = 0, + .availability = 0, + .in_order = 1, + .loss = 0, + .maximum_interruption = 2000 +}; + int qosspec_init(qosspec_t * qs) { if (qs == NULL) return -EINVAL; - qs->delay = UINT32_MAX; - qs->bandwidth = UINT64_MAX; - qs->availability = 0; - qs->maximum_interruption = UINT32_MAX; + *qs = qos_best_effort; return 0; } @@ -76,7 +87,7 @@ int qosspec_fini(qosspec_t * qs) if (qs == NULL) return -EINVAL; - qs = NULL; + memset(qs, 0, sizeof(*qs)); return 0; } -- cgit v1.2.3