Information Model and XML Data Model for Traceroute Measurements
Extracted elements (28)
The schema separates 'RequestMetadata' (parameters requested) from 'MeasurementMetadata' (parameters actually used) to capture discrepancies between what was requested and what an implementation applied. Both share a single '_Metadata' XML type; elements absent in a request are represented as empty elements meaning 'use default'.
The XML schema uses an extensible template approach modeled after IPFIX, where configuration metadata is referenced by result elements via the 'TestName' unique identifier (per RFC 4560). This design was coordinated with Open Grid Forum to ensure a one-to-one transformation between the two schemas.
UDP datagrams are recommended as traceroute probe transport rather than ICMP Echoes because many routers do not return ICMP TIME_EXCEEDED in response to an ICMP Echo, making ICMP-based implementations unreliable for hop discovery.
XML was chosen over binary formats (DISMAN-TRACEROUTE-MIB SMIv2 and IPFIX) because it supports clean data structuring, is human-readable, and benefits from extensive tooling. Expected data volumes for traceroute measurements are not extremely high, making XML's resource overhead an acceptable tradeoff.
CtlMaxFailures is included solely for full compatibility with DISMAN-TRACEROUTE-MIB (RFC 4560); the document explicitly notes that no known traceroute implementation currently supports this parameter.
The traceroute XML schema is compatible with the Open Grid Forum (OGF) traceroute schema; a simple one-to-one transformation between the two exists because both were designed to minimize unnecessary redundancy.
An XML declaration SHOULD be present in conforming documents, specifying the version and character encoding (UTF-8). Multi-line strings are subject to RFC 5198.
Elements of type '_CtlType' may contain elements from unknown namespaces; those elements MUST be ignored if their namespace is unknown to the processor, enabling forward-compatible extensibility.
Measurement methodologies SHOULD include appropriate techniques to reduce the probability that measurement traffic can be distinguished from normal traffic, preventing differential router treatment and attacker injection of artificial traffic.
Measurement parameters MUST be carefully selected so that measurements inject trivial amounts of additional traffic into networks; injecting too much can skew results and in extreme cases cause congestion and denial of service.
Transmission of traceroute measurement information over a network is RECOMMENDED to use appropriate protection mechanisms for privacy, integrity, and authenticity. Stored data is RECOMMENDED to be protected with secure authentication and authorization.
Values for XML elements using the 'dateTime' schema type MUST be restricted to values defined in RFC 3339.
XML processing instructions and comments in documents conforming to the traceroute schema MUST be ignored by processors.
Traceroute measurement data may contain sensitive information about network paths, routing states, IP addresses, and round-trip times that network operators may want to protect for business or security reasons. Both transmission and storage of this data require access controls.
Each 'probe' sub-element within a hop contains: HopAddr (IP address, not DNS), optional HopName (DNS name), 0–255 optional MPLSLabelStackEntry elements, ProbeRoundTripTime, ResponseStatus, and Time (timestamp of response receipt at the interface).
'MPLSLabelStackEntry' reports one MPLS label stack entry as a 32-bit unsignedInt encoding the MPLS label, Exp field, S flag, and MPLS TTL as defined in RFC 3032. Multiple entries must appear in top-to-bottom stack order.
OSName, OSVersion, ToolName, and ToolVersion elements are required in 'MeasurementMetadata' to enable cross-implementation result comparison. Because standard IPPM metrics do not apply to traceroute, OS and tool identification are the only means of normalizing results.
'ProbeRoundTripTime' is a choice type: either 'roundTripTime' (unsignedInt in milliseconds, truncated — values below 1 ms encoded as 0) or 'roundTripTimeNotAvailable' (empty element indicating timeout or failed transmission).
The 'MeasurementResult' element records per-run traceroute results and contains: TestName, ResultsStartDateAndTime, ResultsIpTgtAddrType, ResultsIpTgtAddr, ProbeResults, and ResultsEndDateAndTime. Each 'ProbeResults' holds 1–255 'hop' elements, each containing 1–10 'probe' elements.
The 'RequestMetadata' element specifies configuration parameters requested for a traceroute measurement, including CtlTargetAddress, CtlMaxTtl, CtlProbesPerHop, CtlTimeOut, CtlPort, CtlType, and other optional fields. When omitted, all requested parameters are assumed to have been used as recorded in 'MeasurementMetadata'.
The root 'traceRoute' XML element contains an optional 'RequestMetadata' element and 0 to 2,147,483,647 'Measurement' elements. Each 'Measurement' holds an optional 'MeasurementMetadata' and 0 to 2,147,483,647 'MeasurementResult' elements, enabling a single file to store one or many traceroute measurements.
The 'TestName' element (string255) correlates configuration and results elements and is required in both metadata and result elements. It is not necessarily globally unique and is chosen in accordance with RFC 4560.
Two IANA URN registrations are made per RFC 3688: (1) namespace URI 'urn:ietf:params:xml:ns:traceroute-1.0' for the IPPM traceroute measurement namespace, and (2) schema URI 'urn:ietf:params:xml:schema:traceroute-1.0' pointing to the XML schema defined in Section 7.
Traceroute measurements inject probe traffic into the network and can be abused for denial-of-service attacks disguised as legitimate measurement activity. Authentication techniques such as digital signatures may guard against injected artificial traffic attacks.
CtlProbeDataSize is encoded as unsignedShort with maximum 65507 (65535 minus 20-byte IPv4 header minus 8-byte UDP header, default 0). CtlTimeOut is unsignedByte constrained 1–60 seconds (default 3). CtlPort is unsignedShort min 1 (default 33434). CtlMaxTtl and CtlInitialTtl use u8nonzero (1–255, defaults 30 and 1 respectively).
The '_CtlType' complex type is a choice of TCP, UDP, or ICMP (each empty elements) or xs:any with namespace '##other', explicitly allowing probe-type extensions from foreign namespaces.
The 'operationResponseStatus' simple type enumerates eleven values: responseReceived, unknown, internalError, requestTimedOut, unknownDestinationAddress, noRouteToTarget, interfaceInactiveToTarget, arpFailure, maxConcurrentLimitReached, unableToResolveDnsName, invalidHostAddress.
The XML schema is assigned namespace 'urn:ietf:params:xml:ns:traceroute-1.0' and uses UTF-8 encoding. The 'inetAddress' complex type is a choice among: inetAddressUnknown (empty), inetAddressIpv4 (dotted-quad), inetAddressIpv6 (colon-hex), inetAddressASNumber (32-bit asNumber + mappingType enumeration), or inetAddressDns (string, max 256 chars).