summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2016-12-12 13:24:17 +0100
committerdimitri staessens <[email protected]>2016-12-12 15:10:30 +0100
commitf8c14e0246a6c9cb5e8ff47869b5968abb63f010 (patch)
treed91c005451a74822516669f3f7cc3ade34971abb /include
parentb731adbf7b6fa16490f7abf94e2662d82d76cce0 (diff)
downloadouroboros-f8c14e0246a6c9cb5e8ff47869b5968abb63f010.tar.gz
ouroboros-f8c14e0246a6c9cb5e8ff47869b5968abb63f010.zip
src, tools: Set/get timeout and get qos for flows
Receiver timeouts can now be set on a flow using the flow_set_timeout function. Specifying NULL disables the timeout. The flow_get_timeout function gets the value for the timeout. This commit also deprecates fcntl in favor of flow_get_flags and flow_set_flags functions. struct qos_spec is typedef'd as a qosspec_t. The tools and cdap.c are updated to use the new API. Fixes a bug in operf client where the client's writer thread wouldn't cancel on SIGINT.
Diffstat (limited to 'include')
-rw-r--r--include/ouroboros/dev.h10
-rw-r--r--include/ouroboros/fcntl.h19
-rw-r--r--include/ouroboros/ipcp-dev.h7
-rw-r--r--include/ouroboros/qos.h4
4 files changed, 24 insertions, 16 deletions
diff --git a/include/ouroboros/dev.h b/include/ouroboros/dev.h
index f2e42d03..47665ca4 100644
--- a/include/ouroboros/dev.h
+++ b/include/ouroboros/dev.h
@@ -35,8 +35,8 @@ int ap_init(char * ap_name);
void ap_fini(void);
/* Returns flow descriptor (> 0), client AE name and qos spec. */
-int flow_accept(char ** ae_name,
- struct qos_spec * qos);
+int flow_accept(char ** ae_name,
+ qosspec_t * qos);
int flow_alloc_resp(int fd,
int response);
@@ -45,9 +45,9 @@ int flow_alloc_resp(int fd,
* Returns flow descriptor (> 0).
* On returning, qos will contain the actual supplied QoS.
*/
-int flow_alloc(char * dst_name,
- char * src_ae_name,
- struct qos_spec * qos);
+int flow_alloc(char * dst_name,
+ char * src_ae_name,
+ qosspec_t * qos);
int flow_alloc_res(int fd);
diff --git a/include/ouroboros/fcntl.h b/include/ouroboros/fcntl.h
index ccb45996..3ad3ccac 100644
--- a/include/ouroboros/fcntl.h
+++ b/include/ouroboros/fcntl.h
@@ -23,6 +23,8 @@
#ifndef OUROBOROS_FCNTL_H
#define OUROBOROS_FCNTL_H
+#include <sys/time.h>
+
/* same values as fcntl.h */
#define FLOW_O_RDONLY 00000000
#define FLOW_O_WRONLY 00000001
@@ -34,11 +36,18 @@
#define FLOW_O_INVALID (FLOW_O_WRONLY | FLOW_O_RDWR)
-#define FLOW_F_GETFL 00000001
-#define FLOW_F_SETFL 00000002
+int flow_set_flags(int fd,
+ int flags);
+
+int flow_get_flags(int fd);
+
+int flow_set_timeout(int fd,
+ struct timespec * to);
+
+int flow_get_timeout(int fd,
+ struct timespec * to);
-int flow_cntl(int fd,
- int cmd,
- int oflags);
+int flow_get_qosspec(int fd,
+ qosspec_t * spec);
#endif /* OUROBOROS_FCNTL_H */
diff --git a/include/ouroboros/ipcp-dev.h b/include/ouroboros/ipcp-dev.h
index ee7c83ad..19a66762 100644
--- a/include/ouroboros/ipcp-dev.h
+++ b/include/ouroboros/ipcp-dev.h
@@ -21,10 +21,6 @@
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-#include <unistd.h>
-#include <time.h>
-
-#include <ouroboros/qos.h>
#include <ouroboros/shm_rdrbuff.h>
#ifndef OUROBOROS_IPCP_DEV_H
@@ -49,4 +45,7 @@ void ipcp_flow_fini(int fd);
void ipcp_flow_del(struct shm_du_buff * sdb);
+int ipcp_flow_get_qoscube(int fd,
+ enum qos_cube * cube);
+
#endif /* OUROBOROS_IPCP_DEV_H */
diff --git a/include/ouroboros/qos.h b/include/ouroboros/qos.h
index 8f573b7d..047e6288 100644
--- a/include/ouroboros/qos.h
+++ b/include/ouroboros/qos.h
@@ -26,9 +26,9 @@
#include <stdint.h>
/* FIXME: may need revision */
-struct qos_spec {
+typedef struct qos_spec {
uint32_t delay;
uint32_t jitter;
-};
+} qosspec_t;
#endif