Network Working Group                                          D. Throop
Request for Comments: 1381                      Data General Corporation
                                                                F. Baker
                                        Advanced Computer Communications
                                                           November 1992
Page 1

SNMP MIB Extension for X.25 LAPB

Status of this Memo

This RFC specifies an IAB standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "IAB Official Protocol Standards" for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Abstract

This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in TCP/IP-based internets. In particular, it defines objects for managing the Link Layer of X.25, LAPB. The objects defined here, along with the objects in the "SNMP MIB Extension for the Packet Layer of X.25" [9] and the "Definitions of Managed Objects for RS-232-like Hardware Devices" [8], combine to allow management of an X.25 protocol stack.

Table of Contents

1. The Network Management Framework
2. Objects
2.1 Format of Definitions
3. Overview
3.1 Informal overview
3.2 Textual Conventions
3.3 Formal overview
3.4 Tables
3.5 Traps
4. Object Definitions
5. Appendix: Revision History
July 30, 1992
June 12, 1992
May 18, 1992
April 8, 1992
February 1992
October 1991
June 1991
April 1991


Page 2

6. Acknowledgements
7. References
8. Security Considerations
9. Authors' Addresses

1. The Network Management Framework

The Internet-standard Network Management Framework consists of three components. These components give the rules for defining objects, the definitions of objects, and the protocol for manipulating objects.

The network management framework structures objects in an abstract information tree. The branches of the tree name objects and the leaves of the tree contain the values manipulated to effect management. This tree is called the Management Information Base or MIB. The concepts of this tree are given in STD 16/RFC 1155 "The Structure of Management Information" or SMI [1]. The SMI defines the trunk of the tree and the types of objects used when defining the leaves. STD 16/RFC 1212, "Towards Concise MIB Definitions" [4], defines a more concise description mechanism that preserves all the principals of the SMI.

The core MIB definitions for the Internet suite of protocols can be found in RFC 1156 [2] "Management Information Base for Network Management of TCP/IP-based internets". STD 17/RFC 1213 [5] defines MIB-II, an evolution of MIB-I with changes to incorporate implementation experience and new operational requirements.

STD 15/RFC 1157 [3] defines the SNMP protocol itself. The protocol defines how to manipulate the objects in a remote MIB.

The tree structure of the MIB allows new objects to be defined for the purpose of experimentation and evaluation.

2. Objects

The definition of an object in the MIB requires an object name and type. Object names and types are defined using the subset of the Abstract Syntax Notation One (ASN.1) [6] defined in the SMI [1]. Objects are named using ASN.1 object identifiers, administratively assigned names, to specify object types. The object name, together with an optional object instance, uniquely identifies a specific instance of an object. For human convenience, we often use a textual string, termed the OBJECT DESCRIPTOR, to also refer to objects.

Objects also have a syntax that defines the abstract data structure corresponding to that object type. The ASN.1 language [6] provides


Page 3

the primitives used for this purpose. The SMI [1] purposely restricts the ASN.1 constructs which may be used for simplicity and ease of implementation. The encoding of an object type simply describes how to represent an object using ASN.1 encoding rules [7], for purposes of dealing with the SNMP protocol.

2.1. Format of Definitions

Section 4 contains the specification of all object types defined in this MIB module. The object definitions use the conventions given in the SMI [1] as amended by the concise MIB definitions [4].

3. Overview

3.1. Informal overview

This section describes how the objects defined below relate with other MIBs. This section is only informational to help understand how the pieces fit together.

The objects defined below are to be used in conjunction with MIB-II and other MIBs such as the X.25 packet level MIB [9]. A system with a complete X.25 stack running over a synchronous line will have at least two interfaces in the ifTable defined in MIB-II. There will be an interface for LAPB and another interface for the packet layer of X.25. There will also be objects defined in the RS-232-like MIB for the physical sync line.

Each software interface identifies the layer below it used to send and receive packets. The X.25 MIB object, x25InfoDataLinkId, specifies an instance of lapbAdmnIndex for the LAPB interface under that X.25. The LAPB object, lapbOperPortId, defined below, identifies an instance of the rs232PortIndex for the the Sync line used by LAPB.

For X.25 running over LAPB over Ethernet, the lapbAdmnPortId would identify the instance of ifIndex for the Ethernet interface.

Each X.25 subnetwork will have separate entries in the ifTable. Thus a system with two X.25 lines would have two ifTable entries for the two X.25 packet layers and two other entries for the two LAPB interfaces. Each X.25 Packet Layer MIB would identify the instance of the LAPB MIB below it. Each LAPB MIB would identify the Sync line below it. The system would also have two entries for rs232PortTable and rs232SyncPortTable for the two physical lines.

Since the ifTable as defined in MIB-II is device independent, it doesn't have anything specific for any type of interface. The objects below define the LAPB specific information for an interface


Page 4

of type LAPB. Different LAPB interfaces can also be differentiated by matching the values of ifIndex with lapbAdmnIndex.

3.2. Textual Conventions

Two new data types are introduced as a textual conventions in this MIB document. These textual conventions enhance the readability of the specification and can ease comparison with other specifications if appropriate. It should be noted that the introduction of these textual conventions has no effect on either the syntax nor the semantics of any managed objects. The use of these is merely an artifact of the explanatory method used. Objects defined in terms of one of these methods are always encoded by means of the rules that define the primitive type. Hence, no changes to the SMI or the SNMP are necessary to accommodate these textual conventions which are adopted merely for the convenience of readers and writers in pursuit of the elusive goal of clear, concise, and unambiguous MIB documents.

This MIB introduces the data types of:

PositiveInteger
ifIndexType

3.3. Formal overview

Instances of the objects defined below represent attributes of a LAPB interface. LAPB interfaces are identified by an ifType object in the Internet-standard MIB [5] of

lapb(16).

