3.1.1.3 SSTP Sessions

The device that sends the Open or FanoutOpen is the session originator. The device that receives the Open or FanoutOpen is the session receiver. Both devices MUST maintain session state.

The following state variables MUST be maintained by both the session originator and session receiver for each session:

SessionId: The identifier for the SSTP session.

SessionState: An enumeration indicating the state of the session. The states are: ‘opening’, ‘suspended’, ‘ready’, and ‘blocked’.

The following state transition diagram shows the state relationships for an SSTP session:

Session state diagram

Figure 10: Session state diagram

The following state variables MUST be maintained by the session originator:

OutboundAddressingEntry: The destination addressing entry for a session, consisting of ResourceURL, IdentityURL<10>, and DeviceURL, identifying the recipient resource handler. When creation of a session is requested by the higher-layer, these are supplied by the higher-layer application.

OutboundFanoutAddressingList: The list of addressing entries for a fanout session, consisting of a common ResourceURL, and a list of IdentityURL, DeviceURL, and RelayURLs identifying the recipient resource handlers. In SSTP 1.6, there is an additional FailoverDeviceURLs field, which MUST be set to 0x00. When creation of a fanout session is requested by the higher-layer, these are supplied by the higher-layer application. The list order is important and MUST be maintained, because the SessionStatus command references a particular entry in the list using its zero-based index number.

The following state variables MUST be maintained by the session receiver:

 

InboundAddressingEntry: The destination addressing entry for a received session, consisting of ResourceURL, IdentityURL, and DeviceURL, identifying the recipient resource handler. A ResourceHandlerAvailability state is associated with a valid InboundAddressingEntry.

InboundFanoutAddressingList: The list of addressing entries for a fanout session, consisting of a common ResourceURL, and a list of IdentityURL, DeviceURL, and RelayURLs identifying the recipient resource handlers. In SSTP 1.6, there is an additional FailoverDeviceURLs field, which MUST be set to 0x00. The list order is important and MUST be maintained, because the SessionStatus command references a particular entry in the list using its zero-based index number.

ResourceHandlerAvailability: A variable maintained by the higher-layer which indicates the readiness of a specific resource handler, as identified by an addressing entry, to receive data. The states are ‘ready’, ‘notReady’, or in a ‘fault’ state.

MessageReceiver State: An enumeration indicating the state of the incoming session message sequence transfer. The states are ‘waiting’, ‘ready’, ‘buffering’.

The following state transition diagram shows the state relationships for the MessageReceiver for an SSTP session:

MessageReceiver state diagram

Figure 11: MessageReceiver state diagram