3.3.2. Primary Block
The primary block of the response bundle MUST be set as follows. Where these rules take a value from the request bundle, it is from the delivery metadata (Section 3.2); this is the only respect in which the response bundle depends on the request bundle.¶
- Destination:
-
MUST be set to the source node ID of the request bundle.¶
- Source:
-
If the request bundle was addressed to a singleton endpoint, MUST be set to that echo service endpoint ID; where a node exposes more than one echo service endpoint (for example, both an
ipnand adtnendpoint), this is the specific endpoint to which the request bundle was addressed. If the request bundle was addressed to a non-singleton endpoint, which cannot serve as the source of a bundle, the source SHOULD be set to the EID of the echo service node's administrative endpoint (Section 4.4).¶ - Creation Timestamp:
-
An echo service MUST NOT reuse the request bundle's creation timestamp; the response bundle is assigned its own, as for any bundle the node sources.¶
- Lifetime:
-
The response bundle SHOULD be assigned a lifetime that gives it a reasonable opportunity to reach the originator. Like any bundle the node sources, it is subject to the node's local lifetime policy, which bounds the retention cost of response bundles even when a request bundle asserts a very long lifetime. Within that bound, an echo service MAY set the response bundle's lifetime by reusing the request bundle's lifetime value, or by deriving it from the request bundle's observed transit time (its age on reception). A lifetime derived from observed transit time limits retention, but can underestimate the requirement of a return path slower than the forward path, and so benefits from a generous margin.¶
- Report-To:
-
If the request bundle requested status reports, an echo service SHOULD set the response bundle's report-to EID to that of the request bundle, so that status reports for both legs of the exchange reach the same observer. Because the request bundle and response bundle are distinct bundles, each report is then attributable to its leg by the source EID of its subject bundle. Otherwise, the report-to EID is set as for any bundle the node sources.¶
3.3.2.1. Bundle Processing Control Flags
The response bundle's bundle processing control flags are set as for any bundle the node sources, except as follows.¶
- "ADU is an administrative record":
-
MUST NOT be set. The response is a copy of the request, which is not an administrative record (Section 3.3.1).¶
- "Bundle must not be fragmented":
-
SHOULD be copied from the request bundle, unless local policy requires otherwise. A client that sets this flag is typically measuring round-trip time or probing the largest bundle a path will carry (Appendix A.5.2), and either measurement is undermined if the response bundle is fragmented on the return path.¶
- "Acknowledgement by application is requested":
-
MUST NOT be set. The response does not solicit an application acknowledgement.¶
- Status-report-request flags ("Request reporting of bundle reception", "Request reporting of bundle forwarding", "Request reporting of bundle delivery", and "Request reporting of bundle deletion"):
-
MAY be set, typically by mirroring the request bundle's flags, so that an observer can follow both legs of the exchange. These take effect together with the report-to EID (see the Report-To field above).¶
- "Status time requested in reports":
-
MAY be set, typically by mirroring the request bundle's value when the echo service mirrors the status-report-request flags, so that reports for the response bundle carry the time of the reported event whenever the requester asked for that detail.¶