diff options
author | Dimitri Staessens <[email protected]> | 2018-10-19 11:38:54 +0200 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 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 <[email protected]>
Signed-off-by: Sander Vrijders <[email protected]>
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); |