| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
This allows IPCPs to bind a name, so that they can announce their name
to neighbors which can then allocate a flow to them. Registering of
the name happens by an administrator. It also moves the irmd_api to
common ground, since it is used by all IPCPs.
|
|\
| |
| |
| | |
irmd: Change return value of register functions
|
| |
| |
| |
| |
| |
| |
| | |
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: Fix state in ipcp_boot
|
| | |
| | |
| | |
| | |
| | |
| | | |
The state must be set to IPCP_INIT before the main_loop threads are
started or else they will exit if they reach the check earlier than
the state is set.
|
|\| |
| |/
|/|
| | |
Be fixes
|
| | |
|
|/
|
|
|
| |
The state of the IPCP should revert to INIT when pthread_create fails
in the normal and bootstrapping procedures.
|
|\
| |
| |
| | |
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
|