For these interfaces, the value of the ifSpecific variable in the MIB-II [5] has the OBJECT IDENTIFIER value:

                lapb    OBJECT IDENTIFIER ::= { transmission 16 }

The relationship between a LAPB interface and an interface in the context of the Internet-standard MIB [5] is one-to-one. As such, the value of an ifIndex object instance can be directly used to identify corresponding instances of the objects defined below.

The objects defined below are defined in the context of ISO 7776 [10] and ISO 8885 [11]. Access to those documents maybe useful (but isn't essential) to understand the names and semantics of some objects. Where possible the object descriptions use the terminology of ISO 7776; for example, one commonly used term refers to the peer LAPB as the DCE/remote DTE. This terminology does not restrict the instrumented LAPB to function only as a DTE. This MIB maybe applied


Page 5

to a LAPB configured as either a DCE or a DTE.

To the extent that some attributes defined in the Internet standard MIB [5] are applicable to LAPB, those objects have not been duplicated here. In some instances some clarification of how to apply those objects to LAPB has been given.

Some objects defined below include a DEFVAL clause. This clause provides reasonable (but not mandatory) default values to use when creating these objects. This does not imply this MIB defines any mechanism for creating or deleting LAPB interfaces. The creation and deletion of the objects of this MIB depend on the implementation method for creating and deleting LAPB interfaces. The DEFVAL clause provides reasonable defaults to allow further extension of the MIB to define methods for creating and deleting LAPB interfaces without having to deprecate these objects for the lack of a DEFVAL clause.

3.4. Tables

This extension adds four tables to the MIB. These tables are:

lapbAdmnTable,
lapbOperTable,
lapbFlowTable, and
lapbXidTable.

The lapbAdmnTable provides objects for common parameters used by LAPB such as the T1 retransmission timer or the N2 retransmission counter. Changes to objects in this table need not affect a running interface but provides access to the values used to initialize an interface. These values are read-write.

The lapbOperTable provides objects to determine the parameters actually in use by an interface. These objects are read only. The values currently in use maybe different from the lapbAdmnTable values if the lapbAdmnTable was changed after interface initialization or if XID negotiation selected different values.

The lapbFlowTable provides objects that report how the LAPB interface performs. These are read-only objects used to monitor operation.

The lapbXidTable is not required for systems that do not transmit XID frames. For systems that do transmit XID frames, this table provides the values for the fields of the XID frame that are not already present in the lapbAdmnTable. The objects in this table are read- write.


Page 6

3.5. Traps

Since all LAPB interfaces have entries in the ifTable, significant changes in the state of the interface should send a linkUp or linkDown trap. Thus an interface that receives or sends a Frame Reject frame should send a linkDown trap. If the interface later comes back up, it should then send a linkUP trap.

4. Object Definitions

          RFC1381-MIB DEFINITIONS ::= BEGIN

IMPORTS
Counter
FROM RFC1155-SMI
transmission
FROM RFC1213-MIB
OBJECT-TYPE
FROM RFC-1212;

                          --  LAPB MIB

          lapb    OBJECT IDENTIFIER ::= { transmission 16 }

          PositiveInteger ::= INTEGER (0..2147483647)

          IfIndexType     ::= INTEGER (1..2147483647)
          -- IfIndexType specifies an index object for a table
          -- with entries that match entries in the MIB-II ifTable.
          -- The value of the index for the table will match the
          -- ifIndex entry for same interface in the ifTable.
          -- The values of this object range from 1 to ifNumber
          -- inclusive.

          -- ###########################################################
          --                      LAPB Admn Table
          -- ###########################################################

          -- Support of the lapbAdmnTable is mandatory for all
          -- agents of systems that implement LAPB.

          lapbAdmnTable   OBJECT-TYPE
                  SYNTAX  SEQUENCE OF LapbAdmnEntry
                  ACCESS  not-accessible
                  STATUS  mandatory


Page 7

DESCRIPTION
"This table contains objects that can be changed to manage a LAPB interface. Changing one of these parameters may take effect in the operating LAPB immediately or may wait until the interface is restarted depending on the details of the
implementation.

Most of the objects in this read-write table have corresponding read-only objects in the lapbOperTable that return the current operating value.

The operating values may be different from these configured values if changed by XID negotiation or if a configured parameter was changed after the interface was started."

                  ::= { lapb 1 }

          lapbAdmnEntry   OBJECT-TYPE
                  SYNTAX  LapbAdmnEntry
                  ACCESS  not-accessible
                  STATUS  mandatory
                  DESCRIPTION
                          "Configured parameter values for a specific
                          LAPB."
                  INDEX { lapbAdmnIndex }
                  ::= { lapbAdmnTable 1 }

          LapbAdmnEntry ::= SEQUENCE {
                  lapbAdmnIndex
                          IfIndexType,
                  lapbAdmnStationType
                          INTEGER,
                  lapbAdmnControlField
                          INTEGER,
                  lapbAdmnTransmitN1FrameSize
                          PositiveInteger,
                  lapbAdmnReceiveN1FrameSize
                          PositiveInteger,
                  lapbAdmnTransmitKWindowSize
                          INTEGER,
                  lapbAdmnReceiveKWindowSize
                          INTEGER,
                  lapbAdmnN2RxmitCount
                  INTEGER,
                  lapbAdmnT1AckTimer


Page 8

PositiveInteger,
lapbAdmnT2AckDelayTimer
PositiveInteger,
lapbAdmnT3DisconnectTimer
PositiveInteger,
lapbAdmnT4IdleTimer
PositiveInteger,
lapbAdmnActionInitiate
INTEGER,
lapbAdmnActionRecvDM
INTEGER
}

          lapbAdmnIndex   OBJECT-TYPE
                  SYNTAX  IfIndexType
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "The ifIndex value for the LAPB interface."
                  ::= { lapbAdmnEntry 1 }

          lapbAdmnStationType     OBJECT-TYPE
                  SYNTAX  INTEGER {
                          dte (1),
                          dce (2),
                          dxe (3)
                          }
                  ACCESS  read-write
                  STATUS  mandatory
                  DESCRIPTION
                          "Identifies the desired station type of this
                          interface."
                  REFERENCE "ISO 7776 section 3.1"
                  DEFVAL { dte }
                  ::= { lapbAdmnEntry 2 }

lapbAdmnControlField OBJECT-TYPE
SYNTAX INTEGER {
modulo8 (1),
modulo128 (2)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The desired size of the sequence numbers used to number frames."
REFERENCE "ISO 8885 Table 3, Name: HDLC Option - 10" DEFVAL { modulo8 }


Page 9

                  ::= { lapbAdmnEntry 3 }

lapbAdmnTransmitN1FrameSize OBJECT-TYPE
SYNTAX PositiveInteger
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The default maximum N1 frame size desired in number of bits for a frame transmitted by this DTE. This excludes flags and 0 bits inserted for transparency."
REFERENCE "ISO 8885 Table 3,
Name: Information Field length"
DEFVAL { 36000 } -- 4500 * 8; 802.5 Frame size

                  ::= { lapbAdmnEntry 4 }

lapbAdmnReceiveN1FrameSize OBJECT-TYPE
SYNTAX PositiveInteger
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The default maximum N1 frame size desired in number of bits for a frame the DCE/remote DTE transmits to this DTE. This excludes flags and 0 bits inserted for transparency." DEFVAL { 36000 } -- 4500 * 8; 802.5 Frame size

                  ::= { lapbAdmnEntry 5 }

lapbAdmnTransmitKWindowSize OBJECT-TYPE
SYNTAX INTEGER (1..127)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The default transmit window size for this Interface. This is the maximum number of unacknowledged sequenced PDUs that may be outstanding from this DTE at any one time." REFERENCE "ISO 8885 Table 3, Name: Window size" DEFVAL { 7 }

                  ::= { lapbAdmnEntry 6 }

lapbAdmnReceiveKWindowSize OBJECT-TYPE
SYNTAX INTEGER (1..127)
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The default receive window size for this Interface. This is the maximum number of


Page 10

unacknowledged sequenced PDUs that may be outstanding from the DCE/remote DTE at any one time."
REFERENCE "ISO 8885 Table 3, Name: Window size" DEFVAL { 7 }

                  ::= { lapbAdmnEntry 7 }

          lapbAdmnN2RxmitCount    OBJECT-TYPE
                  SYNTAX  INTEGER (0..65535)
                  ACCESS  read-write
                  STATUS  mandatory
                  DESCRIPTION
                          "The default N2 retry counter for this
                          interface.  This specifies the number of
                          times a PDU will be resent after the T1
                          timer expires without an acknowledgement for
                          the PDU."
                  REFERENCE "ISO 8885 Table 3,
                          Name: Retransmission Attempts"
                  DEFVAL { 20 }
                  ::= { lapbAdmnEntry 8 }

          lapbAdmnT1AckTimer      OBJECT-TYPE
                  SYNTAX  PositiveInteger
                  ACCESS  read-write
                  STATUS  mandatory
                  DESCRIPTION
                          "The default T1 timer for this interface.
                          This specifies the maximum time in
                          Milliseconds to wait for acknowledgment of a
                          PDU."
                  REFERENCE "ISO 8885 Table 3, Name:
                          Acknowledgement timer"
                  DEFVAL { 3000 }
                  ::= { lapbAdmnEntry 9 }

          lapbAdmnT2AckDelayTimer         OBJECT-TYPE
                  SYNTAX  PositiveInteger
                  ACCESS  read-write
                  STATUS  mandatory
                  DESCRIPTION
                          "The default T2 timer for this interface.
                          This specifies the maximum time in
                          Milliseconds to wait before sending an
                          acknowledgment for a sequenced PDU.  A value
                          of zero means there will be no delay in
                          acknowledgement generation."
                  REFERENCE "ISO 8885 Table 3,


Page 11

Name: Reply delay timer"
DEFVAL { 0 }

                  ::= { lapbAdmnEntry 10 }

lapbAdmnT3DisconnectTimer OBJECT-TYPE
SYNTAX PositiveInteger
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The T3 timer for this interface. This specifies the time in Milliseconds to wait before considering the link disconnected. A value of zero indicates the link will be considered disconnected upon completion of the frame exchange to disconnect the link." REFERENCE "ISO 7776 section 5.7.1.3"
DEFVAL { 60000 }

                  ::= { lapbAdmnEntry 11 }

lapbAdmnT4IdleTimer OBJECT-TYPE
SYNTAX PositiveInteger
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The T4 timer for this interface. This specifies the maximum time in Milliseconds to allow without frames being exchanged on the data link. A value of 2147483647 indicates no idle timer is being kept." REFERENCE "ISO 7776 section 5.7.1.4"
DEFVAL { 2147483647 }

                  ::= { lapbAdmnEntry 12 }

lapbAdmnActionInitiate OBJECT-TYPE
SYNTAX INTEGER {
sendSABM (1),
sendDISC (2),
sendDM (3),
none (4),
other (5)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This identifies the action LAPB will take to initiate link set-up."
DEFVAL { sendSABM }

                  ::= { lapbAdmnEntry 13 }


Page 12

lapbAdmnActionRecvDM OBJECT-TYPE
SYNTAX INTEGER {
sendSABM (1),
sendDISC (2),
other (3)
}
ACCESS read-write
STATUS mandatory
DESCRIPTION
"This identifies the action LAPB will take when it receives a DM response."
DEFVAL { sendSABM }

                  ::= { lapbAdmnEntry 14 }

          -- ###########################################################
          --                      LAPB operating parameters.
          -- ###########################################################

          -- Support of the lapbOperTable is mandatory for all
          -- agents of systems that implement LAPB.

          lapbOperTable   OBJECT-TYPE
                  SYNTAX  SEQUENCE OF LapbOperEntry
                  ACCESS  not-accessible
                  STATUS  mandatory
                  DESCRIPTION
                          "This table contains configuration
                          information about interface parameters
                          currently set in the interface.  Many of
                          these objects have corresponding objects in
                  the lapbAdmnTable."
                  ::= { lapb 2 }

          lapbOperEntry   OBJECT-TYPE
                  SYNTAX  LapbOperEntry
                  ACCESS  not-accessible
                  STATUS  mandatory
                  DESCRIPTION
                          "Currently set parameter values for a
                          specific LAPB."
                  INDEX { lapbOperIndex }
                  ::= { lapbOperTable 1 }

          LapbOperEntry ::= SEQUENCE {
                  lapbOperIndex
                          IfIndexType,
                  lapbOperStationType


Page 13

INTEGER,
lapbOperControlField
INTEGER,
lapbOperTransmitN1FrameSize
PositiveInteger,
lapbOperReceiveN1FrameSize
PositiveInteger,
lapbOperTransmitKWindowSize
INTEGER,
lapbOperReceiveKWindowSize
INTEGER,
lapbOperN2RxmitCount
INTEGER,
lapbOperT1AckTimer
PositiveInteger,
lapbOperT2AckDelayTimer
PositiveInteger,
lapbOperT3DisconnectTimer
PositiveInteger,
lapbOperT4IdleTimer
PositiveInteger,
lapbOperPortId
OBJECT IDENTIFIER,
lapbOperProtocolVersionId
OBJECT IDENTIFIER
}

          lapbOperIndex   OBJECT-TYPE
             SYNTAX       IfIndexType
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "The ifIndex value for the LAPB interface."
                  ::= { lapbOperEntry 1 }

          lapbOperStationType     OBJECT-TYPE
                  SYNTAX  INTEGER {
                          dte (1),
                          dce (2),
                          dxe (3)
                          }
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "Identifies the current operating station
                          type of this interface.  A value of dxe (3)
                          indicates XID negotiation has not yet taken
                          place."


Page 14

REFERENCE "ISO 7776 section 3.1"

                  ::= { lapbOperEntry 2 }

lapbOperControlField OBJECT-TYPE
SYNTAX INTEGER {
modulo8 (1),
modulo128 (2)
}
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current operating size of the sequence numbers used to number frames."
REFERENCE "ISO 7776 section 3.3"

                  ::= { lapbOperEntry 3 }

lapbOperTransmitN1FrameSize OBJECT-TYPE
SYNTAX PositiveInteger
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current operating N1 frame size used for the maximum number of bits in a frame this DTE can transmit. This excludes flags and 0 bits inserted for transparency." REFERENCE "ISO 7776 section 5.7.3"

                  ::= { lapbOperEntry 4 }

lapbOperReceiveN1FrameSize OBJECT-TYPE
SYNTAX PositiveInteger
ACCESS read-only
STATUS mandatory

                  -- See lapbOperTransmitN1FrameSize above
                  DESCRIPTION
                          "The current operating N1 frame size used
                          for the maximum number of bits in a frame
                          the DCE/remote DTE can transmit.  This
                          excludes flags and 0 bits inserted for
                          transparency."
                  ::= { lapbOperEntry 5 }

lapbOperTransmitKWindowSize OBJECT-TYPE
SYNTAX INTEGER (1..127)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current PDU window size this Interface uses to transmit. This is the maximum


Page 15

number of unacknowledged sequenced PDUs that may be outstanding from this DTE at any one time."
REFERENCE "ISO 7776 section 5.7.4"

                  ::= { lapbOperEntry 6 }

lapbOperReceiveKWindowSize OBJECT-TYPE
SYNTAX INTEGER (1..127)
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current receive PDU window size for this Interface. This is the maximum number of unacknowledged sequenced PDUs that may be outstanding from the DCE/remote DTE at any one time."
REFERENCE "ISO 7776 section 5.7.4"

                  ::= { lapbOperEntry 7 }

          lapbOperN2RxmitCount    OBJECT-TYPE
                  SYNTAX  INTEGER (0..65535)
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "The current N2 retry counter used for this
                          interface.  This specifies the number of
                          times a PDU will be resent after the T1
                          timer expires without an acknowledgement for
                          the PDU."
                  REFERENCE "ISO 7776 section 5.7.2"
                  ::= { lapbOperEntry 8 }

          lapbOperT1AckTimer      OBJECT-TYPE
                  SYNTAX  PositiveInteger
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "The current T1 timer for this interface.
                          This specifies the maximum time in
                          Milliseconds to wait for acknowledgment of a
                          PDU."
                  REFERENCE "ISO 7776 section 5.7.1.1"
                  ::= { lapbOperEntry 9 }

          lapbOperT2AckDelayTimer         OBJECT-TYPE
                  SYNTAX  PositiveInteger
                  ACCESS  read-only
                  STATUS  mandatory


Page 16

DESCRIPTION
"The current T2 timer for this interface. This specifies the maximum time in Milliseconds to wait before sending an acknowledgment for a sequenced PDU. A value of zero means there will be no delay in acknowledgement generation."
REFERENCE "ISO 7776 section 5.7.1.2"

                  ::= { lapbOperEntry 10 }

lapbOperT3DisconnectTimer OBJECT-TYPE
SYNTAX PositiveInteger
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The current T3 timer for this interface. This specifies the time in Milliseconds to wait before considering the link
disconnected. A value of zero indicates the link will be considered disconnected upon completion of the frame exchange to disconnect the link."
REFERENCE "ISO 7776 section 5.7.1.3"

                  ::= { lapbOperEntry 11 }

lapbOperT4IdleTimer OBJECT-TYPE
SYNTAX PositiveInteger
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The current T4 timer for this interface. This specifies the maximum time in Milliseconds to allow without frames being exchanged on the data link. A value of 2147483647 indicates no idle timer is being kept."
REFERENCE "ISO 7776 section 5.7.1.4"

                  ::= { lapbOperEntry 12 }

lapbOperPortId OBJECT-TYPE
SYNTAX OBJECT IDENTIFIER
ACCESS read-only
STATUS mandatory
DESCRIPTION
"This object identifies an instance of the index object in the first group of objects in the MIB specific to the physical device or interface used to send and receive


Page 17

frames. If an agent does not support any such objects, it should return nullSpec OBJECT IDENTIFIER {0 0}."

                  ::= { lapbOperEntry 13 }

          lapbOperProtocolVersionId       OBJECT-TYPE
                  SYNTAX  OBJECT IDENTIFIER
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "This object identifies the version of the
                          lapb protocol implemented by this
                          interface."
                  ::= { lapbOperEntry 14 }

          -- ###########################################################
          --                      LAPB    Flow Table
          -- ###########################################################

          -- Support of the lapbFlowTable is mandatory for all
          -- agents of systems that implement LAPB.

lapbFlowTable OBJECT-TYPE
SYNTAX SEQUENCE OF LapbFlowEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"This table defines the objects recorded by LAPB to provide information about the traffic flow through the interface."

                  ::= { lapb 3 }

lapbFlowEntry OBJECT-TYPE
SYNTAX LapbFlowEntry
ACCESS not-accessible
STATUS mandatory
DESCRIPTION
"The information regarding the effects of flow controls in LAPB."
INDEX { lapbFlowIfIndex }

                  ::= { lapbFlowTable 1 }

          LapbFlowEntry ::= SEQUENCE {
                  lapbFlowIfIndex
                          IfIndexType,
                  lapbFlowStateChanges
                          Counter,


Page 18

lapbFlowChangeReason
INTEGER,
lapbFlowCurrentMode
INTEGER,
lapbFlowBusyDefers
Counter,
lapbFlowRejOutPkts
Counter,
lapbFlowRejInPkts
Counter,
lapbFlowT1Timeouts
Counter,
lapbFlowFrmrSent
OCTET STRING,
lapbFlowFrmrReceived
OCTET STRING,
lapbFlowXidReceived
OCTET STRING
}

lapbFlowIfIndex OBJECT-TYPE
SYNTAX IfIndexType
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The ifIndex value for the LAPB Interface."

                  ::= { lapbFlowEntry 1 }

lapbFlowStateChanges OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of LAPB State Changes, including resets."

                  ::= { lapbFlowEntry 2 }

lapbFlowChangeReason OBJECT-TYPE
SYNTAX INTEGER {

                          notStarted (1),    -- Initial state
                          abmEntered (2),    -- SABM or UA
                          abmeEntered (3),   -- SABME or UA
                          abmReset (4),      -- SABM in ABM
                          abmeReset (5),     -- SABME in ABME
                          dmReceived (6),    -- DM Response
                          dmSent (7),        -- DM sent
                          discReceived (8),  -- DISC Response
                          discSent (9),      -- DISC Sent


Page 19

frmrReceived (10), -- FRMR Received

                          frmrSent (11),     -- FRMR Sent
                          n2Timeout (12),    -- N2 Timer Expired
                          other (13)
                            }
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "The reason for the most recent incrementing
                          of lapbFlowStateChanges.  A DM or DISC frame
                          generated to initiate link set-up does not
                          alter this object.  When the MIB-II object
                          ifOperStatus does not have a value of
                          testing, there exists a correlation between
                          this object and ifOperStatus.  IfOperStatus
                          will have a value of up when this object
                          contains:  abmEntered, abmeEntered,
                          abmReset, or abmeReset.  IfOperStatus will
                          have a value of down when this object has a
                          value of notStarted, or dmReceived through
                          n2Timeout.  There is no correlation when
                          this object has the value other."
                  ::= { lapbFlowEntry 3 }

lapbFlowCurrentMode OBJECT-TYPE
SYNTAX INTEGER {
disconnected (1),

                                  -- initial state or DISC received

linkSetup (2),

                                  -- SABM sent

frameReject (3),

                                  -- Invalid frame received and
                                  -- FRMR sent

disconnectRequest (4),

                                  -- DISC sent

informationTransfer (5),

                                  -- normal information transfer state
                                  -- SABM(E) sent and UA received, or
                                  -- SABM(E) received and UA sent

rejFrameSent (6),

                                  -- invalid NS received and REJ sent

waitingAcknowledgement (7),


Page 20

                                  -- T1 expired and RR sent

stationBusy (8),

                                  -- RNR sent

remoteStationBusy (9),

                                  -- RNR received

bothStationsBusy (10),

                                  -- RNR received and RNR sent

waitingAckStationBusy (11),

                                  -- T1 expired, RNR sent

waitingAckRemoteBusy (12),

                                  -- T1 expired, RNR received

waitingAckBothBusy (13),

                                  -- T1 expired, RNR sent,
                                  -- and RNR received

rejFrameSentRemoteBusy (14),

                                  -- REJ sent and RNR received

xidFrameSent (15),

                                  -- XID frame sent

error (16),

                                  -- An error state other than
                                  -- a one defined above

other (17)

                                  --  A state not listed above
                            }
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "The current condition of the conversation."
                  ::= { lapbFlowEntry 4 }

lapbFlowBusyDefers OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of times this device was unable to transmit a frame due to a perceived remote busy condition. Busy conditions can


Page 21

result from the receipt of an RNR from the remote device, the lack of valid sequence number space (window saturation), or other conditions."

                  ::= { lapbFlowEntry 5 }

lapbFlowRejOutPkts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of REJ or SREJ frames sent by this station."

                  ::= { lapbFlowEntry 6 }

lapbFlowRejInPkts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of REJ or SREJ frames received by this station."

                  ::= { lapbFlowEntry 7 }

lapbFlowT1Timeouts OBJECT-TYPE
SYNTAX Counter
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The number of times a re-transmission was effected by the T1 Timer expiring."

                  ::= { lapbFlowEntry 8 }

lapbFlowFrmrSent OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..7))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The Information Field of the FRMR most recently sent. If no FRMR has been sent (the normal case) or the information isn't available, this will be an OCTET STRING of zero length."
REFERENCE "ISO 7776 Section 4.3.9, tables 7 and 8"

                  ::= { lapbFlowEntry 9 }

lapbFlowFrmrReceived OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..7))


