summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* 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.
* 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
| * lib: Fix shutdown with pending SDUsdimitri staessens2016-10-063-3/+5
|/ | | | | The SDU's were not correctly removed upon shutdown, peek should be pop.
* Merged in dstaesse/ouroboros/be-debug-llc (pull request #255)Sander Vrijders2016-10-063-7/+31
|\ | | | | | | ipcpd: Filter traffic on shim-eth-llc
| * ipcpd: Filter traffic on shim-eth-llcdimitri staessens2016-10-063-7/+31
| | | | | | | | Now correctly handles and drops non-ouroboros traffic.
| * Merge branch 'be' of bitbucket.org:ouroboros-rina/ouroboros into bedimitri staessens2016-10-051-3/+5
| |\ | |/ |/|
* | Merged in sandervrijders/ouroboros/be-bugfix (pull request #254)dimitri staessens2016-10-051-3/+5
|\ \ | | | | | | | | | ipcpd: shim-eth-llc: Use correct SAP to lookup in the table
| * | ipcpd: shim-eth-llc: Use correct SAP to lookup in the tableSander Vrijders2016-10-051-3/+5
| | | | | | | | | | | | | | | Upon deallocation, the remote's SAP was being used to lookup the fd instead of our own SAP. This resulted in strange behaviour.
* | | Merged in sandervrijders/ouroboros/be-bugfix (pull request #253)dimitri staessens2016-10-052-7/+4
|\| | | | | | | | | | | lib, ipcpd: Fix bad locking
| | * Merged in sandervrijders/ouroboros/be-bugfix (pull request #253)dimitri staessens2016-10-052-7/+4
| |/| |/|/ | | | | lib, ipcpd: Fix bad locking
| * lib, ipcpd: Fix bad lockingSander Vrijders2016-10-052-7/+4
|/ | | | | | Some locks were taken at an inappropriate time, causing the shim-eth-llc to block indefinitely upon shutdown and causing flow allocation to halt since a response could never be given.
* Merged in dstaesse/ouroboros/be-unify (pull request #252)Sander Vrijders2016-10-041-8/+2
|\ | | | | | | lib: np1_flow.h: Remove bad includes
| * lib: np1_flow.h: Remove bad includesdimitri staessens2016-10-041-8/+2
| |
* | Merged in dstaesse/ouroboros/be-unify (pull request #251)Sander Vrijders2016-10-0444-2840/+2065
|\| | | | | | | lib, ipcp: Revise fast path and flow interfaces
| * lib, ipcp: Revise fast path and flow interfacesdimitri staessens2016-10-0444-2840/+2065
| | | | | | | | | | | | | | | | | | | | | | | | IPCPs can now use ap_init() to initialize the memory. All flows are accessed using flow descriptors, this greatly simplifies IPCP development. Reverts the fast path to a single ap_rbuff per process. Splits lib/ipcp into irmd/ipcp and lib/ipcp-dev. Adds a lib/shim-dev holding tailored functions for shims. Moves the buffer_t to utils.h. Fixes the shim-eth-llc length field. Removes the flow from shared.h. Fixes #4 Fixes #5
* | Merged in dstaesse/ouroboros/be-apple (pull request #250)Sander Vrijders2016-09-083-6/+6
|\| | | | | | | lib: Fix shm for evil devices
| * lib: Fix shm for evil devicesdimitri staessens2016-09-083-6/+6
|/ | | | | | Cupertino's finest don't seem to support a write call with a filedescriptor that points to a shared memory file. ENOTSUP is not mentioned in their manpage either. Classic.
* Merged in sandervrijders/ouroboros/be (pull request #249)dimitri staessens2016-09-071-48/+48
|\ | | | | | | ipcpd: normal: Fix crapped up indentation
| * ipcpd: normal: Fix crapped up indentationSander Vrijders2016-09-071-48/+48
|/ | | | There was some crapped up indentation in the crc32 source file.