summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal/connmgr.h
diff options
context:
space:
mode:
authorSander Vrijders <sander.vrijders@intec.ugent.be>2017-03-02 15:29:11 +0100
committerSander Vrijders <sander.vrijders@intec.ugent.be>2017-03-02 16:01:35 +0100
commit9d2fbef7b8569aac930c95ca1afb92a5dec79dac (patch)
tree7c4931890ee54d9bac331ac6031f411ddac08527 /src/ipcpd/normal/connmgr.h
parenta5796c7f02570a2878f9c6a5d28dca80beabed12 (diff)
downloadouroboros-9d2fbef7b8569aac930c95ca1afb92a5dec79dac.tar.gz
ouroboros-9d2fbef7b8569aac930c95ca1afb92a5dec79dac.zip
ipcpd: normal: Add connection manager
This adds the connection manager which allows the different AEs of the normal IPCP to register with it. An AE can then use the connection manager to allocate a flow to a neighbor, or to wait for a new connection from a neighbor.
Diffstat (limited to 'src/ipcpd/normal/connmgr.h')
-rw-r--r--src/ipcpd/normal/connmgr.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/src/ipcpd/normal/connmgr.h b/src/ipcpd/normal/connmgr.h
new file mode 100644
index 00000000..bfb3d762
--- /dev/null
+++ b/src/ipcpd/normal/connmgr.h
@@ -0,0 +1,57 @@
+/*
+ * Ouroboros - Copyright (C) 2016 - 2017
+ *
+ * Handles the different AP connections
+ *
+ * Sander Vrijders <sander.vrijders@ugent.be>
+ * Dimitri Staessens <dimitri.staessens@ugent.be>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#ifndef OUROBOROS_IPCPD_NORMAL_CONNMGR_H
+#define OUROBOROS_IPCPD_NORMAL_CONNMGR_H
+
+#include <ouroboros/cacep.h>
+#include <ouroboros/qos.h>
+
+struct conn {
+ struct conn_info conn_info;
+ struct flow_info {
+ int fd;
+ qosspec_t qs;
+ } flow_info;
+};
+
+int connmgr_init(void);
+
+void connmgr_fini(void);
+
+int connmgr_start(void);
+
+void connmgr_stop(void);
+
+struct ae * connmgr_ae_create(struct conn_info info);
+
+void connmgr_ae_destroy(struct ae * ae);
+
+int connmgr_alloc(struct ae * ae,
+ char * dst_name,
+ qosspec_t qs,
+ struct conn * conn);
+
+int connmgr_wait(struct ae * ae,
+ struct conn * conn);
+
+#endif /* OUROBOROS_IPCPD_NORMAL_CONNMGR_H */