ILMI

 

For more information on ILMI testing

The Simple Network Management Protocol (SNMP) and an ATM UNI Management Information Base (MIB) are required to provide any ATM user device with status and configuration information concerning the virtual path and channel connection available at its UNI. In addition, their global operations and network management information may facilitate diagnostic procedures at the UNI.The Interim Local Management Interface (ILMI) provides bi-directional exchange of management information between UNI Management Entities (UMEs). Both UMEs must contain the same MIB, even though the semantics of some MIB objects may be interpreted differently. Many types of equipment use this ATM UNI ILMI, e.g., high layer switches, workstations, computers with ATM interface, ATM network switches and more.(IETF RFC115, May 1990; IETF RFC1213, March 1991; IETF RFC1157, May 1990; ATM Forum UNI 3.0; "Managing Internetworks with SNMP" by Mark A. Miller, M&T Books, 1993)

 

MIB Names

The following is a list, in tree form, of MIB names.enterprises353 atmForum

blankspace.gif (821 bytes)1 atmForumAdmin
blankspace2.gif (828 bytes)2 atmfTransmissionTypes
blankspace3.gif (833 bytes)1 atmfUnknownType
blankspace3.gif (833 bytes)2 atmfSonetSTS3c
blankspace3.gif (833 bytes)3 atmfDs3
blankspace3.gif (833 bytes)4 atmf4B5B
blankspace3.gif (833 bytes)5 atmf8B10B
blankspace2.gif (828 bytes)3 atmfMediaTypes
blankspace3.gif (833 bytes)1 atmfMediaUnknownType
blankspace3.gif (833 bytes)2 atmfMediaCoaxCable
blankspace3.gif (833 bytes)3 atmfMediaSingleMode
blankspace3.gif (833 bytes)4 atmfMediaMultiMode
blankspace3.gif (833 bytes)5 atmfMediaStp
blankspace3.gif (833 bytes)6 atmfMediaUtp
blankspace2.gif (828 bytes)4 atmTrafficDescrTypes
blankspace3.gif (833 bytes)1 atmfNoDescriptor
blankspace3.gif (833 bytes)2 atmfPeakRate
blankspace3.gif (833 bytes)3 atmfNoClpNoScr
blankspace3.gif (833 bytes)4 atmfClpNoTaggingNoScr
blankspace3.gif (833 bytes)5 atmfClpTaggingNoScr
blankspace3.gif (833 bytes)6 atmfNoClpScr
blankspace3.gif (833 bytes)7 atmfClpNoTaggingScr
blankspace3.gif (833 bytes)8 atmfClpTaggingScr
blankspace2.gif (828 bytes)5 atmfSrvcRegTypes
blankspace3.gif (833 bytes)1 atmfSrvcRegLecs
blankspace.gif (822 bytes)2 atmForumUni
blankspace2.gif (828 bytes)1 atmfPhysicalGroup
blankspace3.gif (833 bytes)1 atmfPortTable
blankspace4.gif (837 bytes)1 atmfPortEntry
blankspace5.gif (842 bytes)1 atmfPortIndex
blankspace5.gif (842 bytes)2 atmfPortAddress
blankspace5.gif (842 bytes)3 atmfPortTransmissionType
blankspace5.gif (842 bytes)4 atmfPortMediaType
blankspace5.gif (842 bytes)5 atmfPortOperStatus
blankspace5.gif (842 bytes)6 atmfPortSpecific
blankspace4.gif (837 bytes)2 atmfAtmLayerGroup
blankspace5.gif (842 bytes)1 atmfAtmLayerTable
blankspace6.gif (845 bytes)1 atmfAtmLayerEntry
blankspace7.gif (848 bytes)1 atmfAtmLayerIndex
blankspace7.gif (848 bytes)2 atmfAtmLayerMaxVPCs
blankspace7.gif (848 bytes)3 atmfAtmLayerMaxVCCs
blankspace7.gif (848 bytes)4 atmfAtmLayerConfiguredVPCs
blankspace7.gif (848 bytes)5 atmfAtmLayerConfiguredVCCs
blankspace7.gif (848 bytes)6 atmfAtmLayerMaxVpiBits
blankspace7.gif (848 bytes)7 atmfAtmLayerMaxVciBits
blankspace7.gif (848 bytes)8 atmfAtmLayerUniType
blankspace4.gif (837 bytes)3 atmfAtmStatsGroup
blankspace5.gif (842 bytes)1 atmfAtmStatsTable
blankspace6.gif (845 bytes)1 atmfAtmStatsEntry
blankspace7.gif (848 bytes)1 atmfAtmStatsIndex
blankspace7.gif (848 bytes)2 atmfAtmStatsReceivedCells
blankspace7.gif (848 bytes)3 atmfAtmStatsDroppedReceivedCells
blankspace7.gif (848 bytes)4 atmfAtmStatsTransmittedCells
blankspace4.gif (837 bytes)4 atmfVpcGroup
blankspace5.gif (842 bytes)1 atmVpcTable
blankspace6.gif (845 bytes)1 atmVpcEntry
blankspace7.gif (848 bytes)1 atmVpcPortIndex
blankspace7.gif (848 bytes)2 atmfVpcVpi
blankspace7.gif (848 bytes)3 atmfVpcOperStatus
blankspace7.gif (848 bytes)4 atmfVpcTransmitTrafficDescriptorType
blankspace7.gif (848 bytes)5 atmfVpcTransmitTrafficDescriptorParam1
blankspace7.gif (848 bytes)6 atmfVpcTransmitTrafficDescriptorParam2
blankspace7.gif (848 bytes)7 atmfVpcTransmitTrafficDescriptorParam3
blankspace7.gif (848 bytes)8 atmfVpcTransmitTrafficDescriptorParam4
blankspace7.gif (848 bytes)9 atmfVpcTransmitTrafficDescriptorParam5
blankspace7.gif (848 bytes)10 atmfVpcReceiveTrafficDescriptorType
blankspace7.gif (848 bytes)11 atmfVpcReceiveTrafficDescriptorParam1
blankspace7.gif (848 bytes)12 atmfVpcReceiveTrafficDescriptorParam2
blankspace7.gif (848 bytes)13 atmfVpcReceiveTrafficDescriptorParam3
blankspace7.gif (848 bytes)14 atmfVpcReceiveTrafficDescriptorParam4
blankspace7.gif (848 bytes)15 atmfVpcReceiveTrafficDescriptorParam5
blankspace7.gif (848 bytes)16 atmfVpcQoSCategory
blankspace7.gif (848 bytes)17 atmfVpcTransmitQoSClass
blankspace7.gif (848 bytes)18 atmfVpcReceiveQoSClass
blankspace4.gif (837 bytes)5 atmfVccGroup
blankspace5.gif (842 bytes)1 atmfVccTable
blankspace6.gif (845 bytes)1 atmfVccEntry
blankspace7.gif (848 bytes)1 atmVccPortIndex
blankspace7.gif (848 bytes)2 atmfVccVpi
blankspace7.gif (848 bytes)3 atmfVccVci
blankspace7.gif (848 bytes)4 atmfVccOperStatus
blankspace7.gif (848 bytes)5 atmfVccTransmitTrafficDescriptorType
blankspace7.gif (848 bytes)6 atmfVccTransmitTrafficDescriptorParam1
blankspace7.gif (848 bytes)7 atmfVccTransmitTrafficDescriptorParam2
blankspace7.gif (848 bytes)8 atmfVccTransmitTrafficDescriptorParam3
blankspace7.gif (848 bytes)9 atmfVccTransmitTrafficDescriptorParam4
blankspace7.gif (848 bytes)10 atmfVccTransmitTrafficDescriptorParam5
blankspace7.gif (848 bytes)11 atmfVccReceiveTrafficDescriptorType
blankspace7.gif (848 bytes)12 atmfVccReceiveTrafficDescriptorParam1
blankspace7.gif (848 bytes)13 atmfVccReceiveTrafficDescriptorParam2
blankspace7.gif (848 bytes)14 atmfVccReceiveTrafficDescriptorParam3
blankspace7.gif (848 bytes)15 atmfVccReceiveTrafficDescriptorParam4
blankspace7.gif (848 bytes)16 atmfVccReceiveTrafficDescriptorParam5
blankspace7.gif (848 bytes)17 atmfVccQoSCategory
blankspace7.gif (848 bytes)18 atmfVccTransmitQoSClass
blankspace7.gif (848 bytes)19 atmfVccReceiveQoSClass
blankspace4.gif (837 bytes)8 atmfSrvcRegistryGroup
blankspace5.gif (842 bytes)1 atmfSrvcRegTable
blankspace6.gif (845 bytes)1 atmfSrvcRegEntry
blankspace7.gif (848 bytes)1 atmfSrvcRegPort
blankspace7.gif (848 bytes)1 atmfSrvcRegServiceID
blankspace7.gif (848 bytes)1 atmfSrvcRegATMAddress
blankspace7.gif (848 bytes)1 atmfSrvcRegAddressIndex

