Mats Erik Andersson
2018-10-23 10:25:52 UTC
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
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