## Name

nexp-mpls — Network Expect support for Multi-Protocol Label Switching (MPLS) labeled protocol data units

## Synopsis

PDU definition:

`mpls` ( [ `label`=`num`,] [`ttl`=`num`,] [ `experimental`, ] [ `stack` ] )

## PDU Definition

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.

## PDU Decoding

The current version of Network Expect does not support the decoding of received MPLS PDUs into the Tcl array variable mpls.

## Examples

1. A simple MPLS labeled ethernet frame:

       ether()/mpls(label = 100, stack)

2. An MPLS labeled ethernet frame containing three labels:

       ether()/mpls(label = 20)/mpls(label = 30)/mpls(label = 40, stack)

3. An MPLS over IP packet with an MPLS TTL of 100:

       ip(dst = www.netexpect.org, proto = 137) / \
       mpls(label = 20, stack, ttl = 100)

4. 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)

## VERSION

This man page is correct for version 1.0 of Network Expect.

## SEE ALSO

nexp(1), nexp-numspec(1), RFC 3032, RFC 4023

## AUTHOR

MPLS support for Network Expect was written by Eloy Paris <peloy@netexpect.org>.

This man page was written by Tim Sammut <tsammut@cisco.com>.