Interested in more details about testing this protocol? click here

 

SNMP

ILMI uses SNMP, which is designed to be simple and has a very straightforward architecture. The SNMP message is divided into two sections: a version identifier plus community name and a PDU.
The version identifier and community name are sometimes referred to as the authentication header. The version number assures that both manager and agent are using the same version of SNMP. Messages between manager and agent containing different version numbers are discarded without further processing. The community name authenticates the manager before allowing access to the agent. The community name, along with the manager’s IP address, is stored in the agent’s community profile. If there is a difference between the manager and agent values for the community name, the agent will send an authentication failure trap message to the manager.

GetRequest and GetResponse PDUs

The manager uses the GetRequest PDU to retrieve the value of one or more object(s) from an agent. Under error-free conditions, the agent generates a GetResponse PDU. On both Request and Response PDUs there is a Request Index field that correlates the manager’s request to the agent’s response, an Error Status field which is set to noError, and an Error Index field which is set to zero. In this process, four errors are possible:

  1. If a variable does not exactly match an available object, the agent returns a GetResponse PDU with the Error Status set to NoSuchName and the Error Index set the same as the index of the variable in question.If a variable is of aggregate type, the Response is the same as above.If the size of the appropriate GetResponse PDU would exceed a local limitation, the agent returns a GetResponse PDU of identical form, where the value of the Error Status is set to tooBig and the Error Index is set to 0.
  2. If the value of a requested variable cannot be retrieved for any other reason, then the agent returns a GetResponse PDU, with the Error Status set to genErr and the Error Index set the same as the index of the variable in question.

