tc: add a man page for flower filter
Cc: Jiri Pirko <jiri@resnulli.us> Signed-off-by: Phil Sutter <phil@nwl.cc>
This commit is contained in:
parent
334ddc9b4d
commit
b3aa12a401
|
|
@ -0,0 +1,113 @@
|
|||
.TH "Flower filter in tc" 8 "22 Oct 2015" "iproute2" "Linux"
|
||||
|
||||
.SH NAME
|
||||
flower \- flow based traffic control filter
|
||||
.SH SYNOPSIS
|
||||
.in +8
|
||||
.ti -8
|
||||
.BR tc " " filter " ... " flower " [ "
|
||||
.IR MATCH_LIST " ] [ "
|
||||
.B action
|
||||
.IR ACTION_SPEC " ] [ "
|
||||
.B classid
|
||||
.IR CLASSID " ]"
|
||||
|
||||
.ti -8
|
||||
.IR MATCH_LIST " := [ " MATCH_LIST " ] " MATCH
|
||||
|
||||
.ti -8
|
||||
.IR MATCH " := { "
|
||||
.B indev
|
||||
.IR ifname " | { "
|
||||
.BR dst_mac " | " src_mac " } "
|
||||
.IR mac_address " | "
|
||||
.BR eth_type " { " ipv4 " | " ipv6 " | "
|
||||
.IR ETH_TYPE " } | "
|
||||
.BR ip_proto " { " tcp " | " udp " | "
|
||||
.IR IP_PROTO " } | { "
|
||||
.BR dst_ip " | " src_ip " } { "
|
||||
.IR ipv4_address " | " ipv6_address " } | { "
|
||||
.BR dst_port " | " src_port " } "
|
||||
.IR port_number " }"
|
||||
.SH DESCRIPTION
|
||||
The
|
||||
.B flower
|
||||
filter matches flows to the set of keys specified and assigns an arbitrarily
|
||||
chosen class ID to packets belonging to them. Additionally (or alternatively) an
|
||||
action from the generic action framework may be called.
|
||||
.SH OPTIONS
|
||||
.TP
|
||||
.BI action " ACTION_SPEC"
|
||||
Apply an action from the generic actions framework on matching packets.
|
||||
.TP
|
||||
.BI classid " CLASSID"
|
||||
Specify a class to pass matching packets on to.
|
||||
.I CLASSID
|
||||
is in the form
|
||||
.BR X : Y ", while " X " and " Y
|
||||
are interpreted as numbers in hexadecimal format.
|
||||
.TP
|
||||
.BI indev " ifname"
|
||||
Match on incoming interface name. Obviously this makes sense only for forwarded
|
||||
flows.
|
||||
.I ifname
|
||||
is the name of an interface which must exist at the time of
|
||||
.B tc
|
||||
invocation.
|
||||
.TP
|
||||
.BI dst_mac " mac_address"
|
||||
.TQ
|
||||
.BI src_mac " mac_address"
|
||||
Match on source or destination MAC address.
|
||||
.TP
|
||||
.BI eth_type " ETH_TYPE"
|
||||
Match on layer three protocol.
|
||||
.I ETH_TYPE
|
||||
may be either
|
||||
.BR ipv4 , ipv6
|
||||
or an unsigned 16bit value in hexadecimal format.
|
||||
.TP
|
||||
.BI ip_proto " IP_PROTO"
|
||||
Match on layer four protocol.
|
||||
.I IP_PROTO
|
||||
may be either
|
||||
.BR tcp , udp
|
||||
or an unsigned 8bit value in hexadecimal format.
|
||||
.TP
|
||||
.BI dst_ip " ADDRESS"
|
||||
.TQ
|
||||
.BI src_ip " ADDRESS"
|
||||
Match on source or destination IP address.
|
||||
.I ADDRESS
|
||||
must be a valid IPv4 or IPv6 address, depending on
|
||||
.BR ether_type ,
|
||||
which has to be specified in beforehand.
|
||||
.TP
|
||||
.BI dst_port " NUMBER"
|
||||
.TQ
|
||||
.BI src_port " NUMBER"
|
||||
Match on layer 4 protocol source or destination port number. Only available for
|
||||
.BR ip_proto " values " udp " and " tcp ,
|
||||
which has to be specified in beforehand.
|
||||
.SH NOTES
|
||||
As stated above where applicable, matches of a certain layer implicitly depend
|
||||
on the matches of the next lower layer. Precisely, layer one and two matches (
|
||||
.BR indev , dst_mac , src_mac " and " eth_type )
|
||||
have no dependency, layer three matches (
|
||||
.BR ip_proto , dst_ip " and " src_ip )
|
||||
require
|
||||
.B eth_type
|
||||
being set to either
|
||||
.BR ipv4 " or " ipv6 ,
|
||||
and finally layer four matches (
|
||||
.BR dst_port " and " src_port )
|
||||
depend on
|
||||
.B ip_proto
|
||||
being set to either
|
||||
.BR tcp " or " udp .
|
||||
.P
|
||||
There can be only used one mask per one prio. If user needs to specify different
|
||||
mask, he has to use different prio.
|
||||
.SH SEE ALSO
|
||||
.BR tc (8),
|
||||
.BR tc-flow (8)
|
||||
Loading…
Reference in New Issue