| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
The FRCT instance was not properly cleaned when the PFF could not find
the next hop.
|
|
|
|
|
|
| |
This fixes a bug in enrollment where only the first enrollment would
happen correctly since the booleans indicating whether boot, members,
and DIF name were sent were not initialized back to false.
|
|
|
|
|
| |
This adds a regression test for the graph component to test the
routing table.
|
|
|
|
|
|
| |
This turns the directed graph into an undirected one. Only one side of
the flow creates an FSDB entry. The graph structure creates an edge
object for every vertex involved when an edge is updated or removed.
|
|
|
|
| |
They were not consumed upon reading, causing the rdrbuff to fill up.
|
| |
|
| |
|
|
|
|
|
| |
The PCI was being freed by frct, but it was stack memory which was
created in the fmgr, resulting in an illegal free.
|
|
|
|
|
|
| |
The shm PCI was never initialized during flow manager init. This
commit will do that, and initialize the pdu length correctly as well,
since it was not being written into the RIB, nor read in shm_pci_init.
|
|
|
|
|
| |
The index j in the function that transforms the list of predecessors
to a routing table was incremented at the wrong time.
|
|
|
|
|
|
| |
This adds fixes the locking of the PFF which was externalized, but not
yet correctly updated within the PFF component itself and within the
flow manager.
|
|
|
|
|
|
| |
This removes the graph_add_edge operation of the graph component. The
routing component now only listens to RO_MODIFY events, and updates
the graph accordingly.
|
|
|
|
|
| |
This fixes several bugs in the ro sets, rib. And it fixes several bugs
in the graph and routing component of the normal IPCP.
|
| |
|
|
|
|
|
| |
The flow manager should clean up the buffer after the call to frct
create instance has either failed or succeeded.
|
| |
|
| |
|
|
|
|
|
|
| |
The routing now takes the results of the routing table to fill in the
forwarding table, by going through the neighbors and filling in the
right fd.
|
|
|
|
|
| |
This fixes a bad free. The table was only freed if it was NULL,
instead of the other way around.
|
|
|
|
|
| |
This adds a check to prevent a negative malloc in case the graph
structure is empty.
|
|
|
|
|
| |
The next vertex was not taken at the end of the Dijkstra calculation
loop.
|
|
|
|
|
|
|
| |
This fixes a dumb segfault in the dijkstra calculation. If an entry
can be removed from the table it was set to NULL. However, if the
table is completely empty, the index was -1, resulting in an illegal
access into the table.
|
|\
| |
| |
| | |
ipcpd: Increase update timeout in fmgr
|
| |
| |
| |
| | |
This works around a possible bug in glibc 2.25.
|
| |
| |
| |
| |
| |
| | |
This adds routing table calculation to the graph component. The
routing instances can then periodically ask the graph component for
the routing table, and update their PFFs accordingly.
|
|/
|
|
|
| |
This initializes conn_info in the ribmgr and fmgr before it is passed
to cacep.
|
| |
|
| |
|
|
|
|
| |
This fixes some memleaks as reported by valgrind.
|
|
|
|
|
| |
The QoS spec was not being initialized before being added to the graph
structure, resulting in an error when compiled with clang.
|
|
|
|
| |
These solve several bugfixes in the normal.
|
|\
| |
| |
| | |
ipcpd: normal: Split fmgr init into init and start
|
| |
| |
| |
| |
| |
| | |
This split the initialization of the flow manager into an init part
and a start part. This avoids the usage of data structures that have
not been properly initialized yet.
|
|/
|
|
|
| |
The temporary cube parameter must be initialized if a qosspec is
passed to avoid uninitialized values for the qoscube in the prototype.
|
|\
| |
| |
| | |
ipcpd: Fix cleanup of connmgr
|
| |
| |
| |
| |
| | |
This lessens the likelyhood that the CDAP SDU thread is not yet active
when a new connection starts sending CDAP messages.
|
| |
| |
| |
| | |
Fixed trying to double lock and cleanup order in main.
|
|\ \
| |/
|/|
| | |
Be graph
|
| |
| |
| |
| |
| |
| | |
This lets the routing component listen to RIB events. It listens to
/fsdb which is populated with FSOs. The graph that is kept within the
routing component is updated depending on the event that was received.
|
| |
| |
| |
| |
| |
| | |
This adds a graph structure which will be updated by routing when it
is notified about a new RIB event. The routing can then use this graph
as input for calculating the shortest path to a destination.
|
| | |
|
|/ |
|
|
|
|
|
|
|
| |
This makes the routing component create a Flow State Database
(FSDB). An FSDB contains Flow State Objects (FSOs). An FSO is created
when a neighbor is added, it is deleted when a neighbor is removed and
its QoS is updated when a neighbor's QoS changes.
|
|
|
|
|
|
|
|
| |
You can now add multiple flows to a CDAP instance. This will simplify
sending messages to different peers (e.g. for syncing the RIB). A
request will now return an array of keys terminated by
CDAP_KEY_INVALID. Removes the enum from the CDAP proto file to just
take the opcode as an integer.
|
|
|
|
|
|
|
| |
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 CMakeLists files are now properly indented.
|
|
|
|
| |
This removes the CDAP flow class, which is no longer needed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This refactors the different Application Entities of the normal
IPCP. They all listen to and use the connection manager to establish
new application connections.
This commit also adds a neighbors struct to the normal IPCP. It
contains neighbor structs that contain application
connection. Notifiers can be registered in case a neighbor changes
(added, removed, QoS changed).
The flow manager has an instance of this neighbors struct and listens
to these events to update its flow set. The routing component also
listens to these events so that it can update the FSDB if needed. The
flow manager now also creates the PFF instances and the routing
instances per QoS cube.
The RIB manager also uses this an instance of the neighbors struct and
listens to neighbor events as well.
|
|
|
|
|
|
|
| |
This adds the connection manager which allows the different AEs of the
normal IPCP to register with it. An AE can then use the connection
manager to allocate a flow to a neighbor, or to wait for a new
connection from a neighbor.
|