Configuring static MPLS TE tunnels can be a highly unmanageable task if the number of PE grows. On top of that, you also need to manage FRR backup tunnels, which is only going to add complexity. Take an example of the ISP that has 100 PE routers deployed. For 100 PE routers, if you need a full mesh, you need to manually configure 99 tunnels on each of your sites, clearly, the solution is not very easy to manage. Because the total number of MPLS TE tunnels (excluding FRR tunnels) will be 100*99=9900.In this huge network, the failure rate of just 0.5%(49.5 issues) will keep the network team busy. There was a need to solve this problem and Auto-Tunnel mesh in MPLS TE gives a promising solution for that.
With Auto-Tunnel mesh you don’t need to configure those 9900 tunnels as discussed earlier. There will be just one tunnel template configured on the router with the group identity. The role of the router is to refer to the auto template and find all the neighbors belonging to the same group mentioned in the auto template. Once the PE routers with the same group are identified the router will create dynamic tunnels between the group members to form a full mesh.
In below network assume that I need to install a new site PE2 which needs a full mesh with PE1 and PE2.

Configuration and Verification:
Here is the configuration you need on PE2.
! mpls traffic-eng auto-tunnel mesh ! interface Auto-Template1 ip unnumbered Loopback0 tunnel destination mesh-group 10 tunnel mode mpls traffic-eng tunnel mpls traffic-eng autoroute announce tunnel mpls traffic-eng path-option 10 dynamic tunnel mpls traffic-eng auto-bw frequency 3600 ! ! router ospf 1 mpls ldp autoconfig mpls traffic-eng router-id Loopback0 mpls traffic-eng area 0 mpls traffic-eng mesh-group 10 Loopback0 area 0 router-id 2.2.2.2 log-adjacency-changes passive-interface Loopback1 network 2.2.2.2 0.0.0.0 area 0 network 20.20.20.1 0.0.0.0 area 0 !
Here note that we are just configuring one template only. This template will ensure that the router will form two dynamic tunnels on PE1 and PE3 respectively. Similarly, the PE1 and PE3 routers will also create tunnels to the PE2 router to have full-mesh connectivity. A similar auto-template is configured on PE1 and PE3, mesh group 10 is what binding all these routers together.
Now let’s see how the dynamic tunnels look like. Below are the dynamic tunnels created on the PE2 router.
PE2#sh ip int bri | exc una Interface IP-Address OK? Method Status Protocol GigabitEthernet1/0 10.10.10.6 YES NVRAM up up GigabitEthernet2/0 20.20.20.5 YES NVRAM up up Auto-Template1 3.3.3.3 YES TFTP up up Loopback0 3.3.3.3 YES NVRAM up up Loopback1 192.168.3.1 YES NVRAM up up Tunnel64336 3.3.3.3 YES TFTP up up Tunnel64337 3.3.3.3 YES TFTP up up PE2#sh mpls traffic-eng tunnels tunnel 64336 Name: PE2_t64336 (Tunnel64336) Destination: 2.2.2.2 Status: Admin: up Oper: up Path: valid Signalling: connected path option 10, type dynamic (Basis for Setup, path weight 2) Config Parameters: Bandwidth: 0 kbps (Global) Priority: 7 7 Affinity: 0x0/0xFFFF Metric Type: TE (default) AutoRoute: enabled LockDown: disabled Loadshare: 0 bw-based auto-bw: (3600/3187) 0 Bandwidth Requested: 0 Samples Missed 1: Samples Collected 1 Active Path Option Parameters: State: dynamic path option 10 is active BandwidthOverride: disabled LockDown: disabled Verbatim: disabled InLabel : - OutLabel : GigabitEthernet2/0, 204 RSVP Signalling Info: Src 3.3.3.3, Dst 2.2.2.2, Tun_Id 64336, Tun_Instance 7831 RSVP Path Info: My Address: 20.20.20.5 Explicit Route: 20.20.20.6 20.20.20.2 20.20.20.1 2.2.2.2 Record Route: NONE Tspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits RSVP Resv Info: Record Route: 4.4.4.4(204) 2.2.2.2(0) Fspec: ave rate=0 kbits, burst=1000 bytes, peak rate=0 kbits Shortest Unconstrained Path Info: Path Weight: 2 (TE) Explicit Route: 20.20.20.5 20.20.20.6 20.20.20.2 20.20.20.1 2.2.2.2 History: Tunnel: Time since created: 11 minutes, 8 seconds Time since path change: 11 minutes, 7 seconds Number of LSP IDs (Tun_Instances) used: 2 Current LSP: Uptime: 11 minutes, 7 seconds
How to put traffic on dynamic tunnel ?
The simplest way to put traffic on the MPLS TE tunnel is to configure a static route pointing to the tunnel interface BUT, not in this case. See the restriction on the Cisco website.

So here we cannot do static methods to define the next hop.
In my example, I have put the loopback interface in OSPF and it seems to be the easiest method to me. See the outputs below.
PE2#sh run int lo 1
Building configuration...
Current configuration : 83 bytes
!
interface Loopback1
ip address 192.168.3.1 255.255.255.0
ip ospf 1 area 0
end
Route entry for the loopback configured on PE1.
PE2#sh ip route 192.168.1.1
Routing entry for 192.168.1.1/32
Known via "ospf 1", distance 110, metric 3, type intra area
Last update from 2.2.2.2 on Tunnel64336, 00:02:07 ago
Routing Descriptor Blocks:
* 2.2.2.2, from 2.2.2.2, 00:02:07 ago, via Tunnel64336
Route metric is 3, traffic share count is 1
PE2#ping 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/26/32 ms
PE2#
Conclusion:
The Auto-tunnel mesh in MPLS TE has given an excellent method for big networks to make the configuration and troubleshooting more manageable. I found this feature very useful, next I am going to try FRR in auto-tunnel. Stay tuned for more content like this.