3.1.1.2 SSTP Connection

The following state variables MUST be maintained for each transport layer connection (2):

Inbound/Outbound: A Boolean value to indicate whether the device has originated or accepted the underlying transport connection (2). A value of true indicates that the device originated the connection (2), and false indicates that the device accepted the connection (2).

ConnectionState: An enumeration indicating the state of the SSTP connection (1). The states are ‘transport layer connected’, ‘connecting’, ‘established’, and ‘aborting’.

OutboundMessageList: A table consisting of a time-ordered list of message sequences which have been sent, containing a reference to the originating session and the higher-layer data.

Version: A value to indicate the version of the SSTP protocol, which is to be used for all transactions on this connection (1) while in the ‘established’ state. This version in use on a specific SSTP connection (1) is not necessarily identical to the globally configured Version supported by the device, as specified in section 3.1.1.1.

InboundMessageList: A table consisting of a time-ordered list of message sequences which have been received, containing a reference to the receiving session, the higher-layer data, additional received meta-data for the message sequence, and the processing disposition for the received data. The processing states are:  ‘processing’, ‘complete’. The additional meta-data to be retained as part of an InboundMessageList entry comprises the Message command F, G, S, A, E, and D bits, Ephemeral fields, StreamSize fields, and Fragmentation fields.

The following state transition diagram shows the state relationships for an SSTP connection (1):

SSTP connection state diagram

Figure 9: SSTP connection state diagram