Nimrod: Data Message Forwarding (Graphical slides, including packet formats, omitted.) 1. Routes - Route agents generate routes at the request of forwarding agents, using available maps and (source/destination) traffic service requirements. - Route: - Expressed as a sequence of node locators, from source to destination, together with the labels for those node service attributes used in route selection. - Must include at least the source and destination node locators. - Different segments of the same route may be expressed at different node granularities. 2. Paths - Forwarding agents set up paths according to the routes selected. - Path: - Realization of a route as forwarding state within the forwarding agents along the route. - Forwarding state includes previous-hop and next-hop forwarding agents and path labels as well as traffic service requirements. - Paths are inherently multi-level, i.e., themselves composed of multiple paths. 3. Packet Forwarding Modes - Datagram: - No session-specific state. - For traffic sessions consisting of few messages or traversing unreliable or highly mobile sections of an internetwork. - Flow: - Establishes session-specific state. - For traffic sessions consisting of several messages or requiring guaranteed service. - Both modes rely on the existence of underlying paths established in forwarding agents. 4. Path Setup - Each path has an initiator and a target. - Path setup may be either source-initiated or destination-initiated. - Multiple paths may be set up along the same route, multiple traffic sessions may use the same path, and a traffic flow may be spread over multiple paths. - The context of a path is the lowest-level node that contains the entire path. - Path setup is similar for unicast and multicast. 5. Path Setup Messages - Setup: generated by the initiator and used to establish forwarding state. - Accept: generated by the target and used to inidicate successful path setup to the initiator. - Teardown: generated by any forwarding agent on the path and used to remove the path from all forwarding agents in which it exists. - All path setup messages are exchanged using a reliable transaction protocol. 6. Path Setup: Initiator - States: - idle: awaiting a setup message. - check: performing checks on setup message. - ready: checks complete, forwarding state installed, and ready to forward data along path. - done: path successfully setup to target. idle -- request setup --> check. check -- fail --> idle. check -- pass --> ready. ready -- receive accept --> done. ready -- teardown --> idle. done -- teardown --> idle. 7. Path Setup: All Others - States: - idle: awaiting setup. - check: performing checks on path setup message. - ready: checks complete, forwarding state installed, and ready to forward data along path. idle -- request setup --> check. check -- fail --> idle. check -- pass --> ready. ready -- teardown --> idle. 8. Check State Actions - Consistency checks of setup message contents: - Path label unused? - Route contains current node? - Service attribute present in current node? - Route consistent with current node's service constraints? - Resource availability check for next hop: - Able to obtain path with sufficient resources to next node in route? - Failure of any consistency check or of the resource availability check causes path teardown. - Successful completion of all checks results in new forwarding state and transmission of the setup message to the next node (source-initiated) or previous node (destination-initiated) on the route. 9. IPv6 Nimrod-Specific Options - Hop-by-hop options: - Path labels. - Monitoring. - Route option: - Route specification. - End-to-end options: - Endpoint identifiers. - Service specification. 10. IPv6 Path Labels Option (Packet format omitted) - Labels specified in order from lowest level to highest level. - Path label nesting has maximum depth of 256. - Each label is 16 bits long and not necessarily globally unique but is unique among the forwarding agents on the given path. - Modified at most forwarding agents. 11. IPv6 Monitoring Option (Packet format omitted) - Records path performance information. - Multiple performance measures may be monitored simultaneously. - Modified at most forwarding agents. 12. IPv6 Route Specification Option (Packet format omitted) - Specifies routes in terms of node locators and the labels of the accompanying service attributes. - Node locators can be of arbitrary length, but at each level they are restricted to 16 bits. - Also contains modifiable pointer to next node in specified route. 13. IPv6 Endpoint Identifiers Option (Packet format omitted) - Contains the source and destination endpoint identifiers. 14. IPv6 Service Specification Option (Packet format omitted) - Contains information about requested services, such as delay and throughput, used for selecting appropriate next hops. 15. IPv6 Datagram-Mode Data Packet - Flow label = 0. - Source address = IPv6 address of source of current lowest-level path. - Destination address = IPv6 address of destination of current lowest-level path. - Path labels option (mandatory, except for immediate neighbors). - Route specification option (optional). - Endpoint identifiers option (mandatory). - Service specification option (optional). 16. IPv6 Flow-Mode Data Packet - Flow label = 0. - Source address = IPv6 address of source of current lowest-level path. - Destination address = IPv6 address destination of current lowest-level path. - Path labels option (mandatory). - Monitoring option (optional). - Endpoint identifiers option (optional). 17. Setup Message (Packet format omitted) - Constructed to look like an IPv6 data message in order to be able to reuse the IPv6 routines: - Flow label = 0. - Source address = 0. - Destination address = 0. - Path labels option (mandatory). - Monitoring option (optional). - Route specification option (mandatory). - Endpoint identifiers option (mandatory). - Service specification option (optional). - Also contains a maximum path lifetime and an indication of whether the path is source-initiated or destination-initiated. 18. Accept Message (Packet format omitted) - In response to a setup message, may contain monitored information, if the monitoring option was present in the setup message. - May also be sent in response to flow-mode data messages containing the monitoring option. 19. Teardown Message (Packet format omitted) - In response to a setup message, travels back to the initiator, with monitored information if the monitoring option was present in the setup message. - Otherwise, travels in both path directions away from the forwarding agent initiating the teardown.