1*a71a9546SAutomerger Merge WorkerThis module sets the Type of Service field in the IPv4 header (including the 2*a71a9546SAutomerger Merge Worker"precedence" bits) or the Priority field in the IPv6 header. Note that TOS 3*a71a9546SAutomerger Merge Workershares the same bits as DSCP and ECN. The TOS target is only valid in the 4*a71a9546SAutomerger Merge Worker\fBmangle\fP table. 5*a71a9546SAutomerger Merge Worker.TP 6*a71a9546SAutomerger Merge Worker\fB\-\-set\-tos\fP \fIvalue\fP[\fB/\fP\fImask\fP] 7*a71a9546SAutomerger Merge WorkerZeroes out the bits given by \fImask\fP (see NOTE below) and XORs \fIvalue\fP 8*a71a9546SAutomerger Merge Workerinto the TOS/Priority field. If \fImask\fP is omitted, 0xFF is assumed. 9*a71a9546SAutomerger Merge Worker.TP 10*a71a9546SAutomerger Merge Worker\fB\-\-set\-tos\fP \fIsymbol\fP 11*a71a9546SAutomerger Merge WorkerYou can specify a symbolic name when using the TOS target for IPv4. It implies 12*a71a9546SAutomerger Merge Workera mask of 0xFF (see NOTE below). The list of recognized TOS names can be 13*a71a9546SAutomerger Merge Workerobtained by calling iptables with \fB\-j TOS \-h\fP. 14*a71a9546SAutomerger Merge Worker.PP 15*a71a9546SAutomerger Merge WorkerThe following mnemonics are available: 16*a71a9546SAutomerger Merge Worker.TP 17*a71a9546SAutomerger Merge Worker\fB\-\-and\-tos\fP \fIbits\fP 18*a71a9546SAutomerger Merge WorkerBinary AND the TOS value with \fIbits\fP. (Mnemonic for \fB\-\-set\-tos 19*a71a9546SAutomerger Merge Worker0/\fP\fIinvbits\fP, where \fIinvbits\fP is the binary negation of \fIbits\fP. 20*a71a9546SAutomerger Merge WorkerSee NOTE below.) 21*a71a9546SAutomerger Merge Worker.TP 22*a71a9546SAutomerger Merge Worker\fB\-\-or\-tos\fP \fIbits\fP 23*a71a9546SAutomerger Merge WorkerBinary OR the TOS value with \fIbits\fP. (Mnemonic for \fB\-\-set\-tos\fP 24*a71a9546SAutomerger Merge Worker\fIbits\fP\fB/\fP\fIbits\fP. See NOTE below.) 25*a71a9546SAutomerger Merge Worker.TP 26*a71a9546SAutomerger Merge Worker\fB\-\-xor\-tos\fP \fIbits\fP 27*a71a9546SAutomerger Merge WorkerBinary XOR the TOS value with \fIbits\fP. (Mnemonic for \fB\-\-set\-tos\fP 28*a71a9546SAutomerger Merge Worker\fIbits\fP\fB/0\fP. See NOTE below.) 29*a71a9546SAutomerger Merge Worker.PP 30*a71a9546SAutomerger Merge WorkerNOTE: In Linux kernels up to and including 2.6.38, with the exception of 31*a71a9546SAutomerger Merge Workerlongterm releases 2.6.32 (>=.42), 2.6.33 (>=.15), and 2.6.35 (>=.14), there is 32*a71a9546SAutomerger Merge Workera bug whereby IPv6 TOS mangling does not behave as documented and differs from 33*a71a9546SAutomerger Merge Workerthe IPv4 version. The TOS mask indicates the bits one wants to zero out, so it 34*a71a9546SAutomerger Merge Workerneeds to be inverted before applying it to the original TOS field. However, the 35*a71a9546SAutomerger Merge Workeraformentioned kernels forgo the inversion which breaks \-\-set\-tos and its 36*a71a9546SAutomerger Merge Workermnemonics. 37