| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
| |
This revises the build system to have configuration per system
component. System settings can now be set using cmake.
The standard compliance defines were removed from configuration header
and are set in the sources where needed. Also some small code
refactors, such as moving the data for shims out of the ipcp structure
to the respective shims were performed.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
The list move was being done on the whole list of sub events, whereas
it should only be done on the first entry. A cleanup handler was also
added.
|
|
|
|
|
| |
This fixes several bugs in the ro sets, rib. And it fixes several bugs
in the graph and routing component of the normal IPCP.
|
|
|
|
|
|
|
| |
Our mailserver was migrated from intec.ugent.be to the central
ugent.be emailserver. This PR updates the header files to reflect this
change as well. Some header files were also homogenized if the
parameters within the functions were badly aligned.
|
| |
|
|
|
|
|
| |
The timerwheel and RIB use timedwaits. The condition variables are now
correctly initialised to use the configuration defined clock.
|
| |
|
|
|
|
|
|
|
|
| |
The new element must be added before the larger element
(list_add_tail, since it's a circular list).
Also fixes a bug and improves the locking in rib_pack (rib must be
locked until the subtree is fully packed in the buffer).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The rib_pack function allows packing a subtree of the RIB for
dissemination. The options PACK_HASH_ROOT and PACK_HASH_ALL will add
the hashes for the root object of the packed subtree or every object
to the packed message respectively. Checking of the hashes is
currently only performed at the top level object, verifying the
complete operation.
The rib_unpack function unpacks a packed message and inserts its
contents in the RIB. The option UNPACK_CREATE flags that the unpack
operation is allowed to create new objects, else it will only update
existing objects. More advanced options could be added in the future.
The packed message structure uses Google Protocol Buffers, as defined
in ro.proto.
It adds tests for these functions to the rib_test.
|
|
|
|
|
| |
Returns the names of the nodes (not the full paths). The function
allocates memory to the children pointer that should be freed.
|
|
The new RIB is implemented as a tree with doubly linked nodes (parents
keep a link to each child, each child keeps a link to its parent). An
index is kept in a btree using CRC32 hashes of the path name in the
RIB. Nodes keep an SHA3-256 hash value that is unique for the entire
subtree. This allows quick checks to see if two RIB subtrees are in
sync. The event system for the RIB is based on the event system for
flows (fqueue), but implemented completely in dynamic memory using
linked lists. An initial test is performed for the RIB. This PR does
not modify existing code to use the new RIB.
|