Thus spake Melameth, Daniel D. ([EMAIL PROTECTED]) [13/05/06 20:06]:
: It would seem altq wants a bandwidth declaration.  However, from man 5
: pf.conf:
: 
:       If bandwidth is not specified, the interface bandwidth is used.

And OpenBSD complains bitterly when not defining the bandwidth on a pppoe
virtual interface:

    # pfctl -F queue -f /etc/pf.conf                                            
                                                                          
    altq cleared
    cannot determine interface bandwidth for pppoe0, specify an absolute
    bandwidth
    altq not defined on pppoe0
    /etc/pf.conf:73: errors in queue definition
    <more specific queue errors here>
    pfctl: Syntax error in config file: pf rules not loaded
    # 

: In any event, all my priq queues appear to simply be prioritized and the
: overall outbound bandwidth of all queues, collectively, never exceeds
: the altq bandwidth keyword--and this works well for me with the
: exception of the annoying PR 4312.

The way I'm reading 4312 is that priq is doing something it isn't supposed
to do -- bandwidth throttling.  No?

And yes, it looks like I've run into 4312 as well.  Annoying.

The answer to my previous question leads me to one followup:

My altq definition:

    altq on $ext_if priq bandwidth 700Kb queue { default, high, bittorrent, 
vpn, pubservices }
    queue default priority 3 priq(default)
    queue high priority 7
    queue bittorrent priority 0
    queue vpn priority 4
    queue pubservices priority 5

is subsequently applied to the interface as such:

    pass in quick on $ext_if inet proto tcp from any to $mailserver port 
$mailports flags S/SA modulate state queue (pubservices, high)
    pass in quick on $ext_if inet proto tcp from any to $webserver port 
$webports flags S/SA modulate state queue (default, high)
    pass in quick on $ext_if inet proto tcp from any to $btserver port $btports 
flags S/SA modulate state queue (bittorrent, default)
    pass in quick on $ext_if inet proto gre from any to $ian modulate state 
queue (vpn, high)

    pass out quick on $ext_if inet proto tcp from $external_addr to any flags 
S/SA modulate state queue (default, high)
    pass out quick on $ext_if inet proto { udp, icmp } from $external_addr to 
any modulate state queue (default)
    pass out quick on $ext_if inet proto gre from $external_addr to any 
modulate state queue (vpn, high)

As priq seems to be doing bandwidth throttling, does this not place an
artificial bandwidth restriction of 700Kb/s on my /inbound/ traffic as well
(which is something more in the order of a raw 3Mbps)?  Yes, I fully
recognize that by the time it gets here it's already traversed the pipe, but
if altq only allows the OS to process at 700Kbps, then the pipe is
effectively 700Kbps.

(FWIW, I've done a few bandwidth tests that conradict that directly -- i.e.
I transfer close to the practical maximum of 3Mbps, not the artificial
maximum of 700Kbps.  Hence my question.)

Reply via email to