| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
When a process was killed, ipcp_flow_dealloc was called under a lock,
causing a deadlock in the IRMd because handling the IPCP response also
needs to take the same lock (the IPCP calls flow_dealloc to finalize
this). This deadlock also resulted in the IPCP always reporting that
it failed to send a reply message as the deadlock effectively blocks
the IRMd until its socket timeout expired and thus the IPCP was always
responding to an already closed socket.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
The blocking ipcp_query call was called under reg_lock, causing
flow_allocs over the shim-eth-llc to block the irmd for prolonged
timespans.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This adds a threadpool manager component in the library that is used
in the IRMd and IPCPs. The threadpool manager now doesn't detach
threads but does a join when they exit. This solves a data race in the
previous implementation where some threads were not completely finished
upon release of some resources.
|
|/
|
|
|
| |
This fixes the order of the IPCPs in the IRMd, so that the right type
is queried first on flow allocation.
|
|
|
|
|
|
|
| |
This will hardcode the shim hash algorithms as they don't have an
enrollment phase.
Fixes #44
|
| |
|
|\
| |
| |
| | |
include: Fix macro for printing hash
|
| | |
|
|/ |
|
|
|
|
|
|
| |
This commits adds the functions and messages to specify a fixed
protocol syntax during CACEP. It also revises the messages for
specifying the DT protocol syntax from the irm tool.
|
|
|
|
|
|
|
| |
APs and AP-Is were not removed from the registry entry for that name.
Reported by: loic.vervaeke@ugent.be
Tested by: loic.vervaeke@ugent.be
|
| |
|
|
|
|
|
|
|
|
| |
The IPCP will now report the DIF name and the hash value to the IRMd
as a dif_info struct. This can later be extended to add further
capability reporting. Some bugfixes in normal.
Fixes #24
|
|\
| |
| |
| | |
Be hashing
|
| |
| |
| |
| | |
Currently CRC32, MD5, and SHA3 (224, 256, 384 and 512 bit) are supported.
|
|/
|
|
| |
Fixes #41
|
|
|
|
| |
Fixes #35
|
|\
| |
| |
| | |
lib, ipcpd, irmd: Register hash instead of name
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
All information passed over the IRMd/IPCP boundary for using IPC
services (flow allocation, registration) is now hashed. This
effectively fixes the shared namespace between DIFs and the IRMDs.
This PR also fixes some API issues (adding const identifiers),
shuffles the include headers a bit and some small bugs.
|
|/ |
|
| |
|
| |
|
|
|
|
|
|
| |
Setting the timeouts on flow_alloc and flow_accept will now work. This
makes some changes to the UNIX sockets used for management
communication between the APs, IRMd and IPCPs.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This makes the IRMd add/remove worker threads dynamically.
IRMD_TPM_TIMEOUT sets a timer in the threadpool manager for checking
idle threads. Each time this timer expires, it will reduce the
threadpool by one. IRMD_MIN_AV_THREADS is the minimum number of
available worker threads. If the number of active threads goes under
this threshold, the threadpool manager will create threads to get the
number of threads to IRMD_MAX_AV_THREADS, unless IRMD_MAX_THREADS is
reached.
|
|
|
|
| |
This fixes the bug in handling multiple concurrent flow allocations.
|
| |
|
|
|
|
|
|
| |
The flow_alloc_res and flow_alloc_resp calls have been removed. The
flow_alloc and flow_accept calls are now both blocking and take an
additional timeout argument.
|
|
|
|
|
|
| |
Some blocking calls caused mainloops to never exit. The irm_sanitizer
will now clean up those structs before exiting. This will speed up
regular exit and avoids non-cancelling threads.
|
| |
|
| |
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
Our mailserver was migrated from intec.ugent.be to the central
ugent.be emailserver. This PR updates the header files to reflect this
change as well. Some header files were also homogenized if the
parameters within the functions were badly aligned.
|
| |
| |
| |
| |
| | |
The AE name should not be passed over the layer boundaries. If an
application has more than one AE it should exchange this in CACEP.
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| | |
This fixes bad timedwaits for the state of the reg_entry. Also
slightly revised timedwaits throughout the prototype.
|
|\| |
|
| | |
|
|\| |
|
| | |
|
| |
| |
| |
| |
| | |
This prevents assertion failures in the IPCP in some cases. IPCPs can
now safely assert the type.
|
|/
|
|
|
|
|
| |
When starting two IRMds, the second one exits, but applications can't
contact the first because the second instance took the UNIX socket.
Now the lockfile is checked for running IRMd instances before opening
the UNIX socket.
|
| |
|
|
|
|
|
|
|
|
| |
When there is a burst of successive flow allocations for a certain
name, each such request will block a thread in the IRMD for
IRMD_REQ_ARR_TIMEOUT ms to allow the application some time to respond.
This refactors some parts of the IRMd.
|
|
|
|
|
| |
The acceptor will not log disconnects with IRMd. Unexpected
disconnects will be reported and handled by management components.
|
|
|
|
|
|
|
|
| |
The IPCP will now respond with an ipcp_create_r message when it fails,
informing the IRMd.
Also adds some const qualifiers in the public headers and fixes
some formatting in dev.c.
|