summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| * | | | 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.
* Merged in sandervrijders/ouroboros/be-connection (pull request #262)dimitri staessens2016-10-1212-465/+790
|\ | | | | | | ipcpd: normal: First version of the fast path bootstrap
| * ipcpd: normal: Improve upon the internal designSander Vrijders2016-10-1211-574/+411
| | | | | | | | | | | | | | | | This commit will remove the RMT component from the normal IPCP, as some of its functionality would else be duplicated in the FMGR. Now all reading from flows, either N-1 or N+1 is done in the FMGR, then either passed to the FRCT or a lookup is performed in the PFF (not there yet) and the PDU is forwarded.
| * Merge remote-tracking branch 'upstream/be' into be-connectionSander Vrijders2016-10-128-104/+196
| |\ | |/ |/|
* | Merged in dstaesse/ouroboros/be-fp (pull request #261)Sander Vrijders2016-10-114-88/+180
|\ \ | | | | | | | | | lib: Track SDUs in the fast path
| * | lib: Track SDUs in the fast pathdimitri staessens2016-10-114-88/+180
|/ / | | | | | | | | | | This will allow to finalize deallocating flows until all SDUs have been processed. Read and write calls will now block when a flow was deallocated. Replaces NULL checks in the fast path with asserts.
* | Merged in dstaesse/ouroboros/be-flowsett (pull request #259)Sander Vrijders2016-10-114-16/+16
|\ \ | | | | | | | | | lib: Add a type for struct flow_set
| * | lib: Add a type for struct flow_setdimitri staessens2016-10-094-16/+16
| | | | | | | | | | | | | | | | | | The struct flow_set can now be accessed in applications as flow_set_t. Fixes some malformed lines and homogenizes output when receiving bad SDUs in the oping tool.
| | * ipcpd: normal: First version of the fast path bootstrapSander Vrijders2016-10-1111-209/+697
| |/ |/| | | | | | | | | | | This is the first version of the fast path bootstrap in the normal IPCP. It sets up a connection with the other end, and creates the appropriate data structures. N+1 and N-1 SDUs are read and written and passed through the right components.
* | Merged in dstaesse/ouroboros/be-ipcp-read-fd (pull request #258)Sander Vrijders2016-10-074-12/+50
|\| | | | | | | lib: Add non-copy reading from fd for IPCPs
| * lib: Add non-copy reading from fd for IPCPsdimitri staessens2016-10-074-12/+50
| |
* | Merged in dstaesse/ouroboros/be-async-dealloc (pull request #257)Sander Vrijders2016-10-075-55/+74
|\| | | | | | | lib, dev: Add asynchronous deallocation
| * lib, dev: Add asynchronous deallocationdimitri staessens2016-10-075-55/+74
| | | | | | | | | | Flow deallocation from the application will immediately return (void call). The IRMd will not send a reply message.
* | Merged in dstaesse/ouroboros/be-fix-shutdown (pull request #256)Sander Vrijders2016-10-063-3/+5
|\| | | | | | | lib: Fix shutdown with pending SDUs