linux/Documentation/admin-guide/cgroup-v1/net_prio.rst
<<
>>
Prefs
   1=======================
   2Network priority cgroup
   3=======================
   4
   5The Network priority cgroup provides an interface to allow an administrator to
   6dynamically set the priority of network traffic generated by various
   7applications
   8
   9Nominally, an application would set the priority of its traffic via the
  10SO_PRIORITY socket option.  This however, is not always possible because:
  11
  121) The application may not have been coded to set this value
  132) The priority of application traffic is often a site-specific administrative
  14   decision rather than an application defined one.
  15
  16This cgroup allows an administrator to assign a process to a group which defines
  17the priority of egress traffic on a given interface. Network priority groups can
  18be created by first mounting the cgroup filesystem::
  19
  20        # mount -t cgroup -onet_prio none /sys/fs/cgroup/net_prio
  21
  22With the above step, the initial group acting as the parent accounting group
  23becomes visible at '/sys/fs/cgroup/net_prio'.  This group includes all tasks in
  24the system. '/sys/fs/cgroup/net_prio/tasks' lists the tasks in this cgroup.
  25
  26Each net_prio cgroup contains two files that are subsystem specific
  27
  28net_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
  33net_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
  42This command would force any traffic originating from processes belonging to the
  43iscsi net_prio cgroup and egressing on interface eth0 to have the priority of
  44said traffic set to the value 5. The parent accounting group also has a
  45writeable 'net_prio.ifpriomap' file that can be used to set a system default
  46priority.
  47
  48Priorities are set immediately prior to queueing a frame to the device
  49queueing discipline (qdisc) so priorities will be assigned prior to the hardware
  50queue selection being made.
  51
  52One usage for the net_prio cgroup is with mqprio qdisc allowing application
  53traffic to be steered to hardware/driver based traffic classes. These mappings
  54can then be managed by administrators or other networking protocols such as
  55DCBX.
  56
  57A new net_prio cgroup inherits the parent's configuration.
  58