PF and DiffServ (End-to-End QoS)

224 views
Skip to first unread message

Rafael Ganascim

unread,
Jun 4, 2009, 11:40:58 AM6/4/09
to
Hi list,

Can the PF works with the DiffServ DSCP markings in the IP packets?

The idea is do the DSCP marking (classification) as close the source
traffic and when the packet through my network, the 'core' routers
only put the packets in the correct queue, based on DSCP value
(without the need of reclassification).

Can I with PF do this?

Stuart Henderson

unread,
Jun 4, 2009, 12:15:55 PM6/4/09
to

yes. "pass tos XXX", "match scrub (set-tos XXX)".

Rafael Ganascim

unread,
Jul 17, 2009, 9:15:15 AM7/17/09
to
Hi Stuart / List,

This option, 'tos XXX' can set TOS values only or can use (and match)
DSCP values too?

2009/6/4 Stuart Henderson <s...@spacehopper.org>:

Stuart Henderson

unread,
Jul 17, 2009, 9:40:37 AM7/17/09
to
On 2009/07/17 09:17, Rafael Ganascim wrote:
> Hi Stuart / List,
>
> This option, 'tos XXX' can set TOS values only or can use (and match)
> DSCP values too?

see the manual, pf.conf(5).

Rafael Ganascim

unread,
Jul 17, 2009, 9:45:59 AM7/17/09
to
Yes, then PF does not support DiffServ... because can set only TOS (not dscp).

Thanks.

2009/7/17 Stuart Henderson <s...@spacehopper.org>:

Stuart Henderson

unread,
Jul 17, 2009, 1:00:19 PM7/17/09
to
On 2009/07/17 10:22, Rafael Ganascim wrote:
>
> 2009/7/17 Stuart Henderson <s...@spacehopper.org>:
> > On 2009/07/17 09:17, Rafael Ganascim wrote:
> >> Hi Stuart / List,
> >>
> >> This option, 'tos XXX' can set TOS values only or can use (and match)
> >> DSCP values too?
> >
> > see the manual, pf.conf(5).
> >
> Yes, then PF does not support DiffServ... because can set only TOS (not dscp).


oh, I misread your question, I thought you were asking whether it can
only set values, or whether it can set _or_ match on the values.
whereas you were actually asking about DSCP vs TOS.

TOS and DSCP are alternative uses for the same octet of the TCP header.
DSCP is shifted 2 bits along, so you should be able to use tos/set-tos for
this if you shift the values accordingly.

e.g. for realtime; DSCP is 0x2e (46), shift it along two bits:

$ moo
0x2e << 2
0xb8 184
0x2e
0x2e 46 056 0b101110
0xb8
0xb8 184 0270 0b10111000

you get 0xb8 which is the value to use.

> Thanks.

Reply all
Reply to author
Forward
0 new messages