summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* ipcpd: Add threadpool for main loopSander Vrijders2016-10-264-33/+51
| | | | | | | This adds a threadpool for the main loop of the IPCPs. Before there was a single thread handling each request, which could result in starvation since performing name queries at the same time as enrolling a normal IPCP was impossible.
* Merged in sandervrijders/ouroboros/be-directory (pull request #280)dimitri staessens2016-10-2615-276/+604
|\ | | | | | | lib, irmd, ipcpd: Add name querying to IPCPs
| * lib, irmd, ipcpd: Add name querying to IPCPsSander Vrijders2016-10-2615-276/+604
| | | | | | | | | | | | | | | | | | This adds the ability to query IPCPs if a name can be reached through them, e.g. if a name is available in a DIF. This means that in the shim-udp a DNS query is performed, in the shim-eth-llc an ARP-like query has been added, in the local a check is done to see if the name is registered, and in the normal currently no application is reachable through it.
* | Merged in dstaesse/ouroboros/be-eth-llc (pull request #282)Sander Vrijders2016-10-261-2/+9
|\ \ | | | | | | | | | irmd: Add log messages for flow allocation
| * | irmd: Add log messages for flow allocationdimitri staessens2016-10-261-2/+9
| | | | | | | | | | | | | | | | | | In the rewrite of the flow allocator for per-port ring buffers, the messages were removed because they were not accurate anymore. This adds messages when a port is allocated.
* | | Merged in dstaesse/ouroboros/be-ipcpd-memleaks (pull request #281)Sander Vrijders2016-10-262-31/+35
|\| | | | | | | | | | | ipcpd: Fix memory leaks
| * | ipcpd: Fix memory leaksdimitri staessens2016-10-252-31/+35
| | | | | | | | | | | | | | | Fixes memory leaks associated with the dif_name (which doesn't need to be maintained in shim DIFs) and the fqueue for the N + 1 flows.
| * | Merge branch 'be' of bitbucket.org:ouroboros-rina/ouroboros into bedimitri staessens2016-10-250-0/+0
| |\ \ | |/ / |/| |
* | | Merged in dstaesse/ouroboros/be-local (pull request #278)Sander Vrijders2016-10-241-11/+14
|\ \ \ | | | | | | | | | | | | ipcpd: Fix memleaks in local IPCP
| | * | Merge branch 'be' of bitbucket.org:ouroboros-rina/ouroboros into bedimitri staessens2016-10-243-45/+78
| |/| | | |/ / |/| |
* | | Merged in dstaesse/ouroboros/be-oping (pull request #277)Sander Vrijders2016-10-243-17/+26
|\ \ \ | |_|/ |/| | | | | tools: Fix memory leaks in oping
* | | Merged in dstaesse/ouroboros/be-fix-alloc (pull request #276)Sander Vrijders2016-10-245-44/+26
|\ \ \ | | | | | | | | | | | | lib: Stabilise flow allocation
* \ \ \ Merged in dstaesse/ouroboros/be-shim-eth (pull request #275)Sander Vrijders2016-10-233-45/+78
|\ \ \ \ | | | | | | | | | | | | | | | More fixes
| * | | | ipcpd: Fix log message and lockdimitri staessens2016-10-231-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | Remote requests for a flow that's locally deallocated should not generate an error. Sending messages should not be under lock.
| * | | | ipcpd: Improve locking in ipcp-datadimitri staessens2016-10-232-42/+76
| | | | | | | | | | | | | | | | | | | | This solves some potential data races in the shims.
| | | | * ipcpd: Fix memleaks in local IPCPdimitri staessens2016-10-241-11/+14
| | | |/
| | | * tools: Fix memory leaks in opingdimitri staessens2016-10-243-17/+26
| | |/
| | * lib: Stabilise flow allocationdimitri staessens2016-10-235-44/+26
| |/ |/| | | | | | | | | | | Deallocation was reverted to a synchronoous operation between the AP, IRMd and IPCP in order to avoid inconsistent states of the port_id. Fixes some memory leaks, particularly the shm_flow_set is now closed upon deallocation.
* | Merged in dstaesse/ouroboros/be-shim-eth (pull request #274)Sander Vrijders2016-10-232-9/+3
|\| | | | | | | dev, ipcp: Fix setting default flow options
| * dev, ipcp: Fix setting default flow optionsdimitri staessens2016-10-232-9/+3
| | | | | | | | | | The default flow options were not set when a flow allocation request arrives remotely. This went unnoticed due to a previous bug.
* | Merged in dstaesse/ouroboros/be-fix-build (pull request #273)Sander Vrijders2016-10-231-2/+17
|\ \ | |/ |/| | | build: Explicitly add compiler flags
| * build: Explicitly add compiler flagsdimitri staessens2016-10-231-2/+17
| | | | | | | | All flags from the -Wextra group but -Wclobbered are added.
* | Merged in dstaesse/ouroboros/be-fix-build (pull request #272)Sander Vrijders2016-10-232-20/+4
|\| | | | | | | Be fix build
| * build: Remove the gethostbyname checkdimitri staessens2016-10-231-17/+0
| | | | | | | | | | gethostbyname is included in POSIX 2001. Ouroboros requires at least POSIX 2001 and recommends POSIX 2008 for stable builds.
| * build: Disable compilation flagsdimitri staessens2016-10-231-3/+4
| | | | | | | | | | | | | | pthread_cleanup handlers make gcc and clang fail the -Wclobbered check in release builds. Swig generates switch statements without a default, making the -Wswitch-default check fail. The -Wstrict-overflow=5 flag was removed.
* | Merged in dstaesse/ouroboros/be-fix-build (pull request #271)Sander Vrijders2016-10-232-2/+5
|\| | | | | | | ipcpd: Fix unused variable
| * tools: Fix setting flags in oping tooldimitri staessens2016-10-231-1/+1
| |
| * ipcpd: Fix unused variabledimitri staessens2016-10-231-1/+4
| |
* | Merged in dstaesse/ouroboros/be-fix-build (pull request #270)Sander Vrijders2016-10-237-21/+27
|\| | | | | | | Some fixes
| * lib: Fix closing applications with active flowsdimitri staessens2016-10-221-1/+2
| | | | | | | | The rdrbuff was previously closed before the remaining SDUs were removed.
| * lib: Revert bad fqueue modificationdimitri staessens2016-10-222-2/+5
| | | | | | | | | | An untested (and wrong) modification to the fqueue was mistakenly added to a previous commit. This corrects the bad code.
| * irmd, tools: Fix missing initializersdimitri staessens2016-10-225-16/+18
| | | | | | | | | | | | | | | | | | | | | | The BSD compiler requires explicit initializers for all fields with the -Wmissing-field-initializers flag enabled On branch be-fix-build # Changes to be committed: # modified: src/irmd/main.c # modified: src/tools/irm/irm.c # modified: src/tools/irm/irm_bind.c # modified: src/tools/irm/irm_ipcp.c # modified: src/tools/irm/irm_unbind.c # # Untracked files: # killouroboros.sh # start.sh #
| * lib: Fix wrong comparisondimitri staessens2016-10-221-2/+2
| | | | | | | | FLOW_O_RDONLY is 0, so the previous statement would always be false.
* | Merged in dstaesse/ouroboros/be-fix-build (pull request #269)dimitri staessens2016-10-221-0/+1
|\| | | | | | | build: Fix missing include
| * build: Fix missing includedimitri staessens2016-10-221-0/+1
|/ | | | | | CheckLibraryExists was not included. Apparently the CHECK_FUNCTION_EXISTS call fails with the strict prototyping flag turned on.
* Merged in dstaesse/ouroboros/be-extra (pull request #268)Sander Vrijders2016-10-2268-299/+441
|\ | | | | | | build: Comply with -Wextra compiler flag
| * build: Compile with strict conversiondimitri staessens2016-10-2262-293/+333
| | | | | | | | | | This has the code checked with -Wcast-qual and -Wconversion flags. These flags were removed because SWIG generated code fails.
| * build: Comply with -Wextra compiler flagdimitri staessens2016-10-2123-13/+115
|/ | | | | This reduces the risk for some bugs, for instance due to signed/unsigned mismatches and unused variables.
* Merged in dstaesse/ouroboros/be-demux (pull request #267)Sander Vrijders2016-10-2129-1164/+1682
|\ | | | | | | lib: Demultiplex the fast path
| * lib: Move rbuff creation/destruction to IRMddimitri staessens2016-10-217-85/+106
| | | | | | | | | | This stabilises flow allocation now that the rbuffs are created upon flow allocation. Only the IRMd can sync this process sufficiently.
| * lib: Demultiplex the fast pathdimitri staessens2016-10-2127-1145/+1642
| | | | | | | | | | | | | | | | The fast path will now use an incoming ring buffer per flow per process. This necessitated the development of a new method for the asynchronous io call, which is now based on an event queue system for scalability (fqueue). The ipcpd's and tools have been updated to this API.
* | Merged in sandervrijders/ouroboros/be-fix-normal (pull request #266)dimitri staessens2016-10-171-0/+10
|\ \ | | | | | | | | | ipcpd: normal: Avoid allocating flow over unenrolled IPCP.
| * | ipcpd: normal: Avoid allocating flow over unenrolled IPCP.Sander Vrijders2016-10-171-0/+10
|/ / | | | | | | | | There was no check to see if the normal IPCP was enrolled or not when a flow allocation request is done.
* | Merged in dstaesse/ouroboros/be-fp (pull request #265)Sander Vrijders2016-10-175-54/+72
|\| | | | | | | lib: Stabilize fast flow deallocation over local IPCP
| * lib, dev: Implement read/write options for flowsdimitri staessens2016-10-162-0/+19
| | | | | | | | | | | | | | Added the missing implementation of setting read/write options for flows. This allows applications to block the fast path for remotes. IPCPs can use this to block the fast path for the N + 1 flow when receiving remote deallocation requests.
| * lib: Stabilize fast flow deallocation over local IPCPdimitri staessens2016-10-155-54/+53
| |
* | Merged in dstaesse/ouroboros/be-fix-select (pull request #264)Sander Vrijders2016-10-151-2/+3
|\| | | | | | | lib: Fix initialisation of flow_set
| * lib: Fix initialisation of flow_setdimitri staessens2016-10-151-2/+3
|/ | | | The safe copy was not correctly initialised.
* Merged in dstaesse/ouroboros/be-dealloc (pull request #263)Sander Vrijders2016-10-137-34/+35
|\ | | | | | | lib: Fix flow deallocation logic
| * lib: Fix flow deallocation logicdimitri staessens2016-10-137-34/+35
|/ | | | | Both the N and N-1 entity must now call flow_dealloc for the port_id to be released.