| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| |
| |
| | |
Connection establishment was done at the same time as flow
allocation. This splits it more cleanly, and allows to re-use the DT
AE for other purposes.
|
|/
|
|
|
|
|
|
| |
The IPCP will now report the DIF name and the hash value to the IRMd
as a dif_info struct. This can later be extended to add further
capability reporting. Some bugfixes in normal.
Fixes #24
|
| |
|
|
|
|
|
|
|
| |
This adds a call ipcp_sdb_reserve to reserve memory in the rdrbuff
without directly writing to a flow. The ipcp_flow_del function was
renamed to ipcp_sdb_release. The functions operating on sdbs are moved
to their own header.
|
|
|
|
|
|
| |
The flow sets were still kept within the FA and DT components, when it
makes more sense that they are kept within the SDU scheduler
component.
|
|
|
|
|
|
| |
This splits the flow manager into the Data Transfer AE, which is in
charge of routing SDUs, and the Flow Allocator AE, which handles flow
allocations.
|
|\
| |
| |
| | |
ipcpd: Build complete graph with gam
|
| |
| |
| |
| |
| | |
The complete policy will now build a complete graph. Currently a
simple timer is used to check the member list periodically.
|
|/
|
|
|
|
| |
This extracts the SDU scheduling component out of the Flow Manager
since the functionality was duplicated. For both the N-1 and N+1 flow
sets an SDU scheduling component is now created.
|
|\
| |
| |
| | |
Be hashing
|
| |
| |
| |
| | |
Currently CRC32, MD5, and SHA3 (224, 256, 384 and 512 bit) are supported.
|
|/
|
|
| |
Fixes #41
|
|
|
|
| |
Fixes #22
|
| |
|
|
|
|
| |
Fixes #35
|
|\
| |
| |
| | |
lib, ipcpd, irmd: Register hash instead of name
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
All information passed over the IRMd/IPCP boundary for using IPC
services (flow allocation, registration) is now hashed. This
effectively fixes the shared namespace between DIFs and the IRMDs.
This PR also fixes some API issues (adding const identifiers),
shuffles the include headers a bit and some small bugs.
|
|/
|
|
|
|
| |
This adds the STATUS variable to the message() call in CMakeLists.txt
in places where it was missing. This ensures that the message is
printed to stdout instead of stderr.
|
| |
|
| |
|
|
|
|
|
| |
Adds support for netmap (https://github.com/luigirizzo/netmap) to
increase the performance of packet transfer over the LLC shim.
|
|
|
|
| |
This checks if the netmap headers are available on the system.
|
| |
|
|
|
|
|
|
| |
An assertion was done instead of NULL check, where the FRCT instance
could legitimately be NULL, resulting in the IPCP dying when it
shouldn't.
|
|
|
|
|
| |
This avoids handling the mgmt frames under lock, since it may deadlock
if a new mgmt frame arrives in the meantime.
|
|
|
|
|
|
| |
Setting the timeouts on flow_alloc and flow_accept will now work. This
makes some changes to the UNIX sockets used for management
communication between the APs, IRMd and IPCPs.
|
|
|
|
|
|
| |
This fixes the overwriting of management frames by adding a list in
the shim Ethernet that keeps track of management frames instead of a
single buffer.
|
|
|
|
|
| |
A missing else clause was missing in the fast path, causing the PCI to
be shrunk when it should not be. A double free has also been fixed.
|
|
|
|
|
| |
This adds a lock to prevent a race condition between flow_req_arr and
flow_alloc_resp.
|
|
|
|
|
| |
The state check should be done first to avoid blocking on the recv
call.
|
|\
| |
| |
| | |
ipcpd: Remove unnecessary locks in local
|
| | |
|
|\|
| |
| |
| | |
Be irmd res
|
| | |
|
| |
| |
| |
| |
| | |
This removes the rwlock in the shim-eth-llc IPCP since it is already
protected by a mutex.
|
| |
| |
| |
| |
| | |
This removes cancellation calls from the shim Ethernet. The different
threads now check if the IPCP is still operational or not.
|
| |
| |
| |
| |
| |
| | |
This deprecates these special socket options of the raw socket since
they are less efficient for regular packet I/O. They should be more
performant for batch processing of SDUs.
|
|/
|
|
|
|
| |
This adds a thread to handle management frames, since otherwise a
deadlock can occur by blocking SDUs until flow allocation can be
handled.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Since there are no SDUs on most QoS cubes, the fmgr was always timing
out on most QoS cubes, causing considerable delays in most SDUs. The
timeout was reset to a very small value (so the bug in glibc 2.25 will
cause lockups again).
|
| |
|
|
|
|
|
| |
This removes some logs in the graph component and replaces prints of
uin64_t variables with an architecture agnostic variant.
|
|
|
|
| |
This fixes the bug in handling multiple concurrent flow allocations.
|
|\
| |
| |
| | |
lib: Revise flow allocation API
|
| |
| |
| |
| |
| |
| | |
The flow_alloc_res and flow_alloc_resp calls have been removed. The
flow_alloc and flow_accept calls are now both blocking and take an
additional timeout argument.
|
|/ |
|
|
|
|
|
| |
The FRCT instance was not properly cleaned when the PFF could not find
the next hop.
|