summaryrefslogtreecommitdiff
path: root/include/ouroboros/qos.h
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@ugent.be>2017-06-21 11:50:19 +0200
committerSander Vrijders <sander.vrijders@ugent.be>2017-06-21 12:21:54 +0200
commit806629e64e8231d0c57a80d3b6584094cd6c89bd (patch)
treee0bbe49e68ba86be325ee23c5879a7611df87c9f /include/ouroboros/qos.h
parent22020246ac2b6f03f42dffb48ced19e43b3e9b77 (diff)
downloadouroboros-806629e64e8231d0c57a80d3b6584094cd6c89bd.tar.gz
ouroboros-806629e64e8231d0c57a80d3b6584094cd6c89bd.zip
lib, ipcpd, irmd: Add full-fledged QoS
This adds more Quality of Service support to Ouroboros. One part is the network specific characteristics such as bandwidth, delay, ... The other part is end-to-end QoS like reliability, window based flow control, ...
Diffstat (limited to 'include/ouroboros/qos.h')
-rw-r--r--include/ouroboros/qos.h17
1 files changed, 13 insertions, 4 deletions
diff --git a/include/ouroboros/qos.h b/include/ouroboros/qos.h
index b12fed60..78bdba45 100644
--- a/include/ouroboros/qos.h
+++ b/include/ouroboros/qos.h
@@ -25,13 +25,22 @@
#define OUROBOROS_QOS_H
#include <stdint.h>
+#include <stdbool.h>
typedef struct qos_spec {
- uint32_t delay;
- uint32_t jitter;
+ uint32_t delay; /* In ms */
+ uint64_t bandwidth; /* In bits/s */
+ uint8_t availability; /* Class of 9s */
+ uint32_t maximum_interruption; /* In ms */
- /* FIXME: define qosspecs */
- int cube;
+ bool resource_control; /* Feedback from receiver */
+ bool reliable; /* Reliable flow */
+ bool error_check; /* Check for errors */
+ bool ordered; /* Ordered delivery */
+ bool partial; /* Allow partial delivery */
} qosspec_t;
+int qosspec_init(qosspec_t * qs);
+int qosspec_fini(qosspec_t * qs);
+
#endif