[ipxe-devel] Option user-class violates RFC 3004.

Mats Erik Andersson bsd at gisladisker.se
Tue Oct 23 10:25:52 UTC 2018

Hello there,

in the source file 'src/net/udp/dhcp.c', line 90,
the user class option is implemented to produce

    77, 4, 'i', 'P', 'X', 'E'

which is in violation of RFC 3004, page 3. The option
in question is an opaque construct intending the possi-
bility of multiple suboptions, usually called instances.
Your code does not specify the total length of the pay-
load, it only states the length of the first and only
instance "iPXE". The correct form is thus

    77, 5, 4, 'i', 'P', 'X', 'E'

The tcpdump of OpenSolaris' origin does not recognize
the error, but tcpdump from any *BSD or GNU/Linux will
show a recoverable error in instance #1.

  Best regards
    Mats Erik Andersson

More information about the ipxe-devel mailing list