summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri.staessens@ugent.be>2018-06-07 16:01:40 +0200
committerSander Vrijders <sander.vrijders@ugent.be>2018-06-07 17:52:10 +0200
commit91180700a44e857311ecc9eadbfc27c7f9b802cb (patch)
tree72e73b7ece2072e72a6d777bbc7276760830b0eb
parent88f77ed5ef8d354664bac6d3c8af3d96cae640a4 (diff)
downloadouroboros-91180700a44e857311ecc9eadbfc27c7f9b802cb.tar.gz
ouroboros-91180700a44e857311ecc9eadbfc27c7f9b802cb.zip
ipcpd: Add priority for raw flows
The raw flows had no priority assigned, causing the scheduler to fail on creation. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
-rw-r--r--src/ipcpd/CMakeLists.txt6
-rw-r--r--src/ipcpd/config.h.in1
-rw-r--r--src/ipcpd/normal/sdu_sched.c1
3 files changed, 8 insertions, 0 deletions
diff --git a/src/ipcpd/CMakeLists.txt b/src/ipcpd/CMakeLists.txt
index 39e597e0..d7523aeb 100644
--- a/src/ipcpd/CMakeLists.txt
+++ b/src/ipcpd/CMakeLists.txt
@@ -1,5 +1,7 @@
set(IPCP_ACCEPT_TIMEOUT 100 CACHE STRING
"Timeout for accept in IPCP mainloop threads (ms)")
+set(IPCP_QOS_CUBE_RAW_PRIO 50 CACHE STRING
+ "Priority for raw flow processing (0-99)")
set(IPCP_QOS_CUBE_BE_PRIO 0 CACHE STRING
"Priority for best effort QoS cube (0-99)")
set(IPCP_QOS_CUBE_VIDEO_PRIO 90 CACHE STRING
@@ -17,6 +19,10 @@ set(DISABLE_CORE_LOCK FALSE CACHE BOOL
set(IPCP_CONN_WAIT_DIR TRUE CACHE BOOL
"Check the running state of the directory when adding a dt connection")
+if ((IPCP_QOS_CUBE_RAW_PRIO LESS 0) OR (IPCP_QOS_CUBE_RAW_PRIO GREATER 99))
+ message(FATAL_ERROR "Invalid priority for raw flow")
+endif ()
+
if ((IPCP_QOS_CUBE_BE_PRIO LESS 0) OR (IPCP_QOS_CUBE_BE_PRIO GREATER 99))
message(FATAL_ERROR "Invalid priority for best effort QoS cube")
endif ()
diff --git a/src/ipcpd/config.h.in b/src/ipcpd/config.h.in
index 197f51bc..b7806f60 100644
--- a/src/ipcpd/config.h.in
+++ b/src/ipcpd/config.h.in
@@ -38,6 +38,7 @@
#cmakedefine HAVE_LIBGCRYPT
/* normal IPCP */
+#define QOS_PRIO_RAW @IPCP_QOS_CUBE_RAW_PRIO@
#define QOS_PRIO_BE @IPCP_QOS_CUBE_BE_PRIO@
#define QOS_PRIO_VIDEO @IPCP_QOS_CUBE_VIDEO_PRIO@
#define QOS_PRIO_VOICE @IPCP_QOS_CUBE_VOICE_PRIO@
diff --git a/src/ipcpd/normal/sdu_sched.c b/src/ipcpd/normal/sdu_sched.c
index 56455721..529da113 100644
--- a/src/ipcpd/normal/sdu_sched.c
+++ b/src/ipcpd/normal/sdu_sched.c
@@ -36,6 +36,7 @@
#include <string.h>
static int qos_prio [] = {
+ QOS_PRIO_RAW,
QOS_PRIO_BE,
QOS_PRIO_VIDEO,
QOS_PRIO_VOICE