RFC 2455
Definitions of Managed Objects for APPN
Part 1 of 21 π
RFC 2455: Definitions of Managed Objects for APPN β¨
Authors: B. Clouston (Cisco Systems) and B. Moore (IBM Corporation) π Category: Standards Track π Date: November 1998 π Obsoletes: RFC 2155 π¦
Okay bestie, this is the one that defines the managed objects for APPN (Advanced Peer-to-Peer Networking) π It obsoletes RFC 2155, so if you've got an older copy lying around, it's time to retire it π
Status of this Memo πΈ
This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited. π
Copyright Notice β
Copyright (C) The Internet Society (1998). All Rights Reserved. π
Abstract π¦
This memo defines a portion of the Management Information Base (MIB) for use with network management protocols in the Internet community. In particular, it defines objects for monitoring and controlling network devices with APPN (Advanced Peer-to-Peer Networking) capabilities. This memo identifies managed objects for the APPN protocol. π₯
Table of Contents π
1. Introduction .......................................... 2
2. The SNMPv2 Network Management Framework ............... 2
3. Overview .............................................. 3
3.1 Relationship with RFC 2155 ........................... 6
3.2 APPN MIB structure ................................... 7
4. Definitions ........................................... 10
5. Security Considerations ............................... 135
6. Intellectual Property ................................. 136
7. Acknowledgments ....................................... 137
8. References ............................................ 137
9. Authors' Addresses .................................... 139
10. Full Copyright Statement .............................. 140
1. Introduction β¨
Okay so this document is a product of the SNA NAU Services MIB Working Group π§ It defines a MIB module for managing devices with Advanced Peer-to-Peer Networking (APPN) capabilities, which is giving "keep your devices organized" energy π
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [17]. These are the official rules-of-the-road words, so read them carefully bestie, no cap π«Ά
2. The SNMP Network Management Framework π
Okay, the SNMP Management Framework presently consists of five major components. Let's go through them, I'm obsessed with how neatly these fit together π
- An overall architecture, described in RFC 2271 [1].
- Mechanisms for describing and naming objects and events for the purpose of management. The first version of this Structure of Management Information (SMI) is called SMIv1 and described in STD 16, RFC 1155 [2], STD 16, RFC 1212 [3] and RFC 1215 [4]. The second version, called SMIv2, is described in RFC 1902 [5], RFC 1903 [6] and RFC 1904 [7].
- Message protocols for transferring management information. The first version of the SNMP message protocol is called SNMPv1 and described in STD 15, RFC 1157 [8]. A second version of the SNMP message protocol, which is not an Internet standards track protocol, is called SNMPv2c and described in RFC 1901 [9] and RFC 1906 [10]. The third version of the message protocol is called SNMPv3 and described in RFC 1906 [10], RFC 2272 [11] and RFC 2274 [12].
- Protocol operations for accessing management information. The first set of protocol operations and associated PDU formats is described in STD 15, RFC 1157 [8]. A second set of protocol operations and associated PDU formats is described in RFC 1905 [13].
- A set of fundamental applications described in RFC 2273 [14] and the view-based access control mechanism described in RFC 2275 [15].
Managed objects are accessed via a virtual information store, termed the Management Information Base or MIB. Objects in the MIB are defined using the mechanisms defined in the SMI. πΈ
This memo specifies a MIB module that is compliant to the SMIv2. A MIB conforming to the SMIv1 can be produced through the appropriate translations. The resulting translated MIB must be semantically equivalent, except where objects or events are omitted because no translation is possible (use of Counter64). Some machine readable information in SMIv2 will be converted into textual descriptions in SMIv1 during the translation process. However, this loss of machine readable information is not considered to change the semantics of the MIB. π¦
3. Overview β¨
Okay bestie, this part is where we get into APPN π¦. This document identifies a set of objects for monitoring the configuration and active characteristics of devices with APPN capabilities, and for controlling certain characteristics. APPN is the peer-to-peer part of Systems Network Architecture (SNA) π and these networks carry both independent and dependent LU session traffic. For managing those sessions, see the SNANAU APPC MIB [21] and the SNA NAU MIB [22]. For the APPN extensions, see also RFC 2232, the DLUR MIB [23], and RFC 2238, the HPR MIB [24]. In this document, we describe the APPN managed objects π.
An APPN network is made up of different types of nodes, plus transmission groups (TGs) that connect those nodes πΈ. Network nodes (NNs) handle the directory and routing functions for session establishment. An NN can be a session end point or an intermediate node in a session. A border node is a type of network node that connects networks together for session establishment without fully merging them. A branch network node (BrNN) is similar to a border node, but has only minimal functions, which is how you build a large APPN network inside an enterprise π§. A BrNN is defined as a network node in the APPN architecture, but it also looks like an end node (EN) to upstream NNs. This MIB module treats it as its own node type, since it doesn't fit cleanly as an EN or an NN, and the module explicitly identifies the objects returned by a BrNN. For example, a BrNN does not implement the appnNnTopo objects, because it is the only node in its network topology table. It does implement the appnSessIntermediate objects, because it has intermediate session support. It also implements two of the appnEnUniqueCaps objects that could be useful to a management application. A BrNN identifies itself as 'endNode' in the appnNodeType object, and then identifies itself as a BrNN in the appnNodeBrNn object π.
End nodes 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 also session end points, but they don't support CP-CP sessions, so they need extra manual configuration definitions to establish sessions in an APPN network. ENs and LEN nodes may have minimal directory and routing functions, either to establish control sessions (ENs) or to connect into the APPN network (LEN nodes).
Virtual routing nodes (VRNs) are not really nodes π. They are common definitions among actual nodes in a shared transport facility, such as a local area network (LAN), and they 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 [25], the SNADLC LLC MIB [26], and the DLSw MIB [27]. 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 favours TGs with a lower relative cost per byte.
A node saves network topology information (about NNs, VRNs, and the TGs between them) in a network topology database. A node that supports APPN function set 1120, branch awareness, also saves information about TGs to adjacent BrNNs π₯. 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 about TGs to all node types is kept in a local topology database. Local topology information is only shared with other nodes during the session establishment process, so the NN responsible for route calculation has what it needs for end-to-end route calculation π .
A management application can show a full picture of the APPN network using the network and local topology information π¦. To show the network topology, the application only needs to query the network topology tables from a single NN. To show all of the BrNNs, the application must also directly query all destinations of TGs that indicate they are branch TGs (indicated by the appnNnTgFRBranchTg object), to see if they have any cascaded BrNNs. For any NNs that don't indicate branch awareness support (indicated by the appnNnNodeFRBranchAwareness object), the application must query each NN's appnLocalTgTable, and then query the appnNodeBrNn object of each row's destination node to identify BrNNs. To show all of the nodes in the network, including ENs and LEN nodes, the application must query every NN's appnLocalTgTable, and iteratively do the same for each BrNN it finds πΈ.
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. However, in this MIB, the agent does not include nonsignificant blanks. Using the COS name from the previous example, an agent returns a length of 6 and the string "#INTER" with no blanks for appnCosName, no matter how it appears in the BIND RU or in internal storage. The lone exception is the all-blank mode name, for which the agent returns a length of 8 and the string " " (8 blank spaces). The MIB variables that this applies to are identified by a textual convention syntax that also describes this behaviour π.
When an SNA name is functioning as a table index, the agent treats trailing blanks as significant. If a management station requests the objects from a row with index"#INTER ", the agent does not match this to the row with index"#INTER". Since an agent has no nonsignificant blanks in any of its table indices, the only reason for a management station to include them would be 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 [18], [19], [20], and [28] π.
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 these things π₯Ί:
- Configuration of APPN nodes.
- Monitoring and control of endpoint sessions.
- Dependent LU Requester (DLUR) management.
- High-Performance Routing (HPR) management.
3.1. Relationship with RFC 2155
This MIB obsoletes RFC 2155 [29] π, with changes due to additions to the APPN architecture and some implementation experience with RFC 2155. The changes from RFC 2155 are as follows β¨:
- New objects for the multi-link TG architecture enhancement: appnLsMltgMember, appnNnTgFRMltgLinkType, appnLocalTgMltgLinkType, and appnLocalEnTgMltgLinkType.
- New objects, and explanations for values of existing objects, for the branch network node architecture enhancement: appnNodeBrNn, appnNnNodeFRBranchAwareness, appnNnTgFRBranchTg, and appnLocalTgBranchLinkType.
- New object, appnNodeLsCounterType, to indicate which type of ANR traffic is returned in the appnLsTable traffic counters.
- Deprecated appnNodeMibVersion object.
- Miscellaneous editorial changes π©·.
3.2. 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 representing the network nodes, virtual routing nodes, and TGs between these nodes that make up the APPN network topology database maintained in NNs.
- appnLocalTopology - objects representing 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.2.1. appnNode group
The appnNode group consists of 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, with two objects that also apply to branch network nodes. This group includes an object indicating the node's 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 encountered with connections to adjacent nodes, such as the sense data captured during connection failures. It is 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) and ports in the appnPortTable π¦.
3.2.2. appnNn group β¨
okay so the appnNn group is all about the network node's view of the topology πΊοΈ
appnNnTopo: this one's the general info bestie. It covers the network topology database, like how many nodes are there and how many topology database updates (TDU) wars the node has detected πappnNnTopology: this is where the actual APPN network topology database lives π It has tables for the network nodes, virtual routing nodes, and TGs between them, plus the info about those resources that rides along in topology updates. The tables are indexed first by the same flow reduction sequence number (FRSN) that NNs use in topology exchanges. So a management station can grab just the incremental updates, since the agent bumps the FRSN of anything new or changed π¦
3.2.3. appnLocalTopology group π
the appnLocalTopology group is giving "my own node, but make it detailed" πΈ
appnLocalThisNodeappnLocalGeneralis where you find the local node and its type π§appnLocalNnSpecificholds the routing info about the local network node πappnLocalTgrepresents info about this node's local TGs β¨
appnLocalEnTopology: this table has the TG info for EN TGs that the NN learned through TG registration with the local node π«Ά
3.2.4. appnDir group π
the appnDir group is the directory era π
appnDirPerf: these objects cover info about the directory database and about directory searches involving this node πappnDirTable: this table is the directory database itself π It lists the LUs known to this node, along with the owning node of each LU and the serving NN of that owning node π
3.2.5. appnCos group π
the appnCos group is all about class of service, and it's giving mapping energy π
appnCosModeTable: this one represents the mode to class of service mapping π¦appnCosNameTable: this one represents the transmission priority for each class of service π₯appnCosNodeRowTable: this one has the node-row info for each class of service, including the weight of each node βappnCosTGRowTable: this one has the TG-row info for each class of service, including the weight of each TG π
3.2.6. appnSessIntermediate group π§
the appnSessIntermediate group is where intermediate sessions get their moment β¨
appnIsInGlobal: these objects let you control the collection of intermediate session info, like Route Selection Control Vectors (RSCVs) and counters πappnIsInTable: this table has info on active intermediate sessions πΈappnIsRtpTable: this table has info on active intermediate sessions that are being carried over Rapid Transport Protocol (RTP) connections by High Performance Routing (HPR) π
3.2.7. appnTraps π¨
there's exactly one APPN trap defined, and it's a whole vibe π
it's intended to line up with SNA/MS Alerts, but a product doesn't have to implement it, so it's optional π The trap identifies the Alert ID number and, where possible, the affected resource π«Ά
4. Definitions π
here's the MIB module itself, the actual ASN.1 source of truth π₯
APPN-MIB DEFINITIONS ::= BEGIN
IMPORTS
IANAifType
FROM IANAifType-MIB
DisplayString, VariablePointer, RowPointer, DateAndTime,
TruthValue, TimeStamp, TEXTUAL-CONVENTION
FROM SNMPv2-TC
Counter32, Gauge32, 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 "9807151800Z" -- July 15, 1998
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
4205 S. Miami Boulevard
BRQA/501
P.O. Box 12195
Research Triangle Park, NC 27709, USA
Tel: 1 919 254 4436
E-mail: remoore@us.ibm.com
"
DESCRIPTION
"This is the MIB module for objects used to
manage network devices with APPN capabilities."
-- Revision tracking starts with Proposed Standard (RFC 2155)
REVISION "9807151800Z"
DESCRIPTION
"Minor editorial fixes; new value 'none(5)' added
to the enumeration for the appnLocalTgBranchLinkType
object."
REVISION "9805261800Z"
DESCRIPTION
"Post-RFC 2155 conformance definitions added,
appnNodeLsCounterType and appnNodeBrNn objects
added, appnNodeMibVersion object deprecated."
REVISION "9707311800Z"
DESCRIPTION
"Branch network node (Branch Extender) objects added."
REVISION "9703311800Z"
DESCRIPTION
"MLTG objects added."
REVISION "9703201200Z"
DESCRIPTION
"RFC 2155 (Proposed Standard)"
::= { 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
Okay bestie, the textual conventions are still going, so let's keep the vibe rolling π β¨
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))
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'
}
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))
Now we're into the actual MIB objects πΈ The APPN Node Group is where the node-wide info lives, so it's basically the main character of this module π
APPN Node Group β¨
-- *********************************************************************
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, an APPN branch network node, or an LEN node.
-- APPN General Information
-- This section applies to APPN network nodes, end nodes, and branch
-- network nodes, as well as 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 (deprecated: moved to end of module)
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
Note: A branch network node SHALL return endNode(2)
as the value of this object. A management application
can distinguish between a branch network node and an
actual end node by retrieving the appnNodeBrNn object."
::= { 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 reinitialized."
::= { 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
reinitialized."
::= { 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
reinitialized."
::= { 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
reinitialized."
::= { 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
reinitialized."
::= { 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 reinitialized."
::= { 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 reinitialized."
::= { 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 reinitialized."
::= { appnGeneralInfoAndCaps 16 }
Okay so the next bit is all about ANR counters and the node's branch network status π Let's go.
Ngl the counter type object is giving main character energy π
appnNodeLsCounterType OBJECT-TYPE
SYNTAX INTEGER {
other(1),
noAnr(2),
anrForLocalNces(3),
allAnr(4)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates which ANR traffic, if any, the node includes in the
counts returned by the APPN link station counters
appnLsInXidBytes, appnLsInMsgBytes, appnLsInXidFrames,
appnLsInMsgFrames, appnLsOutXidBytes, appnLsOutMsgBytes,
appnLsOutXidFrames, and appnLsOutMsgFrames. These counters
are always incremented for ISR traffic.
The following values are defined:
other(1) - the node does something different
from all the options listed below
noAnr(2) - the node does not include any ANR
traffic in these counts
anrForLocalNces(3) - the node includes in these counts
ANR traffic for RTP connections
that terminate in this node, but
not ANR traffic for RTP connections
that pass through this node without
terminating in it
allAnr(4) - the node includes all ANR traffic
in these counts."
::= { appnGeneralInfoAndCaps 17 }
So this one picks which ANR traffic gets counted in the link station counters π The four values are other(1), noAnr(2), anrForLocalNces(3) and allAnr(4), and the ISR traffic is always counted no matter what. Iconic, honestly β¨
appnNodeBrNn OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node is currently configured as a
branch network node.
Note: throughout the remainder of this MIB module, branch
network node is treated as a third node type, parallel to
network node and end node. This is not how branch network
nodes are treated in the base APPN architecture, but it
increases clarity to do it here."
::= { appnGeneralInfoAndCaps 18 }
Bestie, the note here is literally the tea π« The MIB treats branch network nodes as a third node type, next to network nodes and end nodes, even though base APPN doesn't do it that way. It's just clearer this way, so we're doing it π§
-- *********************************************************************
-- 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 }
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 the network node section is a whole vibe π Central directory, tree caching, route addition resistance, ISR, FRSN, and the border and gateway support flags are all in here. The lower the appnNodeNnRouteAddResist value, the more desirable the node is for intermediate routing, so that one is literally a popularity contest π
The congested and ISR-depleted flags are kind of dramatic too π Other network nodes stop routing traffic to this node while the congested flag is on, and they stop routing through it while the depleted flag is on. Not me being like "ugh, sorry" π
-- *********************************************************************
-- APPN End Node Information
-- This section provides global information about an APPN end node. Two
-- of the objects are also implemented by a branch network node.
-- *********************************************************************
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.
A branch network node shall also implement this object."
::= { 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.
A branch network node shall also implement this object."
::= { appnEnUniqueCaps 3 }
End node time π¦ Two of these objects are also implemented by a branch network node, so if you're a branch network node, appnNodeEnNnServer and appnNodeEnLuSearch are yours too π«Ά The NN server name reads as zero-length when there's no active NN server, which is very "I'm not here right now" energy π
-- *********************************************************************
-- APPN Port information
-- This section provides information about an APPN node's ports.
-- *********************************************************************
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 }
Now we're entering the port zone πͺβ¨ The port table is basically the list of APPN ports, with the port name as the index, so appnPortName is the key to everything else in the row π It's giving organised, and honestly I respect it π
Okay bestie, we're picking up right where the port table left off π
The next bit lets a management station poke the port's Command knob, so let's go! π¦
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 }
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 }
Now we're moving on to the link station table, which is giving main character energy π Each link station gets its own row, and the index is its name πΈ
-- *********************************************************************
-- APPN Link Station Information
-- This section provides information about an APPN node's link stations.
-- *********************************************************************
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,
appnLsMltgMember TruthValue
}
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 }
Okay bestie, the link station state is where things get spicy π₯. Here's how it's giving:
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 }
Next up is the port name, and it's a short one π
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 }
Okay the adjacent CP name object is giving detective π§ It has a little priority order, so pay attention:
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 }
Activate-on-demand is my favourite, it's so iconic π
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 }
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 }
The max BTU size has a whole negotiation storyline, so grab your snacks π
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 }
Now the counters, which are a lot but honestly iconic π
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 }
Echo responses and delay are the connectivity check era, and it's giving ping energy π¦
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 }
okay so the next batch is where the link station stuff really starts flexing π we've got timestamps, counters, the HPR support level, ANR labels, NCE IDs, and addresses, all bundled up in the appnLsEntry table π¦
Starting with the time the longest delay happened. It's basically a timestamp for your worst moment, so you can line it up with other events like an APPC session dropping π
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 }
Next up are the XID counters π good ones and bad ones, both counted since the link station was started. Literally iconic record keeping π
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 is giving pointer energy π§ it points you to an object in a DLC-specific MIB that has more info. If the agent can't find one, the value is 0.0.
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 }
Now the timers πΈ appnLsActiveTime tracks how long the link has been active in hundredths of a second, adding up across the node's life since its last reinit. Zero means it's never been active since the last reinit, so no cap, that's a sad link π
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
reinitialized, 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 reinitialized."
::= { 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 }
Here's the HPR support check π it's an enum with four levels, from no support at all up to control flows riding over the RTP tower. The option sets are listed right there in the description, so you know exactly what each level means. If the link isn't active, you get the defined value back.
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 is a TruthValue that just tells you whether the link station supports HPR link-level error recovery. Yes or no, bestie π«Ά
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 }
Now the ANR labels π¦ these are octet strings of up to eight bytes, one for forward and one for reverse. If the link doesn't do HPR or the value is unknown, you get a zero-length string back.
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 }
Next are the NCE IDs π§ there are three of them, and each is an octet string of up to eight bytes. CP-CP sessions get one, Route Setup gets one, and the APPN/HPR boundary function gets one. Each one is a zero-length string when it's unknown or doesn't mean anything for this node, and each one only applies if the node supports the HPR transport tower.
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 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 }
Addresses are up next π appnLsLocalAddr is the address of this link station, and appnLsRemoteAddr is the address of the remote link station on the same link.
appnLsLocalAddr OBJECT-TYPE
SYNTAX DisplayableDlcAddress
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Local address of this link station."
::= { appnLsEntry 41 }
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 name of the remote link station, pulled from the XID exchange π it's one to ten characters, and a zero-length string means the name isn't known.
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 that holds the sysUpTime value from the last time the link station was started. Yes, the name says disconnect, but the description says started, so I'm copying exactly what the spec says π
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 }
appnLsMltgMember tells you whether the link is part of a multi-link TG. The tricky bit is that once a TG has been brought up as multi-link, every link in it counts as a member, even if it's the only active one right now π
appnLsMltgMember OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the link is a member of a multi-link TG. If
the link's TG has been brought up as a multi-link TG, then the
link is reported as a member of a multi-link TG, even if it is
currently the only active link in the TG."
::= { appnLsEntry 45 }
The next table is the status table π it logs the errors this node ran into with its adjacent nodes. Entries get added for exceptional conditions while connections are being set up, and for ones that ended a connection. Normal stuff doesn't get logged at all, and removing old entries is up to the implementation.
--********************************************************************
-- This table provides information about errors this node encountered
-- with connections to adjacent nodes. Entries are added for exceptional
-- conditions encountered establishing connections, and for exceptional
-- conditions that resulted in termination of a connection. It is an
-- implementation option when entries are removed from this table.
--********************************************************************
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.
It is an implementation option when entries are removed from
this table."
::= { 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 }
Picking up right where the link station status table left off π These last fields explain why a link went sideways: the TG number, the sense data, and the XID rejection details. Literally the receipts π
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 }
So appnLsStatusTgNum is the TG number for the link station, and 256 is the sentinel for "we didn't know the TG number when things broke" π
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 }
appnLsStatusGeneralSense is the sense data from Configuration Services, covering the stretch from the start of activation up to the beginning of the XID sequence π§ appnLsStatusRetry is the yes-or-no on whether the node will try the start request again π
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 }
appnLsStatusEndSense is the sense data from the DLC layer for when the link connection to the adjacent node ends π The two XID sense objects are a matched pair. appnLsStatusXidLocalSense is what this node built into the cv22 it sent over, and appnLsStatusXidRemoteSense is what the neighbour sent back in its cv22 π«Ά Both are about XID rejection, so they're basically a little argument with receipts on each side π
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 }
Okay, this is so specific it's iconic π appnLsStatusXidByteInError points at the exact byte in the XID that caused the problem, and 65536 is the "nothing to see here" value. appnLsStatusXidBitInError narrows it down to the exact bit, and 8 means "no meaning" π
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 }
The last few fields round things out πΈ appnLsStatusDlcType tells you which kind of DLC interface you're on, based on the protocol right below it, and the local and remote addresses are the two ends of this link station's link β¨
APPN Virtual Routing Node Information π¦
-- *********************************************************************
-- APPN Virtual Routing Node Information
-- This section provides information relating a virtual routing node to
-- an APPN port.
-- *********************************************************************
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 }
This section is all about the virtual routing node, which is the thing that links a VRN to an APPN port π The table is keyed by three things: the VRN name, the TG number, and the port name. Every entry has a matching row in appnLocalTgTable, so the two tables stay in sync π€
The APPN Topology Group π
-- ************** 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, including intersubnetwork TGs (ISTGs) and branch TGs.
--
-- 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 fully qualified CP 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.
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 reinitialized."
::= { 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 reinitialized."
::= { 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 }
This is the big topology group, and the comment block is basically the whole vibe π§ It covers every network node, every VRN, and every TG hooked up to them, including ISTGs and branch TGs. The topology database is built up over time as network nodes swap info with their neighbours, and the VRN fields that actually matter are the FRSN, node name, and node type π Management apps can use GET NEXT to fetch only the updates after they've grabbed the whole database once, which is honestly so efficient π The comment ends with the reason for keeping node and TG data in separate tables, which is that SNMP's ASN.1 can't nest a TG table inside a node table, so each TG row carries its node name to stay connected β¨
The five objects after that are the counters and limits: the max number of node entries, the current count, and how many node records, TG records, and TDU wars have happened since the last initialization π
Network Node Topology Table π
-- 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 }
And this table is the map of every APPN network node and VRN in your node's topology database πΊοΈ Its entries are indexed by the FRSN plus the fully qualified node name, so that's how you look up a specific node π¦
Okay so this is where the FR entry really gets its personality π Here's the SEQUENCE that lists every field, and then we go field by field.
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,
appnNnNodeFRBranchAwareness TruthValue
}
The first three fields are the ones that identify the node. The FRSN is the main character here π¦ because it's the timestamp for when this resource was last updated at the agent node. It's not a global number, either. It's only unique within each APPN network node, and one TDU can cover several APPN resources at once.
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 }
Next up is the route addition resistance, which is basically a popularity score for routing π The lower the number, the more desirable the node is for intermediate routing. Then we get a run of TruthValue flags that all come from cv4580, so it's giving bit-level drama π₯
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 }
Now the HPR support field, which is an INTEGER with four levels of glow-up β¨ Each level builds on the last, from no HPR at all up to control flows riding over the RTP tower.
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 }
appnNnNodeFRBranchAwareness OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether this node supports branch awareness.
This object corresponds to cv4580, byte 8, bit 4."
::= { appnNnTopologyFREntry 18 }
--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,
appnNnTgFRMltgLinkType TruthValue,
appnNnTgFRBranchTg TruthValue
}
Now we're into the TG table, which is the list of every transmission group between the nodes in the database π Its index is a four-way combo of FRSN, owner, destination and TG number, so it's basically a whole friendship bracelet of keys π
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 }
okay bestie, the TG entries keep going and they are SO detailed π each one is a little row in the appnNnTgTopologyFREntry table π¦
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 }
ok so TimeLeft is basically a countdown β³ in days, and it only starts ticking if the TG isn't operational or its RSN is odd (aka inconsistent). no cap, it's giving "use it or lose it" π
appnNnTgFRDestVirtual OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the destination node is a virtual routing
node."
::= { appnNnTgTopologyFREntry 6 }
DestVirtual is a yes/no π that tells you if the far end is a virtual routing node. simple, iconic.
appnNnTgFRDlcData OBJECT-TYPE
SYNTAX AppnTgDlcData
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"DLC-specific data related to a link connection network."
::= { appnNnTgTopologyFREntry 7 }
DlcData is the DLC-specific info for a link connection network πΈ it's the detailed stuff that belongs to that particular link.
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 cv47, bytes
2-5"
::= { appnNnTgTopologyFREntry 8 }
Rsn is the owning node's resource sequence number π₯ and this one is a big deal: an odd number means the info is inconsistent. it maps to bytes 2-5 of cv47, so if you're a cv47 person, that's your spot π§
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 }
Operational is the "is this TG live?" check β¨ it lives in cv47, byte 6, bit 0.
appnNnTgFRQuiescing OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the transmission group is quiescing.
If the TG owner is either an extended border node or a
branch-aware network node (indicated, respectively, by
the appnNnNodeFRExteBorderSup and appnNnNodeFRBranchAwareness
objects in the corresponding appnNnTopologyFREntry), then
this indicator is artificially set to TRUE in the APPN
topology database, to remove the TG from other nodes'
route calculations. A management application can
determine whether the TG is actually quiescing by
examining its appnLocalTgQuiescing object at the TG owner.
This object corresponds to cv47, byte 6, bit 2."
::= { appnNnTgTopologyFREntry 10 }
okay Quiescing is lowkey the drama queen of this table π if the owner is an extended border node or a branch-aware network node, the flag gets faked to TRUE in the topology database so other nodes skip this TG when they calculate routes. the real answer is in appnLocalTgQuiescing back at the owner, so that's where a management app should go check. cv47, byte 6, bit 2.
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 }
CpCpSession is giving four-way choice energy π it covers whether CP-CP sessions are supported on the TG, and whether the owner's contention-winner session is active there. some nodes can't tell support apart from status, so they may just say supportedUnknownStatus, and that's valid too π«Ά it's cv47, byte 6, bits 3-4.
appnNnTgFREffCap OBJECT-TYPE
SYNTAX AppnTgEffectiveCapacity
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Effective capacity for this TG."
::= { appnNnTgTopologyFREntry 12 }
EffCap is the effective capacity for this TG π short and sweet, no notes needed.
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 }
ConnCost is the price tag for time spent on the TG π° it's admin-assigned, 0 means free and 255 means maximum ouch. lives in cv47, byte 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 }
ByteCost is the same vibe but per byte sent π¦ same 0 to 255 scale, cv47, byte 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 }
Security is the admin-assigned security level of the TG π cv47, byte 16. protect your main character era.
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 }
Delay is the admin-assigned delay for this TG β±οΈ cv47, byte 17.
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 }
the Usr1, Usr2 and Usr3 trio π these are three user-defined TG characteristics, each one an admin-assigned value from 0 to 255. they sit at cv47 bytes 19, 20 and 21, so it's basically a little custom-label squad π
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 }
GarbageCollect is the "you're getting deleted next cycle" flag ποΈ it says whether the TG is marked for removal from the topology database on the next garbage collection cycle. cv47, byte 6, bit 1. ngl the most dramatic boolean in the whole table π
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 }
SubareaNum is the subarea number tied to this TG π§© it comes from cv4680, bytes m+2 through m+5.
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 }
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 }
HprSup checks if high performance routing (HPR) runs over this TG π and DestHprTrans checks if the destination node supports the HPR transport tower. both live in cv4680, byte m+1 (bits 2 and 7 respectively).
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 }
TypeIndicator is the "what kind of TG is this?" label π·οΈ four options: unknown, appnOrBfTg, interchangeTg and virtualRouteTg. it's read from cv4680, byte m+1, bits 3-4.
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 }
Intersubnet tells you if the TG is a border between subnetworks π it's cv4680, byte m+1, bit 5.
appnNnTgFRMltgLinkType OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates whether the transmission group is a
multi-link TG. A TG that has been brought up as a multi-link
TG is reported as one, even if it currently has only one link
active.
This object corresponds to cv47, byte 6, bit 5."
::= { appnNnTgTopologyFREntry 26 }
MltgLinkType is the multi-link check π and the vibe here is "once a multi-link, always a multi-link." even if only one link is active right now, it still gets reported as multi-link. cv47, byte 6, bit 5.
appnNnTgFRBranchTg OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Indicates whether the transmission group is a branch TG
(equivalently, whether the destination of the transmission
group is a branch network node).
This object corresponds to cv4680, byte m+1, bit 1."
::= { appnNnTgTopologyFREntry 27 }
BranchTg checks if the TG is a branch TG, which is the same as asking whether the destination is a branch network node πΏ it's cv4680, byte m+1, bit 1.
okay now we're moving into the local topology group π§β¨ this part of the MIB is for the topology that each node keeps for itself. it's a little different depending on the node type, so pay attention bestie π
-- ************** The APPN Local Topology Group ************************
-- This MIB Group represents the local topology maintained in
-- APPN network nodes, end nodes, and branch 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 }
so the group covers APPN network nodes, end nodes and branch network nodes πΈ there are two tables in it: one for TGs owned by this node (every node type has this one), and one for what the node knows about its end nodes' TGs (only network nodes do this one). and appnLocalTopology is just the OID hanging off 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,
appnLocalTgMltgLinkType TruthValue,
appnLocalTgBranchLinkType INTEGER
}
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 }
ok the local TG table is the "my own TGs" list π it's indexed by the destination CpName plus the TG number, so those two together pick out one row. the destination can be a virtual node, network node, LEN node or end node, and the destination name is the fully qualified name. the TG number is just a 0 to 255 number for the transmission group π
Okay bestie, we're picking up right where the local TG table is giving us all the per-TG details π
Every one of these is its own OBJECT-TYPE, and that ::= { appnLocalTgEntry N } number is just where the column sits in the entry. Let's go π«Ά
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 }
Next up is the CP-CP session flag, and this one is a whole vibe π It tells you whether CP-CP sessions are supported on the TG and whether the TG owner's contention-winner session is active on it. Some nodes can't tell support and status apart, so they're allowed to report supportedUnknownStatus and we just roll with it π
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 }
Now the three user-defined characteristics, usr1 through usr3 β¨ These are whatever the admin decides they are, so they're basically a little sticky-note space for each TG π
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 }
HPR support is the ladder of levels, and each rung adds more πͺπ¦ The enum values are noHprSupport(1), hprBaseOnly(2), rtpTower(3), and controlFlowsOverRtpTower(4). The option set numbers in the description are part of the spec too, so they stay exactly as they are.
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 }
Intersubnet and multi-link are both TruthValue flags π The multi-link one has a fun twist: a TG that was brought up as multi-link still counts as multi-link even when only one link is active right now. Once it's multi-link, it stays multi-link in the report β¨
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 }
appnLocalTgMltgLinkType OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates whether the transmission group is a
multi-link TG. A TG that has been brought up as a multi-link
TG is reported as one, even if it currently has only one link
active."
::= { appnLocalTgEntry 19 }
Last one in this entry is the branch link type, and it's a whole family tree π³ It can be other, uplink, downlink, downlinkToBranchNetworkNode, none, or unknown. Be careful with the details here, because other is specifically what gets used for a connection network TG owned by a branch network node π
appnLocalTgBranchLinkType OBJECT-TYPE
SYNTAX INTEGER {
other(1),
uplink(2),
downlink(3),
downlinkToBranchNetworkNode(4),
none(5),
unknown(255)
}
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Branch link type of this TG:
other(1) = the agent has determined the TG's
branch link type to be a value other
than branch uplink or branch
downlink. This is the value used
for a connection network TG owned by
a branch network node.
uplink(2) = the TG is a branch uplink.
downlink(3) = the TG is a branch downlink to an
end node.
downlinkToBranchNetworkNode(4) = the TG is a branch
downlink to a cascaded branch
network node.
none(5) = the TG is not a branch TG.
unknown(255) = the agent cannot determine the
branch link type of the TG."
::= { appnLocalTgEntry 20 }
Now we're moving on to the end node TG table π§ This one tracks every TG owned by the end nodes this node knows about through TG registration. It's not this node's own view of the TG for the partner, and the destination can be a virtual routing node, a network node, or an end node. It's giving "who's in my contacts" energy π±
-- 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,
appnLocalEnTgMltgLinkType TruthValue
}
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 }
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 }
okay so we're still in the TG attribute era π these next few are all read-only and all just the admin's call, which is giving "the network's secret sauce is set by a human" π§
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 }
appnLocalEnTgMltgLinkType OBJECT-TYPE
SYNTAX TruthValue
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"This object indicates whether the transmission group is a
multi-link TG. A TG that has been brought up as a multi-link
TG is reported as one, even if it currently has only one link
active."
::= { appnLocalEnTgEntry 17 }
ngl the multi-link bit is kind of iconic π¦ once a TG comes up as multi-link it keeps getting reported that way, even if only one link is still active. it's giving "once you're in the group chat, you stay in the group chat" π
now we get to the directory group, which is where the nodes keep their little black books of who's where πβ¨
-- ************** 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 and branch 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,
-- in any of its attached end nodes or branch network nodes, or in any
-- of the nodes below one of its attached branch network 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
reinitialized."
::= { 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
reinitialized."
::= { 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
reinitialized."
::= { 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
reinitialized."
::= { 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 reinitialized."
::= { 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 reinitialized."
::= { 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 }
the directory is basically a big "who's where" list for LUs, and the nodes look up each other's entries for every app that wants to find a buddy π«Ά the counters up there are just the vibe check for how the lookups are going: locates in, locates out, the "not found" ones that left everyone on read π
okay the directory table is the main event, one row per LU, and it's indexed by the LU name so you can look someone up by their name like a proper bestie π
--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,
appnDirApparentLuOwnerName DisplayString
}
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 }
appnDirApparentLuOwnerName OBJECT-TYPE
SYNTAX DisplayString (SIZE (0 | 3..17))
MAX-ACCESS read-only
STATUS current
DESCRIPTION
"Fully qualified CP name of the node at which the LU appears to
be located. This object and the appnDirLuOwnerName object are
related as follows:
Implementations that support this object save in their
directory database information about an LU's owning control
point that was communicated in two control vectors:
- an Associated Resource Entry (X'3C') CV with resource
type X'00F4' (ENCP)
- a Real Owning Control Point (X'4A') CV.
The X'4A' CV is created by a branch network node to preserve
the name of the real owning control point for an LU below the
branch network node, before it overwrites this name with its
own name in the X'3C' CV. The X'4A' CV is not present for LUs
that are not below branch network nodes.
If the information a node has about an LU's owning CP came only
in a X'3C' CV, then the name from the X'3C' is returned in the
appnDirLuOwnerName object, and a null string is returned in
this object.
If the information a node has about an LU's owning CP came in
both X'3C' and X'4A' CVs, then the name from the X'4A' is
returned in the appnDirLuOwnerName object, and the name from
the X'3C' (which will be the branch network node's name) is
returned in this object."
::= { appnDirEntry 6 }
the apparent owner one is lowkey the plot twist of this whole table π the LU's real owner and the name it appears to live under can be two different things, and the X'3C' and X'4A' control vectors are how the story gets sorted out. main character energy for sure π
and now we're moving on to the Class of Service group, which is all about how routes get ranked for quality and how urgent your traffic is π₯
-- ************** 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.
ok so COS is basically the VIP list of the network. it's how routes get graded on quality and how much priority your traffic gets, with two weight tables (one for TGs, one for nodes) that the admin fills in. the seven default tables come from the APPN architecture, so you don't have to start from scratch πβ¨
okay bestie, the Class of Service tables are about to get very detailed π β¨ every mode name, priority, and weight lives right here π
-- *********************************************************************
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 }
Okay bestie, the Min and Max pairs are basically the lower and upper bounds for each class of service. β¨ Here's the next batch of TG row objects π
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 }
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 }
Now we're entering the intermediate session info era π¦ This is where the node keeps track of sessions that pass through it, not ones that start or end on it.
-- *********************************************************************
-- Intermediate Session Information
-- *********************************************************************
appnSessIntermediate OBJECT IDENTIFIER ::= { appnObjects 6 }
-- *********************************************************************
-- 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 }
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 }
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
reinitialized."
::= { 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
reinitialized."
::= { 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 }
Next up is the table itself πΈ It's got one row per active intermediate session, and the row is identified by the index pair below.
-- *********************************************************************
-- 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
}
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 }
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 UNITS "hundredths of a second" 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 UNITS "hundredths of a second" MAX-ACCESS read-only STATUS current DESCRIPTION "Length of time the session counters have been active, measured in hundredths of a second."
::= { appnIsInEntry 11 }
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 }
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 }
okay so the secondary stage gets its own set of send and receive knobs, and I'm obsessed π«Ά
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 (1..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 (deprecated: moved to end of module)
appnCompliance2 MODULE-COMPLIANCE
STATUS current
DESCRIPTION
"The compliance statement for the SNMPv2 entities that
implement the APPN MIB.
In the descriptions for the conditionally mandatory groups that
follow, the branch network node is treated as a third node type,
parallel to network node and end node. This is not how branch
network nodes are treated in the base APPN architecture, but it
increases clarity here to do it."
MODULE -- this module
-- Unconditionally mandatory groups
MANDATORY-GROUPS {
appnGeneralConfGroup2,
appnPortConfGroup,
appnLinkConfGroup2,
appnLocalTgConfGroup2,
appnDirTableConfGroup2
}
-- Conditionally mandatory groups
GROUP appnNnUniqueConfGroup
DESCRIPTION
"The appnNnUniqueConfGroup is mandatory for
network nodes."
GROUP appnEnUniqueConfGroup
DESCRIPTION
"The appnEnUniqueConfGroup is mandatory for end
nodes."
GROUP appnVrnConfGroup
DESCRIPTION
"The appnVrnConfGroup is mandatory for network
nodes, end nodes, and branch network nodes that
implement virtual routing node support."
GROUP appnNnTopoConfGroup2
DESCRIPTION
"The appnNnTopoConfGroup2 is mandatory for
network nodes."
GROUP appnLocalEnTopoConfGroup2
DESCRIPTION
"The appnLocalEnTopoConfGroup2 is mandatory for
network nodes."
GROUP appnLocalDirPerfConfGroup
DESCRIPTION
"The appnLocalDirPerfConfGroup is mandatory for
APPN network nodes, end nodes, and branch network
nodes."
GROUP appnCosConfGroup
DESCRIPTION
"The appnCosConfGroup is mandatory for APPN
network nodes, end nodes, and branch network
nodes."
GROUP appnIntSessConfGroup
DESCRIPTION
"The appnIntSessConfGroup is mandatory for
network nodes and branch network nodes."
GROUP appnHprBaseConfGroup
DESCRIPTION
"The appnHprBaseConfGroup is mandatory for nodes
that implement the HPR base (APPN option set 1400)."
GROUP appnHprRtpConfGroup
DESCRIPTION
"The appnHprRtpConfGroup is mandatory for nodes
that implement the HPR RTP tower (APPN option set
1401)."
GROUP appnHprCtrlFlowsRtpConfGroup
DESCRIPTION
"The appnHprCtrlFlowsRtpConfGroup is mandatory for
nodes that implement the HPR Control Flows over
RTP tower (APPN option set 1402)."
GROUP appnHprBfConfGroup
DESCRIPTION
"The appnHprBfConfGroup is mandatory 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."
GROUP appnBrNnConfGroup
DESCRIPTION
"The appnBrNnConfGroup is mandatory for branch
network nodes."
::= { appnCompliances 3 }
-- { appnCompliances 2 } is used by the APPN-TRAP-MIB
-- Units of conformance
appnGeneralConfGroup2 OBJECT-GROUP
OBJECTS {
appnNodeCpName,
appnNodeId,
appnNodeType,
appnNodeUpTime,
appnNodeParallelTg,
appnNodeAdaptiveBindPacing,
appnNodeHprSupport,
appnNodeCounterDisconTime,
appnNodeLsCounterType,
appnNodeBrNn
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN general information and capabilities."
::= { appnGroups 26 }
-- { appnGroups 21 - 25 } are used by the APPN-TRAP-MIB
Okay so this part is all about the object groups π Each one is a bundle of APPN objects that belong together, like a little friend group π
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 }
appnLinkConfGroup2 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,
appnLsMltgMember
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN link information."
::= { appnGroups 27 }
appnLocalTgConfGroup2 OBJECT-GROUP
OBJECTS {
appnLocalTgDestVirtual,
appnLocalTgDlcData,
appnLocalTgPortName,
appnLocalTgQuiescing,
appnLocalTgOperational,
appnLocalTgCpCpSession,
appnLocalTgEffCap,
appnLocalTgConnCost,
appnLocalTgByteCost,
appnLocalTgSecurity,
appnLocalTgDelay,
appnLocalTgUsr1,
appnLocalTgUsr2,
appnLocalTgUsr3,
appnLocalTgHprSup,
appnLocalTgIntersubnet,
appnLocalTgMltgLinkType
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN local TG information."
::= { appnGroups 28 }
appnDirTableConfGroup2 OBJECT-GROUP
OBJECTS {
appnDirNnServerName,
appnDirLuOwnerName,
appnDirLuLocation,
appnDirType,
appnDirApparentLuOwnerName
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation of the
APPN directory database."
::= { appnGroups 29 }
appnNnUniqueConfGroup OBJECT-GROUP
OBJECTS {
appnNodeNnCentralDirectory,
appnNodeNnTreeCache,
appnNodeNnRouteAddResist,
appnNodeNnIsr,
appnNodeNnFrsn,
appnNodeNnPeriBorderSup,
appnNodeNnInterchangeSup,
appnNodeNnExteBorderSup,
appnNodeNnSafeStoreFreq,
appnNodeNnRsn,
appnNodeNnCongested,
appnNodeNnIsrDepleted,
appnNodeNnQuiescing,
appnNodeNnGateway
}
STATUS current
DESCRIPTION
"A collection of objects providing instrumentation unique
to APPN network nodes."
::= { appnGroups 6 }
appnEnUniqueConfGroup OBJECT-GROUP
OBJECTS {
appnNodeEnModeCosMap,
appnNodeEnNnServer,
appnNodeEnLuSearch
}
STATUS current
DESCRIPTION
"A collection of objects providing instrumentation for
APPN end nodes. Some of these objects also appear in the
instrumentation for a branch network node."
::= { appnGroups 7 }
appnVrnConfGroup OBJECT-GROUP
OBJECTS {
appnVrnPortName
}
STATUS current
DESCRIPTION
"An object providing the instrumentation for virtual
routing node support in an APPN node."
::= { appnGroups 8 }
appnNnTopoConfGroup2 OBJECT-GROUP
OBJECTS {
appnNnTopoMaxNodes,
appnNnTopoCurNumNodes,
appnNnTopoNodePurges,
appnNnTopoTgPurges,
appnNnTopoTotalTduWars,
appnNnNodeFREntryTimeLeft,
appnNnNodeFRType,
appnNnNodeFRRsn,
appnNnNodeFRRouteAddResist,
appnNnNodeFRCongested,
appnNnNodeFRIsrDepleted,
appnNnNodeFRQuiescing,
appnNnNodeFRGateway,
appnNnNodeFRCentralDirectory,
appnNnNodeFRIsr,
appnNnNodeFRGarbageCollect,
appnNnNodeFRHprSupport,
appnNnNodeFRPeriBorderSup,
appnNnNodeFRInterchangeSup,
appnNnNodeFRExteBorderSup,
appnNnNodeFRBranchAwareness,
appnNnTgFREntryTimeLeft,
appnNnTgFRDestVirtual,
appnNnTgFRDlcData,
appnNnTgFRRsn,
appnNnTgFROperational,
appnNnTgFRQuiescing,
appnNnTgFRCpCpSession,
appnNnTgFREffCap,
appnNnTgFRConnCost,
appnNnTgFRByteCost,
appnNnTgFRSecurity,
appnNnTgFRDelay,
appnNnTgFRUsr1,
appnNnTgFRUsr2,
appnNnTgFRUsr3,
appnNnTgFRGarbageCollect,
appnNnTgFRSubareaNum,
appnNnTgFRHprSup,
appnNnTgFRDestHprTrans,
appnNnTgFRTypeIndicator,
appnNnTgFRIntersubnet,
appnNnTgFRMltgLinkType,
appnNnTgFRBranchTg
}
STATUS current
DESCRIPTION
"The appnNnTopoConfGroup is mandatory only for network
nodes."
::= { appnGroups 30 }
appnLocalEnTopoConfGroup2 OBJECT-GROUP
OBJECTS {
appnLocalEnTgEntryTimeLeft,
appnLocalEnTgDestVirtual,
appnLocalEnTgDlcData,
appnLocalEnTgOperational,
appnLocalEnTgCpCpSession,
appnLocalEnTgEffCap,
appnLocalEnTgConnCost,
appnLocalEnTgByteCost,
appnLocalEnTgSecurity,
appnLocalEnTgDelay,
appnLocalEnTgUsr1,
appnLocalEnTgUsr2,
appnLocalEnTgUsr3,
appnLocalEnTgMltgLinkType
}
STATUS current
DESCRIPTION
"A collection of objects providing the instrumentation
of the information that a network node possesses about
the end nodes directly attached to it."
::= { appnGroups 31 }
okay the directory perf stats are up first, and then the COS, the internal session stuff, and the HPR bits π«Ά
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 }
the trap groups are next, and they're optional for everyone, so no pressure π¦
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 }
appnBrNnConfGroup OBJECT-GROUP
OBJECTS {
appnNodeEnNnServer,
appnNodeEnLuSearch,
appnLocalTgBranchLinkType
}
STATUS current
DESCRIPTION
"A collection of objects providing instrumentation for
branch network nodes. Some of these objects also appear
in the instrumentation for an end node.
Note: A branch network node always returns endNode(2)
as the value of the appnNodeType object from the
appnGeneralConfGroup2 conformance group."
::= { appnGroups 20 }
-- *********************************************************************
-- Deprecated definitions
-- *********************************************************************
appnNodeMibVersion OBJECT-TYPE
SYNTAX DisplayString (SIZE (11))
MAX-ACCESS read-only
STATUS deprecated
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.
Since this object incorporates the Year 2000-unfriendly
2-digit year specified in SMI for the LAST-UPDATED field, and
since it was not found to be particularly useful, it has been
deprecated. No replacement object has been defined."
::= { appnGeneralInfoAndCaps 2 }
heads up, the compliance statement is next, and it's deprecated but still very much part of the spec π
appnCompliance MODULE-COMPLIANCE
STATUS deprecated
DESCRIPTION
"The compliance statement for the SNMPv2 entities that
implement the APPN MIB.
This is the compliance statement for the RFC 2155-level version
of the APPN MIB. It was deprecated as new objects were added
to the MIB for MLTG, branch network node, and other extensions
to the APPN architecture."
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 }
appnGeneralConfGroup OBJECT-GROUP
OBJECTS {
appnNodeCpName,
appnNodeMibVersion,
appnNodeId,
appnNodeType,
appnNodeUpTime,
appnNodeParallelTg,
appnNodeAdaptiveBindPacing,
appnNodeHprSupport,
appnNodeCounterDisconTime
}
STATUS deprecated
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN general information and capabilities.
This RFC 2155-level group was deprecated when the
appnNodeMibVersion object was removed and the
appnNodeLsCounterType and appnNodeBrNn objects were added."
::= { appnGroups 1 }
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 deprecated
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN link information.
This RFC 2155-level group was deprecated when the
appnLsMltgMember object was added."
::= { appnGroups 3 }
appnLocalTgConfGroup OBJECT-GROUP
OBJECTS {
appnLocalTgDestVirtual,
appnLocalTgDlcData,
appnLocalTgPortName,
appnLocalTgQuiescing,
appnLocalTgOperational,
appnLocalTgCpCpSession,
appnLocalTgEffCap,
appnLocalTgConnCost,
appnLocalTgByteCost,
appnLocalTgSecurity,
appnLocalTgDelay,
appnLocalTgUsr1,
appnLocalTgUsr2,
appnLocalTgUsr3,
appnLocalTgHprSup,
appnLocalTgIntersubnet
}
STATUS deprecated
DESCRIPTION
"A collection of objects providing the instrumentation of
APPN local TG information.
This RFC 2155-level group was deprecated when the
appnLocalTgMltgLinkType object was added."
::= { appnGroups 4 }
appnDirTableConfGroup OBJECT-GROUP
OBJECTS {
appnDirNnServerName,
appnDirLuOwnerName,
appnDirLuLocation,
appnDirType
}
STATUS deprecated
DESCRIPTION
"A collection of objects providing the instrumentation of the
APPN directory database.
This RFC 2155-level group was deprecated when the
appnDirApparentLuOwnerName object was added."
::= { appnGroups 5 }
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 deprecated
DESCRIPTION
"The appnNnTopoConfGroup is mandatory only for network
nodes.
This RFC 2155-level group was deprecated when the
appnNnNodeFRBranchAwareness, appnNnTgFRMltgLinkType, and
appnNnFRBranchTg objects were added."
::= { appnGroups 9 }
appnLocalEnTopoConfGroup OBJECT-GROUP
OBJECTS {
appnLocalEnTgEntryTimeLeft,
appnLocalEnTgDestVirtual,
appnLocalEnTgDlcData,
appnLocalEnTgOperational,
appnLocalEnTgCpCpSession,
appnLocalEnTgEffCap,
appnLocalEnTgConnCost,
appnLocalEnTgByteCost,
appnLocalEnTgSecurity,
appnLocalEnTgDelay,
appnLocalEnTgUsr1,
appnLocalEnTgUsr2,
appnLocalEnTgUsr3
}
STATUS deprecated
DESCRIPTION
"The appnLocalEnTopoConfGroup is mandatory only for network
nodes.
This RFC 2155-level group was deprecated when the
appnLocalEnTgMltgLinkType object was added."
::= { appnGroups 10 }
END
5. Security Considerations π
Okay bestie, this section is serious and I need you to take it seriously π. Some of the info in this MIB can be sensitive depending on the network, so authentication of received SNMP requests and controlled access to management information SHOULD be set up in those environments. The authentication protocol is defined in [12], and a protocol for access control is defined in [15]. π‘οΈ
The read-only objects appnNnTgFRSecurity, appnLocalTgSecurity, appnLocalEnTgSecurity, appnCosTgRowSecurityMin, and appnCosTgRowSecurityMax can be used to figure out the potential path of secure data. Even though a management app can't change these through this MIB, they could reveal a security exposure caused by an improper config on the agent. π
None of the other read-only objects in the APPN MIB reports a password, user data, or anything else that's particularly sensitive. π That said, some enterprises see their network config itself, plus info about network usage and performance, as corporate assets, so they may want 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 to 0, or to a very large value, effectively turns off safe storing of topology data. πappnPortCommand,appnLsCommand: These two let an APPN port or link station be activated, deactivated, or recycled via an SNMP operation. The latter two operations may disrupt current users of the network. π΅appnIsInSessState: Setting this 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 is less critical. β¨
6. Intellectual Property π
The IETF takes no position regarding the validity or scope of any intellectual property or other rights that might be claimed to pertain to the implementation or use of the technology described in this document, or on whether any license under such rights might or might not be available. It also doesn't represent that it has made any effort to identify any such rights. π€·ββοΈ Info on the IETF's procedures for rights in standards-track and standards-related documentation can be found in BCP-11 [16]. Copies of claims of rights made available for publication, any assurances of licenses to be made available, or the result of an attempt to get a general license or permission for implementers or users to use such proprietary rights, can be obtained from the IETF Secretariat. π¬
The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights which may cover technology required to practice this standard. Please send that info to the IETF Executive Director. π
7. Acknowledgments π«Ά
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. πΈ
8. References π
okay bestie, this is the reading list π every source the spec leans on, all 29 of them, so you can go check the receipts yourself π
[1] Harrington, D., Presuhn, R., and B. Wijnen, "An Architecture for Describing SNMP Management Frameworks", RFC 2271, January 1998.
[2] Rose, M., and K. McCloghrie, "Structure and Identification of Management Information for TCP/IP-based Internets", STD 16, RFC 1155, May 1990.
[3] Rose, M., and K. McCloghrie, "Concise MIB Definitions", STD 16, RFC 1212, March 1991.
[4] Rose, M., "A Convention for Defining Traps for use with the SNMP", RFC 1215, March 1991.
[5] 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.
[6] 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.
[7] 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.
[8] Case, J., Fedor, M., Schoffstall, M., and J. Davin, "Simple Network Management Protocol", STD 15, RFC 1157, May 1990.
[9] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Introduction to Community-based SNMPv2", RFC 1901, January 1996.
[10] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Transport Mappings for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1906, January 1996.
[11] Case, J., Harrington D., Presuhn R., and B. Wijnen, "Message Processing and Dispatching for the Simple Network Management Protocol (SNMP)", RFC 2272, January 1998.
[12] Blumenthal, U., and B. Wijnen, "User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3)", RFC 2274, January 1998.
[13] Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol Operations for Version 2 of the Simple Network Management Protocol (SNMPv2)", RFC 1905, January 1996.
[14] Levi, D., Meyer, P., and B. Stewart, "SNMPv3 Applications", RFC 2273, January 1998.
[15] Wijnen, B., Presuhn, R., and K. McCloghrie, "View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP)", RFC 2275, January 1998.
[16] Hovey, R., and S. Bradner, "The Organizations Involved in the IETF Standards Process", BCP 11, RFC 2028, October 1996.
[17] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
[18] IBM, Systems Network Architecture Technical Overview, GC30-3073.
[19] IBM, Systems Network Architecture APPN Architecture Reference, SC30-3422
[20] IBM, Systems Network Architecture Formats, SC30-3346.
[21] Allen, M., Clouston, B., Kielczewski, Z., Kwan, W., and B. Moore, "Definition of Managed Objects for APPC", RFC 2051, December 1995.
[22] Kielczewski, Z., Kostick D., and K. Shih, "Definition of Managed Objects for SNA NAUs using SMIv2", RFC 1666, August 1994.
[23] Clouston, B., and B. Moore, "Definitions of Managed Objects for DLUR", RFC 2232, November 1996.
[24] Clouston, B., and B. Moore, "Definitions of Managed Objects for HPR", RFC 2238, November 1996.
[25] 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.
[26] 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.
[27] Chen, D., Gayek, P., and S. Nix, "Definitions of Managed Objects for Data Link Switching using SNMPv2", RFC 2024, October 1995.
[28] IBM, Systems Network Architecture Management Services Formats, GC31-8302.
[29] Clouston, B., and B. Moore, "Definitions of Managed Objects for APPN", RFC 2155, June 1997.
9. Authors' Addresses π
these are the people who wrote the whole thing, so here's where to find them π§
Bob Clouston
Cisco Systems
7025 Kit Creek Road
P.O. Box 14987
Research Triangle Park, NC 27709, USA
Phone: +1 919 472 2333
EMail: clouston@cisco.com
Robert Moore
Dept. BRQA/Bldg. 501/G114
IBM Corporation
P.O.Box 12195
3039 Cornwallis
Research Triangle Park, NC 27709, USA
Phone: +1 919 254 4436
EMail: remoore@us.ibm.com
10. Full Copyright Statement βοΈ
okay the legal part, but make it cute π«Ά the Internet Society (1998) owns the copyright, and this is the fine print for what you can and can't do with the document.
Copyright (C) The Internet Society (1998). All Rights Reserved.
so you can copy this document and share it with others, and you can write derivative works that comment on it, explain it, or help people implement it. you can do that in whole or in part, with no restriction of any kind, as long as the copyright notice and this paragraph stay on every copy and derivative work π but the document itself may not be modified in any way, like removing the copyright notice or the references to the Internet Society or other Internet organizations. the exceptions are when you need it for developing Internet standards, in which case the procedures for copyrights defined in the Internet Standards process must be followed, or when you need to translate it into languages other than English π
these limited permissions are perpetual, and the Internet Society or its successors or assigns will never revoke them π¦
and the usual disclaimer, because the Internet Society and the Internet Engineering Task Force want to be clear: this document and the information in it are provided on an "AS IS" basis. THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. π
π¦ where this page comes from
- ietf: rfc2455 1998-11
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms