diff options
author | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
---|---|---|
committer | Thomas Voss <mail@thomasvoss.com> | 2024-11-27 20:54:24 +0100 |
commit | 4bfd864f10b68b71482b35c818559068ef8d5797 (patch) | |
tree | e3989f47a7994642eb325063d46e8f08ffa681dc /doc/rfc/rfc2642.txt | |
parent | ea76e11061bda059ae9f9ad130a9895cc85607db (diff) |
doc: Add RFC documents
Diffstat (limited to 'doc/rfc/rfc2642.txt')
-rw-r--r-- | doc/rfc/rfc2642.txt | 5323 |
1 files changed, 5323 insertions, 0 deletions
diff --git a/doc/rfc/rfc2642.txt b/doc/rfc/rfc2642.txt new file mode 100644 index 0000000..f981a2c --- /dev/null +++ b/doc/rfc/rfc2642.txt @@ -0,0 +1,5323 @@ + + + + + + +Network Working Group L. Kane +Request for Comments: 2642 Cabletron Systems Incorporated +Category: Informational August 1999 + + + Cabletron's VLS Protocol Specification + +Status of this Memo + + This memo provides information for the Internet community. It does + not specify an Internet standard of any kind. Distribution of this + memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (1999). All Rights Reserved. + +Abstract + + The Virtual LAN Link State Protocol (VLSP) is part of the InterSwitch + Message Protocol (ISMP) which provides interswitch communication + between switches running Cabletron's SecureFast VLAN (SFVLAN) + product. VLSP is used to determine and maintain a fully connected + mesh topology graph of the switch fabric. Each switch maintains an + identical database describing the topology. Call-originating switches + use the topology database to determine the path over which to route a + call connection. + + VLSP provides support for equal-cost multipath routing, and + recalculates routes quickly in the face of topological changes, + utilizing a minimum of routing protocol traffic. + +Table of Contents + + 1. Introduction............................................ 3 + 1.1 Acknowledgments..................................... 3 + 1.2 Data Conventions.................................... 3 + 1.3 ISMP Overview....................................... 4 + 2. VLS Protocol Overview................................... 5 + 2.1 Definitions of Commonly Used Terms.................. 6 + 2.2 Differences Between VLSP and OSPF................... 7 + 2.2.1 Operation at the Physical Layer............... 8 + 2.2.2 All Links Treated as Point-to-Point........... 8 + 2.2.3 Routing Path Information...................... 9 + 2.2.4 Configurable Parameters....................... 9 + 2.2.5 Features Not supported........................ 9 + 2.3 Functional Summary.................................. 10 + 2.4 Protocol Packets.................................... 11 + + + +Kane Informational [Page 1] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 2.5 Protocol Data Structures............................ 12 + 2.6 Basic Implementation Requirements................... 12 + 2.7 Organization of the Remainder of This Document...... 13 + 3. Interface Data Structure................................ 14 + 3.1 Interface States.................................... 16 + 3.2 Events Causing Interface State Changes.............. 18 + 3.3 Interface State Machine............................. 21 + 4. Neighbor Data Structure................................. 23 + 4.1 Neighbor States..................................... 25 + 4.2 Events Causing Neighbor State Changes............... 27 + 4.3 Neighbor State Machine.............................. 29 + 5. Area Data Structure..................................... 33 + 5.1 Adding and Deleting Link State Advertisements....... 34 + 5.2 Accessing Link State Advertisements................. 35 + 5.3 Best Path Lookup.................................... 35 + 6. Discovery Process....................................... 35 + 6.1 Neighbor Discovery.................................. 36 + 6.2 Bidirectional Communication......................... 37 + 6.3 Designated Switch................................... 38 + 6.3.1 Selecting the Designated Switch............... 39 + 6.4 Adjacencies......................................... 41 + 7. Synchronizing the Databases............................. 42 + 7.1 Link State Advertisements........................... 43 + 7.1.1 Determining Which + Link State Advertisement Is Newer............. 44 + 7.2 Database Exchange Process........................... 44 + 7.2.1 Database Description Packets.................. 44 + 7.2.2 Negotiating the Master/Slave Relationship..... 45 + 7.2.3 Exchanging Database Description Packets....... 46 + 7.3 Updating the Database............................... 48 + 7.4 An Example.......................................... 49 + 8. Maintaining the Databases............................... 51 + 8.1 Originating Link State Advertisements............... 52 + 8.1.1 Switch Link Advertisements.................... 52 + 8.1.2 Network Link Advertisements................... 55 + 8.2 Distributing Link State Advertisements.............. 56 + 8.2.1 Overview...................................... 57 + 8.2.2 Processing an + Incoming Link State Update Packet............. 58 + 8.2.3 Forwarding Link State Advertisements.......... 60 + 8.2.4 Installing Link + State Advertisements in the Database.......... 62 + 8.2.5 Retransmitting Link State Advertisements...... 63 + 8.2.6 Acknowledging Link State Advertisements....... 64 + 8.3 Aging the Link State Database....................... 66 + 8.3.1 Premature Aging of Advertisements............. 66 + 9. Calculating the Best Paths.............................. 67 + 10. Protocol Packets........................................ 67 + + + +Kane Informational [Page 2] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 10.1 ISMP Packet Format................................. 68 + 10.1.1 Frame Header................................ 69 + 10.1.2 ISMP Packet Header.......................... 70 + 10.1.3 ISMP Message Body........................... 71 + 10.2 VLSP Packet Processing............................. 71 + 10.3 Network Layer Address Information.................. 72 + 10.4 VLSP Packet Header................................. 73 + 10.5 Options Field...................................... 75 + 10.6 Packet Formats..................................... 76 + 10.6.1 Hello Packets............................... 76 + 10.6.2 Database Description Packets................ 78 + 10.6.3 Link State Request Packets.................. 80 + 10.6.4 Link State Update Packets................... 82 + 10.6.5 Link State Acknowledgment Packets........... 83 + 11. Link State Advertisement Formats........................ 84 + 11.1 Link State Advertisement Headers................... 84 + 11.2 Switch Link Advertisements......................... 86 + 11.3 Network Link Advertisements........................ 89 + 12. Protocol Parameters..................................... 89 + 12.1 Architectural Constants............................ 90 + 12.2 Configurable Parameters............................ 91 + 13. End Notes............................................... 93 + 14. Security Considerations................................. 94 + 15. References.............................................. 94 + 16. Author's Address........................................ 94 + 17. Full Copyright Statement................................ 95 + +1. Introduction + + This memo is being distributed to members of the Internet community + in order to solicit reactions to the proposals contained herein. + While the specification discussed here may not be directly relevant + to the research problems of the Internet, it may be of interest to + researchers and implementers. + +1.1 Acknowledgments + + VLSP is derived from the OSPF link-state routing protocol described + in [RFC2328], written by John Moy, formerly of Proteon, Inc., + Westborough, Massachusetts. Much of the current memo has been drawn + from [RFC2328]. Therefore, this author wishes to acknowledge the + contribution Mr. Moy has (unknowingly) made to this document. + +1.2 Data Conventions + + The methods used in this memo to describe and picture data adhere to + the standards of Internet Protocol documentation [RFC1700]. In + particular: + + + +Kane Informational [Page 3] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + The convention in the documentation of Internet Protocols is to + express numbers in decimal and to picture data in "big-endian" + order. That is, fields are described left to right, with the most + significant octet on the left and the least significant octet on + the right. The order of transmission of the header and data + described in this document is resolved to the octet level. + Whenever a diagram shows a group of octets, the order of + transmission of those octets is the normal order in which they are + read in English. + + Whenever an octet represents a numeric quantity the left most bit + in the diagram is the high order or most significant bit. That + is, the bit labeled 0 is the most significant bit. + + Similarly, whenever a multi-octet field represents a numeric + quantity the left most bit of the whole field is the most + significant bit. When a multi-octet quantity is transmitted the + most significant octet is transmitted first. + +1.3 ISMP Overview + + The InterSwitch Message Protocol (ISMP) provides a consistent method + of encapsulating and transmitting control messages exchanged between + switches running Cabletron's SecureFast VLAN (SFVLAN) product, as + described in [IDsfvlan]. ISMP provides the following services: + + o Topology services. Each switch maintains a distributed topology + of the switch fabric by exchanging the following interswitch + control messages with other switches: + + o Interswitch Keepalive messages are sent by each switch to announce + its existence to its neighboring switches and to establish the + topology of the switch fabric. (Interswitch Keepalive messages + are exchanged in accordance with Cabletron's VlanHello protocol, + described in [IDhello].) + + o Interswitch Spanning Tree BPDU messages and Interswitch Remote + Blocking messages are used to determine and maintain a loop-free + flood path between all network switches in the fabric. This flood + + path is used for all undirected interswitch messages -- that is, + messages that are (potentially) sent to all switches in the switch + fabric. + + o Interswitch Link State messages (VLS protocol) are used to + determine and maintain a fully connected mesh topology graph of + the switch fabric. Call-originating switches use the topology + graph to determine the path over which to route a call connection. + + + +Kane Informational [Page 4] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o Address resolution services. Interswitch Resolve messages are + used to resolve a packet destination address when the packet + source and destination pair does not match a known connection. + Interswitch New User messages are used to provide end-station + address mobility between switches. + + o Tag-based flooding. A tag-based broadcast method is used to + restrict the broadcast of unresolved packets to only those ports + within the fabric that belong to the same VLAN as the source. + + o Call tapping services. Interswitch Tap messages are used to + monitor traffic moving between two end stations. Traffic can be + monitored in one or both directions along the connection path. + + Note: Previous versions of VLSP treated all links as if they were + broadcast (multi-access). Thus, if VLSP determines that a neighbor + switch is running an older version of the protocol software (see + Section 6.1), it will change the interface type to broadcast and + begin exchanging Hello packets with the single neighbor switch. + +2. VLS Protocol Overview + + VLSP is a dynamic routing protocol. It quickly detects topological + changes in the switch fabric (such as, switch interface failures) and + calculates new loop-free routes after a period of convergence. This + period of convergence is short and involves a minimum of routing + traffic. + + All switches in the fabric run the same algorithm and maintain + identical databases describing the switch fabric topology. This + database contains each switch's local state, including its usable + interfaces and reachable neighbors. Each switch distributes its + local state throughout the switch fabric by flooding. From the + topological database, each switch constructs a set of best path trees + (using itself as the root) that specify routes to all other switches + in the fabric. + + + + + + + + + + + + + + + +Kane Informational [Page 5] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +2.1 Definitions of Commonly Used Terms + + This section contains a collection of definitions for terms that have + a specific meaning to the protocol and that are used throughout the + text. + + Switch ID + + A 10-octet value that uniquely identifies the switch within the + switch fabric. The value consists of the 6-octet base MAC address + of the switch, followed by 4 octets of zeroes. + + Network link + + The physical connection between two switches. A link is + associated with a switch interface. + + There are two physical types of network links supported by VLSP: + + o Point-to-point links that join a single pair of switches. A + serial line is an example of a point-to-point network link. + + o Multi-access broadcast links that support the attachment of + multiple switches, along with the capability to address a + single message to all the attached switches. An attached + ethernet is an example of a multi-access broadcast network + link. + + A single topology can contain both types of links. At startup, + all links are assumed to be point-to-point. A link is + determined to be multi-access when more than one neighboring + switch is discovered on the link. + + Interface + + The port over which a switch accesses one of its links. + Interfaces are identified by their interface ID, a 10-octet value + consisting of the 6-octet base MAC address of the switch, followed + by the 4-octet local port number of the interface. + + Neighboring switches + + Two switches attached to a common link. + + + + + + + + +Kane Informational [Page 6] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Adjacency + + A relationship formed between selected neighboring switches for + the purpose of exchanging routing information. Not every pair of + neighboring switches become adjacent. + + Link state advertisement + + Describes the local state of a switch or a link. Each link state + advertisement is flooded throughout the switch fabric. The + collected link state advertisements of all switches and links form + the protocol's topological database. + + Designated switch + + Each multi-access network link has a designated switch. The + designated switch generates a link state advertisement for the + link and has other special responsibilities in the running of the + protocol. + + The use of a designated switch permits a reduction in the number + of adjacencies required on multi-access links. This in turn + reduces the amount of routing protocol traffic and the size of the + topological database. + + The designated switch is selected during the discovery process. A + designated switch is not selected for a point-to-point network + link. + + Backup designated switch + + Each multi-access network link has a backup designated switch. + The backup designated switch maintains adjacencies with the same + switches on the link as the designated switch. This optimizes the + failover time when the backup designated switch must take over for + the (failed) designated switch. + + The backup designated switch is selected during the Discovery + process. A backup designated switch is not selected for a point- + to-point network link. + +2.2 Differences Between VLSP and OSPF + + The VLS protocol is derived from the OSPF link-state routing protocol + described in [RFC2328]. + + + + + + +Kane Informational [Page 7] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +2.2.1 Operation at the Physical Layer + + The primary differences between the VLS and OSPF protocols stem from + the fact that OSPF runs over the IP layer, while VLSP runs at the + physical MAC layer. This difference has the following repercussions: + + o VLSP does not support features (such as fragmentation) that are + typically provided by network layer service providers. + + o Due to the unrelated nature of MAC address assignments, VLSP + provides no summarization of the address space (such as, classical + IP subnet information) or level 2 routing (such as, + + IS-IS Phase V DECnet). Thus, VLSP does not support grouping + switches into areas. All switches exist in a single area. Since + a single domain exists within any switch fabric, there is no need + for VLSP to provide interdomain reachability. + + o As mentioned in Section 10.1.1, ISMP uses a single well-known + multicast address for all packets. However, parts of the VLS + protocol (as derived from OSPF) are dependent on certain network + layer addresses -- in particular, the AllSPFSwitches and + AllDSwitches multicast addresses that drive the distribution of + link state advertisements throughout the switch fabric. In order + to facilitate the implementation of the protocol at the physical + MAC layer, network layer address information is encapsulated in + the protocol packets (see Section 10.3). This information is + unbundled and packets are then processed as if they had been sent + or received on that multicast address. + +2.2.2 All Links Treated as Point-to-Point + + When the switch first comes on line, VLSP assumes all network links + are point-to-point and no more than one neighboring switch will be + discovered on any one port. Therefore, at startup, VLSP does not + send its own Hello packets over its network ports, but instead, + relies on the VlanHello protocol [IDhello] for the discovery of its + neighbor switches. If a second neighbor is detected on a link, the + link is then deemed multi-access and the interface type is changed to + broadcast. At that point, VLSP exchanges its own Hello packets with + the switches on the link in order to select a designated switch and + designated backup switch for the link. + + This method eliminates unnecessary duplication of message traffic and + processing, thereby increasing the overall efficiency of the switch + fabric. + + + + + +Kane Informational [Page 8] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Note: Previous versions of VLSP treated all links as if they were + broadcast (multi-access). Thus, if VLSP determines that a neighbor + switch is running an older version of the protocol software (see + Section 6.1), it will change the interface type to broadcast and + begin exchanging Hello packets with the single neighbor switch. + +2.2.3 Routing Path Information + + Instead of providing the next hop to a destination, VLSP calculates + and maintains complete end-to-end path information. On request, a + list of individual port identifiers is generated describing a + complete path from the source switch to the destination switch. If + multiple equal-cost routes exist to a destination switch, up to three + paths are calculated and returned. + +2.2.4 Configurable Parameters + + OSPF supports (and requires) configurable parameters. In fact, even + the default OSPF configuration requires that IP address assignments + be specified. On the other hand, no configuration information is + ever required for the VLS protocol. Switches are uniquely identified + by their base MAC addresses and ports are uniquely identified by the + base MAC address of the switch and a port number. + + While a developer is free to implement configurable parameters for + the VLS protocol, the current version of VLSP supports configurable + path metrics only. Note that this has the following repercussions: + + o All switches are assigned a switch priority of 1. This forces the + selection of the designated switch to be based solely on base MAC + address. + + o Authentication is not supported. + +2.2.5 Features Not supported + + In addition to those features mentioned in the previous sections, the + following OSPF features are not supported by the current version of + VLSP: + + o Periodic refresh of link state advertisements. (This optimizes + performance by eliminating unnecessary traffic between the + switches.) + + o Routing based on non-zero type of service (TOS). + + o Use of external routing information for destinations outside the + switch fabric. + + + +Kane Informational [Page 9] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +2.3 Functional Summary + + There are essentially four operational stages of the VLS protocol. + + o Discovery Process The discovery process involves two steps: + + o Neighboring switches are detected by the VlanHello protocol + [IDhello] which then notifies VLSP of the neighbor. + + o If more than one neighbor switch is detected on a single port, + the link is determined to be multi-access. VLSP then sends its + own Hello packets over the link in order to discover the full + set of neighbors on the link and select a designated switch and + designated backup switch for the link. Note that this + selection process is unnecessary on point-to-point links. + + The discovery process is described in more detail in Section 6. + + o Synchronizing the Databases + + Adjacencies are used to simplify and speed up the process of + synchronizing the topological database (also known as the link + state database) maintained by each switch in the fabric. Each + switch is only required to synchronize its database with those + neighbors to which it is adjacent. This reduces the amount of + routing protocol traffic across the fabric, particularly for + multi-access links with multiple switches. + + The process of synchronizing the databases is described in more + detail in Section 7. + + o Maintaining the Databases + + Each switch advertises its state (also known as its link state) + any time its link state changes. Link state advertisements are + distributed throughout the switch fabric using a reliable flooding + algorithm that ensures that all switches in the fabric are + notified of any link state changes. + + The process of maintaining the databases is described in more + detail in Section 8. + + + + + + + + + + +Kane Informational [Page 10] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o Calculating the Best Paths + + The link state database consists of the collection of link state + advertisements received from each switch. Each switch uses its + link state database to calculate a set of best paths, using itself + as root, to all other switches in the fabric. + + The process of recalculating the set of best paths is described in + more detail in Section 9. + +2.4 Protocol Packets + + In addition to the frame header and the ISMP packet header described + in Section 10.1, all VLS protocol packets share a common protocol + header, described in Section 10.4. + + The VLSP packet types are listed below in Table 1. Their formats are + described in Section 10.6. + + Type Packet Name Protocol Function + + 1 Hello Select DS and Backup DS + 2 Database Description Summarize database contents + 3 Link State Request Database download + 4 Link State Update Database update + 5 Link State Ack Flooding acknowledgment + + Table 1: VLSP Packet Types + + The Hello packets are used to select the designated switch and the + backup designated switch on multi-access links. The Database + Description and Link State Request packets are used to form + adjacencies. Link State Update and Link State Acknowledgment packets + are used to update the topological database. + + Each Link State Update packet carries a set of link state + advertisements. A single Link State Update packet may contain the + link state advertisements of several switches. There are two + different types of link state advertisement, as shown below in Table + 2. + + + + + + + + + + + +Kane Informational [Page 11] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + LS Advertisement Advertisement Description + Type Name + + 1 Switch link Originated by all switches. This + advertisements advertisement describes the collected + states of the switch's interfaces. + + 2 Network link Originated by the designated switch. + advertisements This advertisement contains the list + of switches connected to the network + link. + + Table 2: VLSP Link State Advertisements + +2.5 Protocol Data Structures + + The VLS protocol is described in this specification in terms of its + operation on various protocol data structures. Table 3 lists the + primary VLSP data structures, along with the section in which they + are described in detail. + + Structure Name Description + + Interface Data Structure Section 3 + Neighbor Data Structure Section 4 + Area Data Structure Section 5 + + Table 3: VLSP Data Structures + +2.6 Basic Implementation Requirements + + An implementation of the VLS protocol requires the following pieces + of system support: + + Timers + + Two types of timer are required. The first type, known as a one- + shot timer, expires once and triggers an event. The second type, + known as an interval timer, expires at preset intervals. Interval + timers are used to trigger events at periodic intervals. The + granularity of both types of timers is one second. + + Interval timers should be implemented in such a way as to avoid + drift. In some switch implementations, packet processing can + affect timer execution. For example, on a multi-access link with + multiple switches, regular broadcasts can lead to undesirable + synchronization of routing packets unless the interval timers have + been implemented to avoid drift. If it is not possible to + + + +Kane Informational [Page 12] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + implement drift-free timers, small random amounts of time should + be added to or subtracted from the timer interval at each firing. + + List manipulation primitives + + Much of the functionality of VLSP is described here in terms of + its operation on lists of link state advertisements. Any + particular advertisement may be on many such lists. Implementation + of VLSP must be able to manipulate these lists, adding and + deleting constituent advertisements as necessary. + + Tasking support + + Certain procedures described in this specification invoke other + procedures. At times, these other procedures should be executed + in-line -- that is, before the current procedure has finished. + This is indicated in the text by instructions to "execute" a + procedure. At other times, the other procedures are to be + executed only when the current procedure has finished. This is + indicated by instructions to "schedule" a task. Implementation of + VLSP must provide these two types of tasking support. + +2.7 Organization of the Remainder of This Document + + The remainder of this document is organized as follows: + + o Section 3 through Section 5 describe the primary data structures + used by the protocol. Note that this specification is presented + in terms of these data structures in order to make explanations + more precise. Implementations of the protocol must support the + functionality described, but need not use the exact data + structures that appear in this specification. + + o Section 6 through Section 9 describe the four operational stages + of the protocol: the discovery process, synchronizing the + databases, maintaining the databases, and calculating the set of + best paths. + + o Section 10 describes the processing of VLSP packets and presents + detailed descriptions of their formats. + + o Section 11 presents detailed descriptions of link state + advertisements. + + o Section 12 summarizes the protocol parameters. + + + + + + +Kane Informational [Page 13] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +3. Interface Data Structure + + The port over which a switch accesses a network link is known as the + link interface. Each switch maintains a separate interface data + structure for each network link. + + The following data items are associated with each interface: + + Type + + The type of network to which the interface is attached -- point- + to-point or broadcast (multi-access). This data item is + initialized to point-to-point when the interface becomes + operational. If a second neighbor is detected on the link after + the first neighbor has been discovered, the link interface type is + changed to broadcast. The type remains as broadcast until the + interface is declared down, at which time the type reverts to + point-to-point. + + Note: Previous versions of VLSP treated all links as if they were + multi-access. Thus, if VLSP determines that a neighbor switch is + running an older version of the protocol software (see Section 6.1), + it will change the interface type to broadcast. + + State + + The functional level of the interface. The state of the interface + is included in all switch link advertisements generated by the + switch, and is also used to determine whether full adjacencies are + allowed on the interface. See Section 3.1 for a complete + description of interface states. + + Interface identifier + + A 10-octet value that uniquely identifies the interface. This + value consists of the 6-octet base MAC address of the neighbor + switch, followed by the 4-octet local port number of the + interface. + + Area ID + + A 4-octet value identifying the area. Since VLSP does not support + multiple areas, the value here is always zero. + + + + + + + + +Kane Informational [Page 14] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + HelloInterval + + The interval, in seconds, at which the switch sends VLSP Hello + packets over the interface. This parameter is not used on point- + to-point links. + + SwitchDeadInterval + + The length of time, in seconds, that neighboring switches will + wait before declaring the local switch dNeighboring switches + + A list of the neighboring switches attached to this network link. + This list is created during the discovery process. Adjacencies are + formed to one or more of these neighbors. The set of adjacent + neighbors can be determined by examining the states of the + neighboring switches as shown in their link state advertisements. + + Designated switch + + The designated switch selected for the multi-access network link. + (A designated switch is not selected for a point-to-point link.) + This data item is initialized to zero when the switch comes on- + line, indicating that no designated switch has been chosen for the + link. + + Backup designated switch + + The backup designated switch selected for the multi-access network + link. (A backup designated switch is not selected for a point- + to-point link.) This data item is initialized to zero when the + switch comes on-line, indicating that no backup designated switch + has been chosen for the link. + + Interface output cost(s) + + The cost of sending a packet over the interface. The link cost is + expressed in the link state metric and must be greater than zero. + + RxmtInterval + + The number of seconds between link state advertisement + retransmissions, for adjacencies belonging to this interface. This + value is also used to time the retransmission of Database + Description and Link State Request packets. + + + + + + + +Kane Informational [Page 15] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +3.1 Interface States + + This section describes the various states of a switch interface. The + states are listed in order of progressing functionality. For example, + the inoperative state is listed first, followed by a list of the + intermediate states through which the interface passes before + attaining the final, fully functional state. The specification makes + use of this ordering by references such as "those interfaces in state + greater than X". + + Figure 1 represents the interface state machine, showing the + progression of interface state changes. The arrows on the graph + represent the events causing each state change. These events are + described in Section 3.2. The interface state machine is described + in detail in Section 3.3. + + Down + + This is the initial state of the interface. In this state, the + interface is unusable, and no protocol traffic is sent or received + on the interface. In this state, interface parameters are set to + their initial values, all interface timers are disabled, and no + adjacencies are associated with the interface. + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Kane Informational [Page 16] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + +-------+ + | any | Interface +----------+ Unloop Ind +----------+ + | state | -----------> | Down | <----------- | Loopback | + +-------+ Down +----------+ +----------+ + | ^ + | Interface Up | + +-------+ [pt-to-pt] | | + | Point |<------------type? Loop Ind | + | to | | | + | Point | | [broadcast] | + +-------+ V +-------+ + +-----------+ | any | + | Waiting | | state | + +-----------+ +-------+ + | + Backup Seen | + | Wait Timer + | + | + +----------+ Neighbor V Neighbor +----------+ + | DS | <------------> [ ] <------------> | DS Other | + +----------+ Change ^ Change +----------+ + | + | + Neighbor Change | + | + V + +----------+ + | Backup | + +----------+ + + Figure 1: Interface State Machine + + + Loopback + + In this state, the switch interface is looped back, either in + hardware or in software. The interface is unavailable for regular + data traffic. + + Point-to-Point + + In this state, the interface is operational and is connected to a + physical point-to-point link. On entering this state, the switch + attempts to form an adjacency with the neighboring switch. + + + + + + +Kane Informational [Page 17] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Waiting + + In this state, the switch is attempting to identify the backup + designated switch for the link by monitoring the Hello packets it + receives. The switch does not attempt to select a designated + switch or a backup designated switch until it changes out of this + state, thereby preventing unnecessary changes of the designated + switch and its backup. + + DS Other + + In this state, the interface is operational and is connected to a + multi-access broadcast link on which other switches have been + selected as the designated switch and the backup designated + switch. On entering this state, the switch attempts to form + adjacencies with both the designated switch and the backup + designated switch. + + Backup + + In this state, the switch itself is the backup designated switch + on the attached multi-access broadcast link. It will be promoted + to designated switch if the current designated switch fails. The + switch establishes adjacencies with all other switches attached to + the link. (See Section 6.3 for more information on the functions + performed by the backup designated switch.) + + DS + + In this state, this switch itself is the designated switch on the + attached multi-access broadcast link. The switch establishes + adjacencies with all other switches attached to the link. The + switch is responsible for originating network link advertisements + for the link, containing link information for all switches + attached to the link, including the designated switch itself. + (See Section 6.3 for more information on the functions performed + by the designated switch.) + +3.2 Events Causing Interface State Changes + + The state of an interface changes due to an interface event. This + section describes these events. + + Interface events are shown as arrows in Figure 1, the graphic + representation of the interface state machine. For more information + on the interface state machine, see Section 3.3. + + + + + +Kane Informational [Page 18] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Interface Up + + This event is generated by the VlanHello protocol [IDhello] when + it discovers a neighbor switch on the interface. The interface is + now operational. This event causes the interface to change out of + the Down state. The state it enters is determined by the + interface type. If the interface type is broadcast (multi- + access), this event also causes the switch to begin sending + periodic Hello packets out over the interface. + + Wait Timer + + This event is generated when the one-shot Wait timer expires, + triggering the end of the required waiting period before the + switch can begin the process of selecting a designated switch and + a backup designated switch on a multi-access link. + + Backup Seen + + This event is generated when the switch has detected the existence + or non-existence of a backup designated switch for the link, as + determined in one of the following two ways: + + o A Hello packet has been received from a neighbor that claims to + be the backup designated switch. + + o A Hello packet has been received from a neighbor that claims to + be the designated switch. In addition, the packet indicated + that there is no backup. + + In either case, the interface must have bidirectional communication + with its neighbor -- that is, the local switch must be listed in the + neighbor's Hello packet. + + This event signals the end of the Waiting state. + + Neighbor change + + This event is generated when there has been one of the following + changes in the set of bidirectional neighbors associated with the + interface. (See Section 4.1 for information on neighbor states.) + + o Bidirectional communication has been established with a + neighbor -- the state of the neighbor has changed to 2-Way or + higher. + + o Bidirectional communication with a neighbor has been lost -- + the state of the neighbor has changed to Init or lower. + + + +Kane Informational [Page 19] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o A bidirectional neighbor has just declared itself to be either + the designated switch or the backup designated switch, as + detected by examination of that neighbor's Hello packets. + + o A bidirectional neighbor is no longer declaring itself to be + either the designated switch or the backup designated switch, + as detected by examination of that neighbor's Hello packets. + + o The advertised switch priority of a bidirectional neighbor has + changed, as detected by examination of that neighbor's Hello + packets. + + When this event occurs, the designated switch and the backup + designated switch must be reselected. + + Loop Ind + + This event is generated when an interface enters the Loopback + state. This event can be generated by either the network + management service or by the lower-level protocols. + + Unloop Ind + + This event is generated when an interface leaves the Loopback + state. This event can be generated by either the network + management service or by the lower-level protocols. + + Interface Down + + This event is generated under the following two circumstances: + + o The VlanHello [IDhello] protocol has determined that the + interface is no longer functional. + + o The neighbor state machine has detected a second neighboring + switch on a link presumed to be of type point-to-point. In + addition to generating the Interface Down event, the + neighbor state machine changes the interface type to + broadcast. + + In both instances, this event forces the interface state to Down. + However, when the event is generated by the neighbor state + machine, it is immediately followed by an Interface Up event. + (See Section 4.3.) + + + + + + + +Kane Informational [Page 20] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +3.3 Interface State Machine + + This section presents a detailed description of the interface state + machine. + + Interface states (see Section 3.1) change as the result of various + events (see Section 3.2). However, the effect of each event can + vary, depending on the current state of the interface. For this + reason, the state machine described in this section is organized + according to the current interface state and the occurring event. + For each state/event pair, the new interface state is listed, along + with a description of the required processing. + + Note that when the state of an interface changes, it may be necessary + to originate a new switch link advertisement. See Section 8.1 for + more information. + + Some of the processing described here includes generating events for + the neighbor state machine. For example, when an interface becomes + inoperative, all neighbor connections associated with the interface + must be destroyed. For more information on the neighbor state + machine, see Section 4.3. + + State(s): Down + Event: Interface Up + New state: Depends on action routine + Action: + If the interface is a point-to-point link, set the interface state + to Point-to-Point. Otherwise, start the Hello interval timer, + enabling the periodic sending of Hello packets over the interface. + If the switch is not eligible to become the designated switch, + change the interface state to DS Other. Otherwise, set the + interface state to Waiting and start the one-shot wait timer. + Create a new neighbor data structure for the neighbor switch, + initialize all neighbor parameters and set the stateof the + neighbor to Down. + + State(s): Waiting + Event: Backup Seen + New state: Depends on action routine + Action: + Select the designated switch and backup designated switch for the + attached link, as described in Section 6.3.1. As a result of this + selection, set the new state of the interface to either DS Other, + Backup or DS. + + + + + + +Kane Informational [Page 21] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + State(s): Waiting + Event: Wait Timer + New state: Depends on action routine + Action: + Select the designated switch and backup designated switch for the + attached link, as described in Section 6.3.1. As a result of this + selection, set the new state of the interface to either DS Other, + Backup or DS. + + State(s): DS Other, Backup or DS + Event: Neighbor Change + New state: Depends on action routine + Action: + Reselect the designated switch and backup designated switch for + the attached link, as described in Section 6.3.1. As a result of + this selection, set the new state of the interface to either DS + Other, Backup or DS. + + State(s): Any State + Event: Interface Down + New state: Down + Action: + Reset all variables in the interface data structure and disable + all timers. In addition, destroy all neighbor connections + associated with the interface by generating the KillNbr event on + all neighbors listed in the interface data structure. + + State(s): Any State + Event: Loop Ind + New state: Loopback + Action: + Reset all variables in the interface data structure and disable + all timers. In addition, destroy all neighbor connections + associated with the interface by generating the KillNbr event on + all neighbors listed in the interface data structure. + + State(s): Loopback + Event: Unloop Ind + New state: Down + Action: + No action is necessary beyond changing the interface state to Down + because the interface was reset on entering the Loopback state. + + + + + + + + + +Kane Informational [Page 22] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +4. Neighbor Data Structure + + Each switch conducts a conversation with its neighboring switches and + each conversation is described by a neighbor data structure. A + conversation is associated with a switch interface, and is identified + by the neighboring switch ID. + + Note that if two switches have multiple attached links in common, + multiple conversations ensue, each described by a unique neighbor + data structure. Each separate conversation is treated as a separate + neighbor. + + The neighbor data structure contains all information relevant to any + adjacency formed between the two neighbors. Remember, however, that + not all neighbors become adjacent. An adjacency can be thought of as + a highly developed conversation between two switches. + + State + + The functional level of the neighbor conversation. See Section + 4.1 for a complete description of neighbor states. + + Inactivity timer + + A one-shot timer used to determine when to declare the neighbor + down if no Hello packet is received from this (multi-access) + neighbor. The length of the timer is SwitchDeadInterval seconds, + as contained in the neighbor's Hello packet. This timer is not + used on point-to-point links. + + Master/slave flag + + A flag indicating whether the local switch is to act as the master + or the slave in the database exchange process (see Section 7.2). + The master/slave relationship is negotiated when the conversation + changes to the ExStart state. + + Sequence number + + A 4-octet number identifying individual Database Description + packets. When the neighbor state ExStart is entered and the + database exchange process is started, the sequence number is set + to a value not previously seen by the neighboring switch. (One + possible scheme is to use the switch's time of day counter.) The + sequence number is then incremented by the master with each new + Database Description packet sent. See Section 7.2 for more + information on the database exchange process. + + + + +Kane Informational [Page 23] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Neighbor ID + + The switch ID of the neighboring switch, as discovered by the + VlanHello protocol [IDhello] or contained in the neighbor's Hello + packets. + + Neighbor priority + + The switch priority of the neighboring switch, as contained in the + neighbor's Hello packets. Switch priorities are used when + selecting the designated switch for the attached multi-access + link. Priority is not used on point-to-point links. + + Interface identifier + + A 10-octet value that uniquely identifies the interface over which + this conversation is being held. This value consists of the 6- + octet base MAC address of the neighbor switch, followed by the 4- + octet local port number of the interface. + + Neighbor's designated switch + + The switch ID identifying the neighbor's idea of the designated + switch, as contained in the neighbor's Hello packets. This value + is used in the local selection of the designated switch. It is + not used on point-to-point links. + + Neighbor's backup designated switch + + The switch ID identifying the neighbor's idea of the backup + designated switch, as contained in the neighbor's Hello packets. + This value is used in the local selection of the backup designated + switch. It is not used on point-to-point links. + + Link state retransmission list + + The list of link state advertisements that have been forwarded + over but not acknowledged on this adjacency. The local switch + retransmits these link state advertisements at periodic intervals + until they are acknowledged or until the adjacency is destroyed. + (For more information on retransmitting link state advertisements, + see Section 8.2.5.) + + + + + + + + + +Kane Informational [Page 24] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Database summary list + + The set of link state advertisement headers that summarize the + local link state database. When the conversation changes to the + Exchange state, this list is sent to the neighbor via Database + Description packets. (For more information on the synchronization + of databases, see Section 7.) + + Link state request list + + The list of link state advertisements that must be received in + order to synchronize with the neighbor switch's link state + database. This list is created as Database Description packets + are received, and is then sent to the neighbor in Link State + Request packets. (For more information on the synchronization of + databases, see Section 7.) + +4.1 Neighbor States + + This section describes the various states of a conversation with a + neighbor switch. The states are listed in order of progressing + functionality. For example, the inoperative state is listed first, + followed by a list of the intermediate states through which the + conversation passes before attaining the final, fully functional + state. The specification makes use of this ordering by references + such as "those neighbors/adjacencies in state greater than X". + + Figure 2 represents the neighbor state machine. The arrows on the + graph represent the events causing each state change. These events + are described in Section 4.2. The neighbor state machine is + described in detail in Section 4.3. + + Down + + This is the initial state of a neighbor conversation. + + Init + + In this state, the neighbor has been discovered, but bidirectional + communication has not yet been established. All neighbors in this + state or higher are listed in the VLS Hello packets sent by the + local switch over the associated (multi-access) interface. + + + + + + + + + +Kane Informational [Page 25] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + +----------+ KillNbr, LLDown, +-----------+ + | Down | <--------------------- | any state | + +----------+ or Inactivity Timer +-----------+ + | + Hello | + Rcvd | + | + V + +-----< [pt-to-pt?] + | yes | + | | no + | V + | +----------+ 1-Way +----------+ + | | Init | <-------- | >= 2-way | + | +----------+ +----------+ + | | + | 2-Way | + | Rcvd | +-------+ AdjOK? +------------+ + | +----------------> | 2-Way | <------- | >= ExStart | + | | (no adjacency) +-------+ no +------------+ + | | + | V + | +---------+ Seq Number Mismatch +-------------+ + +----> | ExStart | <--------------------- | >= Exchange | + +---------+ or BadLSReq +-------------+ + | + Negotiation | + Done | + V + +----------+ + | Exchange | + +----------+ + | + Exchange | +--------+ + Done +----------------------> | Full | + | (request list empty) +--------+ + | ^ + V | + +---------+ Loading Done | + | Loading | -----------------------> + +---------+ + + Figure 2: Neighbor State Machine + + + + + + + + +Kane Informational [Page 26] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 2-Way + + In this state, communication between the two switches is + bidirectional. This is the most advanced state short of beginning + to establish an adjacency. On a multi-access link, the designated + switch and the backup designated switch are selected from the set + of neighbors in state 2-Way or greater. + + ExStart + + This state indicates that the two switches have begun to establish + an adjacency by determining which switch is the master, as well as + the initial sequence number for Database Descriptor packets. + Neighbor conversations in this state or greater are called + adjacencies. + + Exchange + + In this state, the switches are exchanging Database Description + packets. (See Section 7.2 for a complete description of this + process.) All adjacencies in the Exchange state or greater are + used by the distribution procedure (see Section 8.2), and are + capable of transmitting and receiving all types of VLSP routing + packets. + + Loading + + In this state, the local switch is sending Link State Request + packets to the neighbor asking for the more recent advertisements + that were discovered in the Exchange state. + + Full + + In this state, the two switches are fully adjacent. These + adjacencies will now appear in switch link and network link + advertisements generated for the link. + +4.2 Events Causing Neighbor State Changes + + The state of a neighbor conversation changes due to neighbor events. + This section describes these events. + + Neighbor events are shown as arrows in Figure 2, the graphic + representation of the neighbor state machine. For more information + on the neighbor state machine, see Section 4.3. + + + + + + +Kane Informational [Page 27] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Hello Received + + This event is generated when a Hello packet has been received from + a neighbor. + + 2-Way Received + + This event is generated when the local switch sees its own switch + ID listed in the neighbor's Hello packet, indicating that + bidirectional communication has been established between the two + switches. + + Negotiation Done + + This event is generated when the master/slave relationship has + been successfully negotiated and initial packet sequence numbers + have been exchanged. This event signals the start of the database + exchange process (see Section 7.2). + + Exchange Done + + This event is generated when the database exchange process is + complete and both switches have successfully transmitted a full + sequence of Database Description packets. (For more information + on the database exchange process, see Section 7.2.) + + BadLSReq + + This event is generated when a Link State Request has been + received for a link state advertisement that is not contained in + the database. This event indicates an error in the + synchronization process. + + Loading Done + + This event is generated when all Link State Updates have been + received for all out-of-date portions of the database. (See + Section 7.3.) + + AdjOK? + + This event is generated when a decision must be made as to whether + an adjacency will be established or maintained with the neighbor. + This event will initiate some adjacencies and destroy others. + + + + + + + +Kane Informational [Page 28] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Seq Number Mismatch + + This event is generated when a Database Description packet has + been received with any of the following conditions: + + o The packet contains an unexpected sequence number. + o The packet (unexpectedly) has the Init bit set. + o The packet has a different Options field than was + previously seen. + + These conditions all indicate that an error has occurred during + the establishment of the adjacency. + + 1-Way + + This event is generated when bidirectional communication with the + neighbor has been lost. That is, a Hello packet has been received + from the neighbor in which the local switch is not listed. + + KillNbr + + This event is generated when further communication with the + neighbor is impossible. + + Inactivity Timer + + This event is generated when the inactivity timer has expired, + indicating that no Hello packets have been received from the + neighbor in SwitchDeadInterval seconds. This timer is used only + on broadcast (multi-access) links. + + LLDown + + This event is generated by the lower-level switch discovery + protocols and indicates that the neighbor is now unreachable. + +4.3 Neighbor State Machine + + This section presents a detailed description of the neighbor state + machine. + + Neighbor states (see Section 4.1) change as the result of various + events (see Section 4.2). However, the effect of each event can + vary, depending on the current state of the conversation with the + neighbor. For this reason, the state machine described in this + section is organized according to the current neighbor state and the + occurring event. For each state/event pair, the new neighbor state + is listed, along with a description of the required processing. + + + +Kane Informational [Page 29] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Note that when the neighbor state changes as a result of an interface + Neighbor Change event (see Section 3.2), it may be necessary to rerun + the designated switch selection algorithm. In addition, if the + interface associated with the neighbor conversation is in the DS + state (that is, the local switch is the designated switch), changes + in the neighbor state may cause a new network link advertisement to + be originated (see Section 8.1). + + When the neighbor state machine must invoke the interface state + machine, it is invoked as a scheduled task. This simplifies + processing, by ensuring that neither state machine executes + recursively. + + State(s): Down + Event: Hello Received + New state: Depends on the interface type + Action: + If the interface type of the associated link is point-to-point, + change the neighbor state to ExStart. Otherwise, change the + neighbor state to Init and start the inactivity timer for the + neighbor. If the timer expires before another Hello packet is + received, the neighbor switch is declared dead. + + State(s): Init or greater + Event: Hello Received + New state: No state change + Action: + If the interface type of the associated link is point-to-point, + determine whether this notification is for a different neighbor + than the one previously seen. If so, generate an Interface Down + event for the associated interface, reset the interface type to + broadcast and generate an Interface Up event. + + Note: This procedure of generating an Interface Down event and + changing the interface type to broadcast is also executed if the + neighbor for whom the notification was received is running an older + version of the protocol software (see Section 6.1). In previous + versions of the protocol, all interfaces were treated as if they were + broadcast. + + If the interface type is broadcast, reset the inactivity timer for + the neighbor. + + + + + + + + + +Kane Informational [Page 30] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + State(s): Init + Event: 2-Way Received + New state: Depends on action routine + Action: + Determine whether an adjacency will be formed with the neighbor + (see Section 6.4). If no adjacency is to be formed, change the + neighbor state to 2-Way. + + Otherwise, change the neighbor state to ExStart. Initialize the + sequence number for this neighbor and declare the local switch to + be master for the database exchange process. (See Section 7.2.) + + State(s): ExStart + Event: Negotiation Done + New state: Exchange + Action: + The Negotiation Done event signals the start of the database + exchange process. See Section 7.2 for a detailed description of + this process. + + State(s): Exchange + Event: Exchange Done + New state: Depends on action routine + Action: + If the neighbor Link state request list is empty, change the + neighbor state to Full. This is the adjacency's final state. + + Otherwise, change the neighbor state to Loading. Begin sending + Link State Request packets to the neighbor requesting the most + recent link state advertisements, as discovered during the + database exchange process. (See Section 7.2.) These + advertisements are listed in the link state request list + associated with the neighbor. + + State(s): Loading + Event: Loading Done + New state: Full + Action: + No action is required beyond changing the neighbor state to Full. + This is the adjacency's final state. + + + + + + + + + + + +Kane Informational [Page 31] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + State(s): 2-Way + Event: AdjOK? + New state: Depends on action routine + Action: + If no adjacency is to be formed with the neighboring switch (see + Section 6.4), retain the neighbor state at 2-Way. Otherwise, + change the neighbor state to ExStart. Initialize the sequence + number for this neighbor and declare the local switch to be master + for the database exchange process. (See Section 7.2.) + + State(s): ExStart or greater + Event: AdjOK? + New state: Depends on action routine + Action: + If an adjacency should still be formed with the neighboring switch + (see Section 6.4), no state change and no further action is + necessary. Otherwise, tear down the (possibly partially formed) + adjacency. Clear the link state retransmission list, database + summary list and link state request list and change the neighbor + state to 2-Way. + + State(s): Exchange or greater + Event: Seq Number Mismatch + New state: ExStart + Action: + Tear down the (possibly partially formed) adjacency. Clear the + link state retransmission list, database summary list and link + state request list. Change the neighbor state to ExStart and make + another attempt to establish the adjacency. + + State(s): Exchange or greater + Event: BadLSReq + New state: ExStart + Action: + Tear down the (possibly partially formed) adjacency. Clear the + link state retransmission list, database summary list and link + state request list. Change the neighbor state to ExStart and make + another attempt to establish the adjacency. + + State(s): Any state + Event: KillNbr + New state: Down + Action: + Terminate the neighbor conversation. Disable the inactivity timer + and clear the link state retransmission list, database summary + list and link state request list. + + + + + +Kane Informational [Page 32] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + State(s): Any state + Event: LLDown + New state: Down + Action: + Terminate the neighbor conversation. Disable the inactivity timer + and clear the link state retransmission list, database summary + list and link state request list. + + State(s): Any state + Event: Inactivity Timer + New state: Down + Action: + Terminate the neighbor conversation. Disable the inactivity timer + and clear the link state retransmission list, database summary + list and link state request list. + + State(s): 2-Way or greater + Event: 1-Way Received + New state: Init + Action: + Tear down the adjacency between the switches, if any. Clear the + link state retransmission list, database summary list and link + state request list. + + State(s): 2-Way or greater + Event: 2-Way received + New state: No state change + Action: + No action required. + + State(s): Init + Event: 1-Way received + New state: No state change + Action: + No action required. + +5. Area Data Structure + + The area data structure contains all the information needed to run + the basic routing algorithm. One of its components is the link state + database -- the collection of all switch link and network link + advertisements generated by the switches. + + The area data structure contains the following items: + + + + + + + +Kane Informational [Page 33] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Area ID + + A 4-octet value identifying the area. Since VLSP does not support + multiple areas, the value here is always zero. + + Associated switch interfaces + + A list of interface IDs of the local switch interfaces connected + to network links. + + Link state database + + The collection of all current link state advertisements for the + switch fabric. This collection consists of the following: + + Switch link advertisements + + A list of the switch link advertisements for all switches in the + fabric. Switch link advertisements describe the state of each + switch's interfaces. + + Network link advertisements + + A list of the network link advertisements for all multi-access + network links in the switch fabric. Network link advertisements + describe the set of switches currently connected to each link. + + Best path(s) + + A set of end-to-end hop descriptions for all equal-cost best paths + from the local switch to every other switch in the fabric. Each + hop is specified by the interface ID of the next link in the path. + Best paths are derived from the collected switch link and network + link advertisements using the Dijkstra algorithm. [Perlman] + +5.1 Adding and Deleting Link State Advertisements + + The link state database within the area data structure must contain, + at most, a single instance of each link state advertisement. To keep + the database current, a switch adds link state advertisements to the + database under the following conditions: + + o When a link state advertisement is received during the + distribution process + + o When the switch itself generates a link state advertisement + + + + + +Kane Informational [Page 34] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + (See Section 8.2.4 for information on installing link state + advertisements.) + + Likewise, a switch deletes link state advertisements from the + database under the following conditions: + + o When a link state advertisement has been superseded by a newer + instance during the flooding process + + o When the switch generates a newer instance of one of its self- + originated advertisements + + Note that when an advertisement is deleted from the link state + database, it must also be removed from the link state retransmission + list of all neighboring switches. + +5.2 Accessing Link State Advertisements + + An implementation of the VLS protocol must provide access to + individual link state advertisements, based on the advertisement's + type, link state identifier, and advertising switch [1]. This lookup + function is invoked during the link state distribution procedure and + during calculation of the set of best paths. In addition, a switch + can use the function to determine whether it has originated a + particular link state advertisement, and if so, with what sequence + number. + +5.3 Best Path Lookup + + An implementation of the VLS protocol must provide access to multiple + equal-cost best paths, based on the base MAC addresses of the source + and destination switches. This lookup function should return up to + three equal-cost paths. Paths should be returned as lists of end- + to-end hop information, with each hop specified as a interface ID of + the next link in the path -- the 6-octet base MAC address of the next + switch and the 4-octet local port number of the link interface. + +6. Discovery Process + + The first operational stage of the VLS protocol is the discovery + process. During this stage, each switch dynamically detects its + neighboring switches and establishes a relationship with each of + these neighbors. This process has the following component steps: + + + + + + + + +Kane Informational [Page 35] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o Neighboring switches are detected on each functioning network + interface. + + o Bidirectional communication is established with each neighbor + switch. + + o A designated switch and backup designated switch are selected for + each multi-access network link. + + o An adjacent relationship is established with selected neighbors on + each link. + +6.1 Neighbor Discovery + + When the switch first comes on line, VLSP assumes all network links + are point-to-point and no more than one neighboring switch will be + discovered on any one port. Therefore, at startup, VLSP relies on + the VlanHello protocol [IDhello] for the discovery of its neighbor + switches. + + As each neighbor is detected, VlanHello triggers a Found Neighbor + event, notifying VLSP that a new neighbor has been discovered. (See + [IDhello] for a description of the Found Neighbor event and the + information passed.) VLSP enters the neighbor switch ID in the list + of known neighbors and creates a new neighbor data structure with a + neighbor status of Down. A Hello Received neighbor event is then + generated, which changes the neighbor state to ExStart. + + There are two circumstances under which VLSP will change the type of + an interface to broadcast: + + o If VLSP receives a subsequent notification from VlanHello, + specifying a second (different) neighbor switch on the port., the + interface is then known to be multi-access. VLSP generates an + Interface Down event for the interface, resets the interface type + to broadcast, and then generates an Interface Up event. + + o If the functional level of the neighbor switch is less than 2, the + neighbor is running a previous version of the VLSP software in + which all links were treated as broadcast links. VLSP immediately + changes the interface type to broadcast and generates an Interface + Up event. + + In both cases, VLSP assumes control of communication over the + interface by exchanging its own VLSP Hello packets with the + neighbors on the link. + + + + + +Kane Informational [Page 36] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Note: These Hello packets are in addition to the Interswitch + Keepalive messages sent by VlanHello. VlanHello still continues to + monitor the condition of the interface and notifies VLSP of any + change. + + Each Hello packet contains the following data used during the + discovery process on multi-access links: + + o The switch ID and priority of the sending switch + + o Values specifying the interval timers to be used for sending Hello + packets and deciding whether to declare a neighbor switch Down. + + o The switch ID of the designated switch and the backup designated + switch for the link, as understood by the sending switch + + o A list of switch IDs of all neighboring switches seen so far on + the link + + For a detailed description of the Hello packet format, see Section + 10.6.1. + + When VLSP receives a Hello packet (on a broadcast link), it first + attempts to identify the sending switch by matching its switch ID to + one of the known neighbors listed in the interface data structure. + If this is the first Hello packet received from the switch, the + switch ID is entered in the list of known neighbors and a new + neighbor data structure is created with a neighbor status of Down. + + At this point, the remainder of the Hello packet is examined and the + appropriate interface and neighbor events are generated. In all + cases, a neighbor Hello Received event is generated. Other events + may also be generated, triggering further steps in the discovery + process or other actions, as appropriate. + + For a detailed description of the interface state machine, see + Section 3.3. For a detailed description of the neighbor state + machine, see Section 4.3. + +6.2 Bidirectional Communication + + Before a conversation can proceed with a neighbor switch, + bidirectional communication must be established with that neighbor. + Bidirectional communication is detected in one of two ways: + + + + + + + +Kane Informational [Page 37] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o On a point-to-point link, the VlanHello protocol sees its own + switch ID listed in an Interswitch Keepalive message it has + received from the neighbor. + + o On a multi-access link, VLSP sees its own switch ID listed in a + VLSP Hello packet it has received from the neighbor. + + In either case, a neighbor 2-Way Received neighbor event is + generated. + + Once bidirectional communication has been established with a + neighbor, the local switch determines whether an adjacency will be + formed with the neighbor. However, if the link is a multi-access + link, a designated switch and a backup designated switch must first + be selected for the link. The next section contains a description of + the designated switch, the backup designated switch, and the + selection process. + +6.3 Designated Switch + + Every multi-access network link has a designated switch. The + designated switch performs the following functions for the routing + protocol: + + o The designated switch originates a network link advertisement on + behalf of the link, listing the set of switches (including the + designated switch itself) currently attached to the link. For a + detailed description of network link advertisements, see Section + 11.3. + + o The designated switch becomes adjacent to all other switches on + the link. Since the link state databases are synchronized across + adjacencies, the designated switch plays a central part in the + synchronization process. For a description of the synchronization + process, see Section 7. + + Each multi-access network link also has a backup designated switch. + The primary function of the backup designated switch is to act as a + standby for the designated switch. If the current designated switch + fails, the backup designated switch becomes the designated switch. + + To facilitate this transition, the backup designated switch forms an + adjacency with every other switch on the link. Thus, when the backup + designated switch must take over for the designated switch, its link + state database is already synchronized with the databases of all + other switches on the link. + + + + + +Kane Informational [Page 38] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Note: Point-to-point network links have neither a designated switch + or a backup designated switch. + +6.3.1 Selecting the Designated Switch + + When a multi-access link interface first becomes functional, the + switch sets a one-shot Wait timer (with a value of SwitchDeadInterval + seconds) for the interface. The purpose of this timer is to ensure + that all switches attached to the link have a chance to establish + bidirectional communication before the designated switch and backup + designated switch are selected for the link. + + When the Wait timer is set, the interface enters the Waiting state. + During this state, the switch exchanges Hello packets with its + neighbors attempting to establish bidirectional communication. The + interface leaves the Waiting state under one of the following + conditions: + + o The Wait timer expires. + + o A Hello packet is received indicating that a designated switch or + a backup designated switch has already been specified for the + interface. + + At this point, if the switch sees that a designated switch has + already been selected for the link, the switch accepts that + designated switch, regardless of its own switch priority and MAC + address. This situation typically means the switch has come up late + on a fully functioning link. Although this makes it harder to + predict the identity of the designated switch on a particular link, + it ensures that the designated switch does not change needlessly, + necessitating a resynchronization of the databases. + + If no designated switch is currently specified for the link, the + switch begins the actual selection process. Note that this selection + algorithm operates only on a list of neighbor switches that are + eligible to become the designated switch. A neighbor is eligible to + be the designated switch if it has a switch priority greater than + zero and its neighbor state is 2-Way or greater. The local switch + includes itself on the list of eligible switches as long as it has a + switch priority greater than zero. + + The selection process includes the following steps: + + 1. The current values of the link's designated switch and backup + designated switch are saved for use in step 6. + + 2. The new backup designated switch is selected as follows: + + + +Kane Informational [Page 39] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + a) Eliminate from consideration those switches that have declared + themselves to be the designated switch. + + b) If one or more of the remaining switches have declared + themselves to be the backup designated switch, eliminate from + consideration all other switches. + + c) From the remaining list of eligible switches, select the switch + having the highest switch priority as the backup designated + switch. If multiple switches have the same (highest) priority, + select the switch with the highest switch ID as the backup + designated switch. + + 3. The new designated switch is selected as follows: + + a) If one or more of the switches have declared themselves to be + the designated switch, eliminate from consideration all other + switches. + + b) From the remaining list of eligible switches, select the switch + having the highest switch priority as the designated switch. + If multiple switches have the same (highest) priority, select + the switch with the highest switch ID as the designated switch. + + 4. If the local switch has been newly selected as either the + designated switch or the backup designated switch, or is now no + longer the designated switch or the backup designated switch, + repeat steps 2 and 3, above, and then proceed to step 5. + + If the local switch is now the designated switch, it will + eliminate itself from consideration at step 2a when the selection + of the backup designated switch is repeated. Likewise, if the + local switch is now the backup designated switch, it will + eliminate itself from consideration at step 3a when the selection + of the designated switch is repeated. This ensures that no switch + will select itself as both backup designated switch and designated + switch [2]. + + 5. Set the interface state to the appropriate value, as follows: + + o If the local switch is now the designated switch, set the + interface state to DS. + + o If the local switch is now the backup designated switch, set the + interface state to Backup. + + o Otherwise, set the interface state to DS Other. + + + + +Kane Informational [Page 40] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 6. If either the designated switch or backup designated switch has + now changed, the set of adjacencies associated with this link must + be modified. Some adjacencies may need to be formed, while others + may need to be broken. Generate the neighbor AdjOK? event for all + neighbors with a state of 2-Way or higher to trigger a + reexamination of adjacency eligibility. + + Caution: If VLSP is implemented with configurable parameters, care + must be exercised in specifying the switch priorities. Note that if + the local switch is not itself eligible to become the designated + switch (i.e., it has a switch priority of 0), it is possible that + neither a backup designated switch nor a designated switch will be + selected by the above procedure. Note also that if the local switch + is the only attached switch that is eligible to become the designated + switch, it will select itself as designated switch and there will be + no backup designated switch for the link. For this reason, it is + advisable to specify a default switch priority of 1 for all switches. + +6.4 Adjacencies + + VLSP creates adjacencies between neighboring switches for the purpose + of exchanging routing information. Not every two neighboring + switches will become adjacent. On a multi-access link, an adjacency + is only formed between two switches if one of them is either the + designated switch or the backup designated switch. + + Note that an adjacency is bound to the network link that the two + switches have in common. Therefore, if two switches have multiple + links in common, they may also have multiple adjacencies between + them. + + The decision to form an adjacency occurs in two places in the + neighbor state machine: + + o When bidirectional communication is initially established with the + neighbor. + + o When the designated switch or backup designated switch on the + attached link changes. + + The rules for establishing an adjacency between two neighboring + switches are as follows: + + o On a point-to-point link, the two neighboring switches always + establish an adjacency. + + o On a multi-access link, an adjacency is established with the + neighboring switch under one of the following conditions: + + + +Kane Informational [Page 41] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o The local switch itself is the designated switch. + o The local switch itself is the backup designated switch. + o The neighboring switch is the designated switch. + o The neighboring switch is the backup designated switch. + + If no adjacency is formed between two neighboring switches, the state + of the neighbor conversation remains set to 2-Way. + +7. Synchronizing the Databases + + In an SPF-based routing algorithm, it is important for the link state + databases of all switches to stay synchronized. VLSP simplifies this + process by requiring only adjacent switches to remain synchronized. + + The synchronization process begins when the switches attempt to bring + up the adjacency. Each switch in the adjacency describes its + database by sending a sequence of Database Description packets to its + neighbor. Each Database Description packet describes a set of link + state advertisements belonging to the database. When the neighbor + sees a link state advertisement that is more recent than its own + database copy, it makes a note to request this newer advertisement. + + During this exchange of Database Description packets (known as the + database exchange process), the two switches form a master/slave + relationship. Database Description packets sent by the master are + known as polls, and each poll contains a sequence number. Polls are + acknowledged by the slave by echoing the sequence number in the + Database Description response packet. + + When all Database Description packets have been sent and + acknowledged, the database exchange process is completed. At this + point, each switch in the exchange has a list of link state + advertisements for which its neighbor has more recent instances. + These advertisements are requested using Link State Request packets. + + Once the database exchange process has completed and all Link State + Requests have been satisfied, the databases are deemed synchronized + and the neighbor states of the two switches are set to Full, + indicating that the adjacency is fully functional. Fully functional + adjacencies are advertised in the link state advertisements of the + two switches [3]. + + + + + + + + + + +Kane Informational [Page 42] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +7.1 Link State Advertisements + + Link state advertisements form the core of the database from which a + switch calculates the set of best paths to the other switches in the + fabric. + + Each link state advertisement begins with a standard header. This + header contains three data items that uniquely identify the link + state advertisement. + + o The link state type. Possible values are as follows: + + 1 Switch link advertisement -- describes the collected states of + the switch's interfaces. + + 2 Network link advertisement -- describes the set of switches + attached to the network link. + + o The link state ID, defined as follows: + + o For a switch link advertisement -- the switch ID of the + originating switch + + o For a network link advertisement -- the switch ID of the + designated switch for the link + + o The switch ID of the advertising switch -- the switch that + generated the advertisement + + The link state advertisement header also contains three data items + that are used to determine which instance of a particular link state + advertisement is the most current. (See Section 7.1.1 for a + description of how to determine which instance of a link state + advertisement is the most current.) + + o The link state sequence number + + o The link state age, stored in seconds + + o The link state checksum, a 16-bit unsigned value calculated for + the entire contents of the link state advertisement, with the + exception of the age field + + The remainder of each link state advertisement contains data specific + to the type of the advertisement. See Section 11 for a detailed + description of the link state header, as well as the format of a + switch link or network link advertisement. + + + + +Kane Informational [Page 43] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +7.1.1 Determining Which Link State Advertisement Is Newer + + At various times while synchronizing or updating the link state + database, a switch must determine which instance of a particular link + state advertisement is the most current. This decision is made as + follows: + + o The advertisement having the greater sequence number is the most + current. + + o If both instances have the same sequence number, then: + + o If the two instances have different checksum values, then the + instance having the larger checksum is considered the most + current [4]. + + o If both instances have the same sequence number and the same + checksum value, then: + + o If one (and only one) of the instances is of age MaxAge, then + the instance of age MaxAge is considered the most current [5]. + + o Else, if the ages of the two instances differ by more than + MaxAgeDiff, the instance having the smaller (younger) age is + considered the most current [6]. + + o Else, the two instances are considered identical. + +7.2 Database Exchange Process + + There are two stages to the database exchange process: + + o Negotiating the master/slave relationship + o Exchanging database summary information + +7.2.1 Database Description Packets + + Database Description packets are used to describe a switch's link + state database during the database exchange process. Each Database + Description packet contains a list of headers of the link state + advertisements currently stored in the sending switch's database. + (See Section 11.1 for a description of a link state advertisement + header.) + + In addition to the link state headers, each Database Description + packet contains the following data items: + + + + + +Kane Informational [Page 44] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o A flag (the M-bit) indicating whether or not more packets are to + follow. Depending on the size of the local database and the + maximum size of the packet, the list of headers in any particular + Database Description packet may be only a partial list of the + total database. When the M-bit is set, the list of headers is + only a partial list and more headers are to follow in subsequent + packets. + + o A flag (the I-bit) indicating whether or not this is the first + Database Description packet sent for this execution of the + database exchange process. + + o A flag (the MS-bit) indicating whether the sending switch thinks + it is the master or the slave in the database exchange process. + If the flag is set, the switch thinks it is the master. + + o A 4-octet sequence number for the packet. + + While the switches are negotiating the master/slave relationship, + they exchange "empty" Database Description packets. That is, packets + that contain no link summary information. Instead, the flags and + sequence number constitute the information required for the + negotiation process. + + See Section 10.6.2 for a more detailed description of a Database + Description packet. + +7.2.2 Negotiating the Master/Slave Relationship + + Before two switches can begin the actual exchange of database + information, they must decide between themselves who will be the + master in the exchange process and who will be the slave. They must + also agree on the starting sequence number for the Database + Description packets. + + Once a switch has decided to form an adjacency with a neighboring + switch, it sets the neighbor state to ExStart and begins sending + empty Database Description packets to its neighbor. These packets + contain the starting sequence number the switch plans to use in the + exchange process. Also, the I-bit and M-bit flags are set, as well + as the MS-bit. Thus, each switch in the exchange begins by believing + it will be the master. + + Empty Database Description packets are retransmitted every + RxmtInterval seconds until the neighbor responds. + + + + + + +Kane Informational [Page 45] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + When a switch receives an empty Database Description packet from its + neighbor, it determines which switch will be the master by comparing + the switch IDs. The switch with the highest switch ID becomes the + master of the exchange. Based on this determination, the switch + proceeds as follows: + + o If the switch is to be the slave of the database exchange process, + it acknowledges that it is the slave by sending another empty + Database Description packet to the master. This packet contains + the master's sequence number and has the MS-bit and the I-bit + cleared. + + o The switch then generates a neighbor event of Negotiation Done to + change its neighbor state to Exchange and waits for the first + non-empty Database Description packet from the master. + + o If the switch is to be the master of the database exchange, it + waits to receive an acknowledgment from its neighbor -- that is, + an empty Database Description packet with the MS-bit and I-bit + cleared and containing the sequence number it (the master) + previously sent. + + o When it receives the acknowledgment, it generates a neighbor event + of Negotiation Done to change its neighbor state to Exchange and + begin the actual exchange of Database Description packets. + + Note that during the negotiation process, the receipt of an + inconsistent packet will result in a neighbor event of Seq Number + Mismatch, terminating the process. See Section 4.3 for more + information. + +7.2.3 Exchanging Database Description Packets + + Once the neighbor state changes to Exchange, the switches begin the + exchange of Database Description packets containing link state + summary data. The process proceeds as follows: + + 1. The master sends a packet containing a list of link state headers. + If the packet contains only a portion of the unexchanged database + -- that is, more Database Description packets are to follow -- the + packet has the M-bit set. The MS-bit is set and the I-bit is + clear. + + If the slave does not acknowledge the packet within RxmtInterval + seconds, the master retransmits the packet. + + + + + + +Kane Informational [Page 46] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 2. When the slave receives a packet, it first checks the sequence + number to see if the packet is a duplicate. If so, it simply + acknowledges the packet by clearing the MS-bit and returning the + packet to the master. (Note that the slave acknowledges all + Database Description packets that it receives, even those that are + duplicates.) + + Otherwise, the slave processes the packet by doing the following: + + o For each link state header listed in the packet, the slave + searches its own link state database to determine whether it + has an instance of the advertisement. + + o If the slave does not have an instance of the link state + advertisement, or if the instance it does have is older than + the instance listed in the packet, it creates an entry in its + link state request list in the neighbor data structure. See + Section 7.1.1 for a description of how to determine which + instance of a link state advertisement is the newest. + + o When the slave has examined all headers, it acknowledges the + packet by turning the MS-bit off and returning the packet to + the master. + + + 3. When the master receives the first acknowledgment for a particular + Database Description packet, it processes the acknowledgment as + follows: + + o For each link state header listed in the packet, the master + checks to see if the slave has indicated it has an instance of + the link state advertisement that is newer than the instance + the master has in its own database. If so, the master creates + an entry in its link state request list in the neighbor data + structure. + + o The master then increments the sequence number and sends + another packet containing the next set of link state summary + information, if any. + + Subsequent acknowledgments for the Database Description packet + (those with the same sequence number) are discarded. + + When the master sends the last portion of its database summary + information, it clears the M-bit in the packet to indicate that no + more packets are to be sent. + + + + + +Kane Informational [Page 47] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 4. When the slave receives a Database Description packet with the M- + bit clear, it processes the packet, as described above in step 2. + After it has completed processing and has acknowledged the packet + to the master, it generates an Exchange Done neighbor event and + its neighbor state changes to Loading. + + The database exchange process is now complete for the slave, and + it begins the process of requesting those link state + advertisements for which the master has more current instances + (see Section 7.3). + + 5. When the master receives an acknowledgment for the final Database + Description packet, it processes the acknowledgment as described + above in step 3. Then it generates an Exchange Done neighbor + event and its neighbor state changes to Loading. + + The database exchange process is now complete for the master, and + it begins the process of requesting those link state + advertisements for which the slave has more current instances (see + Section 7.3). + + Note that during this exchange, the receipt of an inconsistent packet + will result in a neighbor event of Seq Number Mismatch, terminating + the process. See Section 4.3 for more information. + +7.3 Updating the Database + + When either switch completes the database exchange process and its + neighbor state changes to Loading, it has a list of link state + advertisements for which the neighboring switch has a more recent + instance. This list is stored in the neighbor data structure as the + link state request list. + + To complete the synchronization of its database with that of its + neighbor, the switch must obtain the most current instances of those + link state advertisements. + + The switch requests these advertisements by sending its neighbor a + Link State Request packet containing the description of one or more + link state advertisement, as defined by the advertisement's type, + link state ID, and advertising switch. (For a detailed description + of the Link State Request packet, see Section 10.6.3.) The switch + continues to retransmit this packet every RxmtInterval seconds until + it receives a reply from the neighbor. + + + + + + + +Kane Informational [Page 48] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + When the neighbor switch receives the Link State Request packet, it + responds with a Link State Update packet containing its most current + instance of each of the requested advertisements. (Note that the + neighboring switch can be in any of the Exchange, Loading or Full + neighbor states when it responds to a Link State Request packet.) + + If the neighbor cannot locate a particular link state advertisement + in its database, something has gone wrong with the synchronization + process. The switch generates a BadLSReq neighbor event and the + partially formed adjacency is torn down. See Section 4.3 for more + information. + + Depending on the size of the link state request list, it may take + more than one Link State Request packet to obtain all the necessary + advertisements. Note, however, that there must at most one Link + State Request packet outstanding at any one time. + +7.4 An Example + + Figure 3 shows an example of an adjacency being formed between two + switches -- S1 and S2 -- connected to a network link. S2 is the + designated switch for the link and has a higher switch ID than S1. + + The neighbor state changes that each switch goes through are listed + on the sides of the figure. + + + + + + + + + + + + + + + + + + + + + + + + + + +Kane Informational [Page 49] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + +--------+ +--------+ + | Switch | | Switch | + | S1 | | S2 | + +--------+ +--------+ + Down Down + Hello (DS=0, seen=0) + -------------------------------------> + Init + Hello (DS=S2, seen=...,S1) + <------------------------------------- + ExStart + DB Description (Seq=x, I, M, Master) + -------------------------------------> + ExStart + DB Description (Seq=y, I, M, Master) + <------------------------------------- + xchange + DB Description (Seq=y, M, Slave) + -------------------------------------> + Exchange + DB Description (Seq=y+1, M, Master) + <------------------------------------- + DB Description (Seq=y+1, M, Slave) + -------------------------------------> + . + . + . + + DB Description (Seq=y+n, Master) + <------------------------------------- + DB Description (Seq=y+n, Slave) + -------------------------------------> + Loading Full + Link State Request + <------------------------------------- + Link State Update + -------------------------------------> + . + . + . + + Link State Request + <------------------------------------- + Link State Update + -------------------------------------> + Full + + Figure 3: An Example of Bringing Up an Adjacency + + + +Kane Informational [Page 50] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + + + At the top of Figure 3, S1's interface to the link becomes + operational, and S1 begins sending Hello packets over the interface. + At this point, S1 does not yet know the identity of the designated + switch or of any other neighboring switches. S2 receives the Hello + packet from S1 and changes its neighbor state to Init. In its next + Hello packet, S2 indicates that it is itself the designated switch + and that it has received a Hello packet from S1. S1 receives the + Hello packet and changes its state to ExStart, starting the process + of bringing up the adjacency. + + S1 begins by asserting itself as the master. When it sees that S2 is + indeed the master (because of S2's higher switch ID), S1 changes to + slave and adopts S2's sequence number. Database Description packets + are then exchanged, with polls coming from the master (S2) and + acknowledgments from the slave (S1). This sequence of Database + Description packets ends when both the poll and associated + acknowledgment have the M-bit off. + + In this example, it is assumed that S2 has a completely up-to-date + database and immediately changes to the Full state. S1 will change to + the Full state after updating its database by sending Link State + Request packets and receiving Link State Update packets in response. + + Note that in this example, S1 has waited until all Database + Description packets have been received from S2 before sending any + Link State Request packets. However, this need not be the case. S1 + could interleave the sending of Link State Request packets with the + reception of Database Description packets. + +8. Maintaining the Databases + + Each switch advertises its state (also known as its link state) by + originating switch link advertisements. In addition, the designated + switch on each network link advertises the state of the link by + originating network link advertisements. + + As described in Section 7.1, link state advertisements are uniquely + identified by their type, link state ID, and advertising switch. + + Link state advertisements are distributed throughout the switch + fabric using a reliable flooding algorithm that ensures that all + switches in the fabric are notified of any link state changes. + + + + + + + +Kane Informational [Page 51] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +8.1 Originating Link State Advertisements + + A new instance of each link state advertisement is originated any + time the state of the switch or link changes. When a new instance of + a link state advertisement is originated, its sequence number is + incremented, its age is set to zero, and its checksum is calculated. + The advertisement is then installed into the local link state + database and forwarded out all fully operational interfaces (that is, + those interfaces with a state greater than Waiting) for distribution + throughout the switch fabric. See Section 8.2.4 for a description of + the installation of the advertisement into the link state database + and Section 8.2.5 for a description of how advertisements are + forwarded. + + A switch originates a new instance of a link state advertisement as a + result of the following events: + + o The state of one of the switch's interfaces changes such that the + contents of the associated switch link advertisement changes. + + o The designated switch on any of the switch's attached network + links changes. The switch originates a new switch link + advertisement. Also, if the switch itself is now the designated + switch, it originates a new network link advertisement for the + link. + + o One of the switch's neighbor states changes to or from Full. If + this changes the contents of the associated switch link + advertisement, a new instance is generated. Also, if the switch + is the designated switch for the attached network link, it + originates a new network link advertisement for the link. + + Two instances of the same link state advertisement must not be + originated within the time period MinLSInterval. Note that this may + require that the generation of the second instance to be delayed up + to MinLSInterval seconds. + +8.1.1 Switch Link Advertisements + + A switch link advertisement describes the collected states of all + functioning links attached to the originating switch -- that is, all + attached links with an interface state greater than Down. A switch + originates an empty switch link advertisement when it first becomes + functional. It then generates a new instance of the advertisement + each time one of its interfaces reaches a fully functioning state + (Point-to-Point or better). + + + + + +Kane Informational [Page 52] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Each link in the advertisement is assigned a type, based on the state + of interface, as shown in Table 4. + + Interface state Link type Description + + Point-to-Point 1 Point-to-point link + DS Other* 2 Multi-access link + Backup* 2 Multi-access link + DS** 2 Multi-access link + + *If a full adjacency has been formed with the designated + switch. + + **If a full adjacency has been formed with at least one + other switch on the link. + + Table 4: Link Types in a Switch Link Advertisement + + Each link in the advertisement is also assigned a link identifier + based on its link type. In general, this value identifies another + switch that also originates advertisements for the link, thereby + providing a key for accessing other link state advertisements for the + link. The relationship between link type and ID is shown in Table 5. + + + Type Description Link ID + + 1 Point-to-point link Switch ID of neighbor switch + 2 Multi-access link Switch ID of designated switch + + Table 5: Link IDs in a Switch Link Advertisement + + + In addition to a type and an identifier, the description of each link + specifies the interface ID of the associated network link. + + Finally, each link description includes the cost of sending a packet + over the link. This output cost is expressed in the link state + metric and must be greater than zero. + + To illustrate the format of a switch link advertisement, consider the + switch fabric shown in Figure 4. + + In this example, switch SW1 has 5 neighboring switches (shown as + boxes) distributed over 3 network links (shown as lines). The base + MAC address of each switch is also shown adjacent to each box. On + switch SW1, ports 01 and 02 attach to point-to-point network links, + + + + +Kane Informational [Page 53] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + while port 03 attaches to a multi-access network link with three + attached switches. The interface state of each port is shown next to + the line representing the corresponding link. + + + 00-00-1d-22-23-c5 + +-------+ + | SW2 | + +-------+ + | + | Point-to-Point + | + | 01 + +-------+ Loopback +-------+ + | SW3 |----------------| SW1 | 00-00-1d-1f-05-81 + +-------+ 02 +-------+ + 00-00-1d-17-35-a4 | 03 + | + | DS Other + | + +--------------------+--------------------+ + | | | + | DS Other | Backup | DS + | | | + +-------+ +-------+ +-------+ + | SW4 | | SW5 | | SW6 | + +-------+ +-------+ +-------+ + 00-00-1d-4a-26-b3 00-00-1d-4a-27-1c 00-00-1d-7e-84-2e + + + Figure 4: Sample Switch Fabric + + The switch link advertisement generated by switch SW1 would contain + the following data items: + + ; switch link advertisement for switch SW1 + + LS age = 0 ; always true on origination + Options = (T-bit|E-bit) ; options + LS type = 1 ; this is a switch link advert + + + + + + + + + + + +Kane Informational [Page 54] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + ; SW1's switch ID + Link State ID = 00-00-1d-1f-05-81-00-00-00-00 + Advertising switch = 00-00-1d-1f-05-81-00-00-00-00 + # links = 2 + + ; link on interface port 1 + Link ID = 00-00-1d-22-23-c5-00-00-00-00 ; switch ID + + Link Data = 00-00-1d-1f-05-81-00-00-00-01 ; interface ID + Type = 1 ; pt-to-pt link + # other metrics = 0 ; TOS 0 only + TOS 0 metric = 1 + + ; link on interface port 2 is not fully functional + + ; link on interface port 3 + Link ID = 00-00-1d-7e-84-2e-00-00-00-00 ; switch ID of DS + Link Data = 00-00-1d-1f-05-81-00-00-00-03 ; interface ID + Type = 2 ; multi-access + # other metrics = 0 ; TOS 0 only + TOS 0 metric = 2 + + (See Section 11.2 for a detailed description of the format of a + switch link advertisement.) + +8.1.2 Network Link Advertisements + + Network link advertisements are used to describe the switches + attached to each multi-access network link. + + Note: Network link advertisements are not generated for point-to- + point links. + + A network link advertisement is originated by the designated switch + for the associated multi-access link once the switch has established + a full adjacency with at least one other switch on the link. Each + advertisement lists the switch IDs of those switches that are fully + adjacent to the designated switch. The designated switch includes + itself in this list. + + To illustrate the format of a network link advertisement, consider + again the switch fabric shown in Figure 4. In this example, network + link advertisements will be generated only by switch SW6, the + designated switch of the multi-access network link between switches + SW1 and switches SW4, SW5, and SW6. + + The network link advertisement generated by switch SW6 would contain + the following data items: + + + +Kane Informational [Page 55] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + ; network link advertisement for switch SW6 + + LS age = 0 ; always true on origination + Options = (T-bit|E-bit) ; options + LS type = 2 ; this is a network link advert + + ; SW6's switch ID + Link State ID = 00-00-1d-73-84-2e-00-00-00-00 + Advertising switch = 00-00-1d-73-84-2e-00-00-00-00 + + Attached switch = 00-00-1d-7e-84-2e-00-00-00-00 + Attached switch = 00-00-1d-4a-26-b3-00-00-00-00 + Attached switch = 00-00-1d-1f-05-81-00-00-00-00 + Attached switch = 00-00-1d-4a-27-1c-00-00-00-00 + + (See Section 11.3 for a detailed description of the format of a + network link advertisement.) + +8.2 Distributing Link State Advertisements + + Link state advertisements are distributed throughout the switch + fabric encapsulated within Link State Update packets. A single Link + State Update packet may contain several distinct advertisements. + + To make the distribution process reliable, each advertisement must be + explicitly acknowledged in a Link State Acknowledgment packet. Note, + however, that multiple acknowledgments can be grouped together into a + single Link State Acknowledgment packet. A sending switch retransmits + unacknowledged Link State Update packets at regular intervals until + they are acknowledged. + + The remainder of this section is structured as follows: + + o Section 8.2.1 presents an overview of the distribution process. + + o Section 8.2.2 describes how an incoming Link State Update packet + is processed. + + o Section 8.2.3 describes how a Link State Packet is forwarded -- + both by the originating switch and an intermediate receiving + switch. + + o Section 8.2.4 describes how advertisements are installed into the + local database. + + o Section 8.2.5 describes the retransmission of unacknowledged + advertisements. + + + + +Kane Informational [Page 56] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o Section 8.2.6 describes how advertisements are acknowledged. + +8.2.1 Overview + + The philosophy behind the distribution of link state advertisements + is based on the concept of adjacencies -- that is, each switch is + only required to remain synchronized with its adjacent neighbors. + + When a switch originates a new instance of a link state + advertisement, it formats the advertisement into a Link State Update + packet and floods the packet out each fully operational interface -- + that is, each interface with a state greater than Waiting. However, + only those neighbors that are adjacent to the sending switch need to + process the packet. + + The sending switch indicates which of its neighbor switches should + process the advertisement by specifying a particular multicast + destination in the network layer address information (see Section + 10.3). The sending switch sets the value of the network layer + destination switch ID field according to the state of the interface + over which the packet is sent: + + o If the interface state is Point-to-Point, DS, or Backup, the + switch is adjacent to all other switches on the link and all + neighboring switches must process the packet. Therefore, the + destination field is set to the multicast switch ID + AllSPFSwitches. + + o If the interface state is DS Other, the switch is only adjacent to + the designated switch and the backup designated switch and only + those two neighboring switches must process the packet. + Therefore, the destination field is set to the multicast switch ID + AllDSwitches. + + A similar logic is used when a switch receives a Link State Update + packet containing a new instance of a link state advertisement. + After processing and acknowledging the packet, the receiving switch + forwards the Link State Update packet as + + o On the interface over which the original Link State Update packet + was received: + + + + + + + + + + +Kane Informational [Page 57] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o If the receiving switch is the designated switch for the + attached network link, the packet is forwarded to all other + switches on the link. (The destination field is set to + AllSPFSwitches.) The originating switch will recognize that it + was the advertisement originator and discard the packet. + + o If the receiving switch is not the designated switch for the + attached network link, the packet is not sent back out the + interface over which it was received. + + o On all other interfaces: + + o If the receiving switch is the designated switch for the + attached network link, the packet is forwarded to all switches + on the link. (The destination field is set to AllSPFSwitches.) + + o If the receiving switch is neither the designated switch or the + backup designated switch for the attached network link, the + packet is forwarded only to the designated switch and the + backup designated switch. (The destination field is set to + AllDSwitches.) + + Each Link State Update packet is forwarded and processed in this + fashion until all switches in the fabric have received notification + of the new instance of the link state advertisement. + +8.2.2 Processing an Incoming Link State Update Packet + + When the a Link State Update packet is received, it is first + subjected to a number of consistency checks. In particular, the Link + State Update packet is associated with a specific neighbor. If the + state of that neighbor is less than Exchange, the entire Link State + Update packet is discarded. + + Each link state advertisement contained in the packet is processed as + follows: + + 1. Validate the advertisement's link state checksum and type. If the + checksum is invalid or the type is unknown, discard the + advertisement without acknowledging it. + + 2. If the advertisement's age is equal to MaxAge and there is + currently no instance of the advertisement in the local link state + database, then do the following: + + + + + + + +Kane Informational [Page 58] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + a) Acknowledge the advertisement by sending a Link State + Acknowledgment packet to the sending neighbor (see Section + 8.2.6). + + b) Purge all outstanding requests for equal or previous instances + of the advertisement from the sending neighbor's Link State + Request list. + + c) If the neighbor is Exchange or Loading, install the + advertisement in the link state database (see Section 8.2.4). + Otherwise, discard the advertisement. + + 3. If the advertisement's age is equal to MaxAge and there is an + instance of the advertisement in the local link state database, + then do the following: + + a) If the advertisement is listed in the link state retransmission + list of any neighbor, remove the advertisement from the + retransmission list(s) and delete the database copy of the + advertisement. + + b) Discard the received (MaxAge) advertisement without + acknowledging it. + + 4. If the advertisement's age is less than MaxAge, attempt to locate + an instance of the advertisement in the local link state database. + If there is no database copy of this advertisement, or the + received advertisement is more recent than the database copy (see + Section 7.1.1), do the following: + + a) If there is already a database copy, and if the database copy + was installed less than MinLSInterval seconds ago, discard the + new advertisement without acknowledging it. + + b) Otherwise, forward the new advertisement out some subset of the + local interfaces (see Section 8.2.3). Note whether the + advertisement was sent back out the receiving interface for + later use by the acknowledgment process. + + c) Remove the current database copy from the Link state + retransmission lists of all neighbors. + + d) Install the new advertisement in the link state database, + replacing the current database copy. (Note that this may cause + the calculation of the set of best paths to be scheduled. See + Section 9.) Timestamp the new advertisement with the time that + it was received to prevent installation of another instance + within MinLSInterval seconds. + + + +Kane Informational [Page 59] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + e) Acknowledge the advertisement, if necessary, by sending a Link + State Acknowledgment packet back out the receiving interface. + (See Section 8.2.6.) + + f) If the link state advertisement was initially advertised by the + local switch itself, advance the advertisement sequence number + and issue a new instance of the advertisement. (Receipt of a + newer instance of an advertisement means that the local copy of + the advertisement is left over from before the last time the + switch was restarted.) + + 5. If the received advertisement is the same instance as the database + copy (as determined by the algorithm described in Section 7.1.1), + do the following: + + a) If the advertisement is listed in the neighbor's link state + retransmission list, the local switch is expecting an + acknowledgment for this advertisement. Treat the received + advertisement as an implied acknowledgment, and remove the + advertisement from the link state retransmission list. Note + this implied acknowledgment for later use by the acknowledgment + process (Section 8.2.6). + + b) Acknowledge the advertisement, if necessary, by sending a Link + State Acknowledgment packet back out the receiving interface. + (See Section 8.2.6.) + + If the database copy of the advertisement is more recent than the + instance just received, do the following: + + a) Determine whether the instance is listed in the neighbor link + state request list. If so, an error has occurred in the + database exchange process. Restart the database exchange + process by generating a neighbor BadLSReq event for the sending + neighbor and terminate processing of the Link State Update + packet. + + b) Otherwise, generate an unusual event to network management and + discard the advertisement. + +8.2.3 Forwarding Link State Advertisements + + When a new instance of an advertisement is originated or after an + incoming advertisement has been processed, the switch must decide + over which interfaces and to which neighbors the advertisement will + be forwarded. In some instances, the switch may decide not to + forward the advertisement over a particular interface because it is + able to determine that the neighbors on that attached link have or + + + +Kane Informational [Page 60] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + will receive the advertisement from another switch on the link. + + The decision of whether to forward an advertisement over each of the + switch's interfaces is made as follows: + + 1. Each neighboring switch attached to the interface is examined to + determine whether it should receive and process the new + advertisement. For each neighbor, the following steps are + executed: + + a) If the neighbor state is less than Exchange, the neighbor need + not receive or process the new advertisement. + + b) If the neighbor state is Exchange or Loading, examine the link + state request list associated with the neighbor. If an + instance of the new advertisement is on the list, the + neighboring switch already has an instance of the + advertisement. Compare the new advertisement to the neighbor's + copy: + + o If the new advertisement is less recent, the neighbor need + not receive or process the new advertisement. + + o If the two copies are the same instance, delete the + advertisement from the link state request list. The + neighbor need not receive or process the new advertisement + [7]. + + o Otherwise, the new advertisement is more recent. Delete the + advertisement from the link state request list. The + neighbor may need to receive and process the new + advertisement. + + c) If the new advertisement was received from this neighbor, the + neighbor need not receive or process the advertisement. + + d) Add the new advertisement to the link state retransmission list + for the neighbor. + + 2. The switch must now decide whether to forward the new + advertisement out the interface. + + a) If the link state advertisement was not added to any of the + link state retransmission lists for neighbors attached to the + interface, there is no need to forward the advertisement out + the interface. + + + + + +Kane Informational [Page 61] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + b) If the new advertisement was received on this interface, and it + was received from either the designated switch or the backup + designated switch, there is no need to forward the + advertisement out the interface. Chances are all neighbors on + the attached network link have also received the advertisement + already. + + c) If the new advertisement was received on this interface and the + state of the interface is Point-to-Point, there is no need to + forward the advertisement since the received advertisement was + originated by the neighbor switch. + + d) If the new advertisement was received on this interface, and + the interface state is Backup -- that is, the switch itself is + the backup designated switch -- there is no need to forward the + advertisement out the interface. The designated switch will + distribute advertisements on the attached network link. + + e) Otherwise, the advertisement must be forwarded out the + interface. + + To forward a link state advertisement, the switch first increments + the advertisement's age by InfTransDelay seconds to account for + the transmission time over the link. The switch then copies the + advertisement into a Link State Update packet + + Forwarded advertisements are sent to all adjacent switches + associated with the interface. If the interface state is Point- + to-Point, DS, or Backup, the destination switch ID field of the + network layer address information is set to the multicast switch + ID AllSPFSwitches. If the interface state is DS Other, the + destination switch ID field is set to the multicast switch ID + AllDSwitches. + +8.2.4 Installing Link State Advertisements in the Database + + When a new link state advertisement is installed into the link state + database, as the result of either originating or receiving a new + instance of an advertisement, the switch must determine whether the + best paths need to be recalculated. To make this determination, do + the following: + + 1. Compare the contents of the new instance with the contents of the + old instance (assuming the older instance is available). Note that + this comparison does not include any data from the link state + header. Differences in fields within the header (such as the + sequence number and checksum, which are guaranteed to be different + in different instances of an advertisement) are of no consequence + + + +Kane Informational [Page 62] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + when deciding whether or not to recalculate the set of best paths. + + 2. If there are no differences in the contents of the two + advertisement instances, there is no need to recalculate the set + of best paths. + + 3. Otherwise, the set of best paths must be recalculated. + + Note also that the older instance of the advertisement must be + removed from the link state database when the new advertisement is + installed. The older instance must also be removed from the link + state retransmission lists of all neighbors. + +8.2.5 Retransmitting Link State Advertisements + + When a switch sends a link state advertisement to an adjacent + neighbor, it records the advertisement in the neighbor's link state + retransmission list. To ensure the reliability of the distribution + process, the switch continues to periodically retransmit the + advertisements specified in the list until they are acknowledged. + + The interval timer used to trigger retransmission of the + advertisements is set to RxmtInterval seconds, as found in the + interface data structure. Note that if this value is too low, + needless retransmissions will ensue. If the value is too high, the + speed with which the databases synchronize across adjacencies may be + affected if there are lost packets. + + When the interval timer expires, entries in the retransmission list + are formatted into one or more Link State Update packets. (Remember + that multiple advertisements can fit into a single Link State Update + packet.) The age field of each advertisement is incremented by + InfTransDelay, as found in the interface data structure, before the + advertisement is copied into the outgoing packet. + + Link State Update packets containing retransmitted advertisements are + always sent directly to the adjacent switch. That is, the destination + field of the network layer addressing information is set to the + switch ID of the neighboring switch. + + If the adjacent switch goes down, retransmissions will continue until + the switch failure is detected and the adjacency is torn down by the + VLSP discovery process. When the adjacency is torn down, the link + state retransmission list is cleared. + + + + + + + +Kane Informational [Page 63] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +8.2.6 Acknowledging Link State Advertisements + + Each link state advertisement received by a switch must be + acknowledged. In most cases, this is done by sending a Link State + Acknowledgment packet. However, acknowledgments can also be done + implicitly by sending Link State Update packets (see step 4a of + Section 8.2.2). + + Multiple acknowledgments can be grouped together into a single Link + State Acknowledgment packet. + + Sending an acknowledgment + + Link State Acknowledgment packets are sent back out the interface + over which the advertisement was received. The packet can be sent + immediately to the sending neighbor, or it can be delayed and sent + when an interval timer expires. + + o Sending delayed acknowledgments facilitates the formatting of + multiple acknowledgments into a single packet. This enables a + single packet to send acknowledgments to several neighbors at + once by using a multicast switch ID in the destination field of + the network layer addressing information (see below). Delaying + acknowledgments also randomizes the acknowledgment packets sent + by the multiple switches attached to a multi-access network + link. + + Note that the interval used to time delayed acknowledgments + must be short (less than RxmtInterval) or needless + retransmissions will ensue. + + Delayed acknowledgments are sent to all adjacent switches + associated with the interface. If the interface state is + Point-to-Point, DS, or Backup, the destination field of the + network layer addressing information is set to the multicast + switch ID AllSPFSwitches. If the interface state is DS Other, + the destination field is set to the multicast switch ID + AllDSwitches. + + o Immediate acknowledgments are sent directly to a specific + neighbor in response to the receipt of duplicate link state + advertisements. These acknowledgments are sent immediately + when the duplicate is received. + + The method used to send a Link State Acknowledgment packet -- + either delayed or immediate -- depends on the circumstances + surrounding the receipt of the advertisement, as shown in Table 6. + Note that switches with an interface state of Backup send + + + +Kane Informational [Page 64] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + acknowledgments differently than other switches because they play + a slightly different role in the distribution process (see Section + 8.2.3). + + Action taken in state + Circumstances Backup Other states + + Advertisement was No ack sent No ack sent + forwarded back out + receiving interface + + Advertisement is Delayed ack sent Delayed ack + more recent than if advertisement sent + database copy, but received from DS, + was not forwarded else do nothing + back out receiving + interface + + Advertisement was a Delayed ack sent No ack sent + duplicate treated if advertisement + as an implied acknow- received from DS, + ledgment (step 4a of else do nothing + Section 8.2.2) + + Advertisement was a Immediate ack Immediate ack + duplicate not treated sent sent + as an implied acknow- + ledgment + + Advertisement age Immediate ack Immediate ack + equal to MaxAge and sent sent + no current instance + found in database + + Table 6: Sending Link State Acknowledgments + + Receiving an acknowledgment + + When the a Link State Acknowledgment packet is received, it is + first subjected to a number of consistency checks. In particular, + the packet is associated with a specific neighbor. If the state of + that neighbor is less than Exchange, the entire Link State + Acknowledgment packet is discarded. + + Each acknowledgment contained in the packet is processed as + follows: + + + + + +Kane Informational [Page 65] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o If the advertisement being acknowledged has an instance in the + link state retransmission list for the sending neighbor, do the + following: + + o If the acknowledgment is for the same instance as that + specified in the list (as determined by the procedure + described in Section 7.1.1), remove the instance from the + retransmission list. + + o Otherwise, log the acknowledgment as questionable. + +8.3 Aging the Link State Database + + Each link state advertisement has an age field, containing the + advertisement's age, expressed in seconds. When the advertisement is + copied into a Link State Update packet for forwarding out a + particular interface, the age is incremented by InfTransDelay seconds + to account for the transmission time over the link. An + advertisement's age is never incremented past the value MaxAge. + Advertisements with an age of MaxAge are not used to calculate best + paths. + + If a link state advertisement's age reaches MaxAge, the switch + flushes the advertisement from the switch fabric by doing the + following: + + o Originate a new instance of the advertisement with the age field + set to MaxAge. The distribution process will eventually result in + the advertisement being removed from the retransmission lists of + all switches in the fabric. + + o Once the advertisement is no longer contained in the link state + retransmission list of any neighbor and no neighbor is in a state + of Exchange or Loading, remove the advertisement from the local + link state database. + +8.3.1 Premature Aging of Advertisements + + A link state advertisement can be prematurely flushed from the switch + fabric by forcing its age to MaxAge and redistributing the + advertisement. + + A switch that was previously the designated switch for a multi-access + network link but has lost that status due to a failover to the backup + designated switch prematurely ages the network link advertisements it + originated for the link. + + + + + +Kane Informational [Page 66] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Premature aging also occurs when an advertisement's sequence number + must wrap -- that is, when the current advertisement instance has a + sequence number of 0x7fffffff. In this circumstance, the + advertisement is prematurely aged so that the next instance of the + advertisement can be originated with a sequence number of 0x80000001 + and be recognized as the most recent instance. + + A switch may only prematurely age those link state advertisements for + which it is the advertising switch. + +9. Calculating the Best Paths + + Once an adjacency has been formed and the two switches have + synchronized their databases, each switch in the adjacency calculates + the best path(s) to all other switches in the fabric, using itself as + the root of each path. In this context, "best" path means that path + with the lowest total cost metric across all hops. If there are + multiple paths with the same (lowest) total cost metric, they are all + calculated. Best paths are stored in the area data structure. + + Paths are calculated using the well-known Dijkstra algorithm. For a + detailed description of this algorithm, the reader is referred to + [Perlman], or any of a number of standard textbooks dealing with + network routing. + + Note that whenever there is a change in an adjacency relationship, or + any change that alters the topology of the switch fabric, the set of + best paths must be recalculated. + +10. Protocol Packets + + This section describes VLS protocol packets and link state + advertisements. + + + + + + + + + + + + + + + + + + +Kane Informational [Page 67] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + There are five distinct VLSP packet types, as listed in Table 7. + + Type Packet Name Function Description + + 1 Hello Select DS/Backup DS Section 10.6.1 + 2 Database Summarize database + Description contents Section 10.6.2 + 3 LS Request Database download Section 10.6.3 + 4 LS Update Database update Section 10.6.4 + 5 LS Ack Flooding acknow- + ledgment Section 10.6.5 + + Table 7: VLSP Packet Types + + + All VLSP packets are encapsulated within a standard ISMP packet, with + the VLS packet carried in the ISMP message body. The ISMP packet is + described in Section 10.1. + + Since it is important that the link state databases remain + synchronized throughout the switch fabric, processing of both + incoming and outgoing routing protocol packets should take priority + over ordinary data packets. Section 10.2 describes packet + processing. + + All VLSP packets begin with network layer addressing information, + described in Section 10.3, followed by a standard header, described + in Section 10.4. + + With the exception of Hello packets, all VLSP packets deal with lists + of link state advertisements. The format of a link state + advertisement is described in Section 11. + +10.1 ISMP Packet Format + + All VLSP packets are encapsulated within a standard ISMP packet. ISMP + packets are of variable length and have the following general + structure: + + o Frame header + o ISMP packet header + o ISMP message body + + + + + + + + + +Kane Informational [Page 68] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +10.1.1 Frame Header + + ISMP packets are encapsulated within an IEEE 802-compliant frame + using a standard header as shown below: + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + + Destination address +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 04 | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Source address + + 08 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 12 | Type | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 16 | | + + + + : : + + Destination address + + This 6-octet field contains the Media Access Control (MAC) address + of the multicast channel over which all switches in the fabric + receive ISMP packets. The destination address of all ISMP packets + contain a value of 01-00-1D-00-00-00. + + Source address + + This 6-octet field contains the physical (MAC) address of the + switch originating the ISMP packet. + + Type + + This 2-octet field identifies the type of data carried within the + frame. The type field of ISMP packets contains the value 0x81FD. + + + + + + + + + + + + + + + +Kane Informational [Page 69] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +10.1.2 ISMP Packet Header + + The ISMP packet header consists of 6 octets, as shown below: + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 |///////////////////////////////////////////////////////////////| + ://////// Frame header /////////////////////////////////////////: + +//////// (14 octets) /////////+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 12 |///////////////////////////////| Version | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 16 | ISMP message type | Sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 20 | | + + + + : : + + + Frame header + + This 14-octet field contains the frame header. + + Version + + This 2-octet field contains the version number of the InterSwitch + Message Protocol to which this ISMP packet adheres. This document + describes ISMP Version 2.0. ISMP message type + + This 2-octet field contains a value indicating which type of ISMP + message is contained within the message body. Valid values are as + follows: + + 1 (reserved) + 2 Interswitch Keepalive messages + 3 Interswitch Link State messages + 4 Interswitch Spanning Tree BPDU messages and + Interswitch Remote Blocking messages + 5 Interswitch Resolve and New User messages + 6 (reserved) + 7 Tag-Based Flood messages + 8 Interswitch Tap messages + + All VLS protocol messages have an ISMP message type of 3. + + + + + + + +Kane Informational [Page 70] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Sequence number + + This 2-octet field contains an internally generated sequence + number used by the various protocol handlers for internal + synchronization of messages. + +10.1.3 ISMP Message Body + + The ISMP message body is a variable-length field containing the + actual data of the ISMP message. The length and content of this + field are determined by the value found in the message type field. + VLSP packets are contained in the ISMP message body. + +10.2 VLSP Packet Processing + + Note that with the exception of Hello packets, VLSP packets are sent + only between adjacent neighbors. Therefore, all packets travel a + single hop. + + VLSP does not support fragmentation and reassembly of packets. + Therefore, packets containing lists of link state advertisements or + advertisement headers must be formatted such that they contain only + as many advertisements or headers as will fit within the size + constraints of a standard ethernet frame. + + When a protocol packet is received by a switch, it must first pass + the following criteria before being accepted for further processing: + + o The checksum number must be correct. + + o The destination switch ID (as found in the network layer address + information) must be the switch ID of the receiving switch, or one + of the multicast switch IDs AllSPFSwitches or AllDSwitches. + + If the destination switch ID is the multicast switch ID + AllDSwitches, the state of the receiving interface must be Point- + to-Point, DS, or Backup. + + o The source switch ID (as found in the network layer address + information) must not be that of the receiving switch. (That is, + locally originated packets should be discarded.) + + At this point, if the packet is a Hello packet, it is accepted for + further processing. + + + + + + + +Kane Informational [Page 71] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Since all other packet types are only sent between adjacent + neighbors, the packet must have been sent by one of the switch's + active neighbors. If the source switch ID matches the switch ID of + one of the receiving switch's active neighbors (as stored in the + interface data structure associated with the inport interface), the + packet is accepted for further processing. Otherwise, the packet is + discarded. + +10.3 Network Layer Address Information + + As mentioned in Section 2.2.1, portions of the VLS protocol (as + derived from OSPF) are dependent on certain network layer addresses + -- in particular, the AllSPFSwitches and AllDSwitches multicast + addresses that drive the distribution of link state advertisements + throughout the switch fabric. In order to facilitate the + implementation of the protocol at the physical MAC layer, network + layer address information is encapsulated in the VSLP packets. This + information immediately follows the ISMP frame and packet header and + immediately precedes the VLSP packet header, as shown below: + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + : frame header / ISMP header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + : Unused (20 octets) : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 20 | | + + Source switch ID + + 24 | | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 28 | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 32 | | + + Destination switch ID + + 36 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 40 | | + : VLSP header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + + + + +Kane Informational [Page 72] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Source switch ID + + This 10-octet field contains the switch ID of the sending switch. + + Destination switch ID + + This 10-octet field contains the switch ID of the packet + destination. The value here is set as follows: + + o Hello packets are addressed to the multicast switch ID + AllSPFSwitches. + + o The designated switch and the backup designated switch address + initial Link State Update packets and Link State Acknowledgment + packets to the multicast switch ID AllSPFSwitches. + + o All other switches address initial Link State Update packets + and Link State Acknowledgment packets to the multicast switch + ID AllDSwitches. + + o Retransmissions of Link State Update packets are always + addressed directly to the nonresponding switch. + + o Database Description packets and Link State Request are always + addressed directly to the other switch participating in the + database exchange process. + + VLSP header + + This 30-octet field contains the VLSP standard header. See + Section 10.4. + +10.4 VLSP Packet Header + + Every VLSP packet starts with a common 30-octet header. This header, + along with the data found in the network layer address information, + contains all the data necessary to determine whether the packet + should be accepted for further processing. (See Section 10.1.) + + The format of the VLSP header is shown below. Note that the header + starts at offset 36 of the ISMP message body, following the network + layer address information. + + + + + + + + + +Kane Informational [Page 73] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + | | + : frame header / ISMP header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + : Network layer address information : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 40 | (unused) | Type | Packet length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 44 | | + + Source switch ID + + 48 | | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 52 | | Area ID . . . | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 56 | Area ID . . . | Checksum | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 60 | Autype | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Authentication + + 64 | | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 68 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + Type + + This 1-octet field contains the packet type. Possible values are + as follows: + + 1 Hello + 2 Database Description + 3 Link State Request + 4 Link State Update + 5 Link State Acknowledgment + + Packet length + + This 2-octet field contains the length of the protocol packet, in + bytes, calculated from the start of the VLSP header, at offset 20 + of the ISMP message body. If the packet length is not an integral + number of 16-bit words, the packet is padded with an octet of zero + (see the description of the checksum field, below). + + + + +Kane Informational [Page 74] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Switch ID + + This 10-octet field contains the switch ID of the sending switch. + + Area ID + + This 4-octet field contains the area identifier. Since VLSP does + not support multiple areas, the value here is always zero. + + Checksum + + This 2-octet field contains the packet checksum value. The + checksum is calculated as the 16-bit one's complement of the one's + complement sum of all the 16-bit words in the packet, beginning + with the VLSP header, excluding the authentication field. If the + packet length is not an integral number of 16-bit words, the + packet is padded with an octet of zero before calculating the + checksum. + + AuType + + This 2-octet field identifies the authentication scheme to be used + for the packet. Since authentication is not supported by this + version of VLSP, this field contains zero. + + Authentication + + This 8-octet field is reserved for use by the authentication + scheme. Since authentication is not supported by this version of + VLSP, this field contains zeroes. + +10.5 Options Field + + Hello packets and Database Description packets, as well as link state + advertisements, contain a 1-octet options field. Using this field, a + switch can communicate its optional capabilities to other VLSP + switches. The receiving switch can then choose whether or not to + support those optional capabilities. Thus, switches of differing + capabilities potentially can be mixed within a single VLSP routing + domain. + + Two optional capabilities are currently defined in the options field: + routing based on Type of Service (TOS) and support for external + routing beyond the local switch fabric. These two capabilities are + specified in the options field as shown below. + + + + + + +Kane Informational [Page 75] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + +-+-+-+-+-+-+-+-+ + |0|0|0|0|0|0|E|T| + +-+-+-+-+-+-+-+-+ + + The options field + + T-bit + + The T-bit specifies the switch's Type of Service (TOS) capability. + If the T-bit is set, the switch supports routing based on nonzero + types of service. + + E-bit + + The E-bit specifies the switch's external routing capability. If + the E-bit is set, the switch supports external routing. + + Note: The current version of VLSP supports neither of these + capabilities. Therefore, both the T-bit and the E-bit are clear and + the options field contains a value of zero. + +10.6 Packet Formats + + This section contains detailed descriptions of the five VLS protocol + packets. + +10.6.1 Hello Packets + + Hello packets are sent periodically over multi-access switch + interfaces in order to discover and maintain neighbor relationships. + + Note: Hello packets are not sent over point-to-point network links. + For point-to-point links, the VLS protocol relies on the VlanHello + protocol [IDhello] to notify it of neighboring switches. + + Since all switches connected to a common network link must agree on + certain interface parameters, these parameters are included in each + Hello packet. A switch receiving a Hello packet that contains + parameters inconsistent with its own view of the interface will not + establish a neighbor relationship with the sending switch. + + The format of a Hello packet is shown below. + + + + + + + + + +Kane Informational [Page 76] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + : Network layer addressing / VLSP header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 70 | (unused -- must be 0) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 74 | HelloInt | Options | Priority | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 78 | DeadInt | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 82 | | + + Designated switch ID + + 86 | | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 90 | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 94 | | + + Backup designated switch ID + + 98 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 102 | | + + + + : Neighbor list : + + + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Network layer addressing / VLSP header + + This 70-octet field contains the network layer addressing + information and the standard VLS protocol packet header. The + packet header type field contains a value of 1. + + HelloInt + + This 2-octet field contains the interval, in seconds, at which + this switch sends Hello packets. + + Options + + This 1-octet field contains the optional capabilities supported by + the switch, as described in Section 10.5. + + + + + + +Kane Informational [Page 77] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Priority + + This 1-octet field contains the switch priority used in selecting + the designated switch and backup designated switch (see Section + 6.3.1). If the value here is zero, the switch is ineligible to + become the designated switch or the backup designated switch. + + DeadInt + + This 4-octet field contains the length of time, in seconds, that + neighboring switches will wait before declaring the interface down + once they stop receiving Hello packets over the interface. The + value here is equal to the value of SwitchDeadInterval, as found + in the interface data structure. + + Designated switch + + This 10-octet field contains the switch ID of the designated + switch for this network link, as currently understood by the + sending switch. This value is set to zero if the designated + switch selection process has not yet begun. + + Backup designated switch + + This 10-octet field contains the switch ID of the backup + designated switch for the network link, as currently understood by + the sending switch. This value is set to zero if the backup + designated switch selection process has not yet begun. + + Neighbor list + + This variable-length field contains a list of switch IDs of each + switch from which the sending switch has received a valid Hello + packet within the last SwitchDeadInterval seconds. + +10.6.2 Database Description Packets + + Database Description packets are exchanged while an adjacency is + being formed between two neighboring switches and are used to + describe the contents of the topological database. For a complete + description of the database exchange process, see Section 7.2. + + The format of a Database Description packet is shown below. + + + + + + + + +Kane Informational [Page 78] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + : Network layer addressing / VLSP header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 70 | (unused -- must be 0) | Options | Flags | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 74 | Sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 78 | | + + + + : Link state advertisement headers : + + + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + Network layer addressing / VLSP header + + This 70-octet field contains the network layer addressing + information and the standard VLS protocol packet header. The + packet header type field contains a value of 2. + + Options + + This 1-octet field contains the optional capabilities supported by + the switch, as described in Section 10.5. + + Flags + + This 1-octet field contains a set of bit flags that are used to + coordinate the database exchange process. The format of this + octet is as follows: + + +-+-+-+-+-+-+-+-+ + |0|0|0|0|0|I|M|MS + +-+-+-+-+-+-+-+-+ + + I-bit (Init) + + The I-bit is used to signal the start of the exchange. It is set + while the two switches negotiate the master/slave relationship and + the starting sequence number. + + + + + + +Kane Informational [Page 79] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + M-bit (More) + + The M-bit is set to indicate that more Database Description + packets to follow. + + MS-bit (Master/Slave) + + The MS-bit is used to indicate which switch is the master of the + exchange. If the bit is set, the sending switch is the master + during the database exchange process. If the bit is clear, the + switch is the slave. + + Sequence number + + This 4-octet field is used to sequence the Database Description + packets during the database exchange process. The two switches + involved in the exchange process agree on the initial value of the + sequence number during the master/slave negotiation. The number + is then incremented for each Database Description packet in the + exchange. + + To acknowledge each Database Description packet sent by the + master, the slave sends a Database Description packet that echoes + the sequence number of the packet being acknowledged. + + Link state advertisement headers + + This variable-length field contains a list of link state headers + that describe a portion of the master's topological database. + Each header uniquely identifies a link state advertisement and its + current instance. (See Section 11.1 for a detailed description of + a link state advertisement header.) The number of headers + included in the list is calculated implicitly from the length of + the packet, as stored in the VLSP packet header (see Section + 10.4). + +10.6.3 Link State Request Packets + + Link State Request packets are used to request those pieces of the + neighbor's database that the sending switch has discovered (during + the database exchange process) are more up-to-date than instances in + its own database. Link State Request packets are sent as the last + step in bringing up an adjacency. (See Section 7.3.) + + The format of a Link State Request packet is shown below. + + + + + + +Kane Informational [Page 80] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + : Network layer addressing / VLSP header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 70 | Link state type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 74 | | + + Link state ID + + 88 | | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 82 | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 86 | | + + Advertising switch ID + + 90 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 94 | | + : . . . : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + Network layer addressing / VLSP header + + This 70-octet field contains the network layer addressing + information and the standard VLS protocol packet header. The + packet header type field contains a value of 3. + + Link state type + + This 4-octet field contains the link state type of the requested + link state advertisement, as stored in the advertisement header. + + Link state ID + + This 10-octet field contains the link state ID of the requested + link state advertisement, as stored in the advertisement header. + + Advertising switch + + This 10-octet field contains the switch ID of advertising switch + for the requested link state advertisement, as stored in the + advertisement header. + + + + + +Kane Informational [Page 81] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Note that the last three fields uniquely identify the + advertisement, but not its instance. The receiving switch will + respond with its most recent instance of the specified + advertisement. + + Multiple link state advertisements can be requested in a single + Link State Request packet by repeating the link state type, ID, + and advertising switch for each requested advertisement. The + number of advertisements requested is calculated implicitly from + the length of the packet, as stored in the VLSP packet header. + +10.6.4 Link State Update Packets + + Link State Update packets are used to respond to a Link State Request + packet or to advertise a new instance of one or more link state + advertisements. Link State Update packets are acknowledged with Link + State Acknowledgment packets. For more information on the use of + Link State Update packets, see Section 7 and Section 8. + + The format of a Link State Update packet is shown below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + : Network layer addressing / VLSP header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 70 | # advertisements | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 74 | | + + + + : Link state advertisements : + + + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Network layer addressing / VLSP header + + This 70-octet field contains the network layer addressing + information and the standard VLS protocol packet header. The + packet header type field contains a value of 4. + + # advertisements + + This 4-octet field contains the number of link state + advertisements included in the packet. + + + + +Kane Informational [Page 82] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Link state advertisements + + This variable-length field contains a list of link state + advertisements. For a detailed description of the different types + of link state advertisements, see Section 11. + +10.6.5 Link State Acknowledgment Packets + + Link State Acknowledgment Packets are used to explicitly acknowledge + one or more Link State Update packets, thereby making the + distribution of link state advertisements reliable. (See Section + 8.2.6.) + + The format of a Link State Acknowledgment packet is shown below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + : Network layer addressing / VLSP header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 70 | | + + + + : Link state advertisement headers : + + + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Network layer addressing / VLSP header + + This 70-octet field contains the network layer addressing + information and the standard VLS protocol packet header. The + packet header type field contains a value of 5. + + Link state advertisement headers + + This variable-length field contains a list of link state headers + that are being acknowledged by this packet. Each header uniquely + identifies a link state advertisement and its current instance. + (See Section 11.1 for a detailed description of a link state + advertisement header.) The number of headers included in the list + is calculated implicitly from the length of the packet, as stored + in the VLSP packet header (see Section 10.4). + + + + + + + +Kane Informational [Page 83] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +11. Link State Advertisement Formats + + Link state advertisements are used to describe various pieces of the + routing topology within the switch fabric. Each switch in the fabric + maintains a complete set of all link state advertisements generated + throughout the fabric. (Section 8.1 describes the circumstances + under which a link state advertisement is originated. Section 8.2 + describes how advertisements are distributed throughout the switch + fabric.) This collection of advertisements, known as the link state + (or topological) database, is used to calculate a set of best paths + to all other switches in the fabric. + + There are two types of link state advertisement, as listed in Table + 8. + + Type Name Function Description + + 1 Switch link Lists all network Section 11.2 + advertisement linksattached to + a switch + + 2 Network link Lists all adjacen- Section 11.3 + advertisement cies on a network + link + + Table 8: Link State Advertisement Types + + Each link state advertisement begins with a standard header, + described in Section 11.1. + +11.1 Link State Advertisement Headers + + All link state advertisements begin with a common 32-octet header. + This header contains information that uniquely identifies the + advertisement -- its type, link state ID, and the switch ID of its + advertising switch. Also, since multiple instances of a link state + advertisement can exist concurrently in the switch fabric, the header + contains information that permits a switch to determine which + instance is the most recent -- the age, sequence number and checksum. + + The format of the link state advertisement header is shown below. + + + + + + + + + + +Kane Informational [Page 84] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | Age | Options | LS Type | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 04 | | + + Link state ID + + 08 | | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 12 | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 16 | | + + Advertising switch ID + + 20 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 24 | Sequence number | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 28 | Checksum | Length | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + + Age + + This 2-octet field contains the time, in seconds, since this + instance of the link state advertisement was originated. + + Options + + This 1-octet field contains the optional capabilities supported by + the advertising switch, as described in Section 10.5. + + LS type + + This 1-octet field contains the type of the link state + advertisement. Possible values are: + + 1 Switch link advertisement + 2 Network link advertisement + + Link state ID + + This 10-octet field identifies the switch that originates + advertisements for the link. The content of this field depends on + the advertisement's type. + + o For a switch link advertisement, this field contains the switch + ID of the originating switch + + + + +Kane Informational [Page 85] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + o For a network link advertisement, this field contains the + switch ID of the designated switch for the link + + Note: In VLSP, the link state ID of an advertisement is always the + same as the advertising switch. This level of redundancy results + from the fact that OSPF uses additional types of link state + advertisements for which the originating switch is not the + advertising switch. + + Advertising switch + + This 10-octet field contains the switch ID of the switch that + originated the link state advertisement. + + Sequence number + + This 4-octet field is used to sequence the instances of a + particular link state advertisement. The number is incremented + for each new instance. + + Checksum + + This 2-octet field contains the checksum of the complete contents + of the link state advertisement, excluding the age field. The + checksum used is commonly referred to as the Fletcher checksum and + is documented in [RFC905]. Note that since this checksum is + calculated for each separate advertisement, a protocol packet + containing lists of advertisements or advertisement headers will + contain multiple checksum values. + + Length + + This 2-octet field contains the total length, in octets, of the + link state advertisement, including the header. + +11.2 Switch Link Advertisements + + A switch link advertisement is used to describe all functioning + network links of a switch, including the cost of using each link. + + Each functioning switch in the fabric originates one, and only one, + switch link advertisement -- all of the switch's links must be + described in a single advertisement. A switch originates its first + switch link advertisement (containing no links) when it first becomes + functional. It then originates a new instance of the advertisement + each time any of its neighbor states changes such that the contents + of the advertisement changes. See Section 8.1 for details on + originating a switch link advertisement. + + + +Kane Informational [Page 86] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + The format of a switch link advertisement is shown below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + : Link state header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 32 | (unused -- must be 0) | # links | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 36 | | + + Link ID + + 40 | | + + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 44 | | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + 48 | | + + Link data + + 52 | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 56 | Link type | # TOS | TOS 0 metric | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 60 | | + : . . . : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Link state header + + This 32-octet field contains the standard link state advertisement + header. The type field contains a 1, and the link state ID field + contains the switch ID of the advertising switch. + + # links + + This 2-octet field contains the number of links described by this + advertisement. This value must be equal to the total number of + functioning network links attached to the switch. + + + + + + + + + + + + +Kane Informational [Page 87] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + Link ID + + This 10-octet field identifies the other switch that originates + link state advertisements for the link, providing a key for + accessing other link state advertisements for the link. The value + here is based on the link type, as follows: + + o For point-to-point links, this field contains the switch ID of + the neighbor switch connected to the other end of the link. + + o For multi-access links, this field contains the switch ID of + the designated switch for the link. + + Link data + + This 10-octet field contains additional data necessary to + calculate the set of best paths. Typically, this field contains + the interface ID of the link. + + Link type + + This 1-octet field contains the type of link being described. + Possible values are as follows: + + 1 Point-to-point link + 2 Multi-access link + + # TOS + + This 1-octet field contains the number of nonzero type of service + metrics specified for the link. Since the current version of VLSP + does not support routing based on nonzero types of service, this + field contains a value of zero. + + TOS 0 metric + + This 2-octet field contains the cost of using this link for the + zero TOS. This value is expressed in the link state metric and + must be greater than zero. + + Note that the last five fields are repeated for all functioning + network links attached to the advertising switch. If the interface + state of attached link changes, the switch must originate a new + instance of the switch link advertisement. + + + + + + + +Kane Informational [Page 88] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +11.3 Network Link Advertisements + + A network link advertisement is originated by the designated switch + of each multi-access network link. The advertisement describes all + switches attached to the link that are currently fully adjacent to + the designated switch, including the designated switch itself. See + Section 8.1 for details on originating a switch link advertisement. + + Network link advertisements are not generated for point-to-point + network links. + + The format of a network link advertisement is show below. + + 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 + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 00 | | + : Link state header : + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 32 | (unused) | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + 36 | | + + + + : Switch list : + + + + | | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + Link state header + + This 32-octet field contains the standard link state advertisement + header. The type field contains a 2, and the link state ID field + contains the switch ID of the designated switch. + + Switch list + + The switch IDs of all switches attached to the network link that + are currently fully adjacent to the designated switch. The + designated switch includes itself in this list. + +12. Protocol Parameters + + This section contains a compendium of the parameters used in the VLS + protocol. + + + + + + +Kane Informational [Page 89] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +12.1 Architectural Constants + + Several VLS protocol parameters have fixed architectural values. The + name of each architectural constant follows, together with its value + and a short description of its function. + + AllSPFSwitches + + The multicast switch ID to which Hello packets and certain other + protocol packets are addressed, as specified in the destination + switch ID field of the network layer address information (see + Section 10.3). The value of AllSPFSwitches is E0-00-00-05-00-00- + 00-00. + + AllDSwitches + + The multicast switch ID to which Link State Update packets and + Link State Acknowledgment packets are addressed, as specified in + the destination switch ID field of the network layer address + information (see Section 10.3), when they are destined for the + designated switch or the backup designated switch of a network + link. The value of AllDSwitches is E0-00-00-06-00-00-00-00. + + LSRefreshTime + + The interval at which the set of best paths recalculated if no + other state changes have forced a recalculation. The value of + LSRefreshTime is set to 1800 seconds (30 minutes). + + MinLSInterval + + The minimum time between distinct originations of any particular + link state advertisement. The value of MinLSInterval is set to 5 + seconds. + + MaxAge + + The maximum age that a link state advertisement can attain. When + an advertisement's age reaches MaxAge, it is redistributed + throughout the switch fabric. When the originating switch + receives an acknowledgment for the advertisement, indicating that + the advertisement has been removed from all neighbor Link state + retransmission lists, the advertisement is removed from the + originating switch's database. Advertisements having age MaxAge + are not used to calculate the set of best paths. The value of + MaxAge must be greater than LSRefreshTime. The value of MaxAge is + set to 3600 seconds (1 hour). + + + + +Kane Informational [Page 90] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + MaxAgeDiff + + The maximum time disparity in ages that can occur for a single + link state instance as it is distributed throughout the switch + fabric. Most of this time is accounted for by the time the + advertisement sits on switch output queues (and therefore not + aging) during the distribution process. The value of MaxAgeDiff is + set to 900 seconds (15 minutes). + + LSInfinity + + The link state metric value indicating that the destination is + unreachable. It is defined to be a binary value of all ones. + +12.2 Configurable Parameters + + Many of the switch interface parameters used by VLSP may be made + configurable if the implementer so desires. These parameters are + listed below. Sample default values are given for some of the + parameters. + + Note that some of these parameters specify properties of the + individual interfaces and their attached network links. These + parameters must be consistent across all the switches attached to + that link. + + Interface output cost(s) + + The cost of sending a packet over the interface, expressed in the + link state metric. This is advertised as the link cost for this + interface in the switch's switch link advertisement. The interface + output cost must always be greater than zero. + + RxmtInterval + + The number of seconds between link state advertisement + retransmissions for adjacencies established on this interface. + This value is also used when retransmitting Database Description + packets and Link State Request packets. This value must be greater + than the expected round-trip delay between any two switches on the + attached link. However, the value should be conservative or + needless retransmissions will result. A typical value for a local + area network would be 5 seconds. + + + + + + + + +Kane Informational [Page 91] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + InfTransDelay + + The estimated number of seconds it takes to transmit a Link State + Update packet over this interface. Link state advertisements + contained in the Link State Update packet must have their age + incremented by this amount before transmission. This value must + take into account the transmission and propagation delays for the + interface and must be greater than zero. A typical value for a + local area network would be 1 second. + + Switch priority + + An 8-bit unsigned integer. When two switches attached to the same + network link contend for selection as the designated switch, the + switch with the highest priority takes precedence. If both + switches have the same priority, the switch with the highest base + MAC address becomes the designated switch. A switch whose switch + priority is set to zero is ineligible to become the designated + switch on the attached link. + + HelloInterval + + The length of time, in seconds, between the Hello packets that the + switch sends over the interface. This value is advertised in the + switch's Hello packets. It must be the same for all switches + attached to a common network link. The smaller this value is set, + the faster topological changes will be detected. However, a + smaller interval will also generate more routing traffic. A + typical value for a local area network would be 10 seconds. + + SwitchDeadInterval + + The length of time, in seconds, that neighboring switches will + wait before declaring the interface down once they stop receiving + Hello packets over the interface. This value is advertised in the + switch's Hello packets. It must be the same for all switches + attached to a common network link and should be some multiple of + the HelloInterval parameter. A typical value would be 4 times + HelloInterval. + + + + + + + + + + + + +Kane Informational [Page 92] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +13. End Notes + + [1] During calculation of the set of best paths, a network link + advertisement must be located based solely on its link state ID. + Note, however, that the lookup in this case is still well defined, + since no two network advertisements can have the same link state ID. + + [2] It is instructive to see what happens when the designated switch + for a network link fails. Call the designated switch for the link S1 + and the backup designated switch S2. If switch S1 fails (or its + interface to the link goes down), the other switches on the link will + detect S1's absence within SwitchDeadInterval seconds. All switches + may not detect this condition at precisely the same time. The + switches that detect S1's absence before S2 does will temporarily + select S2 as both designated switch and backup designated switch. + When S2 detects that S1 is down, it will move itself to designated + switch. At this time, the remaining switch with the highest switch + priority will be selected as the backup designated switch. + + [3] Note that it is possible for a switch to resynchronize any of its + fully established adjacencies by setting the neighbor state back to + ExStart. This causes the switch on the other end of the adjacency to + process a SeqNumberMismatch event and also revert to the ExStart + state. + + [4] When two advertisements have different checksum values, they are + assumed to be separate instances. This can occur when a switch + restarts and loses track of its previous sequence number. In this + case, since the two advertisements have the same sequence number, it + is not possible to determine which advertisement is actually newer. + If the wrong advertisement is accepted as newer, the originating + switch will originate another instance. + + [5] An instance of an advertisement is originated with an age of + MaxAge only when it is to be flushed from the database. This is done + either when the advertisement has naturally aged to MaxAge, or (more + typically) when the sequence number must wrap. Therefore, a received + instance with an age of MaxAge must be processed as the most recent + in order to flush it properly from the database. + + [6] MaxAgeDiff is an architectural constant that defines the maximum + disparity in ages, in seconds, that can occur for a single link state + instance as it is distributed throughout the switch fabric. If two + advertisements differ by more than this amount, they are assumed to + be different instances of the same advertisement. This can occur when + a switch restarts and loses track of its previous sequence number. + + + + + +Kane Informational [Page 93] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + + [7] This is how the link state request list is emptied, causing the + neighbor state to change to Full. + +14. Security Considerations + + Security concerns are not addressed in this document. + +15. References + + [Perlman] Perlman, R., Interconnections: Bridges and Routers. + Addison-Wesley Publishing Company. 1992. + + [RFC905] McKenzie, A., "ISO Transport Protocol specification ISO + DP 8073", RFC 905, April 1984. + + [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, April 1998. + + [RFC1700] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, + RFC 1700, October 1994. + + [IDsfvlan] Ruffen, D., Len, T. and J. Yanacek, "Cabletron's + SecureFast VLAN Operational Model", RFC 2643, August + 1999. + + [IDhello] Hamilton, D. and D. Ruffen, "Cabletron's VlanHello + Protocol Specification", RFC 2641, August 1999. + +16. Author's Address + + Laura Kane + Cabletron Systems, Inc. + Post Office Box 5005 + Rochester, NH 03866-5005 + + Phone:(603) 332-9400 + EMail: lkane@ctron.com + + + + + + + + + + + + + + + +Kane Informational [Page 94] + +RFC 2642 Cabletron's VLS Protocol Specification August 1999 + + +17. Full Copyright Statement + + Copyright (C) The Internet Society (1999). All Rights Reserved. + + This document and translations of it may be copied and furnished to + others, and derivative works that comment on or otherwise explain it + or assist in its implementation may be prepared, copied, published + and distributed, in whole or in part, without restriction of any + kind, provided that the above copyright notice and this paragraph are + included on all such copies and derivative works. However, this + document itself may not be modified in any way, such as by removing + the copyright notice or references to the Internet Society or other + Internet organizations, except as needed for the purpose of + developing Internet standards in which case the procedures for + copyrights defined in the Internet Standards process must be + followed, or as required to translate it into languages other than + English. + + The limited permissions granted above are perpetual and will not be + revoked by the Internet Society or its successors or assigns. + + This document and the information contained herein is provided on an + "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING + TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING + BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION + HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF + MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + + + + + + + + + + + +Kane Informational [Page 95] + |