1.3.1.1.3 Shutdown Phase

This shutdown phase is used to terminate the channel and tunnel (2). The phase consists of three operations:

  • Channel shutdown: Channel shutdown can be performed only after a channel has been successfully created. A channel shutdown closes the RPC out pipe created in the data transfer phase and prevents any further use of the channel. The closing of a channel can be initiated either by the RDG client or the RDG server. To initiate channel shutdown, the client uses the TsProxyCloseChannel (section 3.2.6.3.1) method. The RDG server initiates channel shutdown by sending an RPC response protocol data unit (PDU) with the PFC_LAST_FRAG bit set in the pfc_flags field as the final response PDU of the TsProxySetupReceivePipe (section 3.2.6.2.2) method. For more information about an RPC response PDU, the pfc_flags field, and the PFC_LAST_FRAG bit, see [C706] sections 12.6.2 and 12.6.4.10.

  • Cancel pending messages: If the RDG client has pending administrative message requests on the RDG server, the RDG client cancels these requests by calling the TsProxyMakeTunnel (section 3.2.6.3.2) call with TSG_TUNNEL_CANCEL_ASYNC_MSG_REQUEST (section 2.2.5.2.17) as a parameter.

  • Tunnel shutdown: Tunnel (2) shutdown can be performed only after a tunnel has been successfully created and after all channels (if any) inside the tunnel are shut down successfully. A tunnel shutdown closes the connection between the RDG client and RDG server and is the last call in the protocol sequence. The closing of a tunnel is accomplished by using the TsProxyCloseTunnel (section 3.2.6.3.3) method.

Message sequence between the RDG client and RDG server during shutdown phase

Figure 4: Message sequence between the RDG client and RDG server during shutdown phase