=======================
Network priority cgroup
=======================

The Network priority cgroup provides an interface to allow an administrator to
dynamically set the priority of network traffic generated by various
applications

Nominally, an application would set the priority of its traffic via the
SO_PRIORITY socket option.  This however, is not always possible because:

1) The application may not have been coded to set this value
2) The priority of application traffic is often a site-specific administrative
   decision rather than an application defined one.

This cgroup allows an administrator to assign a process to a group which defines
the priority of egress traffic on a given interface. Network priority groups can
be created by first mounting the cgroup filesystem::

	# mount -t cgroup -onet_prio none /sys/fs/cgroup/net_prio

With the above step, the initial group acting as the parent accounting group
becomes visible at '/sys/fs/cgroup/net_prio'.  This group includes all tasks in
the system. '/sys/fs/cgroup/net_prio/tasks' lists the tasks in this cgroup.

Each net_prio cgroup contains two files that are subsystem specific

net_prio.prioidx
  This file is read-only, and is simply informative.  It contains a unique
  integer value that the kernel uses as an internal representation of this
  cgroup.

net_prio.ifpriomap
  This file contains a map of the priorities assigned to traffic originating
  from processes in this group and egressing the system on various interfaces.
  It contains a list of tuples in the form <ifname priority>.  Contents of this
  file can be modified by echoing a string into the file using the same tuple
  format. For example::

	echo "eth0 5" > /sys/fs/cgroups/net_prio/iscsi/net_prio.ifpriomap

This command would force any traffic originating from processes belonging to the
iscsi net_prio cgroup and egressing on interface eth0 to have the priority of
said traffic set to the value 5. The parent accounting group also has a
writeable 'net_prio.ifpriomap' file that can be used to set a system default
priority.

Priorities are set immediately prior to queueing a frame to the device
queueing discipline (qdisc) so priorities will be assigned prior to the hardware
queue selection being made.

One usage for the net_prio cgroup is with mqprio qdisc allowing application
traffic to be steered to hardware/driver based traffic classes. These mappings
can then be managed by administrators or other networking protocols such as
DCBX.

A new net_prio cgroup inherits the parent's configuration.
