rfc2174.txt
来自「RFC 的详细文档!」· 文本 代码 · 共 1,236 行 · 第 1/4 页
TXT
1,236 行
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
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?