Page 22

ACCESS read-only
STATUS mandatory
DESCRIPTION
"The Information Field of the FRMR most recently received. If no FRMR has been received (the normal case) or the
information isn't available, this will be an OCTET STRING of zero length."
REFERENCE "ISO 7776 Section 4.3.9, tables 7 and 8"

                  ::= { lapbFlowEntry 10 }

lapbFlowXidReceived OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..8206))
ACCESS read-only
STATUS mandatory
DESCRIPTION
"The Information Field of the XID frame most recently received. If no XID frame has been received, this will be an OCTET STRING of zero length."
REFERENCE "ISO 8885"

                  ::= { lapbFlowEntry 11 }

          -- ###########################################################
          --                      LAPB    XID Table
          -- ###########################################################

          -- Support for the lapbXidTable is mandatory for all agents
          -- of systems that have a LAPB implementation using XID
          -- negotiation.  Agents of systems without XID negotiation
          -- support should not implement this table.

          lapbXidTable    OBJECT-TYPE
                  SYNTAX  SEQUENCE OF LapbXidEntry
                  ACCESS  not-accessible
                  STATUS  mandatory
                  DESCRIPTION
                          "This table defines values to use for XID
                          negotiation that are not found in the
                          lapbAdmnTable.  This table is optional for
                          implementations that don't support XID and
                          mandatory for implementations that do
                          initiate XID negotiation."
                  ::= { lapb 4 }

          lapbXidEntry    OBJECT-TYPE
                  SYNTAX  LapbXidEntry


