summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ipcpd: normal: Simplify Dijkstra implementationSander Vrijders2017-09-251-25/+17
| | | | | | This simplifies the Dijkstra implementation by immediately setting the correct next hop during Dijkstra instead of looping through the list of predecessors afterwards.
* ipcpd: normal: Simplify internal graph functionsSander Vrijders2017-09-251-38/+26
| | | | | This simplifies several internal graph functions by passing an array of bools instead of an array of vertices.
* ipcpd: normal: Return list as routing tableSander Vrijders2017-09-254-106/+197
| | | | | | This returns a list as routing table instead of a pointer to a pointer to a pointer, which simplifies the looping through the routing table and makes it more extensible for future additions.
* Merged in dstaesse/ouroboros/be-dht-deadlock-fix (pull request #616)dimitri staessens2017-09-241-27/+41
|\ | | | | | | ipcpd: Fix deadlock in DHT
| * ipcpd: Fix deadlock in DHTdimitri staessens2017-09-241-27/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | The lookup_update was waiting for the LU_INIT state to resolve under dht->lock which prevented that update. This PR fixes this bug, but leaves a (very rare) bug when the lookup_destroy is called while the lookup_update is waiting for the LU_INIT state to resolve. The solution also is a (harmless) lock inversion, but this is also not the best. Fixes #51 Fixes #52
* | Merged in dstaesse/ouroboros/be-dht-debugging (pull request #615)dimitri staessens2017-09-246-319/+417
|\| | | | | | | ipcpd: Fix compilation of DHT
| * ipcpd: Add threadpool manager to DHTdimitri staessens2017-09-246-319/+417
|/ | | | | | | | | | | This adds a threadpool manager to the DHT. This was needed because the detached thread could cause a data race on shutdown. The threadpool manager is revised to allow multiple instances in a single program. The irmd and ipcp now store commands in a buffer (list) instead of a single buffer before passing it to handler threads.
* Merged in dstaesse/ouroboros/be-bugfixes (pull request #614)dimitri staessens2017-09-233-81/+129
|\ | | | | | | Some bugfixes
| * ipcpd: Don't publish DHT entries under lockdimitri staessens2017-09-231-30/+85
| |
| * lib: Clean up bitmap implementationdimitri staessens2017-09-232-51/+44
| | | | | | | | | | | | There was a return -1 in the allocate call which is unsafe since -1 may be a valid id in the bitmap. Since it's a data structure for internal use, I replaced the NULL checks with assertions.
* | Merged in dstaesse/ouroboros/be-bugfixes (pull request #613)dimitri staessens2017-09-232-9/+17
|\| | | | | | | Some bugfixes
| * ipcpd: Lock dht before reading parametersdimitri staessens2017-09-231-7/+14
| |
| * ipcpd: Fix data race in shim-udpdimitri staessens2017-09-231-2/+3
| | | | | | | | | | This fixes a data race in the shim-udp where the alloc_lock was released before the ipcpi.alloc_id was set.
* | Merged in sandervrijders/ouroboros/be-lockless (pull request #612)Sander Vrijders2017-09-221-2/+2
|\ \ | | | | | | | | | lib: Disable lockless rbuff by default
| * | lib: Disable lockless rbuff by defaultSander Vrijders2017-09-221-2/+2
|/ / | | | | | | | | This disables the lockless rbuff by default since it is less stable and tested.
* | Merged in dstaesse/ouroboros/be-dht-update-fix (pull request #611)dimitri staessens2017-09-221-1/+4
|\ \ | |/ |/| | | ipcpd: Fix DHT recursive lookup
| * ipcpd: Fix DHT recursive lookupdimitri staessens2017-09-221-1/+4
|/
* Merged in dstaesse/ouroboros/be-hashtable (pull request #610)dimitri staessens2017-09-212-0/+5
|\ | | | | | | lib: Include string.h in hashtable.c for memcpy
| * ipcpd: Mark len parameter as unused in simple_pffdimitri staessens2017-09-211-0/+4
| |
| * lib: Include string.h in hashtable.c for memcpydimitri staessens2017-09-211-0/+1
|/
* Merged in dstaesse/ouroboros/be-cancel (pull request #609)dimitri staessens2017-09-213-72/+85
|\ | | | | | | ipcpd: Cancel threads in IPCPs
| * ipcpd: Cancel threads in IPCPsdimitri staessens2017-09-213-72/+85
| | | | | | | | | | | | This reduces CPU consumption and shutdown times. Invalidates #43
* | Merged in sandervrijders/ouroboros/be-lfa-pff (pull request #607)Sander Vrijders2017-09-2112-77/+579
|\ \ | |/ |/| | | ipcpd: normal: Add alternate hop PFF
| * ipcpd: normal: Add alternate hop PFFSander Vrijders2017-09-2112-77/+579
| | | | | | | | | | This adds a PFF that returns an alternate hop as next hop in case the hop that would have been returned is down.
* | Merged in dstaesse/ouroboros/be-sched (pull request #608)dimitri staessens2017-09-213-61/+106
|\ \ | |/ |/| | | ipcpd: Use the kernel scheduler for QoS
| * ipcpd: Use the kernel scheduler for QoSdimitri staessens2017-09-213-61/+106
|/ | | | | | | | | This revises the sdu_scheduler of the normal IPCP to create a scheduler thread per QoS cube and let the kernel scheduler schedule them based on a priority. Priorities can be set at build time in a range of 0-100, which will be mapped onto a suitable priority for the kernel scheduler. The current scheduler policy is fixed to SCHED_RR since it is the most suitable scheduler defined by POSIX.
* Merged in dstaesse/ouroboros/be-rib (pull request #606)dimitri staessens2017-09-212-5/+3
|\ | | | | | | lib: Pass the fuse struct to the handling thread
| * lib: Pass the fuse struct to the handling threaddimitri staessens2017-09-212-5/+3
|/ | | | This avoids potential data races on rib.fuse.
* Merged in dstaesse/ouroboros/be-dht-revision (pull request #605)dimitri staessens2017-09-211-15/+58
|\ | | | | | | ipcpd: Handle DHT SDUs in different thread
| * ipcpd: Handle DHT SDUs in different threaddimitri staessens2017-09-201-15/+58
| | | | | | | | | | | | | | The DHT will now spawn a thread when receiving SDUs to avoid starvation of sdu scheduler threads. Also fixes some locking issues.
* | Merged in sandervrijders/ouroboros/be-pff (pull request #604)Sander Vrijders2017-09-2019-140/+422
|\ \ | | | | | | | | | ipcpd: normal: Make PFF policy-based
| * | ipcpd: normal: Make PFF policy-basedSander Vrijders2017-09-2019-140/+422
| | | | | | | | | | | | | | | This turns the PDU Forwarding Function of the IPCP into a policy. For now only the simple PFF policy is available.
* | | Merged in dstaesse/ouroboros/be-fuse-fix (pull request #603)dimitri staessens2017-09-201-0/+3
|\ \ \ | |/ / |/| / | |/ ipcpd: Fix shutdown of rib
| * ipcpd: Fix shutdown of ribdimitri staessens2017-09-201-0/+3
| | | | | | | | Fixes #50
* | Merged in dstaesse/ouroboros/be-gcrypt-init (pull request #602)dimitri staessens2017-09-204-3/+20
|\| | | | | | | irmd: Init libgcrypt before using it
| * irmd: Init libgcrypt before using itdimitri staessens2017-09-204-3/+20
|/
* Merged in dstaesse/ouroboros/be-dht-query-refuse (pull request #601)dimitri staessens2017-09-191-0/+3
|\ | | | | | | ipcpd: Refuse query when DHT not in running state
| * ipcpd: Refuse query when DHT not in running statedimitri staessens2017-09-191-0/+3
| |
* | Merged in dstaesse/ouroboros/be-fuse-msg (pull request #600)dimitri staessens2017-09-191-0/+2
|\ \ | | | | | | | | | build: Notify if FUSE is not installed
| * | build: Notify if FUSE is not installeddimitri staessens2017-09-191-0/+2
| |/
* | Merged in dstaesse/ouroboros/be-dht-contacts (pull request #599)dimitri staessens2017-09-191-3/+3
|\ \ | |/ |/| | | ipcpd: Fix contact list in DHT
| * ipcpd: Fix contact list in DHTdimitri staessens2017-09-191-3/+3
|/
* Merged in dstaesse/ouroboros/be-dht-async (pull request #598)dimitri staessens2017-09-199-96/+152
|\ | | | | | | ipcpd: Enroll DHT when creating dt connection
| * ipcpd: Enroll DHT when creating dt connectiondimitri staessens2017-09-199-96/+152
| | | | | | | | | | | | | | | | | | The DHT will now enroll or sync when a data transfer connection is added. This avoids the need to create a temporary data transfer connection during enrollment (and speeds it up considerably). The notifier system was modified to take an opaque pointer to the object that registers as a parameter.
* | Merged in sandervrijders/ouroboros/be-man (pull request #597)Sander Vrijders2017-09-191-0/+2
|\ \ | |/ |/| | | doc: man: Update fccntl manpage
| * doc: man: Update fccntl manpageSander Vrijders2017-09-191-0/+2
|/ | | | | The option to mark a flow as down was missing from the manpage of fccntl.
* Merged in sandervrijders/ouroboros/be-flow-down (pull request #596)Sander Vrijders2017-09-1912-107/+331
|\ | | | | | | ipcpd, lib: Add flow down events
| * ipcpd, lib: Add flow down eventsSander Vrijders2017-09-1912-107/+331
|/ | | | | | | | This adds the flow down event to Ouroboros. In the shim-eth-llc, a netlink socket is opened which listens to device up/down events. For each event the flow is then adjusted with fccntl to notify the user the flow is down or back up again. In the normal IPCP an event is thrown if a write reports that the flow is down.
* Merged in dstaesse/ouroboros/be-link-state (pull request #595)dimitri staessens2017-09-181-2/+2
|\ | | | | | | ipcpd: Fix src and dst in link-state advertisements
| * ipcpd: Fix src and dst in link-state advertisementsdimitri staessens2017-09-181-2/+2
|/