From 619502f7178fef30e726ba57b5a49b61c1c1a276 Mon Sep 17 00:00:00 2001 From: Dimitri Staessens Date: Fri, 19 Oct 2018 11:38:54 +0200 Subject: tools: Specify QoS cube for data transfer flows 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 Signed-off-by: Sander Vrijders --- src/ipcpd/ipcp.c | 4 +++- src/ipcpd/ipcp.h | 3 ++- src/ipcpd/normal/connmgr.c | 6 +++--- src/ipcpd/normal/connmgr.h | 3 ++- 4 files changed, 10 insertions(+), 6 deletions(-) (limited to 'src/ipcpd') 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); -- cgit v1.2.3