Skip to main content

netflow_parser/variable_versions/
ipfix_lookup.rs

1//! See <https://www.iana.org/assignments/ipfix/ipfix.xhtml> for more details on fields
2
3use super::data_number::*;
4
5use serde::Serialize;
6
7const CISCO_ENTERPRISE_NUMBER: u32 = 9;
8const NETSCALER_ENTERPRISE_NUMBER: u32 = 5951;
9const NAT_ENTERPRISE_NUMBER: u32 = 637;
10const YAF_ENTERPRISE_NUMBER: u32 = 6871;
11const VMWARE_ENTERPRISE_NUMBER: u32 = 6876;
12const REVERSE_INFO_ENTERPRISE_NUMBER: u32 = 29305;
13
14#[derive(Debug, Hash, PartialEq, Eq, Clone, Ord, PartialOrd, Copy, Serialize)]
15pub enum IPFixField {
16    IANA(IANAIPFixField),
17    Cisco(CiscoIPFixField),
18    Netscaler(NetscalerIPFixField),
19    Nat(NatIPFixField),
20    Yaf(YafIPFixField),
21    VMWare(VMWareIPFixField),
22    ReverseInformationElement(ReverseInformationElement),
23    Enterprise {
24        enterprise_number: u32,
25        field_number: u16,
26    },
27}
28
29impl IPFixField {
30    pub fn new(field_type_number: u16, enterprise_number: Option<u32>) -> Self {
31        let enterprise_number = match enterprise_number {
32            Some(enterprise_number) => enterprise_number,
33            None => return IPFixField::IANA(IANAIPFixField::from(field_type_number)),
34        };
35        match enterprise_number {
36            CISCO_ENTERPRISE_NUMBER => {
37                IPFixField::Cisco(CiscoIPFixField::from(field_type_number))
38            }
39            NETSCALER_ENTERPRISE_NUMBER => {
40                IPFixField::Netscaler(NetscalerIPFixField::from(field_type_number))
41            }
42            NAT_ENTERPRISE_NUMBER => IPFixField::Nat(NatIPFixField::from(field_type_number)),
43            YAF_ENTERPRISE_NUMBER => IPFixField::Yaf(YafIPFixField::from(field_type_number)),
44            VMWARE_ENTERPRISE_NUMBER => {
45                IPFixField::VMWare(VMWareIPFixField::from(field_type_number))
46            }
47            REVERSE_INFO_ENTERPRISE_NUMBER => IPFixField::ReverseInformationElement(
48                ReverseInformationElement::from(field_type_number),
49            ),
50            _ => IPFixField::Enterprise {
51                enterprise_number,
52                field_number: field_type_number,
53            },
54        }
55    }
56
57    /// Get the FieldDataType for this field, consulting the enterprise registry if applicable
58    pub fn to_field_data_type(
59        &self,
60        registry: &super::enterprise_registry::EnterpriseFieldRegistry,
61    ) -> FieldDataType {
62        match self {
63            IPFixField::Enterprise {
64                enterprise_number,
65                field_number,
66            } => {
67                // Check if this enterprise field is registered
68                if let Some(def) = registry.get(*enterprise_number, *field_number) {
69                    def.data_type.clone()
70                } else {
71                    FieldDataType::Unknown
72                }
73            }
74            // For all other variants, use the standard conversion
75            _ => (*self).into(),
76        }
77    }
78}
79
80impl From<IPFixField> for FieldDataType {
81    fn from(d: IPFixField) -> FieldDataType {
82        match d {
83            IPFixField::IANA(field) => field.into(),
84            IPFixField::Cisco(field) => field.into(),
85            IPFixField::Netscaler(field) => field.into(),
86            IPFixField::Nat(field) => field.into(),
87            IPFixField::Yaf(field) => field.into(),
88            IPFixField::VMWare(field) => field.into(),
89            IPFixField::ReverseInformationElement(field) => field.into(),
90            IPFixField::Enterprise { .. } => FieldDataType::Unknown,
91        }
92    }
93}
94
95macro_rules! ipfix_field_enum {
96    (
97        $(#[$enum_meta:meta])*
98        $vis:vis enum $enum_name:ident {
99            $(
100                $variant:ident = $value:expr => $field_type:expr
101            ),* $(,)?
102        }
103    ) => {
104        $(#[$enum_meta])*
105        $vis enum $enum_name {
106            $(
107                #[doc = concat!("Field ID: ", stringify!($value), " | Data Type: ", stringify!($field_type))]
108                $variant = $value,
109            )*
110            /// Unknown field type with the field ID stored in the variant
111            Unknown(u16),
112        }
113
114        impl From<u16> for $enum_name {
115            fn from(field_type_number: u16) -> Self {
116                match field_type_number {
117                    $($value => $enum_name::$variant,)*
118                    _ => $enum_name::Unknown(field_type_number),
119                }
120            }
121        }
122
123        impl From<$enum_name> for FieldDataType {
124            fn from(field: $enum_name) -> Self {
125                match field {
126                    $($enum_name::$variant => $field_type,)*
127                    $enum_name::Unknown(_) => FieldDataType::Unknown,
128                }
129            }
130        }
131    };
132}
133
134ipfix_field_enum! {
135    /// VMware-specific IPFIX Information Elements (Enterprise ID 6876).
136    ///
137    /// These fields are used for VMware NSX network virtualization and tenant isolation.
138    /// They provide visibility into virtual network overlays and tenant-specific traffic flows.
139    ///
140    /// # Field Format
141    ///
142    /// Each field is documented with:
143    /// - Field ID: The numeric identifier used in IPFIX templates
144    /// - Data Type: The [`FieldDataType`] that defines how to parse the value
145    ///
146    /// # Common Field Categories
147    ///
148    /// - **Tenant Network**: Protocol, source/destination IPv4/IPv6 addresses and ports
149    /// - **Virtual Infrastructure**: Interface attributes, VXLAN export role
150    #[repr(u16)]
151    #[derive(Debug, Hash, PartialEq, Eq, Clone, Ord, PartialOrd, Copy, Serialize)]
152    pub enum VMWareIPFixField {
153        VmwareTenantProtocol = 880 => FieldDataType::UnsignedDataNumber,
154        VmwareTenantSourceIPv4 = 881 => FieldDataType::Ip4Addr,
155        VmwareTenantDestIPv4 = 882 => FieldDataType::Ip4Addr,
156        VmwareTenantSourceIPv6 = 883 => FieldDataType::Ip6Addr,
157        VmwareTenantDestIPv6 = 884 => FieldDataType::Ip6Addr,
158        VmwareTenantSourcePort = 886 => FieldDataType::UnsignedDataNumber,
159        VmwareTenantDestPort = 887 => FieldDataType::UnsignedDataNumber,
160        VmwareEgressInterfaceAttr = 888 => FieldDataType::UnsignedDataNumber,
161        VmwareVxlanExportRole = 889 => FieldDataType::UnsignedDataNumber,
162        VmwareIngressInterfaceAttr = 890 => FieldDataType::UnsignedDataNumber
163    }
164}
165
166ipfix_field_enum! {
167/// YAF (Yet Another Flowmeter) IPFIX Information Elements (Enterprise ID 6871).
168///
169/// YAF provides deep packet inspection capabilities and application-level flow analysis.
170/// These fields capture detailed protocol-specific information for DNS, SSL/TLS, HTTP,
171/// RTP, MPTCP, and other protocols.
172///
173/// # Field Format
174///
175/// Each field is documented with:
176/// - Field ID: The numeric identifier used in IPFIX templates
177/// - Data Type: The [`FieldDataType`] that defines how to parse the value
178///
179/// # Field Categories
180///
181/// - **TCP Analysis**: Initial/union TCP flags, flow attributes
182/// - **DNS**: Query/response information, record types, TTL, domain names
183/// - **SSL/TLS**: Cipher information, certificate details, versions
184/// - **HTTP**: Headers, URIs, cookies, user agents
185/// - **RTP**: Media streaming statistics
186/// - **System**: OS fingerprinting, packet banners, payload entropy
187///
188/// # References
189///
190/// See [YAF Documentation](https://tools.netsa.cert.org/yaf/) for more details.
191#[repr(u16)]
192#[derive(Debug, Hash, PartialEq, Eq, Clone, Ord, PartialOrd, Copy, Serialize)]
193pub enum YafIPFixField {
194        InitialTCPFlags = 14 => FieldDataType::UnsignedDataNumber,
195        UnionTCPFlags = 15 => FieldDataType::UnsignedDataNumber,
196        Payload = 18 => FieldDataType::String,
197        ReverseFlowDeltaMilliseconds = 21 => FieldDataType::UnsignedDataNumber,
198        SilkAppLabel = 33 => FieldDataType::UnsignedDataNumber,
199        PayloadEntropy = 35 => FieldDataType::UnsignedDataNumber,
200        OsName = 36 => FieldDataType::String,
201        OsVersion = 37 => FieldDataType::String,
202        FirstPacketBanner = 38 => FieldDataType::String,
203        SecondPacketBanner = 39 => FieldDataType::String,
204        FlowAttributes = 40 => FieldDataType::UnsignedDataNumber,
205        ExpiredFragmentCount = 100 => FieldDataType::UnsignedDataNumber,
206        AssembledFragmentCount = 101 => FieldDataType::UnsignedDataNumber,
207        MeanFlowRate = 102 => FieldDataType::UnsignedDataNumber,
208        MeanPacketRate = 103 => FieldDataType::UnsignedDataNumber,
209        FlowTableFlushEventCount = 104 => FieldDataType::UnsignedDataNumber,
210        FlowTablePeakCount = 105 => FieldDataType::UnsignedDataNumber,
211        OsFingerPrint = 107 => FieldDataType::String,
212        TftpFilename = 126 => FieldDataType::String,
213        TftpMode = 127 => FieldDataType::String,
214        DnsQueryResponse = 174 => FieldDataType::UnsignedDataNumber,
215        DnsQRType = 175 => FieldDataType::UnsignedDataNumber,
216        DnsAuthoritative = 176 => FieldDataType::UnsignedDataNumber,
217        DnsNXDomain = 177 => FieldDataType::UnsignedDataNumber,
218        DnsRRSection = 178 => FieldDataType::UnsignedDataNumber,
219        DnsQName = 179 => FieldDataType::String,
220        DnsCName = 180 => FieldDataType::String,
221        DnsMXPreference = 181 => FieldDataType::UnsignedDataNumber,
222        DnsMXExchange = 182 => FieldDataType::String,
223        DnsNSDName = 183 => FieldDataType::String,
224        DnsPTRDName = 184 => FieldDataType::String,
225        SslCipher = 185 => FieldDataType::String,
226        SslClientVersion = 186 => FieldDataType::UnsignedDataNumber,
227        SslServerCipher = 187 => FieldDataType::UnsignedDataNumber,
228        SslCompressionMethod = 188 => FieldDataType::UnsignedDataNumber,
229        SslCertVersion = 189 => FieldDataType::UnsignedDataNumber,
230        SslCertSignature = 190 => FieldDataType::String,
231        DnsTTL = 199 => FieldDataType::UnsignedDataNumber,
232        DnsTXTData = 208 => FieldDataType::String,
233        DnsSOASerial = 209 => FieldDataType::UnsignedDataNumber,
234        DnsSOARefresh = 210 => FieldDataType::UnsignedDataNumber,
235        DnsSOARetry = 211 => FieldDataType::UnsignedDataNumber,
236        DnsSOAExpire = 212 => FieldDataType::UnsignedDataNumber,
237        DnsSOAMinimum = 213 => FieldDataType::UnsignedDataNumber,
238        DnsSOAMName = 214 => FieldDataType::String,
239        DnsSOARName = 215 => FieldDataType::String,
240        DnsSRVPriority = 216 => FieldDataType::UnsignedDataNumber,
241        DnsSRVWeight = 217 => FieldDataType::UnsignedDataNumber,
242        DnsSRVPort = 218 => FieldDataType::UnsignedDataNumber,
243        DnsSRVTarget = 219 => FieldDataType::UnsignedDataNumber,
244        TcpUrgTotalCount = 223 => FieldDataType::UnsignedDataNumber,
245        DnsID = 226 => FieldDataType::UnsignedDataNumber,
246        SslCertSerialNumber = 244 => FieldDataType::String,
247        SslObjectType = 245 => FieldDataType::String,
248        SslObjectValue = 246 => FieldDataType::String,
249        SslCertValidityNotBefore = 247 => FieldDataType::String,
250        SslCertValidityNotAfter = 248 => FieldDataType::String,
251        SslPublicKeyAlgorithm = 249 => FieldDataType::String,
252        SslPublicKeyLength = 250 => FieldDataType::String,
253        RtpPayloadType = 287 => FieldDataType::UnsignedDataNumber,
254        ReverseRtpPayloadType = 288 => FieldDataType::UnsignedDataNumber,
255        MptcpInitialDataSequenceNumber = 289 => FieldDataType::UnsignedDataNumber,
256        MptcpReceiverToken = 290 => FieldDataType::UnsignedDataNumber,
257        MptcpMaximumSegmentSize = 291 => FieldDataType::UnsignedDataNumber,
258        MptcpAddressID = 292 => FieldDataType::UnsignedDataNumber,
259        MptcpFlags = 293 => FieldDataType::UnsignedDataNumber,
260        SslServerName = 294 => FieldDataType::String,
261        SslCertificateHash = 295 => FieldDataType::String,
262        SmallPacketCount = 500 => FieldDataType::UnsignedDataNumber,
263        NonEmptyPacketCount = 501 => FieldDataType::UnsignedDataNumber,
264        DataByteCount = 502 => FieldDataType::UnsignedDataNumber,
265        AverageInterarrivalTime = 503 => FieldDataType::UnsignedDataNumber,
266        StandardDeviationInterarrivalTime = 504 => FieldDataType::UnsignedDataNumber,
267        FirstNonEmptyPacketSize = 505 => FieldDataType::UnsignedDataNumber,
268        MaxPacketSize = 506 => FieldDataType::UnsignedDataNumber,
269        FirstEightNonEmptyPacketDirections = 507 => FieldDataType::UnsignedDataNumber,
270        StandardDeviationPayloadLength = 508 => FieldDataType::UnsignedDataNumber,
271        LargePacketCount = 510 => FieldDataType::UnsignedDataNumber,
272        ReverseInitialTCPFlags = 16398 => FieldDataType::UnsignedDataNumber,
273        ReverseUnionTCPFlags = 16399 => FieldDataType::UnsignedDataNumber,
274        ReversePayload = 16402 => FieldDataType::String,
275        ReversePayloadEntropy = 16419 => FieldDataType::UnsignedDataNumber,
276        ReverseOsName = 16420 => FieldDataType::String,
277        ReverseOsVersion = 16421 => FieldDataType::String,
278        ReverseFirstPacketBanner = 16422 => FieldDataType::String,
279        ReverseSecondPacketBanner = 16423 => FieldDataType::String,
280        ReverseFlowAttributes = 16424 => FieldDataType::UnsignedDataNumber,
281        ReverseOsFingerPrint = 16491 => FieldDataType::String,
282        ReverseSmallPacketCount = 16884 => FieldDataType::UnsignedDataNumber,
283        ReverseNonEmptyPacketCount = 16885 => FieldDataType::UnsignedDataNumber,
284        ReverseDataByteCount = 16886 => FieldDataType::UnsignedDataNumber,
285        ReverseAverageInterarrivalTime = 16887 => FieldDataType::UnsignedDataNumber,
286        ReverseStandardDeviationInterarrivalTime = 16888 => FieldDataType::UnsignedDataNumber,
287        ReverseFirstNonEmptyPacketSize = 16889 => FieldDataType::UnsignedDataNumber,
288        ReverseMaxPacketSize = 16890 => FieldDataType::UnsignedDataNumber,
289        ReverseStandardDeviationPayloadLength = 16892 => FieldDataType::UnsignedDataNumber,
290        ReverseLargePacketCount = 16894 => FieldDataType::UnsignedDataNumber
291    }
292}
293
294ipfix_field_enum! {
295/// Citrix NetScaler IPFIX Information Elements (Enterprise ID 5951).
296///
297/// NetScaler fields provide application delivery controller (ADC) metrics and
298/// detailed application performance monitoring data.
299///
300/// # Field Format
301///
302/// Each field is documented with:
303/// - Field ID: The numeric identifier used in IPFIX templates
304/// - Data Type: The [`FieldDataType`] that defines how to parse the value
305///
306/// # Field Categories
307///
308/// - **Performance**: Round-trip time, transaction IDs, latency metrics
309/// - **HTTP**: URLs, domains, request/response details, cookies
310/// - **ICA (Citrix)**: Client/server bytes, latency, app names, launch mechanisms
311/// - **Database**: SQL queries, database protocols, transaction details
312/// - **AppFlow**: Application classification, cache policies, connection metrics
313#[repr(u16)]
314#[derive(Debug, Hash, PartialEq, Eq, Clone, Ord, PartialOrd, Copy, Serialize)]
315    pub enum NetscalerIPFixField {
316    NetscalerRoundTripTime = 128 => FieldDataType::UnsignedDataNumber,
317    NetscalerTransactionId = 129 => FieldDataType::UnsignedDataNumber,
318    NetscalerHttpReqUrl = 130 => FieldDataType::String,
319    NetscalerHttpReqCookie = 131 => FieldDataType::String,
320    NetscalerFlowFlags = 132 => FieldDataType::UnsignedDataNumber,
321    NetscalerConnectionId = 133 => FieldDataType::UnsignedDataNumber,
322    NetscalerSyslogPriority = 134 => FieldDataType::UnsignedDataNumber,
323    NetscalerSyslogMessage = 135 => FieldDataType::String,
324    NetscalerSyslogTimestamp = 136 => FieldDataType::UnsignedDataNumber,
325    NetscalerHttpReqReferer = 140 => FieldDataType::String,
326    NetscalerHttpReqMethod = 141 => FieldDataType::String,
327    NetscalerHttpReqHost = 142 => FieldDataType::String,
328    NetscalerHttpReqUserAgent = 143 => FieldDataType::String,
329    NetscalerHttpRspStatus = 144 => FieldDataType::UnsignedDataNumber,
330    NetscalerHttpRspLen = 145 => FieldDataType::UnsignedDataNumber,
331    NetscalerServerTTFB = 146 => FieldDataType::UnsignedDataNumber,
332    NetscalerServerTTLB = 147 => FieldDataType::UnsignedDataNumber,
333    NetscalerAppNameIncarnationNumber = 150 => FieldDataType::UnsignedDataNumber,
334    NetscalerAppNameAppId = 151 => FieldDataType::UnsignedDataNumber,
335    NetscalerAppName = 152 => FieldDataType::String,
336    NetscalerHttpReqRcvFB = 153 => FieldDataType::UnsignedDataNumber,
337    NetscalerHttpReqForwFB = 156 => FieldDataType::UnsignedDataNumber,
338    NetscalerHttpResRcvFB = 157 => FieldDataType::UnsignedDataNumber,
339    NetscalerHttpResForwFB = 158 => FieldDataType::UnsignedDataNumber,
340    NetscalerHttpReqRcvLB = 159 => FieldDataType::UnsignedDataNumber,
341    NetscalerHttpReqForwLB = 160 => FieldDataType::UnsignedDataNumber,
342    NetscalerMainPageId = 161 => FieldDataType::UnsignedDataNumber,
343    NetscalerMainPageCoreId = 162 => FieldDataType::UnsignedDataNumber,
344    NetscalerHttpClientInteractionStartTime = 163 => FieldDataType::String,
345    NetscalerHttpClientRenderEndTime = 164 => FieldDataType::String,
346    NetscalerHttpClientRenderStartTime = 165 => FieldDataType::String,
347    NetscalerAppTemplateName = 167 => FieldDataType::String,
348    NetscalerHttpClientInteractionEndTime = 168 => FieldDataType::String,
349    NetscalerHttpResRcvLB = 169 => FieldDataType::UnsignedDataNumber,
350    NetscalerHttpResForwLB = 170 => FieldDataType::UnsignedDataNumber,
351    NetscalerAppUnitNameAppId = 171 => FieldDataType::UnsignedDataNumber,
352    NetscalerDbLoginFlags = 172 => FieldDataType::UnsignedDataNumber,
353    NetscalerDbReqType = 173 => FieldDataType::UnsignedDataNumber,
354    NetscalerDbProtocolName = 174 => FieldDataType::UnsignedDataNumber,
355    NetscalerDbUserName = 175 => FieldDataType::String,
356    NetscalerDbDatabaseName = 176 => FieldDataType::String,
357    NetscalerDbCltHostName = 177 => FieldDataType::String,
358    NetscalerDbReqString = 178 => FieldDataType::String,
359    NetscalerDbRespStatusString = 179 => FieldDataType::String,
360    NetscalerDbRespStatus = 180 => FieldDataType::UnsignedDataNumber,
361    NetscalerDbRespLength = 181 => FieldDataType::UnsignedDataNumber,
362    NetscalerClientRTT = 182 => FieldDataType::UnsignedDataNumber,
363    NetscalerHttpContentType = 183 => FieldDataType::String,
364    NetscalerHttpReqAuthorization = 185 => FieldDataType::String,
365    NetscalerHttpReqVia = 186 => FieldDataType::String,
366    NetscalerHttpResLocation = 187 => FieldDataType::String,
367    NetscalerHttpResSetCookie = 188 => FieldDataType::String,
368    NetscalerHttpResSetCookie2 = 189 => FieldDataType::String,
369    NetscalerHttpReqXForwardedFor = 190 => FieldDataType::String,
370    NetscalerConnectionChainID = 192 => FieldDataType::Vec,
371    NetscalerConnectionChainHopCount = 193 => FieldDataType::UnsignedDataNumber,
372    NetscalerICASessionGuid = 200 => FieldDataType::Vec,
373    NetscaleIcaClientVersion = 201 => FieldDataType::String,
374    NetscalerIcaClientType = 202 => FieldDataType::UnsignedDataNumber,
375    NetscalerIcaClientIP = 203 => FieldDataType::Ip4Addr,
376    NetscalerIcaClientHostName = 204 => FieldDataType::String,
377    NetscalerAaaUsername = 205 => FieldDataType::String,
378    NetscalerIcaDomainName = 207 => FieldDataType::String,
379    NetscalerIcaClientLauncher = 208 => FieldDataType::UnsignedDataNumber,
380    NetscalerIcaSessionSetupTime = 209 => FieldDataType::UnsignedDataNumber,
381    NetscalerIcaServerName = 210 => FieldDataType::String,
382    NetscalerIcaSessionReconnects = 214 => FieldDataType::UnsignedDataNumber,
383    NetscalerIcaRTT = 215 => FieldDataType::UnsignedDataNumber,
384    NetscalerIcaClientsideRXBytes = 216 => FieldDataType::UnsignedDataNumber,
385    NetscalerIcaClientsideTXBytes = 217 => FieldDataType::UnsignedDataNumber,
386    NetscalerIcaClientsidePacketsRetransmit = 219 => FieldDataType::UnsignedDataNumber,
387    NetscalerIcaServersidePacketsRetransmit = 220 => FieldDataType::UnsignedDataNumber,
388    NetscalerIcaClientsideRTT = 221 => FieldDataType::UnsignedDataNumber,
389    NetscalerIcaServersideRTT = 222 => FieldDataType::UnsignedDataNumber,
390    NetscalerIcaSessionUpdateBeginSec = 223 => FieldDataType::UnsignedDataNumber,
391    NetscalerIcaSessionUpdateEndSec = 224 => FieldDataType::UnsignedDataNumber,
392    NetscalerIcaChannelId1 = 225 => FieldDataType::UnsignedDataNumber,
393    NetscalerIcaChannelId1Bytes = 226 => FieldDataType::UnsignedDataNumber,
394    NetscalerIcaChannelId2 = 227 => FieldDataType::UnsignedDataNumber,
395    NetscalerIcaChannelId2Bytes = 228 => FieldDataType::UnsignedDataNumber,
396    NetscalerIcaChannelId3 = 229 => FieldDataType::UnsignedDataNumber,
397    NetscalerIcaChannelId3Bytes = 230 => FieldDataType::UnsignedDataNumber,
398    NetscalerIcaChannelId4 = 231 => FieldDataType::UnsignedDataNumber,
399    NetscalerIcaChannelId4Bytes = 232 => FieldDataType::UnsignedDataNumber,
400    NetscalerIcaChannelId5 = 233 => FieldDataType::UnsignedDataNumber,
401    NetscalerIcaChannelId5Bytes = 234 => FieldDataType::UnsignedDataNumber,
402    NetscalerIcaConnectionPriority = 235 => FieldDataType::UnsignedDataNumber,
403    NetscalerApplicationStartupDuration = 236 => FieldDataType::UnsignedDataNumber,
404    NetscalerIcaLaunchMechanism = 237 => FieldDataType::UnsignedDataNumber,
405    NetscalerIcaApplicationName = 238 => FieldDataType::String,
406    NetscalerApplicationStartupTime = 239 => FieldDataType::UnsignedDataNumber,
407    NetscalerIcaApplicationTerminationType = 240 => FieldDataType::UnsignedDataNumber,
408    NetscalerIcaApplicationTerminationTime = 241 => FieldDataType::UnsignedDataNumber,
409    NetscalerIcaSessionEndTime = 242 => FieldDataType::UnsignedDataNumber,
410    NetscalerIcaClientsideJitter = 243 => FieldDataType::UnsignedDataNumber,
411    NetscalerIcaServersideJitter = 244 => FieldDataType::UnsignedDataNumber,
412    NetscalerIcaAppProcessID = 245 => FieldDataType::UnsignedDataNumber,
413    NetscalerIcaAppModulePath = 246 => FieldDataType::String,
414    NetscalerIcaDeviceSerialNo = 247 => FieldDataType::UnsignedDataNumber,
415    NetscalerMsiClientCookie = 248 => FieldDataType::Vec,
416    NetscalerIcaFlags = 249 => FieldDataType::UnsignedDataNumber,
417    NetscalerIcaUsername = 250 => FieldDataType::String,
418    NetscalerLicenseType = 251 => FieldDataType::UnsignedDataNumber,
419    NetscalerMaxLicenseCount = 252 => FieldDataType::UnsignedDataNumber,
420    NetscalerCurrentLicenseConsumed = 253 => FieldDataType::UnsignedDataNumber,
421    NetscalerIcaNetworkUpdateStartTime = 254 => FieldDataType::UnsignedDataNumber,
422    NetscalerIcaNetworkUpdateEndTime = 255 => FieldDataType::UnsignedDataNumber,
423    NetscalerIcaClientsideSRTT = 256 => FieldDataType::UnsignedDataNumber,
424    NetscalerIcaServersideSRTT = 257 => FieldDataType::UnsignedDataNumber,
425    NetscalerIcaClientsideDelay = 258 => FieldDataType::UnsignedDataNumber,
426    NetscalerIcaServersideDelay = 259 => FieldDataType::UnsignedDataNumber,
427    NetscalerIcaHostDelay = 260 => FieldDataType::UnsignedDataNumber,
428    NetscalerIcaClientSideWindowSize = 261 => FieldDataType::UnsignedDataNumber,
429    NetscalerIcaServerSideWindowSize = 262 => FieldDataType::UnsignedDataNumber,
430    NetscalerIcaClientSideRTOCount = 263 => FieldDataType::UnsignedDataNumber,
431    NetscalerIcaServerSideRTOCount = 264 => FieldDataType::UnsignedDataNumber,
432    NetscalerIcaL7ClientLatency = 265 => FieldDataType::UnsignedDataNumber,
433    NetscalerIcaL7ServerLatency = 266 => FieldDataType::UnsignedDataNumber,
434    NetscalerHttpDomainName = 267 => FieldDataType::String,
435    NetscalerCacheRedirClientConnectionCoreID = 268 => FieldDataType::UnsignedDataNumber,
436    NetscalerCacheRedirClientConnectionTransactionID = 269 => FieldDataType::UnsignedDataNumber,
437    NetscalerUnknown270 = 270 => FieldDataType::UnsignedDataNumber,
438    NetscalerUnknown271 = 271 => FieldDataType::UnsignedDataNumber,
439    NetscalerUnknown272 = 272 => FieldDataType::UnsignedDataNumber,
440    NetscalerUnknown273 = 273 => FieldDataType::UnsignedDataNumber,
441    NetscalerUnknown274 = 274 => FieldDataType::UnsignedDataNumber,
442    NetscalerUnknown275 = 275 => FieldDataType::UnsignedDataNumber,
443    NetscalerUnknown276 = 276 => FieldDataType::UnsignedDataNumber,
444    NetscalerUnknown277 = 277 => FieldDataType::UnsignedDataNumber,
445    NetscalerUnknown278 = 278 => FieldDataType::UnsignedDataNumber,
446    NetscalerUnknown279 = 279 => FieldDataType::UnsignedDataNumber,
447    NetscalerUnknown280 = 280 => FieldDataType::UnsignedDataNumber,
448    NetscalerUnknown281 = 281 => FieldDataType::UnsignedDataNumber,
449    NetscalerUnknown282 = 282 => FieldDataType::UnsignedDataNumber,
450    NetscalerUnknown283 = 283 => FieldDataType::UnsignedDataNumber,
451    NetscalerUnknown284 = 284 => FieldDataType::UnsignedDataNumber,
452    NetscalerUnknown285 = 285 => FieldDataType::UnsignedDataNumber,
453    NetscalerUnknown286 = 286 => FieldDataType::UnsignedDataNumber,
454    NetscalerUnknown287 = 287 => FieldDataType::UnsignedDataNumber,
455    NetscalerUnknown288 = 288 => FieldDataType::UnsignedDataNumber,
456    NetscalerUnknown289 = 289 => FieldDataType::UnsignedDataNumber,
457    NetscalerUnknown290 = 290 => FieldDataType::UnsignedDataNumber,
458    NetscalerUnknown291 = 291 => FieldDataType::UnsignedDataNumber,
459    NetscalerUnknown292 = 292 => FieldDataType::UnsignedDataNumber,
460    NetscalerUnknown293 = 293 => FieldDataType::UnsignedDataNumber,
461    NetscalerUnknown294 = 294 => FieldDataType::UnsignedDataNumber,
462    NetscalerUnknown295 = 295 => FieldDataType::UnsignedDataNumber,
463    NetscalerUnknown296 = 296 => FieldDataType::UnsignedDataNumber,
464    NetscalerUnknown297 = 297 => FieldDataType::UnsignedDataNumber,
465    NetscalerUnknown298 = 298 => FieldDataType::UnsignedDataNumber,
466    NetscalerUnknown299 = 299 => FieldDataType::UnsignedDataNumber,
467    NetscalerUnknown300 = 300 => FieldDataType::UnsignedDataNumber,
468    NetscalerUnknown301 = 301 => FieldDataType::UnsignedDataNumber,
469    NetscalerUnknown302 = 302 => FieldDataType::UnsignedDataNumber,
470    NetscalerUnknown303 = 303 => FieldDataType::UnsignedDataNumber,
471    NetscalerUnknown304 = 304 => FieldDataType::UnsignedDataNumber,
472    NetscalerUnknown305 = 305 => FieldDataType::UnsignedDataNumber,
473    NetscalerUnknown306 = 306 => FieldDataType::UnsignedDataNumber,
474    NetscalerUnknown307 = 307 => FieldDataType::UnsignedDataNumber,
475    NetscalerUnknown308 = 308 => FieldDataType::UnsignedDataNumber,
476    NetscalerUnknown309 = 309 => FieldDataType::UnsignedDataNumber,
477    NetscalerUnknown310 = 310 => FieldDataType::UnsignedDataNumber,
478    NetscalerUnknown311 = 311 => FieldDataType::UnsignedDataNumber,
479    NetscalerUnknown312 = 312 => FieldDataType::UnsignedDataNumber,
480    NetscalerUnknown313 = 313 => FieldDataType::UnsignedDataNumber,
481    NetscalerUnknown314 = 314 => FieldDataType::UnsignedDataNumber,
482    NetscalerUnknown315 = 315 => FieldDataType::UnsignedDataNumber,
483    NetscalerUnknown316 = 316 => FieldDataType::String,
484    NetscalerUnknown317 = 317 => FieldDataType::UnsignedDataNumber,
485    NetscalerUnknown318 = 318 => FieldDataType::UnsignedDataNumber,
486    NetscalerUnknown319 = 319 => FieldDataType::String,
487    NetscalerUnknown320 = 320 => FieldDataType::UnsignedDataNumber,
488    NetscalerUnknown321 = 321 => FieldDataType::UnsignedDataNumber,
489    NetscalerUnknown322 = 322 => FieldDataType::UnsignedDataNumber,
490    NetscalerUnknown323 = 323 => FieldDataType::UnsignedDataNumber,
491    NetscalerUnknown324 = 324 => FieldDataType::UnsignedDataNumber,
492    NetscalerUnknown325 = 325 => FieldDataType::UnsignedDataNumber,
493    NetscalerUnknown326 = 326 => FieldDataType::UnsignedDataNumber,
494    NetscalerUnknown327 = 327 => FieldDataType::UnsignedDataNumber,
495    NetscalerUnknown328 = 328 => FieldDataType::UnsignedDataNumber,
496    NetscalerUnknown329 = 329 => FieldDataType::UnsignedDataNumber,
497    NetscalerUnknown330 = 330 => FieldDataType::UnsignedDataNumber,
498    NetscalerUnknown331 = 331 => FieldDataType::UnsignedDataNumber,
499    NetscalerUnknown332 = 332 => FieldDataType::UnsignedDataNumber,
500    NetscalerUnknown333 = 333 => FieldDataType::String,
501    NetscalerUnknown334 = 334 => FieldDataType::String,
502    NetscalerUnknown335 = 335 => FieldDataType::UnsignedDataNumber,
503    NetscalerUnknown336 = 336 => FieldDataType::UnsignedDataNumber,
504    NetscalerUnknown337 = 337 => FieldDataType::UnsignedDataNumber,
505    NetscalerUnknown338 = 338 => FieldDataType::UnsignedDataNumber,
506    NetscalerUnknown339 = 339 => FieldDataType::UnsignedDataNumber,
507    NetscalerUnknown340 = 340 => FieldDataType::UnsignedDataNumber,
508    NetscalerUnknown341 = 341 => FieldDataType::UnsignedDataNumber,
509    NetscalerUnknown342 = 342 => FieldDataType::UnsignedDataNumber,
510    NetscalerUnknown343 = 343 => FieldDataType::UnsignedDataNumber,
511    NetscalerUnknown344 = 344 => FieldDataType::UnsignedDataNumber,
512    NetscalerUnknown345 = 345 => FieldDataType::UnsignedDataNumber,
513    NetscalerUnknown346 = 346 => FieldDataType::UnsignedDataNumber,
514    NetscalerUnknown347 = 347 => FieldDataType::UnsignedDataNumber,
515    NetscalerUnknown348 = 348 => FieldDataType::UnsignedDataNumber,
516    NetscalerUnknown349 = 349 => FieldDataType::String,
517    NetscalerUnknown350 = 350 => FieldDataType::String,
518    NetscalerUnknown351 = 351 => FieldDataType::String,
519    NetscalerUnknown352 = 352 => FieldDataType::UnsignedDataNumber,
520    NetscalerUnknown353 = 353 => FieldDataType::UnsignedDataNumber,
521    NetscalerUnknown354 = 354 => FieldDataType::UnsignedDataNumber,
522    NetscalerUnknown355 = 355 => FieldDataType::UnsignedDataNumber,
523    NetscalerUnknown356 = 356 => FieldDataType::UnsignedDataNumber,
524    NetscalerUnknown357 = 357 => FieldDataType::UnsignedDataNumber,
525    NetscalerUnknown358 = 358 => FieldDataType::UnsignedDataNumber,
526    NetscalerUnknown359 = 359 => FieldDataType::UnsignedDataNumber,
527    NetscalerUnknown360 = 360 => FieldDataType::UnsignedDataNumber,
528    NetscalerUnknown361 = 361 => FieldDataType::Vec,
529    NetscalerUnknown362 = 362 => FieldDataType::UnsignedDataNumber,
530    NetscalerUnknown363 = 363 => FieldDataType::Vec,
531    NetscalerUnknown364 = 364 => FieldDataType::UnsignedDataNumber,
532    NetscalerUnknown365 = 365 => FieldDataType::UnsignedDataNumber,
533    NetscalerUnknown366 = 366 => FieldDataType::UnsignedDataNumber,
534    NetscalerUnknown367 = 367 => FieldDataType::Vec,
535    NetscalerUnknown377 = 377 => FieldDataType::UnsignedDataNumber,
536    NetscalerUnknown380 = 380 => FieldDataType::UnsignedDataNumber,
537    NetscalerUnknown383 = 383 => FieldDataType::Vec,
538    NetscalerUnknown384 = 384 => FieldDataType::Vec,
539    NetscalerUnknown385 = 385 => FieldDataType::Vec,
540    NetscalerUnknown386 = 386 => FieldDataType::String,
541    NetscalerUnknown387 = 387 => FieldDataType::String,
542    NetscalerUnknown388 = 388 => FieldDataType::UnsignedDataNumber,
543    NetscalerUnknown389 = 389 => FieldDataType::UnsignedDataNumber,
544    NetscalerUnknown391 = 391 => FieldDataType::UnsignedDataNumber,
545    NetscalerUnknown392 = 392 => FieldDataType::UnsignedDataNumber,
546    NetscalerUnknown393 = 393 => FieldDataType::UnsignedDataNumber,
547    NetscalerUnknown394 = 394 => FieldDataType::UnsignedDataNumber,
548    NetscalerUnknown398 = 398 => FieldDataType::UnsignedDataNumber,
549    NetscalerUnknown399 = 399 => FieldDataType::UnsignedDataNumber,
550    NetscalerUnknown400 = 400 => FieldDataType::UnsignedDataNumber,
551    NetscalerUnknown401 = 401 => FieldDataType::UnsignedDataNumber,
552    NetscalerUnknown402 = 402 => FieldDataType::UnsignedDataNumber,
553    NetscalerUnknown403 = 403 => FieldDataType::UnsignedDataNumber,
554    NetscalerUnknown404 = 404 => FieldDataType::UnsignedDataNumber,
555    NetscalerUnknown405 = 405 => FieldDataType::UnsignedDataNumber,
556    NetscalerUnknown408 = 408 => FieldDataType::UnsignedDataNumber,
557    NetscalerUnknown427 = 427 => FieldDataType::UnsignedDataNumber,
558    NetscalerUnknown429 = 429 => FieldDataType::UnsignedDataNumber,
559    NetscalerUnknown432 = 432 => FieldDataType::UnsignedDataNumber,
560    NetscalerUnknown433 = 433 => FieldDataType::UnsignedDataNumber,
561    NetscalerUnknown434 = 434 => FieldDataType::UnsignedDataNumber,
562    NetscalerUnknown435 = 435 => FieldDataType::UnsignedDataNumber,
563    NetscalerUnknown447 = 447 => FieldDataType::UnsignedDataNumber,
564    NetscalerUnknown448 = 448 => FieldDataType::UnsignedDataNumber,
565    NetscalerUnknown451 = 451 => FieldDataType::UnsignedDataNumber,
566    NetscalerUnknown452 = 452 => FieldDataType::UnsignedDataNumber,
567    NetscalerUnknown453 = 453 => FieldDataType::UnsignedDataNumber,
568    NetscalerUnknown455 = 455 => FieldDataType::UnsignedDataNumber,
569    NetscalerUnknown458 = 458 => FieldDataType::UnsignedDataNumber,
570    NetscalerUnknown459 = 459 => FieldDataType::UnsignedDataNumber,
571    NetscalerUnknown460 = 460 => FieldDataType::UnsignedDataNumber,
572    NetscalerUnknown461 = 461 => FieldDataType::UnsignedDataNumber,
573    NetscalerUnknown463 = 463 => FieldDataType::UnsignedDataNumber,
574    NetscalerUnknown464 = 464 => FieldDataType::UnsignedDataNumber,
575    NetscalerUnknown465 = 465 => FieldDataType::UnsignedDataNumber,
576    NetscalerUnknown466 = 466 => FieldDataType::UnsignedDataNumber,
577    NetscalerUnknown467 = 467 => FieldDataType::UnsignedDataNumber,
578    NetscalerUnknown468 = 468 => FieldDataType::UnsignedDataNumber,
579    NetscalerUnknown475 = 475 => FieldDataType::String,
580    NetscalerUnknown476 = 476 => FieldDataType::UnsignedDataNumber,
581    NetscalerUnknown477 = 477 => FieldDataType::UnsignedDataNumber,
582    NetscalerUnknown478 = 478 => FieldDataType::UnsignedDataNumber,
583    NetscalerUnknown479 = 479 => FieldDataType::String,
584    NetscalerUnknown480 = 480 => FieldDataType::UnsignedDataNumber,
585    NetscalerUnknown481 = 481 => FieldDataType::UnsignedDataNumber,
586    NetscalerUnknown487 = 487 => FieldDataType::UnsignedDataNumber,
587    NetscalerUnknown488 = 488 => FieldDataType::UnsignedDataNumber,
588    NetscalerUnknown489 = 489 => FieldDataType::UnsignedDataNumber,
589    NetscalerUnknown491 = 491 => FieldDataType::UnsignedDataNumber,
590    NetscalerUnknown492 = 492 => FieldDataType::UnsignedDataNumber,
591    NetscalerUnknown493 = 493 => FieldDataType::UnsignedDataNumber,
592    NetscalerUnknown494 = 494 => FieldDataType::UnsignedDataNumber,
593    NetscalerUnknown507 = 507 => FieldDataType::UnsignedDataNumber,
594    NetscalerUnknown508 = 508 => FieldDataType::UnsignedDataNumber,
595    NetscalerUnknown509 = 509 => FieldDataType::UnsignedDataNumber,
596    NetscalerUnknown510 = 510 => FieldDataType::UnsignedDataNumber,
597    NetscalerUnknown511 = 511 => FieldDataType::UnsignedDataNumber,
598    NetscalerUnknown512 = 512 => FieldDataType::UnsignedDataNumber,
599    NetscalerUnknown513 = 513 => FieldDataType::UnsignedDataNumber,
600    NetscalerUnknown514 = 514 => FieldDataType::UnsignedDataNumber,
601    NetscalerUnknown518 = 518 => FieldDataType::UnsignedDataNumber,
602    NetscalerUnknown519 = 519 => FieldDataType::UnsignedDataNumber,
603    NetscalerUnknown520 = 520 => FieldDataType::UnsignedDataNumber,
604    NetscalerUnknown521 = 521 => FieldDataType::UnsignedDataNumber,
605    NetscalerUnknown522 = 522 => FieldDataType::UnsignedDataNumber,
606    NetscalerUnknown523 = 523 => FieldDataType::UnsignedDataNumber,
607    NetscalerUnknown532 = 532 => FieldDataType::UnsignedDataNumber,
608    NetscalerUnknown533 = 533 => FieldDataType::UnsignedDataNumber,
609    NetscalerUnknown534 = 534 => FieldDataType::UnsignedDataNumber,
610    NetscalerUnknown535 = 535 => FieldDataType::UnsignedDataNumber,
611    NetscalerUnknown536 = 536 => FieldDataType::UnsignedDataNumber,
612    NetscalerUnknown537 = 537 => FieldDataType::UnsignedDataNumber,
613    NetscalerUnknown538 = 538 => FieldDataType::UnsignedDataNumber,
614    NetscalerUnknown541 = 541 => FieldDataType::UnsignedDataNumber,
615    }
616}
617
618ipfix_field_enum! {
619/// NAT (Network Address Translation) IPFIX Information Elements.
620///
621/// These fields provide information about NAT events and address translations.
622///
623/// # Field Format
624///
625/// Each field is documented with:
626/// - Field ID: The numeric identifier used in IPFIX templates
627/// - Data Type: The [`FieldDataType`] that defines how to parse the value
628#[repr(u16)]
629#[derive(Debug, Hash, PartialEq, Eq, Clone, Ord, PartialOrd, Copy, Serialize)]
630    pub enum NatIPFixField {
631    NatInsideSvcid = 91 => FieldDataType::UnsignedDataNumber,
632    NatOutsideSvcid = 92 => FieldDataType::UnsignedDataNumber,
633    NatSubString = 93 => FieldDataType::String,
634    }
635}
636
637ipfix_field_enum! {
638/// Cisco Systems IPFIX Information Elements (Enterprise ID 9).
639///
640/// Cisco-specific fields for application visibility, network analysis, and
641/// security monitoring. These fields extend standard IPFIX with Cisco's
642/// Application Visibility and Control (AVC) and other features.
643///
644/// # Field Format
645///
646/// Each field is documented with:
647/// - Field ID: The numeric identifier used in IPFIX templates
648/// - Data Type: The [`FieldDataType`] that defines how to parse the value
649///
650/// # Field Categories
651///
652/// - **Application Classification**: AVC names, engine IDs, categories
653/// - **Business**: Business relevance, P2P technology indicators
654/// - **Network**: Server/client bytes, connection metrics, VPN identifiers
655/// - **Security**: SD-WAN indicators, traffic attribution
656/// - **Quality**: Network delay, server response times, jitter
657#[repr(u16)]
658#[derive(Debug, Hash, PartialEq, Eq, Clone, Ord, PartialOrd, Copy, Serialize)]
659    pub enum CiscoIPFixField {
660        CiscoServerBytesNetwork = 8337 => FieldDataType::UnsignedDataNumber,
661        CiscoClientBytesNetwork = 8338 => FieldDataType::UnsignedDataNumber,
662        CiscoServicesWaasSegment = 9252 => FieldDataType::UnsignedDataNumber,
663        CiscoServicesWaasPassthroughReason = 9253 => FieldDataType::UnsignedDataNumber,
664        CiscoAppHttpUriStatistics = 9357 => FieldDataType::String,
665        CiscoAppCategoryName = 12232 => FieldDataType::String,
666        CiscoAppGroupName = 12234 => FieldDataType::String,
667        CiscoAppHttpHost = 12235 => FieldDataType::String,
668        CiscoClientIpv4Address = 12236 => FieldDataType::Ip4Addr,
669        CiscoServerIpv4Address = 12237 => FieldDataType::Ip4Addr,
670        CiscoClientL4Port = 12240 => FieldDataType::UnsignedDataNumber,
671        CiscoServerL4Port = 12241 => FieldDataType::UnsignedDataNumber,
672        CiscoConnectionId = 12242 => FieldDataType::UnsignedDataNumber,
673        CiscoAppBusiness = 12244 => FieldDataType::String,
674    }
675}
676
677ipfix_field_enum! {
678    /// Reverse Information Elements for bidirectional flow analysis.
679    ///
680    /// These fields represent the reverse direction of bidirectional flows,
681    /// allowing analysis of both directions of a conversation.
682    ///
683    /// # Field Format
684    ///
685    /// Each field is documented with:
686    /// - Field ID: The numeric identifier used in IPFIX templates
687    /// - Data Type: The [`FieldDataType`] that defines how to parse the value
688    ///
689    /// # Usage
690    ///
691    /// Reverse fields are typically used in conjunction with their forward
692    /// counterparts to provide complete bidirectional flow visibility.
693    #[repr(u16)]
694    #[derive(Debug, Hash, PartialEq, Eq, Clone, Ord, PartialOrd, Copy, Serialize)]
695    pub enum ReverseInformationElement {
696    // This enum is generated from the YAML-like mapping above.
697    // Only the field numbers and names are used, types are mapped to FieldDataType in the macro.
698    ReverseOctetDeltaCount = 1 => FieldDataType::UnsignedDataNumber,
699    ReversePacketDeltaCount = 2 => FieldDataType::UnsignedDataNumber,
700    ReverseDeltaFlowCount = 3 => FieldDataType::UnsignedDataNumber,
701    ReverseProtocolIdentifier = 4 => FieldDataType::UnsignedDataNumber,
702    ReverseIpClassOfService = 5 => FieldDataType::UnsignedDataNumber,
703    ReverseTcpControlBits = 6 => FieldDataType::UnsignedDataNumber,
704    ReverseSourceTransportPort = 7 => FieldDataType::UnsignedDataNumber,
705    ReverseSourceIPv4Address = 8 => FieldDataType::Ip4Addr,
706    ReverseSourceIPv4PrefixLength = 9 => FieldDataType::UnsignedDataNumber,
707    ReverseIngressInterface = 10 => FieldDataType::UnsignedDataNumber,
708    ReverseDestinationTransportPort = 11 => FieldDataType::UnsignedDataNumber,
709    ReverseDestinationIPv4Address = 12 => FieldDataType::Ip4Addr,
710    ReverseDestinationIPv4PrefixLength = 13 => FieldDataType::UnsignedDataNumber,
711    ReverseEgressInterface = 14 => FieldDataType::UnsignedDataNumber,
712    ReverseIpNextHopIPv4Address = 15 => FieldDataType::Ip4Addr,
713    ReverseBgpSourceAsNumber = 16 => FieldDataType::UnsignedDataNumber,
714    ReverseBgpDestinationAsNumber = 17 => FieldDataType::UnsignedDataNumber,
715    ReverseBgpNextHopIPv4Address = 18 => FieldDataType::Ip4Addr,
716    ReversePostMCastPacketDeltaCount = 19 => FieldDataType::UnsignedDataNumber,
717    ReversePostMCastOctetDeltaCount = 20 => FieldDataType::UnsignedDataNumber,
718    ReverseFlowEndSysUpTime = 21 => FieldDataType::UnsignedDataNumber,
719    ReverseFlowStartSysUpTime = 22 => FieldDataType::UnsignedDataNumber,
720    ReversePostOctetDeltaCount = 23 => FieldDataType::UnsignedDataNumber,
721    ReversePostPacketDeltaCount = 24 => FieldDataType::UnsignedDataNumber,
722    ReverseMinimumIpTotalLength = 25 => FieldDataType::UnsignedDataNumber,
723    ReverseMaximumIpTotalLength = 26 => FieldDataType::UnsignedDataNumber,
724    ReverseSourceIPv6Address = 27 => FieldDataType::Ip6Addr,
725    ReverseDestinationIPv6Address = 28 => FieldDataType::Ip6Addr,
726    ReverseSourceIPv6PrefixLength = 29 => FieldDataType::UnsignedDataNumber,
727    ReverseDestinationIPv6PrefixLength = 30 => FieldDataType::UnsignedDataNumber,
728    ReverseFlowLabelIPv6 = 31 => FieldDataType::UnsignedDataNumber,
729    ReverseIcmpTypeCodeIPv4 = 32 => FieldDataType::UnsignedDataNumber,
730    ReverseIgmpType = 33 => FieldDataType::UnsignedDataNumber,
731    ReverseSamplingInterval = 34 => FieldDataType::UnsignedDataNumber,
732    ReverseSamplingAlgorithm = 35 => FieldDataType::UnsignedDataNumber,
733    ReverseFlowActiveTimeout = 36 => FieldDataType::UnsignedDataNumber,
734    ReverseFlowIdleTimeout = 37 => FieldDataType::UnsignedDataNumber,
735    ReverseEngineType = 38 => FieldDataType::UnsignedDataNumber,
736    ReverseEngineId = 39 => FieldDataType::UnsignedDataNumber,
737    ReverseIpv4RouterSc = 43 => FieldDataType::Ip4Addr,
738    ReverseSourceIPv4Prefix = 44 => FieldDataType::Ip4Addr,
739    ReverseDestinationIPv4Prefix = 45 => FieldDataType::Ip4Addr,
740    ReverseMplsTopLabelType = 46 => FieldDataType::UnsignedDataNumber,
741    ReverseMplsTopLabelIPv4Address = 47 => FieldDataType::Ip4Addr,
742    ReverseSamplerId = 48 => FieldDataType::UnsignedDataNumber,
743    ReverseSamplerMode = 49 => FieldDataType::UnsignedDataNumber,
744    ReverseSamplerRandomInterval = 50 => FieldDataType::UnsignedDataNumber,
745    ReverseClassId = 51 => FieldDataType::UnsignedDataNumber,
746    ReverseMinimumTTL = 52 => FieldDataType::UnsignedDataNumber,
747    ReverseMaximumTTL = 53 => FieldDataType::UnsignedDataNumber,
748    ReverseFragmentIdentification = 54 => FieldDataType::UnsignedDataNumber,
749    ReversePostIpClassOfService = 55 => FieldDataType::UnsignedDataNumber,
750    ReverseSourceMacAddress = 56 => FieldDataType::MacAddr,
751    ReversePostDestinationMacAddress = 57 => FieldDataType::MacAddr,
752    ReverseVlanId = 58 => FieldDataType::UnsignedDataNumber,
753    ReversePostVlanId = 59 => FieldDataType::UnsignedDataNumber,
754    ReverseIpVersion = 60 => FieldDataType::UnsignedDataNumber,
755    ReverseFlowDirection = 61 => FieldDataType::UnsignedDataNumber,
756    ReverseIpNextHopIPv6Address = 62 => FieldDataType::Ip6Addr,
757    ReverseBgpNextHopIPv6Address = 63 => FieldDataType::Ip6Addr,
758    ReverseIpv6ExtensionHeaders = 64 => FieldDataType::UnsignedDataNumber,
759    ReverseMplsTopLabelStackSection = 70 => FieldDataType::String,
760    ReverseMplsLabelStackSection2 = 71 => FieldDataType::String,
761    ReverseMplsLabelStackSection3 = 72 => FieldDataType::String,
762    ReverseMplsLabelStackSection4 = 73 => FieldDataType::String,
763    ReverseMplsLabelStackSection5 = 74 => FieldDataType::String,
764    ReverseMplsLabelStackSection6 = 75 => FieldDataType::String,
765    ReverseMplsLabelStackSection7 = 76 => FieldDataType::String,
766    ReverseMplsLabelStackSection8 = 77 => FieldDataType::String,
767    ReverseMplsLabelStackSection9 = 78 => FieldDataType::String,
768    ReverseMplsLabelStackSection10 = 79 => FieldDataType::String,
769    ReverseDestinationMacAddress = 80 => FieldDataType::MacAddr,
770    ReversePostSourceMacAddress = 81 => FieldDataType::MacAddr,
771    ReverseInterfaceName = 82 => FieldDataType::String,
772    ReverseInterfaceDescription = 83 => FieldDataType::String,
773    ReverseSamplerName = 84 => FieldDataType::String,
774    ReverseOctetTotalCount = 85 => FieldDataType::UnsignedDataNumber,
775    ReversePacketTotalCount = 86 => FieldDataType::UnsignedDataNumber,
776    ReverseFlagsAndSamplerId = 87 => FieldDataType::UnsignedDataNumber,
777    ReverseFragmentOffset = 88 => FieldDataType::UnsignedDataNumber,
778    ReverseForwardingStatus = 89 => FieldDataType::UnsignedDataNumber,
779    ReverseMplsVpnRouteDistinguisher = 90 => FieldDataType::String,
780    ReverseMplsTopLabelPrefixLength = 91 => FieldDataType::UnsignedDataNumber,
781    ReverseSrcTrafficIndex = 92 => FieldDataType::UnsignedDataNumber,
782    ReverseDstTrafficIndex = 93 => FieldDataType::UnsignedDataNumber,
783    ReverseApplicationDescription = 94 => FieldDataType::String,
784    ReverseApplicationId = 95 => FieldDataType::String,
785    ReverseApplicationName = 96 => FieldDataType::String,
786    ReversePostIpDiffServCodePoint = 98 => FieldDataType::UnsignedDataNumber,
787    ReverseMulticastReplicationFactor = 99 => FieldDataType::UnsignedDataNumber,
788    ReverseClassName = 100 => FieldDataType::String,
789    ReverseClassificationEngineId = 101 => FieldDataType::UnsignedDataNumber,
790    ReverseLayer2packetSectionOffset = 102 => FieldDataType::UnsignedDataNumber,
791    ReverseLayer2packetSectionSize = 103 => FieldDataType::UnsignedDataNumber,
792    ReverseLayer2packetSectionData = 104 => FieldDataType::String,
793    ReverseBgpNextAdjacentAsNumber = 128 => FieldDataType::UnsignedDataNumber,
794    ReverseBgpPrevAdjacentAsNumber = 129 => FieldDataType::UnsignedDataNumber,
795    ReverseDroppedOctetDeltaCount = 132 => FieldDataType::UnsignedDataNumber,
796    ReverseDroppedPacketDeltaCount = 133 => FieldDataType::UnsignedDataNumber,
797    ReverseDroppedOctetTotalCount = 134 => FieldDataType::UnsignedDataNumber,
798    ReverseDroppedPacketTotalCount = 135 => FieldDataType::UnsignedDataNumber,
799    ReverseFlowEndReason = 136 => FieldDataType::UnsignedDataNumber,
800    ReverseObservationPointId = 138 => FieldDataType::UnsignedDataNumber,
801    ReverseIcmpTypeCodeIPv6 = 139 => FieldDataType::UnsignedDataNumber,
802    ReverseMplsTopLabelIPv6Address = 140 => FieldDataType::Ip6Addr,
803    ReverseLineCardId = 141 => FieldDataType::UnsignedDataNumber,
804    ReversePortId = 142 => FieldDataType::UnsignedDataNumber,
805    ReverseMeteringProcessId = 143 => FieldDataType::UnsignedDataNumber,
806    ReverseExportingProcessId = 144 => FieldDataType::UnsignedDataNumber,
807    ReverseWlanChannelId = 146 => FieldDataType::UnsignedDataNumber,
808    ReverseWlanSSID = 147 => FieldDataType::String,
809    ReverseFlowStartSeconds = 150 => FieldDataType::UnsignedDataNumber,
810    ReverseFlowEndSeconds = 151 => FieldDataType::UnsignedDataNumber,
811    ReverseFlowStartMilliseconds = 152 => FieldDataType::UnsignedDataNumber,
812    ReverseFlowEndMilliseconds = 153 => FieldDataType::UnsignedDataNumber,
813    ReverseFlowStartMicroseconds = 154 => FieldDataType::UnsignedDataNumber,
814    ReverseFlowEndMicroseconds = 155 => FieldDataType::UnsignedDataNumber,
815    ReverseFlowStartNanoseconds = 156 => FieldDataType::UnsignedDataNumber,
816    ReverseFlowEndNanoseconds = 157 => FieldDataType::UnsignedDataNumber,
817    ReverseFlowStartDeltaMicroseconds = 158 => FieldDataType::UnsignedDataNumber,
818    ReverseFlowEndDeltaMicroseconds = 159 => FieldDataType::UnsignedDataNumber,
819    ReverseSystemInitTimeMilliseconds = 160 => FieldDataType::UnsignedDataNumber,
820    ReverseFlowDurationMilliseconds = 161 => FieldDataType::UnsignedDataNumber,
821    ReverseFlowDurationMicroseconds = 162 => FieldDataType::UnsignedDataNumber,
822    ReverseDestinationIPv6Prefix = 169 => FieldDataType::Ip6Addr,
823    ReverseSourceIPv6Prefix = 170 => FieldDataType::Ip6Addr,
824    ReversePostOctetTotalCount = 171 => FieldDataType::UnsignedDataNumber,
825    ReversePostPacketTotalCount = 172 => FieldDataType::UnsignedDataNumber,
826    ReversePostMCastPacketTotalCount = 174 => FieldDataType::UnsignedDataNumber,
827    ReversePostMCastOctetTotalCount = 175 => FieldDataType::UnsignedDataNumber,
828    ReverseIcmpTypeIPv4 = 176 => FieldDataType::UnsignedDataNumber,
829    ReverseIcmpCodeIPv4 = 177 => FieldDataType::UnsignedDataNumber,
830    ReverseIcmpTypeIPv6 = 178 => FieldDataType::UnsignedDataNumber,
831    ReverseIcmpCodeIPv6 = 179 => FieldDataType::UnsignedDataNumber,
832    ReverseUdpSourcePort = 180 => FieldDataType::UnsignedDataNumber,
833    ReverseUdpDestinationPort = 181 => FieldDataType::UnsignedDataNumber,
834    ReverseTcpSourcePort = 182 => FieldDataType::UnsignedDataNumber,
835    ReverseTcpDestinationPort = 183 => FieldDataType::UnsignedDataNumber,
836    ReverseTcpSequenceNumber = 184 => FieldDataType::UnsignedDataNumber,
837    ReverseTcpAcknowledgementNumber = 185 => FieldDataType::UnsignedDataNumber,
838    ReverseTcpWindowSize = 186 => FieldDataType::UnsignedDataNumber,
839    ReverseTcpUrgentPointer = 187 => FieldDataType::UnsignedDataNumber,
840    ReverseTcpHeaderLength = 188 => FieldDataType::UnsignedDataNumber,
841    ReverseIpHeaderLength = 189 => FieldDataType::UnsignedDataNumber,
842    ReverseTotalLengthIPv4 = 190 => FieldDataType::UnsignedDataNumber,
843    ReversePayloadLengthIPv6 = 191 => FieldDataType::UnsignedDataNumber,
844    ReverseIpTTL = 192 => FieldDataType::UnsignedDataNumber,
845    ReverseNextHeaderIPv6 = 193 => FieldDataType::UnsignedDataNumber,
846    ReverseMplsPayloadLength = 194 => FieldDataType::UnsignedDataNumber,
847    ReverseIpDiffServCodePoint = 195 => FieldDataType::UnsignedDataNumber,
848    ReverseIpPrecedence = 196 => FieldDataType::UnsignedDataNumber,
849    ReverseFragmentFlags = 197 => FieldDataType::UnsignedDataNumber,
850    ReverseOctetDeltaSumOfSquares = 198 => FieldDataType::UnsignedDataNumber,
851    ReverseOctetTotalSumOfSquares = 199 => FieldDataType::UnsignedDataNumber,
852    ReverseMplsTopLabelTTL = 200 => FieldDataType::UnsignedDataNumber,
853    ReverseMplsLabelStackLength = 201 => FieldDataType::UnsignedDataNumber,
854    ReverseMplsLabelStackDepth = 202 => FieldDataType::UnsignedDataNumber,
855    ReverseMplsTopLabelExp = 203 => FieldDataType::UnsignedDataNumber,
856    ReverseIpPayloadLength = 204 => FieldDataType::UnsignedDataNumber,
857    ReverseUdpMessageLength = 205 => FieldDataType::UnsignedDataNumber,
858    ReverseIsMulticast = 206 => FieldDataType::UnsignedDataNumber,
859    ReverseIpv4IHL = 207 => FieldDataType::UnsignedDataNumber,
860    ReverseIpv4Options = 208 => FieldDataType::UnsignedDataNumber,
861    ReverseTcpOptions = 209 => FieldDataType::UnsignedDataNumber,
862    ReverseTcpSynTotalCount = 218 => FieldDataType::UnsignedDataNumber,
863    ReverseTcpFinTotalCount = 219 => FieldDataType::UnsignedDataNumber,
864    ReverseTcpRstTotalCount = 220 => FieldDataType::UnsignedDataNumber,
865    ReverseTcpPshTotalCount = 221 => FieldDataType::UnsignedDataNumber,
866    ReverseTcpAckTotalCount = 222 => FieldDataType::UnsignedDataNumber,
867    ReverseTcpUrgTotalCount = 223 => FieldDataType::UnsignedDataNumber,
868    ReverseIpTotalLength = 224 => FieldDataType::UnsignedDataNumber,
869    ReversePostNATSourceIPv4Address = 225 => FieldDataType::Ip4Addr,
870    ReversePostNATDestinationIPv4Address = 226 => FieldDataType::Ip4Addr,
871    ReversePostNAPTSourceTransportPort = 227 => FieldDataType::UnsignedDataNumber,
872    ReversePostNAPTDestinationTransportPort = 228 => FieldDataType::UnsignedDataNumber,
873    ReverseNatOriginatingAddressRealm = 229 => FieldDataType::UnsignedDataNumber,
874    ReverseNatEvent = 230 => FieldDataType::UnsignedDataNumber,
875    ReverseInitiatorOctets = 231 => FieldDataType::UnsignedDataNumber,
876    ReverseResponderOctets = 232 => FieldDataType::UnsignedDataNumber,
877    ReverseFirewallEvent = 233 => FieldDataType::UnsignedDataNumber,
878    ReverseIngressVRFID = 234 => FieldDataType::UnsignedDataNumber,
879    ReverseEgressVRFID = 235 => FieldDataType::UnsignedDataNumber,
880    ReverseVRFname = 236 => FieldDataType::String,
881    ReversePostMplsTopLabelExp = 237 => FieldDataType::UnsignedDataNumber,
882    ReverseTcpWindowScale = 238 => FieldDataType::UnsignedDataNumber,
883    ReverseEthernetHeaderLength = 240 => FieldDataType::UnsignedDataNumber,
884    ReverseEthernetPayloadLength = 241 => FieldDataType::UnsignedDataNumber,
885    ReverseEthernetTotalLength = 242 => FieldDataType::UnsignedDataNumber,
886    ReverseDot1qVlanId = 243 => FieldDataType::UnsignedDataNumber,
887    ReverseDot1qPriority = 244 => FieldDataType::UnsignedDataNumber,
888    ReverseDot1qCustomerVlanId = 245 => FieldDataType::UnsignedDataNumber,
889    ReverseDot1qCustomerPriority = 246 => FieldDataType::UnsignedDataNumber,
890    ReverseMetroEvcId = 247 => FieldDataType::String,
891    ReverseMetroEvcType = 248 => FieldDataType::UnsignedDataNumber,
892    ReversePseudoWireId = 249 => FieldDataType::UnsignedDataNumber,
893    ReversePseudoWireType = 250 => FieldDataType::UnsignedDataNumber,
894    ReversePseudoWireControlWord = 251 => FieldDataType::UnsignedDataNumber,
895    ReverseIngressPhysicalInterface = 252 => FieldDataType::UnsignedDataNumber,
896    ReverseEgressPhysicalInterface = 253 => FieldDataType::UnsignedDataNumber,
897    ReversePostDot1qVlanId = 254 => FieldDataType::UnsignedDataNumber,
898    ReversePostDot1qCustomerVlanId = 255 => FieldDataType::UnsignedDataNumber,
899    ReverseEthernetType = 256 => FieldDataType::UnsignedDataNumber,
900    ReversePostIpPrecedence = 257 => FieldDataType::UnsignedDataNumber,
901    ReverseCollectionTimeMilliseconds = 258 => FieldDataType::UnsignedDataNumber,
902    ReverseExportSctpStreamId = 259 => FieldDataType::UnsignedDataNumber,
903    ReverseMaxExportSeconds = 260 => FieldDataType::UnsignedDataNumber,
904    ReverseMaxFlowEndSeconds = 261 => FieldDataType::UnsignedDataNumber,
905    ReverseMessageMD5Checksum = 262 => FieldDataType::String,
906    ReverseMessageScope = 263 => FieldDataType::UnsignedDataNumber,
907    ReverseMinExportSeconds = 264 => FieldDataType::UnsignedDataNumber,
908    ReverseMinFlowStartSeconds = 265 => FieldDataType::UnsignedDataNumber,
909    ReverseOpaqueOctets = 266 => FieldDataType::String,
910    ReverseSessionScope = 267 => FieldDataType::UnsignedDataNumber,
911    ReverseMaxFlowEndMicroseconds = 268 => FieldDataType::UnsignedDataNumber,
912    ReverseMaxFlowEndMilliseconds = 269 => FieldDataType::UnsignedDataNumber,
913    ReverseMaxFlowEndNanoseconds = 270 => FieldDataType::UnsignedDataNumber,
914    ReverseMinFlowStartMicroseconds = 271 => FieldDataType::UnsignedDataNumber,
915    ReverseMinFlowStartMilliseconds = 272 => FieldDataType::UnsignedDataNumber,
916    ReverseMinFlowStartNanoseconds = 273 => FieldDataType::UnsignedDataNumber,
917    ReverseCollectorCertificate = 274 => FieldDataType::String,
918    ReverseExporterCertificate = 275 => FieldDataType::String,
919    ReverseDataRecordsReliability = 276 => FieldDataType::UnsignedDataNumber,
920    ReverseObservationPointType = 277 => FieldDataType::UnsignedDataNumber,
921    ReverseNewConnectionDeltaCount = 278 => FieldDataType::UnsignedDataNumber,
922    ReverseConnectionSumDurationSeconds = 279 => FieldDataType::UnsignedDataNumber,
923    ReverseConnectionTransactionId = 280 => FieldDataType::UnsignedDataNumber,
924    ReversePostNATSourceIPv6Address = 281 => FieldDataType::Ip6Addr,
925    ReversePostNATDestinationIPv6Address = 282 => FieldDataType::Ip6Addr,
926    ReverseNatPoolId = 283 => FieldDataType::UnsignedDataNumber,
927    ReverseNatPoolName = 284 => FieldDataType::String,
928    ReverseAnonymizationFlags = 285 => FieldDataType::UnsignedDataNumber,
929    ReverseAnonymizationTechnique = 286 => FieldDataType::UnsignedDataNumber,
930    ReverseInformationElementIndex = 287 => FieldDataType::UnsignedDataNumber,
931    ReverseP2pTechnology = 288 => FieldDataType::String,
932    ReverseTunnelTechnology = 289 => FieldDataType::String,
933    ReverseEncryptedTechnology = 290 => FieldDataType::String,
934    // 291, 292, 293 are :skip, so we omit them
935    ReverseBgpValidityState = 294 => FieldDataType::UnsignedDataNumber,
936    ReverseIPSecSPI = 295 => FieldDataType::UnsignedDataNumber,
937    ReverseGreKey = 296 => FieldDataType::UnsignedDataNumber,
938    ReverseNatType = 297 => FieldDataType::UnsignedDataNumber,
939    ReverseInitiatorPackets = 298 => FieldDataType::UnsignedDataNumber,
940    ReverseResponderPackets = 299 => FieldDataType::UnsignedDataNumber,
941    ReverseObservationDomainName = 300 => FieldDataType::String,
942    ReverseSelectionSequenceId = 301 => FieldDataType::UnsignedDataNumber,
943    ReverseSelectorId = 302 => FieldDataType::UnsignedDataNumber,
944    ReverseInformationElementId = 303 => FieldDataType::UnsignedDataNumber,
945    ReverseSelectorAlgorithm = 304 => FieldDataType::UnsignedDataNumber,
946    ReverseSamplingPacketInterval = 305 => FieldDataType::UnsignedDataNumber,
947    ReverseSamplingPacketSpace = 306 => FieldDataType::UnsignedDataNumber,
948    ReverseSamplingTimeInterval = 307 => FieldDataType::UnsignedDataNumber,
949    ReverseSamplingTimeSpace = 308 => FieldDataType::UnsignedDataNumber,
950    ReverseSamplingSize = 309 => FieldDataType::UnsignedDataNumber,
951    ReverseSamplingPopulation = 310 => FieldDataType::UnsignedDataNumber,
952    ReverseSamplingProbability = 311 => FieldDataType::Float64,
953    ReverseDataLinkFrameSize = 312 => FieldDataType::UnsignedDataNumber,
954    ReverseIpHeaderPacketSection = 313 => FieldDataType::String,
955    ReverseIpPayloadPacketSection = 314 => FieldDataType::String,
956    ReverseDataLinkFrameSection = 315 => FieldDataType::String,
957    ReverseMplsLabelStackSection = 316 => FieldDataType::String,
958    ReverseMplsPayloadPacketSection = 317 => FieldDataType::String,
959    ReverseSelectorIdTotalPktsObserved = 318 => FieldDataType::UnsignedDataNumber,
960    ReverseSelectorIdTotalPktsSelected = 319 => FieldDataType::UnsignedDataNumber,
961    ReverseAbsoluteError = 320 => FieldDataType::Float64,
962    ReverseRelativeError = 321 => FieldDataType::Float64,
963    ReverseObservationTimeSeconds = 322 => FieldDataType::UnsignedDataNumber,
964    ReverseObservationTimeMilliseconds = 323 => FieldDataType::UnsignedDataNumber,
965    ReverseObservationTimeMicroseconds = 324 => FieldDataType::UnsignedDataNumber,
966    ReverseObservationTimeNanoseconds = 325 => FieldDataType::UnsignedDataNumber,
967    ReverseDigestHashValue = 326 => FieldDataType::UnsignedDataNumber,
968    ReverseHashIPPayloadOffset = 327 => FieldDataType::UnsignedDataNumber,
969    ReverseHashIPPayloadSize = 328 => FieldDataType::UnsignedDataNumber,
970    ReverseHashOutputRangeMin = 329 => FieldDataType::UnsignedDataNumber,
971    ReverseHashOutputRangeMax = 330 => FieldDataType::UnsignedDataNumber,
972    ReverseHashSelectedRangeMin = 331 => FieldDataType::UnsignedDataNumber,
973    ReverseHashSelectedRangeMax = 332 => FieldDataType::UnsignedDataNumber,
974    ReverseHashDigestOutput = 333 => FieldDataType::UnsignedDataNumber,
975    ReverseHashInitialiserValue = 334 => FieldDataType::UnsignedDataNumber,
976    ReverseSelectorName = 335 => FieldDataType::String,
977    ReverseUpperCILimit = 336 => FieldDataType::Float64,
978    ReverseLowerCILimit = 337 => FieldDataType::Float64,
979    ReverseConfidenceLevel = 338 => FieldDataType::Float64,
980    ReverseInformationElementDataType = 339 => FieldDataType::UnsignedDataNumber,
981    ReverseInformationElementDescription = 340 => FieldDataType::String,
982    ReverseInformationElementName = 341 => FieldDataType::String,
983    ReverseInformationElementRangeBegin = 342 => FieldDataType::UnsignedDataNumber,
984    ReverseInformationElementRangeEnd = 343 => FieldDataType::UnsignedDataNumber,
985    ReverseInformationElementSemantics = 344 => FieldDataType::UnsignedDataNumber,
986    ReverseInformationElementUnits = 345 => FieldDataType::UnsignedDataNumber,
987    ReversePrivateEnterpriseNumber = 346 => FieldDataType::UnsignedDataNumber,
988    ReverseVirtualStationInterfaceId = 347 => FieldDataType::String,
989    ReverseVirtualStationInterfaceName = 348 => FieldDataType::String,
990    ReverseVirtualStationUUID = 349 => FieldDataType::String,
991    ReverseVirtualStationName = 350 => FieldDataType::String,
992    ReverseLayer2SegmentId = 351 => FieldDataType::UnsignedDataNumber,
993    ReverseLayer2OctetDeltaCount = 352 => FieldDataType::UnsignedDataNumber,
994    ReverseLayer2OctetTotalCount = 353 => FieldDataType::UnsignedDataNumber,
995    ReverseIngressUnicastPacketTotalCount = 354 => FieldDataType::UnsignedDataNumber,
996    ReverseIngressMulticastPacketTotalCount = 355 => FieldDataType::UnsignedDataNumber,
997    ReverseIngressBroadcastPacketTotalCount = 356 => FieldDataType::UnsignedDataNumber,
998    ReverseEgressUnicastPacketTotalCount = 357 => FieldDataType::UnsignedDataNumber,
999    ReverseEgressBroadcastPacketTotalCount = 358 => FieldDataType::UnsignedDataNumber,
1000    ReverseMonitoringIntervalStartMilliSeconds = 359 => FieldDataType::UnsignedDataNumber,
1001    ReverseMonitoringIntervalEndMilliSeconds = 360 => FieldDataType::UnsignedDataNumber,
1002    ReversePortRangeStart = 361 => FieldDataType::UnsignedDataNumber,
1003    ReversePortRangeEnd = 362 => FieldDataType::UnsignedDataNumber,
1004    ReversePortRangeStepSize = 363 => FieldDataType::UnsignedDataNumber,
1005    ReversePortRangeNumPorts = 364 => FieldDataType::UnsignedDataNumber,
1006    ReverseStaMacAddress = 365 => FieldDataType::MacAddr,
1007    ReverseStaIPv4Address = 366 => FieldDataType::Ip4Addr,
1008    ReverseWtpMacAddress = 367 => FieldDataType::MacAddr,
1009    ReverseIngressInterfaceType = 368 => FieldDataType::UnsignedDataNumber,
1010    ReverseEgressInterfaceType = 369 => FieldDataType::UnsignedDataNumber,
1011    ReverseRtpSequenceNumber = 370 => FieldDataType::UnsignedDataNumber,
1012    ReverseUserName = 371 => FieldDataType::String,
1013    ReverseApplicationCategoryName = 372 => FieldDataType::String,
1014    ReverseApplicationSubCategoryName = 373 => FieldDataType::String,
1015    ReverseApplicationGroupName = 374 => FieldDataType::String,
1016    ReverseOriginalFlowsPresent = 375 => FieldDataType::UnsignedDataNumber,
1017    ReverseOriginalFlowsInitiated = 376 => FieldDataType::UnsignedDataNumber,
1018    ReverseOriginalFlowsCompleted = 377 => FieldDataType::UnsignedDataNumber,
1019    ReverseDistinctCountOfSourceIPAddress = 378 => FieldDataType::UnsignedDataNumber,
1020    ReverseDistinctCountOfDestinationIPAddress = 379 => FieldDataType::UnsignedDataNumber,
1021    ReverseDistinctCountOfSourceIPv4Address = 380 => FieldDataType::UnsignedDataNumber,
1022    ReverseDistinctCountOfDestinationIPv4Address = 381 => FieldDataType::UnsignedDataNumber,
1023    ReverseDistinctCountOfSourceIPv6Address = 382 => FieldDataType::UnsignedDataNumber,
1024    ReverseDistinctCountOfDestinationIPv6Address = 383 => FieldDataType::UnsignedDataNumber,
1025    ReverseValueDistributionMethod = 384 => FieldDataType::UnsignedDataNumber,
1026    ReverseRfc3550JitterMilliseconds = 385 => FieldDataType::UnsignedDataNumber,
1027    ReverseRfc3550JitterMicroseconds = 386 => FieldDataType::UnsignedDataNumber,
1028    ReverseRfc3550JitterNanoseconds = 387 => FieldDataType::UnsignedDataNumber,
1029    ReverseDot1qDEI = 388 => FieldDataType::UnsignedDataNumber,
1030    ReverseDot1qCustomerDEI = 389 => FieldDataType::UnsignedDataNumber,
1031    ReverseFlowSelectorAlgorithm = 390 => FieldDataType::UnsignedDataNumber,
1032    ReverseFlowSelectedOctetDeltaCount = 391 => FieldDataType::UnsignedDataNumber,
1033    ReverseFlowSelectedPacketDeltaCount = 392 => FieldDataType::UnsignedDataNumber,
1034    ReverseFlowSelectedFlowDeltaCount = 393 => FieldDataType::UnsignedDataNumber,
1035    ReverseSelectorIDTotalFlowsObserved = 394 => FieldDataType::UnsignedDataNumber,
1036    ReverseSelectorIDTotalFlowsSelected = 395 => FieldDataType::UnsignedDataNumber,
1037    ReverseSamplingFlowInterval = 396 => FieldDataType::UnsignedDataNumber,
1038    ReverseSamplingFlowSpacing = 397 => FieldDataType::UnsignedDataNumber,
1039    ReverseFlowSamplingTimeInterval = 398 => FieldDataType::UnsignedDataNumber,
1040    ReverseFlowSamplingTimeSpacing = 399 => FieldDataType::UnsignedDataNumber,
1041    ReverseHashFlowDomain = 400 => FieldDataType::UnsignedDataNumber,
1042    ReverseTransportOctetDeltaCount = 401 => FieldDataType::UnsignedDataNumber,
1043    ReverseTransportPacketDeltaCount = 402 => FieldDataType::UnsignedDataNumber,
1044    ReverseOriginalExporterIPv4Address = 403 => FieldDataType::Ip4Addr,
1045    ReverseOriginalExporterIPv6Address = 404 => FieldDataType::Ip6Addr,
1046    ReverseOriginalObservationDomainId = 405 => FieldDataType::UnsignedDataNumber,
1047    ReverseIntermediateProcessId = 406 => FieldDataType::UnsignedDataNumber,
1048    ReverseIgnoredDataRecordTotalCount = 407 => FieldDataType::UnsignedDataNumber,
1049    ReverseDataLinkFrameType = 408 => FieldDataType::UnsignedDataNumber,
1050    ReverseSectionOffset = 409 => FieldDataType::UnsignedDataNumber,
1051    ReverseSectionExportedOctets = 410 => FieldDataType::UnsignedDataNumber,
1052    ReverseDot1qServiceInstanceTag = 411 => FieldDataType::String,
1053    ReverseDot1qServiceInstanceId = 412 => FieldDataType::UnsignedDataNumber,
1054    ReverseDot1qServiceInstancePriority = 413 => FieldDataType::UnsignedDataNumber,
1055    ReverseDot1qCustomerSourceMacAddress = 414 => FieldDataType::MacAddr,
1056    ReverseDot1qCustomerDestinationMacAddress = 415 => FieldDataType::MacAddr,
1057    ReversePostLayer2OctetDeltaCount = 417 => FieldDataType::UnsignedDataNumber,
1058    ReversePostMCastLayer2OctetDeltaCount = 418 => FieldDataType::UnsignedDataNumber,
1059    ReversePostLayer2OctetTotalCount = 420 => FieldDataType::UnsignedDataNumber,
1060    ReversePostMCastLayer2OctetTotalCount = 421 => FieldDataType::UnsignedDataNumber,
1061    ReverseMinimumLayer2TotalLength = 422 => FieldDataType::UnsignedDataNumber,
1062    ReverseMaximumLayer2TotalLength = 423 => FieldDataType::UnsignedDataNumber,
1063    ReverseDroppedLayer2OctetDeltaCount = 424 => FieldDataType::UnsignedDataNumber,
1064    ReverseDroppedLayer2OctetTotalCount = 425 => FieldDataType::UnsignedDataNumber,
1065    ReverseIgnoredLayer2OctetTotalCount = 426 => FieldDataType::UnsignedDataNumber,
1066    ReverseNotSentLayer2OctetTotalCount = 427 => FieldDataType::UnsignedDataNumber,
1067    ReverseLayer2OctetDeltaSumOfSquares = 428 => FieldDataType::UnsignedDataNumber,
1068    ReverseLayer2OctetTotalSumOfSquares = 429 => FieldDataType::UnsignedDataNumber,
1069    ReverseLayer2FrameDeltaCount = 430 => FieldDataType::UnsignedDataNumber,
1070    ReverseLayer2FrameTotalCount = 431 => FieldDataType::UnsignedDataNumber,
1071    ReversePseudoWireDestinationIPv4Address = 432 => FieldDataType::Ip4Addr,
1072    ReverseIgnoredLayer2FrameTotalCount = 433 => FieldDataType::UnsignedDataNumber,
1073    }
1074}
1075
1076ipfix_field_enum! {
1077/// IANA-registered IPFIX Information Elements (Enterprise ID 0).
1078///
1079/// This enum contains all standard IPFIX fields as defined by IANA.
1080/// Each variant represents a specific information element with its field ID
1081/// and associated data type.
1082///
1083/// The data type for each field determines how the field value should be
1084/// parsed and interpreted. See [`FieldDataType`] for available types.
1085///
1086/// # Field Format
1087///
1088/// Each field is documented with:
1089/// - Field ID: The numeric identifier used in IPFIX templates
1090/// - Data Type: The [`FieldDataType`] that defines how to parse the value
1091///
1092/// # Examples
1093///
1094/// ```
1095/// use netflow_parser::variable_versions::ipfix_lookup::IANAIPFixField;
1096/// use netflow_parser::variable_versions::data_number::FieldDataType;
1097///
1098/// // Convert from field ID
1099/// let field = IANAIPFixField::from(8);
1100/// assert_eq!(field, IANAIPFixField::SourceIpv4address);
1101///
1102/// // Get the data type for a field
1103/// let data_type: FieldDataType = field.into();
1104/// assert_eq!(data_type, FieldDataType::Ip4Addr);
1105/// ```
1106///
1107/// # References
1108///
1109/// See [IANA IPFIX Information Elements](https://www.iana.org/assignments/ipfix/ipfix.xhtml)
1110/// for the official registry.
1111#[repr(u16)]
1112#[derive(Debug, Hash, PartialEq, Eq, Clone, Ord, PartialOrd, Copy, Serialize)]
1113    pub enum IANAIPFixField {
1114Reserved = 0 => FieldDataType::Unknown,
1115OctetDeltaCount = 1 => FieldDataType::UnsignedDataNumber,
1116PacketDeltaCount = 2 => FieldDataType::UnsignedDataNumber,
1117DeltaFlowCount = 3 => FieldDataType::UnsignedDataNumber,
1118ProtocolIdentifier = 4 => FieldDataType::ProtocolType,
1119IpClassOfService = 5 => FieldDataType::UnsignedDataNumber,
1120TcpControlBits = 6 => FieldDataType::UnsignedDataNumber,
1121SourceTransportPort = 7 => FieldDataType::UnsignedDataNumber,
1122SourceIpv4address = 8 => FieldDataType::Ip4Addr,
1123SourceIpv4prefixLength = 9 => FieldDataType::UnsignedDataNumber,
1124IngressInterface = 10 => FieldDataType::UnsignedDataNumber,
1125DestinationTransportPort = 11 => FieldDataType::UnsignedDataNumber,
1126DestinationIpv4address = 12 => FieldDataType::Ip4Addr,
1127DestinationIpv4prefixLength = 13 => FieldDataType::UnsignedDataNumber,
1128EgressInterface = 14 => FieldDataType::UnsignedDataNumber,
1129IpNextHopIpv4address = 15 => FieldDataType::Ip4Addr,
1130BgpSourceAsNumber = 16 => FieldDataType::UnsignedDataNumber,
1131BgpDestinationAsNumber = 17 => FieldDataType::UnsignedDataNumber,
1132BgpNextHopIpv4address = 18 => FieldDataType::Ip4Addr,
1133PostMcastPacketDeltaCount = 19 => FieldDataType::UnsignedDataNumber,
1134PostMcastOctetDeltaCount = 20 => FieldDataType::UnsignedDataNumber,
1135FlowEndSysUpTime = 21 => FieldDataType::UnsignedDataNumber,
1136FlowStartSysUpTime = 22 => FieldDataType::UnsignedDataNumber,
1137PostOctetDeltaCount = 23 => FieldDataType::UnsignedDataNumber,
1138PostPacketDeltaCount = 24 => FieldDataType::UnsignedDataNumber,
1139MinimumIpTotalLength = 25 => FieldDataType::UnsignedDataNumber,
1140MaximumIpTotalLength = 26 => FieldDataType::UnsignedDataNumber,
1141SourceIpv6address = 27 => FieldDataType::Ip6Addr,
1142DestinationIpv6address = 28 => FieldDataType::Ip6Addr,
1143SourceIpv6prefixLength = 29 => FieldDataType::UnsignedDataNumber,
1144DestinationIpv6prefixLength = 30 => FieldDataType::UnsignedDataNumber,
1145FlowLabelIpv6 = 31 => FieldDataType::UnsignedDataNumber,
1146IcmpTypeCodeIpv4 = 32 => FieldDataType::UnsignedDataNumber,
1147IgmpType = 33 => FieldDataType::UnsignedDataNumber,
1148SamplingInterval = 34 => FieldDataType::UnsignedDataNumber,
1149SamplingAlgorithm = 35 => FieldDataType::UnsignedDataNumber,
1150FlowActiveTimeout = 36 => FieldDataType::UnsignedDataNumber,
1151FlowIdleTimeout = 37 => FieldDataType::UnsignedDataNumber,
1152EngineType = 38 => FieldDataType::UnsignedDataNumber,
1153EngineId = 39 => FieldDataType::UnsignedDataNumber,
1154ExportedOctetTotalCount = 40 => FieldDataType::UnsignedDataNumber,
1155ExportedMessageTotalCount = 41 => FieldDataType::UnsignedDataNumber,
1156ExportedFlowRecordTotalCount = 42 => FieldDataType::UnsignedDataNumber,
1157Ipv4routerSc = 43 => FieldDataType::Ip4Addr,
1158SourceIpv4prefix = 44 => FieldDataType::Ip4Addr,
1159DestinationIpv4prefix = 45 => FieldDataType::Ip4Addr,
1160MplsTopLabelType = 46 => FieldDataType::UnsignedDataNumber,
1161MplsTopLabelIpv4address = 47 => FieldDataType::Ip4Addr,
1162SamplerId = 48 => FieldDataType::UnsignedDataNumber,
1163SamplerMode = 49 => FieldDataType::UnsignedDataNumber,
1164SamplerRandomInterval = 50 => FieldDataType::UnsignedDataNumber,
1165ClassId = 51 => FieldDataType::UnsignedDataNumber,
1166MinimumTtl = 52 => FieldDataType::UnsignedDataNumber,
1167MaximumTtl = 53 => FieldDataType::UnsignedDataNumber,
1168FragmentIdentification = 54 => FieldDataType::UnsignedDataNumber,
1169PostIpClassOfService = 55 => FieldDataType::UnsignedDataNumber,
1170SourceMacaddress = 56 => FieldDataType::MacAddr,
1171PostDestinationMacaddress = 57 => FieldDataType::MacAddr,
1172VlanId = 58 => FieldDataType::UnsignedDataNumber,
1173PostVlanId = 59 => FieldDataType::UnsignedDataNumber,
1174IpVersion = 60 => FieldDataType::UnsignedDataNumber,
1175FlowDirection = 61 => FieldDataType::UnsignedDataNumber,
1176IpNextHopIpv6address = 62 => FieldDataType::Ip6Addr,
1177BgpNextHopIpv6address = 63 => FieldDataType::Ip6Addr,
1178Ipv6extensionHeaders = 64 => FieldDataType::UnsignedDataNumber,
1179AssignedforNetFlowv9compatibility65 = 65 => FieldDataType::Unknown,
1180AssignedforNetFlowv9compatibility66 = 66 => FieldDataType::Unknown,
1181AssignedforNetFlowv9compatibility67 = 67 => FieldDataType::Unknown,
1182AssignedforNetFlowv9compatibility68 = 68 => FieldDataType::Unknown,
1183AssignedforNetFlowv9compatibility69 = 69 => FieldDataType::Unknown,
1184MplsTopLabelStackSection = 70 => FieldDataType::String,
1185MplsLabelStackSection2 = 71 => FieldDataType::String,
1186MplsLabelStackSection3 = 72 => FieldDataType::String,
1187MplsLabelStackSection4 = 73 => FieldDataType::String,
1188MplsLabelStackSection5 = 74 => FieldDataType::String,
1189MplsLabelStackSection6 = 75 => FieldDataType::String,
1190MplsLabelStackSection7 = 76 => FieldDataType::String,
1191MplsLabelStackSection8 = 77 => FieldDataType::String,
1192MplsLabelStackSection9 = 78 => FieldDataType::String,
1193MplsLabelStackSection10 = 79 => FieldDataType::String,
1194DestinationMacaddress = 80 => FieldDataType::MacAddr,
1195PostSourceMacaddress = 81 => FieldDataType::MacAddr,
1196InterfaceName = 82 => FieldDataType::String,
1197InterfaceDescription = 83 => FieldDataType::String,
1198SamplerName = 84 => FieldDataType::String,
1199OctetTotalCount = 85 => FieldDataType::UnsignedDataNumber,
1200PacketTotalCount = 86 => FieldDataType::UnsignedDataNumber,
1201FlagsAndSamplerId = 87 => FieldDataType::UnsignedDataNumber,
1202FragmentOffset = 88 => FieldDataType::UnsignedDataNumber,
1203ForwardingStatus = 89 => FieldDataType::UnsignedDataNumber,
1204MplsVpnRouteDistinguisher = 90 => FieldDataType::String,
1205MplsTopLabelprefixLength = 91 => FieldDataType::UnsignedDataNumber,
1206SrcTrafficIndex = 92 => FieldDataType::UnsignedDataNumber,
1207DstTrafficIndex = 93 => FieldDataType::UnsignedDataNumber,
1208ApplicationDescription = 94 => FieldDataType::String,
1209ApplicationId = 95 => FieldDataType::ApplicationId,
1210ApplicationName = 96 => FieldDataType::String,
1211AssignedforNetFlowv9compatibility96 = 97 => FieldDataType::Unknown,
1212PostIpDiffServCodePoint = 98 => FieldDataType::UnsignedDataNumber,
1213MulticastReplicationFactor = 99 => FieldDataType::UnsignedDataNumber,
1214ClassName = 100 => FieldDataType::String,
1215ClassificationEngineId = 101 => FieldDataType::UnsignedDataNumber,
1216Layer2packetSectionOffset = 102 => FieldDataType::UnsignedDataNumber,
1217Layer2packetSectionSize = 103 => FieldDataType::UnsignedDataNumber,
1218Layer2packetSectionData = 104 => FieldDataType::String,
1219AssignedforNetFlowv9compatibility105 = 105 => FieldDataType::Unknown,
1220AssignedforNetFlowv9compatibility106 = 106 => FieldDataType::Unknown,
1221AssignedforNetFlowv9compatibility107 = 107 => FieldDataType::Unknown,
1222AssignedforNetFlowv9compatibility108 = 108 => FieldDataType::Unknown,
1223AssignedforNetFlowv9compatibility109 = 109 => FieldDataType::Unknown,
1224AssignedforNetFlowv9compatibility110 = 110 => FieldDataType::Unknown,
1225AssignedforNetFlowv9compatibility111 = 111 => FieldDataType::Unknown,
1226AssignedforNetFlowv9compatibility112 = 112 => FieldDataType::Unknown,
1227AssignedforNetFlowv9compatibility113 = 113 => FieldDataType::Unknown,
1228AssignedforNetFlowv9compatibility114 = 114 => FieldDataType::Unknown,
1229AssignedforNetFlowv9compatibility115 = 115 => FieldDataType::Unknown,
1230AssignedforNetFlowv9compatibility116 = 116 => FieldDataType::Unknown,
1231AssignedforNetFlowv9compatibility117 = 117 => FieldDataType::Unknown,
1232AssignedforNetFlowv9compatibility118 = 118 => FieldDataType::Unknown,
1233AssignedforNetFlowv9compatibility119 = 119 => FieldDataType::Unknown,
1234AssignedforNetFlowv9compatibility120 = 120 => FieldDataType::Unknown,
1235AssignedforNetFlowv9compatibility121 = 121 => FieldDataType::Unknown,
1236AssignedforNetFlowv9compatibility122 = 122 => FieldDataType::Unknown,
1237AssignedforNetFlowv9compatibility123 = 123 => FieldDataType::Unknown,
1238AssignedforNetFlowv9compatibility124 = 124 => FieldDataType::Unknown,
1239AssignedforNetFlowv9compatibility125 = 125 => FieldDataType::Unknown,
1240AssignedforNetFlowv9compatibility126 = 126 => FieldDataType::Unknown,
1241AssignedforNetFlowv9compatibility127 = 127 => FieldDataType::Unknown,
1242BgpNextAdjacentAsNumber = 128 => FieldDataType::UnsignedDataNumber,
1243BgpPrevAdjacentAsNumber = 129 => FieldDataType::UnsignedDataNumber,
1244ExporterIpv4address = 130 => FieldDataType::Ip4Addr,
1245ExporterIpv6address = 131 => FieldDataType::Ip6Addr,
1246DroppedOctetDeltaCount = 132 => FieldDataType::UnsignedDataNumber,
1247DroppedPacketDeltaCount = 133 => FieldDataType::UnsignedDataNumber,
1248DroppedOctetTotalCount = 134 => FieldDataType::UnsignedDataNumber,
1249DroppedPacketTotalCount = 135 => FieldDataType::UnsignedDataNumber,
1250FlowEndReason = 136 => FieldDataType::UnsignedDataNumber,
1251CommonPropertiesId = 137 => FieldDataType::UnsignedDataNumber,
1252ObservationPointId = 138 => FieldDataType::UnsignedDataNumber,
1253IcmpTypeCodeIpv6 = 139 => FieldDataType::UnsignedDataNumber,
1254MplsTopLabelIpv6address = 140 => FieldDataType::Ip6Addr,
1255LineCardId = 141 => FieldDataType::UnsignedDataNumber,
1256PortId = 142 => FieldDataType::UnsignedDataNumber,
1257MeteringProcessId = 143 => FieldDataType::UnsignedDataNumber,
1258ExportingProcessId = 144 => FieldDataType::UnsignedDataNumber,
1259TemplateId = 145 => FieldDataType::UnsignedDataNumber,
1260WlanChannelId = 146 => FieldDataType::UnsignedDataNumber,
1261WlanSsid = 147 => FieldDataType::String,
1262FlowId = 148 => FieldDataType::UnsignedDataNumber,
1263ObservationDomainId = 149 => FieldDataType::UnsignedDataNumber,
1264FlowStartSeconds = 150 => FieldDataType::DurationSeconds,
1265FlowEndSeconds = 151 => FieldDataType::DurationSeconds,
1266FlowStartMilliseconds = 152 => FieldDataType::DurationMillis,
1267FlowEndMilliseconds = 153 => FieldDataType::DurationMillis,
1268FlowStartMicroseconds = 154 => FieldDataType::DurationMicrosNTP,
1269FlowEndMicroseconds = 155 => FieldDataType::DurationMicrosNTP,
1270FlowStartNanoseconds = 156 => FieldDataType::DurationNanosNTP,
1271FlowEndNanoseconds = 157 => FieldDataType::DurationNanosNTP,
1272FlowStartDeltaMicroseconds = 158 => FieldDataType::UnsignedDataNumber,
1273FlowEndDeltaMicroseconds = 159 => FieldDataType::UnsignedDataNumber,
1274SystemInitTimeMilliseconds = 160 => FieldDataType::DurationMillis,
1275FlowDurationMilliseconds = 161 => FieldDataType::UnsignedDataNumber,
1276FlowDurationMicroseconds = 162 => FieldDataType::UnsignedDataNumber,
1277ObservedFlowTotalCount = 163 => FieldDataType::UnsignedDataNumber,
1278IgnoredPacketTotalCount = 164 => FieldDataType::UnsignedDataNumber,
1279IgnoredOctetTotalCount = 165 => FieldDataType::UnsignedDataNumber,
1280NotSentFlowTotalCount = 166 => FieldDataType::UnsignedDataNumber,
1281NotSentPacketTotalCount = 167 => FieldDataType::UnsignedDataNumber,
1282NotSentOctetTotalCount = 168 => FieldDataType::UnsignedDataNumber,
1283DestinationIpv6prefix = 169 => FieldDataType::Ip6Addr,
1284SourceIpv6prefix = 170 => FieldDataType::Ip6Addr,
1285PostOctetTotalCount = 171 => FieldDataType::UnsignedDataNumber,
1286PostPacketTotalCount = 172 => FieldDataType::UnsignedDataNumber,
1287FlowKeyIndicator = 173 => FieldDataType::UnsignedDataNumber,
1288PostMcastPacketTotalCount = 174 => FieldDataType::UnsignedDataNumber,
1289PostMcastOctetTotalCount = 175 => FieldDataType::UnsignedDataNumber,
1290IcmpTypeIpv4 = 176 => FieldDataType::UnsignedDataNumber,
1291IcmpCodeIpv4 = 177 => FieldDataType::UnsignedDataNumber,
1292IcmpTypeIpv6 = 178 => FieldDataType::UnsignedDataNumber,
1293IcmpCodeIpv6 = 179 => FieldDataType::UnsignedDataNumber,
1294UdpSourcePort = 180 => FieldDataType::UnsignedDataNumber,
1295UdpDestinationPort = 181 => FieldDataType::UnsignedDataNumber,
1296TcpSourcePort = 182 => FieldDataType::UnsignedDataNumber,
1297TcpDestinationPort = 183 => FieldDataType::UnsignedDataNumber,
1298TcpSequenceNumber = 184 => FieldDataType::UnsignedDataNumber,
1299TcpAcknowledgementNumber = 185 => FieldDataType::UnsignedDataNumber,
1300TcpWindowSize = 186 => FieldDataType::UnsignedDataNumber,
1301TcpUrgentPointer = 187 => FieldDataType::UnsignedDataNumber,
1302TcpHeaderLength = 188 => FieldDataType::UnsignedDataNumber,
1303IpHeaderLength = 189 => FieldDataType::UnsignedDataNumber,
1304TotalLengthIpv4 = 190 => FieldDataType::UnsignedDataNumber,
1305PayloadLengthIpv6 = 191 => FieldDataType::UnsignedDataNumber,
1306IpTtl = 192 => FieldDataType::UnsignedDataNumber,
1307NextHeaderIpv6 = 193 => FieldDataType::UnsignedDataNumber,
1308MplsPayloadLength = 194 => FieldDataType::UnsignedDataNumber,
1309IpDiffServCodePoint = 195 => FieldDataType::UnsignedDataNumber,
1310IpPrecedence = 196 => FieldDataType::UnsignedDataNumber,
1311FragmentFlags = 197 => FieldDataType::UnsignedDataNumber,
1312OctetDeltaSumOfSquares = 198 => FieldDataType::UnsignedDataNumber,
1313OctetTotalSumOfSquares = 199 => FieldDataType::UnsignedDataNumber,
1314MplsTopLabelTtl = 200 => FieldDataType::UnsignedDataNumber,
1315MplsLabelStackLength = 201 => FieldDataType::UnsignedDataNumber,
1316MplsLabelStackDepth = 202 => FieldDataType::UnsignedDataNumber,
1317MplsTopLabelExp = 203 => FieldDataType::UnsignedDataNumber,
1318IpPayloadLength = 204 => FieldDataType::UnsignedDataNumber,
1319UdpMessageLength = 205 => FieldDataType::UnsignedDataNumber,
1320IsMulticast = 206 => FieldDataType::UnsignedDataNumber,
1321Ipv4ihl = 207 => FieldDataType::UnsignedDataNumber,
1322Ipv4options = 208 => FieldDataType::UnsignedDataNumber,
1323TcpOptions = 209 => FieldDataType::UnsignedDataNumber,
1324PaddingOctets = 210 => FieldDataType::String,
1325CollectorIpv4address = 211 => FieldDataType::Ip4Addr,
1326CollectorIpv6address = 212 => FieldDataType::Ip6Addr,
1327ExportInterface = 213 => FieldDataType::UnsignedDataNumber,
1328ExportProtocolVersion = 214 => FieldDataType::UnsignedDataNumber,
1329ExportTransportProtocol = 215 => FieldDataType::UnsignedDataNumber,
1330CollectorTransportPort = 216 => FieldDataType::UnsignedDataNumber,
1331ExporterTransportPort = 217 => FieldDataType::UnsignedDataNumber,
1332TcpSynTotalCount = 218 => FieldDataType::UnsignedDataNumber,
1333TcpFinTotalCount = 219 => FieldDataType::UnsignedDataNumber,
1334TcpRstTotalCount = 220 => FieldDataType::UnsignedDataNumber,
1335TcpPshTotalCount = 221 => FieldDataType::UnsignedDataNumber,
1336TcpAckTotalCount = 222 => FieldDataType::UnsignedDataNumber,
1337TcpUrgTotalCount = 223 => FieldDataType::UnsignedDataNumber,
1338IpTotalLength = 224 => FieldDataType::UnsignedDataNumber,
1339PostNatsourceIpv4address = 225 => FieldDataType::Ip4Addr,
1340PostNatdestinationIpv4address = 226 => FieldDataType::Ip4Addr,
1341PostNaptsourceTransportPort = 227 => FieldDataType::UnsignedDataNumber,
1342PostNaptdestinationTransportPort = 228 => FieldDataType::UnsignedDataNumber,
1343NatOriginatingaddressRealm = 229 => FieldDataType::UnsignedDataNumber,
1344NatEvent = 230 => FieldDataType::UnsignedDataNumber,
1345InitiatorOctets = 231 => FieldDataType::UnsignedDataNumber,
1346ResponderOctets = 232 => FieldDataType::UnsignedDataNumber,
1347FirewallEvent = 233 => FieldDataType::UnsignedDataNumber,
1348IngressVrfid = 234 => FieldDataType::UnsignedDataNumber,
1349EgressVrfid = 235 => FieldDataType::UnsignedDataNumber,
1350VRFname = 236 => FieldDataType::String,
1351PostMplsTopLabelExp = 237 => FieldDataType::UnsignedDataNumber,
1352TcpWindowScale = 238 => FieldDataType::UnsignedDataNumber,
1353BiflowDirection = 239 => FieldDataType::UnsignedDataNumber,
1354EthernetHeaderLength = 240 => FieldDataType::UnsignedDataNumber,
1355EthernetPayloadLength = 241 => FieldDataType::UnsignedDataNumber,
1356EthernetTotalLength = 242 => FieldDataType::UnsignedDataNumber,
1357Dot1qVlanId = 243 => FieldDataType::UnsignedDataNumber,
1358Dot1qPriority = 244 => FieldDataType::UnsignedDataNumber,
1359Dot1qCustomerVlanId = 245 => FieldDataType::UnsignedDataNumber,
1360Dot1qCustomerPriority = 246 => FieldDataType::UnsignedDataNumber,
1361MetroEvcId = 247 => FieldDataType::String,
1362MetroEvcType = 248 => FieldDataType::UnsignedDataNumber,
1363PseudoWireId = 249 => FieldDataType::UnsignedDataNumber,
1364PseudoWireType = 250 => FieldDataType::UnsignedDataNumber,
1365PseudoWireControlWord = 251 => FieldDataType::UnsignedDataNumber,
1366IngressPhysicalInterface = 252 => FieldDataType::UnsignedDataNumber,
1367EgressPhysicalInterface = 253 => FieldDataType::UnsignedDataNumber,
1368PostDot1qVlanId = 254 => FieldDataType::UnsignedDataNumber,
1369PostDot1qCustomerVlanId = 255 => FieldDataType::UnsignedDataNumber,
1370EthernetType = 256 => FieldDataType::UnsignedDataNumber,
1371PostIpPrecedence = 257 => FieldDataType::UnsignedDataNumber,
1372CollectionTimeMilliseconds = 258 => FieldDataType::DurationMillis,
1373ExportSctpStreamId = 259 => FieldDataType::UnsignedDataNumber,
1374MaxExportSeconds = 260 => FieldDataType::DurationSeconds,
1375MaxFlowEndSeconds = 261 => FieldDataType::DurationSeconds,
1376MessageMd5checksum = 262 => FieldDataType::String,
1377MessageScope = 263 => FieldDataType::UnsignedDataNumber,
1378MinExportSeconds = 264 => FieldDataType::DurationSeconds,
1379MinFlowStartSeconds = 265 => FieldDataType::DurationSeconds,
1380OpaqueOctets = 266 => FieldDataType::String,
1381SessionScope = 267 => FieldDataType::UnsignedDataNumber,
1382MaxFlowEndMicroseconds = 268 => FieldDataType::DurationMicrosNTP,
1383MaxFlowEndMilliseconds = 269 => FieldDataType::DurationMillis,
1384MaxFlowEndNanoseconds = 270 => FieldDataType::DurationNanosNTP,
1385MinFlowStartMicroseconds = 271 => FieldDataType::DurationMicrosNTP,
1386MinFlowStartMilliseconds = 272 => FieldDataType::DurationMillis,
1387MinFlowStartNanoseconds = 273 => FieldDataType::DurationNanosNTP,
1388CollectorCertificate = 274 => FieldDataType::String,
1389ExporterCertificate = 275 => FieldDataType::String,
1390DataRecordsReliability = 276 => FieldDataType::UnsignedDataNumber,
1391ObservationPointType = 277 => FieldDataType::UnsignedDataNumber,
1392NewConnectionDeltaCount = 278 => FieldDataType::UnsignedDataNumber,
1393ConnectionSumDurationSeconds = 279 => FieldDataType::UnsignedDataNumber,
1394ConnectionTransactionId = 280 => FieldDataType::UnsignedDataNumber,
1395PostNatsourceIpv6address = 281 => FieldDataType::Ip6Addr,
1396PostNatdestinationIpv6address = 282 => FieldDataType::Ip6Addr,
1397NatPoolId = 283 => FieldDataType::UnsignedDataNumber,
1398NatPoolName = 284 => FieldDataType::String,
1399AnonymizationFlags = 285 => FieldDataType::UnsignedDataNumber,
1400AnonymizationTechnique = 286 => FieldDataType::UnsignedDataNumber,
1401InformationElementIndex = 287 => FieldDataType::UnsignedDataNumber,
1402P2pTechnology = 288 => FieldDataType::String,
1403TunnelTechnology = 289 => FieldDataType::String,
1404EncryptedTechnology = 290 => FieldDataType::String,
1405BasicList = 291 => FieldDataType::Unknown,
1406SubTemplateList = 292 => FieldDataType::Unknown,
1407SubTemplateMultiList = 293 => FieldDataType::Unknown,
1408BgpValidityState = 294 => FieldDataType::UnsignedDataNumber,
1409IpSecSPI = 295 => FieldDataType::UnsignedDataNumber,
1410GreKey = 296 => FieldDataType::UnsignedDataNumber,
1411NatType = 297 => FieldDataType::UnsignedDataNumber,
1412InitiatorPackets = 298 => FieldDataType::UnsignedDataNumber,
1413ResponderPackets = 299 => FieldDataType::UnsignedDataNumber,
1414ObservationDomainName = 300 => FieldDataType::String,
1415SelectionSequenceId = 301 => FieldDataType::UnsignedDataNumber,
1416SelectorId = 302 => FieldDataType::UnsignedDataNumber,
1417InformationElementId = 303 => FieldDataType::UnsignedDataNumber,
1418SelectorAlgorithm = 304 => FieldDataType::UnsignedDataNumber,
1419SamplingPacketInterval = 305 => FieldDataType::UnsignedDataNumber,
1420SamplingPacketSpace = 306 => FieldDataType::UnsignedDataNumber,
1421SamplingTimeInterval = 307 => FieldDataType::UnsignedDataNumber,
1422SamplingTimeSpace = 308 => FieldDataType::UnsignedDataNumber,
1423SamplingSize = 309 => FieldDataType::UnsignedDataNumber,
1424SamplingPopulation = 310 => FieldDataType::UnsignedDataNumber,
1425SamplingProbability = 311 => FieldDataType::Float64,
1426DataLinkFrameSize = 312 => FieldDataType::UnsignedDataNumber,
1427IpHeaderPacketSection = 313 => FieldDataType::String,
1428IpPayloadPacketSection = 314 => FieldDataType::String,
1429DataLinkFrameSection = 315 => FieldDataType::String,
1430MplsLabelStackSection = 316 => FieldDataType::String,
1431MplsPayloadPacketSection = 317 => FieldDataType::String,
1432SelectorIdTotalPktsObserved = 318 => FieldDataType::UnsignedDataNumber,
1433SelectorIdTotalPktsSelected = 319 => FieldDataType::UnsignedDataNumber,
1434AbsoluteError = 320 => FieldDataType::Float64,
1435RelativeError = 321 => FieldDataType::Float64,
1436ObservationTimeSeconds = 322 => FieldDataType::DurationSeconds,
1437ObservationTimeMilliseconds = 323 => FieldDataType::DurationMillis,
1438ObservationTimeMicroseconds = 324 => FieldDataType::DurationMicrosNTP,
1439ObservationTimeNanoseconds = 325 => FieldDataType::DurationNanosNTP,
1440DigestHashValue = 326 => FieldDataType::UnsignedDataNumber,
1441HashIppayloadOffset = 327 => FieldDataType::UnsignedDataNumber,
1442HashIppayloadSize = 328 => FieldDataType::UnsignedDataNumber,
1443HashOutputRangeMin = 329 => FieldDataType::UnsignedDataNumber,
1444HashOutputRangeMax = 330 => FieldDataType::UnsignedDataNumber,
1445HashSelectedRangeMin = 331 => FieldDataType::UnsignedDataNumber,
1446HashSelectedRangeMax = 332 => FieldDataType::UnsignedDataNumber,
1447HashDigestOutput = 333 => FieldDataType::UnsignedDataNumber,
1448HashInitialiserValue = 334 => FieldDataType::UnsignedDataNumber,
1449SelectorName = 335 => FieldDataType::String,
1450UpperCilimit = 336 => FieldDataType::Float64,
1451LowerCilimit = 337 => FieldDataType::Float64,
1452ConfidenceLevel = 338 => FieldDataType::Float64,
1453InformationElementDataType = 339 => FieldDataType::UnsignedDataNumber,
1454InformationElementDescription = 340 => FieldDataType::String,
1455InformationElementName = 341 => FieldDataType::String,
1456InformationElementRangeBegin = 342 => FieldDataType::UnsignedDataNumber,
1457InformationElementRangeEnd = 343 => FieldDataType::UnsignedDataNumber,
1458InformationElementSemantics = 344 => FieldDataType::UnsignedDataNumber,
1459InformationElementUnits = 345 => FieldDataType::UnsignedDataNumber,
1460PrivateEnterpriseNumber = 346 => FieldDataType::UnsignedDataNumber,
1461VirtualStationInterfaceId = 347 => FieldDataType::String,
1462VirtualStationInterfaceName = 348 => FieldDataType::String,
1463VirtualStationUuid = 349 => FieldDataType::String,
1464VirtualStationName = 350 => FieldDataType::String,
1465Layer2segmentId = 351 => FieldDataType::UnsignedDataNumber,
1466Layer2octetDeltaCount = 352 => FieldDataType::UnsignedDataNumber,
1467Layer2octetTotalCount = 353 => FieldDataType::UnsignedDataNumber,
1468IngressUnicastPacketTotalCount = 354 => FieldDataType::UnsignedDataNumber,
1469IngressMulticastPacketTotalCount = 355 => FieldDataType::UnsignedDataNumber,
1470IngressBroadcastPacketTotalCount = 356 => FieldDataType::UnsignedDataNumber,
1471EgressUnicastPacketTotalCount = 357 => FieldDataType::UnsignedDataNumber,
1472EgressBroadcastPacketTotalCount = 358 => FieldDataType::UnsignedDataNumber,
1473MonitoringIntervalStartMilliSeconds = 359 => FieldDataType::DurationMillis,
1474MonitoringIntervalEndMilliSeconds = 360 => FieldDataType::DurationMillis,
1475PortRangeStart = 361 => FieldDataType::UnsignedDataNumber,
1476PortRangeEnd = 362 => FieldDataType::UnsignedDataNumber,
1477PortRangeStepSize = 363 => FieldDataType::UnsignedDataNumber,
1478PortRangeNumPorts = 364 => FieldDataType::UnsignedDataNumber,
1479StaMacaddress = 365 => FieldDataType::MacAddr,
1480StaIpv4address = 366 => FieldDataType::Ip4Addr,
1481WtpMacaddress = 367 => FieldDataType::MacAddr,
1482IngressInterfaceType = 368 => FieldDataType::UnsignedDataNumber,
1483EgressInterfaceType = 369 => FieldDataType::UnsignedDataNumber,
1484RtpSequenceNumber = 370 => FieldDataType::UnsignedDataNumber,
1485UserName = 371 => FieldDataType::String,
1486ApplicationCategoryName = 372 => FieldDataType::String,
1487ApplicationSubCategoryName = 373 => FieldDataType::String,
1488ApplicationGroupName = 374 => FieldDataType::String,
1489OriginalFlowsPresent = 375 => FieldDataType::UnsignedDataNumber,
1490OriginalFlowsInitiated = 376 => FieldDataType::UnsignedDataNumber,
1491OriginalFlowsCompleted = 377 => FieldDataType::UnsignedDataNumber,
1492DistinctCountOfSourceIpaddress = 378 => FieldDataType::UnsignedDataNumber,
1493DistinctCountOfDestinationIpaddress = 379 => FieldDataType::UnsignedDataNumber,
1494DistinctCountOfSourceIpv4address = 380 => FieldDataType::UnsignedDataNumber,
1495DistinctCountOfDestinationIpv4address = 381 => FieldDataType::UnsignedDataNumber,
1496DistinctCountOfSourceIpv6address = 382 => FieldDataType::UnsignedDataNumber,
1497DistinctCountOfDestinationIpv6address = 383 => FieldDataType::UnsignedDataNumber,
1498ValueDistributionMethod = 384 => FieldDataType::UnsignedDataNumber,
1499Rfc3550jitterMilliseconds = 385 => FieldDataType::UnsignedDataNumber,
1500Rfc3550jitterMicroseconds = 386 => FieldDataType::UnsignedDataNumber,
1501Rfc3550jitterNanoseconds = 387 => FieldDataType::UnsignedDataNumber,
1502Dot1qDei = 388 => FieldDataType::UnsignedDataNumber,
1503Dot1qCustomerDei = 389 => FieldDataType::UnsignedDataNumber,
1504FlowSelectorAlgorithm = 390 => FieldDataType::UnsignedDataNumber,
1505FlowSelectedOctetDeltaCount = 391 => FieldDataType::UnsignedDataNumber,
1506FlowSelectedPacketDeltaCount = 392 => FieldDataType::UnsignedDataNumber,
1507FlowSelectedFlowDeltaCount = 393 => FieldDataType::UnsignedDataNumber,
1508SelectorIdtotalFlowsObserved = 394 => FieldDataType::UnsignedDataNumber,
1509SelectorIdtotalFlowsSelected = 395 => FieldDataType::UnsignedDataNumber,
1510SamplingFlowInterval = 396 => FieldDataType::UnsignedDataNumber,
1511SamplingFlowSpacing = 397 => FieldDataType::UnsignedDataNumber,
1512FlowSamplingTimeInterval = 398 => FieldDataType::UnsignedDataNumber,
1513FlowSamplingTimeSpacing = 399 => FieldDataType::UnsignedDataNumber,
1514HashFlowDomain = 400 => FieldDataType::UnsignedDataNumber,
1515TransportOctetDeltaCount = 401 => FieldDataType::UnsignedDataNumber,
1516TransportPacketDeltaCount = 402 => FieldDataType::UnsignedDataNumber,
1517OriginalExporterIpv4address = 403 => FieldDataType::Ip4Addr,
1518OriginalExporterIpv6address = 404 => FieldDataType::Ip6Addr,
1519OriginalObservationDomainId = 405 => FieldDataType::UnsignedDataNumber,
1520IntermediateProcessId = 406 => FieldDataType::UnsignedDataNumber,
1521IgnoredDataRecordTotalCount = 407 => FieldDataType::UnsignedDataNumber,
1522DataLinkFrameType = 408 => FieldDataType::UnsignedDataNumber,
1523SectionOffset = 409 => FieldDataType::UnsignedDataNumber,
1524SectionExportedOctets = 410 => FieldDataType::UnsignedDataNumber,
1525Dot1qServiceInstanceTag = 411 => FieldDataType::String,
1526Dot1qServiceInstanceId = 412 => FieldDataType::UnsignedDataNumber,
1527Dot1qServiceInstancePriority = 413 => FieldDataType::UnsignedDataNumber,
1528Dot1qCustomerSourceMacaddress = 414 => FieldDataType::String,
1529Dot1qCustomerDestinationMacaddress = 415 => FieldDataType::MacAddr,
1530PostLayer2octetDeltaCount = 417 => FieldDataType::UnsignedDataNumber,
1531PostMcastLayer2octetDeltaCount = 418 => FieldDataType::UnsignedDataNumber,
1532PostLayer2octetTotalCount = 420 => FieldDataType::UnsignedDataNumber,
1533PostMcastLayer2octetTotalCount = 421 => FieldDataType::UnsignedDataNumber,
1534MinimumLayer2totalLength = 422 => FieldDataType::UnsignedDataNumber,
1535MaximumLayer2totalLength = 423 => FieldDataType::UnsignedDataNumber,
1536DroppedLayer2octetDeltaCount = 424 => FieldDataType::UnsignedDataNumber,
1537DroppedLayer2octetTotalCount = 425 => FieldDataType::UnsignedDataNumber,
1538IgnoredLayer2octetTotalCount = 426 => FieldDataType::UnsignedDataNumber,
1539NotSentLayer2octetTotalCount = 427 => FieldDataType::UnsignedDataNumber,
1540Layer2octetDeltaSumOfSquares = 428 => FieldDataType::UnsignedDataNumber,
1541Layer2octetTotalSumOfSquares = 429 => FieldDataType::UnsignedDataNumber,
1542Layer2frameDeltaCount = 430 => FieldDataType::UnsignedDataNumber,
1543Layer2frameTotalCount = 431 => FieldDataType::UnsignedDataNumber,
1544PseudoWireDestinationIpv4address = 432 => FieldDataType::Ip4Addr,
1545IgnoredLayer2frameTotalCount = 433 => FieldDataType::UnsignedDataNumber,
1546MibObjectValueInteger = 434 => FieldDataType::SignedDataNumber,
1547MibObjectValueOctetString = 435 => FieldDataType::String,
1548MibObjectValueOid = 436 => FieldDataType::String,
1549MibObjectValueBits = 437 => FieldDataType::String,
1550MibObjectValueIpaddress = 438 => FieldDataType::Ip4Addr,
1551MibObjectValueCounter = 439 => FieldDataType::UnsignedDataNumber,
1552MibObjectValueGauge = 440 => FieldDataType::UnsignedDataNumber,
1553MibObjectValueTimeTicks = 441 => FieldDataType::UnsignedDataNumber,
1554MibObjectValueUnsigned = 442 => FieldDataType::UnsignedDataNumber,
1555MibObjectValueTable = 443 => FieldDataType::String,
1556MibObjectValueRow = 444 => FieldDataType::String,
1557MibObjectIdentifier = 445 => FieldDataType::String,
1558MibSubIdentifier = 446 => FieldDataType::UnsignedDataNumber,
1559MibIndexIndicator = 447 => FieldDataType::UnsignedDataNumber,
1560MibCaptureTimeSemantics = 448 => FieldDataType::UnsignedDataNumber,
1561MibContextEngineId = 449 => FieldDataType::String,
1562MibContextName = 450 => FieldDataType::String,
1563MibObjectName = 451 => FieldDataType::String,
1564MibObjectDescription = 452 => FieldDataType::String,
1565MibObjectSyntax = 453 => FieldDataType::String,
1566MibModuleName = 454 => FieldDataType::String,
1567MobileImsi = 455 => FieldDataType::String,
1568MobileMsisdn = 456 => FieldDataType::String,
1569HttpStatusCode = 457 => FieldDataType::UnsignedDataNumber,
1570SourceTransportPortsLimit = 458 => FieldDataType::UnsignedDataNumber,
1571HttpRequestMethod = 459 => FieldDataType::String,
1572HttpRequestHost = 460 => FieldDataType::String,
1573HttpRequestTarget = 461 => FieldDataType::String,
1574HttpMessageVersion = 462 => FieldDataType::String,
1575NatInstanceId = 463 => FieldDataType::UnsignedDataNumber,
1576InternaladdressRealm = 464 => FieldDataType::String,
1577ExternaladdressRealm = 465 => FieldDataType::String,
1578NatQuotaExceededEvent = 466 => FieldDataType::UnsignedDataNumber,
1579NatThresholdEvent = 467 => FieldDataType::UnsignedDataNumber,
1580HttpUserAgent = 468 => FieldDataType::String,
1581HttpContentType = 469 => FieldDataType::String,
1582HttpReasonPhrase = 470 => FieldDataType::String,
1583MaxSessionEntries = 471 => FieldDataType::UnsignedDataNumber,
1584MaxBibentries = 472 => FieldDataType::UnsignedDataNumber,
1585MaxEntriesPerUser = 473 => FieldDataType::UnsignedDataNumber,
1586MaxSubscribers = 474 => FieldDataType::UnsignedDataNumber,
1587MaxFragmentsPendingReassembly = 475 => FieldDataType::UnsignedDataNumber,
1588AddressPoolHighThreshold = 476 => FieldDataType::UnsignedDataNumber,
1589AddressPoolLowThreshold = 477 => FieldDataType::UnsignedDataNumber,
1590AddressPortMappingHighThreshold = 478 => FieldDataType::UnsignedDataNumber,
1591AddressPortMappingLowThreshold = 479 => FieldDataType::UnsignedDataNumber,
1592AddressPortMappingPerUserHighThreshold = 480 => FieldDataType::UnsignedDataNumber,
1593GlobaladdressMappingHighThreshold = 481 => FieldDataType::UnsignedDataNumber,
1594VpnIdentifier = 482 => FieldDataType::String,
1595BgpCommunity = 483 => FieldDataType::UnsignedDataNumber,
1596BgpSourceCommunityList = 484 => FieldDataType::String,
1597BgpDestinationCommunityList = 485 => FieldDataType::String,
1598BgpExtendedCommunity = 486 => FieldDataType::String,
1599BgpSourceExtendedCommunityList = 487 => FieldDataType::String,
1600BgpDestinationExtendedCommunityList = 488 => FieldDataType::String,
1601BgpLargeCommunity = 489 => FieldDataType::String,
1602BgpSourceLargeCommunityList = 490 => FieldDataType::String,
1603BgpDestinationLargeCommunityList = 491 => FieldDataType::String,
1604SrhFlagsIpv6 = 492 => FieldDataType::UnsignedDataNumber,
1605SrhTagIpv6 = 493 => FieldDataType::UnsignedDataNumber,
1606SrhSegmentIpv6 = 494 => FieldDataType::Ip6Addr,
1607SrhActiveSegmentIpv6 = 495 => FieldDataType::Ip6Addr,
1608SrhSegmentIpv6basicList = 496 => FieldDataType::String,
1609SrhSegmentIpv6listSection = 497 => FieldDataType::String,
1610SrhSegmentsIpv6left = 498 => FieldDataType::UnsignedDataNumber,
1611SrhIpv6section = 499 => FieldDataType::String,
1612SrhIpv6activeSegmentType = 500 => FieldDataType::UnsignedDataNumber,
1613SrhSegmentIpv6locatorLength = 501 => FieldDataType::UnsignedDataNumber,
1614SrhSegmentIpv6endpointBehavior = 502 => FieldDataType::UnsignedDataNumber,
1615    }
1616}
1617
1618#[cfg(test)]
1619mod ipfix_lookup_tests {
1620
1621    use crate::variable_versions::data_number::FieldDataType;
1622
1623    use super::IANAIPFixField;
1624
1625    use insta::assert_yaml_snapshot;
1626
1627    #[test]
1628    fn it_tests_field_lookup() {
1629        let mut lookup = vec![];
1630
1631        for i in 0..=502 {
1632            lookup.push(IANAIPFixField::from(i));
1633        }
1634
1635        assert_yaml_snapshot!(lookup);
1636    }
1637
1638    #[test]
1639    fn it_tests_field_data_type_lookup() {
1640        let mut lookup: Vec<FieldDataType> = vec![];
1641
1642        for i in 0..=502 {
1643            lookup.push(IANAIPFixField::from(i).into());
1644        }
1645
1646        assert_yaml_snapshot!(lookup);
1647    }
1648}