[c-nsp] MPLS OAM behavior on ASR9k/ASR920
Marcin Kurek
md.kurek at gmail.com
Tue Aug 1 04:54:26 EDT 2017
Hi all,
I'm playing a bit in the lab to understand MPLS OAM operation and I
think I see difference in how different routers behave.
My lab scenario looks like below:
R1 (ASR9006) ---- R2 (ASR9001) --- R3 (ASR920) ---- R4 (ASR920)
I have configured IGP and LDP. I'm sourcing MPLS LSP Ping from R1 to R4.
Quoting MPLS Enabled Applications book:
(...) several requirements become apparent regarding the probes and
their handling:
1. The probes must follow exactly the same path as the data packets.
2. The probes must be delivered to the control plane of the LSR on which
they ended their MPLS path for verification
3. The probes must contain enough information about the FEC to allow the
receiving LSR to determine if it is indeed the correct egress.
If filter LDP packets on R3's interface towards R2 effectively breaking
LDP adjacency, LSP becomes unlabeled on R2, but the OAM probe is NOT
punted to the RSP on ASR9001. It is label switched to R3, which consume
the packet and generate reply like this:
Type escape sequence to abort.
f size 100, reply addr 10.3.4.3, return code 10
f size 100, reply addr 10.3.4.3, return code 10
f size 100, reply addr 10.3.4.3, return code 10
f size 100, reply addr 10.3.4.3, return code 10
f size 100, reply addr 10.2.4.2, return code 10
I'm okay with that behavior for a number of reasons:
1. R2 gets regular labeled packet, even though the LSP is broken it has
no means to punt the packet (no MPLS Router Alert Label, no TTL=1).
2. The OAM probe is packet switched to R3, which consume it (because it
is pure IP packet now, destination IP is = 127/8 and there is Router
Alert IP Option set)
3. R3 knows what label value to expect for this FEC. It doesn't get it,
so it reports FEC mismatch.
If I break LDP between R3 and R4, the LSP becomes broken on R3. But the
difference is that on ASR920 the packet seem to be punted.
Jul 31 04:02:25.175: MPLS process: Te0/0/24: rx: Len 114 Stack {18 0
254} - ipv4 data s:10.1.2.1 d:127.0.0.1 ttl:1 tos:0 prot:11
*Jul 31 04:02:25.175: FIBfwd-proc: packet routed to
TenGigabitEthernet0/0/25 10.3.4.4(0)
*Jul 31 04:02:25.175: lfd_mpls_packet_exception: Process level
exception=0 datatype=1 hdr_pid 4, pak 0x37E88900, pak ns 0x37E891AE, pak
ds 0x37E8919C, pak datasize 114, pak encsize is 18
*Jul 31 04:02:25.175: lfd_mpls_packet_exception: except_data dataptr
0x37E891AE inlabel_ptr 0x37E891AA local_label 0x12/0x0 end_of_lsp 0x0
pwid 0x0
*Jul 31 04:02:25.175: LSPV: Generic LSPV rx packet handler , Pak TTL 253
So, even though labeled packet came in, it fell into some sort of
exception (?) and was consumed by LSPV process.
Why the difference? How does the ASR920 know to punt this probe packet?
Should the probe packet be punted on device on which the LSP ends, or
can it be punted also on next device? Does it even matter?
Many thanks,
Marcin Kurek
More information about the cisco-nsp
mailing list