summaryrefslogtreecommitdiff
path: root/src/lib/cdap.c
Commit message (Collapse)AuthorAgeFilesLines
* build: Compile with strict conversiondimitri staessens2016-10-221-2/+3
| | | | | This has the code checked with -Wcast-qual and -Wconversion flags. These flags were removed because SWIG generated code fails.
* lib, ipcp: Revise fast path and flow interfacesdimitri staessens2016-10-041-0/+1
| | | | | | | | | | | | IPCPs can now use ap_init() to initialize the memory. All flows are accessed using flow descriptors, this greatly simplifies IPCP development. Reverts the fast path to a single ap_rbuff per process. Splits lib/ipcp into irmd/ipcp and lib/ipcp-dev. Adds a lib/shim-dev holding tailored functions for shims. Moves the buffer_t to utils.h. Fixes the shim-eth-llc length field. Removes the flow from shared.h. Fixes #4 Fixes #5
* lib, cdap: Fix message handlerdimitri staessens2016-08-291-1/+1
| | | | When getting a DELETE opcode, create was called instead of delete.
* cdap: Fix destructiondimitri staessens2016-08-271-6/+3
| | | | | Destroying NULL should succeed. Resources need to be freed even if flow_dealloc fails.
* ipcpd: normal: Handle enrollment repliesSander Vrijders2016-08-191-61/+92
| | | | | | | | This adds a condition variable with a timeout to the CDAP request so that we can respond correctly to the answer from the remote. It also adds a timeout to the condition variable waiting on completion of enrollment. Furthermore, for every CDAP callback a new thread is now spawned, to avoid deadlocking in case a callback is stuck.
* ipcpd: normal: Allow exchange of static DIF informationSander Vrijders2016-08-081-118/+63
| | | | | | 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.
* lib, tools: Add POSIX version to source filesSander Vrijders2016-08-081-0/+1
| | | | | Sometimes the POSIX version was not set in source files. This caused the compiler to not find the timespec struct, since we are using C89.
* ipcpd: normal: Allow initiating enrollmentSander Vrijders2016-08-011-0/+4
| | | | | | | This will add more functionality for enrolling two normal IPCPs with each other. Some bugs were fixed in CDAP. Now on enrolling, an IPCP will send a START message to the other IPCP. Next step is syncing the RIBs.
* ipcpd: normal: Provide initial steps for enrollmentSander Vrijders2016-07-271-23/+23
| | | | | | This provides the normal IPCP with bootstrapping and the initial steps for enrollment. Next step is actually reacting to an enrollment request and sending the data transfer constants.
* lib, irmd: Fix clang and CI compilation errorsSander Vrijders2016-07-051-14/+22
| | | | | | This commit fixes some errors reported during compilation that were undiscovered by my gcc compiler but found by clang, and errors not found on my system but found by the CI platform.
* lib: Provide first implementation of revised CDAPSander Vrijders2016-07-051-0/+430
| | | | | | | | This commit introduces a first version of the revised CDAP specification. CACEP (for authentication purposes) has been separated from CDAP. Application developers may use CDAP if they find it useful. Within Ouroboros CDAP will be used to perform operations on the RIB of an IPCP.
* Initial build infrastructureSander Vrijders2016-02-111-0/+0
Contains the initial build infrastructure. Cmake was chosen for portability reasons.