________________________________________________________________ SOURCE: Digital Equipment Corporation Radia Perlman 550 King St, Littleton MA 01460 (508)486-7648 Fax (508)486-7529 Perlman@DSmail.Enet.Dec.Com ________________________________________________________________ TYPE OF CONTRIBUTION: SPECIFICATION ________________________________________________________________ ISSUE ADDRESSED: Specification for Implementation of Connectionless OSI over SMDS ________________________________________________________________ DATE: December 28, 1992 ________________________________________________________________ DISTRIBUTION: UNLIMITED ________________________________________________________________ ABSTRACT Text of Abstract. This document specifies the method that will be used to run connectionless OSI over SMDS. Connectionless OSI includes CLNP [ISO International Standard 8743], ES-IS [ISO International Standard 9542], and IS-IS [ISO International Standard 10589]. This document assumes basic familiarity with these standards. The design in this document attempts to minimize routing control traffic and manual configuration. The issues involve judicious use of CLNP addressing, encapsulation for coexistence with other protocols running over SMDS, enabling ESs to find an active IS, enabling ISs to find each other, optimizing routes across SMDS (eliminating double-hopping across SMDS), and efficient and reliable distribution of LSPs (link state packets) across SMDS. 1 CONVENTIONS The following language conventions are used in the items of specification in this document: a) MUST, SHALL, or MANDATORY -- the item is an absolute requirement b) SHOULD or RECOMMENDED -- the item should generally be followed for all but exceptional circumstances Page 2 c) MAY or OPTIONAL -- the item is truly optional and may be followed or ignored according to the needs of the implementor. 2 INTRODUCTION Connectionless OSI has been designed to operate over point to point links, and over LANs. SMDS does not fit either model. It is not like a point to point link because it is multiaccess and requires a data link destination address. It is not like a LAN because it is a tariffed service, costs across it cannot be assumed to be the same for all destinations, bandwidth use should be more conservative than on a LAN, multicast recipients have to be preconfigured, and there is a limit to the number of recipients of any SMDS group address. On SMDS, the SMDS individual address of a station is determined at subscription time by the SMDS service provider. A group address is assigned by the SMDS service provider (in contrast to an 802 LAN, where the multicast addresses can be known beforehand and specified in the spec), and the list of the individual members of the group has to be configured by the service provider (in contrast to an 802 LAN, where any node can listen to any address). The membership of an SMDS group cannot change dynamically. There are three basic pieces to the Network Layer which are covered by this document. The first is CLNP, which is the data packet format and the addressing structure. The second piece is ES-IS, which is the handshaking protocol between neighbor ESs and ISs, which enables ISs to keep track of adjacent ESs, and ESs to keep track of at least one IS. It also enables nodes to keep a correspondence between Network Layer addresses and Data Link Layer addresses. The third piece is IS-IS, which is the intra-domain routing protocol. IDRP (InterDomain Routing Protocol) is being standardized as an inter-domain routing protocol for CLNP, but we will not discuss that in this document. At some point, operation of IDRP across SMDS should be standardized, but in this document some combination of judicious use of CLNP addressing, manual configuration, and use of IS-IS will suffice for interconnection of connectionless OSI nodes across SMDS. Variable length fields in packets are encoded as "options", with an octet that specifies the option type, a length field specifying the length of the data associated with the option, and a field with the data associated with the option. Option types with associated data fields that are likely to be very long are specified with a 2 octet length field. Option types with data which would not exceed 256 octets are specified with a 1 octet length field. This specification only relates to routers and endnodes directly connected to SMDS. No changes are required to routers and endnodes not directly connected to SMDS. Page 3 Note that the packets defined in this document never propagate beyond SMDS. They are used for negotiating with neighbors across SMDS. Packets that do get forwarded (for instance, link state packets, data packets) are not affected by this document, other than the definition of how they are encapsulated with an SMDS header while traversing SMDS. The packets in this document have the same packet types and basic function as packets defined in ES-IS and IS-IS for neighbor handshaking. However, since neighbor handshaking protocols are technology dependent, the encoding of the packets for SMDS are different from the packets defined for 802 LANs. 2.1 CLNP Addresses A CLNP address consists of: +--------------------+----------+----------------------+-----+ | IDP | LOC-AREA | ID | SEL | +--------------------+----------+----------------------+-----+ SMDS addresses are E.164 addresses. The first octet of the IDP in a CLNP address specifies the type of address encoded in the IDP. One type is an E.164 address. Therefore it is possible to learn, from the initial portion of the IDP, that an address is an E.164 address, and examination further into the IDP can yield information such as country code, area code, exchange, and finally the entire E.164 address. Level 2 IS-IS routing routes to address prefixes. Therefore a router attached to SMDS can be configured to advertise that it can reach any E.164 address, or be more specific about addresses by including a longer address prefix. It is recommended but not required that the nodes in a CLNP net attached to SMDS via router R use R's SMDS address in their IDP. All nodes (ESs and ISs) attached to SMDS will be configured with information about the CLNP address prefixes reachable directly on SMDS. If a destination's IDP contains the SMDS address to which packets for that destination should be forwarded, communication to that destination is possible without forwarding by an IS, manual configuration, or previous routing protocol exchange. If CLNP addresses are not assigned this way communication is still possible, but it involves additional manual configuration or routing protocol messages. If the destination's IDP is not the router's SMDS address as described in the previous paragraph, the packet is initially transmitted to a nonpassive router, which will have learned how to reach the destination's address either through manual configuration or previous protocol exchange. The nonpassive router will issue Redirect messages when necessary to prevent multiple hop routes across SMDS. Page 4 2.2 Types Of Nodes Attached To SMDS There are the following types of ESs connected to SMDS: 1. "Simple-ES": A simple ES is one that has its SMDS address as its IDP. The CLNP ISs do not have to keep track of such an ES, since it will automatically be reachable. Although a simple-ES need not be continually in contact with routers (as would be the case if the ES needed to keep the network informed of its existence), such an ES does need to be able to find an IS quickly in the event that it needs to transmit a packet to an IDP that is not obviously reachable on the SMDS net. The message that it sends is an ES Hello. The act of sending the message is known as "pinging". 2. "Configured-ES": A Configured-ES is an ES that does not use its SMDS address as its IDP, but whose CLNP/SMDS address pair has been configured into all the nonpassive (see types of routers) routers on SMDS. A configured-ES does not need to keep in contact with ISs, since the ISs have been manually configured to know how to reach the ES. However, as with a Simple-ES, a Configured-ES does need to be able to find an IS quickly in the event that it needs to transmit a packet to an IDP that is not obviously reachable on the SMDS net. 3. "Dynamically-Learned ES": A Dynamically-Learned-ES is an ES that does not use its SMDS DTE address as its IDP and whose CLNP/SMDS address pair has not been configured into all the nonpassive routers. Dynamically-Learned-ESs must keep in continual contact with a nonpassive router so that the network can learn how to reach the ES. It is highly desirable, and in almost all cases easy, to avoid the necessity for having any Dynamically-Learned-ESs since keeping the network informed about these ESs consumes bandwidth. There are the following types of ISs: 1. "Passive-IS": A Passive-IS attaches a portion of the network to SMDS, and the IDP of all nodes in that portion equals that router's SMDS address. A Passive-IS is equivalent to a Simple-ES. Like a Simple-ES, it does not need to communicate with other ISs unless it has traffic to forward off the SMDS network. 2. "Configured-Passive-IS": This is an IS, R, that, although it attaches nodes to SMDS that have IDPs other than R's SMDS address, can still behave like a Passive-IS because all Nonpassive-ISs on SMDS have been configured with the address prefixes reachable through R. 3. "Nonpassive-IS": A router that runs IS-IS. It is possible for a router to be configured to be a Nonpassive-IS even if all the nodes it can reach off SMDS have the appropriate IDP. Page 5 In most cases, however, this would be undesirable, since running IS-IS consumes bandwidth. In general, the Nonpassive-ISs will be those that attach to a complex portion of the OSI network with a large and dynamically changing set of CLNP address prefixes. 2.3 ES-IS For SMDS ES-IS for SMDS is similar to ES-IS for 802 LANs. The difference is that on 802 LANs, ESs continually multicast to the ISs, and the ISs continually multicast to the ESs. This is undesirable on SMDS since it consumes too much bandwidth. Simple-ESs and Configured-ESs will not require periodic exchange of Hello messages. Instead, a Simple-ES will be configured with a set of addresses for reaching ISs, and will send a message requiring a reply to that set of addresses when the need for an IS arises. A Dynamically-Learned-ES will need to periodically send ES Hellos to a Nonpassive-IS, since otherwise the network will not know how to route to that ES. Since the ES must know whether its ES Hello is reaching an IS, the IS will have to periodically reassure the ES that it is up and receiving the ES Hellos. Therefore ES-IS for a Dynamically-Learned-ES is very similar to ES-IS for 802 LANs, i.e. the ES periodically sends ES Hellos to an IS (though in the SMDS case it only needs to send to one IS, the Designated Router (DR)), and that IS periodically sends IS Hellos to that ES. The way the ES finds the DR is that the ES initially sends to some configured set of addresses of routers. A router other than the DR that receives an ES-Hello transmits a Hello Redirect, redirecting that ES to the DR's SMDS address. The ES, as a result of receiving the Hello Redirect, sends an ES Hello to the indicated SMDS address, which will cause the DR to start transmitting DR-ES Hellos to the ES. An ES that is receiving DR-ES Hellos transmits ES Hellos only to the SMDS address from which it is receiving DR-ES Hellos. In order for a Dynamically-Learned-ES and the DR to find each other, at least one of the following must have occurred: 1. the ES will have been configured with SMDS addresses for reaching ISs, and the DR receives messages on one of those configured addresses, or an IS which is currently up has received the ESs Hello and sent a Hello Redirect 2. at least one IS that is currently up has been configured with an SMDS address which that ES receives. Both mechanisms are provided to allow the flexibility of configuration at the ES, configuration at the ISs, or some combination. Note that the configuration information for Configured-ESs is different from the configuration information for Page 6 Dynamically-Learned-ESs. The configuration information at an IS for a Dynamically-Learned-ES is an SMDS address that will reach that ES. It might be an SMDS group address that will reach that ES and many others, or it might be an SMDS individual address. Information for Dynamically-Learned-ESs may be configured into only a subset of ISs (and possibly none of the ISs provided that the Dynamically-Learned-ES has been configured with SMDS addresses for reaching ISs). In contrast, information for Configured-ESs must be configured into every Nonpassive-IS, and it consists of the unicast SMDS address, CLNP address pair for that ES. The other part of ES-IS on 802 LANs involves having routers sending Redirect messages, and ESs keeping a cache of (destination Network Layer address, Data Link address to forward to) correspondence. That portion of ES-IS will remain the same on SMDS, although Redirects will also be sent to routers, and routers will also keep Redirect caches. 2.4 IS-IS On SMDS There are two parts of IS-IS relevant to SMDS: 1. how all the ISs find each other and elect a Designated Router 2. how an LSP is reliably and efficiently broadcast across SMDS 2.4.1 ISs Finding Each Other - On 802 LANs, ISs find each other by multicasting IS Hellos to a multicast address that does not need to be manually configured because it is a predefined number and appears in the specification of IS-IS. This is not possible in SMDS. Even though it provides a multicast function, the actual SMDS group address is assigned by the SMDS provider. In SMDS, we will allow but not require exploitation of the multicast capability provided by SMDS. We will assume that there are zero or more SMDS group addresses assigned for reaching routers (since there are a limited number of recipients for an SMDS group address). Each router will be configured with a set of addresses for reaching other routers. The configured addresses can be any mixture of SMDS individual and SMDS group addresses. By exchanging IS Hellos, the routers eventually decide upon a Designated Router, and thereafter all routers send IS Hellos only to the DR, and the DR sends IS Hellos to all the routers, listing in the IS Hellos all the other routers that are up. 2.4.2 Reliable And Efficient LSP Distribution Across SMDS - An SMDS IS that has an LSP to transmit across SMDS unicasts the LSP to the DR. The DR transmits it to all the ISs. There are no explicit Page 7 acknowledgments. Instead, the DR periodically transmits CSNPs, which summarize the state of the LSP database. If based on the CSNP a router discovers a discrepancy between its own LSP database and the DR's, the router retransmits the missing LSP to the DR or requests the DR's LSP, as appropriate. 2.5 Packet Encapsulation The convention is that 802.2 encapsulation is used for protocols running on SMDS. OSI CLNS has a SAP assigned, so the data portion of the SMDS packet will have the fields: 1. DSAP (1 octet) = fe hex 2. SSAP (1 octet) = fe hex 3. CTL (1 octet) = 3 4. Start of CLNS packet -- NLPID is the first octet, which is 81 hex for CLNP, 82 hex for ES-IS and 83 hex for IS-IS. 2.6 Multiply Attached Nodes +----------+ | | SMDS |--R3 |-R1-|x | |-R2-|y | A--| | | | | +----------- In the above picture, A can be reached over SMDS via either R1, with SMDS address x, or R2, with SMDS address y. If R3 is to be preconfigured for reaching A, it must be possible to configure both x and y as SMDS addresses for reaching A. To accommodate portions of the network attached via multiple routers, the configuration information for reaching a CLNP address prefix will consist of a set of SMDS addresses. Any node that initiates communication with a destination whose CLNP address matches a preconfigured address prefix that is configured with a set of SMDS addresses initially stores the entire configured set of associated SMDS addresses in a cache, and tries each one round robin as packets are transmitted to that destination. Once traffic is received from that destination, the SMDS address from which traffic from that destination is received is written into the cache and all other addresses are discarded. Future packets to that destination are sent only to that SMDS address, until the cache entry is deleted due to not Page 8 being verified by incoming traffic from that CLNP destination address, SMDS address pair. 2.7 Security In order to prevent an unauthorized node on SMDS from sending messages claiming to be an OSI node, it must be possible to configure the nodes on SMDS to require a password before believing a node to be a valid neighbor. The link to SMDS is configured with a password to include in a Hello message or Hello Redirect, as well as a set of passwords acceptable in a received Hello message or Hello Redirect. If no transmit password is configured, then the password option is not included in the packet. If no receive passwords are configured, then the password option, if it appears in a received Hello or Hello Redirect message, is ignored. An endnode is configured with a single transmit password, and a set of receive passwords acceptable in a received IS to ES Hello or Hello Redirect. A level 1 router is configured with a transmit password to be included in the level 1 IS Hello and Hello Redirect and a (potentially different) password to be included in the IS to ES Hello and a Hello Redirect sent to an ES. It is also configured with a set of receive passwords acceptable in ES Hellos, and a set of receive passwords acceptable in level 1 IS Hellos and Hello Redirects. A level 2 router configured to consider the SMDS network as level 2 only is configured with a single transmit password for level 2 IS Hellos and Hello Redirects, and a set of receive passwords acceptable in received level 2 IS Hellos and Hello Redirects. A level 2 router that considers the SMDS net as both level 1 and level 2 has the configuration for both level 1 and level 2. It is possible for passwords to be the same (for instance, the receive and transmit password can be the same, and/or the level 1 and level 2 passwords can be the same). Security can be added to an existing deployed network running on SMDS without disruption. For example, assume the level 1 routers in a network are running without any password checking. That means that no level 1 routers are configured with transmit or receive passwords. All nodes are therefore transmitting Hellos and Hello Redirects without the password option, and are all ignoring the password option in received Hellos and Hello Redirects. To add a password, the network manager must configure all nodes, one by one, to transmit a particular password. Then, after all nodes have been configured to transmit the password, configure the receive password set in each router, one by one, to be the specified password. Note that an intruder cannot fool existing nodes to transmit the password. A router sends the password only in a Hello message transmitted to an SMDS address it has been configured to transmit to, or to an SMDS address it has been informed of by a node it already trusts (because of having received a valid password from the node in a Hello or a Hello Redirect, or having been configured with its address, or because of having been told of its SMDS address in a Hello message Page 9 with a valid password). An intruder can do some damage by sending data Redirect messages. Adding a password to the data Redirect message has some problems: 1. The data message does not contain a password, and it would therefore be possible for an intruder to trick a router into sending a Redirect message (containing a password), by sending it a data message it will need to forward. 2. It must be possible to believe a Redirect from a router in a different area. It is not advisable to require nodes to be configured with passwords from other areas. For these reasons, there is no password in the data Redirect. Instead the following mechanism is provided. Assume node N receives a Redirect from SMDS address A which informs N that for destination D it should transmit to SMDS address B. N rejects the Redirect unless A is the SMDS address to which N would transmit packets with destination address D. As a performance optimization, if N is an ES that has the null set as the configured set of receive passwords, or an IS with the null set as the configured set of IS receive passwords (level 1 or level 2), then N may skip the validity check on the data Redirect. 3 CONFIGURATION INFORMATION 3.1 Simple-ES, Configured-ES, Passive-IS, Configured-Passive-IS The following information must be configured into ESs and ISs of types Simple-ES, Configured-ES, Passive-IS, or Configured-Passive-IS that are attached to SMDS. 1. Set of SMDS addresses for reaching routers. Each of these addresses may be an SMDS group address or an SMDS individual address. 2. Set of CLNP address prefixes reachable on SMDS a) CLNP address prefix b) flag indicating SMDS address should be extracted from the IDP, or if flag is false, an SMDS address or set of SMDS addresses to which packets for that CLNP address prefix should be forwarded c) preferred carrier (to be used in filling in the SMDS header when routing to that address prefix). This is an optional field in the SMDS header and it is optional to configure it. If not configured, the field will not be present in the SMDS header. Page 10 3. Minimum time (in seconds) between pings of any one configured SMDS address for reaching routers 4. Time (in seconds) to give up on one SMDS address for finding a router and switching to pinging the next one on the list 5. Transmit password -- a variable length value to be included in ES Hellos. If no password is configured (or a null password is configured), the password option is not included in ES Hellos. 6. Set of receive passwords -- a set of variable length values. If none are configured (the set is the null set), then the password option, if it is included in received IS Hellos and Hello Redirects, is ignored. If the set is not null, then one of the values must appear in a received IS Hello or Redirect or the message will be discarded as invalid. 3.2 Dynamically-Learned-ESs 1. Set of SMDS addresses for reaching routers. Each of these addresses may be an SMDS group address or an SMDS individual address. 2. Set of CLNP address prefixes reachable on SMDS a) CLNP address prefix b) flag indicating SMDS address should be extracted from the IDP, or if flag is false, an SMDS address or set of SMDS addresses to which packets for that CLNP address prefix should be forwarded c) preferred carrier (optional) 3. Hello Timer. Number of seconds between transmission of Hello Messages by this endnode. 4. SMDS Group address (if any) that this node receives packets on, as a CLNP endnode. 5. Flag as to whether to send Level 1 ES Hello or Level 2 ES Hello 6. If Level 2 ES Hello, a set of CLNP address prefixes to advertise 7. Transmit password -- a variable length value to be included in ES Hellos. (optional) Page 11 8. Set of receive passwords -- a set of variable length values. If none are configured (the set is the null set), then the password option, if it appears in a received IS Hello or Hello Redirect, is ignored. If the set is not null, then one of the values must appear in a received IS Hello or Hello Redirect or the message will be discarded as invalid. 3.3 Nonpassive-ISs The following information must be configured into Nonpassive-ISs that are attached to SMDS, with the following exceptions. If a router is a level 1 router, the fields corresponding to level 2 information are not configured. If a router is a level 2 router, then the relevant configuration information depends on how the link is configured. If the link is configured as "level 2 only", then only the level 2 information applies. Otherwise, both the level 1 and level 2 information is applicable. 1. Link type: either "level 2 only" or "both level 1 and level 2". (If the router is a level 1 only router, then "both level 1 and level 2" just means level 1.) 2. Level 1 Configured-ES addresses. Each entry contains: a) ID, ID length octets (ID length is a constant for the routing domain and is most likely equal to 6) b) SMDS address, 8 octets 3. Preconfigured CLNP Address Prefixes a) CLNP address prefix b) flag indicating SMDS address should be extracted from the IDP, or if flag is false, an SMDS address or set of SMDS addresses to which packets for that CLNP address prefix should be forwarded c) Preferred Carrier (to use when routing to that address prefix) 4. Link Costs. Each entry contains: a) SMDS address prefix length specified in number of bits, 1 octet b) SMDS address prefix, (padded with 0's to make it 8 octets) c) Cost from this node to a node with the above SMDS address Page 12 prefix The cost across SMDS to a particular SMDS address S is the cost configured for the longest SMDS address prefix that matches S. 5. Level 1 router SMDS Group Address. The SMDS group address this node receives packets on as a level 1 router, 8 octets. This field configured to 0 means this node is not a member of a multicast group for receiving level 1 routing information 6. Level 2 router SMDS Group Address. The SMDS group address this node receives packets on as a level 2 router, 8 octets. This field configured to 0 means this node is not a member of a multicast group for receiving level 2 routing information. 7. Priority for becoming Level 1 designated router, 1 octet 8. Priority for becoming Level 2 designated router, 1 octet 9. ES SMDS addresses. SMDS addresses (individual and/or group) for reaching ESs. Each entry consists of: a) SMDS address, 8 octets 10. Level 1 Router SMDS addresses. SMDS addresses (individual and/or group) for reaching other level 1 routers. Each entry consists of: a) SMDS address, 8 octets 11. Level 2 Router SMDS addresses. SMDS addresses (individual and/or group) for reaching other level 2 routers. Each entry consists of: a) SMDS address, 8 octets 12. Level 1 IS to IS Hello Timer -- 2 octets. Time in seconds between periodic transmission of IS Hello messages to the level 1 Designated Router (or if this node is the level 1 DR for that area, to all the level 1 routers in that area) 13. Level 2 IS to IS Hello Timer -- 2 octets. Time in seconds between periodic transmission of IS Hello messages to the level 2 Designated Router (or if this node is the level 2 DR, to all the level 2 routers) 14. IS to ES Hello Timer -- 2 octets. Time in seconds between transmission of Hello messages to the endnodes on SMDS which have transmitted ES Hellos, which is only relevant if this node is Designated Router. If this node is level 1 DR, then DR to ES Hellos are transmitted to those ESs that have Page 13 transmitted level 1 ES Hellos. If this node is level 2 DR, then DR to ES Hellos are transmitted to those ESs that have transmitted level 2 ES Hellos (which advertise CLNP address prefixes). 15. Redirect cache holding timer -- 2 octets. The value to put into Redirect messages as the holding timer. 16. Level 1 IS Transmit password -- a variable length value to be included in level 1 IS Hellos and Hello Redirects. (optional) 17. Level 1 IS set of receive passwords -- a set of variable length values. If the set is the null set then the password option, if it appears in a received Level 1 IS Hello and Hello Redirect, is ignored. If the set is not null, then one of the configured values must appear in a received IS Hello or Hello Redirect or the packet will be discarded as invalid. 18. ES set of receive passwords -- a set of variable length values. If the set is the null set, then the password option (if it appears) in received ES Hellos is ignored. If the set is not null, then one of the configured values must appear in a received ES Hello or the ES Hello will be discarded as invalid. 19. ES Transmit password -- a variable length value to be included in the DR to ES Hello and Hello Redirect. (optional) 20. Level 2 Transmit password -- a variable length value to be included in level 2 IS Hellos and Hello Redirects. (optional) 21. Level 2 Set of receive passwords -- a set of variable length values. If the set is the null set, then the password option (if it appears) in received Level 2 IS Hellos and Hello Redirects is ignored. If the set is not null, then one of the values must appear in a received Level 2 IS Hello or Hello Redirect or the packet will be discarded as invalid. 22. Time for remembering a manually configured ES or IS SMDS address reported in an IS-Hello in option types 1 or 3. This is used only by the DR (but must be configured into all routers, since any router might become DR). It is 1 octet, specified in minutes, with a default of 10. If no router has reported an SMDS address in option types 1 or 3 in an IS-Hello the DR has received within this amount of time, that address is discarded from the DR's dynamic database of configured addresses reported by IS neighbors. Page 14 4 DATABASES 4.1 Kept By Simple-ES, Configured-ES, Passive-IS, And Configured-Passive-IS 1. Active Router Information a) SMDS address, 8 octets b) Holding Timer c) Time since cache entry verified, either by receipt of IS Hello or receipt of data packet forwarded from that SMDS address 2. Backup Active Router Information (other routers that answered the ping) a) SMDS address, 8 octets b) Holding Timer c) Time since cache entry verified, either by receipt of IS Hello or receipt of data packet forwarded from that SMDS address 3. Router SMDS addresses pinged -- for each configured SMDS address for reaching nonpassive routers, a timestamp as to when a ping was last sent to that address 4. Destination cache a) CLNP address prefix (or optionally, for implementation simplicity, complete NSAP address) b) Set of SMDS addresses for this address prefix, with a pointer indicating which one was chosen most recently in the round robin use of the preconfigured set of SMDS addresses. Once traffic is received from an SMDS address, the set of addresses is replaced by the single SMDS address. c) Time since entry verified by incoming message (data message from the CLNP address/SMDS pair stored in this entry, or receipt of a Redirect with that pair specified) Page 15 4.2 Kept By Dynamically-Learned ES 1. Designated Router Information a) SMDS address, 8 octets b) Holding Timer c) Time since DR-ES Hello received 2. Destination cache a) CLNP address prefix (or optionally, for implementation simplicity, complete NSAP address) b) Set of SMDS addresses for this address prefix, with a pointer indicating which one was chosen most recently in the round robin use of the preconfigured set of SMDS addresses. Once traffic is received from an SMDS address, the set of addresses is replaced by the single SMDS address. c) Time since entry verified by incoming message (data message from the CLNP address/SMDS pair stored in this entry, or receipt of a Redirect with that pair specified) 4.3 Kept By Level 1 Routers Note that in the usual case all CLNP routers on SMDS will be level 2 routers, because they will have different IDPs (since the recommended use of CLNP addressing over SMDS is to use the SMDS point of attachment as the IDP). However, in certain rare cases, such as running with DECnet Phase IV compatible addresses it may be convenient to assign addresses such that running level 1 IS-IS over SMDS makes sense. 1. Designated Router information (kept by routers other than the DR) -- information from DR's IS Hello, plus a) SMDS address of DR, 8 octets b) Holding Timer c) Time since Hello Received from DR 2. Adjacency Information for SMDS neighbors (kept by routers other than the DR) -- This information is received from the DR-IS Hello. It includes the CLNP ID/SMDS address Page 16 correspondence for all nodes in the area reachable across SMDS. 3. Flags for which LSPs need to be transmitted over SMDS 4. Redirect Database (for getting rid of extra hop suboptimality on SMDS) a) CLNP address prefix b) SMDS address c) holding timer d) Time since entry verified by incoming message. 4.4 Kept By Level 2 Routers Note that a level 2 router is also a level 1 router, so it keeps both databases, unless the SMDS circuit is marked "level 2 only" 1. Designated Router information (kept by routers other than the DR) -- information from DR's IS Hello, plus a) SMDS address, 8 octets b) Holding Timer c) Time since Hello Received from DR 2. Adjacency Information for SMDS neighbors (kept by routers other than the DR) -- This information is received from the DR-IS Hello. It includes the CLNP ID/SMDS address correspondence for all nodes in the area reachable across SMDS. 3. Flags for which LSPs need to be transmitted over SMDS 4. Redirect Database (for getting rid of extra hop suboptimality on SMDS) a) CLNP address prefix b) SMDS address c) holding timer d) Time since entry verified by incoming message. Page 17 4.5 Additional Information Kept By Designated Router (Note that in the case of a level 2 router that has the circuit marked as "both level 1 and level 2") it will have two copies of this database, one for level 1 and one for level 2 1. Dynamically Discovered Neighbor Endnodes a) SMDS address, 8 octets b) Set of CLNP IDs (if level 1), or set of CLNP address prefixes (if level 2). IDs are ID length. Address prefixes are variable length, up to 20 octets c) Holding Timer d) Time since Hello received e) SMDS group address this ES receives messages on (if any) 2. Router Neighbors a) unicast SMDS address for this router, 8 octets (discovered based on the source address in the SMDS header of the IS Hello received from this router) b) CLNP ID c) Holding Timer d) Time since Hello Received e) SMDS group address this router receives messages on (if any) f) Cost of the link across SMDS to this neighbor router 3. If level 1, L1-IS-SMDS-BROADCAST-ADDRESSES. If level 2, L2-IS-SMDS-BROADCAST-ADDRESSES. The minimal set of SMDS addresses that will reach all ISs of the appropriate level. This includes all manually configured SMDS addresses as configured into the DR or received by the DR in IS Hellos (in option type 1), that will reach all routers. All reported and configured SMDS group addresses are included, and any SMDS individual addresses for routers that are not known to be included in any of the multicast groups are included. 4. ES-SMDS-BROADCAST-ADDRESSES. The minimal set of SMDS addresses that will reach all the Dynamically-Learned ESs from which ES Hellos have been received. This is the set of SMDS addresses reported in received IS Hellos (in option type 3), plus SMDS unicast addresses from which ES Hellos are received, minus those unicast addresses from ESs that report Page 18 reachability via an SMDS group address, plus any SMDS group addresses advertised in ES Hellos. 5. Manually configured SMDS addresses for ISs, as discovered through option type 1 in received IS-Hellos. Each entry contains: a) SMDS address b) Most recent time that address was reported in any received IS Hello 6. Manually configured SMDS addresses for ESs, as discovered through option type 3 in received IS-Hellos. Each entry contains: a) SMDS address b) Most recent time that address was reported in any received IS Hello 5 PROTOCOLS 5.1 Electing A Designated Router Election of a DR is done independently in each area on SMDS, and among the level 2 routers on SMDS. The protocol assumes each router is configured with some number of addresses of neighbor routers, but that no such list is necessarily complete. The configured addresses can be SMDS group addresses and/or SMDS individual addresses. One router gets elected Designated Router. The DR transmits DR-IS-Hellos periodically to all configured SMDS addresses for routers, which are those that it has been configured with as well as others it learns about through received IS-Hellos. All routers other than the DR transmit an IS-Hello periodically, but only to the DR. The DR includes in its DR-IS-Hello a list of all the routers on SMDS. This protocol minimizes IS Hello traffic, and allows incomplete configuration (for instance, it allows a new router to be installed by merely configuring the new router with the SMDS address of any other router). Each router starts out assuming it is DR. A router that thinks it is DR transmits DR-IS-Hellos periodically to each of its manually configured SMDS addresses for router neighbors. It also receives IS-Hellos from other routers, which contain the SMDS addresses those routers have been manually configured with to reach router neighbors. The DR combines all these addresses and transmits DR-IS-Hellos to all of those addresses, plus all the SMDS addresses from which it receives IS-Hellos, with one exception. Since some of the manually configured Page 19 addresses might be SMDS group addresses, some routers might receive multiple copies of the DR-IS-Hellos, which would be wasteful. Therefore the IS-Hello contains the SMDS group address (if any) that the transmitting router receives messages on. Then the DR can eliminate SMDS unicast addresses that are already being covered by any SMDS group addresses in the set. A router stops thinking itself DR if it receives a DR-IS-Hello from a router "more qualified" to be DR (which is based on ID and configured priority). A router that thinks some other router is DR stops sending DR-IS-Hellos and instead sends IS-Hellos, and only to the router it thinks is the DR. One additional message is a "Hello-Redirect". This is transmitted by a router R1, that thinks router R2 is DR. R1 transmits a "Hello-Redirect" in response to receiving an IS-Hello from R3 (since R3 sent an IS-Hello to R1, that means that R3 thinks R1 is DR). The Hello-Redirect informs R3 that R2's SMDS address is really the DR. When R3 receives the Hello-Redirect, it transmits a single IS-Hello to the SMDS address in the Hello-Redirect, but does not otherwise change its perception of the DR. Only after it receives a DR-IS-Hello from R2 will R3 change its perception of the DR. The protocol is as follows: 1. If a DR other than SELF is known, periodically (IS to IS Hello Timer) transmit IS-Hello messages to the DR. The IS-Hello contains the transmitting router's SMDS individual address (the source address in the SMDS header), an SMDS group address on which it receives messages (if any), and the SMDS addresses (group and/or individual) it was configured with for reaching router neighbors. 2. If the Holding Timer expires without receipt of a DR-IS-Hello from the DR, delete all information about the DR and assume SELF is DR. 3. If router R1 which thinks R2 is DR receives an IS-Hello from R3, R1 sends R3 a Hello-Redirect, informing R3 about R2. 4. If router R3 receives a Hello-Redirect, informing it of R2, R3 transmits a single IS-Hello to R2, but does not change any of its state about the DR. 5. If router R1 which thinks R2 is DR receives a DR-IS-Hello from R4, and R4 has a higher priority for becoming DR than R2 (based on ID and priority), then R1 deletes the information about R2 and keeps R4 as DR. 6. If router R1 thinks itself to be DR, it combines all the configured SMDS addresses for routers that it either was configured with or that it learned through IS-Hello messages. It adds to that set the SMDS addresses from which it receives IS-Hellos. It then deletes from the set of unicast addresses, those SMDS addresses of routers that claim to be Page 20 included in an SMDS group address in the set. This list of addresses is the one that R1 periodically transmits DR-IS-Hello messages to. It is called the IS-SMDS-BROADCAST-ADDRESSES. The DR inserts into its DR-IS Hello a list of the CLNP ID, SMDS address pairs of each router from whom it has recently received an IS-Hello. This list is used so that routers other than the DR can forward to each other directly over SMDS (i.e., they can know the SMDS address associated with their neighbor routers). 5.2 Finding An IS Simple-ESs, Configured-ESs, Passive-ISs, and Configured-Passive-ISs do not maintain continual contact with a non-passive IS, as nonpassive ISs and Dynamically-Learned ESs do. They find an IS on an as-needed basis by "pinging". They are configured with a set of SMDS addresses (group and/or individual) for reaching ISs. When they need an IS, they send an ES Hello (with Holding Timer 0) to each configured address, round robin, until a reply (in the form of a DR-ES Hello or Hello Redirect) is received. An ES Hello with holding timer=0 is known as a "ping". An IS that receives an ES Hello with Holding Timer equal to 0 replies with a DR-ES Hello (if the receiving IS is the DR) or a Hello Redirect (if the receiving IS is other than the DR). ES implementations may choose to store only the SMDS address of the DR (the one from which a DR-ES is received, or the SMDS address in received Hello Redirects), or it may choose to store more SMDS addresses for ISs as backups. The ISs that receive ES Hellos with Holding Timer=0 reply with a single packet (DR-ES Hello or Hello Redirect) to the SMDS address from which the ES Hello was received, but do not otherwise store information from the received ES Hello. 5.3 Forwarding Across SMDS Only the DR gets IS Hellos from all the routers and ES Hellos from all the dynamically discovered ESs. The DR will put the CLNP addresses of all the reachable ESs and ISs in the pseudonode LSP, so all the nonpassive routers will learn which nodes are reachable across SMDS. However, the SMDS address will not appear in the pseudonode LSP. To enable ISs to communicate directly, the DR's IS Hello will include the CLNP ID, SMDS address pairs of all ISs. It will not include all the dynamically discovered ESs in the Hello, however. Instead an IS other than the DR that needs to transmit to a dynamically discovered ES will first transmit to the DR, and then receive a Redirect. The reason the DR-IS Hello contains a list of ISs but not ESs is that Page 21 it is more important to quickly learn about ISs that have gone down than ESs. If a Redirect cache entry for an ES no longer works, it means the ES is unreachable, whereas if an IS goes down, any Redirect cache entries indicating traffic should be forwarded to that IS become black holes for destinations that might be reachable through a different IS. 5.4 Fragmentation Of The DR-Hello The DR-IS Hello might become very large due to its including the IS Adjacency information, which is the list of CLNP ID, SMDS address pairs of all the router adjacencies on SMDS. The DR-IS Hello is encoded so that partial information can appear and be processed. This is done by including an address range when list of addresses appears. Then receiving routers can adjust the portion of their adjacency database or SMDS transmit list that is included in that range, based solely on the information in one DR-IS Hello fragment. 5.5 Maintenance Of The Destination Cache Assume a packet is received with destination D, either from Transport or from a link (in the case of a router). 1. (only relevant if packet arrived from Transport and the Transport/Network Layer interface allows a notification by Transport that it is not successfully communicating with that destination). If Transport indicates a problem communicating with D, then delete the cache entry for D. If no cache entry exists for D, and this node is a simple ES or passive router, delete knowledge of the active router (which will cause re-pinging to find a new active router). 2. If a cache entry in the destination cache exists for D, then a) if only a single SMDS address is indicated in the cache, send to that SMDS address b) if a set of SMDS addresses is given in the cache, find the one after the one most recently used, update the round robin pointer, and send to that SMDS address 3. Else (no cache entry exists), if this node is a nonpassive router, and a route to D has been learned through the IS-IS protocol which is of smaller cost or a more specific address match than any address prefix that matches D that has been configured for the SMDS circuit, then route according to the IS-IS learned path. Page 22 4. Else (no cache entry exists, no better information has been learned through IS-IS), if D matches a configured address prefix, then a) if the configuration information indicates the SMDS address should be extracted from D's IDP, then extract the SMDS address and transmit the packet b) if the configuration information is instead a specific SMDS address, then transmit the packet to that SMDS address c) if the configuration information instead is a set of SMDS addresses, then make a cache entry for (D, set of SMDS addresses, round robin pointer). Send the packet to the first SMDS address in the list and start the round robin pointer there. 5. Else (no cache entry for D, D does not match any configured address prefix) a) if a router assumed to be active is known, transmit the packet to that router's SMDS address b) Else (no active router is known), perform the procedure of pinging the router addresses. Hold the packet until a router responds to the ping, but discard the packet if no responses are received from any of the routers. 5.6 SMDS Configuration Information Included In LSPs If CLNP addresses (IDs for level 1, and address prefixes for level 2) are manually configured as being reachable across SMDS, they must appear in LSPs so that routers that are not connected to SMDS can reach those CLNP addresses. It is wasteful for all the routers on SMDS to include those addresses in their LSPs. Therefore, a router includes in its LSP only those manually configured addresses that are not already included in the pseudonode LSP for SMDS. As a result if all nonpassive routers on SMDS are configured with the same set of reachable addresses for SMDS, only the DR will report those addresses in an LSP (the pseudonode LSP). If the nonpassive routers are incompletely configured, then all routers on SMDS that have been configured with a reachable address that the DR has not been configured with will report that reachable address in their LSP. Redirects will eliminate extra hops across SMDS due to incompletely configured information. Page 23 6 PACKET FORMATS The packet formats described below are the payload of an SMDS L3 PDU. The SIP L3 information field starts with the fields DSAP, SSAP, and CTL. +---------------------------------+ | SIP L3 Header | +---------------------------------+ | DSAP (1 octet) = fe hex | } SIP L3 +---------------------------------+ } information | SSAP (1 octet) = fe hex | } field +---------------------------------+ } | CTL (1 octet) = 3 | } +---------------------------------+ } | CLNS Packet, as described | } | below | } +---------------------------------+ | Remaining SIP L3 fields | | (padding, CRC, trailer) | +---------------------------------+ 6.1 Unchanged Packet Formats 1. CLNP packets (data packet and error report) 2. LSPs (Level 1 and level 2) 3. CSNPs (Level 1 and level 2) 4. PSNPs (Level 1 and level 2) 6.2 Initial Fields In All The SMDS Packets All the packets start out with the following fields: # of octets +---------+ | NLPID | 1 +---------+ | Version | 1 +---------+ | length | 2 +---------+ | Type | 1 +---------+ Page 24 1. NLPID (Network Layer Protocol ID) will be 82 hex for ES-IS or 83 hex for IS-IS 2. Version, the constant 1 3. Length, the total length of the CLNS packet 4. Type, the type of packet: 1. SMDS ES Hello (ES-IS pkt): type 2 2. SMDS DR-ES Hello (ES-IS pkt): type 4 3. SMDS Level 1 IS Hello (IS-IS pkt): type 0f hex 4. SMDS Level 2 IS Hello (IS-IS pkt): type 10 hex 5. SMDS Redirect (ES-IS): type 6 Some have "options", which are encoded as: # of octets +---------+ | type | 1 +---------+ | length | 1 or 2 (depending on option type) +---------+ | value | variable +---------+ 1. type, the type of option 2. length, the length in octets of the "data" field 3. data, the data associated with the option The defined types for SMDS options are: 1. preconfigured SMDS addresses for reaching ISs, option type 1 2. IS adjacencies, option type 2 3. preconfigured SMDS addresses for reaching ESs, option type 3 4. area addresses, option type 4 5. password, option type 5 In addition, there are options that appear in ES-IS packets as defined in ISO 9542. These options have a length field which is 1 octet. The Page 25 ISO 9542-defined options may appear in the functionally equivalent SMDS ES-IS packets defined in this document, in which case they would have the option codes and functions (and a length field of 1 octet) as defined in ISO 9542. Those options are: 1. security, option type c5 hex 2. quality of service maintenance, option type c3 hex 3. priority, option type cd hex 4. address mask, option type e1 hex 5. SNPA mask, option type e2 hex 6. suggested ES configuration timer, option type c6 hex 6.3 SMDS ES Hello Only dynamically discovered ESs send ES Hellos. Usually an SMDS ES will have to send a level 2 ES Hello because its IDP will not equal the IDP of a router reachable across SMDS. A level 1 ES Hello is distinguished from a level 2 ES Hello based on the "level" flag. 1. NLPID, 1 octet, 82 hex (for ES-IS) 2. Version, 1 octet, the constant 1 3. Length, 2 octets, the total length of the packet 4. Packet Type 5. Holding Time, 2 octets, the value in seconds, equal to 3 times Hello Timer 6. level, 1 octet -- the top 7 bits are reserved. The bottom bit=1 to indicate this is a level 2 ES Hello. 7. Number of source addresses, 1 octet. In a leve1 1 ES Hello, each source address consists of the ID portion of the CLNP address. In a level 2 ES Hello, each source address consists of an octet specifying the address length, and an octet specifying the address. In level 2 ES Hellos, the addresses advertised are CLNP address prefixes. 8. Source address 9. Source address 10. .... Page 26 11. Source address 12. Options a) Password i) Option type, 1 octet = 5 ii) length, 1 octet iii) password 6.4 SMDS DR-to-ES Hello 1. NLPID, 1 octet, 82 hex (for ES-IS) 2. Version, 1 octet, the constant 1 3. Length, 2 octets, the total length of the packet 4. Packet Type 5. Holding Time, 2 octets, the value in seconds, equal to 3 times Hello Timer 6. Options a) Password i) Option type, 1 octet = 5 ii) length, 1 octet iii) password 6.5 SMDS Level 1 IS Hello This packet type is used both for a non-DR to send an ISH to the DR, and for the DR to send its ISH to the other ISs. 1. NLPID, 1 octet, 83 hex (for IS-IS) 2. Version, 1 octet, the constant 1 Page 27 3. Length, 2 octets, the total length of the packet 4. Packet Type 5. Holding Time, 2 octets, the value in seconds, equal to 3 times Hello Timer 6. DR flag, 1 octet -- the top 7 bits are reserved. The bottom bit=1 indicates the transmitting IS considers itself to be the DR. 7. ID length, 1 octet, the number of octets this router thinks is in the ID field of a CLNP address 8. Maximum area addresses, 1 octet, the maximum number of area addresses this router is prepared to keep 9. Priority, 1 octet, the configured priority of this IS for becoming DR 10. Circuit type, 1 octet, 1=level 1 only, 2=level 2 only, 3=both level 1 and level 2 11. ID, (ID length octets) 12. SMDS group address (or 0 if none) this router receives messages on, 8 octets -- this field is only present when the ISH is transmitted by a non-DR 13. Options a) Area addresses i) Option type, 1 octet = 4 ii) length, 1 octet, a multiple of 8 iii) list of area addresses a) Address length, 1 octet b) Area Address b) Preconfigured SMDS addresses for reaching ISs (only transmitted by non-DR) i) Option type, 1 octet = 1 ii) length, 2 octets, a multiple of 8 iii) list of SMDS addresses Page 28 c) Preconfigured SMDS addresses for reaching ESs (only transmitted by non-DR) i) Option type, 1 octet = 3 ii) length, 2 octets, a multiple of 8 iii) list of SMDS addresses d) IS addresses (only transmitted by DR) i) option type, 1 octet = 2 ii) length, 2 octets, ID length*2 plus a multiple of 8+ID Length iii) Numerically lowest ID reported in this IS Hello iv) Numerically highest ID reported in this IS Hello v) ID, SMDS address pairs for nonpassive routers that have been sending IS Hellos to the DR e) Password i) Option type, 1 octet = 5 ii) length, 1 octet iii) password 6.6 SMDS Level 2 IS Hello This has the same format as an SMDS Level 1 IS Hello. The only difference is the packet type. 6.7 Redirect This type of packet is used as a Hello Redirect and as a Data Redirect. It is used for Level 1 and Level 2 Hello Redirection. A Hello Redirect is used when an IS receives a Hello from an IS or an ES, and that IS does not think itself to be the DR. The packet informs the transmitter of the Hello of the SMDS address of the actual DR. A level 1 IS Hello Redirect is sent in response to a level 1 Hello, and directs towards the level 1 DR. A level 2 IS Hello Page 29 Redirect is sent in response to a level 2 Hello, and directs towards the level 2 DR. A Data Redirect is transmitted by an IS R to the SMDS address from which R received a CLNP packet for forwarding, when R forwards the packet back across the same SMDS network from which the CLNP packet was received. 1. NLPID, 1 octet, 82 hex 2. Version, 1 octet, the constant 1 3. Length, 2 octets, the total length of the packet 4. Packet Type 5. Flags, 1 octet 6 1 1 # of bits +----------+-------+-----+ | reserved | level | H/D | +----------+-------+-----+ "level" is 0 for level 1, 1 for level 2. "H/D" is 0 for Data Redirect, 1 for Hello Redirect 6. SMDS address, 8 octets: In the case of a Hello Redirect, it is the SMDS address of the DR. In the case of a Data Redirect, it is the SMDS address to forward to for that destination, and all destinations matching that address prefix. 7. Password (only present in Hello Redirect) 8. Holding Time, 2 octets, only present in Data Redirect, and is in units of seconds 9. CLNP destination address length, 1 octet, only present in Data Redirect 10. CLNP destination address, variable length, only present in Data Redirect 11. Options a) Password (present only in Hello Redirect) i) Option type, 1 octet = 5 ii) length, 1 octet iii) password Page 30 7 ACRONYMS USED IN THIS SPECIFICATION 1. CLNP -- Connectionless Network Layer Protocol. CLNP is the data packet format, including the standard for addressing. 2. CLNS -- Connectionless Network Layer Service. CLNS includes the protocols CLNP, ES-IS and IS-IS. 3. ES -- End system 4. IS -- Intermediate system (i.e., a router) 5. ES-IS -- Protocol between neighbor ESs and ISs 6. IS-IS -- Protocol between ISs (includes ISs exchanging routing information so as to compute routes, as well as a protocol for neighbor ISs to find and keep track of each other) ---------------------- end of specification -----------------------