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