Reformulate the syslink_msg structure a bit. Instead of trying to create
authorMatthew Dillon <dillon@dragonflybsd.org>
Sat, 24 Mar 2007 19:11:15 +0000 (19:11 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Sat, 24 Mar 2007 19:11:15 +0000 (19:11 +0000)
commit4a83d324fa7ce9048350fa02a7c84194e4384315
treeb3740be616b3eae96663a41f3fe2e79fad993bc5
parent9454b0f82d62d86e3cf9a25d5c7b338710bc24c7
Reformulate the syslink_msg structure a bit.  Instead of trying to create
unique sessions with a combination of logical and transaction ids, which
when all said and done is not very robust and not easy to index,
create a 'session' abstraction which can be used as a rendezvous for
a transaction as well as recorded by the route node for tracking and
caching purposes.

The 64 bit session ids are cluster-wide unique numbers, unique for all-time
(which means 'for long enough'... i.e. at least a year), which identify
abstracted connections between entities... almost the equivalent of
an 'open'.  The universal uniqueness of the number combined with the
logical end-point tracking greatly improves robustness in the face of an
ever-changing dynamic cluster mesh and guarentees that a syslink message
will never be misinterpreted.  Stale sessions can now be trivially
detected and acted upon.

This also allows us to reformulate the sysids we store in the message
structure into something that is far more suitable for tracking and routing
purposes without having to bloat the structure (three 64 bit ids in the
structure is plenty already!).
sys/kern/kern_syslink.c
sys/sys/syslink_msg.h