net/sched: Introduce sample tc action
authorYotam Gigi <yotamg@mellanox.com>
Mon, 23 Jan 2017 10:07:09 +0000 (11:07 +0100)
committerDavid S. Miller <davem@davemloft.net>
Tue, 24 Jan 2017 18:44:28 +0000 (13:44 -0500)
commit5c5670fae43027778e84b9d9ff3b9d91a10a8131
treef0b873535efb93537a041a2b189e1f34b8a663c3
parent6ae0a6286171154661b74f7f550f9441c6008424
net/sched: Introduce sample tc action

This action allows the user to sample traffic matched by tc classifier.
The sampling consists of choosing packets randomly and sampling them using
the psample module. The user can configure the psample group number, the
sampling rate and the packet's truncation (to save kernel-user traffic).

Example:
To sample ingress traffic from interface eth1, one may use the commands:

tc qdisc add dev eth1 handle ffff: ingress

tc filter add dev eth1 parent ffff: \
   matchall action sample rate 12 group 4

Where the first command adds an ingress qdisc and the second starts
sampling randomly with an average of one sampled packet per 12 packets on
dev eth1 to psample group 4.

Signed-off-by: Yotam Gigi <yotamg@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
Reviewed-by: Simon Horman <simon.horman@netronome.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/tc_act/tc_sample.h [new file with mode: 0644]
include/uapi/linux/tc_act/Kbuild
include/uapi/linux/tc_act/tc_sample.h [new file with mode: 0644]
net/sched/Kconfig
net/sched/Makefile
net/sched/act_sample.c [new file with mode: 0644]