RFC 2173
A MAPOS version 1 Extension - Node Switch Protocol
RFC 2173: A MAPOS version 1 Extension - Node Switch Protocol π¦
okay bestie, this one is by Ken Murakami and Mitsuru Maruyama from NTT Laboratories π. It's dated June 1997 and filed as Category: Informational π, so it's giving info, not a standard. Its header has no Obsoletes or Updates line, so it isn't replacing or changing any other RFC β¨.
Status of this Memo πΈ
okay so this memo just provides information for the Internet community π«Ά. It does not specify an Internet standard of any kind, and distribution is unlimited, so share away π .
Abstract β¨
this doc describes a MAPOS extension called Node Switch Protocol (NSP) π¦, which handles automatic node address assignment. MAPOS is a multiple access protocol for sending network-protocol datagrams inside High-Level Data Link Control (HDLC) frames over SONET/SDH π. NSP automates the HDLC address configuration for each node, so a node gets its HDLC address from the switch it's plugged into π. no more manual address config, bestie π.
1. Introduction π
so MAPOS[1] is short for Multiple Access Protocol over SONET(Synchronous Optical Network)/SDH(Synchronous Digital Hierarchy)[2][3][4][5] π. It's a protocol for sending HDLC frames over SONET/SDH. a SONET switch gives each node multiple access capability π . in MAPOS, every node has a unique HDLC address inside its switch, and that address is the same as the port number of the switch the node is connected to π.
this document describes NSP, an extension to MAPOS that enables automatic HDLC address assignment β¨. first it explains MAPOS addressing, then it walks through how NSP does the automatic node address assignment π§.
2. Node Address Format π
this section covers the MAPOS Version 1 address format in both single-switch and multi-switch environments π.
2.1 Address Format
in a MAPOS network, each end node has a unique HDLC address π. as Figure 1 shows, the address is 8 bits long. the LSB is always 1, which marks the end of the field π«Ά. when a SONET switch gets an HDLC frame, it forwards the frame based on the address in the frame header π₯.
for unicast, the MSB is 0 and the rest of the bits are the port number the node is connected to π¦. since the LSB is always 1, the minimum and maximum addresses are 0x01 and 0x7F π . address 0x01 is reserved and is assigned to the control processor in a SONET switch π.
for broadcast, the MSB is 1 and the rest of the bits are all 1s π. for multicast, the MSB is 1 and the rest of the bits, except the LSB, indicate the group address β¨.
+-------------+-+
| | | | | | | | |
| |port number|1|
+-+-----------+-+
^ ^
| |
| +------- EA bit (always 1)
|
1 : broadcast, multicast
0 : unicast
Figure 1 Address format
2.2 Address in multi-switch environment
in a multi-switch environment, variable-length subnet addressing is used π§. every switch has a switch number that is unique within the system π. subnetted node addresses are made of the switch number plus the port number the node is connected to π. the unicast format is 0 <switch number> <node number> 1, the broadcast address is all 1, and the multicast format is 1 <group address> 1 π
.
the address 0x01 is reserved and is assigned to the control processor in the "local" switch π. that means it points at the switch the node is connected to, the switch itself π«Ά. addresses of the form 0 <switch number> <all 0> 1 are reserved, and they point at the control processor of the switch with that switch number π¦.
in Figure 2, the switch numbers are two bits long πΈ. node N1 is connected to port 0x3 of switch S1, which is numbered 0x1 (01 in binary), so its address is 0 + 01 + 00011, which is 00100011(0x23) π₯. node N3 has the address 01001001(0x49), because switch S2 is numbered 0x2 (10 in binary) and the port number is 0x09 β¨. notice that every port number is odd, since the LSBs are always 1 π.
+------+
| node |
| N1 |
+------+
| 00100011(0x23)
|
|0x3 |0x3
+------+ +---+----+ +---+----+ +------+
| node +----+ SONET +-------+ SONET +-----+ node |
| N2 | 0x5| Switch |0x9 0x5| Switch |0x9 | N3 |
+------+ | S1 | | S2 | +------+
00100101(0x25) | 0x1 | | 0x2 | 01001001(0x49)
+---+----+ +---+----+
|0x7 |0x7
Figure 2 Addressing in Multiple Switch Environment
4 NSP(Node-Switch Protocol) π
this section covers the NSP protocol used for automatic node address assignment π.
4.1 NSP protocol
NSP exists to give MAPOS version 1 an automatic node address assignment function π§. it cuts down the admin work of configuring each node's address and stops problems like address inconsistency and collisions π . when a node is connected to a switch and receives the SONET signal correctly, it sends an address request packet to the control processor in the local switch π¦. the destination address of that packet is 00000001(0x01) π. when the control processor gets the packet, it replies with an address assignment packet, and the destination of that reply is the assigned node address β¨. if the node doesn't get the address assignment packet within 5 seconds, it retransmits the address request packet π. retransmission keeps going until the node successfully receives the address assignment packet π.
whenever a node detects a transmission error, like carrier loss or out-of-synchronization, it SHOULD send an address request packet to the control processor and verify its current address π. on top of that, a node MUST verify its address by sending address request packets every 30 seconds π«Ά. the switch treats these as keep-alive packets and uses them to track the node's status π. if it hasn't received a request packet for more than 90 seconds, it assumes the node went down π. it also assumes the node went down when the switch detects a SONET signal failure π₯.
4.2 Packet Format
the HDLC protocol field of an NSP frame contains 0xFE03 (hexadecimal), as defined by the "MAPOS Version 1 Assigned Numbers" [6] π. the information field carries the NSP packet, shown in Figure 3 β¨.
+-----------+------------+
I command I address I
+-----------+------------+
I<- 32bit ->I<- 32 bit ->I
Figure 3 NSP packet format
the command field is 32 bits long and takes these values (in decimal) π:
1 address request
2 address assignment
3 reject(error)
the address field is also 32 bits long π . in address request packets, the NSP address field SHOULD be filled with zeroes, even though the switch ignores it πΈ. in address assignment packets, the assigned address goes in the least significant byte of the field, and the rest of the field is padded with zeroes π§. if the switch can not assign the address for some reason, it replies with a reject command (value 3) π. the value of the address field in that case is undefined π.
4.3 Consideration for special cases
there are two special cases to think about π¦. one is a point-to-point connection without a switch. the other is loop-back, which is a direct connection between the input and the output of the same port π.
4.3.1 point-to-point
in the point-to-point connection shown in Figure 4, a node sends an address request packet to the other node π. the destination address is 00000001(0x01), which is usually a control processor in a switch π. when a node receives the address request, it detects the point-to-point connection by checking both the destination address and the command in the packet π«Ά. then it MUST reply with an address assignment packet π₯. the assigned address MUST be 00000011(0x03) β¨. since both nodes send an address request to each other, both of them end up with address 00000011(0x03) π . any address can be used in a point-to-point environment, so there's no problem even when both nodes have the same address π.
---- address request ----> 0x01
0x03 <---- address assignment ----
+------+ +------+
| node +--------------------------------+ node |
+------+ +------+
0x01 <---- address request ----
---- address assignment ----> 0x03
Figure 4 Point-to-point connection
4.3.2 loop-back
another special case is loop-back, where the output port of a node is simply connected to its own input port, as Figure 5 shows πΈ. here the same mechanism used for point-to-point works without any changes π§. the node sends an address request packet destined to 00000001(0x01), then it receives that same packet π¦. since the destination is 00000001(0x01), it replies with an address assignment packet containing the assigned address 00000011(0x03), sent to the address 0000 0011(0x03) π. so the node ends up with the address 00000011(0x03) π.
---- address request ----> 0x01
+------+ --- address assignment --> 0x03
| +-------------->-----------------+
| node + |
| +--------------<-----------------+
+------+
Figure 5 Loop-back Configuration
5. Security Considerations π
ok this is the dramatic part π, but the memo says security issues are not discussed in this memo. so no security guidance is given here, and that's something to keep in mind π«Ά.
References π
[1]Murakami, K. and M. Maruyama, "MAPOS - Multiple Access Protocol over SONET/SDH, Version 1," RFC-2171, 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]Maruyama, M. and K. Murakami, "MAPOS Version 1 Assigned Numbers," RFC-2172, June, 1997.
Acknowledgements π«Ά
the authors thank John P. Mullaney, Clark Bremer, Masayuki Kobayashi, Paul Francis, Toshiaki Yoshida, and Takahiro Sajima for their contributions and thoughtful suggestions πβ¨.
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
π¦ where this page comes from
- ietf: rfc2173 1997-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms