Subject: PF+ALTQ+pppoe(4), related to kern/30393?
To: None <tech-net@netbsd.org>
From: Nino Dehne <ndehne@gmail.com>
List: tech-net
Date: 06/17/2005 07:48:36
Hi there,

seeing PR kern/30393 reminded me that I had unsuccessfully toyed around
with PF+ALTQ and Peter Postma's altq.diff for netbsd-3 earlier.

I thought that maybe the patch provided in the PR would magically fix
this for pppoe as well (my kernel knowledge is very limited). However,
after ident(1)ing my kernel image I realized that ppp_tty.c isn't used
at all with pseudo-device pppoe which is why I post this.

I use the attached ruleset, some (hopefully irrelevant) parts snipped.
<reserved> contains RFC1918 addresses and 0/8, 240/4. The relevant
ALTQ rules were taken from http://www.benzedrine.cx/ackpri.html

Upon loading this ruleset, traffic stops. Even ICMP originating from the
box itself gives "ping: sendto: No buffer space available". I'm saying
"even" because the relevant pass rules only reference TCP traffic.

Is this in fact related to the PR?

TIA

ND


nat_int="{ (vlan1:network), (vlan253:network) }"
ext_if="pppoe0"

# RFC1918, 0/8, 240/4
table <reserved> file "/etc/pf/reserved"

set block-policy drop
set state-policy if-bound

scrub in all
scrub out all random-id max-mss 1452

altq on $ext_if priq bandwidth 360Kb queue { q_pri, q_def }
queue q_pri priority 7
queue q_def priority 1 priq(default)

no nat on $ext_if inet from any to <reserved>
no rdr on $ext_if inet from <reserved> to any

nat on $ext_if inet from $nat_int to any -> ($ext_if)

[some "rdr pass on $ext_if " rules]

block log quick on $ext_if inet from <reserved> to any
block log quick on $ext_if inet from any to <reserved>

pass in  on $ext_if inet proto tcp from any to $ext_if \
         flags S/SA keep state queue (q_def, q_pri)
pass out on $ext_if inet proto tcp from $ext_if to any \
         flags S/SA keep state queue (q_def, q_pri)