| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
lib, irmd, ipcpd: Add name querying to IPCPs
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | | |
irmd: Add log messages for flow allocation
|
| | |
| | |
| | |
| | |
| | |
| | | |
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.
|
|\| |
| | |
| | |
| | | |
ipcpd: Fix memory leaks
|
| | |
| | |
| | |
| | |
| | | |
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.
|
| |\ \
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | |
| | | | |
ipcpd: Fix memleaks in local IPCP
|
| |/| |
| |/ /
|/| | |
|
|\ \ \
| |_|/
|/| |
| | | |
tools: Fix memory leaks in oping
|
|\ \ \
| | | |
| | | |
| | | | |
lib: Stabilise flow allocation
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
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.
|
| | | |/ |
|
| | |/ |
|
| |/
|/|
| |
| |
| |
| |
| | |
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.
|
|\|
| |
| |
| | |
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.
|