summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@intec.ugent.be>2016-03-31 12:00:24 +0200
committerSander Vrijders <sander.vrijders@intec.ugent.be>2016-03-31 12:06:20 +0200
commitb0dfdd839e0704af4f4bf4d4271688af9294e8c9 (patch)
treeb82dda6e8cb41367d173978fa41a070133aab2d2
parent850cefe748364b0b5154c10ac4d9e2b35600efd6 (diff)
downloadouroboros-b0dfdd839e0704af4f4bf4d4271688af9294e8c9.tar.gz
ouroboros-b0dfdd839e0704af4f4bf4d4271688af9294e8c9.zip
lib: Add flow related ops to ipcp.h
This adds the operations related to flows to ipcp.h. Previously it only contained operations on the IPCP level.
-rw-r--r--include/ouroboros/ipcp.h59
1 files changed, 48 insertions, 11 deletions
diff --git a/include/ouroboros/ipcp.h b/include/ouroboros/ipcp.h
index 49b04908..b39a6b0d 100644
--- a/include/ouroboros/ipcp.h
+++ b/include/ouroboros/ipcp.h
@@ -35,19 +35,56 @@ pid_t ipcp_create(instance_name_t * api,
char * ipcp_type);
int ipcp_destroy(pid_t pid);
-int ipcp_reg(pid_t pid,
- char ** difs,
- size_t difs_size);
-int ipcp_unreg(pid_t pid,
+int ipcp_reg(pid_t pid,
char ** difs,
size_t difs_size);
+int ipcp_unreg(pid_t pid,
+ char ** difs,
+ size_t difs_size);
+
+int ipcp_bootstrap(pid_t pid,
+ struct dif_config * conf);
+int ipcp_enroll(pid_t pid,
+ char * dif_name,
+ char * member_name,
+ char ** n_1_difs,
+ ssize_t n_1_difs_size);
+
+/* Flow related ops, these go from IRMd to IPCP */
+
+int ipcp_ap_reg(pid_t pid,
+ uint32_t reg_api_id,
+ char * ap_name);
+int ipcp_ap_unreg(pid_t pid,
+ char * ap_name);
+
+int ipcp_flow_alloc(pid_t pid,
+ uint32_t port_id,
+ char * dst_ap_name,
+ char * src_ap_name,
+ char * src_ae_name,
+ struct qos_spec * qos);
+int ipcp_flow_alloc_resp(pid_t pid,
+ uint32_t port_id,
+ int result);
+
+/* These operations go from the IPCP to the IRMd */
+
+/* Returns the port_id */
+int ipcp_flow_req_arr(pid_t pid,
+ uint32_t reg_api_id,
+ char * ap_name,
+ char * ae_name);
+int ipcp_flow_alloc_reply(pid_t pid,
+ uint32_t port_id,
+ int result);
+
+/*
+ * This operation can go both ways
+ * pid == 0 means the IRMd is the destination
+ */
+int ipcp_flow_dealloc(pid_t pid,
+ uint32_t port_id);
-int ipcp_bootstrap(pid_t pid,
- struct dif_config * conf);
-int ipcp_enroll(pid_t pid,
- char * dif_name,
- char * member_name,
- char ** n_1_difs,
- ssize_t n_1_difs_size);
#endif /* OUROBOROS_IPCP_H */