📄 rfc2174.txt
字号:
RFC 2174 MAPOS June 19974.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 Messages5.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 silentlyMurakami & 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
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -