mirror of
				https://git.proxmox.com/git/mirror_iproute2
				synced 2025-11-04 02:56:43 +00:00 
			
		
		
		
	Add a man page describing the newly added TC mpls manipulation actions. Signed-off-by: John Hurley <john.hurley@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: David Ahern <dsahern@gmail.com>
		
			
				
	
	
		
			157 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			157 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Groff
		
	
	
	
	
	
.TH "MPLS manipulation action in tc" 8 "22 May 2019" "iproute2" "Linux"
 | 
						|
 | 
						|
.SH NAME
 | 
						|
mpls - mpls manipulation module
 | 
						|
.SH SYNOPSIS
 | 
						|
.in +8
 | 
						|
.ti -8
 | 
						|
.BR tc " ... " "action mpls" " { "
 | 
						|
.IR POP " | " PUSH " | " MODIFY " | "
 | 
						|
.BR dec_ttl " } [ "
 | 
						|
.IR CONTROL " ]"
 | 
						|
 | 
						|
.ti -8
 | 
						|
.IR POP " := "
 | 
						|
.BR pop " " protocol
 | 
						|
.IR MPLS_PROTO
 | 
						|
 | 
						|
.ti -8
 | 
						|
.IR PUSH " := "
 | 
						|
.BR push " [ " protocol
 | 
						|
.IR MPLS_PROTO " ]"
 | 
						|
.RB " [ " tc
 | 
						|
.IR MPLS_TC " ] "
 | 
						|
.RB " [ " ttl
 | 
						|
.IR MPLS_TTL " ] "
 | 
						|
.RB " [ " bos
 | 
						|
.IR MPLS_BOS " ] "
 | 
						|
.BI label " MPLS_LABEL"
 | 
						|
 | 
						|
.ti -8
 | 
						|
.IR MODIFY " := "
 | 
						|
.BR modify " [ " label
 | 
						|
.IR MPLS_LABEL " ]"
 | 
						|
.RB " [ " tc
 | 
						|
.IR MPLS_TC " ] "
 | 
						|
.RB " [ " ttl
 | 
						|
.IR MPLS_TTL " ] "
 | 
						|
 | 
						|
.ti -8
 | 
						|
.IR CONTROL " := { "
 | 
						|
.BR reclassify " | " pipe " | " drop " | " continue " | " pass " | " goto " " chain " " CHAIN_INDEX " }"
 | 
						|
.SH DESCRIPTION
 | 
						|
The
 | 
						|
.B mpls
 | 
						|
action performs mpls encapsulation or decapsulation on a packet, reflected by the
 | 
						|
operation modes
 | 
						|
.IR POP ", " PUSH ", " MODIFY " and " DEC_TTL .
 | 
						|
The
 | 
						|
.I POP
 | 
						|
mode requires the ethertype of the header that follows the MPLS header (e.g.
 | 
						|
IPv4 or another MPLS). It will remove the outer MPLS header and replace the
 | 
						|
ethertype in the MAC header with that passed. The
 | 
						|
.IR PUSH " and " MODIFY
 | 
						|
modes update the current MPLS header information or add a new header.
 | 
						|
.IR PUSH
 | 
						|
requires at least an
 | 
						|
.IR MPLS_LABEL ". "
 | 
						|
.I DEC_TTL
 | 
						|
requires no arguments and simply subtracts 1 from the MPLS header TTL field.
 | 
						|
 | 
						|
.SH OPTIONS
 | 
						|
.TP
 | 
						|
.B pop
 | 
						|
Decapsulation mode. Requires the protocol of the next header.
 | 
						|
.TP
 | 
						|
.B push
 | 
						|
Encapsulation mode. Requires at least the
 | 
						|
.B label
 | 
						|
option.
 | 
						|
.TP
 | 
						|
.B modify
 | 
						|
Replace mode. Existing MPLS tag is replaced.
 | 
						|
.BR label ", "
 | 
						|
.BR tc ", "
 | 
						|
and
 | 
						|
.B ttl
 | 
						|
are all optional.
 | 
						|
.TP
 | 
						|
.B dec_ttl
 | 
						|
Decrement the TTL field on the outer most MPLS header.
 | 
						|
.TP
 | 
						|
.BI label " MPLS_LABEL"
 | 
						|
Specify the MPLS LABEL for the outer MPLS header.
 | 
						|
.I MPLS_LABEL
 | 
						|
is an unsigned 20bit integer, the format is detected automatically (e.g. prefix
 | 
						|
with
 | 
						|
.RB ' 0x '
 | 
						|
for hexadecimal interpretation, etc.).
 | 
						|
.TP
 | 
						|
.BI protocol " MPLS_PROTO"
 | 
						|
Choose the protocol to use. For push actions this must be
 | 
						|
.BR mpls_uc " or " mpls_mc " (" mpls_uc
 | 
						|
is the default). For pop actions it should be the protocol of the next header.
 | 
						|
This option cannot be used with modify.
 | 
						|
.TP
 | 
						|
.BI tc " MPLS_TC"
 | 
						|
Choose the TC value for the outer MPLS header. Decimal number in range of 0-7.
 | 
						|
Defaults to 0.
 | 
						|
.TP
 | 
						|
.BI ttl " MPLS_TTL"
 | 
						|
Choose the TTL value for the outer MPLS header. Number in range of 0-255. A
 | 
						|
non-zero default value will be selected if this is not explicitly set.
 | 
						|
.TP
 | 
						|
.BI bos " MPLS_BOS"
 | 
						|
Manually configure the bottom of stack bit for an MPLS header push. The default
 | 
						|
is for TC to automatically set (or unset) the bit based on the next header of
 | 
						|
the packet.
 | 
						|
.TP
 | 
						|
.I CONTROL
 | 
						|
How to continue after executing this action.
 | 
						|
.RS
 | 
						|
.TP
 | 
						|
.B reclassify
 | 
						|
Restarts classification by jumping back to the first filter attached to this
 | 
						|
action's parent.
 | 
						|
.TP
 | 
						|
.B pipe
 | 
						|
Continue with the next action, this is the default.
 | 
						|
.TP
 | 
						|
.B drop
 | 
						|
Packet will be dropped without running further actions.
 | 
						|
.TP
 | 
						|
.B continue
 | 
						|
Continue classification with next filter in line.
 | 
						|
.TP
 | 
						|
.B pass
 | 
						|
Return to calling qdisc for packet processing. This ends the classification
 | 
						|
process.
 | 
						|
.RE
 | 
						|
.SH EXAMPLES
 | 
						|
The following example encapsulates incoming IP packets on eth0 into MPLS with
 | 
						|
a label 123 and sends them out eth1:
 | 
						|
 | 
						|
.RS
 | 
						|
.EX
 | 
						|
#tc qdisc add dev eth0 handle ffff: ingress
 | 
						|
#tc filter add dev eth0 protocol ip parent ffff: flower \\
 | 
						|
	action mpls push protocol mpls_uc label 123  \\
 | 
						|
	action mirred egress redirect dev eth1
 | 
						|
.EE
 | 
						|
.RE
 | 
						|
 | 
						|
In this example, incoming MPLS unicast packets on eth0 are decapsulated and to
 | 
						|
ip packets and output to eth1:
 | 
						|
 | 
						|
.RS
 | 
						|
.EX
 | 
						|
#tc qdisc add dev eth0 handle ffff: ingress
 | 
						|
#tc filter add dev eth0 protocol mpls_uc parent ffff: flower \\
 | 
						|
	action mpls pop protocol ipv4  \\
 | 
						|
	action mirred egress redirect dev eth0
 | 
						|
.EE
 | 
						|
.RE
 | 
						|
 | 
						|
.SH SEE ALSO
 | 
						|
.BR tc (8)
 |