xref: /linux/Documentation/admin-guide/cgroup-v1/net_cls.rst (revision da82c92f1150f66afabf78d2c85ef9ac18dc6d38)
1*99c8b231SMauro Carvalho Chehab=========================
2*99c8b231SMauro Carvalho ChehabNetwork classifier cgroup
3*99c8b231SMauro Carvalho Chehab=========================
4*99c8b231SMauro Carvalho Chehab
5*99c8b231SMauro Carvalho ChehabThe Network classifier cgroup provides an interface to
6*99c8b231SMauro Carvalho Chehabtag network packets with a class identifier (classid).
7*99c8b231SMauro Carvalho Chehab
8*99c8b231SMauro Carvalho ChehabThe Traffic Controller (tc) can be used to assign
9*99c8b231SMauro Carvalho Chehabdifferent priorities to packets from different cgroups.
10*99c8b231SMauro Carvalho ChehabAlso, Netfilter (iptables) can use this tag to perform
11*99c8b231SMauro Carvalho Chehabactions on such packets.
12*99c8b231SMauro Carvalho Chehab
13*99c8b231SMauro Carvalho ChehabCreating a net_cls cgroups instance creates a net_cls.classid file.
14*99c8b231SMauro Carvalho ChehabThis net_cls.classid value is initialized to 0.
15*99c8b231SMauro Carvalho Chehab
16*99c8b231SMauro Carvalho ChehabYou can write hexadecimal values to net_cls.classid; the format for these
17*99c8b231SMauro Carvalho Chehabvalues is 0xAAAABBBB; AAAA is the major handle number and BBBB
18*99c8b231SMauro Carvalho Chehabis the minor handle number.
19*99c8b231SMauro Carvalho ChehabReading net_cls.classid yields a decimal result.
20*99c8b231SMauro Carvalho Chehab
21*99c8b231SMauro Carvalho ChehabExample::
22*99c8b231SMauro Carvalho Chehab
23*99c8b231SMauro Carvalho Chehab	mkdir /sys/fs/cgroup/net_cls
24*99c8b231SMauro Carvalho Chehab	mount -t cgroup -onet_cls net_cls /sys/fs/cgroup/net_cls
25*99c8b231SMauro Carvalho Chehab	mkdir /sys/fs/cgroup/net_cls/0
26*99c8b231SMauro Carvalho Chehab	echo 0x100001 >  /sys/fs/cgroup/net_cls/0/net_cls.classid
27*99c8b231SMauro Carvalho Chehab
28*99c8b231SMauro Carvalho Chehab- setting a 10:1 handle::
29*99c8b231SMauro Carvalho Chehab
30*99c8b231SMauro Carvalho Chehab	cat /sys/fs/cgroup/net_cls/0/net_cls.classid
31*99c8b231SMauro Carvalho Chehab	1048577
32*99c8b231SMauro Carvalho Chehab
33*99c8b231SMauro Carvalho Chehab- configuring tc::
34*99c8b231SMauro Carvalho Chehab
35*99c8b231SMauro Carvalho Chehab	tc qdisc add dev eth0 root handle 10: htb
36*99c8b231SMauro Carvalho Chehab	tc class add dev eth0 parent 10: classid 10:1 htb rate 40mbit
37*99c8b231SMauro Carvalho Chehab
38*99c8b231SMauro Carvalho Chehab- creating traffic class 10:1::
39*99c8b231SMauro Carvalho Chehab
40*99c8b231SMauro Carvalho Chehab	tc filter add dev eth0 parent 10: protocol ip prio 10 handle 1: cgroup
41*99c8b231SMauro Carvalho Chehab
42*99c8b231SMauro Carvalho Chehabconfiguring iptables, basic example::
43*99c8b231SMauro Carvalho Chehab
44*99c8b231SMauro Carvalho Chehab	iptables -A OUTPUT -m cgroup ! --cgroup 0x100001 -j DROP
45