Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | lib, ipcpd, irmd: Register hash instead of name | dimitri staessens | 2017-04-13 | 46 | -1145/+934 |
| | | | | | | | | | All information passed over the IRMd/IPCP boundary for using IPC services (flow allocation, registration) is now hashed. This effectively fixes the shared namespace between DIFs and the IRMDs. This PR also fixes some API issues (adding const identifiers), shuffles the include headers a bit and some small bugs. | ||||
* | dev: Return descriptive errors for flow_alloc | dimitri staessens | 2017-04-10 | 1 | -10/+10 |
| | |||||
* | lib: Make timeout for flow allocation const | dimitri staessens | 2017-04-10 | 1 | -5/+5 |
| | |||||
* | ipcpd: Fix wrong timeval value in LLC shim | dimitri staessens | 2017-04-08 | 1 | -3/+2 |
| | |||||
* | ipcpd: Increase query timeout in shim LLC | dimitri staessens | 2017-04-08 | 1 | -2/+9 |
| | |||||
* | ipcpd: Add netmap support for LLC shim | dimitri staessens | 2017-04-07 | 1 | -52/+124 |
| | | | | | Adds support for netmap (https://github.com/luigirizzo/netmap) to increase the performance of packet transfer over the LLC shim. | ||||
* | ipcpd: shim-eth-llc: Add check for netmap headers | Sander Vrijders | 2017-04-07 | 1 | -0/+14 |
| | | | | This checks if the netmap headers are available on the system. | ||||
* | ipcpd: Fix race condition with concurrent allocs | dimitri staessens | 2017-04-06 | 6 | -23/+167 |
| | |||||
* | Merged in dstaesse/ouroboros/be-irmd-locks (pull request #468) | dimitri staessens | 2017-04-06 | 1 | -207/+36 |
|\ | | | | | | | irmd: Remove unnecessary state locks | ||||
| * | irmd: Remove unnecessary state locks | dimitri staessens | 2017-04-06 | 1 | -207/+36 |
| | | |||||
* | | ipcpd: normal: Change assert to NULL check | Sander Vrijders | 2017-04-06 | 1 | -1/+5 |
| | | | | | | | | | | | | An assertion was done instead of NULL check, where the FRCT instance could legitimately be NULL, resulting in the IPCP dying when it shouldn't. | ||||
* | | Merged in sandervrijders/ouroboros/be-mgmt-eth (pull request #466) | Sander Vrijders | 2017-04-06 | 1 | -4/+3 |
|\ \ | |/ |/| | | | ipcpd: shim-eth-llc: Avoid handling mgmt frame under lock | ||||
| * | ipcpd: shim-eth-llc: Avoid handling mgmt frame under lock | Sander Vrijders | 2017-04-06 | 1 | -4/+3 |
| | | | | | | | | | | This avoids handling the mgmt frames under lock, since it may deadlock if a new mgmt frame arrives in the meantime. | ||||
* | | irmd: Prevent impatient user deadlock on shutdown | dimitri staessens | 2017-04-06 | 1 | -0/+18 |
|/ | |||||
* | lib, irmd: Implement flow allocation timeout | dimitri staessens | 2017-04-06 | 11 | -137/+243 |
| | | | | | | Setting the timeouts on flow_alloc and flow_accept will now work. This makes some changes to the UNIX sockets used for management communication between the APs, IRMd and IPCPs. | ||||
* | ipcpd: shim-eth-llc: Fix overwrite mgmt frames | Sander Vrijders | 2017-04-05 | 1 | -21/+42 |
| | | | | | | This fixes the overwriting of management frames by adding a list in the shim Ethernet that keeps track of management frames instead of a single buffer. | ||||
* | ipcpd: normal: Add missing else clause | Sander Vrijders | 2017-04-05 | 2 | -10/+7 |
| | | | | | A missing else clause was missing in the fast path, causing the PCI to be shrunk when it should not be. A double free has also been fixed. | ||||
* | ipcpd: Add lock for allocation requests | Sander Vrijders | 2017-04-05 | 6 | -103/+79 |
| | | | | | This adds a lock to prevent a race condition between flow_req_arr and flow_alloc_resp. | ||||
* | ipcpd: shim-eth-llc: Fix state check in reader | Sander Vrijders | 2017-04-05 | 1 | -3/+3 |
| | | | | | The state check should be done first to avoid blocking on the recv call. | ||||
* | Merged in dstaesse/ouroboros/be-local (pull request #461) | dimitri staessens | 2017-04-04 | 2 | -34/+5 |
|\ | | | | | | | ipcpd: Remove unnecessary locks in local | ||||
| * | lib: Fix insertion in lockless rbuff | dimitri staessens | 2017-04-04 | 1 | -2/+2 |
| | | |||||
| * | ipcpd: Remove unnecessary locks in local | dimitri staessens | 2017-04-04 | 1 | -32/+3 |
| | | |||||
* | | Merged in dstaesse/ouroboros/be-irmd-res (pull request #460) | dimitri staessens | 2017-04-04 | 2 | -521/+511 |
|\| | | | | | | | Be irmd res | ||||
| * | irmd: Initialize in stack memory | dimitri staessens | 2017-04-04 | 1 | -482/+485 |
| | | |||||
| * | ipcpd, irmd: Fix cleanup of thread resources | dimitri staessens | 2017-04-04 | 2 | -46/+33 |
| | | |||||
* | | ipcpd: shim-eth-llc: Remove IPCP rwlock | Sander Vrijders | 2017-04-04 | 1 | -73/+23 |
| | | | | | | | | | | This removes the rwlock in the shim-eth-llc IPCP since it is already protected by a mutex. | ||||
* | | ipcpd: shim-eth-llc: Remove pthread_cancel | Sander Vrijders | 2017-04-04 | 1 | -78/+117 |
| | | | | | | | | | | This removes cancellation calls from the shim Ethernet. The different threads now check if the IPCP is still operational or not. | ||||
* | | ipcpd: shim-eth-llc: Deprecate PACKET_RX|TX_RING | Sander Vrijders | 2017-04-04 | 1 | -203/+11 |
| | | | | | | | | | | | | This deprecates these special socket options of the raw socket since they are less efficient for regular packet I/O. They should be more performant for batch processing of SDUs. | ||||
* | | ipcpd: shim-eth-llc: Add thread for mgmt frames | Sander Vrijders | 2017-04-04 | 1 | -29/+101 |
|/ | | | | | | This adds a thread to handle management frames, since otherwise a deadlock can occur by blocking SDUs until flow allocation can be handled. | ||||
* | ipcpd: Fix lock order in local sdu_loop | dimitri staessens | 2017-04-04 | 1 | -1/+1 |
| | |||||
* | lib, irmd, ipcpd: Stabilize flow allocation | dimitri staessens | 2017-04-04 | 6 | -105/+186 |
| | |||||
* | ipcpd: Fix some bad locking | dimitri staessens | 2017-04-03 | 3 | -48/+43 |
| | |||||
* | tools: Fix oping client output | dimitri staessens | 2017-04-03 | 1 | -2/+2 |
| | |||||
* | irmd: Fix dealloc of pending flow | dimitri staessens | 2017-04-02 | 1 | -2/+5 |
| | |||||
* | ipcpd: Add dynamic threadpooling for IPCPs | dimitri staessens | 2017-04-02 | 2 | -26/+253 |
| | |||||
* | irmd: Fix thread creation order | dimitri staessens | 2017-04-02 | 1 | -1/+1 |
| | |||||
* | Merged in dstaesse/ouroboros/be-rbuff-ll (pull request #451) | dimitri staessens | 2017-04-01 | 3 | -14/+38 |
|\ | | | | | | | lib: Fix some issues in lockless rbuff | ||||
| * | ipcpd: Revert timeout in fmgr | dimitri staessens | 2017-04-01 | 1 | -6/+1 |
| | | | | | | | | | | | | | | Since there are no SDUs on most QoS cubes, the fmgr was always timing out on most QoS cubes, causing considerable delays in most SDUs. The timeout was reset to a very small value (so the bug in glibc 2.25 will cause lockups again). | ||||
| * | lib: Fix some issues in lockless rbuff | dimitri staessens | 2017-04-01 | 2 | -8/+37 |
| | | |||||
* | | Merged in dstaesse/ouroboros/be-rbuff-ll (pull request #450) | dimitri staessens | 2017-04-01 | 3 | -404/+789 |
|\| | | | | | | | lib: Lockless implementation of the rbuff | ||||
| * | lib: Lockless implementation of the rbuff | dimitri staessens | 2017-04-01 | 3 | -404/+789 |
| | | |||||
* | | tools: oping: Fix bad calculation | Sander Vrijders | 2017-04-01 | 1 | -1/+1 |
|/ | | | | This fixes a potential overflow when calculating the packet loss. | ||||
* | irmd: Add dynamic threadpool | dimitri staessens | 2017-04-01 | 1 | -31/+196 |
| | | | | | | | | | | | This makes the IRMd add/remove worker threads dynamically. IRMD_TPM_TIMEOUT sets a timer in the threadpool manager for checking idle threads. Each time this timer expires, it will reduce the threadpool by one. IRMD_MIN_AV_THREADS is the minimum number of available worker threads. If the number of active threads goes under this threshold, the threadpool manager will create threads to get the number of threads to IRMD_MAX_AV_THREADS, unless IRMD_MAX_THREADS is reached. | ||||
* | lib: Add a check if a bitmap ID is in use | dimitri staessens | 2017-04-01 | 2 | -31/+65 |
| | |||||
* | lib: Fix data race in rdrbuff | dimitri staessens | 2017-04-01 | 1 | -7/+5 |
| | | | | The blocks should be accessed inside the lock (or later with CAS). | ||||
* | lib: Fix use-after-free when destroying cdap_req | dimitri staessens | 2017-04-01 | 2 | -1/+6 |
| | |||||
* | lib: Fix missing assignment in flow_alloc | dimitri staessens | 2017-04-01 | 1 | -5/+13 |
| | |||||
* | lib: Some fixes in CDAP | dimitri staessens | 2017-04-01 | 1 | -1/+10 |
| | |||||
* | ipcpd: Fix CDAP return checks at enrollment | dimitri staessens | 2017-04-01 | 1 | -4/+4 |
| | |||||
* | Merged in sandervrijders/ouroboros/be-logs (pull request #446) | Sander Vrijders | 2017-03-31 | 2 | -11/+6 |
|\ | | | | | | | ipcpd: normal: Fix logs |