RPC 8: OST CONNECT - Client connection to an OST ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [[ost-connect-rpc]] When a client initiates a connection to a specific target on an OSS, it does so via an OST_CONNECT RPC ('pb_opc' = 8). .OST_CONNECT Request Packet Structure image::ost-connect-request.png["OST_CONNECT Request Packet Structure",height=50] ////////////////////////////////////////////////////////////////////// The ost-connect-request.png diagram resembles this text art: OST_CONNECT: --request-------------------------------------------------- | ptlrpc_body | target_uuid | client_uuid | lustre_handle | ----------------------------------------------------------- | obd_connect_data | -------------------- ////////////////////////////////////////////////////////////////////// 'ptlrpc_body':: RPC descriptor. See <>. In a connect message the 'ptlrpc_body' field 'pb_handle', which is a <>, is 0. That 'lustre_handle' is distinct from the one mentioned below. 'target_uuid':: A string identifying the target. See <>. The client learns the UUID strings for the targets via an interaction with the MGS. 'client_uuid':: A string with the client's own UUID. This is also a <>. The target sets the 'exp_client_uuid' field of its 'eport' structure to this value. 'lustre_handle':: See <>. This 'lustre_handle' is distinct from the 'pb_handle' field in the 'ptlrpc_body'. This 'lustre_handle' provied a unique 'cookie' to identify this client for this connection attempt. After a disconnect, a subsequent connect RPC will have a different value. The target preserves this cookie in the 'exp_handle' field of its 'obd_export' structure for this client. In that way it can distinguish between a resent connection request and an entirely new connection request. 'obd_connect_data':: See <>. .OST_CONNECT Reply Packet Structure image::ost-connect-reply.png["OST_CONNECT Reply Packet Structure",height=50] ////////////////////////////////////////////////////////////////////// The ost-connect-reply.png diagram resembles this text art: OST_CONNECT: --reply--------------------------- | ptlrpc_body | obd_connect_data | ---------------------------------- ////////////////////////////////////////////////////////////////////// 'ptlrpc_body':: RPC descriptor. See <>. The 'pb_handle' field has the value, $C_t$, uniquely identifying that target. The value $C_t$ is preserved in the 'imp_remote_handle' field of the client's import structure for this target. See <>. 'obd_connect_data':: See <>.