cvs commit: src/sys/netinet ip_dummynet.c ip_dummynet.h
ip_fw_pfil.c src/sys/net if_bridge.c if_ethersubr.c
Oleg Bulyzhin
oleg at FreeBSD.org
Tue Nov 6 15:01:43 PST 2007
oleg 2007-11-06 23:01:42 UTC
FreeBSD src repository
Modified files:
sys/netinet ip_dummynet.c ip_dummynet.h ip_fw_pfil.c
sys/net if_bridge.c if_ethersubr.c
Log:
1) dummynet_io() declaration has changed.
2) Alter packet flow inside dummynet: allow certain packets to bypass
dummynet scheduler. Benefits are:
- lower latency: if packet flow does not exceed pipe bandwidth, packets
will not be (up to tick) delayed (due to dummynet's scheduler granularity).
- lower overhead: if packet avoids dummynet scheduler it shouldn't reenter ip
stack later. Such packets can be fastforwarded.
- recursion (which can lead to kernel stack exhaution) eliminated. This fix
long existed panic, which can be triggered this way:
kldload dummynet
sysctl net.inet.ip.fw.one_pass=0
ipfw pipe 1 config bw 0
for i in `jot 30`; do ipfw add 1 pipe 1 icmp from any to any; done
ping -c 1 localhost
3) Three new sysctl nodes are added:
net.inet.ip.dummynet.io_pkt - packets passed to dummynet
net.inet.ip.dummynet.io_pkt_fast - packets avoided dummynet scheduler
net.inet.ip.dummynet.io_pkt_drop - packets dropped by dummynet
P.S. Above comments are true only for layer 3 packets. Layer 2 packet flow
is not changed yet.
MFC after: 3 month
Revision Changes Path
1.107 +1 -1 src/sys/net/if_bridge.c
1.240 +1 -1 src/sys/net/if_ethersubr.c
1.112 +37 -7 src/sys/netinet/ip_dummynet.c
1.41 +1 -1 src/sys/netinet/ip_dummynet.h
1.26 +28 -26 src/sys/netinet/ip_fw_pfil.c
More information about the cvs-src
mailing list