diff options
author | Sander Vrijders <[email protected]> | 2017-03-02 15:29:11 +0100 |
---|---|---|
committer | Sander Vrijders <[email protected]> | 2017-03-02 16:01:35 +0100 |
commit | 9d2fbef7b8569aac930c95ca1afb92a5dec79dac (patch) | |
tree | 7c4931890ee54d9bac331ac6031f411ddac08527 /src/ipcpd/normal/connmgr.h | |
parent | a5796c7f02570a2878f9c6a5d28dca80beabed12 (diff) | |
download | ouroboros-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.h | 57 |
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 <[email protected]> + * Dimitri Staessens <[email protected]> + * + * 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 */ |