RoS7 MPLS LDPv4 over PPP

Topology is:

[cisco NCS5500 XR]---{gigabitethernet}---[CCR2004]==={L2TPs}===[Spokes]

CCR2004 is the LNS as of now, later would be CCR2116.

I tried OSPF and RIP as IGP without success. There are 5 Spokes on LNS/HUB. All the five LDP adjacency is DOp (D - DYNAMIC; O - OPERATIONAL; p - PASSIVE), but some of Spokes’s LDP remote bindings are inactive:

[oreggin@lns.mtik-test] > /mpls/ldp/remote-mapping/print where dst-address~"10[.]4"                                  
Flags: I - INACTIVE; D - DYNAMIC
Columns: VRF, DST-ADDRESS, NEXTHOP, LABEL, PEER
  #    VRF   DST-ADDRESS   NEXTHOP     LABEL      PEER          
714  D main  10.43.69.254  10.3.3.254  impl-null  10.43.69.254:0
716  D main  10.43.54.126  10.3.3.252  impl-null  10.43.54.126:0
718  D main  10.43.0.126   10.3.3.250  impl-null  10.43.0.126:0 
720 ID main  10.44.27.126              impl-null  10.44.27.126:0
722 ID main  10.44.2.254               impl-null  10.44.2.254:0

From XR box, the last two Spoke are not pings. LDP remote binding shows those doesn’t have resolved nexthop(?) :open_mouth:
But they have:

[oreggin@lns.mtik-test] > /routing/route/print where dst-address~"10[.]4.*32"
Flags: A - ACTIVE; o - OSPF, a - LDP-ADDRESS, l - LDP-MAPPING; H - HW-OFFLOADED
Columns: DST-ADDRESS, GATEWAY, AFI, DISTANCE, SCOPE, TARGET-SCOPE, IMMEDIATE-GW
    DST-ADDRESS      GATEWAY                                AFI  DISTANCE  SCOPE  TARGET-SCOPE  IMMEDIATE-GW
Ao  10.43.0.126/32   10.3.3.250%<l2tp-user@realm-4>         ip4       110     20            10  10.3.3.250%<l2tp-user@realm-4>
 aH 10.43.0.126/32                                          ip4
 lH 10.43.0.126/32                                          ip4
Ao  10.43.54.126/32  10.3.3.252%<l2tp-user@realm-3>         ip4       110     20            10  10.3.3.252%<l2tp-user@realm-3>
 aH 10.43.54.126/32                                         ip4
 lH 10.43.54.126/32                                         ip4
Ao  10.43.69.254/32  10.3.3.254%<l2tp-user@realm-1>         ip4       110     20            10  10.3.3.254%<l2tp-user@realm-1>
 aH 10.43.69.254/32                                         ip4
 lH 10.43.69.254/32                                         ip4
Ao  10.44.2.254/32   10.3.3.253%<l2tp-user@realm-2>         ip4       110     20            10  10.3.3.253%<l2tp-user@realm-2>
 aH 10.44.2.254/32                                          ip4
 lH 10.44.2.254/32                                          ip4
Ao  10.44.27.126/32  10.3.3.251%<l2tp-user@realm>           ip4       110     20            10  10.3.3.251%<l2tp-user@realm>
 aH 10.44.27.126/32                                         ip4
 lH 10.44.27.126/32                                         ip4

MPLS forwarding table:

[oreggin@lns.mtik-test] > /mpls/forwarding-table/print where prefix~"10[.]4"
Flags: L - LDP
Columns: LABEL, VRF, PREFIX, NEXTHOPS
#   LABEL  VRF   PREFIX        NEXTHOPS                                                                
3 L    19  main  10.43.69.254  { label=impl-null; nh=10.3.3.254; interface=<l2tp-user@realm-1> }
5 L    18  main  10.43.54.126  { label=impl-null; nh=10.3.3.252; interface=<l2tp-user@realm-3> }
7 L    17  main  10.43.0.126   { label=impl-null; nh=10.3.3.250; interface=<l2tp-user@realm-4> }

The same shows when I use RIP as IGP. The IPv6/VPNv6 is works like a charm and stable. On IPv4, it is totally random which Spoke can communicate with the XR and which can’t. Sometimes all of the Spoke have right LDP binding and mpls forwarding table entries, sometime neither, sometimes just the part of them. Any ideas?

Thanks!
oreggin