RFC 2173

A MAPOS version 1 Extension - Node Switch Protocol

πŸ“… published June 1997, from ietf

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