summaryrefslogtreecommitdiff
path: root/src/ipcpd
Commit message (Collapse)AuthorAgeFilesLines
* ipcpd: Fix unregistration in normaldimitri staessens2017-04-131-0/+2
|
* include, lib: Rename ap_init/ap_finidimitri staessens2017-04-131-4/+4
| | | | Fixes #35
* Merged in dstaesse/ouroboros/be-hashes (pull request #479)dimitri staessens2017-04-1326-738/+524
|\ | | | | | | lib, ipcpd, irmd: Register hash instead of name
| * lib, ipcpd, irmd: Register hash instead of namedimitri staessens2017-04-1326-738/+524
| | | | | | | | | | | | | | | | | | 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.
* | build: Add STATUS to message statementsSander Vrijders2017-04-122-6/+6
|/ | | | | | This adds the STATUS variable to the message() call in CMakeLists.txt in places where it was missing. This ensures that the message is printed to stdout instead of stderr.
* ipcpd: Fix wrong timeval value in LLC shimdimitri staessens2017-04-081-3/+2
|
* ipcpd: Increase query timeout in shim LLCdimitri staessens2017-04-081-2/+9
|
* ipcpd: Add netmap support for LLC shimdimitri staessens2017-04-071-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 headersSander Vrijders2017-04-071-0/+14
| | | | This checks if the netmap headers are available on the system.
* ipcpd: Fix race condition with concurrent allocsdimitri staessens2017-04-066-23/+167
|
* ipcpd: normal: Change assert to NULL checkSander Vrijders2017-04-061-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.
* ipcpd: shim-eth-llc: Avoid handling mgmt frame under lockSander Vrijders2017-04-061-4/+3
| | | | | This avoids handling the mgmt frames under lock, since it may deadlock if a new mgmt frame arrives in the meantime.
* lib, irmd: Implement flow allocation timeoutdimitri staessens2017-04-061-1/+3
| | | | | | 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 framesSander Vrijders2017-04-051-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 clauseSander Vrijders2017-04-052-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 requestsSander Vrijders2017-04-056-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 readerSander Vrijders2017-04-051-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 staessens2017-04-041-32/+3
|\ | | | | | | ipcpd: Remove unnecessary locks in local
| * ipcpd: Remove unnecessary locks in localdimitri staessens2017-04-041-32/+3
| |
* | Merged in dstaesse/ouroboros/be-irmd-res (pull request #460)dimitri staessens2017-04-041-23/+16
|\| | | | | | | Be irmd res
| * ipcpd, irmd: Fix cleanup of thread resourcesdimitri staessens2017-04-041-23/+16
| |
* | ipcpd: shim-eth-llc: Remove IPCP rwlockSander Vrijders2017-04-041-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_cancelSander Vrijders2017-04-041-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_RINGSander Vrijders2017-04-041-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 framesSander Vrijders2017-04-041-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_loopdimitri staessens2017-04-041-1/+1
|
* lib, irmd, ipcpd: Stabilize flow allocationdimitri staessens2017-04-041-29/+49
|
* ipcpd: Fix some bad lockingdimitri staessens2017-04-033-48/+43
|
* ipcpd: Add dynamic threadpooling for IPCPsdimitri staessens2017-04-022-26/+253
|
* ipcpd: Revert timeout in fmgrdimitri staessens2017-04-011-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).
* ipcpd: Fix CDAP return checks at enrollmentdimitri staessens2017-04-011-4/+4
|
* 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.
* irmd: Keep track of qos in irm_flowdimitri staessens2017-03-311-2/+0
| | | | This fixes the bug in handling multiple concurrent flow allocations.
* Merged in dstaesse/ouroboros/be-new-api (pull request #439)dimitri staessens2017-03-311-13/+2
|\ | | | | | | lib: Revise flow allocation API
| * lib: Revise flow allocation APIdimitri staessens2017-03-311-13/+2
| | | | | | | | | | | | 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.
* 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.
* 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.
* 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
|
* 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.
* 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, ipcpd: Fix bugs in ro setsSander Vrijders2017-03-282-8/+10
| | | | | This fixes several bugs in the ro sets, rib. And it fixes several bugs in the graph and routing component of the normal IPCP.
* ipcpd: normal: Fix compilation issueSander Vrijders2017-03-281-1/+1
|