| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
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.
|
|\
| |
| |
| | |
ipcpd: Add timerwheel
|
| |
| |
| |
| |
| | |
The timerwheel can be used to defer work to a certain timeslot in the
future.
|
|/ |
|
|
|
|
|
|
| |
This adds a syntax version to the protobuf files. The latest version
of protobuf otherwise complains that it is missing. The GPL license is
also added on files where it was missing.
|
|\
| |
| |
| | |
ipcpd: normal: Add syncing of RIB objects
|
| |
| |
| |
| |
| | |
This adds the remote syncing of RIB objects. Subscribers are notified
upon receipt of new/deleted/updated RIB objects.
|
| |
| |
| |
| |
| |
| | |
Using nanosleep in between sending SDUs is not accurate enough when
sending thousands of SDUs per second. The --sleep option is added for
lowering CPU consumption in low bandwidth tests.
|
| |
| |
| |
| | |
Total SDU size (including LLC header) cannot exceed 1500 bytes.
|
| |
| |
| |
| |
| |
| | |
Now that we have an rbuff per flow per AP, there is no more need to
keep the dst_api in the rdrbuff. This also simplifies the sanitizer in
the irmd.
|
| |
| |
| |
| |
| | |
Creation and destruction of the rbuffs is now completely handled in
the irm_flow.
|
|\ \
| | |
| | |
| | | |
tools: Fix likely overflow in cbr output
|
| | | |
|
| |/
|/|
| |
| |
| | |
The IRMd should not send messages to the IPCPs after its mainloop
terminated. IPCPs should cleanup al state when they get the SIGTERM.
|
|/
|
|
|
| |
This adds the ability to create/update/destroy RIB objects. Syncing
with other DIF members is not yet supported.
|
|
|
|
|
|
| |
This will simplify the CDAP API. Now the opcode has to be given when
sending a CDAP request. Before a separate operation was provided since
some of the function parameters are unused for certain commands.
|
|\
| |
| |
| | |
ipcpd: normal: Add policy for obtaining a flat address
|
| |
| |
| |
| |
| |
| | |
This adds a policy for obtaining a flat address, and thus also the
infrastructure for policies in the IPCP. The IPCP should check if the
address is available; this is currently not there yet.
|
| |
| |
| |
| |
| |
| |
| | |
All calls for opening rbuffs are now concentrated on the dev side.
This allows some simplifications in the np1 calls. The ipcp_fini call
will not destroy the mutex associated with the state, since the final
state needs to be checked before shutting down an IPCP.
|
| | |
|
| |
| |
| |
| |
| | |
Fixes a double free (conf->dif_name) and the handling of non-created
threads when the bootstrap of an IPCP fails
|
| |
| |
| |
| |
| |
| | |
This tool allows bidirectional bandwidth measurement between a client
and server application. The server reflects all traffic back to the
client. The traffic can be capped at a certain rate or set to flood.
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
Flow_event_wait will either return -EINVAL, -ETIMEDOUT or a positive
integer indicating the number of SDUs in the fqueue. This allows to
call the function as the condition for a non-terminating while loop.
|
|/ |
|
|
|
|
| |
Fixes a little bug that sneaked in with the revised deallocation.
|
|\
| |
| |
| | |
ipcpd: normal: Fix bugs in connection establishment
|
| |
| |
| |
| | |
This fixes some bugs in connection establishment over the normal IPCP.
|
|\ \
| |/
|/|
| | |
lib: Clean up flow if alloc_res fails
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If alloc_res fails all resources will be cleaned, except for the
assigned flow_descriptor, which must be released with a dealloc call.
Calling dealloc after a failed flow_alloc will not try to destroy the
already cleaned up flow in the IRMd and IPCPs.
Also fixes some memleaks in the oping client.
|
|\|
| |
| |
| | |
irmd: Fix check in irm_flow
|
| | |
|
|\ \
| |/
|/|
| | |
ipcpd: Fix bad lock in shim-udp
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
| |
The steps for flow deallocation have been further refined. An
operation ipcp_flow_fini() which wait for all SDUs to be read from a
flow has been added. The shim IPCPs and the local IPCP have been
adapted to this new API.
Deallocation messages have been removed from the shim IPCPs, since
there is insufficient state synchronisation between them to make this
work reliably.
|
|\
| |
| |
| | |
ipcpd: shim-udp: Add check for directory entry
|
| |
| |
| |
| |
| |
| | |
A check was missing in the shim UDP if the destination was already
present in the directory, in which case no further queries were
needed.
|
| |
| |
| |
| | |
This fixes 2 wrong unlocks in the bind API method.
|
|/
|
|
|
|
| |
This will invoke the bind operation when using the irm tool to create
a new IPCP. The new IPCP will be bound to the IPCP name as specified
by the administrator.
|
|\
| |
| |
| | |
ipcpd: Add threadpool for main loop
|
| |
| |
| |
| |
| |
| |
| | |
This adds a threadpool for the main loop of the IPCPs. Before there
was a single thread handling each request, which could result in
starvation since performing name queries at the same time as enrolling
a normal IPCP was impossible.
|
|\ \
| |/
|/|
| | |
lib: API for accepting flows with QoS
|
| | |
|
|\ \
| | |
| | |
| | | |
lib, irmd, ipcpd: Add name querying to IPCPs
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This adds the ability to query IPCPs if a name can be reached through
them, e.g. if a name is available in a DIF. This means that in the
shim-udp a DNS query is performed, in the shim-eth-llc an ARP-like
query has been added, in the local a check is done to see if the name
is registered, and in the normal currently no application is reachable
through it.
|
| | |
| | |
| | |
| | |
| | |
| | | |
In the rewrite of the flow allocator for per-port ring buffers, the
messages were removed because they were not accurate anymore. This
adds messages when a port is allocated.
|
| |/
|/|
| |
| |
| | |
Fixes memory leaks associated with the dif_name (which doesn't need to
be maintained in shim DIFs) and the fqueue for the N + 1 flows.
|
|\ \ |
|