You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
144 lines
3.6 KiB
144 lines
3.6 KiB
.TH "IFE action in tc" 8 "22 Apr 2016" "iproute2" "Linux"
|
|
|
|
.SH NAME
|
|
IFE - encapsulate/decapsulate metadata
|
|
.SH SYNOPSIS
|
|
.in +8
|
|
.ti -8
|
|
.BR tc " ... " " action ife"
|
|
.IR DIRECTION " [ " ACTION " ] "
|
|
.RB "[ " dst
|
|
.IR DMAC " ] "
|
|
.RB "[ " src
|
|
.IR SMAC " ] "
|
|
.RB "[ " type
|
|
.IR TYPE " ] "
|
|
.RI "[ "
|
|
.IR CONTROL " ] "
|
|
.RB "[ " index
|
|
.IR INDEX " ] "
|
|
|
|
.ti -8
|
|
.IR DIRECTION " := { "
|
|
.BR decode " | " encode " }"
|
|
|
|
.ti -8
|
|
.IR ACTION " := { "
|
|
.BI allow " ATTR"
|
|
.RB "| " use
|
|
.IR "ATTR value" " }"
|
|
|
|
.ti -8
|
|
.IR ATTR " := { "
|
|
.BR mark " | " prio " | " tcindex " }"
|
|
|
|
.ti -8
|
|
.IR CONTROL " := { "
|
|
.BR reclassify " | " use " | " pipe " | " drop " | " continue " | " ok " | " goto " " chain " " CHAIN_INDEX " }"
|
|
.SH DESCRIPTION
|
|
The
|
|
.B ife
|
|
action allows for a sending side to encapsulate arbitrary metadata, which is
|
|
then decapsulated by the receiving end. The sender runs in encoding mode and
|
|
the receiver in decode mode. Both sender and receiver must specify the same
|
|
ethertype. In the future, a registered ethertype may be available as a default.
|
|
.SH OPTIONS
|
|
.TP
|
|
.B decode
|
|
For the receiving side; decode the metadata if the packet matches.
|
|
.TP
|
|
.B encode
|
|
For the sending side. Encode the specified metadata if the packet matches.
|
|
.TP
|
|
.B allow
|
|
Encode direction only. Allows encoding specified metadata.
|
|
.TP
|
|
.B use
|
|
Encode direction only. Enforce static encoding of specified metadata.
|
|
.TP
|
|
.BR mark " [ "
|
|
.IR u32_value " ]"
|
|
The value to set for the skb mark. The u32 value is required only when
|
|
.BR use " is specified. If
|
|
.BR mark " value is zero, it will not be encoded, instead
|
|
"overlimits" statistics increment and
|
|
.BR CONTROL " action is taken.
|
|
.TP
|
|
.BR prio " [ "
|
|
.IR u32_value " ]"
|
|
The value to set for priority in the skb structure. The u32 value is required
|
|
only when
|
|
.BR use " is specified."
|
|
.TP
|
|
.BR tcindex " ["
|
|
.IR u16_value " ]"
|
|
Value to set for the traffic control index in the skb structure. The u16 value
|
|
is required only when
|
|
.BR use " is specified."
|
|
.TP
|
|
.BI dmac " DMAC"
|
|
.TQ
|
|
.BI smac " SMAC"
|
|
Optional six byte destination or source MAC address to encode.
|
|
.TP
|
|
.BI type " TYPE"
|
|
Optional 16-bit ethertype to encode. If not specified value of 0xED3E will be used.
|
|
.TP
|
|
.BI CONTROL
|
|
Action to take following an encode/decode.
|
|
.TP
|
|
.BI index " INDEX"
|
|
Assign a unique ID to this action instead of letting the kernel choose one
|
|
automatically.
|
|
.I INDEX
|
|
is a 32bit unsigned integer greater than zero.
|
|
.SH EXAMPLES
|
|
|
|
On the receiving side, match packets with ethertype 0xdead and restart
|
|
classification so that it will match ICMP on the next rule, at prio 3:
|
|
.RS
|
|
.EX
|
|
# tc qdisc add dev eth0 handle ffff: ingress
|
|
# tc filter add dev eth0 parent ffff: prio 2 protocol 0xdead \\
|
|
u32 match u32 0 0 flowid 1:1 \\
|
|
action ife decode reclassify
|
|
# tc filter add dev eth0 parent ffff: prio 3 protocol ip \\
|
|
u32 match ip protocol 0xff flowid 1:1 \\
|
|
action continue
|
|
.EE
|
|
.RE
|
|
|
|
Match with skb mark of 17:
|
|
|
|
.RS
|
|
.EX
|
|
# tc filter add dev eth0 parent ffff: prio 4 protocol ip \\
|
|
handle 0x11 fw flowid 1:1 \\
|
|
action ok
|
|
.EE
|
|
.RE
|
|
|
|
Configure the sending side to encode for the filters above. Use a destination
|
|
IP address of 192.168.122.237/24, then tag with skb mark of decimal 17. Encode
|
|
the packaet with ethertype 0xdead, add skb->mark to whitelist of metadatum to
|
|
send, and rewrite the destination MAC address to 02:15:15:15:15:15.
|
|
|
|
.RS
|
|
.EX
|
|
# tc qdisc add dev eth0 root handle 1: prio
|
|
# tc filter add dev eth0 parent 1: protocol ip prio 10 u32 \\
|
|
match ip dst 192.168.122.237/24 \\
|
|
match ip protocol 1 0xff \\
|
|
flowid 1:2 \\
|
|
action skbedit mark 17 \\
|
|
action ife encode \\
|
|
type 0xDEAD \\
|
|
allow mark \\
|
|
dst 02:15:15:15:15:15
|
|
.EE
|
|
.RE
|
|
|
|
.SH SEE ALSO
|
|
.BR tc (8),
|
|
.BR tc-u32 (8)
|