diff options
author | oleg <oleg@FreeBSD.org> | 2007-11-06 23:01:42 +0000 |
---|---|---|
committer | oleg <oleg@FreeBSD.org> | 2007-11-06 23:01:42 +0000 |
commit | 7eef73ab3fe01565e1d4d1f9d1a070116ed41e13 (patch) | |
tree | 225c425cef7bdeda5b84e8391283c7c145b24798 /sys/net/if_ethersubr.c | |
parent | dd5717deccd91591695d9f8054e6c7d8dfadf358 (diff) | |
download | FreeBSD-src-7eef73ab3fe01565e1d4d1f9d1a070116ed41e13.zip FreeBSD-src-7eef73ab3fe01565e1d4d1f9d1a070116ed41e13.tar.gz |
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
Diffstat (limited to 'sys/net/if_ethersubr.c')
-rw-r--r-- | sys/net/if_ethersubr.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index e3d3620..07a3fb9 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -491,7 +491,7 @@ ether_ipfw_chk(struct mbuf **m0, struct ifnet *dst, */ *m0 = NULL ; } - ip_dn_io_ptr(m, dst ? DN_TO_ETH_OUT: DN_TO_ETH_DEMUX, &args); + ip_dn_io_ptr(&m, dst ? DN_TO_ETH_OUT: DN_TO_ETH_DEMUX, &args); return 0; } /* |