| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This changes the return value of the register and unregister
functions. If they were able to reg/unreg some entries a positive
value is returned, otherwise an error. Some spelling errors in the
IRMd have also been fixed.
|
|\
| |
| |
| | |
ipcpd: Add boot and shutdown operations
|
|/
|
|
|
|
|
| |
These operations separe the starting and joining of the main ipcp
threads into ipcp_boot() and ipcp_shutdown() operations. This allows
the proper cleanup of user data and user threads after the IPCP is
requested to shut down.
|
|\
| |
| |
| | |
ipcpd: normal: Fix bad unlock
|
|/
|
|
| |
This removes a bad unlock in the flow manager.
|
|\
| |
| |
| | |
ipcpd: Initialize rnodes in ribmgr_ro_create
|
| |
| |
| |
| | |
Fixes warnings by some compilers about possibly uninitialized access.
|
|\|
| |
| |
| | |
ipcpd: Fix uninitialized variables in ribmgr
|
| | |
|
| | |
|
|\|
| |
| |
| | |
ipcpd: Refactor normal ipcp, initial commit
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Reorganizes the normal IPCP a bit to make sure internal components do
not need to access the state of the IPCP. The IPCP has now a thread
calling accept and delegating it to the correct component based on the
AE name (this used to be in the fmgr).
Internal components are initialized upon enrollment or bootstrap of
the IPCP. If a step fails, the IPCP goes back to the INIT state, if
all components boot correctly, it goes to the operational state.
RIB synchronization is still done by sending a CDAP start/stop and
syncing with a ribmgr state, but needs revision later on.
|
|\ \
| | |
| | |
| | | |
lib, ipcpd, irmd: Proof of concept QoS
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now correctly relays the qoscube end-to-end in the stack.
A simple function specifying the cube in the spec is used for initial
testing.
The translation is now done in dev.c, but it could be moved elsewhere
when qos cabability matures and the need arises.
|
|\|
| |
| |
| | |
ipcpd: Rename normal/path to normal/pathname
|
| | |
|
| |
| |
| |
| |
| |
| | |
The main thread will wait for the IPCP_OPERATIONAL state before
starting the fmgr main thread by calling fmgr_init(), instead of the
fmgr itself waiting for that state.
|
|/ |
|
|\
| |
| |
| | |
Some fixes
|
| | |
|
| |
| |
| |
| |
| | |
If cdap_req_destroy was called while in REQ_DONE, cdap->state would be
accessed in cdap_req_respond.
|
| |
| |
| |
| |
| | |
Fixes a memleak of cdap_req structs and correcly releases invoke_ids
if the cdap_request_send operation fails during its execution.
|
| |
| |
| |
| |
| |
| |
| | |
An errno EIRMD has been added to errno.h to indicate failure to send a
message tot the IRMd. The IRM tool will report such errors, which
makes it easier for users to detect that the IRM was not started or
has failed.
|
| | |
|
| |
| |
| |
| |
| |
| | |
Since the mainloop threadpool is created on ipcp_init and all threads
waited for on ipcp_fini, there is no need for it to be accessible from
elsewhere.
|
| | |
|
| | |
|
|\|
| |
| |
| | |
Some fixes
|
| | |
|
| |
| |
| |
| |
| | |
If a thread with a pending flow terminates, ap_fini would wait for the
condvar to destroy the flow indefinitely.
|
| |
| |
| |
| |
| | |
The QoS cubes were not initialized in dev.c, which sometimes caused
segfaults in the fmgr when calling ipcp_flow_get_qoscube.
|
|/
|
|
|
| |
This avoids normal ipcps using the flat address policy having a high
probability for picking the same address when created from a script.
|
|\
| |
| |
| | |
ipcpd: Fix missing return in ribmgr
|
| | |
|
|\ \
| | |
| | |
| | | |
ouroboros: Correct license statements
|
| |/
| |
| |
| |
| | |
This corrects the license statements on all files. Installed headers
are LGPLv2.1, the rest of the code is GPLv2.
|
|\|
| |
| |
| | |
Be normal
|
| | |
|
| |
| |
| |
| |
| | |
Refactors the normal IPCP fmgr and ribmgr, and modifies the API for
cdap so that no callbacks are needed.
|
| | |
|
|\|
| |
| |
| | |
lib, ipcpd: Add hashtable and PDU Forwarding Function
|
|/
|
|
|
|
|
| |
This adds a hash table that takes 64-bit integers as key and uses
separate chaining on collision. It also adds the PDU Forwarding
Function, which the Flow Manager can use to lookup the fd towards the
next hop. Routing policies will add/update/remove entries in the PFF.
|
|\
| |
| |
| | |
Be timeout
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Receiver timeouts can now be set on a flow using the flow_set_timeout
function. Specifying NULL disables the timeout. The flow_get_timeout
function gets the value for the timeout.
This commit also deprecates fcntl in favor of flow_get_flags and
flow_set_flags functions.
struct qos_spec is typedef'd as a qosspec_t.
The tools and cdap.c are updated to use the new API.
Fixes a bug in operf client where the client's writer thread wouldn't
cancel on SIGINT.
|
| | |
|
|/ |
|
|\
| |
| |
| | |
tools: Shut down cbr gracefully
|
|/
|
|
|
|
|
| |
Adds a simple cleanup handler that avoids abrupt termination during an
sdu_write call, which potentially locks up the entire system due to
the writes in the rdrbuff and rbuff not being handled as a single
transaction.
|
|\
| |
| |
| | |
irmd, ipcp: Call select on FreeBSD
|
| |
| |
| |
| |
| |
| | |
*BSD accept() doesn't timeout on the timeval set by setsockopt
SO_RCVTIMEO. The irmd and ipcp will now call select on the irmd fd
with the same timeout.
|