Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | 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 | |||||
| * | doc: man: Update fccntl manpage | Sander Vrijders | 2017-09-19 | 1 | -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 Vrijders | 2017-09-19 | 12 | -107/+331 | |
|\ | | | | | | | ipcpd, lib: Add flow down events | |||||
| * | ipcpd, lib: Add flow down events | Sander Vrijders | 2017-09-19 | 12 | -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 staessens | 2017-09-18 | 1 | -2/+2 | |
|\ | | | | | | | ipcpd: Fix src and dst in link-state advertisements | |||||
| * | ipcpd: Fix src and dst in link-state advertisements | dimitri staessens | 2017-09-18 | 1 | -2/+2 | |
|/ | ||||||
* | Merged in dstaesse/ouroboros/be-fuse (pull request #594) | dimitri staessens | 2017-09-18 | 8 | -18/+611 | |
|\ | | | | | | | lib: Provide RIB API to export internals via fuse | |||||
| * | lib: Provide RIB API to export internals via fuse | dimitri staessens | 2017-09-18 | 8 | -18/+611 | |
|/ | | | | | | | This adds a virtual RIB that is accessible as a filesystem that is accessed through a fuse mountpoint (configurable , default is /tmp/ouroboros). Currently, each IPCP will export its link state database. | |||||
* | Merged in sandervrijders/ouroboros/be-ordering (pull request #593) | Sander Vrijders | 2017-09-15 | 6 | -13/+378 | |
|\ | | | | | | | lib: Add reordering queue to FRCT | |||||
| * | lib: Add reordering queue to FRCT | Sander Vrijders | 2017-09-15 | 6 | -13/+378 | |
|/ | | | | | This adds a reordering queue to FRCT so that SDUs can be delivered in-order when requested. |