Merged revisions 77424,77429 via svnmerge from
[asterisk/asterisk.git] / doc / tex / qos.tex
1 \subsubsection{Introduction}
2
3 Asterisk can set the Type of Service (TOS) byte on outgoing IP packets
4 for various protocols.  The TOS byte is used by the network to provide
5 some level of Quality of Service (QoS) even if the network is
6 congested with other traffic. 
7
8 Also asterisk running on Linux can set 802.1p CoS marks in VLAN packets 
9 for all used VoIP protocols. It is useful when you are working in switched 
10 enviropment. For maping skb-$>$priority and VLAN CoS mark you need to use 
11 command "vconfig set\_egress\_map [vlan-device] [skb-priority] [vlan-qos]".
12
13 \subsubsection{SIP}
14
15 In sip.conf, there are three parameters that control the TOS settings:
16 "tos\_sip", "tos\_audio" and "tos\_video". tos\_sip controls what TOS SIP 
17 call signalling packets are set to.  tos\_audio controls what TOS RTP audio
18 packets are set to.  tos\_video controls what TOS RTP video packets are
19 set to.  
20
21 There are four parameters to control 802.1p CoS: "cos\_sip", "cos\_audio", 
22 "cos\_video" and "cos\_text". It's behavior the same as writen above.
23
24 There is a "tos" parameter that is supported for backwards
25 compatibility.  The tos parameter should be avoided in sip.conf
26 because it sets all three tos settings in sip.conf to the same value.
27
28 \subsubsection{IAX2}
29 In iax.conf, there is a "tos" parameter that sets the global default TOS
30 for IAX packets generated by chan\_iax2.  Since IAX connections combine
31 signalling, audio, and video into one UDP stream, it is not possible
32 to set the TOS separately for the different types of traffic.
33
34 In iaxprov.conf, there is a "tos" parameter that tells the IAXy what TOS
35 to set on packets it generates.  As with the parameter in iax.conf,
36 IAX packets generated by an IAXy cannot have different TOS settings
37 based upon the type of packet.  However different IAXy devices can
38 have different TOS settings.
39
40 \subsubsection{H.323}
41 Also support TOS and CoS. 
42
43 \subsubsection{MGCP}
44 Also support TOS and CoS.
45
46 \subsubsection{IP TOS values}
47
48 The allowable values for any of the tos* parameters are:
49 CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7, AF11, AF12, AF13,
50 AF21, AF22, AF23, AF31, AF32, AF33, AF41, AF42, AF43 and
51 ef (expedited forwarding),
52
53 The tos* parameters also take numeric values.
54
55 The lowdelay, throughput, reliability, mincost, and none values are
56 deprecated because they set the IP TOS using the outdated "IP
57 precedence" model as defined in RFC 791 and RFC 1349. They still
58 work in this version of Asterisk, but will be removed in future releases.
59
60 \subsubsection{802.1p CoS values}
61
62 As 802.1p uses 3 bites from VLAN header, there are parameter can take 
63 integer values from 0 to 7.
64
65
66 \begin{verbatim}
67 +==============+============+==============+
68 |Configuration | Parameter  | Recommended  |
69 |File          | Setting    |              |
70 +--------------+------------+--------------+
71 |              | tos_sip    | cs3          |
72 |              | tos_audio  | ef           |
73 |              | tos_video  | af41         |
74 | sip.conf     | tos_text   | af41         |
75 |              | cos_sip    | 4            |
76 |              | cos_audio  | 6            |
77 |              | cos_video  | 5            |
78 |              | cos_text   | 0            |
79 +--------------+------------+--------------+
80 | iax.conf     | tos        | ef           |
81 |              | cos        | 6            |
82 +--------------+------------+--------------+
83 | iaxprov.conf | tos        | ef           |
84 +--------------+------------+--------------+
85 | mgcp.conf    | tos        | ef           |
86 |              | cos        | 6            |
87 +--------------+------------+--------------+
88 | h323.conf    | tos        | ef           |
89 |              | cos        | 6            |
90 +==============+============+==============+
91 \end{verbatim}
92
93 \subsubsection{Reference}
94
95 IEEE 802.1Q Standard:
96 \url{http://standards.ieee.org/getieee802/download/802.1Q-1998.pdf}
97 Related protocols: IEEE 802.3, 802.2, 802.1D, 802.1Q
98
99 RFC 2474 - "Definition of the Differentiated Services Field
100 (DS field) in the IPv4 and IPv6 Headers", Nichols, K., et al,
101 December 1998.
102
103 IANA Assignments, DSCP registry
104 Differentiated Services Field Codepoints
105 \url{http://www.iana.org/assignments/dscp-registry}
106
107 To get the most out of setting the TOS on packets generated by
108 Asterisk, you will need to ensure that your network handles packets
109 with a TOS properly.  For Cisco devices, see the previously mentioned
110 "Enterprise QoS Solution Reference Network Design Guide".  For Linux
111 systems see the "Linux Advanced Routing \& Traffic Control HOWTO" at 
112 \url{http://www.lartc.org/}.
113
114 For more information on Quality of
115 Service for VoIP networks see the "Enterprise QoS Solution Reference
116 Network Design Guide" version 3.3 from Cisco at:
117 \url{http://www.cisco.com/application/pdf/en/us/guest/netsol/ns432/c649/ccmigration\_09186a008049b062.pdf}
118