diff options
| author | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-12-12 13:24:17 +0100 | 
|---|---|---|
| committer | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-12-12 15:10:30 +0100 | 
| commit | f8c14e0246a6c9cb5e8ff47869b5968abb63f010 (patch) | |
| tree | d91c005451a74822516669f3f7cc3ade34971abb /include | |
| parent | b731adbf7b6fa16490f7abf94e2662d82d76cce0 (diff) | |
| download | ouroboros-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.h | 10 | ||||
| -rw-r--r-- | include/ouroboros/fcntl.h | 19 | ||||
| -rw-r--r-- | include/ouroboros/ipcp-dev.h | 7 | ||||
| -rw-r--r-- | include/ouroboros/qos.h | 4 | 
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  | 
