helper: Add LFID route calculation
Loop-Free In-port Dependent (LFID) route calculation provides a set of loop-free paths.
Basically porting the existing code from https://github.com/schneiderklaus/ndnSIM-routing
Refs: #4985
Change-Id: I1ab25e729851cf2233c3b99be715ba0159cca0c7
diff --git a/examples/topologies/topo-grid.txt b/examples/topologies/topo-grid.txt
new file mode 100644
index 0000000..f733388
--- /dev/null
+++ b/examples/topologies/topo-grid.txt
@@ -0,0 +1,51 @@
+# any empty lines and lines starting with '#' symbol are ignored
+#
+# The file should contain exactly two sections: router and link, each starting with the corresponding keyword
+#
+# router section defines topology nodes and their relative positions (e.g., to use in visualizer)
+router
+
+# each line in this section represents one router and should have the following data
+# node comment yPos xPos
+
+router0 NA 0 1
+router1 NA 1 1
+router2 NA 1 2
+router3 NA 1 3
+router4 NA 1 4
+router5 NA 1 4
+router6 NA 1 4
+router7 NA 1 4
+producer NA 2 1
+
+
+# Note that `node` can be any string. It is possible to access to the node by name using Names::Find, see examples.
+
+# link section defines point-to-point links between nodes and characteristics of these links
+link
+
+# Each line should be in the following format (only first two are required, the rest can be omitted)
+# srcNode dstNode bandwidth metric delay queue
+# bandwidth: link bandwidth
+# metric: routing metric // Set real routing metrics inside simulation file!
+# delay: link delay
+# queue: MaxPackets for transmission queue on the link (both directions)
+
+router0 router1 100Mbps 1 5ms
+router0 router3 100Mbps 2 5ms
+
+router1 router2 100Mbps 3 5ms
+router1 router4 100Mbps 4 5ms
+
+router2 router5 100Mbps 5 5ms
+
+router3 router4 100Mbps 16 5ms
+router3 router6 100Mbps 1 5ms
+
+router4 router5 100Mbps 8 5ms
+router4 router7 100Mbps 4 5ms
+
+router6 router7 100Mbps 5 5ms
+
+router5 producer 10Mbps 10 5ms
+router7 producer 10Mbps 2 5ms