nexp-mpls — Network Expect support for Multi-Protocol Label Switching (MPLS) labeled protocol data units
PDU definition:
mpls
( [
label
=num
,] [ttl
=num
,] [
experimental
,
] [
stack
] )
The following parameters allow you to define the different parts of a MPLS labeled protocol data unit (PDU) in Network Expect:
label
=
NUMSPEC
The MPLS label to be used in the PDU. The label is stored in a 20 bit field, with values 0 to 15 being reserved by section 2.1 of RFC 3032. Default: 0.
ttl
= NUMSPEC
The Time to Live value of the MPLS label. Per section 2.4 of RFC 3032, only the top most label is relevant to packet forwarding. Default: 0.
experimental
When included in the PDU definition, the least significant of the three MPLS Experimental bits is set to 1. Default: All three bits are set to 0.
stack
Sets the MPLS Bottom of Stack bit to 1. In order for an MPLS packet to be valid, exactly one MPLS label must have this bit set.
The current version of Network Expect does not support the decoding of received MPLS PDUs into the Tcl array variable mpls.
A simple MPLS labeled ethernet frame:
ether()/mpls(label = 100, stack)
An MPLS labeled ethernet frame containing three labels:
ether()/mpls(label = 20)/mpls(label = 30)/mpls(label = 40, stack)
An MPLS over IP packet with an MPLS TTL of 100:
ip(dst = www.netexpect.org, proto = 137) / \ mpls(label = 20, stack, ttl = 100)
An MPLS over GRE packet containing an IP datagram:
ip(dst = www.netexpect.org)/gre()/mpls(label = 30, stack) / \ ip(src = 10.1.1.1, dst = 10.2.2.2)