Definitions of Managed Objects for the General Switch Management Protocol (GSMP)
updated by
- rfc-9141 — Updating References to the IETF FTP Service
Extracted elements (27)
gsmpSessionDown is not a substitute for polling session statistic counts: counter values in the notification may have wrapped during the session and cannot be assumed to represent complete totals for the session's lifetime.
The GSMP MIB scope explicitly excludes information learned via the protocol (e.g., 'all ports config'), relationships between virtual and physical entities, and management of switch partitions. These boundaries keep the MIB focused on configuring, monitoring, and maintaining the GSMP protocol entity itself.
The GSMP notification map in each entity table is not a duplication of the SNMP notification originator filter (RFC 2573), but a complement that configures the relationship between GSMP events and SNMP notifications within the GSMP agent itself. SNMP notifications and GSMP events operate on different timescales; without agent-level filtering, events like invalid label in an ATM switch could cause mass SNMP notification flooding.
This MIB is specified as SMIv2-compliant; a MIB conforming to SMIv1 can be produced through translation, but Counter64 objects will be omitted (no translation possible) and some machine-readable information will be converted to textual descriptions, without changing MIB semantics.
All GSMP messages pertaining to a session after it reaches established state SHALL be counted by gsmpSessionStatSentMessages and gsmpSessionStatReceivedMessages, including adjacency protocol messages and failure response messages.
Entities configured by means other than SNMP (e.g., CLI) SHOULD be represented as entries in the MIB tables and SHOULD be possible to query, and MAY be possible to alter with SNMP.
For TCP/IP encapsulation, implementations are only REQUIRED to support unknown(0) and IPv4 addresses in gsmpTcpIpEncapAddressType; zone-index and IPv6 address support is optional. DNS domain names for Internet addresses are not allowed.
If a new GSMP encapsulation type is added to extend this MIB, it SHOULD be done in the form of a new table with the entity ID as an index, and a row in that table SHOULD be created before any row in a GSMP entity table using the new encapsulation.
The creation order (encapsulation table row first, then entity table row) SHOULD be used by all GSMP managers to avoid clash situations in multiple SNMP manager scenarios where different managers may create competing entries.
The gsmpGeneralGroup (gsmpSessionTable objects) is MANDATORY for all GSMP implementations; gsmpControllerGroup is mandatory for Switch Controllers, gsmpSwitchGroup for Switches, gsmpAtmEncapGroup if ATM is used, and gsmpTcpIpEncapGroup if TCP/IP is used.
Warning messages SHALL NOT be counted in gsmpSessionStatFailureInds or gsmpSessionStatReceivedFailures; only messages with an actual failure indication are counted.
When the Ethernet encapsulation is used, the entity ID MUST be the IEEE 802 MAC address of the interface on which the GSMP session is to be set up.
gsmpAtmEncapTable holds ATM AAL5 encapsulation data for Controller or Switch entities using ATM, specifying the InterfaceIndex, VPI (default 0), and VCI (default 15) for the GSMP control channel over LLC/SNAP.
gsmpControllerNotificationMap and gsmpSwitchNotificationMap are BITS objects with 10 named bits (sessionDown, sessionUp, sendFailureIndication, receivedFailureIndication, portUpEvent, portDownEvent, invalidLabelEvent, newPortEvent, deadPortEvent, adjacencyUpdateEvent) controlling which GSMP events trigger SNMP notifications; default enables first four bits.
gsmpControllerTable represents Switch Controller Entities; each row configures a potential GSMP session. Indexed by gsmpControllerEntityId (a 48-bit GsmpNameType), the table holds adjacency parameters including max GSMP version, timer, port, instance number, partition type/ID, resync flag, notification map, session state, storage type, and row status.
gsmpSessionDown notification carries final accounting statistics (start uptime, sent/received message counts, failure indication counts, and all event counts) when a session terminates, enabling accounting applications to capture final counter values.
gsmpSessionTable provides read-only monitoring of established or in-progress GSMP sessions, indexed by (gsmpSessionThisSideId, gsmpSessionFarSideId). It reports the negotiated version, timer, partition ID, adjacency count, far-side name/port/instance, last failure code, discontinuity time, start uptime, and per-session counters for sent/received messages and all GSMP event types.
gsmpSwitchTable represents Switch Entities; each row configures a potential GSMP session on the switch side. Fields include max version, timer, switch name (first 3 octets must be OUI), port, instance number, partition type/ID, notification map, switch type (16-bit manufacturer field), window size, session state, storage type, and row status.
gsmpTcpIpEncapTable holds TCP/IP encapsulation data for Controller or Switch entities using TCP, specifying InetAddressType, InetAddress (IPv4 or IPv6 peer address), and TCP port number (default 6068).
Ten GSMP notifications are defined: gsmpSessionDown, gsmpSessionUp, gsmpSentFailureInd, gsmpReceivedFailureInd, gsmpPortUpEvent, gsmpPortDownEvent, gsmpInvalidLabelEvent, gsmpNewPortEvent, gsmpDeadPortEvent, and gsmpAdjacencyUpdateEvent — each enabled or disabled via the notification map bitmask.
This document registers the GSMP-MIB module under mib-2 (OID { mib-2 98 }), with sub-arcs for gsmpNotifications (0), gsmpObjects (1), gsmpNotificationsObjects (2), and gsmpConformance (3).
The GSMP MIB contains writable objects (e.g., gsmpControllerRowStatus, gsmpSwitchRowStatus, encapsulation table entries) whose unauthorized modification could disrupt GSMP sessions and switch control. Implementations MUST use SNMPv3 with authentication and privacy (USM, RFC 2574) or equivalent security to protect these objects from unauthorized access.
GSMP session state is tracked by gsmpControllerSessionState and gsmpSwitchSessionState with four values: null(1), synsent(2), synrcvd(3), estab(4). The NULL state is returned when encapsulation is not yet configured, the row is not active, or the session is in NULL state per the GSMP specification.
GsmpLabelType is a TLV-encoded OCTET STRING: 2-octet Type field, 2-octet Length field, followed by a variable-length Value field. Multiple stacked labels may compose a single label field.
GsmpNameType is a 48-bit (6-octet) OCTET STRING used as the entity identifier; a 48-bit IEEE 802 MAC address may be used if available.
GsmpPartitionIdType is an 8-bit (1-octet) OCTET STRING. It may be subdivided; for example, 6 bits for partition number and 2 bits for sub-identifier to support 64 partitions with 4 IDs each.
gsmpSwitchSwitchType is a 2-octet (16-bit) OCTET STRING allocated by the switch manufacturer to identify the product; combined with the OUI from the Switch Name it uniquely identifies the product.