summaryrefslogtreecommitdiffstats
path: root/docs/gettingstarted/developers/fib20/tunnels.rst
diff options
context:
space:
mode:
authorjdenisco <jdenisco@cisco.com>2018-08-29 13:19:43 -0400
committerNeale Ranns <nranns@cisco.com>2018-08-30 15:14:49 +0000
commit0923a2376fcdc07fc298b9422233f4a5c1777e7d (patch)
tree7164f6f7083d48c7cd47abdbea7377d4f323dc26 /docs/gettingstarted/developers/fib20/tunnels.rst
parent5e2c54d02906a7b4787a1f41b59baf97c3a4a840 (diff)
docs: FIB 2.0 start
Change-Id: I87cd2eae133c9f5b9f7764a0f7a41bcc28523e4c Signed-off-by: jdenisco <jdenisco@cisco.com>
Diffstat (limited to 'docs/gettingstarted/developers/fib20/tunnels.rst')
-rw-r--r--docs/gettingstarted/developers/fib20/tunnels.rst33
1 files changed, 33 insertions, 0 deletions
diff --git a/docs/gettingstarted/developers/fib20/tunnels.rst b/docs/gettingstarted/developers/fib20/tunnels.rst
new file mode 100644
index 00000000000..4c1dfe2a07d
--- /dev/null
+++ b/docs/gettingstarted/developers/fib20/tunnels.rst
@@ -0,0 +1,33 @@
+.. _tunnels:
+
+Tunnels
+---------
+
+Tunnels share a similar property to recursive routes in that after applying the
+tunnel encapsulation, a new packet must be forwarded, i.e. forwarding is
+recursive. However, as with recursive routes the tunnel's destination is known
+beforehand, so the recursive switch can be avoided if the packet can follow the
+already constructed data-plane graph for the tunnel's destination. This process
+of joining to DP graphs together is termed *stacking*.
+
+.. figure:: /_images/fib20fig2.png
+
+Figure 11: Tunnel control plane object diagram
+
+Figure 11 shows the control plane object graph for a route via a tunnel. The two
+sub-graphs for the route via the tunnel and the route for the tunnel's
+destination are shown to the right and left respectively. The red line shows the
+relationship form by stacking the two sub-graphs. The adjacency on the tunnel
+interface is termed a ԭid-chainՠthis it is now present in the middle of the
+graph/chain rather than its usual terminal location.
+
+The mid-chain adjacency is contributed by the gre_tunnel_t , which also becomes
+part of the FIB control-plane graph. Consequently it will be visited by a
+back-walk when the forwarding information for the tunnelճ destination changes.
+This will trigger it to restack the mid-chain adjacency on the new
+*load_balance_t* contributed by the parent *fib_entry_t*.
+
+If the back-walk indicates that there is no route to the tunnel, or that the
+route does not meet resolution constraints, then the tunnel can be marked as
+down, and fast convergence can be triggered in the same way as for physical
+interfaces (see section ...).