-
Notifications
You must be signed in to change notification settings - Fork 46
Description
Working on DHCPv6, there's a 24bit transaction ID:
https://datatracker.ietf.org/doc/html/rfc8415#section-8
My current "hack" for parsing is as follows:
transaction_id: uint8[3] &convert=uint32((uint32($$[0]) << 16) + (uint32($$[1]) << 8) + uint32($$[2]));
MySQL also has a 24bit packet length field:
https://dev.mysql.com/doc/dev/mysql-server/8.4.3/page_protocol_basic_packets.html#sect_protocol_basic_packets_packet
Zeek's Spicy SSL parser apparently also has a need for uint24:
https://github.com/zeek/zeek/blob/master/src/analyzer/protocol/ssl/spicy/SSL.spicy#L968
type uint24 = unit {
a: bytes &size=3;
} &convert=$$.a.to_uint(spicy::ByteOrder::Big);
This version likey has quite some overhead due to "bytes" and the to_uint() call.
The SMB protocol's message length is also using 24bits:
https://learn.microsoft.com/en-us/openspecs/windows_protocols/ms-smb2/1dfacde4-b5c7-4494-8a14-a09d3ab4cc83
This seems sufficient examples in popular protocols to motivate native uint24 support in Spicy. Thoughts?
Metadata
Metadata
Assignees
Labels
Type
Projects
Status