Subject to restrictions given below, a host MAY be able to act as an intermediate hop in a source route, forwarding a source- routed datagram to the next specified hop.
However, in performing this gateway-like function, the host MUST obey all the relevant rules for a gateway forwarding source-routed datagrams [INTRO:2]. This includes the following specific provisions, which override the corresponding host provisions given earlier in this document:
The TTL field MUST be decremented and the datagram perhaps discarded as specified for a gateway in [INTRO:2].
A host MUST be able to generate Destination Unreachable messages with the following codes:
|4||(Fragmentation Required but DF Set) when a source- routed datagram cannot be fragmented to fit into the target network;|
|5||(Source Route Failed) when a source-routed datagram cannot be forwarded, e.g., because of a routing problem or because the next hop of a strict source route is not on a connected network.|
A source-routed datagram being forwarded MAY (and normally will) have a source address that is not one of the IP addresses of the forwarding host.
A host that is forwarding a source-routed datagram containing a Record Route option MUST update that option, if it has room.
A host that is forwarding a source-routed datagram containing a Timestamp Option MUST add the current timestamp to that option, according to the rules for this option.
To define the rules restricting host forwarding of source- routed datagrams, we use the term "local source-routing" if the next hop will be through the same physical interface through which the datagram arrived; otherwise, it is "non-local source-routing".
If a host receives a datagram with an incomplete source route but does not forward it for some reason, the host SHOULD return an ICMP Destination Unreachable (code 5, Source Route Failed) message, unless the datagram was itself an ICMP error message.