diff options
| author | Dimitri Staessens <dimitri.staessens@ugent.be> | 2018-10-19 11:38:54 +0200 | 
|---|---|---|
| committer | Sander Vrijders <sander.vrijders@ugent.be> | 2018-10-19 12:24:23 +0200 | 
| commit | 619502f7178fef30e726ba57b5a49b61c1c1a276 (patch) | |
| tree | 7700b7e3a197358c5d48dd2d3cca30bdd391762c /src/ipcpd | |
| parent | 22e46ab72ff1093882b502a095f36a15807a78d9 (diff) | |
| download | ouroboros-619502f7178fef30e726ba57b5a49b61c1c1a276.tar.gz ouroboros-619502f7178fef30e726ba57b5a49b61c1c1a276.zip  | |
tools: Specify QoS cube for data transfer flows0.13.0
The ipcp connect command can now set a specific qos cube for data
transfer flows. For management flows, the tool ignores this and
defaults to raw until data flows are stable enough.
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/ipcp.c | 4 | ||||
| -rw-r--r-- | src/ipcpd/ipcp.h | 3 | ||||
| -rw-r--r-- | src/ipcpd/normal/connmgr.c | 6 | ||||
| -rw-r--r-- | src/ipcpd/normal/connmgr.h | 3 | 
4 files changed, 10 insertions, 6 deletions
diff --git a/src/ipcpd/ipcp.c b/src/ipcpd/ipcp.c index 8640bf6e..862b3463 100644 --- a/src/ipcpd/ipcp.c +++ b/src/ipcpd/ipcp.c @@ -324,8 +324,10 @@ static void * mainloop(void * o)                                  break;                          } +                        qs = msg_to_spec(msg->qosspec);                          ret_msg.result = ipcpi.ops->ipcp_connect(msg->dst, -                                                                 msg->comp); +                                                                 msg->comp, +                                                                 qs);                          break;                  case IPCP_MSG_CODE__IPCP_DISCONNECT:                          ret_msg.has_result = true; diff --git a/src/ipcpd/ipcp.h b/src/ipcpd/ipcp.h index 1d25fb3f..fabd35fe 100644 --- a/src/ipcpd/ipcp.h +++ b/src/ipcpd/ipcp.h @@ -46,7 +46,8 @@ struct ipcp_ops {                                struct layer_info * info);          int   (* ipcp_connect)(const char * dst, -                               const char * component); +                               const char * component, +                               qosspec_t    qs);          int   (* ipcp_disconnect)(const char * dst,                                    const char * component); diff --git a/src/ipcpd/normal/connmgr.c b/src/ipcpd/normal/connmgr.c index 7b71761f..5aee7b7a 100644 --- a/src/ipcpd/normal/connmgr.c +++ b/src/ipcpd/normal/connmgr.c @@ -320,7 +320,8 @@ void connmgr_comp_fini(enum comp_id id)  }  int connmgr_ipcp_connect(const char * dst, -                         const char * component) +                         const char * component, +                         qosspec_t    qs)  {          struct conn_el * ce;          int              id; @@ -341,8 +342,7 @@ int connmgr_ipcp_connect(const char * dst,                  return -1;          } -        /* FIXME: get the correct qos for the component. */ -        if (connmgr_alloc(id, dst, NULL, &ce->conn)) { +        if (connmgr_alloc(id, dst, &qs, &ce->conn)) {                  free(ce);                  return -1;          } diff --git a/src/ipcpd/normal/connmgr.h b/src/ipcpd/normal/connmgr.h index a7e8a6e0..f767e72c 100644 --- a/src/ipcpd/normal/connmgr.h +++ b/src/ipcpd/normal/connmgr.h @@ -54,7 +54,8 @@ int         connmgr_comp_init(enum comp_id             id,  void        connmgr_comp_fini(enum comp_id id);  int         connmgr_ipcp_connect(const char * dst, -                                 const char * component); +                                 const char * component, +                                 qosspec_t    qs);  int         connmgr_ipcp_disconnect(const char * dst,                                      const char * component);  | 
