P4FlowForge uses the types described on Scapy to create a custom protocol. The fields compatible are:
IntField: Represents an integer field in a packet. It allows you to specify a field that holds integer values.
StrField: Represents a string field in a packet. It will enable you to specify a field that holds string values.
ByteField: Represents a single byte field in a packet. It's typically used for fields that store byte-sized values.
ShortField: Represents a short integer field in a packet. It's used for fields that store 16-bit integer values.
LongField: Represents a long integer field in a packet. It's used for fields that store 64-bit integer values.
IPField: Represents an IP address field in a packet. It allows you to specify a field that holds IP address values.
MACField: Represents a MAC address field in a packet. It allows you to specify a field that holds MAC address values.
EnumField: Represents an enumerated field in a packet. It allows you to specify a field that can only take on certain predefined values, typically from an enumerated list.