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