Three providers carry one end-to-end LSP between PE1 (ISP1, AS 6001, IOS XE) and PE3 (ISP3, AS 6003, IOS XR), across the transit provider ISP2 (AS 6002, IOS XR). Each ISP runs its own IS-IS and LDP, and nothing of that crosses the borders. Stitch them with BGP labeled unicast: iBGP inside each ISP, eBGP between the border routers. ISP2’s P2 runs no BGP at all; it forwards the traffic only because it is label-switched.
The simulator ticks each one as soon as the network meets it.
PE1 (6001) and PE3 (6003): peer iBGP with your ASBR between loopbacks, exchange labels, and advertise your Loopback0 /32.
ASBR1 and ASBR3: peer eBGP with ISP2 on the link addresses and exchange labels; set next-hop-self toward your PE. ASBR3 (IOS XR) needs route-policy PASS in and out on its eBGP neighbor.
ASBR2A and ASBR2B (AS 6002, IOS XR): eBGP labeled unicast toward ISP1 and ISP3 with route-policy PASS in and out, and iBGP labeled unicast between your loopbacks with next-hop-self. Remember allocate-label all.
PE1 learns 7.7.7.7/32 from ASBR1 with a label (show bgp ipv4 unicast labels).
PE1 and PE3 have a BGP-LU path to each other’s loopback.
Ping 7.7.7.7 from PE1, sourced from Loopback0: the echo crosses ISP2’s BGP-free P2.