2.2.2.9 bind_nak Packet

These extensions update the bind_nak packet, as specified in [C706] section 12.6.4.5, to have the following definition.

 typedef struct {
   unsigned char rpc_vers;
   unsigned char rpc_vers_minor;
   unsigned char PTYPE;
   unsigned char pfc_flags;
   unsigned char packed_drep[4];
   unsigned short frag_length;
   unsigned short auth_length;
   unsigned long call_id;
   unsigned short provider_reject_reason;
   p_rt_versions_supported_t versions;
   UUID Signature;
 } bind_nak;


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

rpc_vers

rpc_vers_minor

PTYPE

pfc_flags

packed_drep

frag_length

auth_length

call_id

provider_reject_reason

versions (variable)

...

...

Signature (16 bytes, optional)

...

...

These extensions add the Signature field at the end as an optional field. The presence or absence of the Signature field MUST be determined as follows.

Assume that the client calculates the length of the PDU until the Signature field as L.

  • If the frag_length field is greater than or equal to L plus the size of the Signature field, the client SHOULD assume that the Signature field is present.

  • Otherwise, the client SHOULD assume that the Signature field is not present.

The Signature field MUST be interpreted as a UUID.

If the Signature field is equal to the extended error information signature value, as specified in section 2.2.1.1.2, the client MUST assume that the bind_nak PDU contains RPC extended error information appended as a BLOB, as specified in [MS-EERR], immediately following the Signature field that continues until the end of the PDU. If RPC extended error information is present, the length of the BLOB containing it MUST be calculated as frag_length – 0x1c.

Clients MAY<36> ignore the RPC extended error information BLOB. Clients that interpret the BLOB MUST do so as specified in [MS-EERR].

If the Signature field is not equal to the extended error information Signature value, as specified in section 2.2.1.1.2, the client SHOULD ignore the Signature field and all information that follows it in this PDU.