summaryrefslogtreecommitdiff
path: root/src/ipcpd/normal/pol/graph.c
Commit message (Collapse)AuthorAgeFilesLines
* include, src: Update copyright to 2018Dimitri Staessens2018-01-091-1/+1
| | | | | | | Happy New Year, Ouroboros. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* lib, tools: Rename application process and instanceDimitri Staessens2017-12-021-5/+5
| | | | | | | | | | | This refactors ouroboros to use "program" instead of "application process" and "process" instead of "application process instance" to align with current naming in current Operating Systems courses instead of the ISO nomenclature adopted by RINA. This change permeates through the entire implementation. Also contains some minor other refactors. Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* ipcpd: Reset *dist on graph_routing_table failDimitri Staessens2017-11-151-0/+1
| | | | | | | | | | The *dist pointer was not reset on failure, causing the caller to try to free an unmalloced or already freed pointer. Reported-by: Nick Aerts <nick.aerts@ugent.be> Tested-by: Nick Aerts <nick.aerts@ugent.be> Signed-off-by: Dimitri Staessens <dimitri.staessens@ugent.be> Signed-off-by: Sander Vrijders <sander.vrijders@ugent.be>
* ipcpd: normal: Add Loop-Free Alternates routingSander Vrijders2017-09-291-27/+172
| | | | | | This adds the Loop-Free Alternates (LFA) policy. In case a link goes down a LFA may be selected to route the SDUs on without causing loops instead of the main hop that just went down.
* ipcpd: normal: Add refcount to graph edgesSander Vrijders2017-09-261-13/+21
| | | | | This adds a refcount to the graph edges so that it is only included in the calculation if both sides announced it.
* ipcpd: normal: Keep index in vertex structSander Vrijders2017-09-251-26/+23
| | | | | This keeps the index in the vertex struct so that is more easily available during Dijkstra.
* ipcpd: normal: Simplify Dijkstra implementationSander Vrijders2017-09-251-25/+17
| | | | | | This simplifies the Dijkstra implementation by immediately setting the correct next hop during Dijkstra instead of looping through the list of predecessors afterwards.
* ipcpd: normal: Simplify internal graph functionsSander Vrijders2017-09-251-38/+26
| | | | | This simplifies several internal graph functions by passing an array of bools instead of an array of vertices.
* ipcpd: normal: Return list as routing tableSander Vrijders2017-09-251-39/+75
| | | | | | This returns a list as routing table instead of a pointer to a pointer to a pointer, which simplifies the looping through the routing table and makes it more extensible for future additions.
* lib, ipcpd, irmd: Fix bugs reported by static analysisSander Vrijders2017-08-291-2/+3
| | | | This fixes several bugs as reported by the clang static analyzer.
* build: Revise the build systemdimitri staessens2017-08-211-1/+2
| | | | | | | | | | 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.
* build: Replace fsf snail mail with contact URLdimitri staessens2017-08-131-1/+1
|
* ipcpd: normal: Make routing a policySander Vrijders2017-05-151-0/+517
This makes the routing component into a policy since different approaches may exist to do this, depending on how high the rank of the DIF is.