summaryrefslogtreecommitdiff
path: root/src/ipcpd
diff options
context:
space:
mode:
authorDimitri Staessens <dimitri.staessens@ugent.be>2018-10-19 11:38:54 +0200
committerSander Vrijders <sander.vrijders@ugent.be>2018-10-19 12:24:23 +0200
commit619502f7178fef30e726ba57b5a49b61c1c1a276 (patch)
tree7700b7e3a197358c5d48dd2d3cca30bdd391762c /src/ipcpd
parent22e46ab72ff1093882b502a095f36a15807a78d9 (diff)
downloadouroboros-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.c4
-rw-r--r--src/ipcpd/ipcp.h3
-rw-r--r--src/ipcpd/normal/connmgr.c6
-rw-r--r--src/ipcpd/normal/connmgr.h3
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);