Page 23

             ACCESS       not-accessible
                  STATUS  mandatory
                  DESCRIPTION
                          "XId negotiation parameter values for a
                          specific LAPB."
                  INDEX { lapbXidIndex }
                  ::= { lapbXidTable 1 }

          LapbXidEntry ::= SEQUENCE {
                  lapbXidIndex
                          IfIndexType,
                  lapbXidAdRIdentifier
                          OCTET STRING,
                  lapbXidAdRAddress
                          OCTET STRING,
                  lapbXidParameterUniqueIdentifier
                          OCTET STRING,
                  lapbXidGroupAddress
                          OCTET STRING,
                  lapbXidPortNumber
                          OCTET STRING,
                  lapbXidUserDataSubfield
                          OCTET STRING
                  }

          lapbXidIndex    OBJECT-TYPE
                  SYNTAX  IfIndexType
                  ACCESS  read-only
                  STATUS  mandatory
                  DESCRIPTION
                          "The ifIndex value for the LAPB interface."
                  ::= { lapbXidEntry 1 }

lapbXidAdRIdentifier OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..255))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The value of the Address Resolution Identifier. A zero length string indicates no Identifier value has been assigned." REFERENCE "ISO 8885 Table 2, Name: Identifier" DEFVAL { ''h }

                  ::= { lapbXidEntry 2 }

