3.2.1. Primary Block
The echo service modifies the primary block to route the response back to the originator. Since the primary block is modified, its CRC MUST be recalculated before transmission. The CRC type MUST NOT be changed.¶
The following specifies the handling of each primary block field:¶
- Source and Destination:
-
The echo service MUST set the destination to the received bundle's source, and MUST set the source to the echo service's endpoint (the received bundle's destination).¶
- Creation Timestamp and Lifetime:
-
The echo service MUST preserve the creation timestamp and lifetime unchanged. Preserving these fields allows the originating client to control the maximum round-trip time for the bundle, and match status reports generated on the response path to the original bundle, see Appendix A.4 for client implementation guidance.¶
- Bundle Processing Control Flags:
-
The echo service MUST preserve the bundle processing control flags unchanged. Because these flags are preserved, any status report requests in the original bundle will also apply to the response bundle; see Appendix A.4 for guidance on interpreting status reports in ping clients.¶
- Report-to EID:
-
The echo service MUST preserve the report-to EID unchanged. If the original sender requested status reports, this ensures reports about the response bundle are delivered to the same endpoint.¶
Note: When the creation timestamp is preserved, a theoretical collision is possible if two bundles from different originators arrive with identical creation timestamps. Both reflections would have the same source and creation timestamp, making them indistinguishable. This is extremely rare in practice and represents an acceptable trade-off; diagnostic tools that use the echo service are typically designed to tolerate occasional packet loss.¶