The following is an example of a GetRequest PDU decode.

GetRequest PDU

GetNextRequest PDU

The GetNextRequest PDU is used to retrieve one or more objects from an agent. Under error-free conditions, the agent generates a GetResponse PDU, with the same Request Index. The Variable Bindings contain the name and value associated with the lexicographic successor of each of the object identifiers (OIDs) noted in the GetNextRequest PDU. The main difference between GetRequest and GetNextRequest PDUs is that the GetNextRequest PDU retrieves the value of the next object within the agent’s MIB view. Three possible errors may occur in this process:

  1. If a variable in the Variable Bindings field does not lexicographically proceed the name of an object that may be retrieved, the agent returns a GetResponse with the Error Status set to noSuchName and the Error Index set to the same as the variable in question.If the size of the appropriate GetResponse PDU would exceed a local limitation, the agent returns a GetResponse PDU of identical form, with the Error Status set to tooBig and the Error Index set to zero.
  2. If the value of the lexicographic successor to a requested variable cannot be retrieved for any other reason, the agent returns the GetResponse PDU, with the Error Status set to genErr and the Error Index set the same as the index of the variable in question.

SetRequest PDU

The SetRequest PDU is used to assign a value to an object residing in the agent. When the agent receives the SetRequest PDU, it alters the values of the named objects to the values in the variable binding. Under error-free conditions, the agent generates a GetResponse PDU of identical form, except that the assigned PDU type is 2. Four different errors may occur in this process:

  1. If a variable is not available for set operations within the relevant MIB view, the agent returns a GetResponse PDU with the Error Status set to NoSuchName (or readOnly) and the Error Index set the same as the index of the variable in question.If a variable does not conform to the ASN.1 type, length and value, the agent returns a GetResponse with the Error Status set to badValue and the same Error Index.If the size of the appropriate GetResponse PDU exceeds a local limitation, the agent returns a GetResponse PDU of identical form, with the Error Status set to tooBig and the Error Index set to zero.
  2. If the value of a requested variable cannot be altered for any other reason, the agent returns a GetResponse PDU, with the Error Status set to genErr and the Error Index set the same as the index of the variable in question.

Trap PDU

The last PDU type is the Trap PDU which has a different format from the other four PDUs. It contains the following fields:

  • Enterprise field, which identifies the management enterprise under whose registration authority the trap was defined. Generic trap type, which provides more specific information on the event being reported. There are seven unique values for this field: coldStart, warmStart, linkDown, linkUp, authenticationFailure, egpNeighborLoss, and enterpriseSpecific.Specific Trap Type field, which identifies the specific Trap. Timestamp field, which represents the amount of time elapsed between the last initialization of the agent and the generation of that Trap.
  • Variable bindings.

