summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* ipcpd, lib: Revise normal IPCPdimitri staessens2017-02-061-7/+2
| | | | | | | | | | This PR updates the normal IPCP to use the new RIB. The old ribmgr is removed and replaced by a stub that needs to be implemented. All components (dir, fmgr, frct) were adapted to the new RIB API. A lot of functionality was moved outside of the ribmgr, such as the addr_auth, which is now a component of the IPCP. The address is also stored to the ipcpi struct. The irm tool has an option to set the gam policy of the rib manager.
* lib: Move CRC32 implementation to librarydimitri staessens2017-01-141-1/+0
| | | | The CRC32 implementation will be used to ID objects in the RIB.
* ipcpd: normal: Create policies for GAMSander Vrijders2017-01-121-0/+1
| | | | | This allows the selection of a policy for the graph adjacency manager. Currently we only support constructing a complete graph.
* ipcpd: normal: Add graph adjacency managerSander Vrijders2017-01-091-0/+1
| | | | | This commit adds the graph adjacency manager to the normal IPCP, which sets up N-1 flows to other members.
* ipcpd: Rename normal/path to normal/pathnamedimitri staessens2016-12-281-1/+1
|
* ipcpd, lib: Refactor normal ipcp and cdapdimitri staessens2016-12-241-1/+0
| | | | | Refactors the normal IPCP fmgr and ribmgr, and modifies the API for cdap so that no callbacks are needed.
* lib, ipcpd: Add hashtable and PDU Forwarding FunctionSander Vrijders2016-12-211-0/+1
| | | | | | | This adds a hash table that takes 64-bit integers as key and uses separate chaining on collision. It also adds the PDU Forwarding Function, which the Flow Manager can use to lookup the fd towards the next hop. Routing policies will add/update/remove entries in the PFF.
* ipcpd: normal: Provide directory for registered namesSander Vrijders2016-12-021-0/+1
| | | | | This adds a directory to the normal IPCP that maps names on IPCP addresses.
* ipcpd: normal: Add helper functions for pathnamesSander Vrijders2016-11-291-0/+1
| | | | | This adds some helper functions to construct pathnames. Users of the RIB manager may find these handy when constructing RIB objects.
* ipcpd: normal: Complete flat address policySander Vrijders2016-11-291-12/+13
| | | | | This will add a check in the flat address policy to see if the address is in use or not.
* ipcpd: normal: Add syncing of RIB objectsSander Vrijders2016-11-191-1/+3
| | | | | This adds the remote syncing of RIB objects. Subscribers are notified upon receipt of new/deleted/updated RIB objects.
* ipcpd: normal: Add policy for obtaining a flat addressSander Vrijders2016-11-011-0/+2
| | | | | | This adds a policy for obtaining a flat address, and thus also the infrastructure for policies in the IPCP. The IPCP should check if the address is available; this is currently not there yet.
* ipcpd: normal: Improve upon the internal designSander Vrijders2016-10-121-1/+0
| | | | | | | | This commit will remove the RMT component from the normal IPCP, as some of its functionality would else be duplicated in the FMGR. Now all reading from flows, either N-1 or N+1 is done in the FMGR, then either passed to the FRCT or a lookup is performed in the PFF (not there yet) and the PDU is forwarded.
* ipcpd: normal: Add operations to get and set the PCISander Vrijders2016-09-071-2/+4
| | | | | | | | | This adds the operations needed in the normal IPCP to get and set the Protocol Control Information. It allows to allocate or release space in the current DU. The struct pci can be serialized into newly allocate space. Vice versa, a struct pci can be deserialized given a DU. It allows for decreasing the TTL in the DU and for calculating the CRC32. The TTL and CRC32 can now be selected when creating a new DIF.
* ipcpd, normal: Safe handling of CDAP requestsdimitri staessens2016-08-251-0/+1
| | | | Destruction of the object in the reply stage was unsafe.
* ipcpd: normal: Add initial steps for N+1 flow allocationSander Vrijders2016-08-231-3/+7
| | | | | | | | | | | This adds the initial framework for flow allocation between two N+1 endpoints. The FMGR will receive flow allocation requests and will create a connection as a result, addressed to the right address, it will also pass a flow allocation message to this address. Upon receipt on the other side, the FMGR will be receive a flow allocation message and a pointer to a new connection. The FMGR can then accept or destroy the connection. This commit also introduces the RMT function, which is needed by the FRCT to forward its SDUs on the right file descriptor.
* ipcpd: normal: Allow exchange of static DIF informationSander Vrijders2016-08-081-1/+5
| | | | | | This adds the functionality of exchanging the static DIF information between 2 DIF members. After exchange the enrollment is stopped, and the IPCP that initiated enrollment transitions to the enrolled state.
* ipcpd: normal: Establish N-1 management flowsSander Vrijders2016-07-141-0/+3
| | | | | | | | | This adds the intial implementation of establishing management N-1 flows between normal IPCPs. On calling fmgr_mgmt_flow, a management flow will be setup to a certain destination IPCP. After flow allocation, the fd is handed to the RIB manager. The flow manager also listens for incoming flow requests. In case they are management flows, they are handed to the RIB manager, otherwise to the FRCT.
* lib, ipcpd: removed du_buff and pcidimitri staessens2016-06-291-1/+0
| | | | Fixes #3
* build: addresses comments on cffd94adimitri staessens2016-06-281-1/+1
|
* build: Fix installation prefixSander Vrijders2016-06-271-1/+1
| | | | | | The installation prefix was taking a trailing backslash, while it is common not to do so. Fixed it so that any trailing backslash is removed by the compilation and installation scripts.
* build: Change install directories and set correct permissionsSander Vrijders2016-06-201-1/+1
| | | | | | | | | This sets the correct install directories for all the binaries, library and header files. It also sets the right permissions on the sockets and shared memory so that regular users can also use the ouroboros library. Root privileges are required to run the irmd. Fixes #7
* lib, ipcpd, irmd: Add QoS cube definitionSander Vrijders2016-05-141-2/+4
| | | | | | | | | | This adds the QoS cube definition, which is an enum to select which QoS is needed in the IPCP. An application has to use the qos_spec in qos.h to define what it needs. The IRMd will map this unto a qos cube definition. Some headers are now also no longer installed on the system, since they are only to be used within the irmd and ipcps.
* ipcpd: initial IPC processesdimitri staessens2016-04-181-0/+32
Basic functions for implementation of IPC processes, and implementation of core functions of the shim IPCP over UDP. Updates to the build system to compile these IPC processes, as well as some fixes in the irmd (rudimentary capturing exit signals) and some fixes in the library, mainly relating to the messaging. Basic implementation of creation / bootstrapping / deletion of the shim UDP. Placeholders for other functions.