Export of Segment Routing over IPv6 Information in IP Flow Information Export (IPFIX)
Extracted elements (20)
The IEs srhSegmentIPv6, srhSegmentIPv6LocatorLength, and srhSegmentIPv6EndpointBehavior are designated as generic fields for IPFIX Options Templates or Structured Data rather than per-flow records, because SRv6 endpoint behavior and locator information is relatively static and suits the Options Template scoping model.
Two alternative IPFIX IEs are provided for the SRv6 Segment List. srhSegmentIPv6BasicList uses IPFIX Structured Data basicList format, which is more convenient for collection (pre-structured list) but requires extra exporter processing to map to basicList encoding. srhSegmentIPv6ListSection exports raw bytes, enabling immediate export with no exporter manipulation, at the cost of collector-side SR decoding.
An exporter is not expected to support both srhSegmentIPv6BasicList and srhSegmentIPv6ListSection simultaneously. Operators should choose one encoding based on whether exporter processing overhead or collector decoding complexity is the dominant concern in their deployment.
The SRv6 Segment List in srhSegmentIPv6BasicList, srhSegmentIPv6ListSection, and destinationIPv6Address may contain compressed-SID containers (draft-ietf-spring-srv6-srh-compression). Collectors can decompose these using srhSegmentIPv6EndpointBehavior to identify SR Endpoint Flavors and srhSegmentIPv6LocatorLength to identify the common most-significant locator bits.
When using srhSegmentIPv6ListSection to export the SRv6 Segment List as a raw octetArray, the data collection MUST be able to decode the IPv6 addresses according to the SR specifications (RFC 8754), since no IPFIX structuring is applied by the exporter.
srhActiveSegmentIPv6 (ElementID 495) is a 128-bit ipv6Address IPFIX IE representing the currently active SRv6 segment, i.e., the segment being processed at the current hop as defined in RFC 8402.
srhFlagsIPv6 (ElementID 492) is an 8-bit unsigned flags IPFIX IE capturing the Flags field from the IPv6 Segment Routing Header as defined in RFC 8754 Section 2. Assigned flag meanings are in the IANA 'Segment Routing Header Flags' registry.
srhIPv6ActiveSegmentType (ElementID 500) is an 8-bit identifier IPFIX IE indicating which routing protocol or PCEP extension was the source of the active SRv6 segment. Values are defined in the 'IPFIX IPv6 SRH Segment Type (Value 500)' subregistry created by this document.
srhIPv6Section (ElementID 499) is a variable-length octetArray IPFIX IE exporting the complete SRH and its TLVs as a raw byte sequence, as specified in RFC 8754 Section 2.
srhSegmentIPv6 (ElementID 494) is a 128-bit ipv6Address IPFIX IE representing one SRv6 segment from the SRH Segment List. It is a generic field intended for use in IPFIX Options Templates or Structured Data contexts, not standalone per-flow records.
srhSegmentIPv6BasicList (ElementID 496) is a variable-length IPFIX IE holding an ordered basicList (RFC 6313) of zero or more 128-bit IPv6 addresses representing the SRv6 Segment List. Per RFC 8754, the list is encoded from last segment to first: Segment List[0] is the last segment of the SR Policy.
srhSegmentIPv6EndpointBehavior (ElementID 502) is a 16-bit unsigned identifier IPFIX IE representing the SRv6 Endpoint behavior per RFC 8986 Section 4. Values are drawn from the IANA 'SRv6 Endpoint Behaviors' registry. It is a generic field for Options Templates.
srhSegmentIPv6ListSection (ElementID 497) is a variable-length octetArray IPFIX IE carrying the raw SRv6 Segment List bytes as defined in RFC 8754 Section 2, without additional IPFIX structuring. The collector must decode the IPv6 addresses according to SR specifications.
srhSegmentIPv6LocatorLength (ElementID 501) carries the length of the SRH segment IPv6 locator as a count of significant bits. Combined with srhSegmentIPv6, it enables calculation of the SRv6 Locator as described in RFC 8986 Section 3.1. It is a generic field for Options Templates.
srhSegmentsIPv6Left (ElementID 498) is an 8-bit unsigned integer IPFIX IE indicating the number of segments remaining to reach the end of the Segment List, corresponding to the 'Segments Left' field in RFC 8200 Section 4.4 and referenced in RFC 8754.
srhTagIPv6 (ElementID 493) is a 16-bit identifier IPFIX IE capturing the Tag field from the SRH, used to mark a packet as part of a class or group of packets sharing the same set of properties.
A new 'IPFIX IPv6 SRH Segment Type (Value 500)' subregistry under the IPFIX Information Elements registry has been created with Expert Review allocation policy. Initial values: 0 (Unknown), 1 (Segment Routing Policy, RFC 9256), 2 (PCEP), 3 (OSPFv3 SR), 4 (IS-IS SR, RFC 9352), 5 (BGP SR Prefix-SID, RFC 8669).
Eleven new IPFIX Information Elements (ElementIDs 492–502) have been added to the IANA 'IPFIX Information Elements' registry: srhFlagsIPv6, srhTagIPv6, srhSegmentIPv6, srhActiveSegmentIPv6, srhSegmentIPv6BasicList, srhSegmentIPv6ListSection, srhSegmentsIPv6Left, srhIPv6Section, srhIPv6ActiveSegmentType, srhSegmentIPv6LocatorLength, and srhSegmentIPv6EndpointBehavior.
The IEs described in this document export provider-plane data metrics revealing how packets are forwarded within an SRv6 network, which may be sensitive. Applications and operators must evaluate the sensitivity of this information in their implementation context and apply the data-at-rest storage guidance in RFC 7011 Section 11.8 as appropriate.
Variable-length IPFIX IEs (srhSegmentIPv6BasicList, srhSegmentIPv6ListSection, srhIPv6Section) are declared in Template Records with Field Length 0xFFFF. For basicList, the actual length is carried in the List Length field per RFC 6313; for octetArray IEs, the actual length is encoded in the Data Set per RFC 7011 Section 7 (1 byte for lengths < 255, or 0xFF followed by a 2-byte length otherwise).