lapbXidAdRAddress OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..255))


Page 24

ACCESS read-write
STATUS mandatory
DESCRIPTION
"The value of the Address Resolution Address. A zero length string indicates no Address value has been assigned."
REFERENCE "ISO 8885 Table 2, Name: Address" DEFVAL { ''h }

                  ::= { lapbXidEntry 3 }

lapbXidParameterUniqueIdentifier OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..255))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The value of the parameter unique Identifier. A zero length string indicates no Unique identifier value has been assigned."
REFERENCE "ISO 8885 Table 3, Name: Identifier" DEFVAL { ''h }

                  ::= { lapbXidEntry 4 }

lapbXidGroupAddress OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..255))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The value of the parameter Group address. A zero length string indicates no Group address value has been assigned."
REFERENCE "ISO 8885 Table 3, Name: Group address" DEFVAL { ''h }

                  ::= { lapbXidEntry 5 }

lapbXidPortNumber OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..255))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"The port number assigned for this link. A zero length string indicates no local port number identifier has been assigned." REFERENCE "ISO 8885 Table 3, Name: Port number" DEFVAL { ''h }

                  ::= { lapbXidEntry 6 }

lapbXidUserDataSubfield OBJECT-TYPE


Page 25

SYNTAX OCTET STRING (SIZE (0..8206))
ACCESS read-write
STATUS mandatory
DESCRIPTION
"A user data subfield, if any, to be transmitted in an XID frame. A zero length frame indicates no user data subfield has been assigned. The octet string should include both the User data identifier and User data field as shown in Figures 1 and 4."
REFERENCE "ISO 8885 section 4.3"
DEFVAL { ''h }

                  ::= { lapbXidEntry 7 }

          -- ###########################################################
          --                      LAPB protocol versions
          -- ###########################################################

