CURRENT_MEETING_REPORT_ Reported by Isidro Castineyra/Bolt Beranek and Newman Minutes of the New Internet Routing and Addressing Architecture Working Group (NIMROD) Preface The Nimrod Working Group met on Wednesday, 19 July, and on Thursday, 20 July. The agenda for the meeting was: o Wednesday - Agenda bashing/Announcements - Overview of the Implementation Model (Isidro Castineyra) - Neighbor Discovery Protocol (Ram Ramanathan) - Agent Discovery Protocol (Ram Ramanathan) o Thursday - Path Set-up Protocol (Isidro Castineyra) - Reliable Transaction Protocol (Ram Ramanathan) - Query Response and Update Protocols (Ram Ramanathan) - Open Issues and Work Plan The discussion of the agent discovery protocol was eliminated from the agenda. A demonstration of a configuration tool written by Mike Patton was added at the end of the first session. Overview of the Implementation Model The following are the main points from that presentation: o Network Components - A Nimrod network is composed of Nimrod boxes: Nimrod routers and Nimrod hosts. - Nimrod forwarding agents live in Nimrod routers. - Other agents, e.g., route agents, node representatives, endpoint representatives, can live in either Nimrod routers or in Nimrod hosts. - A given Nimrod box can be the home of agents for multiple nodes, e.g., for a node and its component nodes. o Interfaces - Nimrod routers and hosts have distinct interfaces to the external world. - Interfaces are not assigned locators. - Interfaces are numbered for management purposes. o Interconnectivity of Nimrod Boxes - Two different boxes are directly connected if there are interfaces in each one of them that can exchange data without the aid of any other Nimrod Box and such that data exchange is actually enabled. - The connectivity between two interfaces can be realized in many ways, for example: PPP, Ethernet, IP, IPv6, ATM, etc. The underlying technology is not important. - We say that a set of Nimrod boxes is connected if between any two of them there exists a path consisting of other Nimrod boxes in that set, such that consecutive boxes in the path are directly connected. o Agents - Endpoint Representatives - Node Representatives - Forwarding Agents - Route Agents o Connectivity - Any one agent is associated with a one and only one node. That is, an agent for a component node is not associated with the parent node. - This is emphasized by the phrase ``associated in the narrow sense.'' - An agent is associated ``in the wide sense'' with a node if it is associated with the node or one of its component nodes (recursively). - Two agents are directly connected if either they 1. reside in the same box, or 2. reside in boxes that are directly connected. - A set of agents is connected if the set of boxes they belong to is connected. o Boundaries - A boundary between two nodes exists between any two directly connected forwarding agents that belong to different nodes. - Therefore, a boundary between two nodes can occur both inside a Nimrod box and between two boxes. - Existence of a boundary between two nodes does not necessarily imply the existence at that point of an adjacency between those two nodes. o Tight Connectivity Restrictions - Forwarding Agents: the set of forwarding agents associated with a node (in the narrow sense) must be connected, i.e., the node must have a backbone of forwarding agents. - Node Representatives: each node representative must be directly connected to a forwarding agent of the node it represents. - Endpoint Representatives: To communicate with agents to which it is not directly connected, an endpoint representative must be connected to a forwarding agent. - For a node that has a parent, at least one of its forwarding agents (narrow sense) must be connected to a forwarding agent in the parent. o Tight Flooding Rule ``Agent discovery messages are flooded only within the boundaries of a node (strict sense).'' o Loose Connectivity Restrictions - Forwarding Agents: The set of all forwarding agents associated in the wide sense with a given node must be connected. - Node Representatives: each node representative must be connected to a forwarding agent associated in the wide sense with the node it represents. - Endpoint Representatives: To communicate with agents to which it is not directly connected, an endpoint representative must be connected to a forwarding agent of the same node. - The set of forwarding agents of sibling nodes must be connected to one agent of the parent node. o Protocols - Neighbor Discovery: implemented by all agents. - Agent Discovery: implemented by all agents. - Reliable Transaction Protocol: implemented by all agents. - Query/Response: implemented by all agents. - Update: implemented by all agents. - Path Set-Up: requests sent by endpoint representatives (at top level) and/or forwarding agents (at lower level paths) by forwarding agents. There was a discussion on the benefits of the ``tight'' against the ``loose'' model. The general consensus was that the loose model was preferable. Agent Discovery Protocol Ram Ramanathan presented the agent discovery protocol. The slides of this presentation will be posted to the mailing list. Path Set Up Protocol Isidro Castineyra presented the path set up protocol. Highlights of that presentation follow: o Agents and Path Management - Path management is the responsibility of forwarding agents and endpoint representatives. - Forwarding agents establish state in routers, endpoint representatives in hosts and in themselves. - Forwarding agents and endpoint representatives are responsible for forwarding Nimrod messages according to this state information and according to forwarding directives carried along in the messages. - Each forwarding agent and endpoint representative maintains forwarding information for those paths that originate, terminate, or, in the case of forwarding agents, pass thorough it. - Forwarding agents try to build new forwarding paths by piecing together existing paths. o Paths - Paths may be set up from source to destination or from destination to source. - Each path has an initiator and a target. - Multiple traffic sessions may use the same path. - A single traffic session may use multiple paths. - A path may connect one or more source endpoints to one or more destination endpoints. In the initial implementation of Nimrod, each multicast path is either a source tree or a sink tree. o Path Labels - Paths are identified by path labels, which are unique along the path but not necessarily globally unique throughout the internetwork. - The labels for direction of a path are distinguished by a bit that indicates whether the direction is toward the target or toward the initiator. - Labels are assigned randomly. There exists a label collision resolution procedure. o Multilevel Paths - A single path comprises multiple lower level contiguous paths , one for each of the n segments of the route on which the original path is based. - Each component path itself comprises multiple contiguous paths corresponding to each of its segments, and so on recursively. - For each pij composing pi-1 k, the initiator and target of pij maintain linkages from the path pi-1k to pi j , which helps to guide forwarding along the successive segments of pi-1k. - A flow mode data message, at any point along the end-to-end path, contains one path label for each level, but only one path label is used for forwarding at a given time. Path labels are stacked in the message and manipulated by the forwarding agents handling the message. o Protocol Messages - There are four types of message: setup, accept, teardown, and management. - These messages travel along the path to which they refer. - The messages can be used to collect and return performance monitoring information for a path---e.g., path delay and throughput. - Monitoring operates in two modes: collection and return. o Setup Message Generated by the path initiator and used to establish forwarding state in forwarding agents. It contains: 1. End-to-end path label and label stack. 2. Route. 3. Path label collision indication. 4. Multicast group identifier (for multicast). 5. Indication of whether the path is source- or destination-initiated. 6. Service requirements for the source and/or destination (TLV format). 7. Monitored information for the path updated at each node in the path (TLV format). o Accept Message This message is generated by the path target and is used to indicate successful path establishment from initiator to target. It contains: 1. The label of the accepted path. 2. Any monitored information for the path, collected during setup. o Teardown Message This message is generated by any forwarding agent on the path and is used to remove forwarding state. It contains: 1. The label of the path being torn down. 2. Any monitored information for the path collected along the path. 3. The reason for the teardown (TLV format). This may include target service requirements. Teardown messages may travel in both directions along paths and may result from any of the following: - Failure to meet source and/or destination's service requirements. - Loss of component lower-level path. - Timeout. - Change in service requirements. - Insufficient available resource at the next hop. - Change in connectivity specification for a node in the route. - Unresolvable label collision. - Preemption. o Initiator Finite State Machine It has four states: idle, check, ready, and done. Transitions are described below: - idle ! check: initiator begins the setup - check ! ready: occurs after the initiator has successfully completed all of the resource availability checks for the path. - check ! idle: occurs if the initiator fails to complete the resource availability check for the path. - ready ! done: initiator receives an accept message. - ready ! idle, done ! idle: occurs when the initiator receives a teardown message for the path. Forwarding information for the path is removed. o Forwarding Agent and Target State Machine This machine has three states: idle, check, and ready. State transitions are described below: - idle ! check: occurs when one of the agents receives a setup message. - check ! ready: occurs after the agent has successfully completed all the consistency and resource availability checks for the path---including target service requirements check. - check ! idle: occurs if the agent fails to complete the consistency checks and resource availability checks for the path. - ready ! idle: occurs when the agent receives or generates a teardown message for the path. o Check State Actions - General consistency checks: 1. setup not out of date; 2. setup not duplicate; 3. path label not in use (not generally fatal). - Checks performed by intermediate forwarding agents: 1. The forwarding agents acts on behalf of the current node in the route specification carried in the setup message. 2. The connectivity specification label for the node, carried in the setup message, is a valid connectivity specification for this node. 3. The node's service restrictions do not preclude carrying traffic along the specified route. - Checks performed by target: 1. The route specified carried in the setup message meets the target endpoint's service requirement. o Resource Availability Checks These include the following: 1. The forwarding database can accommodate state for a new path. 2. There exists a feasible path to the next node on the specified route. This is an extensive check performed by the initiator and intermediate forwarding agents. The initiator or intermediate forwarding agent may have to request a route and set up this path, or there may be such a path already established. Reliable Transaction Protocol Ram Ramanathan presented briefly the reliable transaction protocol used by Nimrod: TTCP. Query Response Protocol Ram Ramanathan presented the query response protocol. The slides from the presentation will be sent to the mailing list of the working group.