| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| | |
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.
|
|\ \
| | |
| | |
| | | |
ipcpd: Change IPCP_RUNNING to IPCP_OPERATIONAL
|
| |/
| |
| |
| | |
Changes a state of the IPCP to a more correct terminology.
|
|\ \
| |/
|/|
| | |
ipcpd: normal: Fix errors on IPCP shutdown
|
|/
|
|
|
| |
This fixes several bad cleanups in the normal IPCP when it is shutting
down.
|
|\
| |
| |
| | |
Be bind
|
| |
| |
| |
| |
| | |
Fixes a segmentation fault in irm unbind api when no pid is specified
and improves the help information for bind/unbind.
|
| | |
|
|\|
| |
| |
| | |
ipcpd, tools: Fix compilation on 32 bit linux
|
| |
| |
| |
| |
| | |
Fixes issues with uint64_t not corresponding with unsigned long in
printf statements. Reorganises a calculation to reduce overflows.
|
|\|
| |
| |
| | |
lib: Remove logs from stable sources
|
| |
| |
| |
| |
| | |
This removes log output in applications and some size_t printf errors
when compiling on 32 bit machines.
|
|\|
| |
| |
| | |
tools: Fix compilation issues on 32 bit machines
|
|/
|
|
|
|
| |
size_t is 32 bits on those machines, failing as an argument to
printf. Some variables in oping and operf were changed to uint32_t and
uint64_t to avoid issues.
|
|\
| |
| |
| | |
ipcpd: normal: Provide directory for registered names
|
|/
|
|
|
| |
This adds a directory to the normal IPCP that maps names on IPCP
addresses.
|
|\
| |
| |
| | |
ipcpd: normal: Fix release build
|
|/
|
|
|
| |
The release build failed since an assert was optimized out, which
resulted in a unused variable error.
|
|\
| |
| |
| | |
Be addr pol
|
| |
| |
| |
| | |
This addresses some comments after a code review by Dimitri.
|
| |
| |
| |
| |
| |
| |
| |
| | |
This will split the IPCP state PENDING_ENROL into IPCP_CONFIG and
IPCP_BOOTING. IPCP_CONFIG is concerned only with configuring the IPCP
with the bare essence. When in IPCP_BOOTING, the IPCP will complete
its configuration by starting its policies, and thus making the IPCP
completely functioning.
|
| |
| |
| |
| |
| | |
This adds some helper functions to construct pathnames. Users of the
RIB manager may find these handy when constructing RIB objects.
|
| |
| |
| |
| |
| |
| |
| | |
This changes the way RIB object attributes are set. Previously the
struct was called ro_props and it had to be allocated on the heap. Now
it follows the model of pthreads closely. This commit also changes the
callbacks of the RO subscribers to return void instead of int.
|
| |
| |
| |
| |
| | |
This will add a check in the flat address policy to see if the address
is in use or not.
|
|\ \
| |/
|/|
| | |
Some fixes
|
| |
| |
| |
| | |
Also cleans up the flow_set if an AP-I dies abruptly.
|
|/ |
|
|\
| |
| |
| | |
ipcpd: normal: Add timerwheel to RIB manager
|
|/
|
|
|
|
|
| |
The RIB manager now keeps track of ROs it has already received. The
identification of a RO it knows is kept in a struct ro id. For the
deletion of these RO ids, a timerwheel to the RIB manager. It also
deletes ROs if they have a specified timeout.
|
|\
| |
| |
| | |
ipcpd, lib: Fix timerwheel issues / time_utils
|
|/
|
|
|
|
|
| |
Timerwheel would skip some additions due to a missed wakeup signal.
Addition of timespecs and timevals in the time utilities would
overflow tv_nsec/tv_usec if the sum is an integer number of seconds.
|