A value with a format encoded by octets in the IPFIX protocol.
An IPFIX field specifier, including the field ID, encoded length of the field, and the optional enterprise number.
An IPFIX field specifier, including the field ID, encoded length of the field, and the optional enterprise number. Used by template records, options template records, and the basicList datatype.
An IPFIX standard message.
An IPFIX standard message. Contains a sequence of IPFIX record sets of various types. Observation Domain ID is always set to 1 for now. Export Time is set to the current time. Sequence Number is allocated in increasing order automatically.
Here's an example message:
Message(
Set.Template(
Rec.Template(0x1001,
FieldSpecifier(4, 1), // protocolSpecifier, unsigned8
FieldSpecifier(85, 8) // octetTotalCount, unsigned64
)
),
Set.Data(0x1001, // template described above
Rec.Data(
6.toByte, // TCP protocol number (byte)
1234567L // 1,234,567 bytes in TCP (long)
),
Rec.Data(
17.toByte, // UDP protocol number (byte)
9876L // 9,876 bytes in UDP (long)
)
)
)
This does absolutely minimal checking of what's put into the messages, in order to allow testing of malformed messages, messages discouraged by the standard but still allowed, and the like. It's not meant to be the most convenient thing ever, just convenient enough to quickly describe and generate a variety of IPFIX messages for testing.
A collection of messages to turn into bytes together.
An IPFIX record, which belongs in a matching IPFIX record set.
An individual IPFIX record set.
An individual IPFIX record set. May be a template set, an options template set, or a data set.
Mostly, implicit conversions from values to their encoded representations.
Classes for structured IPFIX data.