Thanks Claudio for your speedy reply. > Have a look at the route -n show -mpls output and check the input counter for label 20.
It happily counts and confirms what tcpdump shows on the ingress interface: [r...@p2:root]# route -n show -mpls Routing tables MPLS: In label Out label Op Gateway Flags Refs Use Mtu Prio Interface 3 - LOCAL 127.0.0.1 UGT 0 0 33200 56 lo0 16 - LOCAL 10.7.0.254 UGT 0 0 - 56 udav0 17 - POP 1.1.2.1 UGT 0 0 - 56 vr2 18 - POP 1.1.2.1 UGT 0 5 - 56 vr2 19 19 SWAP 1.1.2.1 UGT 0 0 - 56 vr2 20 - POP 2.2.1.2 UGT 0 7526 - 56 vr0 <== 21 - POP 2.2.1.2 UGT 0 0 - 56 vr0 22 - POP 2.2.1.2 UGT 0 0 - 56 vr0 23 23 SWAP 1.1.2.1 UGT 0 0 - 56 vr2 24 - LOCAL 7.0.0.2 UGT 0 1 33200 56 lo1 25 17 SWAP 1.2.3.3 UGT 0 0 - 56 vr1 26 26 SWAP 1.1.2.1 UGT 0 0 - 56 vr2 27 26 SWAP 2.2.1.2 UGT 0 0 - 56 vr0 Also, I have re-checked the counters of all other routes as well as the traffic out of all other interface on this P router, but the packets do not appear on a "wrong" interface. > Setup looks fine. I use OSPF as IGP but I now Michele is using RIP in his setup. For a cross-check, I will move from RIP to OSPF and report again if it made any difference. > Please consider using IP blocks that are available for testing and not publicly assigned ones. But it so much more convenient with short addresses which reflect the topology, although there is actually named running as well. As a precaution against leakage into the wild Internet, I had added those public ranges temporarily to the RFC1918 egress filter on my pf lab firewall :-)

