From: Jamal Hadi Salim <jhs@mojatatu.com>
To: Phil Sutter <phil@nwl.cc>, netdev@vger.kernel.org
Subject: Re: [iproute PATCH 03/12] man: Add a man page for the mirred action
Date: Mon, 7 Mar 2016 07:06:54 -0500 [thread overview]
Message-ID: <56DD6EDE.8030403@mojatatu.com> (raw)
In-Reply-To: <1457093507-25601-4-git-send-email-phil@nwl.cc>
BTW, thanks for putting in this effort.
On 16-03-04 07:11 AM, Phil Sutter wrote:
> Signed-off-by: Phil Sutter <phil@nwl.cc>
> ---
> man/man8/tc-mirred.8 | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 89 insertions(+)
> create mode 100644 man/man8/tc-mirred.8
>
> diff --git a/man/man8/tc-mirred.8 b/man/man8/tc-mirred.8
> new file mode 100644
> index 0000000000000..52d98bc416563
> --- /dev/null
> +++ b/man/man8/tc-mirred.8
> @@ -0,0 +1,89 @@
> +.TH "Mirror/redirect action in tc" 8 "11 Jan 2015" "iproute2" "Linux"
> +
> +.SH NAME
> +mirred - mirror/redirect action
> +.SH SYNOPSIS
> +.in +8
> +.ti -8
> +.BR tc " ... " "action mirred"
> +.I DIRECTION ACTION
> +.RB "[ " index
> +.IR INDEX " ] "
> +.BI dev " DEVICENAME"
> +
> +.ti -8
> +.IR DIRECTION " := { "
> +.BR ingress " | " egress " }"
> +
> +.ti -8
> +.IR ACTION " := { "
> +.BR mirror " | " redirect " }"
> +.SH DESCRIPTION
> +The
> +.B mirred
> +action allows to redirect or mirror packets to another network interface on the
> +same system. It is typically used in combination with the
> +.B ifb
> +pseudo device to create a shrared instance where QoS happens, but serves well
> +for debugging or monitoring purposes, too.
The ifb use case is definetely the most propagandized one; but certainly
the terms "mirror" and "redirect" are industry nouns for describing
what this action does. The only i raise this concern is because once it
writ it becomes dogma to some people (and if there is one thing i
learned over the years is that the google-cut-n-pasters are hard to
change). So i would reword as:
"This action allows packet mirroring(copying) or redirecting (stealing)
the packet it receives. Mirroring is what is sometimes referred as
R/SPAN an is commonly used to analyze and/or debug flows.
I would then use the ifb example as a very specific to linux use case;
and add the common use case of mirroring, example:
mirror icmp packets to dummy0 device and run tcpdump on that port..
sudo $TC filter add dev $SRCPORT parent ffff: protocol ip \
u32 match ip protocol 1 0xff \
action mirred egress mirror dev dummy0 \
For redirect, one use case is to redirect packets to a remote machine
based on policy intent. A sample policy is to add a default rule
to redirect packets that dont match any filter to a quarantine
machine. etc.
cheers,
jamal
> +.SH OPTIONS
> +.TP
> +.B ingress
> +.TQ
> +.B egress
> +Specify the direction in which the packet shall appear on the destination
> +interface. Currently only
> +.B egress
> +is implemented.
> +.TP
> +.B mirror
> +.TQ
> +.B redirect
> +Define whether the packet should be copied
> +.RB ( mirror )
> +or moved
> +.RB ( redirect )
> +to the destination interface.
> +.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.
> +.TP
> +.BI dev " DEVICENAME"
> +Specify the network interface to redirect or mirror to.
> +.SH EXAMPLES
> +Limit ingress bandwidth on eth0 to 1mbit/s, redirect exceeding traffic to lo for
> +debugging purposes:
> +
> +.RS
> +.EX
> +# tc qdisc add dev eth0 handle ffff: ingress
> +# tc filter add dev eth0 parent ffff: u32 \\
> + match u32 0 0 \\
> + action police rate 1mbit burst 100k conform-exceed pipe \\
> + action mirred egress redirect dev lo
> +.EE
> +.RE
> +
> +Use an
> +.B ifb
> +interface to send ingress traffic on eth0 through an instance of
> +.BR sfq :
> +
> +.RS
> +.EX
> +# modprobe ifb
> +# ip link set ifb0 up
> +# tc qdisc add dev ifb0 root sfq
> +# tc qdisc add dev eth0 handle ffff: ingress
> +# tc filter add dev eth0 parent ffff: u32 \\
> + match u32 0 0 \\
> + action mirred egress redirect dev ifb0
> +.EE
> +.RE
> +
> +.SH SEE ALSO
> +.BR tc (8),
> +.BR tc-u32 (8)
>
next prev parent reply other threads:[~2016-03-07 12:06 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-04 12:11 [iproute PATCH 00/12] Add tc action man pages Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 01/12] man: Add a man page for the connmark action Phil Sutter
2016-03-07 11:41 ` Jamal Hadi Salim
2016-03-04 12:11 ` [iproute PATCH 02/12] man: Add a man page for the csum action Phil Sutter
2016-03-07 11:45 ` Jamal Hadi Salim
2016-03-04 12:11 ` [iproute PATCH 03/12] man: Add a man page for the mirred action Phil Sutter
2016-03-07 12:06 ` Jamal Hadi Salim [this message]
2016-03-04 12:11 ` [iproute PATCH 04/12] man: Add a man page for the nat action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 05/12] man: Add a man page for the pedit action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 06/12] man: Add a man page for the police action Phil Sutter
2016-03-07 12:23 ` Jamal Hadi Salim
2016-03-04 12:11 ` [iproute PATCH 07/12] man: Add a man page for the simple action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 08/12] man: Add a man page for the skbedit action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 09/12] man: Add a man page for the vlan action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 10/12] man: Add a man page for the xt action Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 11/12] man: ship action man pages Phil Sutter
2016-03-04 12:11 ` [iproute PATCH 12/12] doc: Add my article about tc, filters and actions Phil Sutter
2016-03-05 1:40 ` Alexei Starovoitov
2016-03-05 2:21 ` Phil Sutter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56DD6EDE.8030403@mojatatu.com \
--to=jhs@mojatatu.com \
--cc=netdev@vger.kernel.org \
--cc=phil@nwl.cc \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox