| Commit message (Collapse) | Author | Age | Files | Lines | 
| |\  
| | 
| | 
| |  | 
ipcpd: Fix memleaks in local IPCP
 | 
| | |  | 
 | 
| |\| 
| | 
| | 
| |  | 
tools: Fix memory leaks in oping
 | 
| | |  | 
 | 
| |\| 
| | 
| | 
| |  | 
lib: Stabilise flow allocation
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| |  | 
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.
 | 
| |\ \  
| |/  
|/|   
| |    | 
More fixes
 | 
| | | 
| | 
| | 
| | 
| |  | 
Remote requests for a flow that's locally deallocated should not
generate an error. Sending messages should not be under lock.
 | 
| | | 
| | 
| | 
| |  | 
This solves some potential data races in the shims.
 | 
| |\| 
| | 
| | 
| |  | 
dev, ipcp: Fix setting default flow options
 | 
| | | 
| | 
| | 
| | 
| |  | 
The default flow options were not set when a flow allocation request
arrives remotely. This went unnoticed due to a previous bug.
 | 
| |\ \  
| |/  
|/|   
| |    | 
build: Explicitly add compiler flags
 | 
| | | 
| | 
| | 
| |  | 
All flags from the -Wextra group but -Wclobbered are added.
 | 
| |\| 
| | 
| | 
| |  | 
Be fix build
 | 
| | | 
| | 
| | 
| | 
| |  | 
gethostbyname is included in POSIX 2001. Ouroboros requires at least
POSIX 2001 and recommends POSIX 2008 for stable builds.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| |  | 
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.
 | 
| |\| 
| | 
| | 
| |  | 
ipcpd: Fix unused variable
 | 
| | |  | 
 | 
| | |  | 
 | 
| |\| 
| | 
| | 
| |  | 
Some fixes
 | 
| | | 
| | 
| | 
| |  | 
The rdrbuff was previously closed before the remaining SDUs were removed.
 | 
| | | 
| | 
| | 
| | 
| |  | 
An untested (and wrong) modification to the fqueue was mistakenly
added to a previous commit. This corrects the bad code.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
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 #
 | 
| | | 
| | 
| | 
| |  | 
FLOW_O_RDONLY is 0, so the previous statement would always be false.
 | 
| |\| 
| | 
| | 
| |  | 
build: Fix missing include
 | 
| |/  
|   
|   
|   
|   
|    | 
CheckLibraryExists was not included. Apparently the
CHECK_FUNCTION_EXISTS call fails with the strict prototyping flag
turned on.
 | 
| |\  
| | 
| | 
| |  | 
build: Comply with -Wextra compiler flag
 | 
| | | 
| | 
| | 
| | 
| |  | 
This has the code checked with -Wcast-qual and -Wconversion flags.
These flags were removed because SWIG generated code fails.
 | 
| |/  
|   
|   
|   
|    | 
This reduces the risk for some bugs, for instance due to
signed/unsigned mismatches and unused variables.
 | 
| |\  
| | 
| | 
| |  | 
lib: Demultiplex the fast path
 | 
| | | 
| | 
| | 
| | 
| |  | 
This stabilises flow allocation now that the rbuffs are created upon
flow allocation. Only the IRMd can sync this process sufficiently.
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
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.
 | 
| |\ \  
| | | 
| | | 
| | |  | 
ipcpd: normal: Avoid allocating flow over unenrolled IPCP.
 | 
| |/ /  
| |   
| |   
| |   
| |    | 
There was no check to see if the normal IPCP was enrolled or not when
a flow allocation request is done.
 | 
| |\| 
| | 
| | 
| |  | 
lib: Stabilize fast flow deallocation over local IPCP
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| |  | 
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: Fix initialisation of flow_set
 | 
| |/  
|   
|   
|    | 
The safe copy was not correctly initialised.
 | 
| |\  
| | 
| | 
| |  | 
lib: Fix flow deallocation logic
 | 
| |/  
|   
|   
|   
|    | 
Both the N and N-1 entity must now call flow_dealloc for the port_id
to be released.
 | 
| |\  
| | 
| | 
| |  | 
ipcpd: normal: First version of the fast path bootstrap
 | 
| | | 
| | 
| | 
| | 
| | 
| | 
| | 
| |  | 
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.
 | 
| | |\  
| |/  
|/|    | 
 | 
| |\ \  
| | | 
| | | 
| | |  | 
lib: Track SDUs in the fast path
 | 
| |/ /  
| |   
| |   
| |   
| |   
| |    | 
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.
 | 
| |\ \  
| | | 
| | | 
| | |  | 
lib: Add a type for struct flow_set
 | 
| | | | 
| | | 
| | | 
| | | 
| | | 
| | |  | 
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.
 | 
| | |/  
|/|   
| |   
| |   
| |   
| |   
| |    | 
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.
 | 
| |\| 
| | 
| | 
| |  | 
lib: Add non-copy reading from fd for IPCPs
 |