Whamcloud - gitweb
LUDOC-297 protocol: Update protocol document
[doc/protocol.git] / struct_obd_import.txt
similarity index 92%
rename from import.txt
rename to struct_obd_import.txt
index aaa916e..2ef6939 100644 (file)
@@ -1,6 +1,6 @@
 Import
 ^^^^^^
-[[obd-import]]
+[[struct-obd-import]]
 
 The 'obd_import' structure holds the connection state for between each
 client and each target it is connected to.
@@ -207,6 +207,18 @@ enumerated set of values:
 | LUSTRE_IMP_EVICTED      | 10
 |=====
 
+When the import is itself initialized it is set to
+LUSTRE_IMP_NEW. When a client initiates a *_CONNECT RPC it sets the
+state to LUSTRE_IMP_CONNECTING. Similarly, it sets the state to
+LUSTRE_IMP_DISCON as it initiates a *_DISCONNECT RPC. Reciving the
+reply to the *DISCONNECT RPC will set the state to
+LUSTRE_IMP_CLOSED. When a (successful) *_CONNECT RPC reply arrives the
+state is set to LUSTRE_IMP_FULL. If a target signals a problem or a
+recovery condition then the state will proceed through the replay and
+recover states. When the target signals that the client connection is
+invalid for some reaon the state will be set to
+LUSTRE_IMP_EVICTED. See <<eviction>> and <<recovery>>.
+
 //////////////////////////////////////////////////////////////////////
 ////vvvv
 fixme: what are the transitions between these states? The
@@ -247,10 +259,13 @@ since the committed transactions are now maintained on a separate list.
 ////^^^^
 //////////////////////////////////////////////////////////////////////
 
-The 'imp_remote_handle' is the handle sent by the target in a
-connection reply message to uniquely identify the export for this
-target and client that is maintained on the server. This is the handle
-used in all subsequent messages to the target.
+The 'imp_remote_handle' is the 'lustre_handle' sent by the target in a
+connection reply message (See <<struct-ptlrpc-body, specifically its
+'pb_handle' field, and <<ost-connect-rpc>> for OST_CONNECT). It
+uniquely identifies the target that this import represents. The client
+will set its 'pb_handle' value to this 'imp_remote_handle' in the
+descriptor for all subsequent RPC requests to this target (excluding
+other connect requests, of course).
 
 //////////////////////////////////////////////////////////////////////
 ////vvvv