Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2
SNMP objects for reading and setting serial ports: speeds, framing, error counts and modem signals.
Stewart, B., "Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2", RFC 1659, DOI 10.17487/RFC1659, July 1994, <https://www.rfc-editor.org/info/rfc1659>.
@misc{rfc1659,
series = {Request for Comments},
number = 1659,
howpublished = {RFC 1659},
publisher = {RFC Editor},
doi = {10.17487/RFC1659},
url = {https://www.rfc-editor.org/info/rfc1659},
author = {B. Stewart},
title = {{Definitions of Managed Objects for RS-232-like Hardware Devices using SMIv2}},
pagetotal = 21,
year = 1994,
month = jul,
} RFC text
Contents
Network Working Group B. Stewart
Request for Comments: 1659 Xyplex, Inc.
Obsoletes: 1317 July 1994
Category: Standards Track
Definitions of Managed Objects for RS-232-like Hardware Devices
using SMIv2
Status of this Memo
This document specifies an Internet standards track protocol for the
Internet community, and requests discussion and suggestions for
improvements. Please refer to the current edition of the "Internet
Official Protocol Standards" (STD 1) for the standardization state
and status of this protocol. Distribution of this memo is unlimited.
Table of Contents
1. Introduction ................................................ 1
2. The SNMPv2 Network Management Framework ..................... 1
2.1 Object Definitions ......................................... 2
3. Overview .................................................... 2
3.1 Relationship to Interface MIB .............................. 3
4. Definitions ................................................. 3
5. Acknowledgements ............................................ 20
6. References .................................................. 20
7. Security Considerations ..................................... 21
8. Author's Address ............................................ 21
1. Introduction
This memo defines an extension to the Management Information Base
(MIB) for use with network management protocols in the Internet
community. In particular, it defines objects for the management of
RS-232-like devices.
2. The SNMPv2 Network Management Framework
The SNMPv2 Network Management Framework consists of four major
components. They are:
o RFC 1442 [1] which defines the SMI, the mechanisms used for
describing and naming objects for the purpose of management.
o STD 17, RFC 1213 [2] defines MIB-II, the core set of managed
objects for the Internet suite of protocols.
o RFC 1445 [3] which defines the administrative and other
architectural aspects of the framework.
o RFC 1448 [4] which defines the protocol used for network
access to managed objects.
The Framework permits new objects to be defined for the purpose of
experimentation and evaluation.
2.1. Object Definitions
Managed objects are accessed via a virtual information store, termed
the Management Information Base or MIB. Objects in the MIB are
defined using the subset of Abstract Syntax Notation One (ASN.1)
defined in the SMI. In particular, each object object type is named
by an OBJECT IDENTIFIER, an administratively assigned name. The
object type together with an object instance serves to uniquely
identify a specific instantiation of the object. For human
convenience, we often use a textual string, termed the descriptor, to
refer to the object type.
3. Overview
The RS-232-like Hardware Device MIB applies to interface ports that
might logically support the Interface MIB, a Transmission MIB, or the
Character MIB. The most common example is an RS-232 port with modem
signals.
The RS-232-like Hardware Device MIB is mandatory for all systems that
have such a hardware port supporting services managed through some
other MIB.
The MIB includes multiple similar types of hardware, and as a result
contains objects not applicable to all of those types. The
compliance definitions herein thus have a general group for all
implementations, and separate groups for the different types of
ports, such as asynchronous and synchronous.
The RS-232-like Hardware Port MIB includes RS-232, RS-422, RS-423,
V.35, and other asynchronous or synchronous, serial physical links
with a similar set of control signals.
The MIB contains objects that relate to physical layer connections.
Such connections may provide interesting hardware signals (other than
for basic data transfer), such as RNG and DCD. Hardware ports also
have such attributes as speed and bits per character.
The MIB comprises one base object and four tables, detailed in the
following sections. The tables contain objects for all ports,
asynchronous ports, and input and output control signals.
3.1. Relationship to Interface MIB
The RS-232-like MIB is one of many MIBs designed for layered use as
described in the Interface MIB [5]. In most implementations where it
is present, it will be in the lowest interface sublayer, that is, the
RS-232-like MIB represents the physical layer, providing service to
higher layers such as the Character MIB [6] or PPP MIB [7].
The Interface MIB's ifTestTable and ifRcvAddressTable are not
relevant to the RS-232-like MIB.
The RS-232-like MIB is relevant for ifType values rs232(33), v35(45),
and perhaps others.
The RS-232-like MIB requires the conformance groups ifGeneralGroup,
and ifFixedLengthGroup.
The value of ifSpeed is the same as rs232PortOutSpeed.
Usefulness of error counters in this MIB depends on the octet
counters in ifFixedLengthGroup.
4. Definitions
RS-232-MIB DEFINITIONS ::= BEGIN
IMPORTS
MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
Counter32, Integer32
FROM SNMPv2-SMI
InterfaceIndex
FROM IF-MIB
transmission
FROM RFC1213-MIB
MODULE-COMPLIANCE, OBJECT-GROUP
FROM SNMPv2-CONF;
rs232 MODULE-IDENTITY
LAST-UPDATED "9405261700Z"
ORGANIZATION "IETF Character MIB Working Group"
CONTACT-INFO
" Bob Stewart
Postal: Xyplex, Inc.
295 Foster Street
Littleton, MA 01460
Tel: 508-952-4816
Fax: 508-952-4887
E-mail: rlstewart@eng.xyplex.com"
DESCRIPTION
"The MIB module for RS-232-like hardware devices."
::= { transmission 33 }
-- Generic RS-232-like information
rs232Number OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of ports (regardless of their current
state) in the RS-232-like general port table."
::= { rs232 1 }
-- RS-232-like General Port Table
rs232PortTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rs232PortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of port entries. The number of entries is
given by the value of rs232Number."
::= { rs232 2 }
rs232PortEntry OBJECT-TYPE
SYNTAX Rs232PortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Status and parameter values for a port."
INDEX { rs232PortIndex }
::= { rs232PortTable 1 }
Rs232PortEntry ::=
SEQUENCE {
rs232PortIndex
InterfaceIndex,
rs232PortType
INTEGER,
rs232PortInSigNumber
Integer32,
rs232PortOutSigNumber
Integer32,
rs232PortInSpeed
Integer32,
rs232PortOutSpeed
Integer32,
rs232PortInFlowType
INTEGER,
rs232PortOutFlowType
INTEGER
}
rs232PortIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of ifIndex for the port. By convention
and if possible, hardware port numbers map directly
to external connectors. The value for each port must
remain constant at least from one re-initialization
of the network management agent to the next."
::= { rs232PortEntry 1 }
rs232PortType OBJECT-TYPE
SYNTAX INTEGER { other(1), rs232(2), rs422(3),
rs423(4), v35(5), x21(6) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The port's hardware type."
::= { rs232PortEntry 2 }
rs232PortInSigNumber OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of input signals for the port in the
input signal table (rs232PortInSigTable). The table
contains entries only for those signals the software
can detect and that are useful to observe."
::= { rs232PortEntry 3 }
rs232PortOutSigNumber OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of output signals for the port in the
output signal table (rs232PortOutSigTable). The
table contains entries only for those signals the
software can assert and that are useful to observe."
::= { rs232PortEntry 4 }
rs232PortInSpeed OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The port's input speed in bits per second. Note that
non-standard values, such as 9612, are probably not allowed
on most implementations."
::= { rs232PortEntry 5 }
rs232PortOutSpeed OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The port's output speed in bits per second. Note that
non-standard values, such as 9612, are probably not allowed
on most implementations."
::= { rs232PortEntry 6 }
rs232PortInFlowType OBJECT-TYPE
SYNTAX INTEGER { none(1), ctsRts(2), dsrDtr(3) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The port's type of input flow control. 'none'
indicates no flow control at this level.
'ctsRts' and 'dsrDtr' indicate use of the indicated
hardware signals."
::= { rs232PortEntry 7 }
rs232PortOutFlowType OBJECT-TYPE
SYNTAX INTEGER { none(1), ctsRts(2), dsrDtr(3) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The port's type of output flow control. 'none'
indicates no flow control at this level.
'ctsRts' and 'dsrDtr' indicate use of the indicated
hardware signals."
::= { rs232PortEntry 8 }
-- RS-232-like Asynchronous Port Table
rs232AsyncPortTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rs232AsyncPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of asynchronous port entries. Entries need
not exist for synchronous ports."
::= { rs232 3 }
rs232AsyncPortEntry OBJECT-TYPE
SYNTAX Rs232AsyncPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Status and parameter values for an asynchronous
port."
INDEX { rs232AsyncPortIndex }
::= { rs232AsyncPortTable 1 }
Rs232AsyncPortEntry ::=
SEQUENCE {
rs232AsyncPortIndex
InterfaceIndex,
rs232AsyncPortBits
INTEGER,
rs232AsyncPortStopBits
INTEGER,
rs232AsyncPortParity
INTEGER,
rs232AsyncPortAutobaud
INTEGER,
rs232AsyncPortParityErrs
Counter32,
rs232AsyncPortFramingErrs
Counter32,
rs232AsyncPortOverrunErrs
Counter32
}
rs232AsyncPortIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A unique value for each port. Its value is the
same as rs232PortIndex for the port."
::= { rs232AsyncPortEntry 1 }
rs232AsyncPortBits OBJECT-TYPE
SYNTAX INTEGER (5..8)
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The port's number of bits in a character."
::= { rs232AsyncPortEntry 2 }
rs232AsyncPortStopBits OBJECT-TYPE
SYNTAX INTEGER { one(1), two(2),
oneAndHalf(3), dynamic(4) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The port's number of stop bits."
::= { rs232AsyncPortEntry 3 }
rs232AsyncPortParity OBJECT-TYPE
SYNTAX INTEGER { none(1), odd(2), even(3),
mark(4), space(5) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The port's sense of a character parity bit."
::= { rs232AsyncPortEntry 4 }
rs232AsyncPortAutobaud OBJECT-TYPE
SYNTAX INTEGER { enabled(1), disabled(2) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"A control for the port's ability to automatically
sense input speed.
When rs232PortAutoBaud is 'enabled', a port may
autobaud to values different from the set values for
speed, parity, and character size. As a result a
network management system may temporarily observe
values different from what was previously set."
::= { rs232AsyncPortEntry 5 }
rs232AsyncPortParityErrs OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of characters with a parity error,
input from the port since system re-initialization
and while the port state was 'up' or 'test'."
::= { rs232AsyncPortEntry 6 }
rs232AsyncPortFramingErrs OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of characters with a framing error,
input from the port since system re-initialization
and while the port state was 'up' or 'test'."
::= { rs232AsyncPortEntry 7 }
rs232AsyncPortOverrunErrs OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of characters with an overrun error,
input from the port since system re-initialization
and while the port state was 'up' or 'test'."
::= { rs232AsyncPortEntry 8 }
-- RS-232-like Synchronous Port Table
rs232SyncPortTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rs232SyncPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of asynchronous port entries. Entries need
not exist for synchronous ports."
::= { rs232 4 }
rs232SyncPortEntry OBJECT-TYPE
SYNTAX Rs232SyncPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Status and parameter values for a synchronous
port."
INDEX { rs232SyncPortIndex }
::= { rs232SyncPortTable 1 }
Rs232SyncPortEntry ::=
SEQUENCE {
rs232SyncPortIndex
InterfaceIndex,
rs232SyncPortClockSource
INTEGER,
rs232SyncPortFrameCheckErrs
Counter32,
rs232SyncPortTransmitUnderrunErrs
Counter32,
rs232SyncPortReceiveOverrunErrs
Counter32,
rs232SyncPortInterruptedFrames
Counter32,
rs232SyncPortAbortedFrames
Counter32,
rs232SyncPortRole
INTEGER,
rs232SyncPortEncoding
INTEGER,
rs232SyncPortRTSControl
INTEGER,
rs232SyncPortRTSCTSDelay
Integer32,
rs232SyncPortMode
INTEGER,
rs232SyncPortIdlePattern
INTEGER,
rs232SyncPortMinFlags
Integer32
}
rs232SyncPortIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"A unique value for each port. Its value is the
same as rs232PortIndex for the port."
::= { rs232SyncPortEntry 1 }
rs232SyncPortClockSource OBJECT-TYPE
SYNTAX INTEGER { internal(1), external(2), split(3) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Source of the port's bit rate clock. 'split' means
the tranmit clock is internal and the receive clock
is external."
::= { rs232SyncPortEntry 2 }
rs232SyncPortFrameCheckErrs OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of frames with an invalid frame check
sequence, input from the port since system
re-initialization and while the port state was 'up'
or 'test'."
::= { rs232SyncPortEntry 3 }
rs232SyncPortTransmitUnderrunErrs OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of frames that failed to be
transmitted on the port since system
re-initialization and while the port state was 'up'
or 'test' because data was not available to the
transmitter in time."
::= { rs232SyncPortEntry 4 }
rs232SyncPortReceiveOverrunErrs OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of frames that failed to be received
on the port since system re-initialization and while
the port state was 'up' or 'test' because the
receiver did not accept the data in time."
::= { rs232SyncPortEntry 5 }
rs232SyncPortInterruptedFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of frames that failed to be received
or transmitted on the port due to loss of modem
signals since system re-initialization and while the
port state was 'up' or 'test'."
::= { rs232SyncPortEntry 6 }
rs232SyncPortAbortedFrames OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of frames aborted on the port due to
receiving an abort sequence since system
re-initialization and while the port state was 'up'
or 'test'."
::= { rs232SyncPortEntry 7 }
rs232SyncPortRole OBJECT-TYPE
SYNTAX INTEGER { dte(1), dce(2) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The role the device is playing that is using this port.
dte means the device is performing the role of
data terminal equipment
dce means the device is performing the role of
data circuit-terminating equipment."
DEFVAL { dce }
::= { rs232SyncPortEntry 8 }
rs232SyncPortEncoding OBJECT-TYPE
SYNTAX INTEGER { nrz(1), nrzi(2) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The bit stream encoding technique that is in effect
for this port.
nrz for Non-Return to Zero encoding
nrzi for Non-Return to Zero Inverted encoding."
DEFVAL { nrz }
::= { rs232SyncPortEntry 9 }
rs232SyncPortRTSControl OBJECT-TYPE
SYNTAX INTEGER { controlled(1), constant(2) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The method used to control the Request To Send (RTS)
signal.
controlled when the DTE is asserts RTS each time
data needs to be transmitted and drops
RTS at some point after data
transmission begins.
If rs232SyncPortRole is 'dte', the
RTS is an output signal. The device
will issue a RTS and wait for a CTS
from the DCE before starting to
transmit.
If rs232SyncPortRole is 'dce', the
RTS is an input signal. The device
will issue a CTS only after having
received RTS and waiting the
rs232SyncPortRTSCTSDelay interval.
constant when the DTE constantly asserts RTS."
DEFVAL { constant }
::= { rs232SyncPortEntry 10 }
rs232SyncPortRTSCTSDelay OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The interval (in milliseconds) that the DCE must wait
after it sees RTS asserted before asserting CTS. This
object exists in support of older synchronous devices
that cannot recognize CTS within a certain interval
after it asserts RTS."
DEFVAL { 0 }
::= { rs232SyncPortEntry 11 }
rs232SyncPortMode OBJECT-TYPE
SYNTAX INTEGER { fdx(1), hdx(2), simplex-receive(3),
simplex-send(4) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The mode of operation of the port with respect to the
direction and simultaneity of data transfer.
fdx when frames on the data link can be
transmitted and received at the same
time
hdx when frames can either be received
from the data link or transmitted
onto the data link but not at the
same time.
simplex-receive when frames can only be received on
this data link.
simplex-send when frames can only be sent on this
data link."
DEFVAL { fdx }
::= { rs232SyncPortEntry 12 }
rs232SyncPortIdlePattern OBJECT-TYPE
SYNTAX INTEGER { mark(1), space(2) }
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The bit pattern used to indicate an idle line."
DEFVAL { space }
::= { rs232SyncPortEntry 13 }
rs232SyncPortMinFlags OBJECT-TYPE
SYNTAX Integer32
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The minimum number of flag patterns this port needs in
order to recognize the end of one frame and the start
of the next. Plausible values are 1 and 2."
DEFVAL { 2 }
::= { rs232SyncPortEntry 14 }
-- Input Signal Table
rs232InSigTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rs232InSigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of port input control signal entries
implemented and visible to the software on the port,
and useful to monitor."
::= { rs232 5 }
rs232InSigEntry OBJECT-TYPE
SYNTAX Rs232InSigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Input control signal status for a hardware port."
INDEX { rs232InSigPortIndex, rs232InSigName }
::= { rs232InSigTable 1 }
Rs232InSigEntry ::=
SEQUENCE {
rs232InSigPortIndex
InterfaceIndex,
rs232InSigName
INTEGER,
rs232InSigState
INTEGER,
rs232InSigChanges
Counter32
}
rs232InSigPortIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of rs232PortIndex for the port to which
this entry belongs."
::= { rs232InSigEntry 1 }
rs232InSigName OBJECT-TYPE
SYNTAX INTEGER { rts(1), cts(2), dsr(3), dtr(4), ri(5),
dcd(6), sq(7), srs(8), srts(9),
scts(10), sdcd(11) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Identification of a hardware signal, as follows:
rts Request to Send
cts Clear to Send
dsr Data Set Ready
dtr Data Terminal Ready
ri Ring Indicator
dcd Received Line Signal Detector
sq Signal Quality Detector
srs Data Signaling Rate Selector
srts Secondary Request to Send
scts Secondary Clear to Send
sdcd Secondary Received Line Signal Detector
"
REFERENCE
"EIA Standard RS-232-C, August 1969."
::= { rs232InSigEntry 2 }
rs232InSigState OBJECT-TYPE
SYNTAX INTEGER { none(1), on(2), off(3) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current signal state."
::= { rs232InSigEntry 3 }
rs232InSigChanges OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of times the signal has changed from
'on' to 'off' or from 'off' to 'on'."
::= { rs232InSigEntry 4 }
-- Output Signal Table
rs232OutSigTable OBJECT-TYPE
SYNTAX SEQUENCE OF Rs232OutSigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A list of port output control signal entries
implemented and visible to the software on the port,
and useful to monitor."
::= { rs232 6 }
rs232OutSigEntry OBJECT-TYPE
SYNTAX Rs232OutSigEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Output control signal status for a hardware port."
INDEX { rs232OutSigPortIndex, rs232OutSigName }
::= { rs232OutSigTable 1 }
Rs232OutSigEntry ::=
SEQUENCE {
rs232OutSigPortIndex
InterfaceIndex,
rs232OutSigName
INTEGER,
rs232OutSigState
INTEGER,
rs232OutSigChanges
Counter32
}
rs232OutSigPortIndex OBJECT-TYPE
SYNTAX InterfaceIndex
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of rs232PortIndex for the port to which
this entry belongs."
::= { rs232OutSigEntry 1 }
rs232OutSigName OBJECT-TYPE
SYNTAX INTEGER { rts(1), cts(2), dsr(3), dtr(4), ri(5),
dcd(6), sq(7), srs(8), srts(9),
scts(10), sdcd(11) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Identification of a hardware signal, as follows:
rts Request to Send
cts Clear to Send
dsr Data Set Ready
dtr Data Terminal Ready
ri Ring Indicator
dcd Received Line Signal Detector
sq Signal Quality Detector
srs Data Signaling Rate Selector
srts Secondary Request to Send
scts Secondary Clear to Send
sdcd Secondary Received Line Signal Detector
"
REFERENCE
"EIA Standard RS-232-C, August 1969."
::= { rs232OutSigEntry 2 }
rs232OutSigState OBJECT-TYPE
SYNTAX INTEGER { none(1), on(2), off(3) }
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The current signal state."
::= { rs232OutSigEntry 3 }
rs232OutSigChanges OBJECT-TYPE
SYNTAX Counter32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of times the signal has changed from
'on' to 'off' or from 'off' to 'on'."
::= { rs232OutSigEntry 4 }
-- conformance information
rs232Conformance OBJECT IDENTIFIER ::= { rs232 7 }
rs232Groups OBJECT IDENTIFIER ::= { rs232Conformance 1 }
rs232Compliances OBJECT IDENTIFIER ::= { rs232Conformance 2 }
-- compliance statements
rs232Compliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for SNMPv2 entities
which have RS-232-like hardware interfaces."
MODULE -- this module
MANDATORY-GROUPS { rs232Group }
GROUP rs232AsyncGroup
DESCRIPTION
"The Asynch group is mandatory only for those
SNMPv2 entities which have asynchronous
interfaces Rs-232-like."
GROUP rs232SyncGroup
DESCRIPTION
"The Synch group is mandatory only for those
SNMPv2 entities which have synchronous
interfaces Rs-232-like."
::= { rs232Compliances 1 }
-- units of conformance
rs232Group OBJECT-GROUP
OBJECTS { rs232Number, rs232PortIndex, rs232PortType,
rs232PortInSigNumber, rs232PortOutSigNumber,
rs232PortInSpeed, rs232PortOutSpeed,
rs232PortInFlowType, rs232PortOutFlowType,
rs232InSigPortIndex, rs232InSigName,
rs232InSigState, rs232InSigChanges,
rs232OutSigPortIndex, rs232OutSigName,
rs232OutSigState, rs232OutSigChanges }
STATUS current
DESCRIPTION
"A collection of objects providing information
applicable to all RS-232-like interfaces."
::= { rs232Groups 1 }
rs232AsyncGroup OBJECT-GROUP
OBJECTS { rs232AsyncPortIndex, rs232AsyncPortBits,
rs232AsyncPortStopBits, rs232AsyncPortParity,
rs232AsyncPortAutobaud, rs232AsyncPortParityErrs,
rs232AsyncPortFramingErrs, rs232AsyncPortOverrunErrs }
STATUS current
DESCRIPTION
"A collection of objects providing information
applicable to asynchronous RS-232-like interfaces."
::= { rs232Groups 2 }
rs232SyncGroup OBJECT-GROUP
OBJECTS { rs232SyncPortIndex, rs232SyncPortClockSource,
rs232SyncPortFrameCheckErrs,
rs232SyncPortTransmitUnderrunErrs,
rs232SyncPortReceiveOverrunErrs,
rs232SyncPortInterruptedFrames,
rs232SyncPortAbortedFrames }
STATUS current
DESCRIPTION
"A collection of objects providing information
applicable to synchronous RS-232-like interfaces."
::= { rs232Groups 3 }
rs232SyncSDLCGroup OBJECT-GROUP
OBJECTS { rs232SyncPortRole,
rs232SyncPortEncoding,
rs232SyncPortRTSControl,
rs232SyncPortRTSCTSDelay,
rs232SyncPortMode,
rs232SyncPortIdlePattern,
rs232SyncPortMinFlags }
STATUS current
DESCRIPTION
"A collection of objects providing information
applicable to synchronous RS-232-like interfaces
running SDLC."
::= { rs232Groups 4 }
END
5. Acknowledgements
This memo was produced by the IETF Character MIB Working Group.
6. References
[1] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure
of Management Information for version 2 of the Simple Network
Management Protocol (SNMPv2)", RFC 1442, SNMP Research,Inc.,
Hughes LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon
University, April 1993.
[2] McCloghrie, K., and M. Rose, Editors, "Management Information
Base for Network Management of TCP/IP-based internets: MIB-II",
STD 17, RFC 1213, Hughes LAN Systems, Performance Systems
International, March 1991.
[3] Galvin, J., and K. McCloghrie, "Administrative Model for version
2 of the Simple Network Management Protocol (SNMPv2)", RFC 1445,
Trusted Information Systems, Hughes LAN Systems, April 1993.
[4] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol
Operations for version 2 of the Simple Network Management
Protocol (SNMPv2)", RFC 1448, SNMP Research,Inc., Hughes LAN
Systems, Dover Beach Consulting, Inc., Carnegie Mellon
University, April 1993.
[5] McCloghrie, K., and F. Kastenholz, "Evolution of the Interfaces
Group of MIB-II", RFC 1573, Hughes LAN Systems, FTP Software,
January 1994.
[6] Stewart, B., "Definitions of Managed Objects for Character Stream
Devices using SMIv2", RFC 1658, Xyplex, Inc., July 1994.
[7] Kastenholz, F., "The Definitions of Managed Objects for the Link
Control Protocol of the Point-to-Point Protocol", RFC 1471, FTP
Software, Inc., June 1993.
7. Security Considerations
Security issues are not discussed in this memo.
8. Author's Address
Bob Stewart
Xyplex, Inc.
295 Foster Street
Littleton, MA 01460
Phone: 508-952-4816
Fax: 508-952-4887
EMail: rlstewart@eng.xyplex.com
ISO Plain Language
On this page
§1What the MIB Covers
RFC 1659 defines an extension to the Management Information Base (MIB) for managing RS-232-like hardware devices. It was produced by the IETF Character MIB Working Group and obsoletes RFC 1317.
The MIB applies to interface ports that might logically support the Interface MIB, a Transmission MIB, or the Character MIB. The most common example is an RS-232 port with modem signals. The RS-232-like Hardware Port MIB includes RS-232, RS-422, RS-423, V.35, and other asynchronous or synchronous serial physical links with a similar set of control signals.
Because the MIB covers several similar kinds of hardware, it contains objects that do not apply to all of them. The compliance definitions therefore have a general group for all implementations, and separate groups for the different types of ports, such as asynchronous and synchronous. The MIB is mandatory for all systems that have such a hardware port supporting services managed through some other MIB.
The objects relate to physical layer connections. Such connections may provide hardware signals other than those for basic data transfer, such as RNG and DCD, and hardware ports also have attributes such as speed and bits per character.
SNMP gives a manager a standard way to read and set numbers on a device. This RFC lists the numbers that describe a serial port: how fast it runs, how many bits each character uses, how many characters were damaged, and whether each control wire is on or off. Any device with such a port must publish these numbers.
§2The SNMPv2 Framework Behind It
The SNMPv2 Network Management Framework consists of four major components. RFC 1442 defines the SMI, the mechanisms used for describing and naming objects for the purpose of management. STD 17, RFC 1213, defines MIB-II, the core set of managed objects for the Internet suite of protocols. RFC 1445 covers the administrative and other architectural aspects of the framework. RFC 1448 is the protocol used for network access to managed objects. The framework permits new objects to be defined for the purpose of experimentation and evaluation.
Managed objects are accessed through a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) defined by the SMI. Each object type is named by an OBJECT IDENTIFIER, an administratively assigned name, and the object type together with an object instance serves to uniquely identify a specific instantiation of the object. For human convenience a textual string, termed the descriptor, is often used to refer to the object type.
Every value in an SNMP MIB has a unique name, like an entry in a phone book, and a manager reads or writes it by that name. This RFC's names all sit under one module called rs232, placed at transmission 33.
§3Layering and the Interface MIB
The RS-232-like MIB is one of many MIBs designed for layered use, as described in the Interface MIB (RFC 1573). In most implementations where it is present it will be in the lowest interface sublayer. The RS-232-like MIB represents the physical layer, providing service to higher layers such as the Character MIB (RFC 1658) or the PPP MIB (RFC 1471).
The Interface MIB's ifTestTable and ifRcvAddressTable are not relevant to the RS-232-like MIB. The RS-232-like MIB is relevant for the ifType values rs232(33) and v35(45), and perhaps others. It requires the conformance groups ifGeneralGroup and ifFixedLengthGroup.
The RFC also states two relationships to the Interface MIB. The value of ifSpeed is the same as rs232PortOutSpeed, and the usefulness of the error counters in this MIB depends on the octet counters in ifFixedLengthGroup.
The MIB describes the physical layer, the wires themselves, and other MIBs describe the layers above. A manager therefore uses this MIB for the port itself and a separate MIB for the character stream or the point-to-point link control that runs over it.
§4The Tables
The module comprises one base object and four tables. The base object, rs232Number, gives the number of ports, regardless of their current state, in the general port table.
The rs232PortTable holds a row for every port. Each row has an index, the port type (other, rs232, rs422, rs423, v35 or x21), the number of input and output signals, the input and output speeds in bits per second, and the input and output flow control type. The index is an InterfaceIndex, the same value as ifIndex. The RFC notes that, by convention and if possible, hardware port numbers map directly to external connectors, and that the value for each port must remain constant at least from one re-initialization of the network management agent to the next.
The rs232AsyncPortTable holds settings and error counters for asynchronous ports, and its entries need not exist for synchronous ports. The rs232SyncPortTable does the same for synchronous ports. The rs232InSigTable and rs232OutSigTable hold one row per port and signal for the input and output control signals.
The signal tables contain entries only for signals that the software can detect, for inputs, or can assert, for outputs, and that are useful to observe.
The module has one count object and four tables. The general table has a row for every port. The asynchronous and synchronous tables hold extra settings for the two kinds of port. The two signal tables have one row for each control wire that the software can read or drive.
- rs232 transmission 33
- rs232Number the number of ports
- rs232PortTable one row per port, of any kind
- rs232AsyncPortTable asynchronous ports
- rs232SyncPortTable synchronous ports
- rs232InSigTable input control signals
- rs232OutSigTable output control signals
- rs232Conformance groups and compliance statements
§5Port Settings and Error Counters
In the general table, rs232PortInSpeed and rs232PortOutSpeed are read-write and give the port's speed in bits per second. The RFC notes that non-standard values, such as 9612, are probably not allowed on most implementations. The flow control types are none, meaning no flow control at this level, ctsRts and dsrDtr, meaning use of the indicated hardware signals.
For asynchronous ports, the writable settings are rs232AsyncPortBits, the number of bits in a character, with the range 5 to 8; rs232AsyncPortStopBits, with the values one, two, oneAndHalf and dynamic; rs232AsyncPortParity, with the values none, odd, even, mark and space; and rs232AsyncPortAutobaud, which is enabled or disabled and controls the port's ability to sense the input speed automatically. When autobaud is enabled a port may autobaud to values different from the set values for speed, parity and character size, so a management system may temporarily observe values different from what it previously set.
Three counters tally problems on asynchronous ports. rs232AsyncPortParityErrs counts characters with a parity error, rs232AsyncPortFramingErrs counts characters with a framing error, and rs232AsyncPortOverrunErrs counts characters with an overrun error. Each counts from system re-initialization and while the port state was up or test.
For synchronous ports, rs232SyncPortClockSource gives the source of the port's bit rate clock: internal, external, or split, which means the transmit clock is internal and the receive clock is external. The synchronous counters cover frames with an invalid frame check sequence, frames that failed to be transmitted because data was not available to the transmitter in time, frames that failed to be received because the receiver did not accept the data in time, frames interrupted by loss of modem signals, and frames aborted by an abort sequence.
Some settings are read-write, so a manager can change them: the speed in bits per second, the number of bits per character from 5 to 8, the stop bits, the parity, and whether the port works out the incoming speed by itself. The counters are read-only tallies of characters that arrived damaged, counted since the device last restarted.
| Setting | Asynchronous port | Synchronous port |
|---|---|---|
| Bits per character | 5 to 8 | Not applicable |
| Stop bits | one, two, oneAndHalf, dynamic | Not applicable |
| Parity | none, odd, even, mark, space | Not applicable |
| Autobaud | enabled or disabled | Not applicable |
| Clock source THIS RFC | Not applicable | internal, external, split |
| Bit encoding | Not applicable | nrz or nrzi |
| Direction of transfer | Not applicable | fdx, hdx, simplex-receive, simplex-send |
§6Control Signals
The input and output signal tables expose the hardware control signals. The signal name is one of eleven values, defined with reference to EIA Standard RS-232-C, August 1969: rts for Request to Send, cts for Clear to Send, dsr for Data Set Ready, dtr for Data Terminal Ready, ri for Ring Indicator, dcd for Received Line Signal Detector, sq for Signal Quality Detector, srs for Data Signaling Rate Selector, and srts, scts and sdcd for the secondary variants of Request to Send, Clear to Send and Received Line Signal Detector.
Each row gives the current signal state, with the values none, on and off, and a counter of the number of times the signal has changed from on to off or from off to on. Both tables use the same set of eleven names.
The synchronous port table also carries a set of SDLC-specific objects with default values. rs232SyncPortRole is dte or dce, defaulting to dce, naming the role the device is playing. rs232SyncPortEncoding is nrz or nrzi, defaulting to nrz, and names the bit stream encoding technique in effect. rs232SyncPortRTSControl is controlled or constant, defaulting to constant: in controlled mode a DTE asserts RTS each time data needs to be transmitted and drops RTS at some point after transmission begins, and a DCE issues CTS only after receiving RTS and waiting out the delay.
rs232SyncPortRTSCTSDelay is the interval in milliseconds that the DCE must wait after it sees RTS asserted before asserting CTS, defaulting to 0. The RFC says the object exists in support of older synchronous devices that cannot recognize CTS within a certain interval after asserting RTS. rs232SyncPortMode is fdx, hdx, simplex-receive or simplex-send, defaulting to fdx, and names the direction and simultaneity of data transfer. rs232SyncPortIdlePattern is mark or space, defaulting to space, and names the bit pattern used to indicate an idle line. rs232SyncPortMinFlags is the minimum number of flag patterns the port needs to recognize the end of one frame and the start of the next, with plausible values 1 and 2 and a default of 2.
The signal tables expose the control wires of the serial cable, such as Request to Send and Clear to Send. Each row gives the current state of the wire, as none, on or off, and a counter of how many times it has switched between on and off.
- 1rts — Request to Send.
- 2cts — Clear to Send.
- 3dsr — Data Set Ready.
- 4dtr — Data Terminal Ready.
- 5ri — Ring Indicator.
- 6dcd — Received Line Signal Detector.
- 7sq — Signal Quality Detector.
- 8srs — Data Signaling Rate Selector.
- 9srts — Secondary Request to Send.
- 10scts — Secondary Clear to Send.
- 11sdcd — Secondary Received Line Signal Detector.
§7Compliance and Security
The compliance statement makes the rs232Group mandatory for all SNMPv2 entities which have RS-232-like hardware interfaces. The rs232AsyncGroup is mandatory only for entities with asynchronous RS-232-like interfaces, and the rs232SyncGroup only for entities with synchronous RS-232-like interfaces. A separate rs232SyncSDLCGroup collects the SDLC-specific synchronous objects: the role, the encoding, the RTS control method, the RTS-to-CTS delay, the mode, the idle pattern and the minimum number of flags.
The Security Considerations section of the RFC says only that security issues are not discussed in the memo.
Every device with a serial port must implement the general group of objects. The asynchronous group is only required on devices with asynchronous ports and the synchronous group only on devices with synchronous ports. The RFC says it does not discuss security.