git: hammer2 hammer2 - Flesh out span code, API cleanups

Matthew Dillon dillon at crater.dragonflybsd.org
Sat Aug 4 15:21:19 PDT 2012


commit 8c280d5da131165da872c3aadf5397c4a3b3cc6b
Author: Matthew Dillon <dillon at apollo.backplane.com>
Date:   Sat Aug 4 15:11:40 2012 -0700

    hammer2 - Flesh out span code, API cleanups
    
    * Cleanup the transactional APIs and add a few functions to help with
      simple (error code only) message replies.
    
    * Better message protocol layering for both the kernel and userland code.
    
    * Kernel now opens a LNK_CONN transaction which will enable the SPAN
      protocol on the link and also serve to install a PFS filter (which is
      not yet implemented).
    
      Upon success the kernel then initiates the SPAN.
    
      Basically for the kernel:
    
    	send LNK_CONN
    	wait for streaming reply (transaction remains open on both sides)
    	send LNK_SPAN
    
    	TODO: Receive/track LNK_SPANs, each representing a virtual circuit.
    
    	TODO: Track LNK_SPANs that match our PFS.
    
    	TODO: Issue higher level protocol transaction messages over these
    	      circuits based on VNOPS, caching, mirroring, etc.
    	      (transactional failures can occur when the LNK_SPAN state
    	      changes, forcing a retry, etc).
    
    * Userland now accepts the LNK_CONN and uses the open transaction to
      install tracking structures for those connections participating in
      the SPAN protocol.
    
    * Userland now installs tracking structures for received SPAN messages.
    
    * Start fleshing out the userland side of the SPAN relay/transmit code.
      This will involve yet more structures to track which SPANs are being
      relayed over each connection, so changes can be propagated (not yet
      implemented).
    
      For userland the TODO is very large so no point iterating it here.
    
    * Kernel now accepts DBG_SHELL replies (basically debug output messages)
      and will kprintf() them.  DBG_SHELL commands not yet accepted by the
      kernel.

Summary of changes:
 sbin/hammer2/Makefile              |    3 +-
 sbin/hammer2/cmd_debug.c           |   40 ++-
 sbin/hammer2/cmd_pfs.c             |    6 +-
 sbin/hammer2/cmd_service.c         |   90 ++----
 sbin/hammer2/hammer2.h             |   42 ++-
 sbin/hammer2/msg.c                 |  658 +++++++++++++++++++-----------------
 sbin/hammer2/msg_lnk.c             |  532 +++++++++++++++++++++++++++++
 sbin/hammer2/network.h             |   38 ++-
 sbin/hammer2/subs.c                |   41 ++-
 sbin/newfs_hammer2/newfs_hammer2.c |    4 +-
 sys/vfs/hammer2/TODO               |    6 +
 sys/vfs/hammer2/hammer2.h          |   26 +-
 sys/vfs/hammer2/hammer2_disk.h     |   11 +-
 sys/vfs/hammer2/hammer2_inode.c    |    4 +-
 sys/vfs/hammer2/hammer2_ioctl.c    |    4 +-
 sys/vfs/hammer2/hammer2_ioctl.h    |    6 +-
 sys/vfs/hammer2/hammer2_msg.c      |  200 ++++++++----
 sys/vfs/hammer2/hammer2_msgops.c   |   23 ++
 sys/vfs/hammer2/hammer2_network.h  |  280 +++++++++-------
 sys/vfs/hammer2/hammer2_vfsops.c   |  129 ++++++--
 20 files changed, 1504 insertions(+), 639 deletions(-)
 create mode 100644 sbin/hammer2/msg_lnk.c

http://gitweb.dragonflybsd.org/dragonfly.git/commitdiff/8c280d5da131165da872c3aadf5397c4a3b3cc6b


-- 
DragonFly BSD source repository





More information about the Commits mailing list