2018-08-29 13:19:43 -04:00
|
|
|
.. _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*.
|
|
|
|
|
2020-08-04 06:16:12 -04:00
|
|
|
.. figure:: /_images/fib20fig11.png
|
2018-08-29 13:19:43 -04:00
|
|
|
|
|
|
|
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
|
2019-11-05 15:34:36 -05:00
|
|
|
interface is termed a 'mid-chain' this it is now present in the middle of the
|
2018-08-29 13:19:43 -04:00
|
|
|
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
|
2019-10-27 17:28:10 -04:00
|
|
|
back-walk when the forwarding information for the tunnel's destination changes.
|
2018-08-29 13:19:43 -04:00
|
|
|
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 ...).
|