2.2.4 SSTP Attributes

The following diagram specifies the format that MUST be used for all SSTP attributes.

The fields of the structure MUST be transmitted as bytes 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

Reserved

Attribute ID

LengthPacket

Value (variable)

...

Reserved (1 byte): This 8-bit field is reserved for future use. MUST be set to zero when sent and MUST be ignored on receipt.

Attribute ID (1 byte): An 8-bit (1-byte) field that is used to specify the type of 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

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 SSTP attribute, including the 4-byte attribute header (that is, 1-byte Reserved field, 1-byte Attribute ID, 4-bit R field, and 12-bit Length field).

Value (variable): A variable-length field with length equal to field Length minus 4 that contains the attribute-specific data. The different attribute-specific data are described in sections 2.2.5 to 2.2.8. The fields "Reserved", "Attribute ID", and "LengthPacket" have been repeated in those sections for complete illustration.