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.
| 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
////^^^^
//////////////////////////////////////////////////////////////////////
-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