lapbProtocolVersion OBJECT IDENTIFIER

                  ::= { lapb 5 }

lapbProtocolIso7776v1986 OBJECT IDENTIFIER

                  ::= { lapbProtocolVersion 1 }

lapbProtocolCcittV1980 OBJECT IDENTIFIER

                  ::= { lapbProtocolVersion 2 }

lapbProtocolCcittV1984 OBJECT IDENTIFIER

                  ::= { lapbProtocolVersion 3 }

          -- The following describes some of the MIB-II interface
          -- objects and their relationship with the objects in this
          -- MIB extension.

          -- ifDescr:  describes the interface.   It should include
          -- identification information for the physical line and a
          -- description of the network.  For connections to PDNs,
          -- it should name the PDN.

          -- ifMtu: the maximum number of octets an upper layer can
          -- pass to this interface as a single frame.

          -- ifSpeed:


Page 26

          -- ifAdminStatus:

          -- ifOperStatus:

          -- ifLastChange: the last time the state of the interface
          -- changed.  A reset is considered an instantaneous change to
          -- the ndm state and back to abm or abme.  This will be the
          -- last time that lapbFlowChangeReason and lapbFlowChanges
          -- changed.

          -- ifInOctets: contains the number of octets
          -- received from the peer LAPB including FCS.

          -- ifInUcastPkts: contains the number of I-frames delivered
          -- by this interface to a higher layer interface.

          -- ifInDiscards: contains the number of received
          -- frames discarded because of internal conditions
          -- (such as lack of buffering).

          -- ifInErrors: contains the number of Invalid frames received.
          -- This does not have any relationship with the number REJ,
          -- or RNR frames sent or received.

          -- ifInUnknownProtos: contains the number of frames
          -- that were correct but were dropped because they
          -- were inappropriate for the current state.  This
          -- includes an invalid Poll bit, an unknown address,
          -- or other condition such as an RNR when connection
          -- not established.  This also includes the number of
          -- DISC or other frames that were ignored because the
          -- link was not established and this interface was not
          -- configured to perform link setup on that type frame.

          -- ifOutOctets: number of octets sent to peer including
          -- FCS octets.

          -- ifOutUcastPkts: number of I-frames received from
          -- a higher layer for transmission to peer.

          -- ifOutDiscards: number of frames to be sent that were
          -- dropped due to internal conditions such as buffering etc.

          -- ifOutErrors: number of transmissions that failed
          -- due to errors or were considered invalid by the receiver.
          -- This does not have any relationship with the number REJ,
          -- or RNR frames sent or received.


