Draft                          Entity MIB               January 14, 1996


                   <draft-ietf-entmib-entmib-01.txt>
                               Entity MIB

                            14 January 1996


                            Keith McCloghrie
                           Cisco Systems Inc.
                             kzm@cisco.com

                              Andy Bierman
                           Bierman Consulting
                           abierman@west.net





                          Status of this Memo

This document is an Internet-Draft.  Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups.  Note that other groups may also distribute working
documents as Internet-Drafts.

Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time.  It is inappropriate to use Internet- Drafts as reference material
or to cite them other than as ``work in progress.''

To learn the current status of any Internet-Draft, please check the
``1id-abstracts.txt'' listing contained in the Internet- Drafts Shadow
Directories on ds.internic.net (US East Coast), nic.nordu.net (Europe),
ftp.isi.edu (US West Coast), or munnari.oz.au (Pacific Rim).
















McCloghrie/Bierman       Expires July 14, 1996                  [Page 1]


Draft                          Entity MIB               January 14, 1996


1.  Introduction

This memo defines an experimental portion of the Management Information
Base (MIB) for use with network management protocols in the Internet
community.  In particular, it describes managed objects used for
managing multiple logical entities managed by a single SNMP agent.












































McCloghrie/Bierman       Expires July 14, 1996                  [Page 2]


Draft                          Entity MIB               January 14, 1996


2.  The SNMPv2 Network Management Framework

The SNMPv2 Network Management Framework consists of four major
components.  They are:

o    RFC 1442 [1] which defines the SMI, the mechanisms used for
     describing and naming objects for the purpose of management.

o    STD 17, RFC 1213 [2] defines MIB-II, the core set of managed
     objects for the Internet suite of protocols.

o    RFC 1445 [3] which defines the administrative and other
     architectural aspects of the framework.

o    RFC 1448 [4] which defines the protocol used for network access to
     managed objects.

The Framework permits new objects to be defined for the purpose of
experimentation and evaluation.


2.1.  Object Definitions

Managed objects are accessed via a virtual information store, termed the
Management Information Base or MIB.  Objects in the MIB are defined
using the subset of Abstract Syntax Notation One (ASN.1) defined in the
SMI.  In particular, each object type is named by an OBJECT IDENTIFIER,
an administratively assigned name.  The object type together with an
object instance serves to uniquely identify a specific instantiation of
the object.  For human convenience, we often use a textual string,
termed the descriptor, to refer to the object type.



















McCloghrie/Bierman       Expires July 14, 1996                  [Page 3]


Draft                          Entity MIB               January 14, 1996


3.  Overview

There is a need for a standardized way of representing a single agent
which supports multiple instances of one MIB.  This is already true for
at least 3 standard MIBs, and is likely to become true for more and more
MIBs as time passes.  For example:

   - multiple instances of a bridge supported within a single device
     having a single agent;

   - multiple repeaters supported by a single agent;

   - multiple OSPF backbone areas, each one operating as part of its own
     Autonomous System, and each identified by the same area-id (e.g.,
     0.0.0.0), supported inside a single router with one agent.

The fact that it is a single agent in each of these cases implies there
is some relationship which binds all of these entities together.
Effectively, there is some "overall" physical entity which houses the
sum of the things managed by that one agent, i.e., there are multiple
"logical" entities within a single physical entity.  Sometimes, the
overall physical entity contains multiple (smaller) physical entities
and each logical entity is associated with a particular such physical
entity.  Sometimes, the overall physical entity is a "compound" of
multiple physical entities (e.g., a stack of stackable hubs).

What is needed is a way to determine exactly what logical entities are
managed by the agent (either by SNMPv1 or SNMPv2), and thereby to be
able to communicate with the agent about a particular logical entity.
When different logical entities are associated with different physical
entities within the overall physical entity, it is also useful to be
able to use this information to distinguish between logical entities.

In these situations, there is no need for varbinds for multiple logical
entities to be referenced in the same SNMP message (although that might
be useful in the future).  Rather, it is sufficient, and in some
situations preferable, to have the context/community in the message
identify the logical entity to which the varbinds apply.



3.1.  Terms

Some new terms are used throughout this document:






McCloghrie/Bierman       Expires July 14, 1996                  [Page 4]


