home *** CD-ROM | disk | FTP | other *** search
Text File | 2003-06-11 | 46.8 KB | 1,236 lines |
-
-
-
-
-
-
- Network Working Group K. Murakami
- Request for Comments: 2174 M. Maruyama
- Category: Informational NTT Laboratories
- June 1997
-
-
- A MAPOS version 1 Extension - Switch-Switch Protocol
-
- Status of this Memo
-
- This memo provides information for the Internet community. This memo
- does not specify an Internet standard of any kind. Distribution of
- this memo is unlimited.
-
- Authors' Note
-
- This memo documents a MAPOS (Multiple Access Protocol over SONET/SDH)
- version 1 extension, Switch Switch Protocol which provides dynamic
- routing for unicast, broadcast, and multicast. This document is NOT
- the product of an IETF working group nor is it a standards track
- document. It has not necessarily benefited from the widespread and
- in depth community review that standards track documents receive.
-
- Abstract
-
- This document describes a MAPOS version 1 extension, SSP (Switch
- Switch Protocol). MAPOS is a multiple access protocol for
- transmission of network-protocol packets, encapsulated in High-Level
- Data Link Control (HDLC) frames, over SONET/SDH. In MAPOS network, a
- SONET switch provides the multiple access capability to end nodes.
- SSP is a protocol of Distance Vector family and provides unicast and
- broadcast/multicast routing for multiple SONET switch environment.
-
- 1. Introduction
-
- This document describes an extension to MAPOS version 1, Switch
- Switch Protocol, for routing both unicast and broadcast/multicast
- frames. MAPOS[1], Multiple Access Protocol over SONET (Synchronous
- Optical Network) / SDH (Synchronous Digital Hierarchy) [2][3][4][5],
- is a link layer protocol for transmission of HDLC frames over
- SONET/SDH. A SONET switch provides the multiple access capability to
- each node. SSP is a dynamic routing protocol designed for an
- environment where a MAPOS network segment spans over multiple
- switches. It is a protocol of Distance Vector family. It provides
- both unicast and broadcast/multicast routing. First, this document
- describes the outline of SSP. Next, it explains unicast and
- broadcast/multicast routing algorithms. Then, it describes the SSP
- protocol in detail.
-
-
-
- Murakami & Maruyama Informational [Page 1]
-
- RFC 2174 MAPOS June 1997
-
-
- 2. Constraints in Designing SSP
-
- SSP is a unified routing protocol supporting both unicast and
- broadcast/multicast. The former and the latter are based on the
- Distance Vector [6][7] and the spanning tree[8] algorithm,
- respectively. In MAPOS version 1, a small number of switches is
- assumed in a segment. Thus, unlike DVMRP(Distance Vector Multicast
- Routing Protocol)[8], TRPB(Truncated Reverse Path Broadcasting) is
- not supported for simplicity. This means that multicast frames are
- treated just the same as broadcast frames and are delivered to every
- node.
-
- In MAPOS version 1, there are two constraints regarding design of the
- broadcast/multicast routing algorithm;
-
- (1) there is no source address field in MAPOS HDLC frames
-
- (2) there is no TTL(Time To Live) field in MAPOS HDLC frames to
- prevent forwarding loop.
-
- To cope with the first issue, VRPB(Virtual Reverse Path Broadcast)
- algorithm is introduced. In VRPB, all broadcast and multicast frames
- are assumed to be generated by a node under a specific switch called
- VSS(Virtual Source Switch). VSS is the switch which has the smallest
- switch number in a MAPOS network. Each switch determine its place in
- the spanning tree rooted from VSS independently. Whenever a switch
- receives a broadcast/multicast frame, it forwards the frame to all
- upstream and downstream switches except for the one which has sent
- the frame to the local switch.
-
- To cope with the second issue, the forward delay timer is introduced.
- Even if a switch finds a new VSS, it suspends forwarding for a time
- period. This timer ensures that all the switches have a consistent
- routing information and that they are synchronized after a topology
- change.
-
- 3. Unicast Routing in SSP
-
- This section describes the address structure of MAPOS version 1 and
- the SSP unicast routing based on it.
-
-
-
-
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 2]
-
- RFC 2174 MAPOS June 1997
-
-
- 3.1 Address Structure of MAPOS version 1
-
- In a multiple switch environment, a node address consists of the
- switch number and the port number to which the node is connected. As
- shown in Figure 1, the address length is 8 bits and the LSB is always
- 1, which indicates the end of the address field. A MSB of 0 indicates
- a unicast address. The switch and the port number fields are
- variable-length. In this document, a unicast address is represented
- as "0 <switch-number> <port number>". Note that a port number
- includes EA bit.
-
- MSB of 1 indicates multicast or broadcast. In the case of broadcast,
- the address field contains all 1s (0xff in hex). In the case of
- multicast, the remaining bits indicate a group address. The switch
- number field is variable-length. A multicast address is represented
- as "1 <group address>".
-
-
- Switch Number(variable length)
- |
- | +--- Port Number
- | |
- V V
- |<->|<------->|
- +-------------+-+
- | | | | | | | | |
- | | |1|
- +-+-----------+-+
- ^ ^
- | |
- | +------- EA bit (always 1)
- |
- 1 : broadcast, multicast
- 0 : unicast
-
- Figure 1 Address Format
-
- Figure 2 shows an example of a SONET LAN that consists of three
- switches. In this configuration, two bits of a node address are used
- to indicate the switch number. Node N1 is connected to port
- 0x03(000011 in binary) of the switch S2 numbered 0x2. Thus, the node
- address is 01000011 in binary. Node N4 has an address 01101001 in
- binary since the connected switch number is 0x3 and the port number
- is 0x09.
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 3]
-
- RFC 2174 MAPOS June 1997
-
-
- 01000011
- +------+
- | node |
- | N1 |
- +------+
- 01000101 |0x03 |0x03 00101001
- +------+ +---+----+ +---+----+ +------+
- | node +-----+ SONET +---------+ SONET +------+ node |
- | N2 | 0x05| Switch |0x09 0x05| Switch |0x09 | N3 |
- +------+ | S2 | | S1 | +------+
- | (0x2) | | (0x1) |
- +---+----+ +---+----+
- |0x07 |0x07
- | |
- | |0x03 01101001
- | +---+----+ +------+
- +--------------+ SONET +-----+ node |
- 0x05| Switch |0x09 | N4 |
- | S3 | +------+
- | (0x3) |
- +---+----+
- |0x07
-
- Figure 2 Multiple SONET Switch Environment
-
- 3.2 Forwarding Unicast Frames
-
- Unicast frames are forwarded along the shortest path. For example, a
- frame from node N4 destined to N1 is forwarded by switch S3 and S2.
- These SONET switches forwards an HDLC frame based on the destination
- switch number contained in the destination address.
-
- Each switch keeps a routing table with entries for possible
- destination switches. An entry contains the subnet mask, the next hop
- to the adjacent switch along the shortest path to the destination,
- the metric measuring the total distance to the destination, and other
- parameters associated with the entry such as timers. For example, the
- routing table in switch S1 will be as shown in Table 1. The metric
- value 1 means that the destination switch is an adjacent switch. The
- value 16 means that it is unreachable. Although the values between 17
- and 31 also mean unreachable, they are special values utilized for
- split horizon with poisoned reverse [8].
-
-
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 4]
-
- RFC 2174 MAPOS June 1997
-
-
- +-------------------------+----------+--------+------------+
- | destination | subnet | next hop | metric | other |
- | switch | mask | port | | parameters |
- +-------------+-----------+----------+--------+------------+
- | 01000000 | 11100000 | 00000101 | 1 | |
- +-------------+-----------+----------+--------+------------+
- | 01100000 | 11100000 | 00000111 | 1 | |
- +-------------+-----------+----------+--------+------------+
-
- Table 1 An Example of a Routing Table
-
- When a switch receives a unicast frame, it extracts the switch number
- from the destination address. If it equals to the local switch
- number, the frame is sent to the local node through the port
- specified in the destination address. Otherwise, the switch looks up
- its routing table for a matching destination switch number by masking
- the destination address with the corresponding subnet mask. If a
- matching entry is found, the frame is sent to an adjacent switch
- through the next hop port in the entry. Otherwise, it is silently
- discarded or sent to the control processor for its error processing.
-
- 3.4 Protocol Overview
-
- This subsection describes an overview of the unicast routing protocol
- and its algorithm.
-
- 3.4.1 Route Exchange
-
- SSP is a distance vector protocol to establish and maintain the
- routing table. In SSP, each switch sends a routing update message to
- every adjacent switches every FULL_UPDATE_TIME (10 seconds by
- default). The update message is a copy of the routing table, that is,
- routes.
-
- When a switch receives an update message from an adjacent switch
- through a port, it adds the cost associated with the port, usually 1,
- to every metric value in the message. The result is a set of new
- metrics from the receiving switch to the destination switches. Next,
- it compares the new metrics with those of the corresponding entries
- in the existing routing table. A smaller metric means a better route.
- Thus, if the new metric is smaller than the existing one, the entry
- is updated with the new metric and next hop. The next hop is the port
- from which the update message was received. Otherwise, the entry is
- left unchanged. If the existing next hop is the same as the new one,
- the metric is updated regardless of the metric value. If no
- corresponding route is found, a new route entry is created.
-
-
-
-
-
- Murakami & Maruyama Informational [Page 5]
-
- RFC 2174 MAPOS June 1997
-
-
- 3.4.2 Route Expiration
-
- Assume a route to R is advertised by a neighboring switch S. If no
- update message has been received from switch S for the period
- FULL_UPDATE_TIME * 3 (30 seconds by default) or the route is
- advertised with metric 16 by switch S, the route to R is marked as
- unreachable by setting its metric to 16. In other words, the route to
- R is kept advertised even if the route is not refreshed up-to 30
- seconds.
-
- To process this, each routing table entry has an EXPIRATION_TIMER (30
- seconds by default, that is, FULL_UPDATE_TIME *3). If another switch
- advertises a route to R, it replaces the unreachable route. Even if a
- route is marked unreachable, the entry is kept in the routing table
- for the period of FULL_UPDATE_TIME * 3. This enables the switch to
- notify its neighbors of the unreachable route by sending update
- messages with metric 16. To process this, each routing table entry
- has a garbage collection timer GC_TIMER (30 seconds by default). The
- entry is deleted on expiration of the timer. Figure 3 shows this
- transition.
-
- The Last Update Expiration Garbage Collection
- | | |
- Routing V T T T V T T T V
- Table +-------+-------+-------+-------+-------+-------X
- Entry metric < 16 | metric = 16 |
-
- ----------------------->|---------------------->|
- EXPIRATION_TIMER GC_TIMER
- Stop Advertising
- |
- Advertised V
- Metric -- metric <16 ------+-- metric = 16 -------X
-
- T: FULL_UPDATE_TIME
-
- Figure 3. Route Expiration
-
- 3.4.3 Slow Convergence Prevention
-
- To prevent slow convergence of routing information, two techniques,
- split horizon with poisoned reverse, and triggered update are
- employed.
-
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 6]
-
- RFC 2174 MAPOS June 1997
-
-
- Sn <------------- S3 <- S2 <- S1
-
- (i) Before Outage
-
- ->
- Sn <-- X -- S3 <- S2 <- S1
-
- (ii) After Outage
-
- Figure 4 An Example of Slow Convergence
-
- Figure 4 shows an example of slow convergence[6]. In (i), three
- switches, S1, S2, and S3, are assumed to have a route to Sn. In (ii),
- the connection to Sn has disappeared because of an outage, but S2
- continue to advertise the route since there is no means for S2 to
- detect the outage immediately and it has the route to Sn in its
- routing table. Thus, S3 misunderstand that S2 has the best route to
- Sn and S2 is the next hop. This results in a transitive loop between
- S2 and S3. S2 and S3 increments the metric of the route to Sn every
- time they advertise the route and the loop continues until the metric
- reaches 16. To suppress the slow convergence problem, split horizon
- with poisoned reverse is used.
-
- In split horizon with poisoned reverse, a route is advertised as
- unreachable to the next hop. The metric is the received metric value
- plus 16. For example, in Figure 4, S2 advertises the route to Sn with
- the metric unreachable only to S3. Thus, S3 never considers that S2
- is the next hop to Sn. This ensures fast convergence on disappearance
- of a route.
-
- Another technique, triggered update, forces a switch to send an
- immediate update instead of waiting for the next periodic update when
- a switch detects a local port failure, or when it receives a message
- that a route has become unreachable, or that its metric has
- increased. This makes the convergence faster.
-
- 4. Broadcast/multicast Routing in SSP
-
- This section explains VRPB algorithm and the outline of
- broadcast/multicast routing protocol.
-
-
-
-
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 7]
-
- RFC 2174 MAPOS June 1997
-
-
- 4.1 Virtual Reverse Path Broadcast/Multicast Algorithm
-
- SSP provides broadcast/multicast routing based on a spanning tree
- algorithm. As described in Section 2, the routing is based on the
- VRPB(Virtual Reverse Path Broadcast) algorithm. In VRPB, each switch
- assumes that all broadcast and multicast frames are generated by a
- specific switch, VSS(Virtual Source Switch). Thus, unlike DVMRP, a
- MAPOS network has only one spanning tree at any given time.
-
- The frames are forwarded along the reverse path by computing the
- shortest path from the VSS to all possible recipients. VSS is the
- switch which has the lowest switch number in the network. Because
- the routing table contains all the unicast destination addresses
- including the switch numbers, each switch can identify the VSS
- independently by searching for the smallest switch number in its
- unicast routing table.
-
- In Figure 2, switch S1 is the VSS. Each switch determines its place
- in the spanning tree, relative to the VSS, and which of its ports are
- on the shortest path tree. Thus, the spanning tree is as shown in
- Figure 5. Except for the VSS, each switch has one upstream port and
- zero or more downstream ports. VSS have no upstream port, since it is
- the root of the spanning tree. In Figure 2. switch S2's upstream
- port is port 0x09 and it has no downstream port.
-
- S1 (VSS)
- / \
- / \
- / \
- S2 S3
-
- Figure 5 VRPB Spanning Tree
-
- When a switch receives a broadcast/multicast frame, it forwards the
- frame to all of the upstream switch, the downstream switches, and the
- directly connected nodes. However, it does not forward to the switch
- which sent the frame to it. For that purpose, a bit mapped
- broadcast/multicast routing table may be employed. The
- broadcast/multicast routing process marks all the bits corresponding
- to the ports to which frames should be forwarded. The forwarding
- process refers to it and broadcasts a frame to all the ports with its
- corresponding bit marked.
-
- 4.2 Forwarding Broadcast/multicast Frames
-
- When a switch forwards a broadcast/multicast frame, (1) it first
- decides the VSS by referring to its unicast routing table. Then, (2)
- it refers to its broadcast/multicast routing table corresponding to
-
-
-
- Murakami & Maruyama Informational [Page 8]
-
- RFC 2174 MAPOS June 1997
-
-
- the VSS. A cache may be used to reduce the search overhead. (3) Based
- on the routing table, the switch forwards the frame.
-
- Figure 6 shows an example of S2's broadcast/multicast routing table
- for the VSS S1. It is a bit map table and each bit corresponds to a
- port. The value 1 indicates that frames should be forwarded to a node
- or a switch through the port. If no bit is marked, the frame is
- silently discarded. In the example of Figure 6, port 0x09 is the
- upstream port to its VSS, that is, S1. Other ports, ports 0x05 and
- 0x03 are path to N2 and N1 nodes, respectively.
-
- 0F 0D 0B 09 07 05 03 01 --- port number
- +---+---+---+---+---+---+---+---+
- | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | --- 1: forward
- +---+---+---+---+---+---+---+---+ 0: inhibit
-
- Figure 6 Broadcast/Multicast Routing Table of S2
-
- 4.3 Forwarding Path Examples
-
- Assume that a broadcast frame is generated by N2 in Figure 2. The
- frame is received by S2.
-
- Then, S2 passes it to all the connected nodes except for the source
- N2. That is, only to N1. At the same time, it also forwards the frame
- to all its upstream and downstream switches. Since S2 has no
- downstream switch, S2 forwards the frame to S1 though its upstream
- port 0x09.
-
- S1 is the VSS and it passes the frame to all the local nodes, that
- is, only to N3. Since it has no upstream switch and S2 is the switch
- which sent the frame to S1, the frame is eventually forwarded only to
- a downstream switch S3.
-
- S3 passes the frame to its local node, N4. Since S3 has only an
- upstream and the frame was received through that port, S3 does not
- forward the frame to any switch.
-
- The resulting path is shown in Figure 7. Although this is not the
- optimal path, VRPB ,at least, ensures that broadcast/multicast frames
- are delivered all the nodes without a loop. Figures 8 and 9 show the
- forwarding path for frames generated by a node under S3 and S4,
- respectively.
-
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 9]
-
- RFC 2174 MAPOS June 1997
-
-
- +-> N3
- |
- N2 -> S2 +-> S1 +-> S3 -> N4
- |
- +-> N1
-
- Figure 7 Forwarding Path from N2
-
- +-> N1
- |
- N3 -> S1 +-> S2 +-> N2
- |
- +-> S3 --> N4
-
- Figure 8 Forwarding Path from N3
-
-
- +-> N3
- |
- N4 -> S3 +-> S1 +-> S2 +-> N1
- |
- +-> N2
-
- Figure 9 Forwarding Path from N4
-
- 4.4 Suppressing Routing Loop
-
- To suppress transitive routing loop, forward delay is employed. A
- switch suspends broadcast/multicast forwarding for a period after a
- new VSS is found in the routing table. This prevents transitive
- routing loop by waiting for all the switches to have the same routing
- information and become synchronized. In addition to controlling
- sending of frames by forward delay, another mechanism is employed to
- prevent transitive routing loop by controlling reception of frames.
- That is, broadcast/multicast frames received through ports other than
- the upstream and downstream ports are discarded.
-
- 4.5 Upstream Switch Discovery
-
- The upstream port is determined by the shortest reverse path to the
- VSS. It is identified by referring to the next hop port of the route
- to VSS in the local unicast routing table. When a new next hop to the
- VSS is discovered, the bit corresponding to the old next hop port is
- cleared, and the bit corresponding to the new one is marked as the
- upstream port in the broadcast/multicast routing table.
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 10]
-
- RFC 2174 MAPOS June 1997
-
-
- 4.6 Downstream Switch Discovery
-
- To determine the downstream ports, split horizon with poisoned
- reverse is employed. When a switch receives a route with a metric
- poisoned by split horizon processing through a port as described in
- Section 3.4.3, the port is considered to be a downstream port. In
- Figure 2, S1 is the VSS and the route information is sent back from
- S2 to S1 with metric unreachable based on the split horizon with
- poisoned reverse. Thus, S1 knows that S2 is one of its downstreams.
-
- 4.7 Downstream Port Expiration
-
- When a poison reversed packet is newly received from a port, the
- local switch knows that a new downstream switch has appeared. Then,
- it marks the bit corresponding to the port and starts
- FORWARD_DELAY_TIMER (30second by default, that is, FULL_UPDATE_TIME *
- 3) for the port. The forwarding of broadcast/multicast frames to the
- port is prohibited until the timer expires. Every time the local
- switch receives a poison reversed packet through a port, it
- initializes PORT_EXPIRATION_TIMER(30 seconds by default, that is,
- FULL_UPDATE_TIME *3) corresponding to the port. A continuous loss of
- poison reversed packets or a failure of downstream port results in
- expiration of PORT_EXPIRATION_TIMER, and the corresponding bit is
- cleared.
-
- First Update Last Update
- | |
- V T T T T T T T V
- +---+---+---+---+---+---+---+---+---+---+---+---+---
- A bit in
- the routing 0 0 0 1 1 1 1 1 1 1 0 0 0
- table ^ ^
- <--------->| <--------->|
- ^ route up ^ route down
- | |
- FORWARD_DELAY PORT_EXPIRATION
-
- T: FULL_UPDATE_TIME
-
- Figure 10. Port Expiration
-
- When a downstream switch discovers another best path to the VSS or a
- new VSS, it stops split horizon with poison reverse and sends
- ordinary update messages. Whenever the local switch receives an
- ordinary update message from its downstream switch, it SHOULD
- immediately clear the corresponding bit in the routing table and stop
- forwarding of broadcast/multicast frames.
-
-
-
-
- Murakami & Maruyama Informational [Page 11]
-
- RFC 2174 MAPOS June 1997
-
-
- 4.8 Node Discovery
-
- When a NSP[9] packet, requesting a node address from a port, is
- received, the local switch considers that a new node is connected,
- and marks the corresponding bit in the broadcast/multicast routing
- table. When the local switch detects that the port went down as
- described in [9], it clear the corresponding bit.
-
- 4.9 Invalidating The Broadcast/multicast Routing Table
-
- When a new VSS is discovered or when the VSS becomes unreachable, the
- entire broadcast/multicast routing table is invalidated. That is, a
- change of upstream port affects the entire broadcast/multicast
- routing. However, a change of a downstream port does not affect
- forwarding to other downstream ports, its upstream port, and nodes.
-
- 5. Detailed Protocol Operation
-
- This section explains SSP packet format and protocol processing in
- detail.
-
- 5.1 Packet Format
-
- This subsection describes the packet encapsulation in HDLC frame and
- the packet format.
-
- 5.1.1 Packet Format and Its Encapsulation
-
- SSP packet format is designed based on RIP[6] and its successor, RIP2
- [7]. Figure 11 shows the packet format. A SSP packet is encapsulated
- in the information field of a MAPOS HDLC frame. The HDLC protocol
- field of SSP is 0xFE05 in hex as defined by the "MAPOS Version 1
- Assigned Numbers" [10]. The packet is sent encapsulated in a unicast
- packet with the destination address 0000 0001, which indicates the
- control processor of an adjacent switch.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 12]
-
- RFC 2174 MAPOS June 1997
-
-
- (MSB) (LSB)
- 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
- +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ -----
- | Command | Version | unused |SSP header
- +---------------+---------------+-------------------------------+ -----
- | Address Family Identifier | All 0 |
- +-------------------------------+-------------------------------+
- | HDLC Address | an SSP
- +---------------------------------------------------------------+ route
- | Subnet Mask | entry
- +---------------------------------------------------------------+
- | All 0 |
- +---------------------------------------------------------------+
- | Metric |
- +---------------+---------------+-------------------------------+ ----
- | Address Family Identifier | All 0 |
-
- Figure 11 SSP packet format
-
- The maximum packet size is 512 octet. The first four octets is the
- SSP header. The remainder of the message is composed of 1 - 25 route
- entries. Each entry is 20 octets long.
-
- 5.1.2 SSP Header
-
- SSP header consists of a command field and a version field. The
- command field is one octet long and holds one of the following
- values;
-
- 1 - request A request to send all or part of SSP routing table.
-
- 2 - response A message containing all, or a part of the sender's
- SSP routing table. This message may be sent in
- response to a request, or it may be an update
- message generated by the sender.
-
- The Version field indicates the version of SSP being used. The
- current version number is 1.
-
- 5.1.3 SSP Route Entries
-
- Each entry has an address family identifier. It indicates an
- attribute of the entry. SSP routing protocol uses 2 as its identifier
- by default. The identifier 0 indicates unspecified. This value is
- used when a switch requests other switches to send the entire SSP
- routing table. A recipient of the message SHOULD ignore all entries
- with unknown value.
-
-
-
-
- Murakami & Maruyama Informational [Page 13]
-
- RFC 2174 MAPOS June 1997
-
-
- The HDLC address is a destination address. It may be a switch address
- or a node address. The subsequent subnet mask is applied to the HDLC
- address to yield the switch number portion. The field is 4 octet long
- and the address is placed in the least significant position.
-
- Metric indicates the distance to the destination node. That is, how
- many switches a message must go through en route to the destination
- node. The metric field must contain a value between 1 and 31. The
- metric of 16 indicates that the destination is not reachable and is
- ignored by recipients. The values between 17 and 31 are utilized for
- poisoned reverse with split horizon and also means unreachable. The
- metric 0 indicates the local switch itself.
-
- 5.2 Routing Table
-
- Every switch has an SSP routing table. The table is a collection of
- route entries - one for every destination. An entry consists of the
- following information;
-
- (1) destination : A unicast destination address.
-
- (2) subnet mask : A mask to extract the switch address by applying
- bitwise AND with the destination address
-
- (3) next hop port : The local port number connected to the adjacent
- switch along the path to the destination.
-
- (4) metric : Distance to the destination node. The metric of an
- adjacent switch is 1 and that of local switch is 0.
-
- (5) timers for unicast routing : Timers associated with unicast
- routing such as EXPIRATION_TIMER and GC_TIMER.
-
- (6) flags : Various flags associated with the route such as route
- change flag to indicate that the route has changed recently or it
- has timed out.
-
- (7) bit map routing table for broadcast/multicast : Each bit
- corresponding to the port to an upstream or a downstream switch of
- the spanning tree is marked in addition to the ports to end nodes.
- Broadcast/multicast frames are forwarded only through those ports
- with their corresponding bit set. Since only one spanning tree
- exists at a time in a network, each route entry does not necessarily
- have to have this field.
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 14]
-
- RFC 2174 MAPOS June 1997
-
-
- (8) timers for broadcast/multicast routing : Timers associated with
- broadcast/multicast routing such as FORWARD_DELAY_TIMER and
- PORT_EXPIRATION_TIMER. These timers are prepared for each bit of
- broadcast/multicast routing table.
-
- 5.3 Sending Routing Messages
-
- 5.3.1 Packet Construction
-
- Because of the split horizon with poisoned reverse, a routing message
- differs depending on the adjacent switch to which the message is
- being sent. The upstream switch of a route, that is next hop,
- receives a message which contains the corresponding route with a
- metric between 17 and 31. Switches that are not the upstream switch
- of any route receive the same message. Here, we assume that a packet
- for a routing message is constructed for an adjacent switch which is
- connected through the local port N.
-
- First, set the version field to 1, the current SSP version. Then, set
- the command to "response". Set other fields which are supposed to be
- zero to zero. Next, start filling in entries.
-
- To fill in the entries, perform the following for each route. The
- destination HDLC address, netmask, and its metric are put into the
- entry in the packet. Routes must be included in the packet even if
- their metrics are unreachable(16). If the next hop port is N, 16 is
- added to the metric for split horizon with poisoned reverse.
-
- Recall that the maximum packet size is 512 bytes. When there is no
- more space in a packet, send the current message and start a new one.
- If a triggered update is being generated, only entries whose route
- change flags are set need be included.
-
- 5.3.2 Sending update
-
- Sending update may be triggered in any of the following ways;
-
- (1) Initial Update
-
- When a switch first comes up, it SHOULD send to all adjacent
- switches a request asking for their entire routing tables. The
- destination address is 00000001. When a port comes on-line, the
- request packet is sent to the port. The packet, requesting the
- entire routing table, MUST have at least an entry with the address
- family identifier 0 meaning unspecified.
-
- When a switch receives a request packet, it first checks the version
- number of the SSP header. If it is not 1, the packet is silently
-
-
-
- Murakami & Maruyama Informational [Page 15]
-
- RFC 2174 MAPOS June 1997
-
-
- discarded. Otherwise, the address family identifier is examined. If
- the value is 0, the entire SSP routing table is returned in one or
- more response packets destined to 00000001. Otherwise, the request
- is silently discarded. Although the original RIP specification
- defines the partial routing table request, SSP routing protocol
- omits it for the sake of simplicity.
-
- (2) Periodic Update
-
- Every switch participating in the routing process sends an update
- message (response message) to all its neighbor switches once every
- FULL_UPDATE_TIME (10 seconds). For the periodic update, a response
- packet(s) is used. The destination address is always 00000001. An
- update message contains the entire SSP routing table. The maximum
- packet size is 512byte. Thus, an update message may require several
- packets to be packed.
-
- (3) Triggered Update
-
- When a route in the unicast routing table is changed or a local port
- goes down, the switch advertises a triggered update packet without
- waiting for the full update time. The difference between triggered
- update and the other update is that triggered updates do not have to
- include the entire routing table. Only changed entries should be
- included. Triggered update may be suppressed if a regular periodic
- update is due.
-
- Note that when a route is advertised as unreachable (metric 16) by
- an adjacent switch, update process is triggered as well as
- expiration of the route in the local switch.
-
- (4) On Termination
-
- When a switch goes down, it is desirable to advertise all the routes
- with metric 16, that is, unreachable.
-
- 5.4 Receiving Routing Messages
-
- When a switch receives an update, it first checks the version number.
- If it is not 1, the update packet is silently discarded. Otherwise,
- it processes the entries in it one by one.
-
-
-
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 16]
-
- RFC 2174 MAPOS June 1997
-
-
- For each entry, the address family identifier is checked. If it is
- not 2, the entry is ignored. Otherwise, the metric is checked. The
- value should be between 0 and 31. An entry with illegal metric is
- ignored. Next, the HDLC address and the subnet mask is checked. An
- entry with an invalid address such as broadcast is ignored. If the
- entry passed all these validation checks, it is processed according
- to the following steps;
-
- Step 1 - Process Poisoned Reverse
-
- If the metric value is between 0 and 16, it is an unicast
- information. Go ahead to Step 2.
-
- If the metric value is between 17 and 31, it indicates poisoned
- reverse, that the local switch has been chosen as the next hop for
- the route. However, if the corresponding entry is not included in the
- current routing table or the message is from a port connected to its
- upstream switch, the message is illegal -- ignore it and return to
- Step 1 to process the next entry. Otherwise,
-
-
- (1) Initialize the PORT_EXPIRATION_TIMER corresponding to the
- downstream port.
- (2) Operate the FORWARD_DELAY_TIMER as follows;
- (2-1) If the broadcast/multicast forwarding was already
- enabled, go to (3).
- (2-2) If the FORWARD_DELAY_TIMER corresponding to the
- downstream port was already started, increment the
- timer. If the timer expires, mark the bit in the
- broadcast/multicast routing table corresponding to the
- port and stop the timer.
- (2-2) Otherwise, start the FORWARD_DELAY_TIMER.
- (3) Return to Step 1 to process the next entry.
-
- Step 2 - Process Unicast Routing Information
-
- First, add the cost associated with the link, usually 1, to the
- metric. If the result is greater than 16, 16 is used. Then, look up
- the unicast routing table for the corresponding entry. There are two
- cases.
-
- Case 1 no corresponding entry is found
-
- If the new metric is 16, return to step 1 to process the next
- entry. Otherwise,
- (1) Create a new route entry in the routing table
- (2) Initialize EXPIRATION_TIMER and GC_TIMER
-
-
-
-
- Murakami & Maruyama Informational [Page 17]
-
- RFC 2174 MAPOS June 1997
-
-
- (3) The port corresponding to the new route is the next_hop port
- for the route. Thus, mark the bit in the broadcast/multicast
- routing table corresponding to the new next_hop port and
- start FORWARD_DELAY_TIMER. If this new route is for the
- switch with the minimum switch number, select it as the VSS
- and use its broadcast/multicast routing table. (See NOTE 1.)
- (4) Set the route change flag and invoke triggered update process
- (5) Return to step 1 to process the next entry.
-
- [NOTE 1]
- There are two implementations;
- (1) Prepare a spanning tree for each route and use
- only one corresponding to the current VSS. In this
- case, each unicast route entry has a broadcast/unicast
- routing table.
- (2) Prepare only one spanning tree corresponding to the
- current VSS. In this case, a switch has only one
- broadcast/multicast routing table.
- In this document, the former is assumed.
-
- Case 2. A corresponding entry is found
-
- In this case, the update message is processed differently
- according to the new metric value.
-
- (a) new_metric < 16 & new_metric > current_metric
-
- (1)If and only if the update is from the same port(next_hop
- port) as the existing one,
- (1-1) Update the entry
- (1-2) Initialize EXPIRATION_TIMER and GC_TIMER
-
- (2) If the corresponding bit to the port, which the update
- message is received, is marked in the broadcast/multicast
- routing table, clear the bit.
- (3) Return to Step 1 and process the next entry.
-
- (b) new_metric < 16 & new_metric < current_metric
-
- (1) Update the entry and clear the bit in the
- broadcast/multicast routing table corresponding to the old
- next_hop port.
- (2) Initialize EXPIRATION_TIMER, GC_TIMER, and
- PORT_EXPIRATION_TIMER for the new next_hop port.
- (3) Mark a bit in the broadcast/multicast routing table
- corresponding to the new next_hop port and start
- FORWARD_DELAY_TIMER.
-
-
-
-
- Murakami & Maruyama Informational [Page 18]
-
- RFC 2174 MAPOS June 1997
-
-
- (4) Set the route change flag and invoke triggered update with
- poisoned reverse for the new next_hop.
- (5) Return to Step 1 to process the next entry.
-
- (c) new_metric < 16 & new_metric = current_metric
-
- If a new route with the same metric value as the existing
- routing table entry is received, use the old one as follows;
-
- (1) If the new next hop is equal to the current one,
- initialize EXPIRATION_TIMER and GC_TIMER. Otherwise,
- ignore this update.
- (2) If the bit corresponding to the port, from which the
- update message was received, is marked in the
- broadcast/multicast routing table, clear the bit.
- (3) Return to Step 1 to process the next entry.
-
- (d) the new metric = 16 & the new next hop = the current one
-
- If the current metric is not equal to 16, this is a new
- unreachable information. Then,
- (1) Update the entry and clear the bit in the
- broadcast/multicast routing table corresponding to the old
- next_hop port.
- (2) If this route is for the current VSS, select a new VSS in
- the valid routing table entries. Valid means that the
- destination is reachable.
- (3) Set the route change flag and invoke triggered update
- process to notify the unreachable route.
- Otherwise,
- do nothing and return to Step 1 to process the next entry.
-
- (e) the new metric = 16 & the new next hop /= the current one
-
- (1) If the bit corresponding to the port, from which the
- update message was received, is marked in the
- broadcast/multicast routing table, clear the bit.
- (2) Return to Step 1 to process the next entry.
-
-
-
-
-
-
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 19]
-
- RFC 2174 MAPOS June 1997
-
-
- 5.5 Timers
-
- The timer routine increments the following timers and executes its
- associated process on their expiration.
-
- (1) EXPIRATION_TIMER and GC_TIMER
-
- The EXPIRATION_TIMERs and GC_TIMERs of each entry in the unicast
- routing table are incremented every FULL_UPDATE_TIME (10 seconds by
- default). When a EXPIRATION_TIMER expires, the metric is changed to
- unreachable(16), update process is triggered, and GC_TIMER is
- started. When a GC_TIMER expires, the entry is deleted from the
- local routing table. EXPIRATION_TIMER and GC_TIMER are cleared every
- time a switch receives a routing update.
-
- (2) FORWARD_DELAY_TIMER
-
- FORWARD_DELAY_TIMER is completely handled in the receive process and
- has no relation to the timer routine.
-
- (3) PORT_EXPIRATION_TIMER
-
- PORT_EXPIRATION_TIMERs associated with each bit in the
- broadcast/multicast routing table are incremented every
- FULL_UPDATE_TIME (10 seconds by default). When the timer expires,
- the corresponding downstream switch is considered to be down and the
- corresponding bit in the broadcast/multicast routing table is
- cleared. This timer is cleared by the receive process every time a
- poisoned reverse packet is received from the corresponding switch.
-
- 6. Further considerations on implementation
-
- 6.1 Port State
-
- A switch assumes that every port is connected to a switch initially.
- Thus, it sends update packets to every port. When a node is connected
- to a port, the switch recognizes it by receiving an NSP request
- packet, and stops sending SSP packets to the port. Whenever a switch
- detects a connection failure such as loss of signal and out-of-
- synchronization, it should clear the internal state table
- corresponding of the port.
-
- 6.2 Half way connection problem
-
- A port consists of two channels, transmit and receive. Although it is
- easy for a node or a switch to detect a receive channel failure,
- transmit channel failure may not be detected, causing half way
- connection. This results in a black hole.
-
-
-
- Murakami & Maruyama Informational [Page 20]
-
- RFC 2174 MAPOS June 1997
-
-
- Thus, whenever a switch receives a SSP update packet from a port, it
- SHOULD check the status of the corresponding transmit channel.
- SONET/SDH has a feedback mechanism for that purpose. The status of
- the local transmit channel received at the remote end can be sent
- back utilizing the overhead part, FEBE(Far End Block Error) and
- FERF(Far End Receive Failure), of the corresponding receive channel.
- If the signals indicates that the transmit channel has a problem, the
- SSP packet received from the remote end should be silently discarded.
- However, some SONET/SDH services do not provide path overhead
- transparency.
-
- Although, SONET/SDH APS(Automatic Protection Switching) can be
- utilized to switch service from a failed line to a spare line, the
- function is out of scope of this protocol.
-
- 7. Security Considerations
-
- Security issues are not discussed in this memo.
-
- References
-
- [1] Murakami, K. and M. Maruyama, "MAPOS - Multiple Access Protocol
- over SONET/SDH Version 1," RFC2171, June 1997.
-
- [2] CCITT Recommendation G.707: Synchronous Digital Hierarchy Bit
- Rates, 1990.
-
- [3] CCITT Recommendation G.708: Network Node Interface for
- Synchronous Digital Hierarchy, 1990.
-
- [4] CCITT Recommendation G.709: Synchronous Multiplexing Structure,
- 1990.
-
- [5] American National Standard for Telecommunications - Digital
- Hierarchy - Optical Interface Rates and Formats Specification,
- ANSI T1.105-1991.
-
- [6] Hedrick, C., "Routing Information Protocol", STD 34, RFC 1058,
- Rutgers University, June 1988.
-
- [7] Malkin, G., "RIP Version 2 - Carrying Additional Information ",
- RFC1723, Xylogics, Inc., November 1994.
-
- [8] Pusateri, T., "Distance Vector Multicast Routing Protocol",
- September 1996, Work in Progress.
-
- [9] Murakami, K. and M. Maruyama, "A MAPOS version 1 Extension -
- Node Switch Protocol," RFC2173, June 1997.
-
-
-
- Murakami & Maruyama Informational [Page 21]
-
- RFC 2174 MAPOS June 1997
-
-
- [10] Maruyama, M. and K. Murakami, "MAPOS Version 1 Assigned
- Numbers," RFC2172, June 1997.
-
- Acknowledgements
-
- The authors would like to acknowledge the contributions and
- thoughtful suggestions of John P. Mullaney, Clark Bremer, Masayuki
- Kobayashi, Paul Francis, Toshiaki Yoshida, Takahiro Sajima, and
- Satoru Yagi.
-
- Authors' Address
-
- Ken Murakami
- NTT Software Laboratories
- 3-9-11, Midori-cho
- Musashino-shi
- Tokyo 180, Japan
- E-mail: murakami@ntt-20.ecl.net
-
- Mitsuru Maruyama
- NTT Software Laboratories
- 3-9-11, Midori-cho
- Musashino-shi
- Tokyo 180, Japan
- E-mail: mitsuru@ntt-20.ecl.net
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Murakami & Maruyama Informational [Page 22]
-
-