Export (0) Print
Expand All

2.2.12 Call Connect Negative Acknowledgment Message (SSTP_MSG_CALL_CONNECT_NAK)

The following diagram specifies the format that MUST be used for the Call Connect Negative Acknowledgment message. This message is sent by the SSTP server in response to an unacceptable Call Connect Request message that is sent by the SSTP client. Note that this message follows the format of an SSTP control packet, as specified in 2.2.2. This message MUST have one or more Status Info attributes. This message MUST NOT have any other attribute.

The fields of the structure MUST be transmitted in network byte order from left to right.


0

1

2

3

4

5

6

7

8

9
1
0

1

2

3

4

5

6

7

8

9
2
0

1

2

3

4

5

6

7

8

9
3
0

1

Version

Reserved

C

LengthPacket

Message Type

Num Attributes

Reserved1

AttributeID

LengthPacket1

Reserved2

AttribID

Status

AttribValue (variable)

...

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 Connect Negative Acknowledgment 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

6

7

8

9
2
0

1

2

3

4

5

6

7

8

9
3
0

1

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 Connect Negative Acknowledgment message.

Message Type (2 bytes): A 16-bit field in network byte order that specifies the type of message. It MUST be 0x0003 (that is, SSTP_MSG_CALL_CONNECT_NAK).

 

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 greater than or equal to 1 because this message MUST have at least one Status Info attribute.

Reserved1 (1 byte): This 8-bit 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

6

7

8

9
2
0

1

2

3

4

5

6

7

8

9
3
0

1

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

For example, if the Encapsulated Protocol ID that is suggested by the client is not acceptable to the server, then it replies with a Status Info attribute that contains AttribID = 0x01 (that is, SSTP_ATTRIB_ENCAPSULATED_PROTOCOL_ID), Status = 0x00000004 (that is, ATTRIB_STATUS_VALUE_NOT_SUPPORTED), and AttribValue = value proposed by the client.

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.

Value Meaning

ATTRIB_STATUS_DUPLICATE_ATTRIBUTE
0x00000001

This status value MUST be used to indicate multiple occurrences of a specific attribute. The AttribID of the Status Info attribute denotes the attribute that is occurring more than one time in the message.

ATTRIB_STATUS_UNRECOGNIZED_ATTRIBUTE
0x00000002

This status value MUST be used to indicate the presence of an unrecognized attribute that is received from the far end. The AttribID field of the Status Info attribute specifies the attribute that is received from the far end that is not recognized by the SSTP peer.

ATTRIB_STATUS_INVALID_ATTRIB_VALUE_LENGTH
0x00000003

This status value MUST be used when the length of the attribute (specified by AttribID in the Status Info attribute) that is received from the SSTP far end differs from the expected length of the attribute defined in each attribute id section.

ATTRIB_STATUS_VALUE_NOT_SUPPORTED
0x00000004

This status value MUST be used when the value of the attribute (specified by AttribID in the Status Info attribute) that is received from the SSTP far end is not supported by this SSTP peer.

ATTRIB_STATUS_ATTRIB_NOT_SUPPORTED_IN_MSG
0x00000009

This status MUST be used while sending a SSTP_MSG_CALL_ABORT when the attribute that is received from the far end is not supported in the specified message or the expected attribute is not received in the specified message. For example:

  • The SSTP server receives a SSTP_MSG_CALL_CONNECTED message with one of the attributes with attribute Id equal to SSTP_ATTRIB_STATUS_INFO and status not equal to ATTRIB_STATUS_NO_ERROR.

  • The SSTP server receives a SSTP_MSG_CALL_CONNECTED message not having Crypto Binding attribute.

ATTRIB_STATUS_REQUIRED_ATTRIBUTE_MISSING
0x0000000a

This status MUST be used in the negative acknowledgment of a call connect request when a mandatory attribute for the message has not been sent by the far end. The SSTP client MUST send SSTP_ATTRIB_ENCAPSULATED_PROTOCOL_ID as part of an SSTP_MSG_CALL_CONNECT_REQUEST. If this is not present, then the SSTP server MUST send SSTP_MSG_CALL_CONNECT_NAK with the status being this value and an AttribID of SSTP_ATTRIB_ENCAPSULATED_PROTOCOL_ID.

ATTRIB_STATUS_STATUS_INFO_NOT_SUPPORTED_IN_MSG
0x0000000b

This status MUST be used while sending a negative acknowledgment when the SSTP server receives a SSTP_MSG_CALL_CONNECT_REQUEST message, and one of the attributes with attribute ID equal to SSTP_ATTRIB_STATUS_INFO has status not equal to ATTRIB_STATUS_NO_ERROR.

AttribValue (variable): A variable-length field, in network byte order, that specifies the original value of the attribute that is proposed by the client in the Call Connect Request message that is sent back by the server in the Call Connect Negative Acknowledgment message. This field is not present (that is, it is of zero length) in the Call Connect Negative Acknowledgment message if the mandatory attribute is not sent by the client in the Call Connect Request message; or if the attribute that is sent by the client in the Call Connect Request message is not understood by the server. This field MUST NOT be present (that is, it is of zero length) in any other case where the Status Info attribute is present. The maximum length of this field is 64 bytes. If the original attribute is greater than 64 bytes, then only the first 64 bytes are sent back.

 
Show:
© 2014 Microsoft