| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
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
|
| | |
|
|\|
| |
| |
| | |
lib, dev: Add asynchronous deallocation
|
| |
| |
| |
| |
| | |
Flow deallocation from the application will immediately return (void
call). The IRMd will not send a reply message.
|
|\|
| |
| |
| | |
lib: Fix shutdown with pending SDUs
|
|/
|
|
|
| |
The SDU's were not correctly removed upon shutdown, peek should be
pop.
|
|\
| |
| |
| | |
ipcpd: Filter traffic on shim-eth-llc
|
| |
| |
| |
| | |
Now correctly handles and drops non-ouroboros traffic.
|
| |\
| |/
|/| |
|
|\ \
| | |
| | |
| | | |
ipcpd: shim-eth-llc: Use correct SAP to lookup in the table
|
| | |
| | |
| | |
| | |
| | | |
Upon deallocation, the remote's SAP was being used to lookup the fd
instead of our own SAP. This resulted in strange behaviour.
|
|\| |
| | |
| | |
| | | |
lib, ipcpd: Fix bad locking
|
| |/|
|/|/
| |
| | |
lib, ipcpd: Fix bad locking
|
|/
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
lib: np1_flow.h: Remove bad includes
|
| | |
|
|\|
| |
| |
| | |
lib, ipcp: Revise fast path and flow interfaces
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\|
| |
| |
| | |
lib: Fix shm for evil devices
|
|/
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
ipcpd: normal: Fix crapped up indentation
|