Hi,
To explain ICMP tunneling in MPLS, consider traceroute operation.
In normal traceroute, the node which sees the packets with TTL 0 will send the ICMP TTL expired message to the SRC.
But in MPLS network, the routers in the middle don't have to know the routing information of the SRC/DST. They can be pure label switching routers. ( Ex: BGP free Core ). In that case, those routers won't be able to send the "TTL Expired" message directly to the SRC of the original packet.
To overcome this issue, the ICMP packet will be sent towards the DST through the LSP in which the original packet came, and the remote end of the LSP will get the ICMP packet which will be routed towards the SRC through another LSP.
Normal Trace Operation
MPLS Trace ( ICMP Tunnelling) Operation.
Ex -
When SRC sends a packet with TTL=2, Router 2 will recieve the labeled packet through an LSP ( lsp R1-to-R4)
Router2 will drop the original packet and generate an "ICMP TTL Expired" message with destination IP of SRC and the labels of the original packet and label-switch along the original LSP ( R1-to-R4)
ICMP message will be label switched and reach Router 4 , and it will do route lookup and send the ICMP packet towards SRC through an LSP ( lsp R4-to-R1)