EXP -> TC

document RFC4182 sysctl flag
document a little bit more the IMPLNULL operation
This commit is contained in:
kefren 2013-07-24 06:31:09 +00:00
parent 708985b712
commit 2e7b898409

View File

@ -1,4 +1,4 @@
.\" $NetBSD: mpls.4,v 1.7 2011/07/17 23:50:05 dholland Exp $
.\" $NetBSD: mpls.4,v 1.8 2013/07/24 06:31:09 kefren Exp $
.\"
.\" Copyright (c) 2010 The NetBSD Foundation, Inc.
.\" All rights reserved.
@ -24,7 +24,7 @@
.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
.\" POSSIBILITY OF SUCH DAMAGE.
.\"
.Dd June 29, 2010
.Dd July 24, 2013
.Dt MPLS 4
.Os
.Sh NAME
@ -70,7 +70,7 @@ In network bit order:
.Bd -literal
-------------------------------------------
| | | | |
| Label | Exp. | BoS | TTL |
| Label | TC | BoS | TTL |
| 20 bits | 3 bits | 1 bit | 8 bits |
| | | | |
-------------------------------------------
@ -79,13 +79,16 @@ In network bit order:
.It Label
20 bits representing FEC, consequently the only information
used to forward the frame to next-hop
.It Experimental
3 bits that are sometimes used for specifying a type of service
.It Traffic Class Field
3 bits that are used for specifying a traffic class, usually used for defining
a type of service.
This field was named the "Experimental Field" in most early (pre-
.%R RFC 5462
) documents.
.It Bottom of Stack
1 bit that is set for the last entry in the shim
stack and 0 for all others.
This way, multiple labels can
be prepended to a single packet.
One bit that is set for the last entry in the shim stack and 0 for all others.
An MPLS frame may contain more than one shim, the last one before the
network headers being marked by setting the BoS bit.
.It TTL
8 bits, representing Time to Live, decremented at every LSR.
.El
@ -109,20 +112,22 @@ will be copied into IP header on decapsulation.
The IPv6 version of the above.
.It Li net.mpls.inet_map_prec
If set, precedence field from IP header will be
mapped into MPLS shim EXP bits on encapsulation, and the MPLS EXP
mapped into MPLS shim in TC field on encapsulation, and the MPLS TC
field will be copied into IP Precedence field on decapsulation.
.It Li net.mpls.inet6_map_prec
The IPv6 version of the above.
.It Li net.mpls.icmp_respond
Returns ICMP TTL exceeded in transit when an MPLS
frame is dropped because of TTL = 0 on egress interface.
.It Li net.mpls.rfc4182
Pop the Explicit Null labels as specified by
.%R RFC 4182
.El
In order to encapsulate and decapsulate to and from MPLS, an mpls
pseudo-interface must be created and packets that should be encapsulated
must be routed to that interface.
.Pp
.Dq Pure
MPLS routes can be created using
MPLS routes may be created using
.Dv AF_MPLS
.Li sa_family
sockaddrs for destination and tag fields.
@ -143,6 +148,14 @@ and
.Xr route 8
utilities should be used to manage routes from userland.
.Pp
The
.Nx
implementation stores route tagging information into a sockaddr_mpls structure
that is referenced by the rt_tag field of rtentry struct.
For storing multiple labels associated with the next-hop, the current
implementation abuses the sockaddr_mpls structure, extending it in order to fit
a stack of labels.
.Pp
.Xr ldpd 8
should be used in order to automatically import, manage and
distribute labels among LSRs in the same MPLS domain.
@ -171,6 +184,13 @@ When an LSR would otherwise replace the label at the top of the stack
with a new label, but the new label is
.Dq Implicit NULL ,
the LSR will pop the stack instead of doing the replacement.
In this case, the LSR will have to deduce by itself what is the original
address family of the encapsulated network packet.
Currently,
.Nx
implementation is assuming that the latter address family
is equal to the next-hop address family specified in the Implicit Null Label
MPLS route.
.El
.Sh EXAMPLES
.Bl -enum
@ -245,6 +265,14 @@ and forward the result to 192.168.1.100
.%R RFC 3032
.%T MPLS Label Stack Encoding
.Re
.Rs
.%R RFC 4182
.%T Removing a Restriction on the use of MPLS Explicit NULL
.Re
.Rs
.%R RFC 5462
.%T MPLS Label Stack Entry: "EXP" Field Renamed to "Traffic Class" Field
.Re
.Sh HISTORY
The
.Nm