Skip to main content

Probe IPFIX Fields

The WhiteOwl probe exports flow data using IPFIX (IP Flow Information Export), the IETF standard for network flow reporting. Each flow record contains a rich set of fields covering standard network metadata, TCP performance analytics, deep packet inspection, microburst detection, and encapsulation visibility.

Standard IPFIX Fields

These fields follow the IANA IPFIX Information Element registry and are compatible with any standard IPFIX collector.

FieldIPFIX IDSizeDescription
Octet Delta Count18 bytesTotal bytes transferred in the flow
Packet Delta Count28 bytesTotal packets in the flow
Protocol41 byteIP protocol number (6=TCP, 17=UDP, 1=ICMP)
IP Class of Service51 byteToS/DSCP value from the IP header
TCP Control Bits62 bytesCumulative TCP flags observed (SYN, ACK, FIN, RST, etc.)
Source Port72 bytesLayer 4 source port
Source IPv4 Address84 bytesSource IP address
Ingress Interface104 bytesInterface index where the packet was captured
Destination Port112 bytesLayer 4 destination port
Destination IPv4 Address124 bytesDestination IP address
Minimum TTL521 byteLowest TTL value observed in the flow
Maximum TTL531 byteHighest TTL value observed in the flow
Fragment Identification544 bytesIP fragment identification field
Source MAC Address566 bytesSource MAC from the Ethernet header
VLAN ID582 bytes802.1Q VLAN tag (0 if untagged)
Destination MAC Address806 bytesDestination MAC from the Ethernet header
Fragment Offset882 bytesIP fragment offset
Flow Start Time1528 bytesTimestamp of the first packet (milliseconds)
Flow End Time1538 bytesTimestamp of the last packet (milliseconds)

Enterprise Fields (PEN 99999)

Enterprise fields use Private Enterprise Number 99999 to export probe-specific measurements that go beyond standard IPFIX. These fields require a collector that supports enterprise information elements, such as goflow2 with custom field mappings.

TCP Performance

Real-time TCP performance metrics calculated per-flow from observed packet behavior. These provide SolarWinds-style network quality visibility without requiring agents on endpoints.

FieldEnterprise IDSizeDescription
Min RTT14 bytesMinimum round-trip time observed (microseconds), measured from SYN/SYN-ACK handshake
Max RTT24 bytesMaximum round-trip time observed (microseconds)
Avg RTT34 bytesAverage round-trip time (microseconds)
Retransmit Count44 bytesNumber of TCP retransmissions detected via sequence number analysis
Min TCP Window52 bytesSmallest TCP window size advertised (bytes)
Max TCP Window62 bytesLargest TCP window size advertised (bytes)

Microburst Detection

Short-duration traffic spike measurements using configurable sliding windows. Useful for identifying bursty traffic patterns that averages hide.

FieldEnterprise IDSizeDescription
Max Bytes Per Window78 bytesPeak bytes observed in a single burst window
Max Packets Per Window88 bytesPeak packets observed in a single burst window
Burst Window Duration92 bytesBurst detection window size (milliseconds)

Deep Packet Inspection (nDPI)

Application-layer classification powered by nDPI. The probe inspects the first N packets of each flow to identify the application protocol and category. Results are exported as numeric IDs that map to nDPI's protocol and category registries.

FieldEnterprise IDSizeDescription
Application Protocol ID9002 bytesnDPI protocol identifier (e.g., 7=HTTP, 91=TLS, 126=Spotify)
Application Category ID9012 bytesnDPI category identifier (e.g., 5=Web, 10=Streaming, 14=Network)
tip

Protocol and category IDs are resolved to human-readable names in ClickHouse using dictionary lookups. For example, protocol ID 91 resolves to TLS and category ID 5 resolves to Web.

Encapsulation

Visibility into tunneled and tagged traffic. The probe detects VLAN, MPLS, and VXLAN encapsulation and exports the relevant metadata. For VXLAN, the probe decapsulates the outer headers and reports flow data based on the inner (overlay) packet, with the VNI stored as metadata.

FieldEnterprise IDSizeDescription
MPLS Top Label9104 bytesTop-of-stack MPLS label (20-bit value in uint32)
MPLS Exp9111 byteMPLS Traffic Class / Experimental bits (3-bit value)
MPLS TTL9121 byteMPLS Time-to-Live
VXLAN VNI9204 bytesVXLAN Network Identifier (24-bit value in uint32)
note

VLAN ID uses the standard IPFIX field 58, not an enterprise field. It is natively supported by all IPFIX collectors without custom configuration.

Field Behavior

  • Zero values: All fields are always present in every flow record. A value of 0 indicates the field is not applicable (e.g., vlan_id = 0 means untagged traffic, vxlan_vni = 0 means non-VXLAN).
  • TCP performance fields: Only populated for TCP flows. UDP and ICMP flows will have zeros for RTT, retransmit, and window fields.
  • DPI fields: Populated after the probe classifies the flow (typically within the first 12 packets). Unclassified flows report 0 for both protocol and category IDs.
  • VXLAN flows: The 5-tuple (src/dst IP, src/dst port, protocol) reflects the inner packet. The outer tunnel headers are stripped during decapsulation.

goflow2 Mapping

To receive these enterprise fields in goflow2, add the following to your mapping configuration:

ipfix:
mapping:
# TCP Performance
- { field: 1, pen: 99999, penprovided: true, destination: min_rtt_us }
- { field: 2, pen: 99999, penprovided: true, destination: max_rtt_us }
- { field: 3, pen: 99999, penprovided: true, destination: avg_rtt_us }
- { field: 4, pen: 99999, penprovided: true, destination: retransmit_count }
- { field: 5, pen: 99999, penprovided: true, destination: min_tcp_window }
- { field: 6, pen: 99999, penprovided: true, destination: max_tcp_window }
# Microburst
- { field: 7, pen: 99999, penprovided: true, destination: max_bytes_per_window }
- { field: 8, pen: 99999, penprovided: true, destination: max_packets_per_window }
- { field: 9, pen: 99999, penprovided: true, destination: burst_window_ms }
# DPI
- { field: 900, pen: 99999, penprovided: true, destination: app_protocol_id }
- { field: 901, pen: 99999, penprovided: true, destination: app_category_id }
# Encapsulation
- { field: 910, pen: 99999, penprovided: true, destination: mpls_top_label }
- { field: 911, pen: 99999, penprovided: true, destination: mpls_exp }
- { field: 912, pen: 99999, penprovided: true, destination: mpls_ttl }
- { field: 920, pen: 99999, penprovided: true, destination: vxlan_vni }