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