2.2.13 Call Abort Message (SSTP_MSG_CALL_ABORT)
This is sent by an SSTP peer to the SSTP far end in order to initiate an abnormal disconnection of the SSTP connection. This behavior occurs when an invalid message is received as specified in the state transition diagrams in sections 3.1.1.1.1, 3.2.1.1.1, and 3.3.1.1.1. For example, if the server receives a Call Connected message with an invalid length specified for the attribute, the SSTP server sends a Call Abort message to the SSTP client.
The following diagram specifies the format that MUST be used for the Call Abort message. This message follows the format of an SSTP control packet as specified in section 2.2.2. This message SHOULD have one Status Info attribute.<3> This message MUST NOT have any other attributes.
The fields of the structure MUST be transmitted in network byte order from left to right.
|
|
|
|
|
|
|
|
|
|
1 |
|
|
|
|
|
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
3 |
|
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Version |
Reserved |
C |
LengthPacket |
||||||||||||||||||||||||||||
Message Type |
Num Attributes |
||||||||||||||||||||||||||||||
Reserved1 |
AttributeID |
LengthPacket1 |
|||||||||||||||||||||||||||||
Reserved2 |
AttribID |
||||||||||||||||||||||||||||||
Status |
Version (1 byte): An 8-bit (1-byte) field that is used to communicate and negotiate the version of SSTP that is being used. The upper 4 bits are MAJOR version, which MUST be 0x1, and the lower 4 bits are MINOR version, which MUST be set to 0x0. Therefore, the 8-bit value of the Version field MUST be 0x10 and corresponds to Version 1.0.
Reserved (7 bits): This 7-bit field is reserved for future use. MUST be set to zero when sent and MUST be ignored on receipt.
C (1 bit): A 1-bit field that is used to indicate whether the packet is an SSTP control packet or an SSTP data packet. The value MUST be 1 for a Call Abort message that is a control packet.
LengthPacket (2 bytes): A 16-bit unsigned integer in network byte order that packs data for two fields, configured in the following format.
-
0
1
2
3
4
5
6
7
8
9
1
0
1
2
3
4
5
R
Length
-
R (4 bits): This 4-bit field is reserved for future use. MUST be set to zero when sent and MUST be ignored on receipt.
-
Length (12 bits): A 12-bit unsigned integer in network byte order that MUST specify the length, in bytes, of the entire Call Abort message.
Message Type (2 bytes): A 16-bit field in network byte order that specifies the type of message. It MUST be 0x0005 (that is, SSTP_MSG_CALL_ABORT).
Num Attributes (2 bytes): A 16-bit field in network byte order that specifies the number of attributes in the message. This value MUST be set to 1 if a Status Info attribute is being sent along with this message. If no Status Info attribute is present in this message, this value MUST be set to 0.
Reserved1 (1 byte): This 8-bit (1-byte) field is reserved for future use. MUST be set to zero when sent and MUST be ignored on receipt.
AttributeID (1 byte): An 8-bit (1-byte) field that is used to specify the type of attribute; its value MUST be 0x02 for the Status Info attribute.
LengthPacket1 (2 bytes): A 16-bit unsigned integer in network byte order that packs data for two fields, configured in the following format.
-
0
1
2
3
4
5
6
7
8
9
1
0
1
2
3
4
5
R1
Length1
-
R1 (4 bits): This 4-bit field is reserved for future use. MUST be set to zero when sent and MUST be ignored on receipt.
-
Length1 (12 bits): A 12-bit unsigned integer in network byte order that contains the value 12 plus the length of the AttribValue field.
Reserved2 (3 bytes): This 24-bit field is reserved for future use. MUST be set to zero when sent and MUST be ignored on receipt.
AttribID (1 byte): A 1-byte field that specifies the attribute ID whose status is given by the Status Info attribute. Its value MUST be one of the following.
-
Name
Value
SSTP_ATTRIB_ENCAPSULATED_PROTOCOL_ID
0x01
SSTP_ATTRIB_STATUS_INFO
0x02
SSTP_ATTRIB_CRYPTO_BINDING
0x03
SSTP_ATTRIB_CRYPTO_BINDING_REQ
0x04
Status (4 bytes): A 4-byte field that specifies the reason for the failure. Its value MUST be one of the following values, the description of which is specified in the Status Info attribute (section 2.2.8).
-
Name
Value
ATTRIB_STATUS_VALUE_NOT_SUPPORTED
0x00000004
ATTRIB_STATUS_UNACCEPTED_FRAME_RECEIVED
0x00000005
ATTRIB_STATUS_RETRY_COUNT_EXCEEDED
0x00000006
ATTRIB_STATUS_INVALID_FRAME_RECEIVED
0x00000007
ATTRIB_STATUS_NEGOTIATION_TIMEOUT
0x00000008
ATTRIB_STATUS_ATTRIB_NOT_SUPPORTED_IN_MSG
0x00000009