Protocol Fields#

pcapkit.corekit.fields is collection of protocol fields, descriptive of the structure of protocol headers.

All field classes are implemented as FieldBase subclasses, which are responsible for parsing and/or formatting the field value following the pre-defined mechanisms. Below is a brief diagram of the class hierarchy of pcapkit.corekit.fields:

flowchart LR A{{FieldMeta}} -.->|metaclass| B(FieldBase) B --> C(Field) subgraph numbers [Numerical Fields] %% direction TD NumberField --> Int64Field & UInt64Field NumberField --> Int32Field & UInt32Field NumberField --> Int16Field & UInt16Field NumberField --> Int8Field & UInt8Field NumberField --> EnumField end C --> NumberField subgraph strings [Text Fields] %% direction TD _TextField --> BytesField & StringField _TextField --> BitField BytesField --> PaddingField end C --> _TextField subgraph ipaddress [IP Address Fields] %% direction TD _IPField --> _IPAddressField & _IPInterfaceField _IPAddressField --> IPv4AddressField & IPv6AddressField _IPInterfaceField --> IPv4InterfaceField & IPv6InterfaceField end C --> _IPField subgraph collections [Container Fields] %% direction TD ListField --> OptionField end B --> ListField subgraph misc [Miscellaneous Fields] %% direction TD NoValueField & ConditionalField & PayloadField SwitchField & SchemaField & ForwardMatchField end B --> NoValueField & ConditionalField & PayloadField B --> SwitchField & SchemaField & ForwardMatchField C --> D([user customisation ...]) click A "/pcapkit/corekit/fields/field.html#pcapkit.corekit.fields.field.FieldMeta" click B "/pcapkit/corekit/fields/field.html#pcapkit.corekit.fields.field.FieldBase" click C "/pcapkit/corekit/fields/field.html#pcapkit.corekit.fields.field.Field" click NumberField "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.NumberField" click Int64Field "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.Int64Field" click UInt64Field "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.UInt64Field" click Int32Field "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.Int32Field" click UInt32Field "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.UInt32Field" click Int16Field "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.Int16Field" click UInt16Field "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.UInt16Field" click Int8Field "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.Int8Field" click UInt8Field "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.UInt8Field" click EnumField "/pcapkit/corekit/fields/numbers.html#pcapkit.corekit.fields.numbers.EnumField" click _TextField "/pcapkit/corekit/fields/strings.html#pcapkit.corekit.fields.strings._TextField" click BytesField "/pcapkit/corekit/fields/strings.html#pcapkit.corekit.fields.strings.BytesField" click StringField "/pcapkit/corekit/fields/strings.html#pcapkit.corekit.fields.strings.StringField" click BitField "/pcapkit/corekit/fields/strings.html#pcapkit.corekit.fields.strings.BitField" click PaddingField "/pcapkit/corekit/fields/strings.html#pcapkit.corekit.fields.strings.PaddingField" click _IPField "/pcapkit/corekit/fields/ipaddress.html#pcapkit.corekit.fields.ipaddress._IPField" click _IPAddressField "/pcapkit/corekit/fields/ipaddress.html#pcapkit.corekit.fields.ipaddress._IPAddressField" click _IPInterfaceField "/pcapkit/corekit/fields/ipaddress.html#pcapkit.corekit.fields.ipaddress._IPInterfaceField" click IPv4AddressField "/pcapkit/corekit/fields/ipaddress.html#pcapkit.corekit.fields.ipaddress.IPv4AddressField" click IPv6AddressField "/pcapkit/corekit/fields/ipaddress.html#pcapkit.corekit.fields.ipaddress.IPv6AddressField" click IPv4InterfaceField "/pcapkit/corekit/fields/ipaddress.html#pcapkit.corekit.fields.ipaddress.IPv4InterfaceField" click IPv6InterfaceField "/pcapkit/corekit/fields/ipaddress.html#pcapkit.corekit.fields.ipaddress.IPv6InterfaceField" click ListField "/pcapkit/corekit/fields/collections.html#pcapkit.corekit.fields.collections.ListField" click OptionField "/pcapkit/corekit/fields/collections.html#pcapkit.corekit.fields.collections.OptionField" click NoValueField "/pcapkit/corekit/fields/misc.html#pcapkit.corekit.fields.misc.NoValueField" click ConditionalField "/pcapkit/corekit/fields/misc.html#pcapkit.corekit.fields.misc.ConditionalField" click PayloadField "/pcapkit/corekit/fields/misc.html#pcapkit.corekit.fields.misc.PayloadField" click SwitchField "/pcapkit/corekit/fields/misc.html#pcapkit.corekit.fields.misc.SwitchField" click SchemaField "/pcapkit/corekit/fields/misc.html#pcapkit.corekit.fields.misc.SchemaField" click ForwardMatchField "/pcapkit/corekit/fields/misc.html#pcapkit.corekit.fields.misc.ForwardMatchField"