RFC 2155
Definitions of Managed Objects for APPN using SMIv2
π RFC 2155: Definitions of Managed Objects for APPN using SMIv2 π
Okay bestie, so this one is from June 1997 and it comes from the Network Working Group πΈ The authors are B. Clouston at Cisco Systems and B. Moore at IBM Corporation π It's a Standards Track doc, so it's an Internet standards track protocol π The header doesn't list anything it obsoletes or updates, so it's standing on its own β¨ Its whole job is defining the MIB for APPN using SMIv2, and I'm obsessed π«Ά
Table of Contents
1. Introduction ........................................... 1
2. The SNMPv2 Network Management Framework ................ 1
3. Overview ............................................... 2
3.1 APPN MIB structure .................................... 4
4. Definitions ............................................ 9
5. Acknowledgments ........................................ 122
6. References ............................................. 122
7. Security Considerations ................................ 123
8. Author's Addresses ..................................... 124
Status of This Memo π
This doc is an Internet standards track protocol for the Internet community π¦ It also asks for discussion and suggestions for improvements, so bring your ideas π If you want the current standardization state and status, check the current edition of the "Internet Official Protocol Standards" (STD 1) β¨ Distribution of this memo is unlimited, so share it with everyone π
1. Introduction β¨
Okay so this memo defines a piece of the Management Information Base (MIB) for network management protocols in the Internet community π§ The main point is objects for monitoring and controlling network devices with APPN (Advanced Peer-to-Peer Networking) capabilities π It's basically identifying the managed objects for the APPN protocol, and it's giving organized π
2. The SNMPv2 Network Management Framework π¦
The SNMP Network Management Framework has several components πΈ For this spec, the parts that matter are the SMI and related documents [1, 2, 3], because those define the mechanisms for describing and naming objects for management π
The Framework also lets people define new objects for experimentation and evaluation π§ͺ Bestie, that's a whole vibe β¨
3. Overview π
This doc identifies a set of objects for monitoring the configuration and active characteristics of devices with APPN capabilities, plus controlling certain characteristics π APPN is the piece of Systems Network Architecture (SNA) that supports peer-to-peer networking π«Ά These networks carry both independent and dependent LU session traffic. For managing those sessions, see the SNANAU APPC MIB [7] and the SNA NAU MIB [8] π Also see the DLUR MIB[9] and the HPR MIB[10] for managing extensions to the APPN architecture π In this doc, we describe the APPN managed objects π
An APPN network is made of different node types, plus transmission groups (TGs) that connect the nodes π§ Network nodes (NNs) provide directory and routing functions for session establishment π NNs may be session end points or intermediate nodes in a session π¦ A border node is a type of network node that connects networks together for session establishment without fully merging them π End nodes (ENs) are session end points that get directory and routing functions from network nodes, over control-point to control-point (CP-CP) sessions πΈ Low-entry networking (LEN) nodes are session end points too, but they don't support CP-CP sessions, so they need additional manual configuration definitions to establish sessions in an APPN network π ENs and LEN nodes may have minimal directory and routing functions, so ENs can establish control sessions and LEN nodes can connect into the APPN network β¨ Virtual routing nodes (VRNs) are not really nodes π They're common definitions among actual nodes in a shared transport facility, like a local area network (LAN), that let those actual nodes temporarily establish a logical link with one another without defining each other's link-level addressing information π«Ά
Ports and link stations are the node's interface to the data link control (DLC), which provides the physical transport, or to another protocol such as Data Link Switching (DLSw), which provides transport over an IP network π₯ See the SNADLC SDLC MIB[11], the SNADLC LLC MIB[12], and the DLSw MIB[13] π A link station uses a port to make a connection to another node, and that connection establishes a TG between the two nodes π
The directory and routing functions let an NN find where an LU is located in the network, and calculate the optimal route for the session based on the requested class of service (COS) π§ A network node saves LU information in a directory database π That database is built from LUs defined locally, LU registration from served end nodes, and LUs learned from network searches π¦
Each NN maintains a local COS database that assigns a routing weight, or relative cost, to each resource for each class of service π For example, the #INTER COS assigns a lower weight to TGs with a greater effective capacity, while the #BATCH COS favors TGs with a lower relative cost per byte πΈ
A node saves network topology information (on NNs, VRNs, and TGs between them) in a network topology database π The topology information includes state and routing characteristics π Topology information is exchanged between NNs over CP-CP sessions, so the database is fully replicated at each NN π§ Information on TGs from NNs to ENs is kept in a local topology database π Local topology information is shared with other NNs only during the session establishment process, which gives the NN responsible for route calculation the info it needs for end-to-end route calculation π¦
SNA names such as LU names, CP names, COS names, and mode names can be padded with blanks (space characters) in SNA formats π These blanks are nonsignificant πΈ For example, in a BIND Request Unit (RU), a COS name of "#INTER" with a length of 6 is identical to a COS name of "#INTER " with a length of 8 π But in this MIB, the agent doesn't include nonsignificant blanks π Using the COS name from that example, an agent would return a length of 6 and the string "#INTER" with no blanks for appnCosName, no matter how it shows up in the BIND RU or in internal storage β¨ The lone exception is the all blank mode name, where the agent returns a length of 8 and the string " " (8 blank spaces) π«Ά The MIB variables this applies to are identified by a textual convention syntax that also describes this behavior π
When an SNA name is working as a table index, an agent treats trailing blanks as significant π If a management station requests the objects from a row with index "#INTER ", the agent does not match that to the row with index "#INTER" π Since an agent has no nonsignificant blanks in any of its table indices, the only reason a Management Station would include them is to start GetNext processing at a chosen point in a table π§ For example, a GetNext request with index "M " would start retrieval from a table at the first row with an 8-character index beginning with "M" or a letter after "M" π
The SNA/APPN terms and overall architecture are documented in [4], [5], [6], and [14] π¦
Highlights of the management functions supported by the APPN MIB module include the following π
- Activating and deactivating ports and link stations.
- Monitoring of configuration parameters related to the node, ports, link stations, virtual routing nodes, and classes of service.
- Monitoring of operational parameters related to ports, link stations, virtual routing nodes, topology, directory, and intermediate sessions.
- Historical information about link station errors during connection establishment, or that caused the connection to terminate.
- Deactivating intermediate sessions.
- Traps for SNA Management Services (SNA/MS) Alert conditions.
This MIB module does not support π ββοΈ
- Configuration of APPN nodes.
- Monitoring and control of endpoint sessions.
- Dependent LU Requester (DLUR) management.
- High-Performance Routing (HPR) management.
3.1. APPN MIB Structure π
The APPN MIB module contains the following groups of objects π
- appnNode - objects related to the APPN node for all node types.
- appnNn - objects to represent the network nodes, virtual routing nodes, and TGs between these nodes that make up the APPN network topology database maintained in NNs.
- appnLocalTopology - objects to represent nodes and TGs between nodes in the local topology database maintained in all nodes.
- appnDir - objects related to LU location information from the node's directory database.
- appnCos - objects related to classes of service information.
- appnSessIntermediate - objects related to intermediate sessions that pass through this node.
These groups are described in more detail below π§
3.1.1. appnNode group π
The appnNode group has the following tables and objects π¦
- appnGeneralInfoAndCaps
This group of objects describes general information about the APPN node π The type of information includes the node type and the time since this node was initialized πΈ
- appnNnUniqueInfoAndCaps
This group of objects describes information specific to network nodes, such as node routing characteristics π
- appnEnUniqueInfoAndCaps
This group of objects describes information specific to end nodes, including its network node server π
- appnPortInformation
This includes the appnPortTable, which describes the configuration and current status of the ports used by APPN, including the port state and DLC type β¨
- appnLinkStationInformation
This includes the appnNodeLsTable, which describes the configuration and current status of the link stations used by APPN, including the link state and port name π«Ά It also includes the appnLsStatusTable, which provides information about errors this node ran into with connections to adjacent nodes, such as the sense data captured during connection failures π It's a product option to decide how many appnLsStatusTable entries are kept π
- appnVrnInfo
This includes the appnVrnTable, which describes the relationship between virtual routing nodes' TGs described in the appnLocalTgTable with ports in the appnPortTable π
3.1.2. appnNn group π§
The appnNn group has the following objects and tables π
- appnNnTopo
These objects contain general information about the network topology database, including the number of nodes present and the number of topology database updates (TDU) wars the node has detected π¦
- appnNnTopology
This includes tables representing the APPN network topology database π That covers the network nodes, virtual routing nodes, and TGs between these nodes, plus the information about these resources carried in topology updates πΈ The tables are first indexed by the same flow reduction sequence number (FRSN) used in topology exchanges between NNs π This lets a management station retrieve only incremental updates, since the agent will update the FRSN of new or changed resources π
3.1.3. appnLocalTopology group β¨
okay so the appnLocalTopology group is where the local node's topology lives πΊοΈ it has these pieces:
appnLocalThisNode- a)
appnLocalGeneral: holds the local node and its type π - b)
appnLocalNnSpecific: these objects carry routing info about the local network node π§ - c)
appnLocalTg: a table for this node's local TGs π
- a)
appnLocalEnTopology: a table of TG info for EN TGs that the NN learned through TG registration with the local node π¦
3.1.4. appnDir group π
the appnDir group is all about the directory, bestie π it has:
appnDirPerf: info about the directory database and about directory searches involving this node πappnDirTable: the directory database itself. it lists the LUs this node knows about, plus the owning node of each LU and the serving NN of that owning node πΈ
3.1.5. appnCos group π
the appnCos group is giving class of service realness π it's made of these tables:
appnCosModeTable: the mode to class of service mapping β¨appnCosNameTable: the transmission priority for each class of service π₯ 3)appnCosNodeRowTable: the node-row info for each class of service, including the weight of each node π 3)appnCosTGRowTable: the TG-row info for each class of service, including the weight of each TG π«Ά
3.1.6. appnSessIntermediate group π¦
the appnSessIntermediate group handles intermediate sessions, and it's so iconic π the pieces are:
appnIsInGlobal: these objects let you control the collection of intermediate session info, like Route Selection Control Vectors (RSCVs) and counters ποΈappnIsInTable: info on active intermediate sessions πappnIsRtpTable: info on active intermediate sessions that are being carried on Rapid Transport Protocol (RTP) connections by High Performance Routing (HPR) π
3.1.7. appnTraps π
there's just one APPN trap, and it's giving main character energy π it's meant to line up with SNA/MS Alerts, but a product doesn't have to implement it (it's optional, bestie). the trap tells you the Alert ID number and, when it can, which resource is affected π§
4. Definitions π
here's the MIB module itself, in all its glory β¨ every line below is copied exactly, so implementers can rely on it π«Ά
APPN-MIB DEFINITIONS ::= BEGIN
IMPORTS
IANAifType
FROM IANAifType-MIB
DisplayString, VariablePointer, RowPointer, DateAndTime,
TruthValue, TimeStamp, TEXTUAL-CONVENTION
FROM SNMPv2-TC
experimental, Counter32, Gauge32, Integer32, Unsigned32,
TimeTicks, OBJECT-TYPE, MODULE-IDENTITY, NOTIFICATION-TYPE
FROM SNMPv2-SMI
MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
FROM SNMPv2-CONF
snanauMIB
FROM SNA-NAU-MIB;
appnMIB MODULE-IDENTITY
LAST-UPDATED "9703201200Z"
ORGANIZATION "IETF SNA NAU MIB WG / AIW APPN MIBs SIG"
CONTACT-INFO
"
Bob Clouston
Cisco Systems
7025 Kit Creek Road
P.O. Box 14987
Research Triangle Park, NC 27709, USA
Tel: 1 919 472 2333
E-mail: clouston@cisco.com
Bob Moore
IBM Corporation
800 Park Offices Drive
RHJA/664
P.O. Box 12195
Research Triangle Park, NC 27709, USA
Tel: 1 919 254 4436
E-mail: remoore@ralvm6.vnet.ibm.com
"
DESCRIPTION
"This is the MIB module for objects used to
manage network devices with APPN capabilities."
::= { snanauMIB 4 }
-- snanauMIB ::= { mib-2 34 }
-- *********************************************************************
-- Textual Conventions
-- *********************************************************************
SnaNodeIdentification ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"An SNA Node Identification consists of two parts, which
together comprise four bytes of hexadecimal data. In SNA the
Node Identification is transported in bytes 2-5 of the XID.
The block number is the first three digits of the Node
Identification. These 3 hexadecimal digits identify the
product.
The ID number is the last 5 digits of the Node Identification.
These 5 hexadecimal digits are administratively defined and
combined with the 3-digit block number form the 8-digit Node
Identification. A unique value is required for connections to
SNA subarea. In some implementations, the value 'bbb00000'
(where 'bbb' represents a 3-digit block number) is returned to
mean that the ID number is not unique on this node.
An SNA Node Identification is represented as eight
ASCII-encoded hexadecimal digits, using the characters '0' -
'9' and 'A' - 'F'."
SYNTAX OCTET STRING (SIZE (8))
SnaControlPointName ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A fully qualified SNA control point name, consisting of a 1 to
8 character network identifier (NetId), a period ('.'), and a 1
to 8 character control point name (CpName).
The NetId and CpName are constructed from the uppercase letters
'A' - 'Z' and the numerics '0' - '9', all encoded in ASCII,
with the restriction that the first character of each must be
a letter. Trailing blanks are not allowed.
Earlier versions of SNA permitted three additional characters
in NetIds and CpNames: '#', '@', and '$'. While this use of
these characters has been retired, a Management Station should
still accept them for backward compatibility."
SYNTAX OCTET STRING (SIZE (3..17))
SnaClassOfServiceName ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"An SNA class-of-service (COS) name, ranging from 1 to 8
ASCII characters. COS names take one of two forms:
- a user-defined COS name is constructed from the uppercase
letters 'A' - 'Z' and the numerics '0' - '9', with the
restriction that the first character of the name must be
a letter.
- an SNA-defined user-session COS name begins with the
character '#', which is followed by up to seven
additional characters from the set of uppercase letters
and numerics.
Trailing blanks are not allowed in either form of COS name.
A zero-length string indicates that a COS name is not
available."
SYNTAX OCTET STRING (SIZE (0..8))
SnaModeName ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"An SNA mode name, ranging from 1 to 8 ASCII characters.
Mode names take one of two forms:
- a user-defined mode name is constructed from the
uppercase letters 'A' - 'Z' and the numerics '0' - '9',
with the restriction that the first character of the name
must be a letter.
- an SNA-defined user-session mode name begins with the
character '#', which is followed by up to seven
additional characters from the set of uppercase letters
and numerics.
Trailing blanks are not allowed in either form of mode name,
with the single exception of the all-blank mode name, where
a string consisting of 8 blanks is returned.
A zero-length string indicates that a mode name is not
available."
SYNTAX OCTET STRING (SIZE (0..8))
SnaSenseData ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"To facilitate their display by a Management Station, sense
data objects in the MIB are represented as OCTET STRINGS
containing eight ASCII characters. Eight '0' characters
indicates that no sense data identifying an SNA error
condition is available.
An SNA sense data is represented as eight hexadecimal digits,
using the characters '0' - '9' and 'A' - 'F'."
SYNTAX OCTET STRING (SIZE (8))
DisplayableDlcAddress ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"DLC address of a port or link station, represented as an
OCTET STRING containing 0 to 64 ASCII characters.
A Management Station should use a value of this type only
for display. The 'real' DLC address, i.e., the sequence of
bytes that flow in the DLC header, is often available in a
DLC-specific MIB.
The zero-length string indicates that the DLC address in
question is not known to the agent."
SYNTAX OCTET STRING (SIZE (0..64))
AppnNodeCounter ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"An object providing global statistics for the entire APPN
node. A Management Station can detect discontinuities in this
counter by monitoring the appnNodeCounterDisconTime object."
SYNTAX Counter32
AppnPortCounter ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"An object providing statistics for an APPN port. A
Management Station can detect discontinuities in this counter
by monitoring the appnPortCounterDisconTime object."
SYNTAX Counter32
AppnLinkStationCounter ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"An object providing statistics for an APPN link station. A
Management Station can detect discontinuities in this counter
by monitoring the appnLsCounterDisconTime object."
SYNTAX Counter32
AppnTopologyEntryTimeLeft ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Number of days before deletion of this entry from the topology
database. Range is 0-15. A value of 0 indicates that the
entry is either in the process of being deleted, or is being
marked for deletion at the next garbage collection cycle."
SYNTAX INTEGER (0..15)
AppnTgDlcData ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"DLC-specific data related to a connection network transmission
group. For other TGs, a zero-length string is returned.
Examples of the type of data returned by an object with this
syntax include the following:
Token-Ring - MAC/SAP
X.25 Switched - dial digits
X.21 Switched - dial digits
Circuit Switch - dial digits
This MIB does not specify formats for these or any other types
of DLC-specific data. Formats may, however, be specified in
documents related to a particular DLC.
The contents of an object with this syntax correspond to the
contents of the DLC-specific subfields of cv46, documented in
(6)."
SYNTAX OCTET STRING (SIZE (0..64))
AppnTgEffectiveCapacity ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A value representing the effective capacity of a transmission
group. This is an administratively assigned value derived from
the link bandwidth and maximum load factor. It is encoded in
the same way as byte 7 of cv47, and represents a floating-point
number in units of 300 bits per second."
SYNTAX OCTET STRING (SIZE (1))
Okay bestie, the security levels are next and they are iconic πβ¨ Each one is a different level of protection for a transmission group, and a class of service says which levels are acceptable.
AppnTgSecurity ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"A value representing the level of security on a transmission
group. A class of service definition includes an indication of
the acceptable TG security value(s) for that class of service.
The following seven values are defined:
nonsecure(1) -
(X'01'): none of the values listed below;
for example, satellite-connected or
located in a nonsecure country
publicSwitchedNetwork(32) -
(X'20'): public switched network; secure
in the sense that there is no
predetermined route that traffic will take
undergroundCable(64) -
(X'40'): underground cable; located in a
secure country (as determined by the
network administrator)
secureConduit(96) -
(X'60'): secure conduit, not guarded; for
example, pressurized pipe
guardedConduit(128) -
(X'80'): guarded conduit; protected
against physical tapping
encrypted(160) -
(X'A0'): link-level encryption is provided
guardedRadiation(192) -
(X'C0'): guarded conduit containing the
transmission medium; protected against
physical and radiation tapping"
SYNTAX INTEGER {
nonsecure(1), -- X'01'
publicSwitchedNetwork(32), -- X'20'
undergroundCable(64), -- X'40'
secureConduit(96), -- X'60'
guardedConduit(128), -- X'80'
encrypted(160), -- X'A0'
guardedRadiation(192) -- X'C0'
}
π Next up is the delay convention, which is how long a signal takes to get across a logical link. It's measured in microseconds πΈ
AppnTgDelay ::= TEXTUAL-CONVENTION
STATUS current
DESCRIPTION
"Relative amount of time that it takes for a signal to travel
the length of a logical link. This time is represented in
microseconds, using the same encoding scheme used in cv47 in a
topology update. Some of the more common values, along with
their encoded hex values, are:
minimum(0), X'00'
negligible(384), X'4C'
terrestrial(9216), X'71'
packet(147456), X'91'
long(294912), X'99'
maximum(2013265920) X'FF'
"
SYNTAX OCTET STRING (SIZE (1))
-- *********************************************************************
appnObjects OBJECT IDENTIFIER ::= { appnMIB 1 }
-- *********************************************************************
-- ******************** The APPN Node Group ****************************
appnNode OBJECT IDENTIFIER ::= { appnObjects 1 }
appnGeneralInfoAndCaps OBJECT IDENTIFIER ::= { appnNode 1 }
appnNnUniqueInfoAndCaps OBJECT IDENTIFIER ::= { appnNode 2 }
appnEnUniqueCaps OBJECT IDENTIFIER ::= { appnNode 3 }
appnPortInformation OBJECT IDENTIFIER ::= { appnNode 4 }
appnLinkStationInformation OBJECT IDENTIFIER ::= { appnNode 5 }
appnVrnInfo OBJECT IDENTIFIER ::= { appnNode 6 }
-- This group provides global information about an APPN network node,
-- an APPN end node, or an LEN node.
-- The first section applies to all three node types.
-- The second section applies only to APPN network nodes.
-- The third section applies only to APPN end nodes and to LEN nodes.
-- The fourth section applies to all three node types.
-- The fifth section applies to all three node types.
-- The sixth section applies only to APPN network nodes.
-- APPN General Information
-- This section applies to both APPN network and end nodes, and to
-- LEN end nodes.
appnNodeCpName OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned network name for this node."
::= { appnGeneralInfoAndCaps 1 }
appnNodeMibVersion OBJECT-TYPE
SYNTAX DisplayString (SIZE (11))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of LAST-UPDATED from this module's MODULE-IDENTITY
macro. This object gives a Management Station an easy way of
determining the level of the MIB supported by an agent."
::= { appnGeneralInfoAndCaps 2 }
appnNodeId OBJECT-TYPE
SYNTAX SnaNodeIdentification
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This node's Node Identification, which it sends in bytes
2-5 of XID."
::= { appnGeneralInfoAndCaps 3 }
appnNodeType OBJECT-TYPE
SYNTAX INTEGER {
networkNode(1),
endNode(2),
t21len(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Type of APPN node:
networkNode(1) - APPN network node
endNode(2) - APPN end node
t21len(4) - LEN end node"
::= { appnGeneralInfoAndCaps 4 }
appnNodeUpTime OBJECT-TYPE
SYNTAX TimeTicks
UNITS "hundredths of a second"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Amount of time (in hundredths of a second) since the APPN node
was last re-initialized."
::= { appnGeneralInfoAndCaps 5 }
appnNodeParallelTg OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node supports parallel TGs."
::= { appnGeneralInfoAndCaps 6 }
appnNodeAdaptiveBindPacing OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node supports adaptive bind pacing for
dependent LUs."
::= { appnGeneralInfoAndCaps 7 }
appnNodeHprSupport OBJECT-TYPE
SYNTAX INTEGER {
noHprSupport(1),
hprBaseOnly(2),
rtpTower(3),
controlFlowsOverRtpTower(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates this node's level of support for high-performance
routing (HPR):
noHprSupport(1) - no HPR support
hprBaseOnly(2) - HPR base (option set 1400)
supported
rtpTower(3) - HPR base and RTP tower
(option set 1401) supported
controlFlowsOverRtpTower(4) - HPR base, RTP tower, and
control flows over RTP
(option set 1402) supported
This object corresponds to cv4580, byte 9, bits 3-4."
::= { appnGeneralInfoAndCaps 8 }
appnNodeMaxSessPerRtpConn OBJECT-TYPE
SYNTAX Gauge32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object represents a configuration parameter indicating
the maximum number of sessions that the APPN node is to put on
any HPR connection. The value is zero if not applicable."
::= { appnGeneralInfoAndCaps 9 }
appnNodeHprIntRteSetups OBJECT-TYPE
SYNTAX AppnNodeCounter
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of HPR route setups received for routes
passing through this node since the node was last
re-initialized."
::= { appnGeneralInfoAndCaps 10 }
appnNodeHprIntRteRejects OBJECT-TYPE
SYNTAX AppnNodeCounter
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of HPR route setups rejected by this node for
routes passing through it since the node was last
re-initialized."
::= { appnGeneralInfoAndCaps 11 }
appnNodeHprOrgRteSetups OBJECT-TYPE
SYNTAX AppnNodeCounter
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of HPR route setups sent for routes
originating in this node since the node was last
re-initialized."
::= { appnGeneralInfoAndCaps 12 }
appnNodeHprOrgRteRejects OBJECT-TYPE
SYNTAX AppnNodeCounter
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of HPR route setups rejected by other nodes for
routes originating in this node since the node was last
re-initialized."
::= { appnGeneralInfoAndCaps 13 }
appnNodeHprEndRteSetups OBJECT-TYPE
SYNTAX AppnNodeCounter
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of HPR route setups received for routes
ending in this node since the node was last re-initialized."
::= { appnGeneralInfoAndCaps 14 }
appnNodeHprEndRteRejects OBJECT-TYPE
SYNTAX AppnNodeCounter
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of HPR route setups rejected by this node for
routes ending in it since the node was last re-initialized."
::= { appnGeneralInfoAndCaps 15 }
appnNodeCounterDisconTime OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of the sysUpTime object the last time the APPN node
was re-initialized."
::= { appnGeneralInfoAndCaps 16 }
-- *********************************************************************
-- APPN Network Node Information
-- This section provides global information about an APPN network node.
appnNodeNnCentralDirectory OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node supports central directory
services.
This object corresponds to cv4580, byte 8, bit 1."
::= { appnNnUniqueInfoAndCaps 1 }
appnNodeNnTreeCache OBJECT-TYPE
SYNTAX INTEGER {
noCache(1),
cacheNoIncrUpdate(2),
cacheWithIncrUpdate(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates this node's level of support for caching of route
trees. Three levels are specified:
noCache(1) - caching of route trees is not
supported
cacheNoIncrUpdate(2) - caching of route trees is
supported, but without incremental
updates
cacheWithIncrUpdate(3) - caching of route trees with
incremental updates is supported"
::= { appnNnUniqueInfoAndCaps 2 }
appnNodeNnRouteAddResist OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Route addition resistance.
This administratively assigned value indicates the relative
desirability of using this node for intermediate session
traffic. The value, which can be any integer 0-255, is used
in route computation. The lower the value, the more
desirable the node is for intermediate routing.
This object corresponds to cv4580, byte 6."
::= { appnNnUniqueInfoAndCaps 3 }
Picking up right where the Network Node stuff left off, bestie π
appnNodeNnIsr OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node supports intermediate session
routing.
This object corresponds to cv4580, byte 8, bit 2."
::= { appnNnUniqueInfoAndCaps 4 }
appnNodeNnFrsn OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The last flow-reduction sequence number (FRSN) sent by this
node in a topology update to an adjacent network node."
::= { appnNnUniqueInfoAndCaps 5 }
appnNodeNnPeriBorderSup OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node has peripheral border node
support.
This object corresponds to cv4580, byte 9, bit 0."
::= { appnNnUniqueInfoAndCaps 6 }
appnNodeNnInterchangeSup OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node has interchange node support.
This object corresponds to cv4580, byte 9, bit 1."
::= { appnNnUniqueInfoAndCaps 7 }
appnNodeNnExteBorderSup OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node has extended border node support.
This object corresponds to cv4580, byte 9, bit 2."
::= { appnNnUniqueInfoAndCaps 8 }
appnNodeNnSafeStoreFreq OBJECT-TYPE
SYNTAX INTEGER (0..32767)
UNITS "TDUs"
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"The topology safe store frequency.
If this number is not zero, then the topology database is saved
each time the total number of topology database updates (TDUs)
received by this node increases by this number. A value of
zero indicates that the topology database is not being saved."
::= { appnNnUniqueInfoAndCaps 9 }
appnNodeNnRsn OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Resource sequence number for this node, which it assigns and
controls.
This object corresponds to the numeric value in cv4580, bytes
2-5."
::= { appnNnUniqueInfoAndCaps 10 }
appnNodeNnCongested OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node is congested. Other network nodes
stop routing traffic to this node while this flag is on.
This object corresponds to cv4580, byte 7, bit 0."
::= { appnNnUniqueInfoAndCaps 11 }
appnNodeNnIsrDepleted OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicate whether intermediated session routing resources are
depleted. Other network nodes stop routing traffic through
this node while this flag is on.
This object corresponds to cv4580, byte 7, bit 1."
::= { appnNnUniqueInfoAndCaps 12 }
appnNodeNnQuiescing OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node is quiescing.
This object corresponds to cv4580, byte 7, bit 5."
::= { appnNnUniqueInfoAndCaps 13 }
appnNodeNnGateway OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node has gateway services support.
This object corresponds to cv4580, byte 8, bit 0."
::= { appnNnUniqueInfoAndCaps 14 }
Okay so the Network Node objects are all wrapped up, and now we're moving on to the End Node side of things π¦
APPN End Node Information π
Ngl this section is giving tidy, just three objects, each with its own little job β¨
-- *********************************************************************
-- APPN End Node Information
appnNodeEnModeCosMap OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this end node supports mode name to COS name
mapping."
::= { appnEnUniqueCaps 1 }
appnNodeEnNnServer OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0 | 3..17))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The fully qualified name of the current NN server for this end
node. An NN server is identified using the format specified in
the SnaControlPointName textual convention. The value is a
zero-length string when there is no active NN server."
::= { appnEnUniqueCaps 2 }
appnNodeEnLuSearch OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node is to be searched for LUs as part
of a network broadcast search."
::= { appnEnUniqueCaps 3 }
Next up is the Port stuff, and this part is literally the main character of the whole MIB π There's a table, an entry, and a bunch of columns that each describe one little detail about a port πΈ
APPN Port Information π§
-- *********************************************************************
-- APPN Port information
--
appnPortTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The Port table describes the configuration and current status
of the ports used by APPN. When it is known to the APPN
component, an OBJECT IDENTIFIER pointing to additional
information related to the port is included. This may, but
need not, be a RowPointer to an ifTable entry for a DLC
interface immediately 'below' the port."
::= { appnPortInformation 1 }
appnPortEntry OBJECT-TYPE
SYNTAX AppnPortEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The port name is used as the index to this table."
INDEX
{ appnPortName }
::= { appnPortTable 1 }
AppnPortEntry ::= SEQUENCE {
appnPortName DisplayString,
appnPortCommand INTEGER,
appnPortOperState INTEGER,
appnPortDlcType IANAifType,
appnPortPortType INTEGER,
appnPortSIMRIM TruthValue,
appnPortLsRole INTEGER,
appnPortNegotLs TruthValue,
appnPortDynamicLinkSupport TruthValue,
appnPortMaxRcvBtuSize INTEGER,
appnPortMaxIframeWindow Gauge32,
appnPortDefLsGoodXids AppnPortCounter,
appnPortDefLsBadXids AppnPortCounter,
appnPortDynLsGoodXids AppnPortCounter,
appnPortDynLsBadXids AppnPortCounter,
appnPortSpecific RowPointer,
appnPortDlcLocalAddr DisplayableDlcAddress,
appnPortCounterDisconTime TimeStamp
}
appnPortName OBJECT-TYPE
SYNTAX DisplayString (SIZE (1..10))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name for this APPN port."
::= { appnPortEntry 1 }
appnPortCommand OBJECT-TYPE
SYNTAX INTEGER {
deactivate(1),
activate(2),
recycle(3),
ready(4)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Object by which a Management Station can activate, deactivate,
or recycle (i.e., cause to be deactivated and then immediately
activated) a port, by setting the value to activate(1),
deactivate(2), or recycle(3), respectively. The value ready(4)
is returned on GET operations until a SET has been processed;
after that the value received on the most recent SET is
returned."
::= { appnPortEntry 2 }
appnPortOperState OBJECT-TYPE
SYNTAX INTEGER {
inactive(1),
pendactive(2),
active(3),
pendinact(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates the current state of this port:
inactive(1) - port is inactive
pendactive(2) - port is pending active
active(3) - port is active
pendinact(4) - port is pending inactive"
::= { appnPortEntry 3 }
appnPortDlcType OBJECT-TYPE
SYNTAX IANAifType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of DLC interface, distinguished according to the
protocol immediately 'below' this layer."
::= { appnPortEntry 4 }
appnPortPortType OBJECT-TYPE
SYNTAX INTEGER {
leased(1),
switched(2),
sharedAccessFacilities(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Identifies the type of line used by this port:
leased(1) - leased line
switched(2) - switched line
sharedAccessFacilities(3) - shared access facility, such
as a LAN."
::= { appnPortEntry 5 }
appnPortSIMRIM OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether Set Initialization Mode (SIM) and Receive
Initialization Mode (RIM) are supported for this port."
::= { appnPortEntry 6 }
appnPortLsRole OBJECT-TYPE
SYNTAX INTEGER {
primary(1),
secondary(2),
negotiable(3),
abm(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Initial role for link stations activated through this port.
The values map to the following settings in the initial XID,
where 'ABM' indicates asynchronous balanced mode and 'NRM'
indicated normal response mode:
primary(1): ABM support = 0 ( = NRM)
role = 01 ( = primary)
secondary(2): ABM support = 0 ( = NRM)
role = 00 ( = secondary)
negotiable(3): ABM support = 0 ( = NRM)
role = 11 ( = negotiable)
abm(4): ABM support = 1 ( = ABM)
role = 11 ( = negotiable)"
::= { appnPortEntry 7 }
appnPortNegotLs OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node supports negotiable link stations
for this port."
::= { appnPortEntry 8 }
appnPortDynamicLinkSupport OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node allows call-in on this port from
nodes not defined locally."
::= { appnPortEntry 9 }
appnPortMaxRcvBtuSize OBJECT-TYPE
SYNTAX INTEGER (99..32767)
UNITS "bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum Basic Transmission Unit (BTU) size that a link station
on this port can receive.
This object corresponds to bytes 21-22 of XID3."
::= { appnPortEntry 10 }
appnPortMaxIframeWindow OBJECT-TYPE
SYNTAX Gauge32
UNITS "I-frames"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum number of I-frames that can be received by the XID
sender before an acknowledgement is received."
::= { appnPortEntry 11 }
Okay bestie, picking right back up with the port counters π β¨
appnPortDefLsGoodXids OBJECT-TYPE
SYNTAX AppnPortCounter
UNITS "XID exchanges"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of successful XID exchanges that have
occurred on all defined link stations on this port since the
last time this port was started."
::= { appnPortEntry 12 }
appnPortDefLsBadXids OBJECT-TYPE
SYNTAX AppnPortCounter
UNITS "XID exchanges"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of unsuccessful XID exchanges that have
occurred on all defined link stations on this port since the
last time this port was started."
::= { appnPortEntry 13 }
appnPortDynLsGoodXids OBJECT-TYPE
SYNTAX AppnPortCounter
UNITS "XID exchanges"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of successful XID exchanges that have
occurred on all dynamic link stations on this port since the
last time this port was started."
::= { appnPortEntry 14 }
appnPortDynLsBadXids OBJECT-TYPE
SYNTAX AppnPortCounter
UNITS "XID exchanges"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The total number of unsuccessful XID exchanges that have
occurred on all dynamic link stations on this port since the
last time this port was started."
::= { appnPortEntry 15 }
appnPortSpecific OBJECT-TYPE
SYNTAX RowPointer
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Identifies the object, e.g., one in a DLC-specific MIB, that
can provide additional information related to this port.
If the agent is unable to identify such an object, the value
0.0 is returned."
::= { appnPortEntry 16 }
appnPortDlcLocalAddr OBJECT-TYPE
SYNTAX DisplayableDlcAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Local DLC address of this port."
::= { appnPortEntry 17 }
appnPortCounterDisconTime OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of the sysUpTime object the last time the port was
started."
::= { appnPortEntry 18 }
-- *********************************************************************
-- APPN Link Station Information
--
So the XID counters come in a neat little set of four π¦ There are two pairs. One pair is for defined link stations, and the other is for dynamic link stations. Each pair has a good count and a bad count, and they all reset when the port gets started again πΈ Then appnPortSpecific is the pointer that says "hey, go look over here for more info," and if the agent can't find a spot to point to, it just says 0.0 π§ Ngl, that 0.0 fallback is very iconic π
Now we get to the link station table, which is giving full main character energy π
appnLsTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnLsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains detailed information about the link
station configuration and its current status."
::= { appnLinkStationInformation 1 }
appnLsEntry OBJECT-TYPE
SYNTAX AppnLsEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is indexed by the link station name."
INDEX
{ appnLsName }
::= { appnLsTable 1 }
AppnLsEntry ::= SEQUENCE {
appnLsName DisplayString,
appnLsCommand INTEGER,
appnLsOperState INTEGER,
appnLsPortName DisplayString,
appnLsDlcType IANAifType,
appnLsDynamic TruthValue,
appnLsAdjCpName OCTET STRING,
appnLsAdjNodeType INTEGER,
appnLsTgNum INTEGER,
appnLsLimResource TruthValue,
appnLsActOnDemand TruthValue,
appnLsMigration TruthValue,
appnLsPartnerNodeId SnaNodeIdentification,
appnLsCpCpSessionSupport TruthValue,
appnLsMaxSendBtuSize INTEGER,
-- performance data
appnLsInXidBytes AppnLinkStationCounter,
appnLsInMsgBytes AppnLinkStationCounter,
appnLsInXidFrames AppnLinkStationCounter,
appnLsInMsgFrames AppnLinkStationCounter,
appnLsOutXidBytes AppnLinkStationCounter,
appnLsOutMsgBytes AppnLinkStationCounter,
appnLsOutXidFrames AppnLinkStationCounter,
appnLsOutMsgFrames AppnLinkStationCounter,
-- propagation delay
appnLsEchoRsps AppnLinkStationCounter,
appnLsCurrentDelay Gauge32,
appnLsMaxDelay Gauge32,
appnLsMinDelay Gauge32,
appnLsMaxDelayTime DateAndTime,
-- XID Statistics
appnLsGoodXids AppnLinkStationCounter,
appnLsBadXids AppnLinkStationCounter,
-- DLC-specific
appnLsSpecific RowPointer,
appnLsActiveTime Unsigned32,
appnLsCurrentStateTime TimeTicks,
-- HPR-specific
appnLsHprSup INTEGER,
appnLsErrRecoSup TruthValue,
appnLsForAnrLabel OCTET STRING,
appnLsRevAnrLabel OCTET STRING,
appnLsCpCpNceId OCTET STRING,
appnLsRouteNceId OCTET STRING,
appnLsBfNceId OCTET STRING,
appnLsLocalAddr DisplayableDlcAddress,
appnLsRemoteAddr DisplayableDlcAddress,
appnLsRemoteLsName DisplayString,
appnLsCounterDisconTime TimeStamp
}
appnLsName OBJECT-TYPE
SYNTAX DisplayString (SIZE (1..10))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name for the link station.
The name can be from one to ten characters."
::= { appnLsEntry 1 }
appnLsCommand OBJECT-TYPE
SYNTAX INTEGER {
deactivate(1),
activate(2),
recycle(3),
ready(4)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Object by which a Management Station can activate, deactivate,
or recycle (i.e., cause to be deactivated and then immediately
reactivated) a link station, by setting the value to
activate(1), deactivate(2), or recycle(3), respectively. The
value ready(4) is returned on GET operations until a SET has
been processed; after that the value received on the most
recent SET is returned."
::= { appnLsEntry 2 }
appnLsOperState OBJECT-TYPE
SYNTAX INTEGER {
inactive(1),
sentConnectOut(2), -- pending active
pendXidExch(3), -- pending active
sendActAs(4), -- pending active
sendSetMode(5), -- pending active
otherPendingActive(6),-- pending active
active(7),
sentDeactAsOrd(8), -- pending inactive
sentDiscOrd(9), -- pending inactive
sentDiscImmed(10), -- pending inactive
otherPendingInact(11) -- pending inactive
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"State of this link station. The comments map these more
granular states to the 'traditional' four states for SNA
resources. Values (2) through (5) represent the normal
progression of states when a link station is being activated.
Value (6) represents some other state of a link station in
the process of being activated. Values (8) through (10)
represent different ways a link station can be deactivated.
Value (11) represents some other state of a link station in
the process of being deactivated."
::= { appnLsEntry 3 }
appnLsPortName OBJECT-TYPE
SYNTAX DisplayString (SIZE (1..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned name for the port associated with
this link station. The name can be from one to ten
characters."
::= { appnLsEntry 4 }
appnLsDlcType OBJECT-TYPE
SYNTAX IANAifType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of DLC interface, distinguished according to the
protocol immediately 'below' this layer."
::= { appnLsEntry 5 }
appnLsDynamic OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Identifies whether this is a dynamic link station. Dynamic
link stations are created when links that have not been locally
defined are established by adjacent nodes."
::= { appnLsEntry 6 }
appnLsAdjCpName OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0 | 3..17))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Fully qualified name of the adjacent node for this link
station. An adjacent node is identified using the format
specified in the SnaControlPointName textual convention.
The value of this object is determined as follows:
1. If the adjacent node's name was received on XID, it
is returned.
2. If the adjacent node's name was not received on XID,
but a locally-defined value is available, it is
returned.
3. Otherwise a string of length 0 is returned, indicating
that no name is known for the adjacent node."
::= { appnLsEntry 7 }
appnLsAdjNodeType OBJECT-TYPE
SYNTAX INTEGER {
networkNode(1),
endNode(2),
t21len(4),
unknown(255)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Node type of the adjacent node on this link:
networkNode(1) - APPN network node
endNode(2) - APPN end node
t21len(4) - LEN end node
unknown(255) - the agent does not know the node type
of the adjacent node
"
::= { appnLsEntry 8 }
appnLsTgNum OBJECT-TYPE
SYNTAX INTEGER (0..256)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number associated with the TG to this link station, with a
range from 0 to 256. A value of 256 indicates that the TG
number has not been negotiated and is unknown at this time."
::= { appnLsEntry 9 }
appnLsLimResource OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the link station is a limited resource. A
link station that is a limited resource is deactivated when it
is no longer in use."
::= { appnLsEntry 10 }
appnLsActOnDemand OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the link station is activatable on demand.
Such a link station is reported in the topology as active
regardless of its actual state, so that it can be considered in
route calculations. If the link station is inactive and is
chosen for a route, it will be activated at that time."
::= { appnLsEntry 11 }
The link station table is where the real drama is π Each row is keyed by appnLsName, which is a name of one to ten characters π The command object is how a management station can activate, deactivate, or recycle a link station, and it reads back ready(4) until someone sets it π The operational state object is basically a play-by-play of the activation and deactivation process, with the pending states lined up nicely π₯
The appnLsAdjCpName field has a little decision tree π It uses the name from XID if there is one, then falls back to a locally defined value, and if neither exists, it's just a zero-length string π«Ά appnLsAdjNodeType tells you whether the neighbour is a network node, an end node, a LEN end node, or unknown(255) π And appnLsActOnDemand is giving "I look active in the topology even when I'm not, so routes can still count me, and if I'm picked I'll wake up" πβ¨
appnLsMigration OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates whether this link station will be used for connections to down-level or migration partners.
In general, migration nodes do not append their CP names on XID3. Such nodes: (1) will not support parallel TGs, (2) should be sent an ACTIVATE PHYSICAL UNIT (ACTPU), provided that the partner supports ACTPUs, and (3) should not be sent segmented BINDs. However, if this node receives an XID3 with an appended CP name, then the partner node will not be treated as a migration node.
In the case of DYNAMIC TGs this object should be set to 'no'."
::= { appnLsEntry 12 }
appnLsPartnerNodeId OBJECT-TYPE SYNTAX SnaNodeIdentification MAX-ACCESS read-only STATUS current DESCRIPTION "The partner's Node Identification, from bytes 2-5 of the XID received from the partner. If this value is not available, then the characters '00000000' are returned."
::= { appnLsEntry 13 }
appnLsCpCpSessionSupport OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates whether CP-CP sessions are supported by this link station. For a dynamic link, this object represents the default ('Admin') value."
::= { appnLsEntry 14 }
appnLsMaxSendBtuSize OBJECT-TYPE SYNTAX INTEGER (99..32767) UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "Numeric value between 99 and 32767 inclusive indicating the maximum number of bytes in a Basic Transmission Unit (BTU) sent on this link.
When the link state (returned by the appnLsOperState object) is inactive or pending active, the value configured at this node is returned. When the link state is active, the value that was negotiated for it is returned. This negotiated value is the smaller of the value configured at this node and the partner's maximum receive BTU length, received in XID."
::= { appnLsEntry 15 }
appnLsInXidBytes OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "Number of XID bytes received. All of the bytes in the SNA basic transmission unit (BTU), i.e., all of the bytes in the DLC XID Information Field, are counted."
::= { appnLsEntry 16 }
appnLsInMsgBytes OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "Number of message (I-frame) bytes received. All of the bytes in the SNA basic transmission unit (BTU), including the transmission header (TH), are counted."
::= { appnLsEntry 17 }
appnLsInXidFrames OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "XID frames" MAX-ACCESS read-only STATUS current DESCRIPTION "Number of XID frames received."
::= { appnLsEntry 18 }
appnLsInMsgFrames OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "I-frames" MAX-ACCESS read-only STATUS current DESCRIPTION "Number of message (I-frame) frames received."
::= { appnLsEntry 19 }
appnLsOutXidBytes OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "Number of XID bytes sent. All of the bytes in the SNA basic transmission unit (BTU), i.e., all of the bytes in the DLC XID Information Field, are counted."
::= { appnLsEntry 20 }
appnLsOutMsgBytes OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "bytes" MAX-ACCESS read-only STATUS current DESCRIPTION "Number of message (I-frame) bytes sent. All of the bytes in the SNA basic transmission unit (BTU), including the transmission header (TH), are counted."
::= { appnLsEntry 21 }
appnLsOutXidFrames OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "XID frames" MAX-ACCESS read-only STATUS current DESCRIPTION "Number of XID frames sent."
::= { appnLsEntry 22 }
appnLsOutMsgFrames OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "I-frames" MAX-ACCESS read-only STATUS current DESCRIPTION "Number of message (I-frame) frames sent."
::= { appnLsEntry 23 }
appnLsEchoRsps OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "echo responses" MAX-ACCESS read-only STATUS current DESCRIPTION
"Number of echo responses returned from adjacent link station. A response should be returned for each test frame sent by this node. Test frames are sent to adjacent nodes periodically to verify connectivity and to measure the actual round trip time, that is, the time interval from when the test frame is sent until when the response is received."
::= { appnLsEntry 24 }
appnLsCurrentDelay OBJECT-TYPE SYNTAX Gauge32 UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "The time that it took for the last test signal to be sent and returned from this link station to the adjacent link station. This time is represented in milliseconds."
::= { appnLsEntry 25 }
appnLsMaxDelay OBJECT-TYPE SYNTAX Gauge32 UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "The longest time it took for a test signal to be sent and returned from this link station to the adjacent link station. This time is represented in milliseconds .
The value 0 is returned if no test signal has been sent and returned."
::= { appnLsEntry 26 }
appnLsMinDelay OBJECT-TYPE SYNTAX Gauge32 UNITS "milliseconds" MAX-ACCESS read-only STATUS current DESCRIPTION "The shortest time it took for a test signal to be sent and returned from this link station to the adjacent link station. This time is represented in milliseconds.
The value 0 is returned if no test signal has been sent and returned."
::= { appnLsEntry 27 }
appnLsMaxDelayTime OBJECT-TYPE SYNTAX DateAndTime MAX-ACCESS read-only STATUS current DESCRIPTION "The time when the longest delay occurred. This time can be used to identify when this high water mark occurred in relation to other events in the APPN node, for example, the time at which an APPC session was either terminated or failed to be established. This latter time is available in the appcHistSessTime object in the APPC MIB.
The value 00000000 is returned if no test signal has been sent and returned."
::= { appnLsEntry 28 }
appnLsGoodXids OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "XID exchanges" MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of successful XID exchanges that have occurred on this link station since the time it was started."
::= { appnLsEntry 29 }
appnLsBadXids OBJECT-TYPE SYNTAX AppnLinkStationCounter UNITS "XID exchanges" MAX-ACCESS read-only STATUS current DESCRIPTION "The total number of unsuccessful XID exchanges that have occurred on this link station since the time it was started."
::= { appnLsEntry 30 }
appnLsSpecific OBJECT-TYPE SYNTAX RowPointer MAX-ACCESS read-only STATUS current DESCRIPTION
"Identifies the object, e.g., one in a DLC-specific MIB, that can provide additional information related to this link station.
If the agent is unable to identify such an object, the value 0.0 is returned."
::= { appnLsEntry 31 }
appnLsActiveTime OBJECT-TYPE SYNTAX Unsigned32 UNITS "hundredths of a second" MAX-ACCESS read-only STATUS current DESCRIPTION "The cumulative amount of time since the node was last re- initialzed, measured in hundredths of a second, that this link station has been in the active state. A zero value indicates that the link station has never been active since the node was last re-initialized."
::= { appnLsEntry 32 }
appnLsCurrentStateTime OBJECT-TYPE SYNTAX TimeTicks UNITS "hundredths of a second" MAX-ACCESS read-only STATUS current DESCRIPTION "The amount of time, measured in hundredths of a second, that the link station has been in its current state."
::= { appnLsEntry 33 }
appnLsHprSup OBJECT-TYPE SYNTAX INTEGER { noHprSupport(1), hprBaseOnly(2), rtpTower(3), controlFlowsOverRtpTower(4) } MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates the level of high performance routing (HPR) support over this link:
noHprSupport(1) - no HPR support hprBaseOnly(2) - HPR base (option set 1400) supported rtpTower(3) - HPR base and RTP tower (option set 1401) supported controlFlowsOverRtpTower(4) - HPR base, RTP tower, and control flows over RTP (option set 1402) supported
If the link is not active, the defined value is returned."
::= { appnLsEntry 34 }
appnLsErrRecoSup OBJECT-TYPE SYNTAX TruthValue MAX-ACCESS read-only STATUS current DESCRIPTION "Indicates whether the link station is supporting HPR link-level error recovery."
::= { appnLsEntry 35 }
appnLsForAnrLabel OBJECT-TYPE SYNTAX OCTET STRING (SIZE (0..8)) MAX-ACCESS read-only STATUS current DESCRIPTION "The forward Automatic Network Routing (ANR) label for this link station. If the link does not support HPR or the value is unknown, a zero-length string is returned."
::= { appnLsEntry 36 }
appnLsRevAnrLabel OBJECT-TYPE SYNTAX OCTET STRING (SIZE (0..8)) MAX-ACCESS read-only STATUS current DESCRIPTION "The reverse Automatic Network Routing (ANR) label for this link station. If the link does not support HPR or the value is unknown, a zero-length string is returned."
::= { appnLsEntry 37 }
appnLsCpCpNceId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (0..8)) MAX-ACCESS read-only STATUS current DESCRIPTION "The network connection endpoint identifier (NCE ID) for CP-CP sessions if this node supports the HPR transport tower, a zero-length string if the value is unknown or not meaningful for this node."
::= { appnLsEntry 38 }
appnLsRouteNceId OBJECT-TYPE SYNTAX OCTET STRING (SIZE (0..8)) MAX-ACCESS read-only STATUS current DESCRIPTION "The network connection endpoint identifier (NCE ID) for Route Setup if this node supports the HPR transport tower, a zero- length string if the value is unknown or not meaningful for this node."
::= { appnLsEntry 39 }
appnLsBfNceId is the one that tells you the NCE ID for the APPN/HPR boundary function, but only if the node supports the HPR transport tower. β¨
appnLsBfNceId OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The network connection endpoint identifier (NCE ID) for the
APPN/HPR boundary function if this node supports the HPR
transport tower, a zero-length string if the value is unknown
or not meaningful for this node."
::= { appnLsEntry 40 }
appnLsLocalAddr is the local address of this link station. π¦
appnLsLocalAddr OBJECT-TYPE
SYNTAX DisplayableDlcAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Local address of this link station."
::= { appnLsEntry 41 }
appnLsRemoteAddr is the address of the other end, the remote link station on this same link. It's giving two-sided conversation π¬
appnLsRemoteAddr OBJECT-TYPE
SYNTAX DisplayableDlcAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Address of the remote link station on this link."
::= { appnLsEntry 42 }
appnLsRemoteLsName is the remote link station name, found through the XID exchange. Names can be one to ten characters, and a zero-length string means it isn't known. Honestly the most relatable "I don't know yet" energy π
appnLsRemoteLsName OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Remote link station discovered from the XID exchange.
The name can be from one to ten characters. A zero-length
string indicates that the value is not known."
::= { appnLsEntry 43 }
appnLsCounterDisconTime is a TimeStamp, and it's the value of sysUpTime the last time the link station was started. So it's basically the moment the link station last got going β°
appnLsCounterDisconTime OBJECT-TYPE
SYNTAX TimeStamp
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The value of the sysUpTime object the last time the link
station was started."
::= { appnLsEntry 44 }
Okay now the status table, which is so iconic because it's the node's diary of drama π It logs the exceptional stuff that happens while a connection is being set up, does its XID exchange, or gets torn down. Normal stuff that goes smoothly? No entries for that. Only the spicy moments get recorded. And how many entries it keeps, and for how long, is up to the implementation, so no promises on the length of the diary π
--********************************************************************
-- This table provides information about errors this node encountered
-- with connections to adjacent nodes. Entries are added for exceptional
-- conditions encountered establishing connections and exceptional
-- conditions that resulted in termination of a connection. It is an
-- implementation option how many entries to keep in this table, and
-- how long to retain any individual entry.
--********************************************************************
appnLsStatusTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnLsStatusEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains information related to exceptional and
potentially exceptional conditions that occurred during the
activation, XID exchange, and termination of a connection. No
entries are created when these activities proceed normally."
::= { appnLinkStationInformation 2 }
appnLsStatusEntry OBJECT-TYPE
SYNTAX AppnLsStatusEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is indexed by the LsStatusIndex, which is an
integer that is continuously updated until it eventually
wraps."
INDEX
{ appnLsStatusIndex }
::= { appnLsStatusTable 1 }
AppnLsStatusEntry ::= SEQUENCE {
appnLsStatusIndex INTEGER,
appnLsStatusTime DateAndTime,
appnLsStatusLsName DisplayString,
appnLsStatusCpName DisplayString,
appnLsStatusPartnerId SnaNodeIdentification,
appnLsStatusTgNum INTEGER,
appnLsStatusGeneralSense SnaSenseData,
appnLsStatusRetry TruthValue,
appnLsStatusEndSense SnaSenseData,
appnLsStatusXidLocalSense SnaSenseData,
appnLsStatusXidRemoteSense SnaSenseData,
appnLsStatusXidByteInError INTEGER,
appnLsStatusXidBitInError INTEGER,
appnLsStatusDlcType IANAifType,
appnLsStatusLocalAddr DisplayableDlcAddress,
appnLsStatusRemoteAddr DisplayableDlcAddress
}
appnLsStatusIndex OBJECT-TYPE
SYNTAX INTEGER (0..2147483647)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table index. The value of the index begins at zero
and is incremented up to a maximum value of 2**31-1
(2,147,483,647) before wrapping."
::= { appnLsStatusEntry 1 }
appnLsStatusTime OBJECT-TYPE
SYNTAX DateAndTime
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Time when the exception condition occurred. This time can be
used to identify when this event occurred in relation to other
events in the APPN node, for example, the time at which an APPC
session was either terminated or failed to be established.
This latter time is available in the appcHistSessTime object in
the APPC MIB."
::= { appnLsStatusEntry 2 }
appnLsStatusLsName OBJECT-TYPE
SYNTAX DisplayString (SIZE (1..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned name for the link station
experiencing the condition."
::= { appnLsStatusEntry 3 }
appnLsStatusCpName OBJECT-TYPE
SYNTAX DisplayString (SIZE (0 | 3..17))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Fully qualified name of the adjacent node for this link
station. An adjacent node is identified using the format
specified in the SnaControlPointName textual convention.
The value of this object is determined as follows:
1. If the adjacent node's name was received on XID, it
is returned.
2. If the adjacent node's name was not received on XID,
but a locally-defined value is available, it is
returned.
3. Otherwise a string of length 0 is returned, indicating
that no name is known for the adjacent node."
::= { appnLsStatusEntry 4 }
appnLsStatusPartnerId OBJECT-TYPE
SYNTAX SnaNodeIdentification
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The partner's Node Identification, from bytes 2-5 of the XID
received from the partner. If this value is not available,
then the characters '00000000' are returned."
::= { appnLsStatusEntry 5 }
appnLsStatusTgNum OBJECT-TYPE
SYNTAX INTEGER (0..256)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number associated with the TG to this link station, with a
range from 0 to 256. A value of 256 indicates that the TG
number was unknown at the time of the failure."
::= { appnLsStatusEntry 6 }
appnLsStatusGeneralSense OBJECT-TYPE
SYNTAX SnaSenseData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The error sense data associated with the start sequence of
activation of a link up to the beginning of the XID sequence.
This is the sense data that came from Configuration Services
whenever the link did not activate or when it went inactive."
::= { appnLsStatusEntry 7 }
appnLsStatusRetry OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node will retry the start request to
activate the link."
::= { appnLsStatusEntry 8 }
appnLsStatusEndSense OBJECT-TYPE
SYNTAX SnaSenseData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The sense data associated with the termination of the link
connection to adjacent node.
This is the sense data that came from the DLC layer."
::= { appnLsStatusEntry 9 }
appnLsStatusXidLocalSense OBJECT-TYPE
SYNTAX SnaSenseData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The sense data associated with the rejection of the XID.
This is the sense data that came from the local node (this
node) when it built the XID Negotiation Error control vector
(cv22) to send to the remote node."
::= { appnLsStatusEntry 10 }
appnLsStatusXidRemoteSense OBJECT-TYPE
SYNTAX SnaSenseData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The sense data the adjacent node returned to this node
indicating the reason the XID was rejected.
This is the sense data that came from the remote node in the
XID Negotiation Error control vector (cv22) it sent to the
local node (this node)."
::= { appnLsStatusEntry 11 }
appnLsStatusXidByteInError OBJECT-TYPE
SYNTAX INTEGER (0..65536)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object identifies the actual byte in the XID that caused
the error. The value 65536 indicates that the object has no
meaning.
For values in the range 0-65535, this object corresponds to
bytes 2-3 of the XID Negotiation (X'22') control vector."
::= { appnLsStatusEntry 12 }
appnLsStatusXidBitInError OBJECT-TYPE
SYNTAX INTEGER (0..8)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object identifies the actual bit in error (0 through 7)
within the errored byte of the XID. The value 8 indicates that
this object has no meaning.
For values in the range 0-7, this object corresponds to byte 4
of the XID Negotiation (X'22') control vector."
::= { appnLsStatusEntry 13 }
appnLsStatusDlcType OBJECT-TYPE
SYNTAX IANAifType
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of DLC interface, distinguished according to the
protocol immediately 'below' this layer."
::= { appnLsStatusEntry 14 }
appnLsStatusLocalAddr OBJECT-TYPE
SYNTAX DisplayableDlcAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Local address of this link station."
::= { appnLsStatusEntry 15 }
appnLsStatusRemoteAddr OBJECT-TYPE
SYNTAX DisplayableDlcAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Address of the remote link station on this link."
::= { appnLsStatusEntry 16 }
Last but not least, the virtual routing node stuff πΈ It's like a little map that ties a virtual routing node to an APPN port. Each row is indexed by the virtual routing node name, TG number, and port name, and there's a matching entry in the appnLocalTgTable for each one. Pretty neat way to keep everything organised π§
-- *********************************************************************
-- APPN Virtual Routing Node Information
--
appnVrnTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnVrnEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table relates a virtual routing node to an APPN port."
::= { appnVrnInfo 1 }
appnVrnEntry OBJECT-TYPE
SYNTAX AppnVrnEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is indexed by the virtual routing node name, TG
number, and port name. There will be a matching entry in the
appnLocalTgTable to represent status and characteristics of the
TG representing each virtual routing node definition."
INDEX
{ appnVrnName, appnVrnTgNum, appnVrnPortName }
::= { appnVrnTable 1 }
AppnVrnEntry ::= SEQUENCE {
appnVrnName SnaControlPointName,
appnVrnTgNum INTEGER,
appnVrnPortName DisplayString
}
appnVrnName OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name of the virtual routing node.
This is a fully qualified name, and matches the appnLocalTgDest
name in the appnLocalTgTable."
::= { appnVrnEntry 1 }
appnVrnTgNum OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Number associated with the transmission group representing
this virtual routing node definition."
::= { appnVrnEntry 2 }
appnVrnPortName OBJECT-TYPE
SYNTAX DisplayString (SIZE (1..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The name of the port this virtual routing node definition is
defined to."
::= { appnVrnEntry 3 }
The APPN Topology Group πΈ
okay so this is where the APPN topology group starts, and it's giving "the whole network map in one place" πΊοΈβ¨ it's the entire network-node topology, including the network nodes, the virtual routing nodes, and all the TGs tied to them. the OIDs come first, bestie π
-- ************** The APPN Topology Group ******************************
appnNn OBJECT IDENTIFIER ::= { appnObjects 2 }
appnNnTopo OBJECT IDENTIFIER ::= { appnNn 1 }
appnNnTopology OBJECT IDENTIFIER ::= { appnNn 2 }
-- This group is used to represent the entire APPN network-node topology
-- including network nodes, virtual routing nodes and all TGs associated
-- with these nodes.
--
-- Network nodes
-- The APPN topology database consists of information about every APPN
-- network node in this network node's topology subnetwork. This
-- information is learned over time as each network node exchanges
-- topology information with the network nodes adjacent to it. The
-- database consists of information about each node, and information
-- about all of the transmission groups used by these nodes.
--
-- Virtual routing nodes
-- Information about virtual routing nodes (representing connection
-- networks) is treated in the same way as information about network
-- nodes, and is replicated at each network node. The FRSN, node name,
-- and node type are the only meaningful fields for a virtual routing
-- node. The other node objects return unspecified values. Each
-- node that has defined a TG with this virtual routing node as the
-- destination also defines a TG on this virtual routing node. There
-- is a TG record for each node that uses this virtual routing node.
--
-- The APPN node table represents node information from the APPN topology
-- database, with the FRSN and APPN CP fully qualified name serving as
-- the index. The FRSN is the agent's relative time stamp of an update
-- to the network topology database. After collecting the entire database
-- once, a management application can issue GET NEXT commands starting
-- from the last rows it has retrieved from the appnNnTopologyFRTable and
-- from the appnNnTgTopologyFRTable. When the response to either of these
-- GET NEXT commands returns another row of its respective table, this
-- indicates a change to the agent's topology database. The management
-- application can then retrieve only the updates to the table, using
-- GET NEXT commands starting from the last retrieved node or TG
-- entry.
--
-- The format of the actual APPN topology database is as follows:
--
-- Node table (entry for each node in network)
-- TG table (entry for each TG owned by node)
--
-- Due to SNMP's ASN.1 limitations, we cannot represent the TG table
-- within the node table in this way. We define separate tables for
-- nodes and TGs, adding the node name to each TG entry to provide a
-- means of correlating the TG with its originating node.
so the big picture is that the topology DB is basically a node table with a TG table hanging off each node π§ but SNMP's ASN.1 can't do nested stuff like that, so they split it into separate tables and stick the node name on each TG entry so you can still match them up. iykyk, it's a whole vibe π«Ά
The topology counters π
these are the little read-only counters for the topology database. the max-nodes one is literally the ceiling, and the cur-nodes one tells you how full things are. the purge and TDU war counters keep score of the drama since the last re-init π
appnNnTopoMaxNodes OBJECT-TYPE
SYNTAX Gauge32
UNITS "node entries"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum number of node entries allowed in the APPN topology
database. It is an implementation choice whether to count only
network-node entries, or to count all node entries. If the
number of node entries exceeds this value, APPN will issue an
Alert and the node can no longer participate as a network node.
The value 0 indicates that the local node has no defined limit,
and the number of node entries is bounded only by memory."
::= { appnNnTopo 1 }
appnNnTopoCurNumNodes OBJECT-TYPE
SYNTAX Gauge32
UNITS "node entries"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current number of node entries in this node's topology
database. It is an implementation choice whether to count only
network-node entries, or to count all node entries, but an
implementation must make the same choice here that it makes for
the appnNnTopoMaxNodes object. If this value exceeds the
maximum number of nodes allowed (appnNnTopoMaxNodes, if that
field in not 0), APPN Alert CPDB002 is issued."
::= { appnNnTopo 2 }
appnNnTopoNodePurges OBJECT-TYPE
SYNTAX AppnNodeCounter
UNITS "node entries"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of topology node records purged from this node's
topology database since the node was last re-initialized."
::= { appnNnTopo 3 }
appnNnTopoTgPurges OBJECT-TYPE
SYNTAX AppnNodeCounter
UNITS "TG entries"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Total number of topology TG records purged from this node's
topology database since the node was last re-initialized."
::= { appnNnTopo 4 }
appnNnTopoTotalTduWars OBJECT-TYPE
SYNTAX AppnNodeCounter
UNITS "TDU wars"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of TDU wars detected by this node since its last
initialization."
::= { appnNnTopo 5 }
The network node topology table π¦
this is the main event, the table that lists every APPN network node and virtual routing node in this node's topology DB. it's indexed by FRSN plus the fully qualified name, so it's sorted by how recently something changed π₯ and the FRSN is basically the agent's relative timestamp for updates. the cute part is the polling trick: grab the whole thing once, then just GET NEXT from where you stopped and you only get the updates. main character management energy π
-- APPN network node topology table (using FRSN and name as index)
-- This table describes every APPN network node and virtual routing node
-- represented in this node's topology database.
appnNnTopologyFRTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnNnTopologyFREntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Portion of the APPN topology database that describes all of
the APPN network nodes and virtual routing nodes known to this
node."
::= { appnNnTopology 3 }
appnNnTopologyFREntry OBJECT-TYPE
SYNTAX AppnNnTopologyFREntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The FRSN and the fully qualified node name are used to index
this table."
INDEX
{appnNnNodeFRFrsn,
appnNnNodeFRName}
::= { appnNnTopologyFRTable 1 }
AppnNnTopologyFREntry ::= SEQUENCE {
appnNnNodeFRFrsn Unsigned32,
appnNnNodeFRName SnaControlPointName,
appnNnNodeFREntryTimeLeft AppnTopologyEntryTimeLeft,
appnNnNodeFRType INTEGER,
appnNnNodeFRRsn Unsigned32,
appnNnNodeFRRouteAddResist INTEGER,
appnNnNodeFRCongested TruthValue,
appnNnNodeFRIsrDepleted TruthValue,
appnNnNodeFRQuiescing TruthValue,
appnNnNodeFRGateway TruthValue,
appnNnNodeFRCentralDirectory TruthValue,
appnNnNodeFRIsr TruthValue,
appnNnNodeFRGarbageCollect TruthValue,
appnNnNodeFRHprSupport INTEGER,
appnNnNodeFRPeriBorderSup TruthValue,
appnNnNodeFRInterchangeSup TruthValue,
appnNnNodeFRExteBorderSup TruthValue
}
appnNnNodeFRFrsn OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Flow reduction sequence numbers (FRSNs) are associated with
Topology Database Updates (TDUs) and are unique only within
each APPN network node. A TDU can be associated with multiple
APPN resources. This FRSN indicates the last relative time
this resource was updated at the agent node."
::= { appnNnTopologyFREntry 1 }
appnNnNodeFRName OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned network name that is locally defined
at each network node."
::= { appnNnTopologyFREntry 2 }
appnNnNodeFREntryTimeLeft OBJECT-TYPE
SYNTAX AppnTopologyEntryTimeLeft
UNITS "days"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of days before deletion of this network node entry."
::= { appnNnTopologyFREntry 3 }
appnNnNodeFRType OBJECT-TYPE
SYNTAX INTEGER {
networkNode(1),
virtualRoutingNode(3)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Type of APPN node."
::= { appnNnTopologyFREntry 4 }
appnNnNodeFRRsn OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Resource sequence number, which is assigned and controlled by
the network node that owns this resource. An odd number
indicates that information about the resource is inconsistent.
This object corresponds to the numeric value in cv4580, bytes
2-5."
::= { appnNnTopologyFREntry 5 }
appnNnNodeFRRouteAddResist OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Route addition resistance.
This administratively assigned value indicates the relative
desirability of using this node for intermediate session
traffic. The value, which can be any integer 0-255, is used
in route computation. The lower the value, the more
desirable the node is for intermediate routing.
This object corresponds to cv4580, byte 6."
::= { appnNnTopologyFREntry 6 }
appnNnNodeFRCongested OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node is congested. This node is not be
included in route selection by other nodes when this congestion
exists.
This object corresponds to cv4580, byte 7, bit 0."
::= { appnNnTopologyFREntry 7 }
appnNnNodeFRIsrDepleted OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether intermediate session routing resources are
depleted. This node is not included in intermediate route
selection by other nodes when resources are depleted.
This object corresponds to cv4580, byte 7, bit 1."
::= { appnNnTopologyFREntry 8 }
appnNnNodeFRQuiescing OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node is quiescing. This node is not
included in route selection by other nodes when the node is
quiescing.
This object corresponds to cv4580, byte 7, bit 5."
::= { appnNnTopologyFREntry 9 }
appnNnNodeFRGateway OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node provide gateway services.
This object corresponds to cv4580, byte 8, bit 0."
::= { appnNnTopologyFREntry 10 }
appnNnNodeFRCentralDirectory OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node supports central directory
services.
This object corresponds to cv4580, byte 8, bit 1."
::= { appnNnTopologyFREntry 11 }
appnNnNodeFRIsr OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node supports intermediate session
routing (ISR).
This object corresponds to cv4580, byte 8, bit 2."
::= { appnNnTopologyFREntry 12 }
appnNnNodeFRGarbageCollect OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the node has been marked for garbage
collection (deletion from the topology database) upon the next
garbage collection cycle.
This object corresponds to cv4580, byte 7, bit 3."
::= { appnNnTopologyFREntry 13 }
Okay bestie, the HPR support level is giving main character energy π It's a little menu with four settings, and each one just says how much high-performance routing the node can do π¦
appnNnNodeFRHprSupport OBJECT-TYPE
SYNTAX INTEGER {
noHprSupport(1),
hprBaseOnly(2),
rtpTower(3),
controlFlowsOverRtpTower(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates the node's level of support for high-performance
routing (HPR):
noHprSupport(1) - no HPR support
hprBaseOnly(2) - HPR base (option set 1400)
supported
rtpTower(3) - HPR base and RTP tower
(option set 1401) supported
controlFlowsOverRtpTower(4) - HPR base, RTP tower, and
control flows over RTP
(option set 1402) supported
This object corresponds to cv4580, byte 9, bits 3-4."
::= { appnNnTopologyFREntry 14 }
appnNnNodeFRPeriBorderSup OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node has peripheral border node
support.
This object corresponds to cv4580, byte 9, bit 0."
::= { appnNnTopologyFREntry 15 }
appnNnNodeFRInterchangeSup OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node has interchange node support.
This object corresponds to cv4580, byte 9, bit 1."
::= { appnNnTopologyFREntry 16 }
appnNnNodeFRExteBorderSup OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node has extended border node
support.
This object corresponds to cv4580, byte 9, bit 2."
::= { appnNnTopologyFREntry 17 }
Next up, the TG table! β¨ This one tracks every APPN transmission group between the network nodes this node knows about, and it repeats the owning node's name so you can match each TG to its node π
--APPN transmission group (TG) table
-- This table describes the TGs associated with all the APPN network
-- nodes known to this node. The originating (owning) node for each
-- TG is repeated here to provide a means of correlating the TGs with
-- the nodes.
appnNnTgTopologyFRTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnNnTgTopologyFREntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Portion of the APPN topology database that describes all of
the APPN transmissions groups between nodes in the database."
::= { appnNnTopology 4 }
appnNnTgTopologyFREntry OBJECT-TYPE
SYNTAX AppnNnTgTopologyFREntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is indexed by four columns: FRSN, TG owner fully
qualified node name, TG destination fully qualified node name,
and TG number."
INDEX
{appnNnTgFRFrsn,
appnNnTgFROwner,
appnNnTgFRDest,
appnNnTgFRNum}
::= { appnNnTgTopologyFRTable 1 }
AppnNnTgTopologyFREntry ::= SEQUENCE {
appnNnTgFRFrsn Unsigned32,
appnNnTgFROwner SnaControlPointName,
appnNnTgFRDest SnaControlPointName,
appnNnTgFRNum INTEGER,
appnNnTgFREntryTimeLeft AppnTopologyEntryTimeLeft,
appnNnTgFRDestVirtual TruthValue,
appnNnTgFRDlcData AppnTgDlcData,
appnNnTgFRRsn Unsigned32,
appnNnTgFROperational TruthValue,
appnNnTgFRQuiescing TruthValue,
appnNnTgFRCpCpSession INTEGER,
appnNnTgFREffCap AppnTgEffectiveCapacity,
appnNnTgFRConnCost INTEGER,
appnNnTgFRByteCost INTEGER,
appnNnTgFRSecurity AppnTgSecurity,
appnNnTgFRDelay AppnTgDelay,
appnNnTgFRUsr1 INTEGER,
appnNnTgFRUsr2 INTEGER,
appnNnTgFRUsr3 INTEGER,
appnNnTgFRGarbageCollect TruthValue,
appnNnTgFRSubareaNum Unsigned32,
appnNnTgFRHprSup TruthValue,
appnNnTgFRDestHprTrans TruthValue,
appnNnTgFRTypeIndicator INTEGER,
appnNnTgFRIntersubnet TruthValue
}
Now the individual TG columns, and honestly each one is a little gem π The FRSN is the index, and it tells you when this resource was last updated at this node πΈ
appnNnTgFRFrsn OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Flow reduction sequence numbers (FRSNs) are associated with
Topology Database Updates (TDUs) and are unique only within
each APPN network node. A TDU can be associated with multiple
APPN resources. This FRSN indicates the last time this
resource was updated at this node."
::= { appnNnTgTopologyFREntry 1 }
appnNnTgFROwner OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name for the originating node for
this TG. This is the same name specified in the node table."
::= { appnNnTgTopologyFREntry 2 }
appnNnTgFRDest OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned fully qualified network name for the
destination node for this TG."
::= { appnNnTgTopologyFREntry 3 }
appnNnTgFRNum OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Number associated with this transmission group. Range is
0-255."
::= { appnNnTgTopologyFREntry 4 }
appnNnTgFREntryTimeLeft OBJECT-TYPE
SYNTAX AppnTopologyEntryTimeLeft
UNITS "days"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of days before deletion of this network node TG entry
if it is not operational or has an odd (inconsistent) RSN."
::= { appnNnTgTopologyFREntry 5 }
appnNnTgFRDestVirtual OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the destination node is a virtual routing
node."
::= { appnNnTgTopologyFREntry 6 }
appnNnTgFRDlcData OBJECT-TYPE
SYNTAX AppnTgDlcData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"DLC-specific data related to a link connection network."
::= { appnNnTgTopologyFREntry 7 }
appnNnTgFRRsn OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current owning node's resource sequence number for this
resource. An odd number indicates that information about the
resource is inconsistent.
This object corresponds to the numeric value in cv47, bytes
2-5"
::= { appnNnTgTopologyFREntry 8 }
appnNnTgFROperational OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the transmission group is operational.
This object corresponds to cv47, byte 6, bit 0."
::= { appnNnTgTopologyFREntry 9 }
appnNnTgFRQuiescing OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the transmission group is quiescing.
This object corresponds to cv47, byte 6, bit 2."
::= { appnNnTgTopologyFREntry 10 }
appnNnTgFRCpCpSession OBJECT-TYPE
SYNTAX INTEGER {
supportedUnknownStatus(1),
supportedActive(2),
notSupported(3),
supportedNotActive(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether CP-CP sessions are supported on this TG, and
whether the TG owner's contention-winner session is active on
this TG. Some nodes in the network are not able to
differentiate support and status of CP-CP sessions, and thus
may report the 'supportedUnknownStatus' value.
This object corresponds to cv47, byte 6, bits 3-4."
::= { appnNnTgTopologyFREntry 11 }
appnNnTgFREffCap OBJECT-TYPE
SYNTAX AppnTgEffectiveCapacity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Effective capacity for this TG."
::= { appnNnTgTopologyFREntry 12 }
appnNnTgFRConnCost OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Cost per connect time.
This is an administratively assigned value representing the
relative cost per unit of time to use this TG. Range is from
0, which means no cost, to 255, which indicates maximum cost.
This object corresponds to cv47, byte 13."
::= { appnNnTgTopologyFREntry 13 }
appnNnTgFRByteCost OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Cost per byte transmitted.
This is an administratively assigned value representing the
relative cost of transmitting a byte over this TG. Range is
from 0, which means no cost, to 255, which indicates maximum
cost.
This object corresponds to cv47, byte 14."
::= { appnNnTgTopologyFREntry 14 }
appnNnTgFRSecurity OBJECT-TYPE
SYNTAX AppnTgSecurity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned security level of this TG.
This object corresponds to cv47, byte 16."
::= { appnNnTgTopologyFREntry 15 }
appnNnTgFRDelay OBJECT-TYPE
SYNTAX AppnTgDelay
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned delay associated with this TG.
This object corresponds to cv47, byte 17."
::= { appnNnTgTopologyFREntry 16 }
appnNnTgFRUsr1 OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"First user-defined TG characteristic for this TG. This is
an administratively assigned value associated with the TG.
This object corresponds to cv47, byte 19."
::= { appnNnTgTopologyFREntry 17 }
appnNnTgFRUsr2 OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Second user-defined TG characteristic for this TG. This is
an administratively assigned value associated with the TG.
This object corresponds to cv47, byte 20."
::= { appnNnTgTopologyFREntry 18 }
appnNnTgFRUsr3 OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Third user-defined TG characteristic for this TG. This is
an administratively assigned value associated with the TG.
This object corresponds to cv47, byte 21."
::= { appnNnTgTopologyFREntry 19 }
appnNnTgFRGarbageCollect OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the TG has been marked for garbage
collection (deletion from the topology database) upon the next
garbage collection cycle.
This object corresponds to cv47, byte 6, bit 1."
::= { appnNnTgTopologyFREntry 20 }
appnNnTgFRSubareaNum OBJECT-TYPE
SYNTAX Unsigned32
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The subarea number associated with this TG.
This object corresponds to cv4680, bytes m+2 through m+5."
::= { appnNnTgTopologyFREntry 21 }
appnNnTgFRHprSup OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether high performance routing (HPR)
is supported over this TG.
This object corresponds to cv4680, byte m+1, bit 2."
::= { appnNnTgTopologyFREntry 22 }
Okay bestie, the next batch of objects is all about the transmission group (TG) stuff π¦ First up, the destination node's HPR transport tower support, then the TG type and the intersubnet flag π
appnNnTgFRDestHprTrans OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the destination node supports
high performance routing (HPR) transport tower.
This object corresponds to cv4680, byte m+1, bit 7."
::= { appnNnTgTopologyFREntry 23 }
appnNnTgFRTypeIndicator OBJECT-TYPE
SYNTAX INTEGER {
unknown(1),
appnOrBfTg(2),
interchangeTg(3),
virtualRouteTg(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates the type of the TG.
This object corresponds to cv4680, byte m+1, bits 3-4."
::= { appnNnTgTopologyFREntry 24 }
appnNnTgFRIntersubnet OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the transmission group is an intersubnet TG,
which defines a border between subnetworks.
This object corresponds to cv4680, byte m+1, bit 5."
::= { appnNnTgTopologyFREntry 25 }
Now we're moving into the APPN Local Topology Group πΈ This one holds the local topology that both end nodes and network nodes keep track of. It has two tables: one for every TG this node owns (every node type gets this one) and one for everything this node knows about the TGs its end nodes own (only network nodes get this one) π§
-- ************** The APPN Local Topology Group ************************
-- This MIB Group represents the local topology maintained in
-- both APPN end nodes and network nodes. It consists of two
-- tables:
-- - a table containing information about all of the TGs owned
-- by this node, which is implemented by all node types.
-- - a table containing all of the information known to this node
-- about the TGs owned by its end nodes, which is implemented only
-- by network nodes.
appnLocalTopology OBJECT IDENTIFIER ::= { appnObjects 3 }
-- APPN Local Transmission Group (TG) table
-- This table describes the TGs associated with this node only.
appnLocalTgTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnLocalTgEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"TG Table describes all of the TGs owned by this node. The TG
destination can be a virtual node, network node, LEN node, or
end node."
::= { appnLocalTopology 1 }
appnLocalTgEntry OBJECT-TYPE
SYNTAX AppnLocalTgEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is indexed by the destination CPname and the TG
number."
INDEX
{appnLocalTgDest,
appnLocalTgNum}
::= { appnLocalTgTable 1 }
AppnLocalTgEntry ::= SEQUENCE {
appnLocalTgDest SnaControlPointName,
appnLocalTgNum INTEGER,
appnLocalTgDestVirtual TruthValue,
appnLocalTgDlcData AppnTgDlcData,
appnLocalTgPortName DisplayString,
appnLocalTgQuiescing TruthValue,
appnLocalTgOperational TruthValue,
appnLocalTgCpCpSession INTEGER,
appnLocalTgEffCap AppnTgEffectiveCapacity,
appnLocalTgConnCost INTEGER,
appnLocalTgByteCost INTEGER,
appnLocalTgSecurity AppnTgSecurity,
appnLocalTgDelay AppnTgDelay,
appnLocalTgUsr1 INTEGER,
appnLocalTgUsr2 INTEGER,
appnLocalTgUsr3 INTEGER,
appnLocalTgHprSup INTEGER,
appnLocalTgIntersubnet TruthValue
}
appnLocalTgDest OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name of the destination node for
this TG. This is the fully qualified name of a network node,
end node, LEN node, or virtual routing node."
::= { appnLocalTgEntry 1 }
appnLocalTgNum OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Number associated with this transmission group."
::= { appnLocalTgEntry 2 }
appnLocalTgDestVirtual OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the destination node for this TG is a
virtual routing node."
::= { appnLocalTgEntry 3 }
appnLocalTgDlcData OBJECT-TYPE
SYNTAX AppnTgDlcData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"DLC-specific data related to a link connection network."
::= { appnLocalTgEntry 4 }
appnLocalTgPortName OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..10))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned name for the local port associated
with this TG. A zero-length string indicates that this value
is unknown."
::= { appnLocalTgEntry 5 }
appnLocalTgQuiescing OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the transmission group is quiescing."
::= { appnLocalTgEntry 6 }
appnLocalTgOperational OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the transmission group is operational."
::= { appnLocalTgEntry 7 }
appnLocalTgCpCpSession OBJECT-TYPE
SYNTAX INTEGER {
supportedUnknownStatus(1),
supportedActive(2),
notSupported(3),
supportedNotActive(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether CP-CP sessions are supported on this TG, and
whether the TG owner's contention-winner session is active on
this TG. Some nodes in the network are not able to
differentiate support and status of CP-CP sessions, and thus
may report the 'supportedUnknownStatus' value."
::= { appnLocalTgEntry 8 }
appnLocalTgEffCap OBJECT-TYPE
SYNTAX AppnTgEffectiveCapacity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Effective capacity for this TG."
::= { appnLocalTgEntry 9 }
appnLocalTgConnCost OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Cost per connect time: a value representing the relative cost
per unit of time to use the TG. Range is from 0, which means
no cost, to 255."
::= { appnLocalTgEntry 10 }
appnLocalTgByteCost OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Relative cost of transmitting a byte over this link.
Range is from 0 (lowest cost) to 255."
::= { appnLocalTgEntry 11 }
appnLocalTgSecurity OBJECT-TYPE
SYNTAX AppnTgSecurity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned security level of this TG."
::= { appnLocalTgEntry 12 }
appnLocalTgDelay OBJECT-TYPE
SYNTAX AppnTgDelay
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned delay associated with this TG."
::= { appnLocalTgEntry 13 }
appnLocalTgUsr1 OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"First user-defined TG characteristic for this TG. This is
an administratively assigned value associated with the TG."
::= { appnLocalTgEntry 14 }
appnLocalTgUsr2 OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Second user-defined TG characteristic for this TG. This is
an administratively assigned value associated with the TG."
::= { appnLocalTgEntry 15 }
appnLocalTgUsr3 OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Third user-defined TG characteristic for this TG. This is
an administratively assigned value associated with the TG."
::= { appnLocalTgEntry 16 }
appnLocalTgHprSup OBJECT-TYPE
SYNTAX INTEGER {
noHprSupport(1),
hprBaseOnly(2),
rtpTower(3),
controlFlowsOverRtpTower(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates the level of high performance routing (HPR) support
over this TG :
noHprSupport(1) - no HPR support
hprBaseOnly(2) - HPR base (option set 1400)
supported
rtpTower(3) - HPR base and RTP tower
(option set 1401) supported
controlFlowsOverRtpTower(4) - HPR base, RTP tower, and
control flows over RTP
(option set 1402) supported"
::= { appnLocalTgEntry 17 }
appnLocalTgIntersubnet OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the transmission group is an intersubnet TG,
which defines a border between subnetworks."
::= { appnLocalTgEntry 18 }
-- APPN Local End Node Transmission Group (TG) table
-- This table describes the TGs associated with all of the end nodes
-- known to this node.
appnLocalEnTgTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnLocalEnTgEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table describing all of the TGs owned by the end nodes known
to this node via TG registration. This node does not represent
its own view of the TG on behalf of the partner node in this
table. The TG destination can be a virtual routing node,
network node, or end node."
::= { appnLocalTopology 2 }
appnLocalEnTgEntry OBJECT-TYPE
SYNTAX AppnLocalEnTgEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table requires multiple indexes to uniquely identify each
TG. They are originating CPname, destination CPname, and the
TG number."
INDEX
{appnLocalEnTgOrigin,
appnLocalEnTgDest,
appnLocalEnTgNum}
::= { appnLocalEnTgTable 1 }
AppnLocalEnTgEntry ::= SEQUENCE {
appnLocalEnTgOrigin SnaControlPointName,
appnLocalEnTgDest SnaControlPointName,
appnLocalEnTgNum INTEGER,
appnLocalEnTgEntryTimeLeft AppnTopologyEntryTimeLeft,
appnLocalEnTgDestVirtual TruthValue,
appnLocalEnTgDlcData AppnTgDlcData,
appnLocalEnTgOperational TruthValue,
appnLocalEnTgCpCpSession INTEGER,
appnLocalEnTgEffCap AppnTgEffectiveCapacity,
appnLocalEnTgConnCost INTEGER,
appnLocalEnTgByteCost INTEGER,
appnLocalEnTgSecurity AppnTgSecurity,
appnLocalEnTgDelay AppnTgDelay,
appnLocalEnTgUsr1 INTEGER,
appnLocalEnTgUsr2 INTEGER,
appnLocalEnTgUsr3 INTEGER
}
appnLocalEnTgOrigin OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name of the origin node for this
TG. This is a fully qualified network name."
::= { appnLocalEnTgEntry 1 }
appnLocalEnTgDest OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name of the destination node for
this TG. This is the fully qualified name of a network node,
end node, LEN node, or virtual routing node."
::= { appnLocalEnTgEntry 2 }
Okay so we're still in the local end node TG entries, and the number column is up first π
appnLocalEnTgNum OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Number associated with this transmission group."
::= { appnLocalEnTgEntry 3 }
appnLocalEnTgEntryTimeLeft OBJECT-TYPE
SYNTAX AppnTopologyEntryTimeLeft
UNITS "days"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of days before deletion of this end node TG entry."
::= { appnLocalEnTgEntry 4 }
appnLocalEnTgDestVirtual OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the destination node is a virtual routing
node."
::= { appnLocalEnTgEntry 5 }
appnLocalEnTgDlcData OBJECT-TYPE
SYNTAX AppnTgDlcData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"DLC-specific data related to a link connection network."
::= { appnLocalEnTgEntry 6 }
appnLocalEnTgOperational OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the transmission group is operational."
::= { appnLocalEnTgEntry 7 }
appnLocalEnTgCpCpSession OBJECT-TYPE
SYNTAX INTEGER {
supportedUnknownStatus(1),
supportedActive(2),
notSupported(3),
supportedNotActive(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether CP-CP sessions are supported on this TG, and
whether the TG owner's contention-winner session is active on
this TG. Some nodes in the network are not able to
differentiate support and status of CP-CP sessions, and thus
may report the 'supportedUnknownStatus' value."
::= { appnLocalEnTgEntry 8 }
appnLocalEnTgEffCap OBJECT-TYPE
SYNTAX AppnTgEffectiveCapacity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Effective capacity for this TG."
::= { appnLocalEnTgEntry 9 }
appnLocalEnTgConnCost OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Cost per connect time: a value representing the relative cost
per unit of time to use the TG. Range is from 0, which means
no cost, to 255."
::= { appnLocalEnTgEntry 10 }
appnLocalEnTgByteCost OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Relative cost of transmitting a byte over this link.
Range is from 0, which means no cost, to 255."
::= { appnLocalEnTgEntry 11 }
appnLocalEnTgSecurity OBJECT-TYPE
SYNTAX AppnTgSecurity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned security level of this TG."
::= { appnLocalEnTgEntry 12 }
appnLocalEnTgDelay OBJECT-TYPE
SYNTAX AppnTgDelay
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned delay associated with this TG."
::= { appnLocalEnTgEntry 13 }
appnLocalEnTgUsr1 OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"First user-defined TG characteristic for this TG. This is
an administratively assigned value associated with the TG."
::= { appnLocalEnTgEntry 14 }
appnLocalEnTgUsr2 OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Second user-defined TG characteristic for this TG. This is
an administratively assigned value associated with the TG."
::= { appnLocalEnTgEntry 15 }
appnLocalEnTgUsr3 OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Third user-defined TG characteristic for this TG. This is
an administratively assigned value associated with the TG."
::= { appnLocalEnTgEntry 16 }
The APPN Directory Group β¨
Next up is the directory group, which is where the nodes keep track of who's where. Main character energy πΈ
-- ************** The APPN Directory Group *****************************
appnDir OBJECT IDENTIFIER ::= { appnObjects 4 }
appnDirPerf OBJECT IDENTIFIER ::= { appnDir 1 }
-- The APPN Directory Group
-- The APPN Directory Database
-- Each APPN network node maintains directories containing information on
-- which LUs (applications) are available and where they are located.
-- LUs can be located in an APPN network node or in any of its attached
-- end nodes.
appnDirMaxCaches OBJECT-TYPE
SYNTAX Unsigned32
UNITS "directory entries"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum number of cache entries allowed. This is an
administratively assigned value."
::= { appnDirPerf 1 }
appnDirCurCaches OBJECT-TYPE
SYNTAX Gauge32
UNITS "directory entries"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current number of cache entries."
::= { appnDirPerf 2 }
appnDirCurHomeEntries OBJECT-TYPE
SYNTAX Gauge32
UNITS "directory entries"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current number of home entries."
::= { appnDirPerf 3 }
appnDirRegEntries OBJECT-TYPE
SYNTAX Gauge32
UNITS "directory entries"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current number of registered entries."
::= { appnDirPerf 4 }
appnDirInLocates OBJECT-TYPE
SYNTAX AppnNodeCounter
UNITS "Locate messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of directed Locates received since the node was last
re-initialized."
::= { appnDirPerf 5 }
appnDirInBcastLocates OBJECT-TYPE
SYNTAX AppnNodeCounter
UNITS "Locate messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of broadcast Locates received since the node was last
re-initialized."
::= { appnDirPerf 6 }
appnDirOutLocates OBJECT-TYPE
SYNTAX AppnNodeCounter
UNITS "Locate messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of directed Locates sent since the node was last
re-initialized."
::= { appnDirPerf 7 }
appnDirOutBcastLocates OBJECT-TYPE
SYNTAX AppnNodeCounter
UNITS "Locate messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of broadcast Locates sent since the node was last
re-initialized."
::= { appnDirPerf 8 }
appnDirNotFoundLocates OBJECT-TYPE
SYNTAX AppnNodeCounter
UNITS "Locate messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of directed Locates returned with a 'not found' since
the node was last re-initialized."
::= { appnDirPerf 9 }
appnDirNotFoundBcastLocates OBJECT-TYPE
SYNTAX AppnNodeCounter
UNITS "Locate messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of broadcast Locates returned with a 'not found' since
the node was last re-initialized."
::= { appnDirPerf 10 }
appnDirLocateOutstands OBJECT-TYPE
SYNTAX Gauge32
UNITS "Locate messages"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Current number of outstanding Locates, both directed and
broadcast. This value varies. A value of zero indicates
that no Locates are unanswered."
::= { appnDirPerf 11 }
APPN Directory table π¦
The directory table is basically the address book of LUs, and every single one of them is in here π
--APPN Directory table
-- This table contains information about all known LUs.
appnDirTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnDirEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table containing information about all known LUs."
::= { appnDir 2 }
appnDirEntry OBJECT-TYPE
SYNTAX AppnDirEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is indexed by the LU name."
INDEX
{appnDirLuName}
::= { appnDirTable 1 }
AppnDirEntry ::= SEQUENCE {
appnDirLuName DisplayString,
appnDirNnServerName SnaControlPointName,
appnDirLuOwnerName SnaControlPointName,
appnDirLuLocation INTEGER,
appnDirType INTEGER
}
appnDirLuName OBJECT-TYPE
SYNTAX DisplayString (SIZE (1..17))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Fully qualified network LU name in the domain of the
serving network node. Entries take one of three forms:
- Explicit entries do not contain the character '*'.
- Partial wildcard entries have the form 'ccc*', where
'ccc' represents one to sixteen characters in a
legal SNA LuName.
- A full wildcard entry consists of the single
character '*'"
::= { appnDirEntry 1 }
appnDirNnServerName OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Fully qualified control point (CP) name of the network node
server. For unassociated end node entries, a zero-length
string is returned."
::= { appnDirEntry 2 }
appnDirLuOwnerName OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Fully qualified CP name of the node at which the LU is
located. This name is the same as the serving NN name when
the LU is located at a network node. It is also the same as
the fully qualified LU name when this is the control point
LU for this node."
::= { appnDirEntry 3 }
appnDirLuLocation OBJECT-TYPE
SYNTAX INTEGER {
local(1), --Local
domain(2), --Domain
xdomain(3) --Cross Domain
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Specifies the location of the LU with respect to the local
node."
::= { appnDirEntry 4 }
appnDirType OBJECT-TYPE
SYNTAX INTEGER {
home(1), --defined as home entry
cache(2), --learned over time
registered(3) --registered by end node
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Directory types are:
1 - Home
The LU is in the domain of the local node, and the LU
information has been configured at the local node.
2 - Cache
The LU has previously been located by a broadcast
search, and the location information has been saved.
3 - Registered
The LU is at an end node that is in the domain
of the local network node. Registered entries
are registered by the served end node."
::= { appnDirEntry 5 }
The APPN Class of Service Group π
Last stop for this part is Class of Service, which is all about which routes are worth it and which traffic gets to cut the line π
-- ************** The APPN Class of Service Group **********************
appnCos OBJECT IDENTIFIER ::= { appnObjects 5 }
-- The APPN Class of Service (COS)
-- Class of Service is a means of expressing the quality of routes and
-- the transmission priority of traffic that flows on these routes.
-- The quality of routes is specified by two tables, a COS weight table
-- for TGs and a COS weight table for nodes. Values in these COS tables
-- are administratively assigned at each APPN node, with seven default
-- tables specified by the APPN architecture.
-- *********************************************************************
okay so this part is all about the COS mode, name, node row, and TG row tables, and they're literally the MIB objects that hold the rules π β¨
appnCosModeTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnCosModeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table representing all of the defined mode names for this
node. The table contains the matching COS name for each
mode name."
::= { appnCos 1 }
appnCosModeEntry OBJECT-TYPE
SYNTAX AppnCosModeEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table is indexed by the mode name."
INDEX
{appnCosModeName}
::= { appnCosModeTable 1 }
AppnCosModeEntry ::= SEQUENCE {
appnCosModeName SnaModeName,
appnCosModeCosName SnaClassOfServiceName
}
appnCosModeName OBJECT-TYPE
SYNTAX SnaModeName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name for this mode."
::= { appnCosModeEntry 1 }
appnCosModeCosName OBJECT-TYPE
SYNTAX SnaClassOfServiceName
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Administratively assigned name for this class of service."
::= { appnCosModeEntry 2 }
-- *********************************************************************
appnCosNameTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnCosNameEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table mapping all of the defined class-of-service names for
this node to their network transmission priorities."
::= { appnCos 2 }
appnCosNameEntry OBJECT-TYPE
SYNTAX AppnCosNameEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The COS name is the index to this table."
INDEX
{appnCosName}
::= { appnCosNameTable 1 }
AppnCosNameEntry ::= SEQUENCE {
appnCosName SnaClassOfServiceName,
appnCosTransPriority INTEGER
}
appnCosName OBJECT-TYPE
SYNTAX SnaClassOfServiceName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name for this class of service."
::= { appnCosNameEntry 1 }
appnCosTransPriority OBJECT-TYPE
SYNTAX INTEGER {
low(1), --X'01'
medium(2), --X'02'
high(3), --X'03'
network(4) --X'04'
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Transmission priority for this class of service:
low(1) - (X'01'): low priority
medium(2) - (X'02'): medium priority
high(3) - (X'03'): high priority
network(4) - (X'04'): network priority"
::= { appnCosNameEntry 2 }
-- *********************************************************************
appnCosNodeRowTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnCosNodeRowEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"This table contains all node-row information for all classes
of service defined in this node."
::= { appnCos 3 }
appnCosNodeRowEntry OBJECT-TYPE
SYNTAX AppnCosNodeRowEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A node entry for a given class of service."
INDEX
{appnCosNodeRowName,
appnCosNodeRowIndex}
::= { appnCosNodeRowTable 1 }
AppnCosNodeRowEntry ::= SEQUENCE {
appnCosNodeRowName SnaClassOfServiceName,
appnCosNodeRowIndex INTEGER,
appnCosNodeRowWgt DisplayString,
appnCosNodeRowResistMin INTEGER,
appnCosNodeRowResistMax INTEGER,
appnCosNodeRowMinCongestAllow INTEGER,
appnCosNodeRowMaxCongestAllow INTEGER
}
appnCosNodeRowName OBJECT-TYPE
SYNTAX SnaClassOfServiceName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name for this class of service."
::= { appnCosNodeRowEntry 1 }
appnCosNodeRowIndex OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Subindex under appnCosNodeRowName, corresponding to a row in
the node table for the class of service identified in
appnCosNodeRowName.
For each class of service, this subindex orders rows in the
appnCosNodeRowTable in the same order as that used for route
calculation in the APPN node."
::= { appnCosNodeRowEntry 2 }
appnCosNodeRowWgt OBJECT-TYPE
SYNTAX DisplayString (SIZE (1..64))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Weight to be associated with the nodes that fit the criteria
specified by this node row.
This value can either be a character representation of an
integer, or a formula for calculating the weight."
::= { appnCosNodeRowEntry 3 }
appnCosNodeRowResistMin OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Minimum route addition resistance value for this node.
Range of values is 0-255. The lower the value, the more
desirable the node is for intermediate routing."
::= { appnCosNodeRowEntry 4 }
appnCosNodeRowResistMax OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum route addition resistance value for this node.
Range of values is 0-255. The lower the value, the more
desirable the node is for intermediate routing."
::= { appnCosNodeRowEntry 5 }
appnCosNodeRowMinCongestAllow OBJECT-TYPE
SYNTAX INTEGER (0..1)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether low congestion will be tolerated. This
object and appnCosNodeRowMaxCongestAllow together delineate a
range of acceptable congestion states for a node. For the
ordered pair (minimum congestion allowed, maximum congestion
allowed), the values are interpreted as follows:
- (0,0): only low congestion is acceptable
- (0,1): either low or high congestion is acceptable
- (1,1): only high congestion is acceptable.
Note that the combination (1,0) is not defined, since it
would identify a range whose lower bound was high congestion
and whose upper bound was low congestion."
::= { appnCosNodeRowEntry 6 }
appnCosNodeRowMaxCongestAllow OBJECT-TYPE
SYNTAX INTEGER (0..1)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether low congestion will be tolerated. This
object and appnCosNodeRowMinCongestAllow together delineate a
range of acceptable congestion states for a node. For the
ordered pair (minimum congestion allowed, maximum congestion
allowed), the values are interpreted as follows:
- (0,0): only low congestion is acceptable
- (0,1): either low or high congestion is acceptable
- (1,1): only high congestion is acceptable.
Note that the combination (1,0) is not defined, since it
would identify a range whose lower bound was high congestion
and whose upper bound was low congestion."
::= { appnCosNodeRowEntry 7 }
-- *********************************************************************
appnCosTgRowTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnCosTgRowEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Table containing all the TG-row information for all classes of
service defined in this node."
::= { appnCos 4 }
appnCosTgRowEntry OBJECT-TYPE
SYNTAX AppnCosTgRowEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A TG entry for a given class of service."
INDEX
{appnCosTgRowName,
appnCosTgRowIndex}
::= { appnCosTgRowTable 1 }
AppnCosTgRowEntry ::= SEQUENCE {
appnCosTgRowName SnaClassOfServiceName,
appnCosTgRowIndex INTEGER,
appnCosTgRowWgt DisplayString,
appnCosTgRowEffCapMin AppnTgEffectiveCapacity,
appnCosTgRowEffCapMax AppnTgEffectiveCapacity,
appnCosTgRowConnCostMin INTEGER,
appnCosTgRowConnCostMax INTEGER,
appnCosTgRowByteCostMin INTEGER,
appnCosTgRowByteCostMax INTEGER,
appnCosTgRowSecurityMin AppnTgSecurity,
appnCosTgRowSecurityMax AppnTgSecurity,
appnCosTgRowDelayMin AppnTgDelay,
appnCosTgRowDelayMax AppnTgDelay,
appnCosTgRowUsr1Min INTEGER,
appnCosTgRowUsr1Max INTEGER,
appnCosTgRowUsr2Min INTEGER,
appnCosTgRowUsr2Max INTEGER,
appnCosTgRowUsr3Min INTEGER,
appnCosTgRowUsr3Max INTEGER
}
appnCosTgRowName OBJECT-TYPE
SYNTAX SnaClassOfServiceName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Administratively assigned name for this class of service."
::= { appnCosTgRowEntry 1 }
appnCosTgRowIndex OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Subindex under appnCosTgRowName, corresponding to a row in the
TG table for the class of service identified in
appnCosTgRowName.
For each class of service, this subindex orders rows in the
appnCosTgRowTable in the same order as that used for route
calculation in the APPN node."
::= { appnCosTgRowEntry 2 }
appnCosTgRowWgt OBJECT-TYPE
SYNTAX DisplayString (SIZE (1..64))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Weight to be associated with the TGs that fit the criteria
specified by this TG row.
This value can either be a character representation of an
integer, or a formula for calculating the weight."
::= { appnCosTgRowEntry 3 }
appnCosTgRowEffCapMin OBJECT-TYPE
SYNTAX AppnTgEffectiveCapacity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Minimum acceptable capacity for this class of service."
::= { appnCosTgRowEntry 4 }
appnCosTgRowEffCapMax OBJECT-TYPE
SYNTAX AppnTgEffectiveCapacity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum acceptable capacity for this class of service."
::= { appnCosTgRowEntry 5 }
appnCosTgRowConnCostMin OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Minimum acceptable cost per connect time for this class of
service.
Cost per connect time: a value representing the relative
cost per unit of time to use this TG. Range is from 0, which
means no cost, to 255."
::= { appnCosTgRowEntry 6 }
appnCosTgRowConnCostMax OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum acceptable cost per connect time for this class of
service.
Cost per connect time: a value representing the relative
cost per unit of time to use this TG. Range is from 0, which
means no cost, to 255."
::= { appnCosTgRowEntry 7 }
the node rows and TG rows are basically the rule books for each class of service, and the weights and min/max ranges are how they get their vibe π¦π₯
Okay bestie, picking up right where the Traffic Group table left off π π The rest of the row is all about the cost, security, delay, and user-defined limits for each class of service, so buckle up π«Ά
appnCosTgRowByteCostMin OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Minimum acceptable cost per byte transmitted for this class
of service.
Cost per byte transmitted: a value representing the relative
cost per unit of time to use this TG. Range is from 0, which
means no cost, to 255."
::= { appnCosTgRowEntry 8 }
appnCosTgRowByteCostMax OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum acceptable cost per byte transmitted for this class
of service.
Cost per byte transmitted: a value representing the relative
cost of transmitting a byte over this TG. Range is from 0,
which means no cost, to 255."
::= { appnCosTgRowEntry 9 }
appnCosTgRowSecurityMin OBJECT-TYPE
SYNTAX AppnTgSecurity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Minimum acceptable security for this class of service."
::= { appnCosTgRowEntry 10 }
appnCosTgRowSecurityMax OBJECT-TYPE
SYNTAX AppnTgSecurity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum acceptable security for this class of service."
::= { appnCosTgRowEntry 11 }
appnCosTgRowDelayMin OBJECT-TYPE
SYNTAX AppnTgDelay
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Minimum acceptable propagation delay for this class of
service."
::= { appnCosTgRowEntry 12 }
appnCosTgRowDelayMax OBJECT-TYPE
SYNTAX AppnTgDelay
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum acceptable propagation delay for this class of
service."
::= { appnCosTgRowEntry 13 }
So the byte cost pair works like a price tag π·οΈ The Min and Max objects are each an INTEGER from 0 to 255, where 0 means no cost at all πΈ
The security and delay pairs are the same vibe, just using the AppnTgSecurity and AppnTgDelay types. Read-only, all of them π
The last six objects are the user-defined characteristics, Usr1 through Usr3, each with its own Min and Max π§
appnCosTgRowUsr1Min OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Minimum acceptable value for this user-defined
characteristic."
::= { appnCosTgRowEntry 14 }
appnCosTgRowUsr1Max OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum acceptable value for this user-defined
characteristic."
::= { appnCosTgRowEntry 15 }
appnCosTgRowUsr2Min OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Minimum acceptable value for this user-defined
characteristic."
::= { appnCosTgRowEntry 16 }
appnCosTgRowUsr2Max OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum acceptable value for this user-defined
characteristic."
::= { appnCosTgRowEntry 17 }
appnCosTgRowUsr3Min OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Minimum acceptable value for this user-defined
characteristic."
::= { appnCosTgRowEntry 18 }
appnCosTgRowUsr3Max OBJECT-TYPE
SYNTAX INTEGER (0..255)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Maximum acceptable value for this user-defined
characteristic."
::= { appnCosTgRowEntry 19 }
Intermediate Session Information β¨
Now we're entering a whole new era π¦ This part of the MIB is all about intermediate sessions, and it's registered under appnSessIntermediate, which is { appnObjects 6 }.
-- *********************************************************************
-- Intermediate Session Information
-- *********************************************************************
appnSessIntermediate OBJECT IDENTIFIER ::= { appnObjects 6 }
Intermediate Session Information Global Objects
These simple global objects are the on/off buttons for collecting intermediate session info πΈ They're the start and stop controls for the whole thing.
-- *********************************************************************
-- Intermediate Session Information Global Objects
-- *********************************************************************
-- The following simple objects allow the collection of intermediate
-- session Information to be started and stopped.
-- *********************************************************************
appnIsInGlobal OBJECT IDENTIFIER ::= { appnSessIntermediate 1 }
appnIsInGlobeCtrAdminStatus OBJECT-TYPE
SYNTAX INTEGER {
notActive(1),
active(2),
ready(3)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Object by which a Management Station can deactivate or
activate capture of intermediate-session counts and names, by
setting the value to notActive(1) or active(2), respectively.
The value ready(3) is returned on GET operations until a SET
has been processed; after that the value received on the most
recent SET is returned.
The counts referred to here are the eight objects in the
AppnIsInTable, from appnIsInP2SFmdPius through
appnIsInS2PNonFmdBytes. The names are the four objects in this
table, from appnIsInPriLuName through appnIsInCosName.
Setting this object to the following values has the following
effects:
notActive(1) stop collecting count data. If a count
is queried, it returns the value 0.
Collection of names may, but need not be,
disabled.
active(2) start collecting count data. If it is
supported, collection of names is enabled."
::= { appnIsInGlobal 1 }
This one is the admin switch ποΈ A Management Station flips it to notActive(1) or active(2). Until someone does a SET, a GET just gives back ready(3), and after that you get whatever the last SET was. Counts and names are on separate tracks here, so that's worth keeping in mind π
appnIsInGlobeCtrOperStatus OBJECT-TYPE
SYNTAX INTEGER {
notActive(1),
active(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether or not the intermediate session counts
are active. The counts referred to here are the eight
objects in the AppnIsInTable, from appnIsInP2SFmdPius through
appnIsInS2PNonFmdBytes. These eight counts are of type
Unsigned32 rather than Counter32 because when this object
enters the notActive state, either because a Management
Station has set appnInInGlobeCtrAdminStatus to notActive or
because of a locally-initiated transition, the counts are
all reset to 0.
The values for this object are:
notActive(1): collection of counts is not active; if it
is queried, a count returns the value 0.
active(2): collection of counts is active."
::= { appnIsInGlobal 2 }
Here's the status readout π It tells you whether the counts are running. The fun detail is the Unsigned32 choice, which exists because the counts get wiped back to 0 whenever this object drops into notActive, whether that was a Management Station or the node itself π§Ή
appnIsInGlobeCtrStatusTime OBJECT-TYPE
SYNTAX TimeTicks
UNITS "hundredths of a second"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The time since the appnIsInGlobeCtrOperStatus object last
changed, measured in hundredths of a second. This time can be
used to identify when this change occurred in relation to other
events in the agent, such as the last time the APPN node was
re-initialized."
::= { appnIsInGlobal 3 }
appnIsInGlobeRscv OBJECT-TYPE
SYNTAX INTEGER {
notActive(1),
active(2)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates the current route selection control vector (RSCV)
collection option in effect, and allows a Management Station to
change the option.
The values for this object are:
notActive(1): collection of route selection control vectors
is not active.
active(2): collection of route selection control vectors
is active."
::= { appnIsInGlobal 4 }
appnIsInGlobeRscvTime OBJECT-TYPE
SYNTAX TimeTicks
UNITS "hundredths of a second"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The time since the appnIsInGlobeRscv object last changed,
measured in hundredths of a second. This time can be used to
identify when this change occurred in relation to other events
in the agent, such as the last time the APPN node was
re-initialized."
::= { appnIsInGlobal 5 }
appnIsInGlobeActSess OBJECT-TYPE
SYNTAX Gauge32
UNITS "sessions"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of currently active intermediate sessions."
::= { appnIsInGlobal 6 }
appnIsInGlobeHprBfActSess OBJECT-TYPE
SYNTAX Gauge32
UNITS "sessions"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of currently active HPR intermediate sessions."
::= { appnIsInGlobal 7 }
The RSCV collection option is its own on/off toggle π, with a timestamp that tells you when it last changed, and the active session counters just report how many intermediate sessions are running right now, with HPR ones counted separately π¦
Intermediate Session Information Table
This is where the real tea lives β The table holds info on intermediate sessions that are currently active.
-- *********************************************************************
-- Intermediate Session Information Table
-- *********************************************************************
-- This table contains information on intermediate sessions
-- which are currently active.
-- *********************************************************************
appnIsInTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnIsInEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Intermediate Session Information Table"
::= { appnSessIntermediate 2 }
appnIsInEntry OBJECT-TYPE
SYNTAX AppnIsInEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entry of Intermediate Session Information Table."
INDEX
{ appnIsInFqCpName,
appnIsInPcid }
::= { appnIsInTable 1 }
AppnIsInEntry ::= SEQUENCE {
appnIsInFqCpName SnaControlPointName,
appnIsInPcid OCTET STRING,
appnIsInSessState INTEGER,
appnIsInPriLuName DisplayString,
appnIsInSecLuName DisplayString,
appnIsInModeName SnaModeName,
appnIsInCosName SnaClassOfServiceName,
appnIsInTransPriority INTEGER,
appnIsInSessType INTEGER,
appnIsInSessUpTime TimeTicks,
appnIsInCtrUpTime TimeTicks,
appnIsInP2SFmdPius Unsigned32,
appnIsInS2PFmdPius Unsigned32,
appnIsInP2SNonFmdPius Unsigned32,
appnIsInS2PNonFmdPius Unsigned32,
appnIsInP2SFmdBytes Unsigned32,
appnIsInS2PFmdBytes Unsigned32,
appnIsInP2SNonFmdBytes Unsigned32,
appnIsInS2PNonFmdBytes Unsigned32,
appnIsInPsAdjCpName SnaControlPointName,
appnIsInPsAdjTgNum INTEGER,
appnIsInPsSendMaxBtuSize INTEGER,
appnIsInPsSendPacingType INTEGER,
appnIsInPsSendRpc Gauge32,
appnIsInPsSendNxWndwSize Gauge32,
appnIsInPsRecvPacingType INTEGER,
appnIsInPsRecvRpc Gauge32,
appnIsInPsRecvNxWndwSize Gauge32,
appnIsInSsAdjCpName SnaControlPointName,
appnIsInSsAdjTgNum INTEGER,
appnIsInSsSendMaxBtuSize INTEGER,
appnIsInSsSendPacingType INTEGER,
appnIsInSsSendRpc Gauge32,
appnIsInSsSendNxWndwSize Gauge32,
appnIsInSsRecvPacingType INTEGER,
appnIsInSsRecvRpc Gauge32,
appnIsInSsRecvNxWndwSize Gauge32,
appnIsInRouteInfo OCTET STRING,
appnIsInRtpNceId OCTET STRING,
appnIsInRtpTcid OCTET STRING
}
Okay, the table is indexed by appnIsInFqCpName plus appnIsInPcid, so every row is uniquely identified by that pair π Every object in the entry is listed in the SEQUENCE above, and that's where the rest of the detail is headed next π
okay so this batch is where the session info really starts to shine πβ¨ we begin with who the session came from, then the PCID that tags it, and then the state machine, bestie π¦
appnIsInFqCpName OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The network-qualified control point name of the node at which
the session and PCID originated. For APPN and LEN nodes, this
is either CP name of the APPN node at which the origin LU is
located or the CP name of the NN serving the LEN node at which
the origin LU is located. For resources served by a dependent
LU requester (DLUR), it is the name of the owning system
services control point (SSCP)."
::= { appnIsInEntry 1 }
appnIsInPcid OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (8))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The procedure correlation identifier (PCID) of a session. It
is an 8-byte value assigned by the primary LU."
::= { appnIsInEntry 2 }
appnIsInSessState OBJECT-TYPE
SYNTAX INTEGER {
inactive(1),
pendactive(2),
active(3),
pendinact(4)
}
MAX-ACCESS read-write
STATUS current
DESCRIPTION
"Indicates the state of the session:
inactive(1) - session is inactive
pendactive(2) - session is pending active
active(3) - session is active
pendinact(4) - session is pending inactive
Active sessions can be deactivated by setting this object
to inactive(1)."
::= { appnIsInEntry 3 }
appnIsInPriLuName OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..17))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary LU name of the session. A zero-length
string indicates that this name is not available."
::= { appnIsInEntry 4 }
appnIsInSecLuName OBJECT-TYPE
SYNTAX DisplayString (SIZE (0..17))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary LU name of the session. A zero-length
string indicates that this name is not available."
::= { appnIsInEntry 5 }
appnIsInModeName OBJECT-TYPE
SYNTAX SnaModeName
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The mode name used for this session."
::= { appnIsInEntry 6 }
appnIsInCosName OBJECT-TYPE
SYNTAX SnaClassOfServiceName
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The Class of Service (COS) name used for this session."
::= { appnIsInEntry 7 }
ngl the transmission priority object is giving main character energy π four levels, each with its own hex value, so it's super clear what's what π
appnIsInTransPriority OBJECT-TYPE
SYNTAX INTEGER {
low(1), --X'01'
medium(2), --X'02'
high(3), --X'03'
network(4) --X'04'
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Transmission priority for this class of service. Values are:
low(1) - (X'01'): low priority
medium(2) - (X'02'): medium priority
high(3) - (X'03'): high priority
network(4) - (X'04'): network priority"
::= { appnIsInEntry 8 }
appnIsInSessType OBJECT-TYPE
SYNTAX INTEGER {
unknown(1),
lu62(2),
lu0thru3(3),
lu62dlur(4),
lu0thru3dlur(5)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The type of intermediate session. Defined values are
unknown The session type is not known.
lu62 A session between LUs of type 6.2
(as indicated by the LU type in Bind)
lu0thru3 A session between LUs of type 0, 1, 2, or 3
(as indicated by the LU type in Bind)
lu62dlur A session between LUs of type 6.2
(as indicated by the LU type in Bind).
One of the LUs is a dependent LU supported
by the dependent LU requester (DLUR)
function at this node.
lu0thru3dlur A session between LUs of type 0, 1, 2, or 3
(as indicated by the LU type in Bind)
One of the LUs is a dependent LU supported
by the dependent LU requester (DLUR)
function at this node."
::= { appnIsInEntry 9 }
appnIsInSessUpTime OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Length of time the session has been active, measured in
hundredths of a second."
::= { appnIsInEntry 10 }
appnIsInCtrUpTime OBJECT-TYPE
SYNTAX TimeTicks
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Length of time the session counters have been active, measured
in hundredths of a second."
::= { appnIsInEntry 11 }
now the counters era ππ«Ά we've got FMD and non-FMD PIUs and bytes, counted in both directions, so you can see exactly who's sending what π
appnIsInP2SFmdPius OBJECT-TYPE
SYNTAX Unsigned32
UNITS "path information units (PIUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of function management data (FMD) path information
units (PIUs) sent from the Primary LU to the Secondary LU since
the counts were last activated."
::= { appnIsInEntry 12 }
appnIsInS2PFmdPius OBJECT-TYPE
SYNTAX Unsigned32
UNITS "path information units (PIUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of FMD PIUs sent from the Secondary LU to the Primary
LU since the counts were last activated."
::= { appnIsInEntry 13 }
appnIsInP2SNonFmdPius OBJECT-TYPE
SYNTAX Unsigned32
UNITS "path information units (PIUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of non-FMD PIUs sent from the Primary LU to the
Secondary LU since the counts were last activated."
::= { appnIsInEntry 14 }
appnIsInS2PNonFmdPius OBJECT-TYPE
SYNTAX Unsigned32
UNITS "path information units (PIUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of non-FMD PIUs sent from the Secondary LU to the
Primary LU since the counts were last activated."
::= { appnIsInEntry 15 }
appnIsInP2SFmdBytes OBJECT-TYPE
SYNTAX Unsigned32
UNITS "bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of FMD bytes sent from the Primary LU to the Secondary
LU since the counts were last activated."
::= { appnIsInEntry 16 }
appnIsInS2PFmdBytes OBJECT-TYPE
SYNTAX Unsigned32
UNITS "bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of FMD bytes sent from the Secondary LU to the Primary
LU since the counts were last activated."
::= { appnIsInEntry 17 }
appnIsInP2SNonFmdBytes OBJECT-TYPE
SYNTAX Unsigned32
UNITS "bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of non-FMD bytes sent from the Primary LU to the
Secondary LU since the counts were last activated."
::= { appnIsInEntry 18 }
appnIsInS2PNonFmdBytes OBJECT-TYPE
SYNTAX Unsigned32
UNITS "bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Number of non-FMD bytes sent from the Secondary LU to the
Primary LU since the counts were last activated."
::= { appnIsInEntry 19 }
last stretch for this part π§ the primary-stage adjacency and pacing objects are where the details get seriously detailed, so grab a snack π
appnIsInPsAdjCpName OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary stage adjacent CP name of this session. If the
session stage traverses an RTP connection, the CP name of the
remote RTP endpoint is returned."
::= { appnIsInEntry 20 }
appnIsInPsAdjTgNum OBJECT-TYPE
SYNTAX INTEGER (0..300)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary stage adjacent transmission group (TG) number
associated with this session. If the session stage traverses
an RTP connection, the value 256 is returned.
Values between 257 and 300 are available for other possible
TG 'stand-ins' that may be added to APPN in the future."
::= { appnIsInEntry 21 }
appnIsInPsSendMaxBtuSize OBJECT-TYPE
SYNTAX INTEGER (99..32767)
UNITS "bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary stage maximum basic transmission unit (BTU) size
for sending data."
::= { appnIsInEntry 22 }
appnIsInPsSendPacingType OBJECT-TYPE
SYNTAX INTEGER {
fixed(1),
adaptive(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary stage type of pacing being used for sending data."
::= { appnIsInEntry 23 }
appnIsInPsSendRpc OBJECT-TYPE
SYNTAX Gauge32
UNITS "message units (MUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary stage send residual pace count. This represents
the primary stage number of message units (MUs) that can still
be sent in the current session window."
::= { appnIsInEntry 24 }
appnIsInPsSendNxWndwSize OBJECT-TYPE
SYNTAX Gauge32
UNITS "message units (MUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary stage size of the next window which will be used
to send data."
::= { appnIsInEntry 25 }
appnIsInPsRecvPacingType OBJECT-TYPE
SYNTAX INTEGER {
fixed(1),
adaptive(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary stage type of pacing being used for receiving
data."
::= { appnIsInEntry 26 }
appnIsInPsRecvRpc OBJECT-TYPE
SYNTAX Gauge32
UNITS "message units (MUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary stage receive residual pace count. This
represents the primary stage number of message units (MUs) that
can still be received in the current session window."
::= { appnIsInEntry 27 }
appnIsInPsRecvNxWndwSize OBJECT-TYPE
SYNTAX Gauge32
UNITS "message units (MUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The primary stage size of the next window which will be used
to receive data."
::= { appnIsInEntry 28 }
appnIsInSsAdjCpName OBJECT-TYPE
SYNTAX SnaControlPointName
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary stage adjacent CP name of this session. If the
session stage traverses an RTP connection, the CP name of the
remote RTP endpoint is returned."
::= { appnIsInEntry 29 }
appnIsInSsAdjTgNum OBJECT-TYPE
SYNTAX INTEGER (0..300)
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary stage adjacent transmission group (TG) number
associated with this session. If the session stage traverses
an RTP connection, the value 256 is returned.
Values between 257 and 300 are available for other possible
TG 'stand-ins' that may be added to APPN in the future."
::= { appnIsInEntry 30 }
bestie, the secondary stage stats are next and they're giving main character energy π¦β¨
appnIsInSsSendMaxBtuSize OBJECT-TYPE
SYNTAX INTEGER (99..32767)
UNITS "bytes"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary stage maximum basic transmission unit (BTU) size
for sending data."
::= { appnIsInEntry 31 }
appnIsInSsSendPacingType OBJECT-TYPE
SYNTAX INTEGER {
fixed(1),
adaptive(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary stage type of pacing being used for sending
data."
::= { appnIsInEntry 32 }
appnIsInSsSendRpc OBJECT-TYPE
SYNTAX Gauge32
UNITS "message units (MUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary stage send residual pace count. This represents
the secondary stage number of message units (MUs) that can
still be sent in the current session window."
::= { appnIsInEntry 33 }
appnIsInSsSendNxWndwSize OBJECT-TYPE
SYNTAX Gauge32
UNITS "message units (MUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary stage size of the next window which will be used
to send data."
::= { appnIsInEntry 34 }
appnIsInSsRecvPacingType OBJECT-TYPE
SYNTAX INTEGER {
fixed(1),
adaptive(2)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary stage type of pacing being used for receiving
data."
::= { appnIsInEntry 35 }
appnIsInSsRecvRpc OBJECT-TYPE
SYNTAX Gauge32
UNITS "message units (MUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary stage receive residual pace count. This
represents the secondary stage number of message units (MUs)
that can still be received in the current session window."
::= { appnIsInEntry 36 }
appnIsInSsRecvNxWndwSize OBJECT-TYPE
SYNTAX Gauge32
UNITS "message units (MUs)"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The secondary stage size of the next window which will be used
to receive data."
::= { appnIsInEntry 37 }
appnIsInRouteInfo OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (0..255))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The route selection control vector (RSCV X'2B') used for this
session. It is present for APPN nodes; but is not present for
LEN nodes. The format of this vector is described in SNA
Formats. If no RSCV is available, a zero-length string is
returned."
::= { appnIsInEntry 38 }
appnIsInRtpNceId OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (1..8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The HPR local Network Connection Endpoint of the session."
::= { appnIsInEntry 39 }
appnIsInRtpTcid OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (8))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The RTP connection local TCID of the session."
::= { appnIsInEntry 40 }
-- *********************************************************************
-- Intermediate Session RTP Table
-- *********************************************************************
-- This table contains information on intermediate sessions that are
-- being transported on Rapid Transport Protocol (RTP) connections by
-- High Performance Routing (HPR).
-- *********************************************************************
appnIsRtpTable OBJECT-TYPE
SYNTAX SEQUENCE OF AppnIsRtpEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"A table indicating how many ISR sessions are transported by
each RTP connection."
::= { appnSessIntermediate 3 }
appnIsRtpEntry OBJECT-TYPE
SYNTAX AppnIsRtpEntry
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"Entry of Intermediate Session RTP Table."
INDEX
{ appnIsRtpNceId,
appnIsRtpTcid }
::= { appnIsRtpTable 1 }
AppnIsRtpEntry ::= SEQUENCE {
appnIsRtpNceId OCTET STRING,
appnIsRtpTcid OCTET STRING,
appnIsRtpSessions Gauge32
}
appnIsRtpNceId OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (8))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The local Network Connection Endpoint of the RTP connection."
::= { appnIsRtpEntry 1 }
appnIsRtpTcid OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (8))
MAX-ACCESS not-accessible
STATUS current
DESCRIPTION
"The local TCID of the RTP connection."
::= { appnIsRtpEntry 2 }
appnIsRtpSessions OBJECT-TYPE
SYNTAX Gauge32
UNITS "sessions"
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"The number of intermediate sessions using this RTP
connection."
::= { appnIsRtpEntry 3 }
-- *********************************************************************
appnTraps OBJECT IDENTIFIER ::= { appnMIB 2 }
-- *********************************************************************
alertTrap NOTIFICATION-TYPE
OBJECTS { alertIdNumber, affectedObject }
STATUS current
DESCRIPTION
"This trap carries a 32-bit SNA Management Services (SNA/MS)
Alert ID Number, as specified in SNA/MS Formats."
::= { appnTraps 1 }
alertIdNumber OBJECT-TYPE
SYNTAX OCTET STRING (SIZE (4))
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"A 32-bit SNA Management Services (SNA/MS) Alert ID Number, as
specified in SNA/MS Formats."
::= { appnTraps 2 }
affectedObject OBJECT-TYPE
SYNTAX VariablePointer
MAX-ACCESS accessible-for-notify
STATUS current
DESCRIPTION
"The MIB object associated with the Alert condition, if there
is an object associated with it. If no associated object can
be identified, the value 0.0 is passed in the trap."
::= { appnTraps 3 }
-- *********************************************************************
-- Conformance information
-- *********************************************************************
appnConformance OBJECT IDENTIFIER ::= {appnMIB 3 }
appnCompliances OBJECT IDENTIFIER ::= {appnConformance 1 }
appnGroups OBJECT IDENTIFIER ::= {appnConformance 2 }
-- Compliance statements
appnCompliance MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for the SNMPv2 entities that
implement the APPN MIB."
MODULE -- this module
-- Unconditionally mandatory groups
MANDATORY-GROUPS {
appnGeneralConfGroup,
appnPortConfGroup,
appnLinkConfGroup,
appnLocalTgConfGroup,
appnDirTableConfGroup
}
-- Conditionally mandatory groups
GROUP appnNnUniqueConfGroup
DESCRIPTION
"The appnNnUniqueConfGroup is mandatory only for
network nodes."
GROUP appnEnUniqueConfGroup
DESCRIPTION
"The appnEnUniqueConfGroup is mandatory only for end
nodes."
GROUP appnVrnConfGroup
DESCRIPTION
"The appnVrnConfGroup is mandatory only for network
nodes and end nodes that implement virtual routing
node support."
GROUP appnNnTopoConfGroup
DESCRIPTION
"The appnNnTopoConfGroup is mandatory only for
network nodes."
GROUP appnLocalEnTopoConfGroup
DESCRIPTION
"The appnLocalEnTopoConfGroup is mandatory only for
network nodes."
GROUP appnLocalDirPerfConfGroup
DESCRIPTION
"The appnLocalDirPerfConfGroup is mandatory only for
APPN network nodes and end nodes."
GROUP appnCosConfGroup
DESCRIPTION
"The appnCosConfGroup is mandatory only for APPN
network nodes and end nodes."
GROUP appnIntSessConfGroup
DESCRIPTION
"The appnIntSessConfGroup is mandatory only for
network nodes."
GROUP appnHprBaseConfGroup
DESCRIPTION
"The appnHprBaseConfGroup is mandatory only for nodes
that implement the HPR base (APPN option set 1400)."
GROUP appnHprRtpConfGroup
DESCRIPTION
"The appnHprRtpConfGroup is mandatory only for nodes
that implement the HPR RTP tower (APPN option set
1401)."
GROUP appnHprCtrlFlowsRtpConfGroup
DESCRIPTION
"The appnHprCtrlFlowsRtpConfGroup is mandatory only
for nodes that implement the HPR Control Flows over
RTP tower (APPN option set 1402)."
GROUP appnHprBfConfGroup
DESCRIPTION
"The appnHprBfConfGroup is mandatory only for nodes
that implement the APPN/HPR boundary function."
GROUP appnTrapConfGroup
DESCRIPTION
"Traps are optional for all nodes."
GROUP appnTrapNotifGroup
DESCRIPTION
"Traps are optional for all nodes."
::= {appnCompliances 1 }
-- Units of conformance
appnGeneralConfGroup OBJECT-GROUP
OBJECTS {
appnNodeCpName,
appnNodeMibVersion,
appnNodeId,
appnNodeType,
appnNodeUpTime,
appnNodeParallelTg,
appnNodeAdaptiveBindPacing,
appnNodeHprSupport,
appnNodeCounterDisconTime
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN general information and capabilities."
::= { appnGroups 1 }
appnPortConfGroup OBJECT-GROUP
OBJECTS {
appnPortCommand,
appnPortOperState,
appnPortDlcType,
appnPortPortType,
appnPortSIMRIM,
appnPortLsRole,
appnPortNegotLs,
appnPortDynamicLinkSupport,
appnPortMaxRcvBtuSize,
appnPortMaxIframeWindow,
appnPortDefLsGoodXids,
appnPortDefLsBadXids,
appnPortDynLsGoodXids,
appnPortDynLsBadXids,
appnPortSpecific,
appnPortDlcLocalAddr,
appnPortCounterDisconTime
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN port information."
::= { appnGroups 2 }
okay that's the whole stretch from the secondary stage stats through the port conformance group, all the bits of the MIB hanging together ππ
okay so bestie, this next group is the link one π it's all about APPN link instrumentation, and the list of objects is literally giving everything π
appnLinkConfGroup OBJECT-GROUP
OBJECTS {
appnLsCommand,
appnLsOperState,
appnLsPortName,
appnLsDlcType,
appnLsDynamic,
appnLsAdjCpName,
appnLsAdjNodeType,
appnLsTgNum,
appnLsLimResource,
appnLsActOnDemand,
appnLsMigration,
appnLsPartnerNodeId,
appnLsCpCpSessionSupport,
appnLsMaxSendBtuSize,
appnLsInXidBytes,
appnLsInMsgBytes,
appnLsInXidFrames,
appnLsInMsgFrames,
appnLsOutXidBytes,
appnLsOutMsgBytes,
appnLsOutXidFrames,
appnLsOutMsgFrames,
appnLsEchoRsps,
appnLsCurrentDelay,
appnLsMaxDelay,
appnLsMinDelay,
appnLsMaxDelayTime,
appnLsGoodXids,
appnLsBadXids,
appnLsSpecific,
appnLsActiveTime,
appnLsCurrentStateTime,
appnLsHprSup,
appnLsLocalAddr,
appnLsRemoteAddr,
appnLsRemoteLsName,
appnLsStatusTime,
appnLsStatusLsName,
appnLsStatusCpName,
appnLsStatusPartnerId,
appnLsStatusTgNum,
appnLsStatusGeneralSense,
appnLsStatusRetry,
appnLsStatusEndSense,
appnLsStatusXidLocalSense,
appnLsStatusXidRemoteSense,
appnLsStatusXidByteInError,
appnLsStatusXidBitInError,
appnLsStatusDlcType,
appnLsStatusLocalAddr,
appnLsStatusRemoteAddr,
appnLsCounterDisconTime
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN link information."
::= { appnGroups 3 }
next up is the local TG group, which is all about APPN local TG info πΏ the object list is long but honestly it's so organised β¨
appnLocalTgConfGroup OBJECT-GROUP
OBJECTS {
appnLocalTgDestVirtual,
appnLocalTgDlcData,
appnLocalTgPortName,
appnLocalTgQuiescing,
appnLocalTgOperational,
appnLocalTgCpCpSession,
appnLocalTgEffCap,
appnLocalTgConnCost,
appnLocalTgByteCost,
appnLocalTgSecurity,
appnLocalTgDelay,
appnLocalTgUsr1,
appnLocalTgUsr2,
appnLocalTgUsr3,
appnLocalTgHprSup,
appnLocalTgIntersubnet
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN local TG information."
::= { appnGroups 4 }
the directory table group comes next π it covers the APPN directory database, and it's a small but mighty crew π
appnDirTableConfGroup OBJECT-GROUP
OBJECTS {
appnDirNnServerName,
appnDirLuOwnerName,
appnDirLuLocation,
appnDirType
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation of the
APPN directory database."
::= { appnGroups 5 }
now the NN unique group π the description says it's mandatory only for network nodes, so it's a network-node thing and very specific to them π
appnNnUniqueConfGroup OBJECT-GROUP
OBJECTS {
appnNodeNnCentralDirectory,
appnNodeNnTreeCache,
appnNodeNnRouteAddResist,
appnNodeNnIsr,
appnNodeNnFrsn,
appnNodeNnPeriBorderSup,
appnNodeNnInterchangeSup,
appnNodeNnExteBorderSup,
appnNodeNnSafeStoreFreq,
appnNodeNnRsn,
appnNodeNnCongested,
appnNodeNnIsrDepleted,
appnNodeNnQuiescing,
appnNodeNnGateway
}
STATUS current
DESCRIPTION
"The appnNnUniqueConfGroup is mandatory only for network
nodes."
::= { appnGroups 6 }
and the EN unique group is the end-node version of that energy π§ the description says it's mandatory only for end nodes π«Ά
appnEnUniqueConfGroup OBJECT-GROUP
OBJECTS {
appnNodeEnModeCosMap,
appnNodeEnNnServer,
appnNodeEnLuSearch
}
STATUS current
DESCRIPTION
"The appnEnUniqueConfGroup is mandatory only for end nodes."
::= { appnGroups 7 }
the VRN group is next π¦ this one only has the single object, appnVrnPortName, and the description says it's for APPN network nodes and end nodes πΈ
appnVrnConfGroup OBJECT-GROUP
OBJECTS {
appnVrnPortName
}
STATUS current
DESCRIPTION
"The appnVrnConfGroup is mandatory only for APPN network
nodes and end nodes."
::= { appnGroups 8 }
the NN topology group is giving main character energy ππ it's got a huge object list, and the description says it's mandatory only for network nodes π
appnNnTopoConfGroup OBJECT-GROUP
OBJECTS {
appnNnTopoMaxNodes,
appnNnTopoCurNumNodes,
appnNnTopoNodePurges,
appnNnTopoTgPurges,
appnNnTopoTotalTduWars,
appnNnNodeFREntryTimeLeft,
appnNnNodeFRType,
appnNnNodeFRRsn,
appnNnNodeFRRouteAddResist,
appnNnNodeFRCongested,
appnNnNodeFRIsrDepleted,
appnNnNodeFRQuiescing,
appnNnNodeFRGateway,
appnNnNodeFRCentralDirectory,
appnNnNodeFRIsr,
appnNnNodeFRGarbageCollect,
appnNnNodeFRHprSupport,
appnNnNodeFRPeriBorderSup,
appnNnNodeFRInterchangeSup,
appnNnNodeFRExteBorderSup,
appnNnTgFREntryTimeLeft,
appnNnTgFRDestVirtual,
appnNnTgFRDlcData,
appnNnTgFRRsn,
appnNnTgFROperational,
appnNnTgFRQuiescing,
appnNnTgFRCpCpSession,
appnNnTgFREffCap,
appnNnTgFRConnCost,
appnNnTgFRByteCost,
appnNnTgFRSecurity,
appnNnTgFRDelay,
appnNnTgFRUsr1,
appnNnTgFRUsr2,
appnNnTgFRUsr3,
appnNnTgFRGarbageCollect,
appnNnTgFRSubareaNum,
appnNnTgFRHprSup,
appnNnTgFRDestHprTrans,
appnNnTgFRTypeIndicator,
appnNnTgFRIntersubnet
}
STATUS current
DESCRIPTION
"The appnNnTopoConfGroup is mandatory only for network
nodes."
::= { appnGroups 9 }
last one in this batch is the local EN topology group β the description says it's mandatory only for network nodes, which is exactly what it says, so we're just reading it as written π
appnLocalEnTopoConfGroup OBJECT-GROUP
OBJECTS {
appnLocalEnTgEntryTimeLeft,
appnLocalEnTgDestVirtual,
appnLocalEnTgDlcData,
appnLocalEnTgOperational,
appnLocalEnTgCpCpSession,
appnLocalEnTgEffCap,
appnLocalEnTgConnCost,
appnLocalEnTgByteCost,
appnLocalEnTgSecurity,
appnLocalEnTgDelay,
appnLocalEnTgUsr1,
appnLocalEnTgUsr2,
appnLocalEnTgUsr3
}
STATUS current
DESCRIPTION
"The appnLocalEnTopoConfGroup is mandatory only for network
nodes."
::= { appnGroups 10 }
appnLocalDirPerfConfGroup OBJECT-GROUP
OBJECTS {
appnDirMaxCaches,
appnDirCurCaches,
appnDirCurHomeEntries,
appnDirRegEntries,
appnDirInLocates,
appnDirInBcastLocates,
appnDirOutLocates,
appnDirOutBcastLocates,
appnDirNotFoundLocates,
appnDirNotFoundBcastLocates,
appnDirLocateOutstands
}
STATUS current
DESCRIPTION
"The appnLocalDirPerfConfGroup is mandatory only for APPN
network nodes and end nodes."
::= { appnGroups 11 }
appnCosConfGroup OBJECT-GROUP
OBJECTS {
appnCosModeCosName,
appnCosTransPriority,
appnCosNodeRowWgt,
appnCosNodeRowResistMin,
appnCosNodeRowResistMax,
appnCosNodeRowMinCongestAllow,
appnCosNodeRowMaxCongestAllow,
appnCosTgRowWgt,
appnCosTgRowEffCapMin,
appnCosTgRowEffCapMax,
appnCosTgRowConnCostMin,
appnCosTgRowConnCostMax,
appnCosTgRowByteCostMin,
appnCosTgRowByteCostMax,
appnCosTgRowSecurityMin,
appnCosTgRowSecurityMax,
appnCosTgRowDelayMin,
appnCosTgRowDelayMax,
appnCosTgRowUsr1Min,
appnCosTgRowUsr1Max,
appnCosTgRowUsr2Min,
appnCosTgRowUsr2Max,
appnCosTgRowUsr3Min,
appnCosTgRowUsr3Max
}
STATUS current
DESCRIPTION
"The appnCosConfGroup is mandatory only for APPN network
nodes and end nodes."
::= { appnGroups 12 }
appnIntSessConfGroup OBJECT-GROUP
OBJECTS {
appnIsInGlobeCtrAdminStatus,
appnIsInGlobeCtrOperStatus,
appnIsInGlobeCtrStatusTime,
appnIsInGlobeRscv,
appnIsInGlobeRscvTime,
appnIsInGlobeActSess,
appnIsInSessState,
appnIsInPriLuName,
appnIsInSecLuName,
appnIsInModeName,
appnIsInCosName,
appnIsInTransPriority,
appnIsInSessType,
appnIsInSessUpTime,
appnIsInCtrUpTime,
appnIsInP2SFmdPius,
appnIsInS2PFmdPius,
appnIsInP2SNonFmdPius,
appnIsInS2PNonFmdPius,
appnIsInP2SFmdBytes,
appnIsInS2PFmdBytes,
appnIsInP2SNonFmdBytes,
appnIsInS2PNonFmdBytes,
appnIsInPsAdjCpName,
appnIsInPsAdjTgNum,
appnIsInPsSendMaxBtuSize,
appnIsInPsSendPacingType,
appnIsInPsSendRpc,
appnIsInPsSendNxWndwSize,
appnIsInPsRecvPacingType,
appnIsInPsRecvRpc,
appnIsInPsRecvNxWndwSize,
appnIsInSsAdjCpName,
appnIsInSsAdjTgNum,
appnIsInSsSendMaxBtuSize,
appnIsInSsSendPacingType,
appnIsInSsSendRpc,
appnIsInSsSendNxWndwSize,
appnIsInSsRecvPacingType,
appnIsInSsRecvRpc,
appnIsInSsRecvNxWndwSize,
appnIsInRouteInfo
}
STATUS current
DESCRIPTION
"The appnIntSessConfGroup is mandatory only for network
nodes."
::= { appnGroups 13 }
appnHprBaseConfGroup OBJECT-GROUP
OBJECTS {
appnNodeHprIntRteSetups,
appnNodeHprIntRteRejects,
appnLsErrRecoSup,
appnLsForAnrLabel,
appnLsRevAnrLabel
}
STATUS current
DESCRIPTION
"The appnHprBaseConfGroup is mandatory only for nodes that
implement the HPR base (APPN option set 1400)."
::= { appnGroups 14 }
appnHprRtpConfGroup OBJECT-GROUP
OBJECTS {
appnNodeMaxSessPerRtpConn,
appnNodeHprOrgRteSetups,
appnNodeHprOrgRteRejects,
appnNodeHprEndRteSetups,
appnNodeHprEndRteRejects,
appnLsBfNceId
}
STATUS current
DESCRIPTION
"The appnHprRtpConfGroup is mandatory only for nodes that
implement the HPR RTP tower (APPN option set 1401)."
::= { appnGroups 15 }
appnHprCtrlFlowsRtpConfGroup OBJECT-GROUP
OBJECTS {
appnLsCpCpNceId,
appnLsRouteNceId
}
STATUS current
DESCRIPTION
"The appnHprCtrlFlowsRtpConfGroup is mandatory only for nodes
that implement the HPR Control Flows over RTP tower (APPN
option set 1402)."
::= { appnGroups 16 }
appnHprBfConfGroup OBJECT-GROUP
OBJECTS {
appnIsInGlobeHprBfActSess,
appnIsInRtpNceId,
appnIsInRtpTcid,
appnIsRtpSessions
}
STATUS current
DESCRIPTION
"The appnHprBfConfGroup is mandatory only for nodes that
implement the APPN/HPR boundary function."
::= { appnGroups 17 }
appnTrapConfGroup OBJECT-GROUP
OBJECTS {
alertIdNumber,
affectedObject
}
STATUS current
DESCRIPTION
"The appnTrapConfGroup is optional for all APPN nodes. Nodes
implementing this group shall also implement the
appnTrapNotifGroup."
::= { appnGroups 18 }
appnTrapNotifGroup NOTIFICATION-GROUP
NOTIFICATIONS {
alertTrap
}
STATUS current
DESCRIPTION
"The appnTrapNotifGroup is optional for all APPN nodes.
Nodes implementing this group shall also implement the
appnTrapConfGroup."
::= { appnGroups 19 }
END
5. Acknowledgments π«Ά
Okay so this MIB module is the product of the IETF SNA NAU MIB WG and the AIW APPN/HPR MIBs SIG β¨. Huge thanks to Wayne Clark (Cisco Systems), Jim Cobban (Nortel), Rich Daugherty (IBM Corporation), Mark Regan (Cisco Systems), and Leo Temoshenko (IBM Corporation) for their contributions and review π. The whole crew showed up π.
6. References π
- [1] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure of Management Information for version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1902, January 1996.
- [2] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Textual Conventions for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1903, January 1996.
- [3] SNMPv2 Working Group, Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Conformance Statements for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1904, January 1996.
- [4] IBM, Systems Network Architecture Technical Overview, GC30-3073.
- [5] IBM, Systems Network Architecture APPN Architecture Reference, SC30-3422
- [6] IBM, Systems Network Architecture Formats, SC30-3346.
- [7] Allen, M., Clouston, B., Kielczewski, Z., Kwan, W., and B. Moore, "Definition of Managed Objects for APPC", RFC 2051, Wall Data Inc., Cisco Systems, Jupiter Technology Inc., IBM Corporation, December 1995.
- [8] Kielczewski, Z., Kostick D., and K. Shih, "Definition of Managed Objects for SNA NAUs using SMIv2", RFC 1666, Eicon Technology Corporation, Bell Communications Research, Novell, August 1994.
- [9] Clouston, B., and B. Moore, "Definitions of Managed Objects for DLUR", November 1996.
- [10] Clouston, B., and B. Moore, "Definitions of Managed Objects for HPR", November 1996.
- [11] SNA DLC Services MIB Working Group, Hilgeman, J., Nix, S., Bartky, A., and W. Clark, "Definitions of Managed Objects for SNA Data Link Control (SDLC) using SMIv2", RFC 1747, January 1995. URL:
ftp://ds.internic.net/rfc/rfc1747.txt - [12] SNA DLC Services MIB Working Group, Berl, S., Nix, S., and W. Clark, "Definitions of Managed Objects for SNA Data Link Control: LLC", May 1995.
- [13] Chen, D., Gayek, P., and S. Nix, "Definitions of Managed Objects for Data Link Switching using SNMPv2", RFC 2024, October 1995.
- [14] IBM, Systems Network Architecture Management Services Formats, GC31-8302.
7. Security Considerations π
Real talk, this one matters π. In most cases, MIBs are not themselves security risks. If SNMP security is operating as intended, using a MIB to view information about a system, or to change some parameter at the system, is a tool, not a threat π§°.
None of the read-only objects in the APPN MIB reports a password, user data, or anything else that is particularly sensitive π. Some enterprises view their network configuration itself, as well as information about network usage and performance, as corporate assets, so those enterprises may wish to restrict SNMP access to most of the objects in the MIB π.
Four of the read-write objects in the MIB can affect network operations π, so it is recommended that SNMP access to these objects be restricted. The four objects are:
appnNodeNnSafeStoreFreq: Setting this object to 0, or to a very large value, effectively turns off safe storing of topology data.appnPortCommand,appnLsCommand: These two objects allow an APPN port or link station to be activated, deactivated, or recycled via an SNMP operation. The latter two operations may disrupt current users of the network.appnIsInSessState: Setting this object to'inactive'causes an active SNA session to be deactivated.
Other read-write objects control the gathering of network management data, so controlling access to these objects is less critical πΈ.
8. Authors' Addresses π¦
Bob Clouston
Cisco Systems
7025 Kit Creek Road
P.O. Box 14987
Research Triangle Park, NC 27709, USA
Tel: 1 919 472 2333
E-mail: clouston@cisco.com
Bob Moore
IBM Corporation
800 Park Offices Drive
CNMA/664
P.O. Box 12195
Research Triangle Park, NC 27709, USA
Tel: 1 919 254 4436
E-mail: remoore@ralvm6.vnet.ibm.com
And that's a wrap on RFC 2155 πβ¨
π¦ where this page comes from
- ietf: rfc2155 1997-06
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms