diff options
| author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2018-06-07 23:35:14 +0200 | 
|---|---|---|
| committer | Sander Vrijders <sander.vrijders@ugent.be> | 2018-06-08 10:26:07 +0200 | 
| commit | b74980761cdcd9a706760ae9a4efb3806ca9bee2 (patch) | |
| tree | 7619284e1ceb8044c9e5bf1b8fcea6729aead825 /src/ipcpd | |
| parent | 7d51ff3e5a4e42f21c9e5e89e5ea8493b7737161 (diff) | |
| download | ouroboros-b74980761cdcd9a706760ae9a4efb3806ca9bee2.tar.gz ouroboros-b74980761cdcd9a706760ae9a4efb3806ca9bee2.zip | |
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 <dimitri.staessens@ugent.be>
Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
Diffstat (limited to 'src/ipcpd')
| -rw-r--r-- | src/ipcpd/CMakeLists.txt | 6 | ||||
| -rw-r--r-- | src/ipcpd/config.h.in | 1 | ||||
| -rw-r--r-- | src/ipcpd/eth/eth.c | 2 | ||||
| -rw-r--r-- | src/ipcpd/normal/sdu_sched.c | 3 | 
4 files changed, 10 insertions, 2 deletions
| diff --git a/src/ipcpd/CMakeLists.txt b/src/ipcpd/CMakeLists.txt index d7523aeb..b706d432 100644 --- a/src/ipcpd/CMakeLists.txt +++ b/src/ipcpd/CMakeLists.txt @@ -8,6 +8,8 @@ set(IPCP_QOS_CUBE_VIDEO_PRIO 90 CACHE STRING    "Priority for video QoS cube (0-99)")  set(IPCP_QOS_CUBE_VOICE_PRIO 99 CACHE STRING    "Priority for voice QoS cube (0-99)") +set(IPCP_QOS_CUBE_DATA_PRIO 0 CACHE STRING +  "Priority for data QoS cube (0-99)")  set(IPCP_MIN_THREADS 4 CACHE STRING    "Minimum number of worker threads in the IPCP")  set(IPCP_ADD_THREADS 4 CACHE STRING @@ -27,6 +29,10 @@ 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 () +if ((IPCP_QOS_CUBE_DATA_PRIO LESS 0) OR (IPCP_QOS_CUBE_DATA_PRIO GREATER 99)) +  message(FATAL_ERROR "Invalid priority for data QoS cube") +endif () +  if ((IPCP_QOS_CUBE_VIDEO_PRIO LESS 0) OR (IPCP_QOS_CUBE_VIDEO_PRIO GREATER 99))    message(FATAL_ERROR "Invalid priority for video QoS cube")  endif () diff --git a/src/ipcpd/config.h.in b/src/ipcpd/config.h.in index b7806f60..375ac750 100644 --- a/src/ipcpd/config.h.in +++ b/src/ipcpd/config.h.in @@ -42,6 +42,7 @@  #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@ +#define QOS_PRIO_DATA       @IPCP_QOS_CUBE_DATA_PRIO@  #define IPCP_SCHED_THR_MUL  @IPCP_SCHED_THR_MUL@  #define PFT_SIZE            @PFT_SIZE@ diff --git a/src/ipcpd/eth/eth.c b/src/ipcpd/eth/eth.c index caf9d2df..a58839f0 100644 --- a/src/ipcpd/eth/eth.c +++ b/src/ipcpd/eth/eth.c @@ -1504,7 +1504,7 @@ static int eth_ipcp_flow_alloc(int             fd,          assert(hash); -        if (cube > QOS_CUBE_BE) { +        if (cube > QOS_CUBE_DATA) {                  log_dbg("Unsupported QoS requested.");                  return -1;          } diff --git a/src/ipcpd/normal/sdu_sched.c b/src/ipcpd/normal/sdu_sched.c index 529da113..0ae22895 100644 --- a/src/ipcpd/normal/sdu_sched.c +++ b/src/ipcpd/normal/sdu_sched.c @@ -39,7 +39,8 @@ static int qos_prio [] = {          QOS_PRIO_RAW,          QOS_PRIO_BE,          QOS_PRIO_VIDEO, -        QOS_PRIO_VOICE +        QOS_PRIO_VOICE, +        QOS_PRIO_DATA  };  struct sdu_sched { | 
