Notes on QOS for videoconferencing

Quality of Service headers are added to network packet headers by many video applications and appliances to allow time-critical video and voice data to receive priority treatment by network switches and routers.
Whether they actually do receive such priority is another matter.

To make matters more complicated, in 1998 the Quality of Service field in the Internet Protocol header was redefined to be the "Differentiated Services Field" instead of the older "Type of Service" field, i.e. redefining the same header bits to have a different meaning. So, older equipment and software refers to TOS, while newer equipment refers to DiffServ, or offers a choice of both. Additionally, Ethernet frames may have a Class of Service field set in VLAN tagged frames.

Example: LifeSize Express

This offers default DiffServ and IntServ settings
ServiceDiffServIntServ
Video344
Audio465
Data465

Example: Polycom Viewstation FX

This offers a choice of DiffServ and IP Precedence. I'm not sure if there are any defaults.
ServiceValue
Video-
Audio-
Far End camera control-

Mapping

Avaya (was Nortel) define mappings between DSCP codepoints and IEEE 802.1p levels, as follows:
NameDSCPPCPpriority802.1p AcronymTraffic
Standard0 0x010 (low)BKBackground
Bronze10 0xa22EEExcellent Effort
Silver18 0x1233CACritical
Gold26 0x1a44VIVideo
Platinum34 0x2255VOVoice
Premium46 0x2e66ICControl
Network48 0x307 (high)7NCControl
Lifesize, Avaya (9,10) suggest the use of DSCP codepoint 46 (0b101110), expedited forwarding PHB for VoIP. I have used this for the audio channel, and either 26 or 34 for video. One reference suggests 26 for streaming video, and 34 for interactive.
Juniper (16) use codepoint 46 for voice and 34 for video in the "EZQoS" template.

Switches

Once DSCP fields have been set in a video appliance, network packets sent from it should be tagged. This can be seen in monitor tools such as tcpdump (with -v, as "tos"), or Wireshark (as Differentiated Services under Internet Protocol). However, these headers are often stripped off by network switches, and almost certainly on the Internet. On a Avaya (Nortel) switch, ports may be marked as "trusted" or "untrusted". If a port is untrusted, the headers are stripped off. For a packet to traverse the LAN with DSCP intact, the ports on each switch and uplink along the path must be "trusted". In Avaya CLI, the following exmple sets ports to trusted, with a new class called "video":
qos if-group name video class trusted
qos if-assign port 4/2,4/6,4/10,5/16,5/20 name video

Path Testing

In the absence of a suitable video appliance, the Linux tool "netcat" may be used to send packets with a particular TOS value. E.g.
nc -u -T 0x8 192.168.3.4 31224
may be used to send tagged UDP packets to a local node port 31224. The command nc -l -u 31224 may be used to listen, or the packets merely observed with a monitor tool.

Software Applications

In principle, it is the responsibility of a software client to set DSCP headers on audio/video packets using e.g. setsockopt(). However, many clients do not, and of those that do, some are still using TOS not DSCP (e.g. Linux 2.6 ip.h defines IPTOS_TOS). It may be possible to add or rewrite DSCP headers in the operating system. E.g. the Linux command
iptables -t mangle -A OUTPUT -p udp --sport 46014:46015 -j DSCP --set-dscp 0x2e
tags outgoing UDP packets on ports 46014,46015 with codepoint 46, for a particular application (EVO) which sends audio/video data on those ports.

ADAC

Newer Avaya/Nortel switches implement auto-discovery for compatible VoIP phones. With this feature enabled, DSCP and PoE may automatically be set when a phone is connected.

Links:

Glossary

PHBPer-Hop Forwarding Behaviour
DSCPDifferentiated services Code Point
VoIPVoice over Internet Protocol
IPInternet Protocol
QOSQuality of Service
TOSType of Service
CoSClass of Service
DiffServDifferentiated service
ECNExplicit Congestion Notification
RFCRequest for Comments (IETF published standard)
IETFInternet Engineering Task Force
ADACAuto-Discovery/Auto-Configuration (of IP phone)
LLDPLink Layer Detection Protocol
LLDP-MEDLink Layer Detection Protocol - Media Endpoint Discovery
PoEPower over Ethernet

March 2010 A.Daviel