none
[MS-DNSP] dnsProtocol structure definition invalid RRS feed

  • Question

  • Hi,

    I would like to report a transcription error for [MS-DNSP] 2.3.2.1 dnsProperty

    Indeed, all the properties are in reality on 4 bytes (DWORD), while it is described in the documentation as 1 byte (BYTE)

    best regards,

    Vincent LE TOUX

    Tuesday, June 16, 2020 8:26 AM

All replies

  • Hi Vincent:

    I have alerted the open specifications team regarding your inquiry. A member of the team will be in touch soon.


    Regards, Obaid Farooqi

    Tuesday, June 16, 2020 4:43 PM
    Owner
  • Hi Vincent,

    Good to hear from you!  I will raise the issue to the document author.  To verify your observation, you believe that:

    Id (1 byte): The property attribute's type. See Property Id (section 2.3.2.1.1).

      should be changed to:

    Id (4 bytes): The property attribute's type. See Property Id (section 2.3.2.1.1).

    Please confirm that I'm understanding your post correctly.


    Bryan S. Burgin Senior Escalation Engineer Microsoft Protocol Open Specifications Team

    Wednesday, June 17, 2020 11:06 PM
    Moderator
  • Hi Bryan

    Yes, the ID has it size invalid, but all other properties are.

    Every fields described in the structure is 4 bytes, not 1 byte.

    Only the data field can be one 1 byte long (variable length), like when the property id is set to DSPROPERTY_ZONE_ALLOW_UPDATE.

    br

    Vincent

    Thursday, June 18, 2020 5:53 AM
  • Also an example:

    You can see cleary that the data is over 4 bytes, or the specification is not respected !

    here with DSPROPERTY_ZONE_ALLOW_UPDATE

    Thursday, June 18, 2020 5:59 AM
  • The image was missing again ...

    Thursday, June 18, 2020 7:23 AM
  • Thank you, Vincent.

    Bryan S. Burgin Senior Escalation Engineer Microsoft Protocol Open Specifications Team

    Thursday, June 18, 2020 7:26 AM
    Moderator
  • Hi Vincent.

    Can you send me a network trace to dochelp (at) Microsoft (dot) com?  I studied this structure and I can confirm that you are correct as to the first four fields each being four bytes, thus the specification should read:

    DataLength (4 bytes): An unsigned binary integer containing the length, in bytes, of the Data field.

    NameLength (4 bytes): Not Used. The value MUST be ignored and assumed to be 0x00000001.

    Flag (4 bytes): This field is reserved for future use. The value MUST be 0x00000000.

    Version (4 bytes): The version number associated with the property attribute. The value MUST be 0x00000001.

    Id (4 bytes): The property attribute's type. See Property Id (section 2.3.2.1.1).

    But, then, I have doubt about the next two fields.  It may end up that 'Data (variable)' should be 'Data (1-byte)'  And then, Name, as you point out, is 'Name (1-byte)', but I see notes that the actual Data follows Name.  While I walk through the building of this frame, it would be helpful to have a sample from you.


    Bryan S. Burgin Senior Escalation Engineer Microsoft Protocol Open Specifications Team

    Friday, June 19, 2020 5:25 AM
    Moderator
  • Hi Byran

    This is easy, and even you can get this info.

    You have to go to a DnsZone in your AD (using adexplorer for example of adsiedit)

    Then look at the dNSProperty record:

    Each line correspond of a record. Itself is one structure which I described.

    The Data field is variable. Sometimes a bool, sometimes a DWORD, sometimes a string.

    You have to look at the code to be sure of the data length ;-)

    best regards,

    Vincent LE TOUX

    Friday, June 19, 2020 9:02 AM
  • Hi Vincent,

    Thank you for the further images.  This is my outcome.  All five initial fields presently documented as 1-byte are actually four bytes.  The field NameLength is not 0x00000001, but rather 0x00000000, but still ignored.  We also recently enhanced a note to DataLenth to say "If this value is 0, default values are assigned to Data."  Following those five fields, is (variable) Data.  Followed by a four-byte Name, being 0x00000000.  Thus:

    DataLength (4 bytes): An unsigned binary integer containing the length, in bytes, of the Data field. If this value is 0, default values are assigned to Data. See Property Id section 2.3.2.1.1.

    NameLength (4 bytes): Not Used. The value MUST be ignored and assumed to be 0x00000001.

    Flag (4 bytes): This field is reserved for future use. The value MUST be 0x00000000.

    Version (4 bytes): The version number associated with the property attribute. The value MUST be 0x00000001.

    Id (4 bytes): The property attribute's type. See Property Id (section 2.3.2.1.1).

    Data (variable): The data associated with an Id. See Property Id (section 2.3.2.1.1).

    Name (4 bytes): Not used. The value MUST be of length 1 byte, and MUST be ignored.



    Bryan S. Burgin Senior Escalation Engineer Microsoft Protocol Open Specifications Team

    Monday, June 22, 2020 10:03 PM
    Moderator
  • No further comment from me - I was just submitting this document error while my implementation is already done.
    Tuesday, June 23, 2020 9:08 AM