| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This locking should be more consistent, It now has three locks, one
guarding flows and port_id's, one guarding the registered apps and
ipcps, and one guarding the overall state of the irmd. There are two
additional mutexes guarding the condition variables.
|
|\
| |
| |
| | |
lib: allow accepting any flows
|
| |
| |
| |
| | |
The application can call accept(fd, NULL, NULL);
|
|\|
| |
| |
| | |
lib: cleanup file descriptors for shared memory
|
|/
|
|
|
| |
cleanup of file descriptors for the shared memory.
also adds a missing NULL check and some invalidation in dev.c
|
|\
| |
| |
| | |
ipcpd: Move lock in ipcp_udp_listener
|
|/
|
|
|
| |
This takes a lock before notifying the IRMd of a new flow request, to
avoid race conditions when trying to retrieve the fd by port-id.
|
|\
| |
| |
| | |
ipcpd: shim-udp: added missing checks
|
|/ |
|
|\
| |
| |
| | |
ipcpd: shim-udp: fixed locking.
|
| |
| |
| |
| | |
Used simpler pointer arithmetic to calculate the file offset pointers.
|
| |
| |
| |
| |
| | |
Port_id's weren't correctly released. Also removes remaining debug
logs from the library.
|
|/
|
|
|
| |
The fd_to_port_id function has no internal locking and must now be
called under lock.
|
|\
| |
| |
| | |
lib, ipcpd, irmd: Add QoS cube definition
|
| |
| |
| |
| |
| |
| | |
This fixes wrong header inclusion that would make programs which are
not developed within ouroboros fail upon compilation, since they would
not find certain headers on their system.
|
| |\ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds the QoS cube definition, which is an enum to select which
QoS is needed in the IPCP. An application has to use the qos_spec in
qos.h to define what it needs. The IRMd will map this unto a qos cube
definition.
Some headers are now also no longer installed on the system, since
they are only to be used within the irmd and ipcps.
|
|\ \ \
| | | |
| | | |
| | | | |
lib: dev.c: added locking
|
| | |/
| |/|
| | |
| | |
| | | |
Locking is required for multi-threaded applications. Flows are locked
separately. Read/Write locks are used for concurrent reads.
|
|\ \ \
| |/ /
|/| |
| | | |
Be udp
|
| | | |
|
| |\ \
| |/ /
|/| | |
|
|\ \ \
| |_|/
|/| |
| | | |
lib: implementation of read/write locks
|
| |\ \
| |/ /
|/| | |
|
|\ \ \
| | | |
| | | |
| | | | |
lib: shm_ap_rbuff: removed bad memory allocation
|
|/ / /
| | |
| | |
| | |
| | | |
moved a malloc so there is no malloc/free when there is no data to be
read from the shm_ap_rbuff.
|
| |/
| |
| |
| |
| |
| |
| | |
Added necessary locks for the shim-udp. This PR also improves thread
management, the main thread now starts a mainloop thread, which spawns
sdu handler threads when it the IPCP is enrolled. If the IPCP exits
the enrolled state, the sdu loop is cancelled.
|
| |
| |
| |
| | |
Locking the main mutex should happen while the counter is locked.
|
|/
|
|
|
| |
This adds read/write locks, allowing for concurrent reads on the locked
datastructure. This is needed for the fast path.
|
|\
| |
| |
| | |
lib: shm_ap_rbuff: small fixes
|
|/
|
|
| |
Unnecessary filename string removed. Formatting fix.
|
|\
| |
| |
| | |
irmd: fixed bad locking and added cleanup
|
|/
|
|
| |
flow_alloc_res had missing cleanup, added missing unlock.
|
|\
| |
| |
| | |
include: added flows.h to CMakelists
|
| | |
|
|\|
| |
| |
| | |
lib: dev: implementation of flow_cntl
|
| | |
|
|/
|
|
|
| |
allows setting the oflags to make flow_read and flow_write blocking or
non-blocking (FLOW_O_NONBLOCK).
|
|\
| |
| |
| | |
irmd: cleanup
|
|/
|
|
| |
improved cleanup when killing the IRMd.
|
|\
| |
| |
| | |
ipcpd: threading and cleanup of ipcpd_udp
|
|/
|
|
|
| |
The shim_udp now correctly destroys its ringbuffer on exit. Now
handles sdu's in a single thread using select() with a 10 us timeout.
|
|\
| |
| |
| | |
ipcpd: Fix unitialized value
|
|/
|
|
|
| |
A value that was unitialized was being treated as an error in the
release build with gcc.
|
|\
| |
| |
| | |
ipcpd: Allow disabling of DNS
|
| |
| |
| |
| |
| | |
This adds nslookup support to the shim UDP, so that a custom DNS
server can be queried.
|
|/
|
|
|
|
| |
This allows someone to disable the use of DNS in the shim UDP. It also
adds a config file specific for the shim UDP (which holds the nsupdate
location). Certain defines were also moved to the global config file.
|
|\
| |
| |
| | |
irmd: use pthread_cond_wait
|
| |
| |
| |
| |
| | |
it's more robust to use dedicated locks for pthread_cond_signal so no
other threads can be waiting for the mutex.
|
| |
| |
| |
| |
| | |
bmp_allocate should be called under lock. Helgrind does not give
warnings anymore during flow allocation.
|