RFC 3293
General Switch Management Protocol (GSMP) Packet Encapsulations for Asynchronous Transfer Mode (ATM), Ethernet and Transmission Control Protocol (TCP)
RFC 3293: General Switch Management Protocol (GSMP) Packet Encapsulations for Asynchronous Transfer Mode (ATM), Ethernet and Transmission Control Protocol (TCP) π¦
- RFC number: 3293
- Category: Standards Track
- Date: June 2002
- Authors: A. Doria (Lulea University of Technology), J. Buerkle (Nortel Networks), T. Worster
- Network Working Group
- Obsoletes / Updates: The title block doesn't list any RFCs that this one obsoletes or updates.
Status of this Memo β¨
Okay so this doc is an Internet standards track protocol spec for the Internet community, and it's basically inviting everyone to talk about it and suggest improvements π«Ά. If you want the official standardization state, check the current edition of "Internet Official Protocol Standards" (STD 1). And yes, distribution is totally unlimited, so share away π .
Copyright Notice πΈ
Copyright (C) The Internet Society (2002). All Rights Reserved.
Abstract π
This memo is all about how GSMP (General Switch Management Protocol) packets get wrapped up for transport over ATM (Asynchronous Transfer Mode), Ethernet and TCP (Transmission Control Protocol). It's giving packaging π.
Specification of Requirements π₯
Okay the key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document get read the way RFC 2119 [7] describes. Those are the official vibes-check words π .
1. Introduction π¦
So GSMP messages are defined in [1], and they MAY be encapsulated in a few different protocols for transport π§. This memo covers their encapsulation in ATM AAL-5, in Ethernet, or in TCP. Other encapsulations might get defined in future specs, so stay tuned π.
2. ATM Encapsulation π
Okay, so GSMP packets are variable length. On an ATM data link layer, they get encapsulated directly in an AAL-5 CPCS-PDU [3][4], with an LLC/SNAP header. Here's the picture:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LLC (0xAA-AA-03) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +
| SNAP (0x00-00-00-88-0C) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ GSMP Message ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pad (0 - 47 bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ AAL-5 CPCS-PDU Trailer (8 bytes) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Quick number-reading lesson π€. The convention in Internet Protocol docs [5] is decimal. Hex numbers get a 0x in front, and binary numbers get a 0b in front. Data is drawn in "big-endian" order, which means you read fields left to right, with the most significant byte on the left and the least significant on the right. Bytes get sent in the normal English reading order, and in a numeric byte the bit labelled 0 is the most significant bit. For multi-byte fields, the leftmost bit of the whole field is the most significant one, and the most significant byte is the one that goes out first. This is the same coding convention the ATM layer [2] and AAL-5 [3][4] use, so everyone's on the same page β¨.
The LLC/SNAP header holds these bytes: 0xAA 0xAA 0x03 0x00 0x00 0x00 0x88 0x0C. (0x880C is the Ethertype assigned to GSMP π.)
The maximum transmission unit (MTU) of the GSMP Message field is 1492 bytes.
The virtual channel that a GSMP session runs over, between a controller and the switch it controls, is called the GSMP control channel. By default, on an ATM data link layer for LLC/SNAP encapsulated GSMP messages, it's:
VPI = 0
VCI = 15.
The GSMP control channel MAY be changed using the GSMP MIB π.
3. Ethernet Encapsulation π
GSMP packets MAY be encapsulated on an Ethernet data link, and it looks like this:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ethertype (0x88-0C) | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
~ GSMP Message ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sender Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Receiver Instance |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pad |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Frame Check Sequence |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Destination Address π
For the SYN message of the adjacency protocol, the Destination Address is the broadcast address 0xFFFFFFFFFFFF. (You can also configure the node with the unicast 48-bit IEEE MAC address of the destination instead, and then that configured unicast Destination Address is what goes in the SYN message.) For every other message, the Destination Address is the unicast 48-bit IEEE MAC address of the destination. You can work that address out from the Source Address field of messages you receive while the adjacency protocol is syncing up π§.
Source Address π«Ά
For all messages, the Source Address is the 48-bit IEEE MAC address of the sender.
Ethertype π
The Ethertype assigned to GSMP is 0x880C.
GSMP Message π
The MTU of the GSMP Message field is 1492 bytes.
Sender Instance π₯
This is the Sender Instance number for the link, and it comes from the adjacency protocol. It's already in the adjacency protocol message. It gets tacked onto every non-adjacency GSMP message in the Ethernet encapsulation, as extra protection against corrupt state sneaking in π.
Receiver Instance π
The Receiver Instance number is what the sender thinks the current instance number for the link is. The entity at the far end of the link allocated it. This field is already in the adjacency protocol message, and it also gets appended to every non-adjacency GSMP message in the Ethernet encapsulation, for the same extra protection against corrupt state π .
Pad πΈ
Once adjacency is established, the minimum length of an Ethernet packet's data field is 46 bytes. If needed, padding should be added so the frame hits the minimum Ethernet frame size. That padding should be bytes of zero, and it isn't counted as part of the GSMP message π.
Frame Check Sequence β¨
The Frame Check Sequence (FCS) is defined in IEEE 802.3 [6], and here's how it's described there:
Note: This section is included for informational and historical purposes only. The normative reference can be found in IEEE 802.3 Standard [6].
"A cyclic redundancy check (CRC) is used by the transmit and
receive algorithms to generate a CRC value for the FCS field.
The frame check sequence (FCS) field contains a 4-byte (32-bit)
cyclic redundancy check (CRC) value. This value is computed as
a function of the contents of the source address, destination
address, length, LLC data and pad (that is, all fields except
the preamble, SFD, FCS and extension). The encoding is defined
by the following generating polynomial.
G(x)=x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^
7+x^5+x^4+x^2+x^1."
The CRC calculation procedure is in [6] π€.
After the adjacency protocol has synced up, the receiver must check every GSMP message that comes in over Ethernet. It checks the Source Address from the Ethernet MAC header, the Sender Instance, and the Receiver Instance. The incoming message must be thrown out if the Sender Instance and the Source Address don't match the Sender Instance and Sender Name stored by the "Update Peer Verifier" operation of the GSMP adjacency protocol. It also has to be dropped if it arrives over any port other than the one where the adjacency protocol achieved synchronisation. And if the Receiver Instance field doesn't match the current Sender Instance value of the GSMP adjacency protocol, the message gets discarded too π«.
4. TCP/IP Encapsulation π
When GSMP messages go over an IP network, they MUST be transported using the TCP encapsulation π. TCP is the reliable one: it gives you reliable transport, network flow control, and end-system flow control, which is exactly what you want on networks with high loss and variable or unpredictable delay π¦.
For TCP encapsulations of GSMP messages, the controller runs the client code and the switch runs the server code. When the switch initialises, it's listening on GSMP's TCP port number, which is 6068 π. The controller opens a TCP connection with each switch it manages. The switch under control MUST be a multi-connection server (PORT 6068) so it can handle multiple control sessions from N GSMP controller instances π«Ά. After the TCP connection is up, the controller sends adjacency protocol messages to the switch. Those are the messages that sync the controller and switch and keep the handshakes going β¨. GSMP messages other than adjacency protocol messages MUST NOT be sent until the adjacency protocol has achieved synchronisation π. The actual GSMP message flow happens on other ports.
4.1 Message Formats β¨
okay bestie, so GSMP messages travel over a TCP connection π«Ά. The main thing to know: a GSMP message only gets processed once it has been entirely received π . No half-baked messages allowed. Each one also gets a four-byte TLV header slapped on the front so the receiver can tell where one message ends and the next starts inside the TCP stream π¦.
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type (0x88-0C) | Length |
|-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
~ GSMP Message ~
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Let's break down the two fields π:
Type: a 2-byte field holding the type code of the message that follows. For GSMP it's0x88-0C, which is the same as GSMP's Ethertype π.Length: a 2-byte unsigned integer for the total length of the GSMP message only. It does not include the 4-byte TLV header π.
4.2 TCP/IP Security consideration π
Okay, this part is serious, so listen up π. When GSMPv3 gets used on IP networks, security between the controller and the client MUST be available and MUST be provided by IP Security [IPSEC]. On top of that, the IPSEC Encapsulation Security Payload (ESP) MUST be used to give you both integrity and confidentiality. No skipping it, bestie π.
5. Security Considerations π
This is the big one, so I'm going dramatic π. The security of GSMP's TCP/IP control channel was already covered in Section 4.2. For every use of GSMP over an IP network, it is REQUIRED that GSMP runs over TCP/IP with the security considerations from Section 4.2. Security for ATM and Ethernet encapsulations MAY be provided at the link layer πΈ. Digging into those methods is beyond the scope of this spec, so that's a story for another day. Last but not least, for secure operation over any media, the IP encapsulation with IPsec SHOULD be used π₯.
References π
- [1] Doria, A., Sundell, K., Hellstrand, F. and T. Worster, "General Switch Management Protocol (GSMP) V3", RFC 3292, June 2002.
- [2] "B-ISDN ATM Layer Specification," International Telecommunication Union, ITU-T Recommendation I.361, Feb. 1999.
- [3] "B-ISDN ATM Adaptation Layer (AAL) Specification," International Telecommunication Union, ITU-T Recommendation I.363, Mar. 1993.
- [4] "B-ISDN ATM Adaptation Layer specification: Type 5 AAL", International Telecommunication Union, ITU-T Recommendation I.363.5, Aug. 1996.
- [5] Reynolds, J., Editor, "Assigned Numbers", RFC 3232, January 2002.
- [6] IEEE Std 802.3, 1998 Edition "Information technology-Telecommunications and information exchange between systems - Local and metropolitan area networks - Specific requirements - Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications"
- [7] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
Authors' Addresses π§
Tom Worster
Phone: +1 617 247 2624
EMail: fsb@thefsb.org
Avri Doria
Div. of Computer Communications
Lulea University of Technology
S-971 87 Lulea
Sweden
Phone: +1 401 663 5024
EMail: avri@acm.com
Joachim Buerkle
Nortel Networks Germany GmbH & Co. KG
Hahnstr. 37-39
60528 Frankfurt am Main
Germany
EMail: Joachim.Buerkle@nortelnetworks.com
Full Copyright Statement π
Copyright (C) The Internet Society (2002). All Rights Reserved.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Acknowledgement π«Ά
Funding for the RFC Editor function is currently provided by the Internet Society.
π¦ where this page comes from
- ietf: rfc3293 2002-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms