SDR Working Group Deborah Estrin INTERNET DRAFT Daniel Zappala USC Tony Li cisco Systems 6/22/93 Revision 0 Expiration Date: 12/31/93 Source Demand Routing: Route Setup Status of this Memo This document is an Internet Draft. Internet Drafts are working documents of the Internet Engineering Task Force (IETF), its Areas, and its Working Groups. Note that other groups may also distribute working documents as Internet Drafts. Internet Drafts are draft documents valid for a maximum of six months. Internet Drafts may be updated, replaced, or obsoleted by other documents at any time. It is not appropriate to use Internet Drafts as reference material or to cite them other than as a "working draft" or "work in progress". 1 Introduction This document is a supplement to the internet draft "Source Demand Routing: Packet Format and Forwarding Specification" [1]. The initial specification in [1] includes a full SDRP route in every data packet sent. In some cases, commonly known as "flows", where the duration of a packet stream is significantly longer than the end-to-end round-trip delay, and particularly where the amount of payload in the packet is small, it is worthwhile to "set up" the SDRP route by saving state information in SDRP routers, instead of carrying the full SDRP route in every packet. Once this state is established, the source can use a route identifier to refer to the SDRP route rather than carrying the full route in each data packet, thereby reducing the SDRP packet header size and transmission time. 2 Protocol Overview It is important to our architecture that we not impose setup on SDRP routers that are short on state space or that otherwise restrict setup. Therefore, the desire for setup is simply flagged by the source, and the routers along the SDRP route may choose to accept or reject the request. If all of the routers along the SDRP route accept, then the source can begin using a route identifier to refer to the saved state. If any router refuses setup, the source must continue including the full source route in each data packet or else try a different route. When a router rejects a setup request, it sends an SDRP control message containing the route identifier to the source. Control messages are also used in this manner if a router loses or is missing state for a particular route identifier. When a router accepts a setup request, it continues forwarding the request along the SDRP route. Successful route setup is indicated when the final router on the SDRP route sends an SDRP probe containing the route identifier to the source. 3 SDRP Packet format The following diagram is reproduced from [1] and describes the format of an SDRP packet. Below we describe several new Source Route Protocol Types and extensions to any other fields necessary to support these types. All other fields are as described in [1]. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Ver |D|S|P| | Hop Count |SourceProtoType| Payload Type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Route Identifier | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Target Router | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Prefix | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | PrefixLength | Notification |SrcRouteLength | NextHopPtr | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Route ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Payload .... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Source Route Protocol Type (1 octet) The Source Route Protocol Type field indicates the type of information that appears in the source route. The value 1 in this field indicates an "Explicit Source Route." The source route is included explicitly and processed as described in [1]. The value 2 in this field indicates "Route Setup." The source route is included explicitly and route setup is performed as described in this document. The value 3 in this field indicates "Use Setup Route." The source route is not included in the packet and previously established route state should be used as described in this document. Notification Code (1 octet) This field is only meaningful in control packets. In data packets, this field is transmitted as zero, and should be ignored on receipt. This document adds the following values for the Notification Code: 8 - Setup Request Rejected 9 - Setup State Missing 4 Requesting SDRP Setup A source originating SDRP packets requests SDRP setup by setting the Source Route Protocol Type to "Route Setup," setting the Probe Indicator bit to 1, and setting all other fields as described in [1]. The source MAY wait a full round-trip time for a response to the setup request, in the meantime sending subsequent packets with the Source Route Protocol type set as "Explicit Source Route." There is no limit, however, to the number or frequency of setup requests, thus the source MAY send another "Route Setup". A source MAY choose to send packets with a Source Route Protocol Type of "Use Setup Route" immediately after sending the setup request. This may be useful if the packets will be useless after waiting a full round-trip time. In this case, the packets will be delivered if the setup is successful, but may be dropped otherwise. The control messages sent by routers to indicate the status of a setup request are described in section 6. 5 Forwarding SDRP Setup Requests If the Source Route Protocol Type of a packet is "Explicit Source Route," it is handled as described in [1]. If the Source Route Protocol Type of a packet is "Use Setup Route," the router accesses the source route forwarding cache containing the necessary forwarding information, as described in section 7. The router SHOULD use this information to modify the destination address of the delivery header and send the packet to the next hop. If no forwarding information is found, then the router MAY send a control message with a Notification Code of "Setup State Missing" to the source of the SDRP packet. Because the source may be attempting to send many packets before receiving notification of a successful setup request, the router MAY send notification of a dropped packet only periodically. If the Source Route Protocol Type of a packet is "Route Setup" and the router does not or cannot support setup, the router MAY send the source a control packet with a Notification Code of "Setup Request Rejected." It MAY then modify the data packet so that the Source Route Protocol Type is "Explicit Source Route" and the Probe Indicator bit is 0, then forwards the packet as described in [1]. The router MAY send notification of a failed setup request only periodically. Alternately, a router MAY silently drop the "Route Setup" packet. If the Source Route Protocol Type of a packet is "Route Setup" and the router can accept the setup, and there is no matching route in its source route forwarding cache, then the router SHOULD process the explicit source route according to [1]. In addition, if the router is not the last hop of the source route, it creates an entry in the source route forwarding cache using the source address of the delivery header and the Source Route Identifier as a key. This entry contains the forwarding information obtained when processing the source route. The packet is then forwarded to the next SDRP router. If the router is the last hop of the source route, it forwards the payload packet and responds to the Probe Indicator bit as described in [1]. This will return a control message with a Notification Code of "Probe Completed" and a Source Route Protocol Type of "Route Setup" to the source of the packet. 6 Processing Control Messages If the source receives a control message with a Notification Code of "Probe Completed" and the Source Route Protocol Type set to "Route Setup," then the SDRP route has been successfully established. The source MAY send subsequent data packets with the Source Route Protocol Type set to "Use Setup Route," omitting the source route and setting all other fields as described in [1]. If the source receives a control message with a Notification Code of "Setup Request Rejected," the source must send data packets with an explicit source route or try an alternate route. The source MAY retry the setup. In general, setup rejections should be weighted more heavily than setup accepts. In this way, if a path is flopping between two different SDRP routers in one domain, where one router is full and generates rejects and the other generates accepts, then the source will tend to use the router that accepts the setup route. 7 Source Route Forwarding Cache The setup state maintained by each SDRP router contains any information necessary to forward packets along a stable route. In addition to the NEXT_ROUTER or NEXT_DI discovered when processing the explicit source route, the forwarding information may include the NEXT_HOP, MODE, and changes to the Loose/Strict Source Route bit, so that the NEXT_HOP calculation can be periodically refreshed. The delivery source address and Source Route Identifier serve as a key to this cache. Each entry in the cache can be timed out at any time, and SHOULD be timed out after long idle periods. The particular policy used for timing out cache entries depends on the router. 8 References [1] Estrin, D., Li, T., Rekhter, Y., Zappala, D., Source Demand Routing: Packet Format and Forwarding Specification (Version 1), work in progress