Link: https://lore.kernel.org/r/20260217200002.683975158@linuxfoundation.org Tested-by: Florian Fainelli <florian.fainelli@broadcom.com> Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com> Tested-by: Peter Schneider <pschneider1968@googlemail.com> Tested-by: Jon Hunter <jonathanh@nvidia.com> Tested-by: Salvatore Bonaccorso <carnil@debian.org> Tested-by: Brett A C Sheffield <bacs@librecast.net> Tested-by: Mark Brown <broonie@kernel.org> Tested-by: Luna Jernberg <droidbittin@gmail.com> Tested-by: Ronald Warsow <rwarsow@gmx.de> Tested-by: Justin M. Forbes <jforbes@fedoraproject.org> Tested-by: Ron Economos <re@w6rz.net> Tested-by: Miguel Ojeda <ojeda@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
45 lines
1.3 KiB
ReStructuredText
45 lines
1.3 KiB
ReStructuredText
=========================
|
|
Network classifier cgroup
|
|
=========================
|
|
|
|
The Network classifier cgroup provides an interface to
|
|
tag network packets with a class identifier (classid).
|
|
|
|
The Traffic Controller (tc) can be used to assign
|
|
different priorities to packets from different cgroups.
|
|
Also, Netfilter (iptables) can use this tag to perform
|
|
actions on such packets.
|
|
|
|
Creating a net_cls cgroups instance creates a net_cls.classid file.
|
|
This net_cls.classid value is initialized to 0.
|
|
|
|
You can write hexadecimal values to net_cls.classid; the format for these
|
|
values is 0xAAAABBBB; AAAA is the major handle number and BBBB
|
|
is the minor handle number.
|
|
Reading net_cls.classid yields a decimal result.
|
|
|
|
Example::
|
|
|
|
mkdir /sys/fs/cgroup/net_cls
|
|
mount -t cgroup -onet_cls net_cls /sys/fs/cgroup/net_cls
|
|
mkdir /sys/fs/cgroup/net_cls/0
|
|
echo 0x100001 > /sys/fs/cgroup/net_cls/0/net_cls.classid
|
|
|
|
- setting a 10:1 handle::
|
|
|
|
cat /sys/fs/cgroup/net_cls/0/net_cls.classid
|
|
1048577
|
|
|
|
- configuring tc::
|
|
|
|
tc qdisc add dev eth0 root handle 10: htb
|
|
tc class add dev eth0 parent 10: classid 10:1 htb rate 40mbit
|
|
|
|
- creating traffic class 10:1::
|
|
|
|
tc filter add dev eth0 parent 10: protocol ip prio 10 handle 1: cgroup
|
|
|
|
configuring iptables, basic example::
|
|
|
|
iptables -A OUTPUT -m cgroup ! --cgroup 0x100001 -j DROP
|