summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* irmd: Fix order of IPCPsSander Vrijders2017-07-181-1/+1
| | | | | This fixes the order of the IPCPs in the IRMd, so that the right type is queried first on flow allocation.
* Merged in dstaesse/ouroboros/be-dht (pull request #529)dimitri staessens2017-07-1816-161/+2742
|\ | | | | | | ipcpd: Add DHT as directory in normal IPCP
| * ipcpd: Add DHT as directory in normal IPCPdimitri staessens2017-07-1816-161/+2742
| | | | | | | | | | | | | | | | | | This implements a Distributed Hash Table (DHT) based on the Kademlia protocol, with default parameters set as used in the BitTorrent Mainline DHT. This initial implementation is almost feature complete, except for some things to be done after a testing period: caching and stale peer bumping, and setting the expiration timeout via the IRM tool.
* | lib: Wait for fqueue loop at cdap_del_flowdimitri staessens2017-07-161-62/+80
| | | | | | | | | | | | | | The enrollment calls dealloc immediately after cdap_del_flow(), but the CDAP instance may still have that fd in its fqueue loop. cdap_del_flow will now wait for an fqueue loop to end before returning, to make sure the flow is not needed anymore.
* | ipcpd: Log exit status before log_fini()dimitri staessens2017-07-161-2/+2
|/
* ipcpd, lib, irmd: Hardcode shim hash algorithmsSander Vrijders2017-07-127-49/+64
| | | | | | | This will hardcode the shim hash algorithms as they don't have an enrollment phase. Fixes #44
* irmd: Shutdown sanitizer without cancellationdimitri staessens2017-07-122-12/+28
|
* ipcpd: Shutdown shim-udp without cancellationdimitri staessens2017-07-121-17/+14
|
* ipcpd: Check connmgr acceptor thread at createdimitri staessens2017-07-121-1/+2
|
* lib: Fix formatting in irm.cdimitri staessens2017-07-121-2/+1
|
* lib: Make read_msg static in cacep.cdimitri staessens2017-07-121-2/+2
|
* lib: Add secure random generatordimitri staessens2017-07-092-5/+81
| | | | | This adds a secure random number generator. It will use OS specific calls with a fallback to OpenSSL if available.
* lib: Fix bug and add test for time_utilsdimitri staessens2017-07-053-6/+173
|
* lib: Handle errors when creating cdap_req structsdimitri staessens2017-07-041-2/+13
|
* lib: Fix memleak in FRCT enrollmentdimitri staessens2017-07-031-0/+3
|
* lib, ipcpd, irmd: Add full-fledged QoSSander Vrijders2017-06-2116-56/+270
| | | | | | | This adds more Quality of Service support to Ouroboros. One part is the network specific characteristics such as bandwidth, delay, ... The other part is end-to-end QoS like reliability, window based flow control, ...
* lib: include missing headers in dev.cdimitri staessens2017-06-211-8/+8
| | | | | The dev.c source file had some missing include headers. This PR fixes inconsistencies between the definitions and declarations in ipcp-dev.h
* ipcpd: Fix flow allocation over normaldimitri staessens2017-06-192-3/+1
|
* Merged in dstaesse/ouroboros/be-macro (pull request #514)dimitri staessens2017-06-054-4/+4
|\ | | | | | | include: Fix macro for printing hash
| * include: Fix macro for printing hashdimitri staessens2017-06-044-4/+4
| |
* | ipcpd: Fix routing type configurationdimitri staessens2017-06-051-5/+6
| |
* | ipcpd: Fix flow allocation over UDP shimdimitri staessens2017-06-041-1/+1
| |
* | lib, irmd: Handle case fallthrough in gcc 7dimitri staessens2017-06-042-0/+2
|/
* ipcpd: Start DT component before flow allocatordimitri staessens2017-05-241-15/+15
|
* lib: Fix bug in bitmapdimitri staessens2017-05-242-8/+18
|
* ipcpd: Allow registering protocol machines with DTdimitri staessens2017-05-244-119/+176
| | | | | | Other protocol machines now have to register on top of the DT AE. This allows multiple instances of the same protocol machine and avoids preallocating fds for each protocol machine instance.
* lib: Fix some bugs in dev.cdimitri staessens2017-05-231-45/+55
| | | | | | | Fixed releasing an allocated fd on failure. As the sending of dealloc messages has been deprecated, dealloc was simplified by removing a stale block of code (replaced with an assertion). Fixed reading some variables without a necessary lock.
* ipcpd: normal: Make routing a policySander Vrijders2017-05-1517-353/+517
| | | | | | This makes the routing component into a policy since different approaches may exist to do this, depending on how high the rank of the DIF is.
* ipcpd: Allow specifying fixed syntaxdimitri staessens2017-05-1515-259/+201
| | | | | | This commits adds the functions and messages to specify a fixed protocol syntax during CACEP. It also revises the messages for specifying the DT protocol syntax from the irm tool.
* ipcpd: Remove FRCT from normal IPCPdimitri staessens2017-05-1016-710/+92
| | | | | | | In order to ensure 100% reliable transfer, the protocol state machine that takes care of retransmission and SDU ordering has to be in the application. Flow allocation in the normal now uses fds. The PDU_type field was deprecated and AE's within the DIF can use reserved fds.
* irmd: Fix unbinding AP and AP-Is from a namedimitri staessens2017-05-093-4/+16
| | | | | | | APs and AP-Is were not removed from the registry entry for that name. Reported by: [email protected] Tested by: [email protected]
* ipcpd: Don't send deallocation messagesdimitri staessens2017-05-022-39/+0
| | | | | | | The flow resources are Delta-t protocol machines that will time out and free their resources without any required signaling. Flows can be cleaned locally when the application requests it and all FRCT instances have timed out and released their resources.
* ipcpd: Fix sending fa dealloc messagedimitri staessens2017-04-292-18/+31
| | | | | | | The frct instance was previously destroyed before sending the message, resulting in the destination address being 0 and the message getting dropped. Some fixes in the normal for deallocation, but will require further revision once all data transfer protocols are in place.
* ipcpd: Fix some bugs for the normal splitdimitri staessens2017-04-284-39/+46
|
* Merged in dstaesse/ouroboros/be-irmd-logs (pull request #498)dimitri staessens2017-04-281-6/+0
|\ | | | | | | irmd: Remove some debug logs
| * irmd: Remove some debug logsdimitri staessens2017-04-281-6/+0
| |
* | Merged in sandervrijders/ouroboros/be-frct-api (pull request #497)Sander Vrijders2017-04-2815-680/+647
|\ \ | |/ |/| | | ipcpd: normal: Split connection establishment
| * ipcpd: normal: Split connection establishmentSander Vrijders2017-04-2815-680/+647
| | | | | | | | | | | | Connection establishment was done at the same time as flow allocation. This splits it more cleanly, and allows to re-use the DT AE for other purposes.
* | lib: Remove obsolete lock in dev.cdimitri staessens2017-04-281-135/+5
| |
* | ipcpd: Add capability reportingdimitri staessens2017-04-277-53/+94
|/ | | | | | | | The IPCP will now report the DIF name and the hash value to the IRMd as a dif_info struct. This can later be extended to add further capability reporting. Some bugfixes in normal. Fixes #24
* ipcpd: Fix start/stop order in dtdimitri staessens2017-04-261-9/+9
|
* lib: Add call to reserve blocks in rdrbuffdimitri staessens2017-04-268-23/+62
| | | | | | | This adds a call ipcp_sdb_reserve to reserve memory in the rdrbuff without directly writing to a flow. The ipcp_flow_del function was renamed to ipcp_sdb_release. The functions operating on sdbs are moved to their own header.
* ipcpd: normal: Extract flow sets from componentsSander Vrijders2017-04-244-65/+58
| | | | | | The flow sets were still kept within the FA and DT components, when it makes more sense that they are kept within the SDU scheduler component.
* ipcpd: normal: Split flow manager into DT and FASander Vrijders2017-04-2111-884/+972
| | | | | | This splits the flow manager into the Data Transfer AE, which is in charge of routing SDUs, and the Flow Allocator AE, which handles flow allocations.
* Merged in dstaesse/ouroboros/be-complete (pull request #489)dimitri staessens2017-04-204-21/+78
|\ | | | | | | ipcpd: Build complete graph with gam
| * ipcpd: Build complete graph with gamdimitri staessens2017-04-204-21/+78
| | | | | | | | | | The complete policy will now build a complete graph. Currently a simple timer is used to check the member list periodically.
* | Merged in dstaesse/ouroboros/be-rib-lock (pull request #488)dimitri staessens2017-04-201-2/+3
|\| | | | | | | lib: Fix bad lock in rib
| * lib: Fix bad lock in ribdimitri staessens2017-04-201-2/+3
| |
* | ipcpd: normal: Extract SDU scheduling componentSander Vrijders2017-04-194-127/+236
|/ | | | | | This extracts the SDU scheduling component out of the Flow Manager since the functionality was duplicated. For both the N-1 and N+1 flow sets an SDU scheduling component is now created.
* lib: Fix compilation error in hash.cSander Vrijders2017-04-191-0/+2
| | | | | If compiled as release build, an error would be generated as the control reaches the end of a non-void function.