Merge tag 'io_uring-5.11-2021-01-16' of git://git.kernel.dk/linux-block
[linux/fpc-iii.git] / Documentation / admin-guide / cgroup-v1 / net_prio.rst
blobb40905871c648a6f949f6b45f2191cd398076866
1 =======================
2 Network priority cgroup
3 =======================
5 The Network priority cgroup provides an interface to allow an administrator to
6 dynamically set the priority of network traffic generated by various
7 applications
9 Nominally, an application would set the priority of its traffic via the
10 SO_PRIORITY socket option.  This however, is not always possible because:
12 1) The application may not have been coded to set this value
13 2) The priority of application traffic is often a site-specific administrative
14    decision rather than an application defined one.
16 This cgroup allows an administrator to assign a process to a group which defines
17 the priority of egress traffic on a given interface. Network priority groups can
18 be created by first mounting the cgroup filesystem::
20         # mount -t cgroup -onet_prio none /sys/fs/cgroup/net_prio
22 With the above step, the initial group acting as the parent accounting group
23 becomes visible at '/sys/fs/cgroup/net_prio'.  This group includes all tasks in
24 the system. '/sys/fs/cgroup/net_prio/tasks' lists the tasks in this cgroup.
26 Each net_prio cgroup contains two files that are subsystem specific
28 net_prio.prioidx
29   This file is read-only, and is simply informative.  It contains a unique
30   integer value that the kernel uses as an internal representation of this
31   cgroup.
33 net_prio.ifpriomap
34   This file contains a map of the priorities assigned to traffic originating
35   from processes in this group and egressing the system on various interfaces.
36   It contains a list of tuples in the form <ifname priority>.  Contents of this
37   file can be modified by echoing a string into the file using the same tuple
38   format. For example::
40         echo "eth0 5" > /sys/fs/cgroups/net_prio/iscsi/net_prio.ifpriomap
42 This command would force any traffic originating from processes belonging to the
43 iscsi net_prio cgroup and egressing on interface eth0 to have the priority of
44 said traffic set to the value 5. The parent accounting group also has a
45 writeable 'net_prio.ifpriomap' file that can be used to set a system default
46 priority.
48 Priorities are set immediately prior to queueing a frame to the device
49 queueing discipline (qdisc) so priorities will be assigned prior to the hardware
50 queue selection being made.
52 One usage for the net_prio cgroup is with mqprio qdisc allowing application
53 traffic to be steered to hardware/driver based traffic classes. These mappings
54 can then be managed by administrators or other networking protocols such as
55 DCBX.
57 A new net_prio cgroup inherits the parent's configuration.