AI: DHCP standard (RFC 2131 and RFC 2132) and the protocol does not require the DHCP Message Type (option 53) to be the first option in the options list.
I used Wireshark to investigate some DHCP packets on my Ubuntu 24.04 tap1 interface. I found that in these packets, the first DHCP option is not MessageType. Because of this, PacketDotNet fails to parse them and stops due to the assumption: “The message type must be the first DHCP option, the option type for that is 53.”
PacketDotNet current DHCP MessageType implementation: (.\DhcpV4Packet.cs)