The following is an example of the Trap decode.

Trap PDU


SMI

General
SMI (Structure of Management Information) is the standard used for defining the rules of managed object identification. The SMI organizes, names, and describes information so that logical access can occur. The SMI states that each managed object must have a name, a syntax , and an encoding. The name or OID uniquely identifies the object. The syntax defines the data type, such as an integer or a string of octets. The encoding describes how the information associated with the managed object is serialized for transmission between machines.

SMI defines the syntax that retrieves and communicates information, controls the way information is placed into logical groups, and the naming mechanism, known as the object identifiers, that identify each managed object. This can be extended to include MIBs, which store management information. Managed objects are accessed via an MIB. Objects in the MIB are defined using Abstract Syntax Notation One (ASN.1). Each type of object (termed an object type) has a name, a syntax, and an encoding. The name is represented uniquely as an OBJECT IDENTIFIER, which is an administratively assigned name. The syntax defines the abstract data structure corresponding to that object type. For example, the structure of a given object type might be an INTEGER or OCTET STRING. The encoding of an object type is simply how instances of that object type are represented using the object’s type syntax.

Object Identifier
An object identifier is a sequence of integers which traverse a global tree. The tree consists of a root connected to a number of labeled nodes via edges. Each node may, in turn, have children of its own which are labeled. In this case we may term the node a subtree. This process may continue to an arbitrary level of depth.

The root node is unlabeled, but has at least three children directly under it; one node is administrated by the International Organization for Standardization, with label iso(1); another is administrated by the International Telegraph and Telephone Consultative Committee, with label ccitt(0); and the third is jointly administered by the ISO and CCITT, joint-iso-ccitt(2). Under the iso(1) node, the ISO has designated one subtree for use by other (inter)national organizations, org(3). Of the children nodes present, two have been assigned to the US National Institute of Standards and Technology. One of these subtrees has been transferred by the NIST to the US Department of Defense, dod(6). DoD will allocate a node to the Internet community, to be administered by the Internet Activities Board (IAB) as follows

internet OBJECT IDENTIFIER::={iso org(3) dod(6) 1} -> 1.3.6.1

In this subtree four nodes are present:

directory

OBJECT IDENTIFIER::={ internet 1 }

mgmt

OBJECT IDENTIFIER::={ internet 2 }

experimental

OBJECT IDENTIFIER::={ internet 3 }

private

OBJECT IDENTIFIER::={ internet 4 }

For example, the initial Internet standard MIB would be assigned management document number
1. -> { mgmt 1 } -> 1.3.6.1.2.1

The private(4) subtree is used to identify objects defined unilaterally. Administration of the private(4) subtree is delegated by the IAB to the Internet Assigned Numbers Authority for the Internet. Initially, this subtree has at least one child:

enterprises OBJECT IDENTIFIER::={ private 1 }

The enterprises(1) subtree is used to permit parties providing networking subsystems to register models of their products.Specific organizations have developed subtrees for private use for their products. One such tree is the ATM UNI MIB. Vendors can define private ATM UNI MIB extensions to support additional or proprietary features of their products. Objects in the MIB are defined using the subset of Abstract Syntax Notation One (ASN.1) defined by the SMI. The syntax of an object type defines the abstract data structure corresponding to that object type. The ASN.1 language is used for this purpose. The SMI purposely restricts the ASN.1 constructs which may be used. These restrictions are made for simplicity. The structure of ATM UNI ILMI MIB is illustrated in the following figure.

An entire tree group is either optional, conditionally required, or required. If a group is required, then every element in the group is required. If a group is conditionally required, every element in the group is required, if implemented.

Protocol Limitations

The following are some known SNMP limitations.

  • ATM messages must be formatted according to SNMP version 1, not SNMP version 2.
  • ALL SNMP messages will use the community name ILMI.
  • In all SNMP Traps, the agent address field always has an IP Address value of 0.0.0.0. The supported traps are coldStart and enterpriseSpecific.In all SNMP traps, the timestamp field contains the value of the agent’s sysUpTime MIB object at the time of trap generation. In all of the standard SNMP traps, the enterprise field in the Trap PDU contains the value of the agents sysObjectID MIB object.
  • The size of messages can be up to 484 octets.

Interested in more details about testing this protocol? click here

 
Additional Information