cvs commit: src/sys/netgraph ng_device.c ng_device.h src/sys/modules/netgraph/device Makefile

Gleb Smirnoff glebius at FreeBSD.org
Mon Oct 18 13:13:58 PDT 2004


glebius     2004-10-18 20:13:57 UTC

  FreeBSD src repository

  Modified files:
    sys/netgraph         ng_device.c ng_device.h 
    sys/modules/netgraph/device Makefile 
  Log:
  Major overhaul.
  
   List of functional changes:
     - Make a single device per single node with a single hook.
       This gives us parrallelizm, which can't be achieved on a single
       node with many devices/hooks. This also gives us flexibility - we
       can play with a particular device node, not affecting others.
     - Remove read queue as it is. Use struct ifqueue instead. This change
       removes a lot of extra memcpy()ing, m_devget()ting and m_copymem()ming.
       In ng_device_receivedata() we enqueue an mbuf and wake readers.
       In ngdread() we take one mbuf from qeueue and uiomove() it to
       userspace. If no mbuf is present we optionally block. [1]
     - In ngdwrite() we create an mbuf from uio using m_uiotombuf().
       This is faster then uiomove() into buffer, and then m_copydata(),
       and this is much better than huge m_pullup().
     - Perform locking of device
     - Perform locking of connection list.
     - Clear out _rcvmsg method, since it does nothing good yet.
     - Implement NGM_DEVICE_GET_DEVNAME message.
     - #if 0 ioctl method, while nothing is done here yet.
     - Return immediately from ngdwrite() if uio_resid == 0.
  
   List of tidyness changes:
     - Introduce device2priv(), to remove cut'n'paste.
     - Use MALLOC/FREE, instead of malloc/free.
     - Use unit2minor().
     - Use UID_ROOT/GID_WHEEL instead of 0/0.
     - Define NGD_DEVICE_DEVNAME, use it.
     - Use more nice macros for debugging. [2]
     - Return Exxx, not -1.
  
   style(9) changes:
     - No "#endif" after short block.
     - Break long lines.
     - Remove extra spaces, add needed spaces.
  
  [1] Obtained from:      if_tun.c
  [2] Obtained from:      ng_pppoe.c
  Reviewed by:            marks
  Approved by:            julian (mentor)
  MFC after:              1 month
  
  Revision  Changes    Path
  1.2       +1 -1      src/sys/modules/netgraph/device/Makefile
  1.12      +270 -357  src/sys/netgraph/ng_device.c
  1.4       +9 -2      src/sys/netgraph/ng_device.h


More information about the cvs-src mailing list