Please correct me if I'm wrong, but it seems that redistributing BGP into the IGP in order for LDP labels to be propagated breaks MPLS OAM through an XR based BGP ASBR using IPv4+Label between AS's.
RP/0/3/CPU0:XR2#trace mpls ipv4 10.0.0.4/32 source 10.0.0.20
Wed Jun 19 18:18:23.079 UTC
Tracing MPLS Label Switched Path to 10.0.0.4/32, timeout is 2 seconds
Codes: '!' - success, 'Q' - request not sent, '.' - timeout,
'L' - labeled output interface, 'B' - unlabeled output interface,
'D' - DS Map mismatch, 'F' - no FEC mapping, 'f' - FEC mismatch,
'M' - malformed request, 'm' - unsupported tlvs, 'N' - no rx label,
'P' - no rx intf label prot, 'p' - premature termination of LSP,
'R' - transit router, 'I' - unknown upstream index,
'X' - unknown return code, 'x' - return code 0
Type escape sequence to abort.
0 10.19.20.20 MRU 4470 [Labels: 16009 Exp: 0]
N 1 10.19.20.19 10 ms
RP/0/3/CPU0:XR2#
I'm speculating that the reason it's broken is because the XR ASBR is not learning a FEC for 10.0.0.20/32 via BGP.
RP/0/0/CPU0:XR1(config)#do show bgp label | i "Net|10.0.0.20/32"
Wed Jun 19 18:21:45.480 UTC
Network Next Hop Rcvd Label Local Label
*> 10.0.0.20/32 10.19.20.20 nolabel 16000
IOS doesn't seem to have this problem with MPLS OAM.
What do you think?