Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | 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 | |
|/ | ||||||
* | Merged in dstaesse/ouroboros/be-dht-async (pull request #598) | dimitri staessens | 2017-09-19 | 9 | -96/+152 | |
|\ | | | | | | | ipcpd: Enroll DHT when creating dt connection | |||||
| * | ipcpd: Enroll DHT when creating dt connection | dimitri staessens | 2017-09-19 | 9 | -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 Vrijders | 2017-09-19 | 1 | -0/+2 | |
|\ \ | |/ |/| | | | doc: man: Update fccntl manpage |