1 ======================= 2 Network priority cgroup 3 ======================= 4 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 8 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: 11 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. 15 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:: 19 20 # mount -t cgroup -onet_prio none /sys/fs/cgroup/net_prio 21 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. 25 26 Each net_prio cgroup contains two files that are subsystem specific 27 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. 32 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:: 39 40 echo "eth0 5" > /sys/fs/cgroups/net_prio/iscsi/net_prio.ifpriomap 41 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. 47 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. 51 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. 56 57 A new net_prio cgroup inherits the parent's configuration.
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.