Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | ipcpd: normal: Add Loop-Free Alternates routing | Sander Vrijders | 2017-09-29 | 8 | -56/+229 |
| | | | | | | This adds the Loop-Free Alternates (LFA) policy. In case a link goes down a LFA may be selected to route the SDUs on without causing loops instead of the main hop that just went down. | ||||
* | Merged in sandervrijders/ouroboros/be-routing (pull request #617) | Sander Vrijders | 2017-09-26 | 4 | -189/+288 |
|\ | | | | | | | Be routing | ||||
| * | ipcpd: normal: Add refcount to graph edges | Sander Vrijders | 2017-09-26 | 3 | -22/+53 |
| | | | | | | | | | | This adds a refcount to the graph edges so that it is only included in the calculation if both sides announced it. | ||||
| * | ipcpd: normal: Keep index in vertex struct | Sander Vrijders | 2017-09-25 | 2 | -27/+24 |
| | | | | | | | | | | This keeps the index in the vertex struct so that is more easily available during Dijkstra. | ||||
| * | ipcpd: normal: Simplify Dijkstra implementation | Sander Vrijders | 2017-09-25 | 1 | -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 functions | Sander Vrijders | 2017-09-25 | 1 | -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 table | Sander Vrijders | 2017-09-25 | 4 | -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 sandervrijders/ouroboros/be-dht-fix (pull request #618) | Sander Vrijders | 2017-09-26 | 1 | -3/+3 |
|\ \ | | | | | | | | | | ipcpd: normal: Set clock to realtime clock | ||||
| * | | ipcpd: normal: Set clock to realtime clock | Sander Vrijders | 2017-09-26 | 1 | -3/+3 |
| |/ | | | | | | | | | | | A pthread_cond_wait was using the pthread_cond_clock and thereby timing out constantly, consuming 100% CPU. This changes it to use the realtime clock. | ||||
* | | Merged in dstaesse/ouroboros/be-sched-mul (pull request #619) | dimitri staessens | 2017-09-26 | 3 | -10/+14 |
|\ \ | |/ |/| | | | ipcpd: Add multiplier to scale scheduler threads | ||||
| * | ipcpd: Add multiplier to scale scheduler threads | dimitri staessens | 2017-09-25 | 3 | -10/+14 |
|/ | |||||
* | Merged in dstaesse/ouroboros/be-dht-deadlock-fix (pull request #616) | dimitri staessens | 2017-09-24 | 1 | -27/+41 |
|\ | | | | | | | ipcpd: Fix deadlock in DHT | ||||
| * | ipcpd: Fix deadlock in DHT | dimitri staessens | 2017-09-24 | 1 | -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 staessens | 2017-09-24 | 6 | -319/+417 |
|\| | | | | | | | ipcpd: Fix compilation of DHT | ||||
| * | ipcpd: Add threadpool manager to DHT | dimitri staessens | 2017-09-24 | 6 | -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 staessens | 2017-09-23 | 3 | -81/+129 |
|\ | | | | | | | Some bugfixes | ||||
| * | ipcpd: Don't publish DHT entries under lock | dimitri staessens | 2017-09-23 | 1 | -30/+85 |
| | | |||||
| * | lib: Clean up bitmap implementation | dimitri staessens | 2017-09-23 | 2 | -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 staessens | 2017-09-23 | 2 | -9/+17 |
|\| | | | | | | | Some bugfixes | ||||
| * | ipcpd: Lock dht before reading parameters | dimitri staessens | 2017-09-23 | 1 | -7/+14 |
| | | |||||
| * | ipcpd: Fix data race in shim-udp | dimitri staessens | 2017-09-23 | 1 | -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 Vrijders | 2017-09-22 | 1 | -2/+2 |
|\ \ | | | | | | | | | | lib: Disable lockless rbuff by default | ||||
| * | | lib: Disable lockless rbuff by default | Sander Vrijders | 2017-09-22 | 1 | -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 staessens | 2017-09-22 | 1 | -1/+4 |
|\ \ | |/ |/| | | | ipcpd: Fix DHT recursive lookup | ||||
| * | ipcpd: Fix DHT recursive lookup | dimitri staessens | 2017-09-22 | 1 | -1/+4 |
|/ | |||||
* | Merged in dstaesse/ouroboros/be-hashtable (pull request #610) | dimitri staessens | 2017-09-21 | 2 | -0/+5 |
|\ | | | | | | | lib: Include string.h in hashtable.c for memcpy | ||||
| * | ipcpd: Mark len parameter as unused in simple_pff | dimitri staessens | 2017-09-21 | 1 | -0/+4 |
| | | |||||
| * | lib: Include string.h in hashtable.c for memcpy | dimitri staessens | 2017-09-21 | 1 | -0/+1 |
|/ | |||||
* | Merged in dstaesse/ouroboros/be-cancel (pull request #609) | dimitri staessens | 2017-09-21 | 3 | -72/+85 |
|\ | | | | | | | ipcpd: Cancel threads in IPCPs | ||||
| * | ipcpd: Cancel threads in IPCPs | dimitri staessens | 2017-09-21 | 3 | -72/+85 |
| | | | | | | | | | | | | This reduces CPU consumption and shutdown times. Invalidates #43 | ||||
* | | Merged in sandervrijders/ouroboros/be-lfa-pff (pull request #607) | Sander Vrijders | 2017-09-21 | 12 | -77/+579 |
|\ \ | |/ |/| | | | ipcpd: normal: Add alternate hop PFF | ||||
| * | ipcpd: normal: Add alternate hop PFF | Sander Vrijders | 2017-09-21 | 12 | -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 staessens | 2017-09-21 | 3 | -61/+106 |
|\ \ | |/ |/| | | | ipcpd: Use the kernel scheduler for QoS | ||||
| * | ipcpd: Use the kernel scheduler for QoS | dimitri staessens | 2017-09-21 | 3 | -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 staessens | 2017-09-21 | 2 | -5/+3 |
|\ | | | | | | | lib: Pass the fuse struct to the handling thread | ||||
| * | lib: Pass the fuse struct to the handling thread | dimitri staessens | 2017-09-21 | 2 | -5/+3 |
|/ | | | | This avoids potential data races on rib.fuse. | ||||
* | Merged in dstaesse/ouroboros/be-dht-revision (pull request #605) | dimitri staessens | 2017-09-21 | 1 | -15/+58 |
|\ | | | | | | | ipcpd: Handle DHT SDUs in different thread | ||||
| * | ipcpd: Handle DHT SDUs in different thread | dimitri staessens | 2017-09-20 | 1 | -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 Vrijders | 2017-09-20 | 19 | -140/+422 |
|\ \ | | | | | | | | | | ipcpd: normal: Make PFF policy-based | ||||
| * | | ipcpd: normal: Make PFF policy-based | Sander Vrijders | 2017-09-20 | 19 | -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 staessens | 2017-09-20 | 1 | -0/+3 |
|\ \ \ | |/ / |/| / | |/ | ipcpd: Fix shutdown of rib | ||||
| * | ipcpd: Fix shutdown of rib | dimitri staessens | 2017-09-20 | 1 | -0/+3 |
| | | | | | | | | Fixes #50 | ||||
* | | Merged in dstaesse/ouroboros/be-gcrypt-init (pull request #602) | dimitri staessens | 2017-09-20 | 4 | -3/+20 |
|\| | | | | | | | irmd: Init libgcrypt before using it | ||||
| * | irmd: Init libgcrypt before using it | dimitri staessens | 2017-09-20 | 4 | -3/+20 |
|/ | |||||
* | Merged in dstaesse/ouroboros/be-dht-query-refuse (pull request #601) | dimitri staessens | 2017-09-19 | 1 | -0/+3 |
|\ | | | | | | | ipcpd: Refuse query when DHT not in running state | ||||
| * | ipcpd: Refuse query when DHT not in running state | dimitri staessens | 2017-09-19 | 1 | -0/+3 |
| | | |||||
* | | Merged in dstaesse/ouroboros/be-fuse-msg (pull request #600) | dimitri staessens | 2017-09-19 | 1 | -0/+2 |
|\ \ | | | | | | | | | | build: Notify if FUSE is not installed | ||||
| * | | build: Notify if FUSE is not installed | dimitri staessens | 2017-09-19 | 1 | -0/+2 |
| |/ | |||||
* | | Merged in dstaesse/ouroboros/be-dht-contacts (pull request #599) | dimitri staessens | 2017-09-19 | 1 | -3/+3 |
|\ \ | |/ |/| | | | ipcpd: Fix contact list in DHT | ||||
| * | ipcpd: Fix contact list in DHT | dimitri staessens | 2017-09-19 | 1 | -3/+3 |
|/ |