summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAgeFilesLines
* lib: Lockless implementation of the rbuffdimitri staessens2017-04-013-404/+789
|
* irmd: Add dynamic threadpooldimitri staessens2017-04-011-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 usedimitri staessens2017-04-012-31/+65
|
* lib: Fix data race in rdrbuffdimitri staessens2017-04-011-7/+5
| | | | The blocks should be accessed inside the lock (or later with CAS).
* lib: Fix use-after-free when destroying cdap_reqdimitri staessens2017-04-012-1/+6
|
* lib: Fix missing assignment in flow_allocdimitri staessens2017-04-011-5/+13
|
* lib: Some fixes in CDAPdimitri staessens2017-04-011-1/+10
|
* ipcpd: Fix CDAP return checks at enrollmentdimitri staessens2017-04-011-4/+4
|
* Merged in sandervrijders/ouroboros/be-logs (pull request #446)Sander Vrijders2017-03-312-11/+6
|\ | | | | | | ipcpd: normal: Fix logs
| * ipcpd: normal: Fix logsSander Vrijders2017-03-312-11/+6
| | | | | | | | | | This removes some logs in the graph component and replaces prints of uin64_t variables with an architecture agnostic variant.
* | lib: Fix double typedefdimitri staessens2017-03-311-2/+0
|/
* Merged in sandervrijders/ouroboros/be-btree (pull request #444)Sander Vrijders2017-03-312-26/+62
|\ | | | | | | lib: Fix bugs in B-tree
| * lib: Fix bugs in B-treeSander Vrijders2017-03-312-26/+62
| | | | | | | | | | This fixes some bugs in the B-tree implementation. The test has also been rewritten to be more thorough.
* | irmd: Keep track of qos in irm_flowdimitri staessens2017-03-316-21/+17
| | | | | | | | This fixes the bug in handling multiple concurrent flow allocations.
* | Merged in dstaesse/ouroboros/be-cdap-cancel (pull request #442)dimitri staessens2017-03-313-1/+15
|\ \ | |/ |/| | | lib: Cancel outstanding CDAP requests on destroy
| * lib: Cancel outstanding CDAP requests on destroydimitri staessens2017-03-313-1/+15
| |
* | Merged in dstaesse/ouroboros/be-new-api (pull request #441)dimitri staessens2017-03-311-2/+2
|\| | | | | | | irmd: Fix assignment bug
| * irmd: Fix assignment bugdimitri staessens2017-03-311-2/+2
| |
* | Merged in dstaesse/ouroboros/be-new-api (pull request #439)dimitri staessens2017-03-3115-398/+175
|\| | | | | | | lib: Revise flow allocation API
| * lib: Revise flow allocation APIdimitri staessens2017-03-3115-398/+175
| | | | | | | | | | | | The flow_alloc_res and flow_alloc_resp calls have been removed. The flow_alloc and flow_accept calls are now both blocking and take an additional timeout argument.
* | ipcpd: Add missing lock in normal/neighborsdimitri staessens2017-03-301-3/+4
|/
* ipcpd: normal: Fix cleanup of FRCT instanceSander Vrijders2017-03-301-9/+14
| | | | | The FRCT instance was not properly cleaned when the PFF could not find the next hop.
* lib: Fix invalid access in CDAPSander Vrijders2017-03-301-2/+5
| | | | This fixes an invalid access to an object that was already freed.
* ipcpd: normal: Fix enrollment bugSander Vrijders2017-03-301-0/+2
| | | | | | This fixes a bug in enrollment where only the first enrollment would happen correctly since the booleans indicating whether boot, members, and DIF name were sent were not initialized back to false.
* Merged in dstaesse/ouroboros/be-cdap-fix (pull request #436)dimitri staessens2017-03-301-1/+1
|\ | | | | | | lib: Fix heap-use-after-free in CDAP
| * lib: Fix heap-use-after-free in CDAPdimitri staessens2017-03-301-1/+1
| |
* | Merged in dstaesse/ouroboros/be-less-locks (pull request #435)dimitri staessens2017-03-301-45/+20
|\| | | | | | | lib: Reduce locking overhead in rdrbuff
| * lib: Reduce locking overhead in rdrbuffdimitri staessens2017-03-301-45/+20
| |
* | Merged in dstaesse/ouroboros/be-irmd-fix-acc (pull request #434)dimitri staessens2017-03-291-0/+1
|\| | | | | | | irmd: Fix shutdown with active accept
| * irmd: Fix shutdown with active acceptdimitri staessens2017-03-291-0/+1
| |
* | Merged in dstaesse/ouroboros/be-fix-irmd-shutdown (pull request #433)dimitri staessens2017-03-291-21/+25
|\| | | | | | | irmd: Exit blocking threads from irm_sanitizer
| * irmd: Exit blocking threads from irm_sanitizerdimitri staessens2017-03-291-21/+25
| | | | | | | | | | | | Some blocking calls caused mainloops to never exit. The irm_sanitizer will now clean up those structs before exiting. This will speed up regular exit and avoids non-cancelling threads.
* | Merged in sandervrijders/ouroboros/be-unidirected-graph (pull request #432)Sander Vrijders2017-03-297-15/+322
|\ \ | |/ |/| | | Be unidirected graph
| * ipcpd: normal: Add graph regression testSander Vrijders2017-03-295-8/+285
| | | | | | | | | | This adds a regression test for the graph component to test the routing table.
| * ipcpd: normal: Make graph undirectedSander Vrijders2017-03-293-7/+37
| | | | | | | | | | | | This turns the directed graph into an undirected one. Only one side of the flow creates an FSDB entry. The graph structure creates an edge object for every vertex involved when an edge is updated or removed.
* | irmd: Set failed flows to FLOW_NULL before destroydimitri staessens2017-03-292-1/+1
|/
* lib: Fix locks in dev.cdimitri staessens2017-03-291-7/+5
|
* lib: Revise handling CDAP messagesdimitri staessens2017-03-293-66/+114
| | | | | | | | | | | | | Fixes a number of issues in CDAP. CDAP keeps track if a message is being processed, and moves it to the end of the request list if it is. It will now correctly wait for new messages. The invoke_ids are generated locally per CDAP instance, invoke_ids can't be used to track incoming requests, we need to keep track of the fd. The keys are now identifiers (taken from the same local pool as the invoke_ids) that are used to track requests.
* ipcpd: Correctly read MGMT type PDUs from rdrbuffdimitri staessens2017-03-281-35/+36
| | | | They were not consumed upon reading, causing the rdrbuff to fill up.
* ipcpd: Fix memleaks in fmgrdimitri staessens2017-03-281-0/+4
|
* ipcpd: Fix use-after-free in frctdimitri staessens2017-03-281-1/+2
|
* lib: Use internal ops for list_moveSander Vrijders2017-03-281-1/+1
|
* ipcpd: normal: Fix invalid free of pciSander Vrijders2017-03-281-5/+0
| | | | | The PCI was being freed by frct, but it was stack memory which was created in the fmgr, resulting in an illegal free.
* ipcpd: normal: Call shm_pci_init on fmgr initSander Vrijders2017-03-283-10/+29
| | | | | | The shm PCI was never initialized during flow manager init. This commit will do that, and initialize the pdu length correctly as well, since it was not being written into the RIB, nor read in shm_pci_init.
* ipcpd: normal: Fix wrong update to indexSander Vrijders2017-03-281-2/+2
| | | | | The index j in the function that transforms the list of predecessors to a routing table was incremented at the wrong time.
* ipcpd: normal: Fix locking of PFFSander Vrijders2017-03-282-19/+10
| | | | | | This adds fixes the locking of the PFF which was externalized, but not yet correctly updated within the PFF component itself and within the flow manager.
* lib: Fix list_move on wrong listSander Vrijders2017-03-281-3/+9
| | | | | | The list move was being done on the whole list of sub events, whereas it should only be done on the first entry. A cleanup handler was also added.
* ipcpd: normal: Remove graph_add_edge operationSander Vrijders2017-03-283-73/+33
| | | | | | This removes the graph_add_edge operation of the graph component. The routing component now only listens to RO_MODIFY events, and updates the graph accordingly.
* lib: Revise list_move operationSander Vrijders2017-03-281-8/+4
| | | | | This revises the list_move operation, which was giving weird behaviour.
* lib, ipcpd: Fix bugs in ro setsSander Vrijders2017-03-283-9/+19
| | | | | This fixes several bugs in the ro sets, rib. And it fixes several bugs in the graph and routing component of the normal IPCP.