Draft                          Entity MIB               January 14, 1996


   - Naming Scope
     A "naming scope" represents the set of information that may be
     potentially accessed through a single SNMP operation. All instances
     within the naming scope share the same unique identifier space. For
     SNMPv1, a naming scope is identified by the value of the associated
     'entLogicalCommunity' instance.


   - Logical Entity
     A managed system contains one or more logical entities, each
     represented by at most one instantiation of each of a particular
     set of MIB objects. A set of management functions is associated
     with each logical entity. Examples of logical entities include
     routers, bridges, print-servers, etc.


   - Physical Entity
     A "physical entity" or "physical component" represents an
     identifiable physical resource within a managed system. Zero or
     more logical entities may utilize a physical resource at any given
     time. It is an implementation-specific manner as to which physical
     components are represented by an agent in the EntPhysicalTable.
     Typically, physical resources (e.g. communications ports,
     backplanes, sensors, daughter-cards, power supplies, the overall
     chassis) which can be managed via functions associated with one or
     more logical entities are included in the MIB.


   - Containment Tree
     Each physical component may optionally be modeled as 'contained'
     within another physical component. A "containment-tree" is the
     conceptual sequence of entPhysicalIndex values which uniquely
     specifies the exact physical location of a physical component
     within the managed system. It is generated by 'following and
     recording' each 'entPhysicalContainedIn' instance until a value of
     zero (indicating no further containment) is found.

     It is suggested that physical containment-trees retain their
     identity across reboots. Specifically, two identical hardware
     configurations should produce the same set of containment-trees for
     every corresponding entry in the entPhysicalTable (i.e. the same
     set of entPhysicalEntries with the same entPhysicalIndex values,

     [ed. want to say anything about container/containee guidelines
     here?]





McCloghrie/Bierman       Expires July 14, 1996                  [Page 5]


Draft                          Entity MIB               January 14, 1996


3.2.  Relationship to Community Strings

For SNMPv1, distinguishing between different logical entities is one
(but not the only) purpose of the community string [6].  This is
accommodated by representing each community string as a logical entity.

Note that different logical entities may 'share' the same naming scope
(and therefore the same values of entLogicalCommunity). In such a case,
individual logical entities can be identified by examining the
sysORTable within the same naming scope.


3.3.  Relationship to Proxy Mechanisms

The Entity MIB is designed to allow functional component discovery.  The
administrative relationships between different logical entities are not
visible in any Entity MIB tables.

The management of administrative framework functions is not an explicit
goal of the Entity MIB WG at this time. This new area of functionality
may be revisited after some operational experience with the Entity MIB
is gained.


3.4.  Relationship to a Chassis MIB

Some readers may recall that a previous IETF working group attempted to
define a Chassis MIB.  No consensus was reached by that working group,
possibly because its scope was too broad.  As such, it is not the
purpose of this MIB to be a "Chassis MIB replacement", nor is it within
the scope of this MIB to contain all the information which might be
necessary to manage a "chassis".  On the other hand, the entities
represented by an implementation of this MIB might well be contained in
a chassis.


3.5.  Relationship to the Interfaces MIB

The Entity MIB contains a mapping table identifying physical components
that have 'external values' (e.g. ifIndex) associated with them within a
given naming scope.  This table can be used to identify the physical
location of each interface in the ifTable. Since ifIndex values in
different contexts are not related to one another, the interface to
physical component associations are relative to a specific logical
entity within the agent.





McCloghrie/Bierman       Expires July 14, 1996                  [Page 6]


Draft                          Entity MIB               January 14, 1996


[ed. say anything about entAliasMappingTable and ifIndex renumbering?]


3.6.  Relationship to the Other MIBs

The Entity MIB contains a mapping table identifying physical components
that have identifiers from other standard MIBs associated with them.
For example, this table can be used along with the physical mapping
table to identify the physical location of each repeater port in the
rptrPortTable, each bridge port in the dot1dBasePortTable, or each
ifIndex in the ifTable.


3.7.  Re-Configuration of Entities

All the MIB objects defined in this MIB have at most a read-only MAX-
ACCESS clause, i.e., none are write-able.  This is another conscious
decision by the authors to limit this MIB's scope.  It is possible that
this restriction could be lifted after implementation experience.


3.8.  MIB Structure

This MIB contains five tables: the entPhysicalTable and the
entLogicalTable each provide a list of entities. The entLPMappingTable
provides mappings between logical and physical entities. The
entAliasMappingTable provides mappings between physical components and
associated identifiers from other MIBs. For example, a physical repeater
port may be associated with an instance of 'rptrPortGroupIndex.1.5', or
'ifIndex.12', or both. The entPhysicalContainsTable provides efficient
discovery of the containment relationships of all physical entities
(also derivable from 'entPhysicalContainedIn' values).


The entPhysicalTable contains one row per physical entity, and should
always contains at least one row for an "overall" physical entity.  Each
row is indexed by an arbitrary, small integer, and contains a
description and type of the physical entity.  It also optionally
contains the index number of another row in the same table indicating a
containment relationship between the two.


The entLogicalTable contains one row per logical entity.  Each row is
indexed by an arbitrary, small integer and contains a name, description,
and type of the logical entity. It also contains information to allow





McCloghrie/Bierman       Expires July 14, 1996                  [Page 7]


Draft                          Entity MIB               January 14, 1996


SNMPv2 and/or SNMPv1 access to the MIB information for the logical
entity.


The entLPMappingTable contains mappings between entLogicalIndex values
(logical entities) and entPhysicalIndex values (the physical components
supporting that entity). A logical entity can map to more than one
physical component, and more than one logical entity can map to (share)
the same physical component.


The entAliasMappingTable contains mappings between entPhysicalIndex,
entLogicalIndex pairs and 'alias' object identifier values.  This allows
resources managed with other MIBs (e.g. repeater ports, bridge ports,
physical and logical interfaces) to be identified in the physical entity
hierarchy. Note that each alias identifier is only relevant in a
particular naming scope.


The entPhysicalContainsTable contains simple mappings between
'entPhysicalContainsIn' values for each container/containee relationship
in the managed system. The indexing of this table allows an NMS to
quickly discover the 'entPhysicalIndex' values for all children of a
given physical entity.


3.9.  Multiple Agents

Even though a primary motivation for this MIB is to represent the
multiple logical entities supported by a single agent, it is also
possible to use it to represent multiple logical entities supported by
multiple agents (in the same "overall" physical entity).  Indeed, it is
implicit in the SNMP architecture, that the number of agents is
transparent to a network management station.
















McCloghrie/Bierman       Expires July 14, 1996                  [Page 8]


Draft                          Entity MIB               January 14, 1996


4.  Definitions

ENTITY-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, experimental,
    IpAddress
        FROM SNMPv2-SMI
    DisplayString, AutonomousType, TruthValue
        FROM SNMPv2-TC
    Context
        FROM SNMPv2-PARTY-MIB
    MODULE-COMPLIANCE, OBJECT-GROUP
        FROM SNMPv2-CONF;


entityMIB MODULE-IDENTITY
    LAST-UPDATED "9601020000Z"
    ORGANIZATION "IETF ENTMIB Working Group"
    CONTACT-INFO
            "        Keith McCloghrie
                     Cisco Systems Inc.
                     170 West Tasman Drive
                     San Jose, CA 95134
                     408-526-5260
                     kzm@cisco.com

                     Andy Bierman
                     Bierman Consulting
                     1200 Sagamore Lane
                     Ventura, CA 93001
                     805-648-2028
                     abierman@west.net"
    DESCRIPTION
            "The MIB module for representing multiple logical
            entities supported by a single SNMP agent."
    ::= { experimental xx }

entityMIBObjects OBJECT IDENTIFIER ::= { entityMIB 1 }











McCloghrie/Bierman       Expires July 14, 1996                  [Page 9]


Draft                          Entity MIB               January 14, 1996


--           The Physical Entity Table

entPhysicalTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EntPhysicalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains one row per physical entity.  There is
            always at least one row for an 'overall' physical entity."
    ::= { entityMIBObjects 1 }

entPhysicalEntry       OBJECT-TYPE
    SYNTAX      EntPhysicalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Information about a particular physical entity.  An agent
            is expected to represent physical components in as much
            detail as possible.  If more than one agent within a chassis
            implements the Entity MIB, the information retrieved from
            each agent must be consistent, but not necessarily
            identical."
    INDEX   { entPhysicalIndex }
    ::= { entPhysicalTable 1 }

EntPhysicalEntry ::= SEQUENCE {
      entPhysicalIndex          INTEGER,
      entPhysicalDescr          DisplayString,
      entPhysicalVendorType     AutonomousType,
      entPhysicalContainedIn    INTEGER,
      entPhysicalClass          INTEGER
}

entPhysicalIndex    OBJECT-TYPE
    SYNTAX      INTEGER (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The value of this object uniquely identifies the physical
            entity.  The value is a small positive integer; index values
            for different physical entities are not necessarily
            contiguous."
    ::= { entPhysicalEntry 1 }

entPhysicalDescr OBJECT-TYPE





McCloghrie/Bierman       Expires July 14, 1996                 [Page 10]


Draft                          Entity MIB               January 14, 1996


    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A textual description of physical entity."
    ::= { entPhysicalEntry 2 }

entPhysicalVendorType OBJECT-TYPE
    SYNTAX      AutonomousType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "An indication of the vendor-specific hardware type of the
            physical entity. Note that this is different from the
            definition of MIB-II's sysObjectID.

            An agent should set this object to a enterprise-specific
            registration identifier value indicating the specific
            equipment type in detail.  The associated instance of the
            entPhysicalClass object should be used to indicate the
            general type of hardware device.

            If no vendor-specific registration identifier exists for
            this physical entity, then the value { 0 0 } is returned. If
            the value is unknown by this agent, then the special value
            'entPClassUnknown' is returned."
    ::= { entPhysicalEntry 3 }

entPhysicalContainedIn OBJECT-TYPE
    SYNTAX      INTEGER (0..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of entPhysicalIndex for the physical entity which
            'contains' this physical entity.  A value of zero indicates
            this physical entity is not contained in any other physical
            entity.  Note that the set of 'containment' relationships
            define a strict hierarchy; that is, recursion is not
            allowed."
    ::= { entPhysicalEntry 4 }


entPhysicalClass OBJECT-TYPE
    SYNTAX      INTEGER  {
        other(1),





McCloghrie/Bierman       Expires July 14, 1996                 [Page 11]


Draft                          Entity MIB               January 14, 1996


        unknown(2),
        chassis(3),
        backplane(4),
        container(5),   -- slot or daughter-card holder
        powerSupply(6),
        fan(7),
        sensor(8),
        module(9),
        port(10)
        -- some others here that I forgot?
    }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "An indication of the general hardware type of the physical
            entity.

            An agent should set this object to the standard enumeration
            value which most accurately indicates the general class of
            the physical entity, or the primary class if there is more
            than one.

            If no appropriate standard registration identifier exists
            for this physical entity, then the value 'other(1)' is
            returned. If the value is unknown by this agent, then the
            value 'unknown(2)' is returned."
    ::= { entPhysicalEntry 5 }























McCloghrie/Bierman       Expires July 14, 1996                 [Page 12]


Draft                          Entity MIB               January 14, 1996


--           The Logical Entity Table
entLogicalTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EntLogicalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains one row per logical entity."
    ::= { entityMIBObjects 2 }

entLogicalEntry       OBJECT-TYPE
    SYNTAX      EntLogicalEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Information about a particular logical entity.  Entities
            may be managed by this agent or other SNMP agents (possibly)
            in the same chassis."
    INDEX       { entLogicalIndex }
    ::= { entLogicalTable 1 }

EntLogicalEntry ::= SEQUENCE {
      entLogicalIndex            INTEGER,
      entLogicalDescr            DisplayString,
      entLogicalType             AutonomousType,
      entLogicalCommunity        OCTET STRING,
      entLogicalIpAddress        IpAddress
}

entLogicalIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The value of this object uniquely identifies the logical
            entity. The value is a small positive integer; index values
            for different logical entities are are not necessarily
            contiguous."
    ::= { entLogicalEntry 1 }












McCloghrie/Bierman       Expires July 14, 1996                 [Page 13]


Draft                          Entity MIB               January 14, 1996


entLogicalDescr OBJECT-TYPE
    SYNTAX      DisplayString
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A textual description of logical entity."
    ::= { entLogicalEntry 2 }

entLogicalType OBJECT-TYPE
    SYNTAX      AutonomousType
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "An indication of the type of logical entity.  This will
            typically be the OBJECT IDENTIFIER name of the node in the
            SMI's naming hierarchy which represents the major MIB
            module, or the majority of the MIB modules, supported by the
            logical entity.  For example:
               a logical entity of a regular host/router -> mib-2
               a logical entity of a 802.1d bridge     -> dot1dBridge
               a logical entity of a 802.3 repeater  ->
            snmpDot3RptrMgmt"
    ::= { entLogicalEntry 3 }

entLogicalCommunity OBJECT-TYPE
    SYNTAX      OCTET STRING
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A SNMPv1 community-string which can be used to access
            detailed management information for this logical entity.
            The agent should allow read access with this community
            string (to an appropriate subset of all managed objects) and
            may also choose to return a community string based on the
            privileges of the request used to read this object (e.g.
            only return a string having read-write privileges when
            accessed with read-write privileges).

            A conformant SNMP agent may wish to conserve naming scopes
            by representing multiple logical entities in a single 'main'
            naming scope.  This is possible when the logical entities
            represented by the same value of entLogicalCommunity have no
            object instances in common.  For example, 'bridge1' and
            'repeater1' may be part of the main naming scope, but two
            additional community strings are needed to represent





McCloghrie/Bierman       Expires July 14, 1996                 [Page 14]


Draft                          Entity MIB               January 14, 1996


            'bridge2' and 'repeater2'.

            Logical entities 'bridge1' and 'repeater1' would be
            represented by sysOREntries associated with the 'main'
            naming scope.

            For agents not accessible via SNMPv1, the value of this
            object is the empty-string."
    ::= { entLogicalEntry 4 }

entLogicalIpAddress OBJECT-TYPE
    SYNTAX      IpAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The IP-address of the SNMPv1 agent from which detailed
            management information for this logical entity can be
            obtained.  For agents not accessible via SNMPv1, the value
            of this object is 0.0.0.0."
    ::= { entLogicalEntry 5 }






























McCloghrie/Bierman       Expires July 14, 1996                 [Page 15]


Draft                          Entity MIB               January 14, 1996


--   entLPMappingTable: for each entity index, there are N
--      rows, each representing a physical component
--      that is associated with the indicated entity
--
-- entity to component table
entLPMappingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EntLPMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains zero or more rows of logical entity to
            physical equipment associations."
    ::= { entityMIBObjects 3 }

entLPMappingEntry       OBJECT-TYPE
    SYNTAX      EntLPMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Information about a particular logical entity to physical
            equipment binding."
    INDEX       { entLogicalIndex, entLPPhysicalIndex }
    ::= { entLPMappingTable 1 }

EntLPMappingEntry ::= SEQUENCE {
      entLPPhysicalIndex         INTEGER
}

entLPPhysicalIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of this object identifies a particular
            entPhysicalEntry associated with the indicated
            entLogicalEntity."
    ::= { entLPMappingEntry 1 }













McCloghrie/Bierman       Expires July 14, 1996                 [Page 16]


Draft                          Entity MIB               January 14, 1996


-- logical entity/component to alias table
entAliasMappingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EntAliasMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "This table contains zero or more rows of logical entity,
            and physical component to external identifier associations."
    ::= { entityMIBObjects 4 }

entAliasMappingEntry       OBJECT-TYPE
    SYNTAX      EntAliasMappingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "Information about a particular physical equipment, logical
            entity to external identifier binding. Note that the same
            physical component-logical entity pair may have an arbitrary
            number of external identifier (alias) bindings."
    INDEX { entLogicalIndex, entPhysicalIndex, entAliasMappingIndex }
    ::= { entAliasMappingTable 1 }

EntAliasMappingEntry ::= SEQUENCE {
      entAliasMappingIndex      INTEGER,
      entAliasIdentifier        OBJECT IDENTIFIER
}

entAliasMappingIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..2147483647)
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "The value of this object uniquely identifies the particular
            binding for a specific logical entity on a particular
            physical component. The value is a small positive integer;
            index values for different entAlias mappings are not
            necessarily contiguous."
    ::= { entAliasMappingEntry 1 }

entAliasIdentifier OBJECT-TYPE
    SYNTAX      OBJECT IDENTIFIER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of this object identifies a particular MIB





McCloghrie/Bierman       Expires July 14, 1996                 [Page 17]


Draft                          Entity MIB               January 14, 1996


            instance associated with the indicated entPhysicalEntry and
            entLogicalEntry pair.

            For example, suppose a physical port was represented by
            entPhysicalEntry.3, and entLogicalEntry.1 existed for a
            repeater, entLogicalEntry.2 existed for a bridge, and the
            bridge port was also represented in the ifTable. Then there
            might be three associated instances of entAliasIdentifier:
               entAliasIdentifier.3.1.1 == rptrPortGroupIndex.5.2
               entAliasIdentifier.3.2.1 == dot1dBasePort.2
               entAliasIdentifier.3.2.2 == ifIndex.2 "
    ::= { entAliasMappingEntry 2 }






































McCloghrie/Bierman       Expires July 14, 1996                 [Page 18]


Draft                          Entity MIB               January 14, 1996


-- physical mapping table
entPhysicalContainsTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF EntPhysicalContainsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A table which exposes the container/containee relationships
            between physical entities."
    ::= { entityMIBObjects 5 }

entPhysicalContainsEntry OBJECT-TYPE
    SYNTAX      EntPhysicalContainsEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A single container/containee relationship."
    INDEX       { entPhysicalIndex, entPhysicalChildIndex }
    ::= { entPhysicalContainsTable 1 }

EntPhysicalContainsEntry ::= SEQUENCE {
      entPhysicalChildIndex INTEGER
}

entPhysicalChildIndex OBJECT-TYPE
    SYNTAX      INTEGER (1..2147483647)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of entPhysicalIndex for the contained physical
            entity."
    ::= { entPhysicalContainsEntry 1 }



















McCloghrie/Bierman       Expires July 14, 1996                 [Page 19]


Draft                          Entity MIB               January 14, 1996


-- last change timestamp for the whole MIB
entLastConfigChangeTime OBJECT-TYPE
    SYNTAX      Timestamp
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The value of sysUpTime at the time any of these events
            occur:
                * a conceptual row is created or deleted in any of these tables:
                    - entPhysicalTable
                    - entLogicalTable
                    - entLPMappingTable
                    - entAliasMappingTable
                    - entPhysicalContainsTable

                * any instance in the following list of objects changes value:
                    - entPhysicalDescr
                    - entPhysicalVendorType
                    - entPhysicalContainedIn
                    - entPhysicalClass
                    - entLogicalDescr
                    - entLogicalType
                    - entLogicalCommunity
                    - entLogicalIpAddress
                    - entAliasIdentifier
            "
    ::= { entityMIBObjects 6 }























McCloghrie/Bierman       Expires July 14, 1996                 [Page 20]


Draft                          Entity MIB               January 14, 1996


-- Entity MIB Trap Definitions
entityMIBTraps    OBJECT IDENTIFIER ::= { entityMIB 2 }

entConfigChange NOTIFICATION-TYPE
    OBJECTS {
            entLastChangeTime
            }
    STATUS             current
    DESCRIPTION
            "An entConfigChange trap is sent when the value of
            entLastConfigChangeTime changes. It can be utilized by an
            NMS to trigger logical/physical entity table maintenance
            polls. This trap is throttled by the agent.

            The value of entLastChangeTime at the time the config-
            change-event is generated by the agent is encoded at the
            only var-bind in the trap.

            An agent must take care not to generate more than one
            entLastChangeTime 'trap-event' in a five second period (a
            'trap-event' is the transmission of a single trap PDU to a
            list of trap receivers).  If additional configuration
            changes occur within the five second 'throttling' period,
            then the agent should discard all but the most recent trap-
            event (if any), rather than queueing them and generating
            trap-events (one every five seconds) in sequence. "
   ::= { entityMIBTraps 1 }























McCloghrie/Bierman       Expires July 14, 1996                 [Page 21]


Draft                          Entity MIB               January 14, 1996


-- conformance information
entityConformance OBJECT IDENTIFIER ::= { entityMIB 3 }

entityCompliances OBJECT IDENTIFIER ::= { entityConformance 1 }
entityGroups      OBJECT IDENTIFIER ::= { entityConformance 2 }

-- compliance statements

entityCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for SNMPv2 entities
            which implement the Entity MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { entityGroup }
    ::= { entityCompliances 1 }


-- units of conformance

entityGroup    OBJECT-GROUP
    OBJECTS { entPhysicalDescr,
              entPhysicalVendorType,
              entPhysicalContainedIn,
              entPhysicalClass,
              entLogicalDescr,
              entLogicalType,
              entLogicalCommunity,
              entLogicalIpAddress,
              entLPPhysicalIndex,
              entAliasIdentifier,
              entPhysicalChildIndex,
              entLastChangeTime,
              entConfigChange -- separate conformance group needed for trap??
            }
    STATUS  current
    DESCRIPTION
            "The collection of objects which are used to
            represent the multiple logical entities,
            physical components, interfaces, and port
            alias identifiers for which a single agent
            provides MIB information."
    ::= { entityGroups 1 }

END





McCloghrie/Bierman       Expires July 14, 1996                 [Page 22]


Draft                          Entity MIB               January 14, 1996


5.  Usage Examples

5.1.  Router/Bridge

A bi-lingual (SNMPv1 and SNMPv2) router containing two slots.  Each slot
contains a 3 port router/bridge module. Each port is represented in the
ifTable.  There are two logical instances of OSPF running and two
logical bridges:

  Physical entities -- entPhysicalTable:
    1 Field-replaceable physical chassis:
      entPhysicalDescr.1 ==             "Acme Chassis Model 100"
      entPhysicalVendorType.1  ==       acmeProducts.chassisTypes.1
      entPhysicalContainedIn.1 ==       0
      entPhysicalClass.1 ==             chassis(3)

    2 slots within the chassis:
      entPhysicalDescr.2 ==             "Acme Router Chassis Slot 1"
      entPhysicalVendorType.2  ==       acmeProducts.slotTypes.1
      entPhysicalContainedIn.2 ==       1
      entPhysicalClass.2 ==             container(5)

      entPhysicalDescr.3 ==             "Acme Router Chassis Slot 2"
      entPhysicalVendorType.3  ==       acmeProducts.slotTypes.1
      entPhysicalContainedIn.3 ==       1
      entPhysicalClass.3 ==             container(5)

    2 Field-replaceable modules:
    Slot 1 contains a module with 3 ports:
      entPhysicalDescr.4 ==             "Acme Router Module Model 10"
      entPhysicalVendorType.4  ==       acmeProducts.moduleTypes.14
      entPhysicalContainedIn.4 ==       2
      entPhysicalClass.4 ==             module(9)

      entPhysicalDescr.5 ==             "Acme Router Ethernet Port 1"
      entPhysicalVendorType.5  ==       acmeProducts.portTypes.2
      entPhysicalContainedIn.5 ==       4
      entPhysicalClass.5 ==             port(10)

      entPhysicalDescr.6 ==             "Acme Router Ethernet Port 2"
      entPhysicalVendorType.6  ==       acmeProducts.portTypes.2
      entPhysicalContainedIn.6 ==       4
      entPhysicalClass.6 ==             port(10)

      entPhysicalDescr.7 ==             "Acme Router Fddi Port 3"





McCloghrie/Bierman       Expires July 14, 1996                 [Page 23]


Draft                          Entity MIB               January 14, 1996


      entPhysicalVendorType.7  ==       acmeProducts.portTypes.3
      entPhysicalContainedIn.7 ==       4
      entPhysicalClass.7 ==             port(10)

   Slot 2 contains another 3-port module:
      entPhysicalDescr.8 ==             "Acme Router Module Model 11"
      entPhysicalVendorType.8  ==       acmeProducts.moduleTypes.15
      entPhysicalContainedIn.8 ==       3
      entPhysicalClass.8 ==             module(9)

      entPhysicalDescr.9 ==             "Acme Router Fddi Port 1"
      entPhysicalVendorType.9 ==        acmeProducts.portTypes.3
      entPhysicalContainedIn.9 ==       8
      entPhysicalClass.9 ==             port(10)

      entPhysicalDescr.10 ==            "Acme Router Ethernet Port 2"
      entPhysicalVendorType.10 ==       acmeProducts.portTypes.2
      entPhysicalContainedIn.10 ==      8
      entPhysicalClass.10 ==            port(10)

      entPhysicalDescr.11 ==            "Acme Router Ethernet Port 3"
      entPhysicalVendorType.11 ==       acmeProducts.portTypes.2
      entPhysicalContainedIn.11 ==      8
      entPhysicalClass.11 ==            port(10)

   Logical entities -- entLogicalTable
   2 OSPF instances:
      entLogicalDescr.1 ==            "ospf-1"
      entLogicalType.1 ==             ospf
      entLogicalCommunity.1 ==        "public-ospf1"
      entLogicalIpAddress.1 ==        124.125.126.127

      entLogicalDescr.2 ==            "ospf-2"
      entLogicalType.2 ==             ospf
      entLogicalCommunity.2 ==        "public-ospf2"
      entLogicalIpAddress.2 ==        124.125.126.127

    2 logical bridges:
      entLogicalDescr.3 ==            "bridge1"
      entLogicalType.3  ==            dod1dBridge
      entLogicalCommunity.3 ==        "public-bridge1"
      entLogicalIpAddress.3 ==         124.125.126.127

      entLogicalDescr.4 ==            "bridge2"
      entLogicalType.4 ==             dod1dBridge





McCloghrie/Bierman       Expires July 14, 1996                 [Page 24]


Draft                          Entity MIB               January 14, 1996


      entLogicalCommunity.4 ==        "public-bridge2"
      entLogicalIpAddress.4 ==        124.125.126.127

Logical to Physical Mappings:
  1st OSPF instance: uses module 1-port 1
      entLPPhysicalIndex.1.5 ==         5

  2nd OSPF instance: uses module 2-port 1
      entLPPhysicalIndex.2.9 ==         9

  1st bridge group: uses module 1, all ports
      entLPPhysicalIndex.3.5 ==         5
      entLPPhysicalIndex.3.6 ==         6
      entLPPhysicalIndex.3.7 ==         7

  2nd bridge group: uses module 2, all ports
      entLPPhysicalIndex.4.9  ==        9
      entLPPhysicalIndex.4.10 ==        10
      entLPPhysicalIndex.4.11 ==        11

Logical to Physical to Alias Mappings -- entAliasMappingTable:
  Bridge 1 uses Ports 1..3 on Slot 1
      entAliasIdentifier.3.5.1 ==       dot1dBasePort.1
      entAliasIdentifier.3.5.2 ==       ifIndex.1
      entAliasIdentifier.3.6.1 ==       dot1dBasePort.2
      entAliasIdentifier.3.6.2 ==       ifIndex.2
      entAliasIdentifier.3.7.1 ==       dot1dBasePort.3
      entAliasIdentifier.3.7.2 ==       ifIndex.3

  Bridge 2 uses Ports 1..3 on Slot 2; uses same Bridge MIB and ifIndex
  values as Bridge 1, but in a different context, and representing
  different physical ports:
      entAliasIdentifier.4.9.1 ==       dot1dBasePort.1
      entAliasIdentifier.4.9.2 ==       ifIndex.1
      entAliasIdentifier.4.10.1 ==      dot1dBasePort.2
      entAliasIdentifier.4.10.2 ==      ifIndex.2
      entAliasIdentifier.4.11.1 ==      dot1dBasePort.3
      entAliasIdentifier.4.11.2 ==      ifIndex.3

Physical Containment Tree -- entPhysicalContainsTable
  chassis has two containers:
      entPhysicalChildIndex.1.2 = 2
      entPhysicalChildIndex.1.3 = 3

  container 1 has a module:





McCloghrie/Bierman       Expires July 14, 1996                 [Page 25]


Draft                          Entity MIB               January 14, 1996


      entPhysicalChildIndex.2.4 = 4

  container 2 has a module
      entPhysicalChildIndex.3.8 = 8

  module 1 has some ports:
      entPhysicalChildIndex.4.5 = 5
      entPhysicalChildIndex.4.6 = 6
      entPhysicalChildIndex.4.7 = 7

  module 2 has some ports:
      entPhysicalChildIndex.8.9 = 9
      entPhysicalChildIndex.8.10 = 10
      entPhysicalChildIndex.1.11 = 11


5.2.  Repeaters

An SNMPv1 only, 3-slot Hub with 2 backplane ethernet segments.  Slot
three is empty, and the remaining slots contain ethernet repeater
modules.

   Physical entities -- entPhysicalTable:
    1 Field-replaceable physical chassis:
      entPhysicalDescr.1 ==          "Acme Repeater Chassis Model 110"
      entPhysicalVendorType.1 ==     acmeProducts.chassisTypes.2
      entPhysicalContainedIn.1 ==    0
      entPhysicalClass.1 ==          chassis(3)

    2 Chassis Ethernet Backplanes:
      entPhysicalDescr.2 ==          "Ethernet Backplane 1"
      entPhysicalVendorType.2 ==     acmeProducts.backplaneTypes.1
      entPhysicalContainedIn.2 ==    1
      entPhysicalClass.2 ==          backplane(4)

      entPhysicalDescr.3 ==          "Ethernet Backplane 2"
      entPhysicalVendorType.3  ==    acmeProducts.backplaneTypes.1
      entPhysicalContainedIn.3 ==    1
      entPhysicalClass.3 ==          backplane(4)

     3 slots within the chassis:
      entPhysicalDescr.4 ==          "Acme Hub Slot 1"
      entPhysicalVendorType.4  ==    acmeProducts.slotTypes.5
      entPhysicalContainedIn.4 ==    1
      entPhysicalClass.4 ==          container(5)





McCloghrie/Bierman       Expires July 14, 1996                 [Page 26]


Draft                          Entity MIB               January 14, 1996


      entPhysicalDescr.5 ==          "Acme Hub Slot 2"
      entPhysicalVendorType.5  ==    acmeProducts.slotTypes.5
      entPhysicalContainedIn.5 ==    1
      entPhysicalClass.5 ==          container(5)

      entPhysicalDescr.6 ==          "Acme Hub Slot 3"
      entPhysicalVendorType.6  ==    acmeProducts.slotTypes.5
      entPhysicalContainedIn.6 ==    1
      entPhysicalClass.6 ==          container(5)

    Slot 1 contains a plug-in module with 4 10-BaseT ports:
      entPhysicalDescr.7  ==         "10Base-T Module Model 14"
      entPhysicalVendorType.7   ==   acmeProducts.moduleTypes.32
      entPhysicalContainedIn.7  ==   4
      entPhysicalClass.7 ==          module(9)

      entPhysicalDescr.8  ==         "10Base-T Port 1"
      entPhysicalVendorType.8   ==   acmeProducts.portTypes.10
      entPhysicalContainedIn.8  ==   7
      entPhysicalClass.8 ==          port(10)

      entPhysicalDescr.9  ==         "10Base-T Port 2"
      entPhysicalVendorType.9   ==   acmeProducts.portTypes.10
      entPhysicalContainedIn.9  ==   7
      entPhysicalClass.9 ==          port(10)

      entPhysicalDescr.10 ==         "10Base-T Port 3"
      entPhysicalVendorType.10  ==   acmeProducts.portTypes.10
      entPhysicalContainedIn.10 ==   7
      entPhysicalClass.10 ==         port(10)

      entPhysicalDescr.11 ==         "10Base-T Port 4"
      entPhysicalVendorType.11  ==   acmeProducts.portTypes.10
      entPhysicalContainedIn.11 ==   7
      entPhysicalClass.11 ==         port(10)

   Slot 2 contains another ethernet module with 2 ports.
      entPhysicalDescr.12 ==         "Acme 10Base-T Module Model 4"
      entPhysicalVendorType.12 ==    acmeProducts.moduleTypes.30
      entPhysicalContainedIn.12 =    5
      entPhysicalClass.12 ==         module(9)

      entPhysicalDescr.13 ==         "802.3 AUI Port 1"
      entPhysicalVendorType.13  ==   acmeProducts.portTypes.11
      entPhysicalContainedIn.13 ==   12





McCloghrie/Bierman       Expires July 14, 1996                 [Page 27]


Draft                          Entity MIB               January 14, 1996


      entPhysicalClass.13 ==         port(10)

      entPhysicalDescr.14 ==          "10Base-T Port 2"
      entPhysicalVendorType.14  ==    acmeProducts.portTypes.10
      entPhysicalContainedIn.14 ==    12
      entPhysicalClass.14 ==          port(10)

   Logical entities -- entLogicalTable
     Repeater 1--comprised of any ports attached to backplane 1
       entLogicalDescr.1 ==         "repeater1"
       entLogicalType.1  ==         snmpDot3RptrMgt
       entLogicalCommunity.1        "public-repeater1"
       entLogicalIpAddress.1        124.125.126.128

     Repeater 2--comprised of any ports attached to backplane 2:
       entLogicalDescr.2 ==         "repeater2"
       entLogicalType.2  ==         snmpDot3RptrMgt
       entLogicalCommunity.2 ==     "public-repeater2"
       entLogicalIpAddress.2 ==     124.125.126.128

Logical to Physical Mappings -- entLPMappingTable:

  repeater1 uses backplane 1, slot 1-ports 1 & 2, slot 2-port 1
      entLPPhysicalIndex.1.2 ==         2
      entLPPhysicalIndex.1.8 ==         8
      entLPPhysicalIndex.1.9 ==         9
      entLPPhysicalIndex.1.13 ==        13

  repeater2 uses backplane 2, slot 1-ports 3 & 4, slot 2-port 2
      entLPPhysicalIndex.2.3 ==         3
      entLPPhysicalIndex.2.10 ==        10
      entLPPhysicalIndex.2.11 ==        11
      entLPPhysicalIndex.2.14 ==        14

Logical to Physical to Alias Mappings -- entAliasMappingTable:
  repeater1 uses slot 1-ports 1 & 2, slot 2-port 1
      entAliasIdentifier.1.8.1 ==       rptrPortGroupIndex.1.1
      entAliasIdentifier.1.9.1 ==       rptrPortGroupIndex.1.2
      entAliasIdentifier.1.13.1 ==      rptrPortGroupIndex.2.1

  repeater2 uses slot 1-ports 3 & 4, slot 2-port 2
      entAliasIdentifier.2.10.1 ==      rptrPortGroupIndex.1.3
      entAliasIdentifier.2.11.1 ==      rptrPortGroupIndex.1.4
      entAliasIdentifier.2.14.1 ==      rptrPortGroupIndex.2.2






McCloghrie/Bierman       Expires July 14, 1996                 [Page 28]


Draft                          Entity MIB               January 14, 1996


Physical Containment Tree -- entPhysicalContainsTable

  chassis has two backplanes and three containers:
      entPhysicalChildIndex.1.2 = 2
      entPhysicalChildIndex.1.3 = 3
      entPhysicalChildIndex.1.4 = 4
      entPhysicalChildIndex.1.5 = 5
      entPhysicalChildIndex.1.6 = 6

  container 1 has a module:
      entPhysicalChildIndex.4.7 = 7

  container 2 has a module
      entPhysicalChildIndex.5.12 = 12
  -- container 3 is empty

  module 1 has some ports:
      entPhysicalChildIndex.7.8 = 8
      entPhysicalChildIndex.7.9 = 9
      entPhysicalChildIndex.7.10 = 10
      entPhysicalChildIndex.7.11 = 11

  module 2 has some ports:
      entPhysicalChildIndex.12.13 = 13
      entPhysicalChildIndex.12.14 = 14

























McCloghrie/Bierman       Expires July 14, 1996                 [Page 29]


Draft                          Entity MIB               January 14, 1996


6.  Acknowledgements

This document was produced by the IETF Entity MIB Working Group.















































McCloghrie/Bierman       Expires July 14, 1996                 [Page 30]


Draft                          Entity MIB               January 14, 1996


7.  References

[1]  Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Structure
     of Management Information for version 2 of the Simple Network
     Management Protocol (SNMPv2)", RFC 1442, SNMP Research,Inc., Hughes
     LAN Systems, Dover Beach Consulting, Inc., Carnegie Mellon
     University, April 1993.

[2]  McCloghrie, K., and M. Rose, Editors, "Management Information Base
     for Network Management of TCP/IP-based internets: MIB-II", STD 17,
     RFC 1213, Hughes LAN Systems, Performance Systems International,
     March 1991.

[3]  Galvin, J., and K. McCloghrie, "Administrative Model for version 2
     of the Simple Network Management Protocol (SNMPv2)", RFC 1445,
     Trusted Information Systems, Hughes LAN Systems, April 1993.

[4]  Case, J., McCloghrie, K., Rose, M., and S. Waldbusser, "Protocol
     Operations for version 2 of the Simple Network Management Protocol
     (SNMPv2)", RFC 1448, SNMP Research,Inc., Hughes LAN Systems, Dover
     Beach Consulting, Inc., Carnegie Mellon University, April 1993.

[5]  McCloghrie, K., and J.  Galvin, "Party MIB for Version 2 of the
     Simple Network Management Protocol (SNMPv2)", RFC 1447, Hughes LAN
     Systems, Trusted Information Systems, April 1993.

[6]  Case, J., M. Fedor, M. Schoffstall, J. Davin, "Simple Network
     Management Protocol", RFC 1157, SNMP Research, Performance Systems
     International, MIT Laboratory for Computer Science, May 1990.

[7]  McCloghrie, K., and Kastenholtz, F., "Interfaces Group Evolution",
     RFC 1573, Hughes LAN Systems, FTP Software, January 1994.


















McCloghrie/Bierman       Expires July 14, 1996                 [Page 31]


Draft                          Entity MIB               January 14, 1996


8.  Security Considerations

Security issues are not discussed in this memo.


9.  Authors' Addresses

     Keith McCloghrie
     cisco Systems, Inc.
     170 West Tasman Drive
     San Jose, CA 95134
     Phone: 408-526-5260
     Email: kzm@cisco.com

     Andy Bierman
     Bierman Consulting
     1200 Sagamore Lane
     Ventura, CA 93001
     Phone: 805-648-2028
     Email: abierman@west.net






























McCloghrie/Bierman       Expires July 14, 1996                 [Page 32]


Draft                          Entity MIB               January 14, 1996


Table of Contents


1 Introduction ....................................................    2
2 The SNMPv2 Network Management Framework .........................    3
2.1 Object Definitions ............................................    3
3 Overview ........................................................    4
3.1 Terms .........................................................    4
3.2 Relationship to Community Strings .............................    6
3.3 Relationship to Proxy Mechanisms ..............................    6
3.4 Relationship to a Chassis MIB .................................    6
3.5 Relationship to the Interfaces MIB ............................    6
3.6 Relationship to the Other MIBs ................................    7
3.7 Re-Configuration of Entities ..................................    7
3.8 MIB Structure .................................................    7
3.9 Multiple Agents ...............................................    8
4 Definitions .....................................................    9
5 Usage Examples ..................................................   23
5.1 Router/Bridge .................................................   23
5.2 Repeaters .....................................................   26
6 Acknowledgements ................................................   30
7 References ......................................................   31
8 Security Considerations .........................................   32
9 Authors' Addresses ..............................................   32


























McCloghrie/Bierman       Expires July 14, 1996                 [Page 33]