summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSander Vrijders <[email protected]>2018-10-08 21:41:03 +0200
committerDimitri Staessens <[email protected]>2018-10-09 09:45:04 +0200
commitff847419e54f283872d883a85ecea082e2c98790 (patch)
treed672dc5bf9840bf623337cc4b467ff189a20b902
parentd9ad3852613cda026d4520b5c608ada7433dd7d9 (diff)
downloadouroboros-ff847419e54f283872d883a85ecea082e2c98790.tar.gz
ouroboros-ff847419e54f283872d883a85ecea082e2c98790.zip
lib: Define QoS specs inside header file0.12.1
The QoS specs were defined in the source file instead of in the header file, which resulted in uninitialized structs being used, which gave rise to weird behavior in the library. Signed-off-by: Sander Vrijders <[email protected]> Signed-off-by: Dimitri Staessens <[email protected]>
-rw-r--r--CMakeLists.txt2
-rw-r--r--include/ouroboros/qos.h65
-rw-r--r--src/lib/CMakeLists.txt1
-rw-r--r--src/lib/qos.c88
4 files changed, 60 insertions, 96 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index bda0aff9..a42813cb 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,7 +8,7 @@ include(GNUInstallDirs)
set(PACKAGE_VERSION_MAJOR 0)
set(PACKAGE_VERSION_MINOR 12)
-set(PACKAGE_VERSION_PATCH 0)
+set(PACKAGE_VERSION_PATCH 1)
set(PACKAGE_NAME "${CMAKE_PROJECT_NAME}")
set(PACKAGE_DESCRIPTION "The Ouroboros prototype")
diff --git a/include/ouroboros/qos.h b/include/ouroboros/qos.h
index 2b93f1d0..3475b086 100644
--- a/include/ouroboros/qos.h
+++ b/include/ouroboros/qos.h
@@ -36,11 +36,64 @@ typedef struct qos_spec {
uint32_t max_gap; /* In ms */
} qosspec_t;
-qosspec_t qos_raw;
-qosspec_t qos_raw_no_errors;
-qosspec_t qos_best_effort;
-qosspec_t qos_video;
-qosspec_t qos_voice;
-qosspec_t qos_data;
+static const qosspec_t qos_raw = {
+ .delay = UINT32_MAX,
+ .bandwidth = 0,
+ .availability = 0,
+ .loss = 1,
+ .ber = 1,
+ .in_order = 0,
+ .max_gap = UINT32_MAX
+};
+
+static const qosspec_t qos_raw_no_errors = {
+ .delay = UINT32_MAX,
+ .bandwidth = 0,
+ .availability = 0,
+ .loss = 1,
+ .ber = 0,
+ .in_order = 0,
+ .max_gap = UINT32_MAX
+};
+
+static const qosspec_t qos_best_effort = {
+ .delay = UINT32_MAX,
+ .bandwidth = 0,
+ .availability = 0,
+ .loss = 1,
+ .ber = 0,
+ .in_order = 1,
+ .max_gap = UINT32_MAX
+};
+
+static const qosspec_t qos_video = {
+ .delay = 100,
+ .bandwidth = UINT64_MAX,
+ .availability = 3,
+ .loss = 1,
+ .ber = 0,
+ .in_order = 1,
+ .max_gap = 100
+};
+
+static const qosspec_t qos_voice = {
+ .delay = 50,
+ .bandwidth = 100000,
+ .availability = 5,
+ .loss = 1,
+ .ber = 0,
+ .in_order = 1,
+ .max_gap = 50
+};
+
+static const qosspec_t qos_data = {
+ .delay = 1000,
+ .bandwidth = 0,
+ .availability = 0,
+ .loss = 0,
+ .ber = 0,
+ .in_order = 1,
+ .max_gap = 2000
+};
#endif /* OUROBOROS_QOS_H */
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index f66e7ab9..414a7203 100644
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -201,7 +201,6 @@ set(SOURCE_FILES_COMMON
logs.c
md5.c
notifier.c
- qos.c
qoscube.c
random.c
rib.c
diff --git a/src/lib/qos.c b/src/lib/qos.c
deleted file mode 100644
index 8607031e..00000000
--- a/src/lib/qos.c
+++ /dev/null
@@ -1,88 +0,0 @@
-/*
- * Ouroboros - Copyright (C) 2016 - 2018
- *
- * Quality of Service cube specifications
- *
- * Dimitri Staessens <[email protected]>
- * Sander Vrijders <[email protected]>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public License
- * version 2.1 as published by the Free Software Foundation.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the Free Software
- * Foundation, Inc., http://www.fsf.org/about/contact/.
- */
-
-#include <ouroboros/qos.h>
-#include <ouroboros/errno.h>
-
-#include <stdint.h>
-#include <stddef.h>
-#include <string.h>
-
-qosspec_t qos_raw = {
- .delay = UINT32_MAX,
- .bandwidth = 0,
- .availability = 0,
- .loss = 1,
- .ber = 1,
- .in_order = 0,
- .max_gap = UINT32_MAX
-};
-
-qosspec_t qos_raw_no_errors = {
- .delay = UINT32_MAX,
- .bandwidth = 0,
- .availability = 0,
- .loss = 1,
- .ber = 0,
- .in_order = 0,
- .max_gap = UINT32_MAX
-};
-
-qosspec_t qos_best_effort = {
- .delay = UINT32_MAX,
- .bandwidth = 0,
- .availability = 0,
- .loss = 1,
- .ber = 0,
- .in_order = 1,
- .max_gap = UINT32_MAX
-};
-
-qosspec_t qos_video = {
- .delay = 100,
- .bandwidth = UINT64_MAX,
- .availability = 3,
- .loss = 1,
- .ber = 0,
- .in_order = 1,
- .max_gap = 100
-};
-
-qosspec_t qos_voice = {
- .delay = 50,
- .bandwidth = 100000,
- .availability = 5,
- .loss = 1,
- .ber = 0,
- .in_order = 1,
- .max_gap = 50
-};
-
-qosspec_t qos_data = {
- .delay = 1000,
- .bandwidth = 0,
- .availability = 0,
- .loss = 0,
- .ber = 0,
- .in_order = 1,
- .max_gap = 2000
-};