AW: why ALTQ must be supported by interface drivers?
Spenst, Aleksej
Aleksej.Spenst at harman.com
Thu Dec 23 09:03:19 UTC 2010
Hi Ricky,
Thanks for your explanations.
>If, in-fact, a driver happens to
>implement another queue underneath the AltQ queue (sometimes
>happens in sophisticated hardware) then this 'lower' queue
>will probably be a FIFO queue and may wind up destroying the
>value of AltQ.
If the driver supports only one FIFO queue, I don't think it can destroy ALTQ functionality, since prioritization of traffic is done at layer 3 and this FIFO queue at layer 2 can be used to send packets in the order according to classification performed at layer 3. However, if the driver supports its own queuing mechanism I see that there can be problems. I don't think that pf has to be aware of layer 2 queuing mechanism to make any kind of mapping between two queuing systems at layers 2 and 3. So, I suppose, either pf disables the queuing mechanism at layer 2 or pf makes nothing (but in this case one wouldn't need the driver to support pf). So, I'm still not sure why pf needs the drivers to support ALTQ.
>In conclusion, AltQ enforcement must be implemented at
>the lowest layer, and AltQ classification should maintain
>ability to examine low level headers even though it is much
>more common to examine layer3 /layer4 headers.
Ok, this would answer my question, but what kind of layer 2 classification is supported by pf? I don't remember any pf rules that can set layer 2 tags or filter all packets based on layer 2 information.
Thanks,
Aleksej.
>-----Ursprüngliche Nachricht-----
>Von: Ricky Charlet [mailto:RCharlet at adaranet.com]
>Gesendet: Mittwoch, 22. Dezember 2010 17:55
>An: Spenst, Aleksej; 'freebsd-pf at freebsd.org'
>Betreff: RE: why ALTQ must be supported by interface drivers?
>
>Hi Aleksej,
>
> I happen to have recently been 'playing' with altq and
>trying to (successfully eventually) get to work well in the
>100Mb utilization range.
>
> So you need to think of it like this, AltQ is
>replacing a current queueing system... that of the driver.
>Each driver has a simple FIFO queue. AltQ is just a more
>sophisticated queue for the driver to use when sending out
>packets (enforcement). If, in-fact, a driver happens to
>implement another queue underneath the AltQ queue (sometimes
>happens in sophisticated hardware) then this 'lower' queue
>will probably be a FIFO queue and may wind up destroying the
>value of AltQ.
>
> Now a piece of that added sophistication is
>classification. Site administrators set policy on which
>packets are more or less preferential to drop during
>congestion. AltQ's classification is implemented via the
>packet-filters.
>
> A very common use case for classification is to
>distinguish traffic based on layer3 and layer4 (IP and
>TCP/UDP/ICMP/SCTP...) headers. However this is not the only
>use case and classification based on layer2 headers should
>continue to be supported for those few sites that wish it.
>
> In conclusion, AltQ enforcement must be implemented at
>the lowest layer, and AltQ classification should maintain
>ability to examine low level headers even though it is much
>more common to examine layer3 /layer4 headers.
>
>
> So much for philosophy. About compiling, yes you
>understood quite correctly. I have found these web sites to
>have helpful AltQ info (in no particular order):
>
>http://www.sonycsl.co.jp/~kjc/software/altq-new-design.txt
>http://www.sonycsl.co.jp/person/kjc/software.html#ALTQ
>http://www.sonycsl.co.jp/person/kjc/software/TIPS.txt
>http://www.openbsd.org/faq/pf/index.html
>http://openbsd.org/faq/pf/queueing.html
>http://loquefaltaba.com/documentacion/pf/en/altqintro.html
>http://system-tribudi.blogspot.com/2006/08/pf-hfsc-part-i.html
>http://www.probsd.net/pf/index.php/Hednod%27s_HFSC_explained
>http://www.icir.org/floyd/cbq.html
>
>
>
>---
>Ricky Charlet
>
>
>
>
>
>> -----Original Message-----
>> From: owner-freebsd-pf at freebsd.org [mailto:owner-freebsd-
>> pf at freebsd.org] On Behalf Of Spenst, Aleksej
>> Sent: Wednesday, December 22, 2010 4:00 AM
>> To: 'freebsd-pf at freebsd.org'
>> Subject: why ALTQ must be supported by interface drivers?
>>
>> Hi All,
>>
>> at what network level is ALTQ (QoS) implemented? At the IP
>level or at
>> the driver level?
>>
>> I would think that all queuing functionality is probabliy working at
>> the IP level and should not depend on underlying interfaces. Is that
>> correct? If this is true, I don't understand why ALTQ must be
>> supported by interface drivers? If I understand it
>correctly: (1) the
>> driver has to support ALTQ. (2) the driver has to be compiled as
>> ALTQ-aware with some special flags.
>>
>> Thanks,
>> Aleksej.
>>
>>
>>
>>
>> _______________________________________________
>> freebsd-pf at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-pf
>> To unsubscribe, send any mail to "freebsd-pf-unsubscribe at freebsd.org"
>
More information about the freebsd-pf
mailing list