ALTQ support for usb NICs?

Greg Hennessy Greg.Hennessy at nviz.net
Wed Jan 31 17:12:07 UTC 2007


> Can you by any chance run the simple benchmark described at
> http://people.freebsd.org/~mlaier/ALTQ_driver/ ?  It's good if hfsc
> works, but the main goal is to make sure that we do not break anything
> for non-ALTQ users.
>

Here's the meaty goodness. 
Test system. 
P4 2.8 downclocked to 2.1 ghz 512 meg. 
Intel i865 chipset

gw2:~ # ifconfig aue0
aue0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
        inet 192.168.1.1 netmask 0xffffff00 broadcast 192.168.1.255
        ether 00:04:e2:4f:04:85
        media: Ethernet autoselect (10baseT/UTP <full-duplex>)
        status: active

gw2:~ # dmesg | grep -i aue
aue0: <SMC, Inc USB Ethernet Adapter, class 0/0, rev 1.10/1.01, addr 2> on
uhub3
aue0: SMC, Inc USB Ethernet Adapter, rev 1.10/1.01, addr 2
miibus1: <MII bus> on aue0
aue0: Ethernet address: 00:04:e2:4f:04:85

gw2:~ # dmesg | grep -i uhub3
uhub3: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb3
uhub3: 2 ports with 2 removable, self powered. 

Clean current build without Max's meaty ALTQ goodness for if_aue.c

gw2:~ # uname -a
FreeBSD gw2.local.net 7.0-CURRENT FreeBSD 7.0-CURRENT #168: Wed Jan 31
12:50:12 GMT 2007     root at gw2.local.net:/usr/obj/usr/src/sys/GH  i386 


Pf disabled. 
gw2:~ # /usr/local/bin/netperf -l 60 -H 192.168.1.101 -t TCP_STREAM -i 10,2
-I 99,3 -- -m 1 -s 32768 -S 32768
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.101
(192.168.1.101) port 0 AF_INET : +/-1.5% @ 99% conf.
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

 32768  32768      1    60.03       4.27
gw2:~

Pf enabled
gw2:~ # grep -i aue0 /etc/pf.conf
set skip on aue0
gw2:~ # /usr/local/bin/netperf -l 60 -H 192.168.1.101 -t TCP_STREAM -i 10,2
-I 99,3 -- -m 1 -s 32768 -S 32768
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.101
(192.168.1.101) port 0 AF_INET : +/-1.5% @ 99% conf.
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

 32768  32768      1    60.04       4.24
gw2:~ #

Reboot with yesterdays aue altq enabled kernel.....

gw2:~ # uname -a
FreeBSD gw2.local.net 7.0-CURRENT FreeBSD 7.0-CURRENT #167: Tue Jan 30
15:57:33 GMT 2007     root at gw2.local.net:/usr/obj/usr/src/sys/GH  i386
gw2:~ #

PF enabled running my normal policy with set skip on aue0. 

gw2:~ # /usr/local/bin/netperf -l 60 -H 192.168.1.101 -t TCP_STREAM -i 10,2
-I 99,3 -- -m 1 -s 32768 -S 32768
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.101
(192.168.1.101) port 0 AF_INET : +/-1.5% @ 99% conf.
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

 32768  32768      1    60.36       4.25

PF enabled running altq.pf.test on aue0. Bandwidth limited to 10 megabits. 

gw2:~ # cat altq.pf.test | grep -v \^#


test_if=aue0
fullspeed=192.168.1.101
limited=192.168.1.102


altq on $test_if bandwidth 10Mb cbq queue { dflt }
        queue dflt bandwidth 100% cbq(default) { small }
        queue small bandwidth  5% cbq

pass out on $test_if from ($test_if) to $fullspeed queue dflt
pass out on $test_if from ($test_if) to $limited queue small


Fast Q: 

gw2:~ # /usr/local/bin/netperf -l 60 -H 192.168.1.101 -t TCP_STREAM -i 10,2
-I 99,3 -- -m 1 -s 32768 -S 32768
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.101
(192.168.1.101) port 0 AF_INET : +/-1.5% @ 99% conf.
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

 32768  32768      1    60.32       4.25
gw2:~ #

Slow Q:

gw2:~ # /usr/local/bin/netperf -l 60 -H 192.168.1.102 -t TCP_STREAM -i 10,2
-I 99,3 -- -m 1 -s 32768 -S 32768
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.1.101
(192.168.1.101) port 0 AF_INET : +/-1.5% @ 99% conf.
Recv   Send    Send
Socket Socket  Message  Elapsed
Size   Size    Size     Time     Throughput
bytes  bytes   bytes    secs.    10^6bits/sec

 32768  32768      1    60.59       0.48
gw2:~ #



Greg












More information about the freebsd-pf mailing list