Page 27

          -- ifOutQLen: number of frames waiting to be transmitted.

          -- This MIB does not provide any support for:
          --      Multilink procedure (MLP) in ISO 7776 section 6
          --      LLC Pbit timer
          --      LLC REJ timer
          --      LLC Busy State Timer 7.8.1.4

          -- ###########################################################

END

5. Appendix: Revision History

July 30, 1992

The July revision of this document (Editor's Internal Reference 2.10)
incorporated the comments of the SNMP directorate.

The ifIndexType textual convention was added and used as the type for all index objects.

The enumeration xidDetection of the lapbAdmnStationType was changed to dxe to be consistent with other similar enumerations.

Conformance statements were added at before every table as ASN.1 comments.

June 12, 1992

The June 12, 1992 revision of this document (Editor's Internal Reference 2.9) incorporated some clarifications and updated the status.

The range on PositiveInteger was changed to start at 0 rather than 1.

The syntax of lapbXidIndex was changed to PositiveInteger.

A value of dxe was added to lapbOperStationType.

The range of lapbAdmnN2RxmitCount was change to (0..65535).

The definition of ifInOctets, ifInUcastPkts, ifInErrors, ifInUnknownProtos, ifOutOctets, and ifoutUcastPkts was clarified.


Page 28

May 18, 1992

The May 18, 1992 revision of this document (Editor's Internal Reference 2.8) incorporated the following changes:

The states of lapbFlowCurrentMode were redefined.

The default value for lapbAdmnControlField was changed from module8 to modulo8.

April 8, 1992

The April 8, 1992 revision of this document (Editor's Internal Reference 2.4) incorporated the following changes:

All reference comments in the MIB were moved to the REFERENCE field of the OBJECT-TYPE macro.

A type of PositiveInteger was introduced and used for common integer values including all timers. This effectively made the maximum value for timers 2147483646 milliseconds. The type of the frame size was changed to positiveInteger.

The reference to ISO 7776 has been broadened to say the MIB descriptions use the terminology of ISO 7776.

A comment was added to the overview section discussing creation and deletion of tables.

The objects in the lapbParmTable and lapbDefTable were redistributed to create a lapbOperTable, a lapbAdmnTable, and a lapbXidTable. The lapbParmTable and lapbDefTable were deleted. Objects were included in the Admn table for t3 and t4.

An object identifier was added to identify the protocol version.

A DEFVAL clause was added for all writable objects.

Some more overview text was included.

February 1992

The February 1992 revision of this document (Editor's Internal Reference 1.17) incorporated the following changes:

The name was changed from HDLC to LAPB. This change was made because other flavors of HDLC such as LAPD, SDLC, and raw HDLC framing, are different enough that this MIB will not adequately


Page 29

manage them.

The Historical Perspective section at the beginning of the document has been replaced with a more concise Network Management Framework section.

The name lapbParmKWindowSize was changed to
lapbParmTransmitKWindowSize and the object
lapbParmReceiveKWindowSize was added. This change was made because section 5.7.4 of ISO 7776 and Table 3 of ISO 8885 have provisions for different values for the transmit and receive window size.

The name lapbParmN1FrameSize was changed to
lapbParmTransmitN1FrameSize and the object
lapbParmReceiveN1FrameSize was added. This change was made because section 5.7.3 of ISO 7776 and Table 3 of ISO 8886 have provisions for different values for the transmit and receive maximum frame size.

The object lapbParmPortIndex was deleted and the description of lapbParmPortId was changed. The object lapbParmPortId now identifies an instance of the index object for the MIB of the physical device or interface below LAPB.

The units for the timers were changed to Milliseconds to be consistent with ISO 8885; see table 3.

The objects lapbParamT2AckDelayTimer and
lapbParamT3DisconnectTimer both allow values of 0 to indicate the timer is not being used.

The object lapbParamT4IdleTimer has a value to indicate timer not in use.

The object lapbFlowXidReceived was added to the flow table.

The lapbDefTable was added.

Ranges and sizes were added for all INTEGERs and OCTET STRINGs that didn't have them.

October 1991

The October 1991 revision of this document basically changed the name from LAPB to HDLC to make the objects more appropriate for a broader range of uses. A number of minor changes were made to bring the objects in line with established conventions. These changes are as follows.


Page 30

The enumerated values of hdlcParmStationType were renumbered from 0 and 1 to 1 and 2.

The object hdlcFlowBusyDefer was renamed hdlcFlowBusyDefers.

The object hdlcFlowRejSent was rename hdlcFlowRejOutPkts.

The object hdlcFlowRejReceived was renamed hdlcFlowRejInPkts.

June 1991

The June revision of this document incorporated much of the E-mail discussion of the first draft. In particular it replaced the lapbStatTable (and all contents) with the lapbFlowTable.

April 1991

The April 24 version of this document was the first release. At that time this document was basically a bunch of objects synthesized from various vendor MIBs and a quick reading of ISO 7776 [10]. On first reading it appeared to instrument too many LAPB normal functions and too few exceptional conditions. The lapbStatTable was too long and needed to be redone.

6. Acknowledgements

This document was produced by the x25mib working group:

Fred Baker, ACC
Art Berggreen, ACC
Frank Bieser
Gary Bjerke, Tandem
Bill Bowman, HP
Christopher Bucci, Datability
Charles Carvalho, ACC
Jeff Case, Snmp Research
Angela Chen, HP
Carson Cheung, BNR
Tom Daniel, Spider Systems
Chuck Davin, MIT
Billy Durham, Honeywell
Richard Fox, Synoptics
Doug Geller, Data General
Herve Goguely, LIR Corp
Andy Goldthorpe, british-telecom
Walter D. Guilarte
David Gurevich
Steve Huston, Process Software Corporation


Page 31

Jon Infante, ICL
Frank Kastenholz, Clearpoint
Zbigniew Kielczewski, Eicon
Cheryl Krupezak, Georgia Tech
Mats Lindstrom, Diab Data AB
Andrew Malis, BBN
Evan McGinnis, 3Com
Gary (G.P.)Mussar, BNR
Chandy Nilakantan, 3Com
Randy Pafford, Data General
Ragnar Paulson, The Software Group Limited Dave Perkins, Synoptics
Walter Pinkarschewsky, DEC
Karen Quidley, Data General
Chris Ranch, Novell
Paul S. Rarey, DHL Systems Inc.
Jim Roche, Newbridge Research
Philippe Roger, LIR Corp.
Timon Sloane
Mike Shand, DEC
Brad Steina, Microcom
Bob Stewart, Xyplex
Tom Sullivan, Data General
Rodney Thayer, Sable Technology Corporation Mark Therieau, Microcom
Jane Thorn, Data General
Dean Throop, Data General
Maurice Turcotte, Racal Datacom
Mike Zendels, Data General

In addition, the comments of the following individuals are also acknowledged:

Keith McCloghrie

7. References

[1] Rose M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based internets", STD 16, RFC 1155, Performance Systems International, Hughes LAN Systems, May 1990.

[2] McCloghrie K., and M. Rose, "Management Information Base for Network Management of TCP/IP-based internets", RFC 1156, Hughes LAN Systems, Performance Systems International, May 1990.

[3] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple


Page 32

Network Management Protocol", STD 15, RFC 1157, SNMP Research, Performance Systems International, Performance Systems International, MIT Laboratory for Computer Science, May 1990.

[4] Rose, M., and K. McCloghrie, Editors, "Concise MIB Definitions", STD 16, RFC 1212, Performance Systems International, Hughes LAN Systems, March 1991.

[5] Rose M., Editor, "Management Information Base for Network Management of TCP/IP-based internets: MIB-II", STD 17, RFC 1213, Performance Systems International, March 1991.

[6] Information processing systems - Open Systems Interconnection - Specification of Abstract Syntax Notation One (ASN.1), International Organization for Standardization, International Standard 8824, December 1987.

[7] Information processing systems - Open Systems Interconnection - Specification of Basic Encoding Rules for Abstract Notation One (ASN.1), International Organization for Standardization, International Standard 8825, December 1987.

[8] Stewart, B., Editor, "Definitions of Managed Objects for RS-232- like Hardware Devices", RFC 1317, Xyplex, Inc., April 1992.

[9] Throop, D., Editor, "SNMP MIB extension for the Packet Layer of X.25", RFC 1382, Data General Corporation, November 1992.

[10] "Information processing systems - Data communication - High-level data link control procedure - Description of the X.25 LAPB- compatible DTE data link procedures", International Organization for Standardization, International Standard 7776, December 1986.

[11] "Information technology - Telecommunications and information exchange between systems - High-level data link control (HDLC) procedures - General purpose XID frame information field contents and format", International Organization for Standardization, International Standard 8885.


Page 33

8. Security Considerations

Security issues are not discussed in this memo.

9. Authors' Addresses

Dean D. Throop
Data General Corporation
62 Alexander Dr.
Research Triangle Park, NC 27709

Phone: (919)248-8421
EMail: throop@dg-rtp.dg.com

Fred Baker
Advanced Computer Communications
315 Bollay Drive
Santa Barbara, CA 93101

Phone: (805) 685-4455
EMail: fbaker@acc.com

While the working group has completed discussion of this document, comments are still welcome. Please send comments to the x25mib working group at: x25mib@dg-rtp.dg.com