Blob Blame History Raw
//
// This module has been generated by smidump 0.4.5. Do not edit.
//
module RMON2-MIB {

  import IF-MIB               (ifIndex);
  import IRTF-NMRG-SMING      (Counter32, DisplayString255, 
                               Gauge32, IpAddress, TimeStamp, 
                               TimeTicks);
  import IRTF-NMRG-SMING-SNMP (RowStatus, mib-2);
  import RMON-MIB             (OwnerString, channelEntry, 
                               etherStatsEntry, filter, 
                               filterEntry, history, 
                               historyControlEntry, 
                               hostControlEntry, hosts, matrix, 
                               matrixControlEntry, statistics);
  import TOKEN-RING-RMON-MIB  (ringStationControlEntry, 
                               sourceRoutingStatsEntry, 
                               tokenRing, tokenRingMLStatsEntry, 
                               tokenRingPStatsEntry);

//
// MODULE META INFORMATION
//

  organization      
     "IETF RMON MIB Working Group";

  contact           
     "Author:
      Steve Waldbusser
      Phone:  +1-650-948-6500
      Fax :   +1-650-745-0671
      Email:  waldbusser@nextbeacon.com
      
      Working Group Chair:
      Andy Bierman
      E-mail: ietf@andybierman.com
      
      Working Group Mailing List: <rmonmib@ietf.org>
      To subscribe send email to: <rmonmib-request@ietf.org>    ";

  description       
     "The MIB module for managing remote monitoring
      device implementations.  This MIB module
      extends the architecture introduced in the original
      RMON MIB as specified in RFC 2819.
      
      Copyright (C) The Internet Society (2006).  This version of
      this MIB module is part of RFC 4502;  see the RFC itself for
      full legal notices.";

  revision {
    date            "2006-05-02 00:00";
    description     
       "This version updates the proposed-standard version of the
        RMON2 MIB (published as RFC 2021) by adding 2 new
        enumerations to the nlMatrixTopNControlRateBase object and
        4 new enumerations to the alMatrixTopNControlRateBase object.
        These new enumerations support the creation of high-capacity
        topN reports in the High Capacity RMON MIB [RFC3273].
        
        Additionally, the following objects have been deprecated, as
        they have not had enough independent implementations to
        demonstrate interoperability to meet the requirements of a
        Draft Standard:
        
        probeDownloadFile
        probeDownloadTFTPServer
        probeDownloadAction
        probeDownloadStatus
        
        
        
        serialMode
        serialProtocol
        serialTimeout
        serialModemInitString
        serialModemHangUpString
        serialModemConnectResp
        serialModemNoConnectResp
        serialDialoutTimeout
        serialStatus
        serialConnectDestIpAddress
        serialConnectType
        serialConnectDialString
        serialConnectSwitchConnectSeq
        serialConnectSwitchDisconnectSeq
        serialConnectSwitchResetSeq
        serialConnectOwner
        serialConnectStatus
        netConfigIPAddress
        netConfigSubnetMask
        netConfigStatus
        netDefaultGateway
        tokenRingMLStats2DroppedFrames
        tokenRingMLStats2CreateTime
        tokenRingPStats2DroppedFrames
        tokenRingPStats2CreateTime
        ringStationControl2DroppedFrames
        ringStationControl2CreateTime
        sourceRoutingStats2DroppedFrames
        sourceRoutingStats2CreateTime
        trapDestIndex
        trapDestCommunity
        trapDestProtocol
        trapDestAddress
        trapDestOwner
        trapDestStatus
        
        In addition, two corrections were made.  The LastCreateTime
        Textual Convention had been defined with a base type of
        another textual convention, which isn't allowed in SMIv2.  The
        definition has been modified to use TimeTicks as the base
        type.
        
        Further, the SerialConfigEntry SEQUENCE definition included
        sub-typing information that is not allowed in SMIv2.  This
        information has been deleted.  Ranges were added to a number of
        objects and textual-conventions to constrain their maximum
        (and sometimes minimum) sizes.  The addition of these ranges
        documents existing practice for these objects.  These objects
        
        
        
        are:
            ControlString
            protocolDirID
            protocolDirParameters
            addressMapNetworkAddress
            nlHostAddress
            nlMatrixSDSourceAddress
            nlMatrixSDDestAddress
            nlMatrixDSSourceAddress
            nlMatrixDSDestAddress
            nlMatrixTopNSourceAddress
            nlMatrixTopNDestAddress
            alHostEntry
            alMatrixSDEntry
            alMatrixDSEntry
            alMatrixTopNSourceAddress
            alMatrixTopNDestAddress
        
        Finally, the TimeFilter TC has been updated to encourage agent
        implementations that allow a MIB walk to behave well even when
        performed by an application that is not aware of the special
        TimeFilter semantics.";
  };
  revision {
    date            "2002-07-08 00:00";
    description     
       "Added new enumerations to support the High-Capacity RMON
        MIB as defined in RFC 3273.  Also fixed some typos and
        added clarifications.";
  };
  revision {
    date            "1996-05-27 00:00";
    description     
       "Original version.  Published as RFC 2021.";
  };

  identity          rmon;

//
// TYPE DEFINITIONS
//

  typedef ZeroBasedCounter32 {
    type            Gauge32;
    description     
       "This TC describes an object that counts events with the
        following semantics: objects of this type will be set to
        zero(0) on creation and will thereafter count appropriate
        events, wrapping back to zero(0) when the value 2^32 is
        reached.
        
        Provided that an application discovers the new object within
        the minimum time to wrap, it can use the initial value as a
        delta since it last polled the table of which this object is
        part.  It is important for a management station to be aware of
        this minimum time and the actual time between polls, and to
        discard data if the actual time is too long or there is no
        defined minimum time.
        
        Typically, this TC is used in tables where the INDEX space is
        constantly changing and/or the TimeFilter mechanism is in use.";
  };

  typedef LastCreateTime {
    type            TimeTicks;
    description     
       "This TC describes an object that stores the value of the
        sysUpTime object at the last time its entry was created.
        
        This can be used for polling applications to determine that an
        entry has been deleted and re-created between polls, causing
        an otherwise undetectable discontinuity in the data.
        
        If sysUpTime is reset to zero as a result of a re-
        initialization of the network management (sub)system, then
        the values of all LastCreateTime objects are also reset.
        However, after approximately 497 days without a re-
        initialization, the sysUpTime object will reach 2^^32-1 and
        then increment to zero; in this case, existing values
        of TimeStamp objects do not change.  This can lead to
        ambiguities in the value of TimeStamp objects.";
  };

  typedef TimeFilter {
    type            TimeTicks;
    description     
       "To be used for the index to a table.  Allows an application
        to download only those rows changed since a particular time.
        
        
        
        Note that this is not a history mechanism.  Only current values
        of underlying objects are returned; saved instance values
        associated with particular values of sysUpTime are not.
        
        An entry is considered changed if the value of any object in the
        entry changes, if the row is created, or if any object in the
        entry is created or deleted.  Note that deleted entries cannot
        be detected or downloaded.
        
        A time-filtered conceptual table is created by inserting a
        single object of SYNTAX TimeFilter as the first INDEX component
        in a copy of an existing basic conceptual table (i.e., any
        SEQUENCE without a TimeFilter INDEX component).  Thus, for
        each conceptual entry 'I' in the basic table, there exists N
        conceptual entries in the time-filtered version, indexed N.I,
        where 'N' is equal to the value of sysUpTime.
        
        When an application retrieves conceptual instances from a
        time-filtered table, and an INDEX value is provided for the
        TimeFilter INDEX component 'N', the agent will only consider
        returning basic conceptual entries (e.g., 'fooColumn.N.I') if
        any column within the basic conceptual entry has changed since
        sysUpTime 'N'.  If not, the basic conceptual entry will
        be ignored for the particular retrieval operation.
        
        When sysUpTime is equal to zero, this table shall be empty.
        
        One conceptual entry exists for each past value of sysUpTime,
        except that the whole table is purged should sysUpTime wrap.
        
        As an entry in a time-filtered table is updated (i.e., one of
        the columns in the basic conceptual table is changed), new
        conceptual entries are also created in the time-filtered version
        (which still shares the now updated object values with all other
        instances).  The number of unique time-filtered instances that
        are created is determined by the value of sysUpTime at which the
        basic entry was last updated.  One unique instance will exist
        for each value of sysUpTime at the last update time for the row.
        However, a new TimeFilter index instance is created for each new
        sysUpTime value.  The TimeFilter index values not associated
        with entry updates are called duplicate time-filtered instances.
        
        After some deployment experience, it has been determined that
        a time-filtered table is more efficient if the agent
        stops a MIB walk operation by skipping over rows with a
        TimeFilter index value higher than the value in the received
        GetNext/GetBulk request.  That is, instead of incrementing a
        TimeFilter index value, the agent will continue to the next
        
        
        
        object or table.  As a consequence, GetNext or GetBulk
        operations will provide only one pass through a time-filtered
        table.
        
        It is suggested that an agent implement a time-filtered table
        in this manner to improve performance and avoid a MIB walk
        getting stuck in time-filtered tables.  It is, however, still
        acceptable for an agent to implement a time-filtered table in
        the traditional manner (i.e., every conceptual time-filtered
        instance is returned in GetNext and GetBulk PDU responses), and
        management applications must be able to deal with such
        traditional implementations.
        
        See the appendix for further discussion of this textual
        convention.
        
        The following example is provided to demonstrate TimeFilter
        behavior:
        
        Consider the following basic conceptual table, basicFooTable.
        (Note that the basic version of a time-filtered table may not
        actually be defined.)
        
            basicFooTable:
        
            basicFooTable ...
            INDEX { fooIndex }
        
            BasicFooEntry {
               fooIndex     Integer32,
               fooCounts    Counter32
            }
        
        For this example, the basicFooTable contains two static
        conceptual entries (fooIndex equals '1' and '2'), created at
        time zero.  It also contains one dynamic conceptual entry
        (fooIndex equals '3'), which is created at time '3' and deleted
        at time '7'.
        
        The time-filtered version of the basicFooTable could be defined
        as follows:
        
            FooTable:
        
            fooTable ...
            INDEX { fooTimeMark, fooIndex }
        
            FooEntry {
        
        
        
               fooTimeMark  TimeFilter,
               fooIndex     Integer32,
               fooCounts    Counter32
            }
        
        
        Note that entries exist in the time-filtered conceptual table
        only if they actually exist in the underlying (basic) table.
        
        For this example, the fooTable will have three underlying
        basic entries (fooIndex == 1, 2, and 3), with the following
        activity (for sysUpTime equal 0 to 9):
        
           - fooEntry.N.1 is created at time '0' and most recently
             updated at time '6' to the value '5'.
           - fooEntry.N.2 is created at time '0' and most recently
             updated at time '8' to the value '9'.
           - fooEntry.N.3 is created at time '3', updated at time '5'
             to the value '17', and deleted at time '7'.
        
        The following tables show the values that would be returned for
        MIB walk operations with various TimeFilter values, done at
        different times.  An application issues a retrieval request at
        time 'T', with a TimeFilter value, 'N' (typically set to a lower
        value, such as the value of sysUpTime at the last polling cycle).
        
        The following values would be returned in a MIB walk of
        fooCounts.N if T equals '0' and N equals '0':
        
             fooCounts.N.I    Value
             ==========================
             fooCounts.0.1    0
             fooCounts.0.2    0
        
         Note that nothing is returned for fooCounts.0.3, since that
         entry does not exist at sysUpTime equals '0'.
        
        The following values would be returned in a full (traditional) MIB
        walk of fooCounts.N if T equals '3' and N equals '0':
        
             fooCounts.N.I    Value
             =======================
             fooCounts.0.1    0
             fooCounts.0.2    0
             fooCounts.0.3    0
             fooCounts.1.3    0
             fooCounts.2.3    0
             fooCounts.3.3    0
        
        
        
         Note that there are no instances for T equals 1 or 2 for the
         first two values of N, as these entries did not change
         since they were created at time '0'.
        
         Note that the current value for 'fooCounts.N.3' is returned
         here, even for values of N less than '3' (when the entry was
         created).  The agent only considers the current existence of an
         entry in the TimeFilter algorithm, not the time when the entry
         was created.
        
         Note that the instances 'fooCounts.0.3', 'fooCounts.1.3',
         and 'fooCounts.2.3' are duplicates and can be suppressed by the
         agent in a MIB walk.
        
        The following values would be returned in a full (traditional)
        MIB walk of fooCounts.N if T equals '6' and N equals '3':
        
             fooCounts.N.I    Value
             =======================
             fooCounts.3.1    5
             fooCounts.3.3    17
             fooCounts.4.1    5
             fooCounts.4.3    17
             fooCounts.5.1    5
             fooCounts.5.3    17
             fooCounts.6.1    5
        
          Note that no instances for entry 'fooCounts.N.2' are returned,
          since it has not changed since time '3'.
        
          Note that all instances except 'fooCounts.5.3' and
          'fooCounts.6.1' are duplicates and can be suppressed by the
          agent in a MIB walk.
        
        The following values would be returned in a full (traditional)
        MIB walk of fooCounts.N if T equals '9' and N equals '6':
        
             fooCounts.N.I    Value
             =======================
             fooCounts.6.1    5
             fooCounts.6.2    9
             fooCounts.7.2    9
             fooCounts.8.2    9
        
          Note that no instances for entry 'fooCounts.N.3' are returned,
          since it was deleted at time '7'.
        
          Note that instances 'fooCounts.6.2' and 'fooCounts.7.2'
        
        
        
          are duplicates and can be suppressed by the agent in a MIB
          walk.";
  };

  typedef DataSource {
    type            ObjectIdentifier;
    description     
       "Identifies the source of the data that the associated
        function is configured to analyze.  This source can be any
        interface on this device.
        
        In order to identify a particular interface, this
        object shall identify the instance of the ifIndex
        object, defined in [RFC2863], for the desired interface.
        
        For example, if an entry were to receive data from
        interface #1, this object would be set to ifIndex.1.";
  };

  typedef ControlString {
    type            OctetString (0..255);
    description     
       "This data type is used to communicate with a modem or a
        
        
        
        serial data switch.  A ControlString contains embedded
        commands to control how the device will interact with the
        remote device through the serial interface.  Commands are
        represented as two-character sequences beginning with
        the '^' character.
        
        The following commands are recognized by the device (note
        that command characters are case sensitive):
        
           ^s  Send string that follows, which is terminated by the
               next command or the end of string.
           ^c  Delay for the number of seconds that follows.  Toss
               out any data received rather than store it in a
               buffer for parsing.
           ^t  Set timeout to the value represented by the decimal
               digits that follow.  The default timeout is 20
               seconds.  Note that this timeout may be overridden
               by a smaller serialTimeout configured for the
               associated serial interface (see serialConfigTable).
           ^w  Wait for the reply string that follows, which is
               terminated by the next command or the end of string.
               Partial and case-insensitive matching is applied, i.e.,
               if the reply string (any case combination) is found
               anywhere in the received string, then the a match is
               found.  If the current timeout elapses without a match,
               then the remaining control string is ignored.
           ^!  The ^ character.
           ^d  Delay the number of seconds specified by the decimal
               digits that follow.
           ^b  Send break for the number of milliseconds specified by
               the decimal digits that follow.  If no digits follow,
               break will be enforced for 250 milliseconds by default.
        
        The following ASCII control characters may be inserted into
        the '^s' send string or the '^w' reply string:
        
           ^@    0x00
           ^A    0x01
            ..
           ^M    0x0D
            ..
           ^Z    0x1A
           ^[    0x1B
           ^    0x1C
           ^]    0x1D
           ^^    0x1E
           ^_    0x1F
        
        
        
        
        Binary data may also be inserted into the data stream.  The
        control sequence for each byte of binary data is ^0x##, where
        ## is the hexadecimal representation of the data byte.  Two
        ASCII characters (0-9, a-f, A-F) must follow the '^0x'
        control prefix.  For example, '^0x0D^0x0A' is interpreted as a
        carriage return followed by a line feed.";
  };

//
// OBJECT DEFINITIONS
//


  node rmon {
    oid             mib-2.16;
  };

  table etherStats2Table {
    oid             statistics.4;
    description     
       "Contains the RMON-2 augmentations to RMON-1.";

    row etherStats2Entry {
      oid           etherStats2Table.1;
      augments      etherStatsEntry;
      description   
         "Contains the RMON-2 augmentations to RMON-1.";

      column etherStatsDroppedFrames {
        oid         etherStats2Entry.1;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column etherStatsCreateTime {
        oid         etherStats2Entry.2;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this control entry was last
            activated.  This can be used by the management station to
            ensure that the table has not been deleted and recreated
            between polls.";
      };
    };
  };

  table tokenRingMLStats2Table {
    oid             statistics.5;
    status          deprecated;
    description     
       "Contains the RMON-2 augmentations to RMON-1.
        
        This table has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability
        to meet the requirements of a Draft Standard.";

    row tokenRingMLStats2Entry {
      oid           tokenRingMLStats2Table.1;
      augments      tokenRingMLStatsEntry;
      status        deprecated;
      description   
         "Contains the RMON-2 augmentations to RMON-1.";

      column tokenRingMLStatsDroppedFrames {
        oid         tokenRingMLStats2Entry.1;
        type        Counter32;
        access      readonly;
        status      deprecated;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column tokenRingMLStatsCreateTime {
        oid         tokenRingMLStats2Entry.2;
        type        LastCreateTime;
        access      readonly;
        status      deprecated;
        description 
           "The value of sysUpTime when this control entry was last
            activated.  This can be used by the management station to
            ensure that the table has not been deleted and recreated
            between polls.";
      };
    };
  };

  table tokenRingPStats2Table {
    oid             statistics.6;
    status          deprecated;
    description     
       "Contains the RMON-2 augmentations to RMON-1.
        
        This table has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability
        to meet the requirements of a Draft Standard.";

    row tokenRingPStats2Entry {
      oid           tokenRingPStats2Table.1;
      augments      tokenRingPStatsEntry;
      status        deprecated;
      description   
         "Contains the RMON-2 augmentations to RMON-1.";

      column tokenRingPStatsDroppedFrames {
        oid         tokenRingPStats2Entry.1;
        type        Counter32;
        access      readonly;
        status      deprecated;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column tokenRingPStatsCreateTime {
        oid         tokenRingPStats2Entry.2;
        type        LastCreateTime;
        access      readonly;
        status      deprecated;
        description 
           "The value of sysUpTime when this control entry was last
            activated.  This can be used by the management station to
            ensure that the table has not been deleted and recreated
            between polls.";
      };
    };
  };

  table historyControl2Table {
    oid             history.5;
    description     
       "Contains the RMON-2 augmentations to RMON-1.";

    row historyControl2Entry {
      oid           historyControl2Table.1;
      augments      historyControlEntry;
      description   
         "Contains the RMON-2 augmentations to RMON-1.";

      column historyControlDroppedFrames {
        oid         historyControl2Entry.1;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };
    };
  };

  table hostControl2Table {
    oid             hosts.4;
    description     
       "Contains the RMON-2 augmentations to RMON-1.";

    row hostControl2Entry {
      oid           hostControl2Table.1;
      augments      hostControlEntry;
      description   
         "Contains the RMON-2 augmentations to RMON-1.";

      column hostControlDroppedFrames {
        oid         hostControl2Entry.1;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            
            
            
            probe is out of some resources and decides to shed load from
            this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column hostControlCreateTime {
        oid         hostControl2Entry.2;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this control entry was last
            activated.  This can be used by the management station to
            ensure that the table has not been deleted and recreated
            between polls.";
      };
    };
  };

  table matrixControl2Table {
    oid             matrix.4;
    description     
       "Contains the RMON-2 augmentations to RMON-1.";

    row matrixControl2Entry {
      oid           matrixControl2Table.1;
      augments      matrixControlEntry;
      description   
         "Contains the RMON-2 augmentations to RMON-1.";

      column matrixControlDroppedFrames {
        oid         matrixControl2Entry.1;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column matrixControlCreateTime {
        oid         matrixControl2Entry.2;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this control entry was last
            activated.  This can be used by the management station to
            ensure that the table has not been deleted and recreated
            between polls.";
      };
    };
  };

  table channel2Table {
    oid             filter.3;
    description     
       "Contains the RMON-2 augmentations to RMON-1.";

    row channel2Entry {
      oid           channel2Table.1;
      augments      channelEntry;
      description   
         "Contains the RMON-2 augmentations to RMON-1.";

      column channelDroppedFrames {
        oid         channel2Entry.1;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column channelCreateTime {
        oid         channel2Entry.2;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this control entry was last
            activated.  This can be used by the management station to
            ensure that the table has not been deleted and recreated
            between polls.";
      };
    };
  };

  table filter2Table {
    oid             filter.4;
    description     
       "Provides a variable-length packet filter feature to the
        RMON-1 filter table.";

    row filter2Entry {
      oid           filter2Table.1;
      augments      filterEntry;
      create        ;
      description   
         "Provides a variable-length packet filter feature to the
          RMON-1 filter table.";

      column filterProtocolDirDataLocalIndex {
        oid         filter2Entry.1;
        type        Integer32 (0..2147483647);
        access      readwrite;
        default     0;
        description 
           "When this object is set to a non-zero value, the filter that
            it is associated with performs the following operations on
            every packet:
            
            1) If the packet doesn't match the protocol directory entry
               identified by this object, discard the packet and exit
               (i.e., discard the packet if it is not of the identified
               protocol).
            
            
            
            2) If the associated filterProtocolDirLocalIndex is non-zero
               and the packet doesn't match the protocol directory
               entry identified by that object, discard the packet and
               exit.
            3) If the packet matches, perform the regular filter
               algorithm as if the beginning of this named protocol is
               the beginning of the packet, potentially applying the
               filterOffset value to move further into the packet.";
      };

      column filterProtocolDirLocalIndex {
        oid         filter2Entry.2;
        type        Integer32 (0..2147483647);
        access      readwrite;
        default     0;
        description 
           "When this object is set to a non-zero value, the filter that
            it is associated with will discard the packet if the packet
            doesn't match this protocol directory entry.";
      };
    };
  };

  table ringStationControl2Table {
    oid             tokenRing.7;
    status          deprecated;
    description     
       "Contains the RMON-2 augmentations to RMON-1.
        
        This table has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability
        to meet the requirements of a Draft Standard.";

    row ringStationControl2Entry {
      oid           ringStationControl2Table.1;
      augments      ringStationControlEntry;
      status        deprecated;
      description   
         "Contains the RMON-2 augmentations to RMON-1.";

      column ringStationControlDroppedFrames {
        oid         ringStationControl2Entry.1;
        type        Counter32;
        access      readonly;
        status      deprecated;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column ringStationControlCreateTime {
        oid         ringStationControl2Entry.2;
        type        LastCreateTime;
        access      readonly;
        status      deprecated;
        description 
           "The value of sysUpTime when this control entry was last
            activated.  This can be used by the management station to
            
            
            
            ensure that the table has not been deleted and recreated
            between polls.";
      };
    };
  };

  table sourceRoutingStats2Table {
    oid             tokenRing.8;
    status          deprecated;
    description     
       "Contains the RMON-2 augmentations to RMON-1.
        
        This table has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability
        to meet the requirements of a Draft Standard.";

    row sourceRoutingStats2Entry {
      oid           sourceRoutingStats2Table.1;
      augments      sourceRoutingStatsEntry;
      status        deprecated;
      description   
         "Contains the RMON-2 augmentations to RMON-1.";

      column sourceRoutingStatsDroppedFrames {
        oid         sourceRoutingStats2Entry.1;
        type        Counter32;
        access      readonly;
        status      deprecated;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the
            probe is out of some resources and decides to shed load from
            this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column sourceRoutingStatsCreateTime {
        oid         sourceRoutingStats2Entry.2;
        type        LastCreateTime;
        access      readonly;
        status      deprecated;
        description 
           "The value of sysUpTime when this control entry was last
            activated.  This can be used by the management station to
            ensure that the table has not been deleted and recreated
            between polls.";
      };
    };
  };

  node protocolDir {
    oid             rmon.11;
  };

  scalar protocolDirLastChange {
    oid             protocolDir.1;
    type            TimeStamp;
    access          readonly;
    description     
       "The value of sysUpTime at the time the protocol directory
        was last modified, either through insertions or deletions,
        or through modifications of the
        protocolDirAddressMapConfig, protocolDirHostConfig, or
        protocolDirMatrixConfig.";
  };

  table protocolDirTable {
    oid             protocolDir.2;
    description     
       "This table lists the protocols that this agent has the
        capability to decode and count.  There is one entry in this
        table for each such protocol.  These protocols represent
        different network-layer, transport-layer, and higher-layer
        
        
        
        protocols.  The agent should boot up with this table
        preconfigured with those protocols that it knows about and
        wishes to monitor.  Implementations are strongly encouraged to
        support protocols higher than the network layer (at least for
        the protocol distribution group), even for implementations
        that don't support the application-layer groups.";

    row protocolDirEntry {
      oid           protocolDirTable.1;
      index         (protocolDirID, protocolDirParameters);
      create        ;
      description   
         "A conceptual row in the protocolDirTable.
          
          An example of the indexing of this entry is
          protocolDirLocalIndex.8.0.0.0.1.0.0.8.0.2.0.0, which is the
          encoding of a length of 8, followed by 8 subids encoding the
          protocolDirID of 1.2048, followed by a length of 2 and the
          2 subids encoding zero-valued parameters.
          
          Note that some combinations of index values may result in an
          index that exceeds 128 sub-identifiers in length, which exceeds
          the maximum for the SNMP protocol.  Implementations should take
          care to avoid such combinations.";

      column protocolDirID {
        oid         protocolDirEntry.1;
        type        OctetString (4..128);
        access      noaccess;
        description 
           "A unique identifier for a particular protocol.  Standard
            identifiers will be defined in such a manner that they
            
            
            
            can often be used as specifications for new protocols - i.e.,
            a tree-structured assignment mechanism that matches the
            protocol encapsulation 'tree' and that has algorithmic
            assignment mechanisms for certain subtrees.  See RFC 2074 for
            more details.
            
            Despite the algorithmic mechanism, the probe will only place
            entries in here for those protocols it chooses to collect.  In
            other words, it need not populate this table with all
            possible ethernet protocol types, nor need it create them on
            the fly when it sees them.  Whether it does these
            things is a matter of product definition (cost/benefit,
            usability) and is up to the designer of the product.
            
            If an entry is written to this table with a protocolDirID that
            the agent doesn't understand, either directly or
            algorithmically, the SET request will be rejected with an
            inconsistentName or badValue (for SNMPv1) error.";
      };

      column protocolDirParameters {
        oid         protocolDirEntry.2;
        type        OctetString (1..32);
        access      noaccess;
        description 
           "A set of parameters for the associated protocolDirID.
            See the associated RMON2 Protocol Identifiers document
            for a description of the possible parameters.  There
            will be one octet in this string for each sub-identifier in
            the protocolDirID, and the parameters will appear here in the
            same order as the associated sub-identifiers appear in the
            protocolDirID.
            
            Every node in the protocolDirID tree has a different, optional
            set of parameters defined (that is, the definition of
            parameters for a node is optional).  The proper parameter
            value for each node is included in this string.  Note that the
            inclusion of a parameter value in this string for each node is
            not optional.  What is optional is that a node may have no
            parameters defined, in which case the parameter field for that
            node will be zero.";
      };

      column protocolDirLocalIndex {
        oid         protocolDirEntry.3;
        type        Integer32 (1..2147483647);
        access      readonly;
        description 
           "The locally arbitrary but unique identifier associated
            with this protocolDir entry.
            
            The value for each supported protocol must remain constant at
            least from one re-initialization of the entity's network
            management system to the next re-initialization, except that
            if a protocol is deleted and re-created, it must be re-created
            with a new value that has not been used since the last
            re-initialization.
            
            The specific value is meaningful only within a given SNMP
            entity.  A protocolDirLocalIndex must not be re-used until the
            next agent restart in the event that the protocol directory
            entry is deleted.";
      };

      column protocolDirDescr {
        oid         protocolDirEntry.4;
        type        DisplayString (1..64);
        access      readwrite;
        description 
           "A textual description of the protocol encapsulation.
            A probe may choose to describe only a subset of the
            entire encapsulation (e.g., only the highest layer).
            
            This object is intended for human consumption only.
            
            This object may not be modified if the associated
            protocolDirStatus object is equal to active(1).";
      };

      column protocolDirType {
        oid         protocolDirEntry.5;
        type        Bits (extensible(0), 
                      addressRecognitionCapable(1));
        access      readonly;
        description 
           "This object describes 2 attributes of this protocol
            directory entry.
            
            The presence or absence of the 'extensible' bit describes
            whether this protocol directory entry can be extended
            by the user by creating protocol directory entries that are
            children of this protocol.
            
            An example of an entry that will often allow extensibility is
            
            
            
            'ip.udp'.  The probe may automatically populate some children
            of this node, such as 'ip.udp.snmp' and 'ip.udp.dns'.
            A probe administrator or user may also populate additional
            children via remote SNMP requests that create entries in this
            table.  When a child node is added for a protocol for which the
            probe has no built-in support extending a parent node (for
            which the probe does have built-in support),
            that child node is not extendable.  This is termed 'limited
            extensibility'.
            
            When a child node is added through this extensibility
            mechanism, the values of protocolDirLocalIndex and
            protocolDirType shall be assigned by the agent.
            
            The other objects in the entry will be assigned by the
            manager who is creating the new entry.
            
            This object also describes whether this agent can
            recognize addresses for this protocol, should it be a
            network-level protocol.  That is, while a probe may be able
            to recognize packets of a particular network-layer protocol
            and count them, it takes additional logic to be able to
            recognize the addresses in this protocol and to populate
            network-layer or application-layer tables with the addresses
            in this protocol.  If this bit is set, the agent will
            recognize network-layer addresses for this protocol and
            populate the network- and application-layer host and matrix
            tables with these protocols.
            
            Note that when an entry is created, the agent will supply
            values for the bits that match the capabilities of the agent
            with respect to this protocol.  Note that since row creations
            usually exercise the limited extensibility feature, these
            bits will usually be set to zero.";
      };

      column protocolDirAddressMapConfig {
        oid         protocolDirEntry.6;
        type        Enumeration (notSupported(1), 
                      supportedOff(2), supportedOn(3));
        access      readwrite;
        description 
           "This object describes and configures the probe's support for
            address mapping for this protocol.  When the probe creates
            entries in this table for all protocols that it understands,
            
            
            
            it will set the entry to notSupported(1) if it doesn't have
            the capability to perform address mapping for the protocol or
            if this protocol is not a network-layer protocol.  When
            an entry is created in this table by a management operation as
            part of the limited extensibility feature, the probe must set
            this value to notSupported(1), because limited extensibility
            of the protocolDirTable does not extend to interpreting
            addresses of the extended protocols.
            
            If the value of this object is notSupported(1), the probe
            will not perform address mapping for this protocol and
            shall not allow this object to be changed to any other value.
            If the value of this object is supportedOn(3), the probe
            supports address mapping for this protocol and is configured
            to perform address mapping for this protocol for all
            addressMappingControlEntries and all interfaces.
            If the value of this object is supportedOff(2), the probe
            supports address mapping for this protocol but is configured
            to not perform address mapping for this protocol for any
            addressMappingControlEntries and all interfaces.
            Whenever this value changes from supportedOn(3) to
            supportedOff(2), the probe shall delete all related entries in
            the addressMappingTable.";
      };

      column protocolDirHostConfig {
        oid         protocolDirEntry.7;
        type        Enumeration (notSupported(1), 
                      supportedOff(2), supportedOn(3));
        access      readwrite;
        description 
           "This object describes and configures the probe's support for
            the network-layer and application-layer host tables for this
            protocol.  When the probe creates entries in this table for
            all protocols that it understands, it will set the entry to
            notSupported(1) if it doesn't have the capability to track the
            nlHostTable for this protocol or if the alHostTable is
            implemented but doesn't have the capability to track this
            protocol.  Note that if the alHostTable is implemented, the
            probe may only support a protocol if it is supported in both
            the nlHostTable and the alHostTable.
            
            If the associated protocolDirType object has the
            addressRecognitionCapable bit set, then this is a network-
            layer protocol for which the probe recognizes addresses, and
            
            
            
            thus the probe will populate the nlHostTable and alHostTable
            with addresses it discovers for this protocol.
            
            If the value of this object is notSupported(1), the probe
            will not track the nlHostTable or alHostTable for this
            protocol and shall not allow this object to be changed to any
            other value.  If the value of this object is supportedOn(3),
            the probe supports tracking of the nlHostTable and alHostTable
            for this protocol and is configured to track both tables
            for this protocol for all control entries and all interfaces.
            If the value of this object is supportedOff(2), the probe
            supports tracking of the nlHostTable and alHostTable for this
            protocol but is configured to not track these tables
            for any control entries or interfaces.
            Whenever this value changes from supportedOn(3) to
            supportedOff(2), the probe shall delete all related entries in
            the nlHostTable and alHostTable.
            
            Note that since each alHostEntry references 2 protocol
            directory entries, one for the network address and one for the
            type of the highest protocol recognized, an entry will
            only be created in that table if this value is supportedOn(3)
            for both protocols.";
      };

      column protocolDirMatrixConfig {
        oid         protocolDirEntry.8;
        type        Enumeration (notSupported(1), 
                      supportedOff(2), supportedOn(3));
        access      readwrite;
        description 
           "This object describes and configures the probe's support for
            the network-layer and application-layer matrix tables for this
            protocol.  When the probe creates entries in this table for
            all protocols that it understands, it will set the entry to
            notSupported(1) if it doesn't have the capability to track the
            nlMatrixTables for this protocol or if the alMatrixTables are
            implemented but don't have the capability to track this
            protocol.  Note that if the alMatrix tables are implemented,
            the probe may only support a protocol if it is supported in
            both of the nlMatrixTables and both of the
            alMatrixTables.
            
            If the associated protocolDirType object has the
            addressRecognitionCapable bit set, then this is a network-
            
            
            
            layer protocol for which the probe recognizes addresses, and
            thus the probe will populate both of the nlMatrixTables and
            both of the alMatrixTables with addresses it discovers for
            this protocol.
            
            If the value of this object is notSupported(1), the probe
            will not track either of the nlMatrixTables or the
            alMatrixTables for this protocol and shall not allow this
            object to be changed to any other value.  If the value of this
            object is supportedOn(3), the probe supports tracking of both
            of the nlMatrixTables and (if implemented) both of the
            alMatrixTables for this protocol and is configured to track
            these tables for this protocol for all control entries and all
            interfaces.  If the value of this object is supportedOff(2),
            the probe supports tracking of both of the nlMatrixTables and
            (if implemented) both of the alMatrixTables for this protocol
            but is configured to not track these tables for this
            protocol for any control entries or interfaces.
            Whenever this value changes from supportedOn(3) to
            supportedOff(2), the probe shall delete all related entries in
            the nlMatrixTables and the alMatrixTables.
            
            Note that since each alMatrixEntry references 2 protocol
            directory entries, one for the network address and one for the
            type of the highest protocol recognized, an entry will
            only be created in that table if this value is supportedOn(3)
            for both protocols.";
      };

      column protocolDirOwner {
        oid         protocolDirEntry.9;
        type        OwnerString;
        access      readwrite;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column protocolDirStatus {
        oid         protocolDirEntry.10;
        type        RowStatus;
        access      readwrite;
        description 
           "The status of this protocol directory entry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.
            
            
            
            
            If this object is not equal to active(1), all associated
            entries in the nlHostTable, nlMatrixSDTable, nlMatrixDSTable,
            alHostTable, alMatrixSDTable, and alMatrixDSTable shall be
            deleted.";
      };
    };
  };

  node protocolDist {
    oid             rmon.12;
  };

  table protocolDistControlTable {
    oid             protocolDist.1;
    description     
       "Controls the setup of protocol type distribution statistics
        tables.
        
        Implementations are encouraged to add an entry per monitored
        interface upon initialization so that a default collection
        of protocol statistics is available.
        
        Rationale:
        This table controls collection of very basic statistics
        for any or all of the protocols detected on a given interface.
        An NMS can use this table to quickly determine bandwidth
        allocation utilized by different protocols.
        
        A media-specific statistics collection could also
        be configured (e.g., etherStats, trPStats) to easily obtain
        total frame, octet, and droppedEvents for the same
        interface.";

    row protocolDistControlEntry {
      oid           protocolDistControlTable.1;
      index         (protocolDistControlIndex);
      create        ;
      description   
         "A conceptual row in the protocolDistControlTable.
          
          An example of the indexing of this entry is
          protocolDistControlDroppedFrames.7";

      column protocolDistControlIndex {
        oid         protocolDistControlEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "A unique index for this protocolDistControlEntry.";
      };

      column protocolDistControlDataSource {
        oid         protocolDistControlEntry.2;
        type        DataSource;
        access      readwrite;
        description 
           "The source of data for the this protocol distribution.
            
            The statistics in this group reflect all packets
            on the local network segment attached to the
            identified interface.
            
            This object may not be modified if the associated
            protocolDistControlStatus object is equal to active(1).";
      };

      column protocolDistControlDroppedFrames {
        oid         protocolDistControlEntry.3;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the probe
            is out of some resources and decides to shed load from this
            collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column protocolDistControlCreateTime {
        oid         protocolDistControlEntry.4;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this control entry was last
            activated.  This can be used by the management station to
            ensure that the table has not been deleted and recreated
            between polls.";
      };

      column protocolDistControlOwner {
        oid         protocolDistControlEntry.5;
        type        OwnerString;
        access      readwrite;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column protocolDistControlStatus {
        oid         protocolDistControlEntry.6;
        type        RowStatus;
        access      readwrite;
        description 
           "The status of this row.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.
            
            If this object is not equal to active(1), all associated
            entries in the protocolDistStatsTable shall be deleted.";
      };
    };
  };

  table protocolDistStatsTable {
    oid             protocolDist.2;
    description     
       "An entry is made in this table for every protocol in the
        protocolDirTable that has been seen in at least one packet.
        Counters are updated in this table for every protocol type
        that is encountered when parsing a packet, but no counters are
        
        
        
        updated for packets with MAC-layer errors.
        
        Note that if a protocolDirEntry is deleted, all associated
        entries in this table are removed.";

    row protocolDistStatsEntry {
      oid           protocolDistStatsTable.1;
      index         (protocolDistControlIndex, 
                     protocolDirLocalIndex);
      description   
         "A conceptual row in the protocolDistStatsTable.
          
          The index is composed of the protocolDistControlIndex of the
          associated protocolDistControlEntry, followed by the
          protocolDirLocalIndex of the associated protocol that this
          entry represents.  In other words, the index identifies the
          protocol distribution an entry is a part of and the
          particular protocol that it represents.
          
          An example of the indexing of this entry is
          protocolDistStatsPkts.1.18";

      column protocolDistStatsPkts {
        oid         protocolDistStatsEntry.1;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets of this protocol type received
            without errors.  Note that this is the number of
            link-layer packets, so if a single network-layer packet
            is fragmented into several link-layer frames, this counter
            is incremented several times.";
      };

      column protocolDistStatsOctets {
        oid         protocolDistStatsEntry.2;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of octets in packets of this protocol type
            
            
            
            received since it was added to the protocolDistStatsTable
            (excluding framing bits, but including FCS octets), except for
            those octets in packets that contained errors.
            
            Note that this doesn't count just those octets in the
            particular protocol frames but includes the entire packet
            that contained the protocol.";
      };
    };
  };

  node addressMap {
    oid             rmon.13;
  };

  scalar addressMapInserts {
    oid             addressMap.1;
    type            Counter32;
    access          readonly;
    description     
       "The number of times an address mapping entry has been
        inserted into the addressMapTable.  If an entry is inserted,
        then deleted, and then inserted, this counter will be
        incremented by 2.
        
        Note that the table size can be determined by subtracting
        addressMapDeletes from addressMapInserts.";
  };

  scalar addressMapDeletes {
    oid             addressMap.2;
    type            Counter32;
    access          readonly;
    description     
       "The number of times an address mapping entry has been
        deleted from the addressMapTable (for any reason).  If
        an entry is deleted, then inserted, and then deleted, this
        counter will be incremented by 2.
        
        Note that the table size can be determined by subtracting
        addressMapDeletes from addressMapInserts.";
  };

  scalar addressMapMaxDesiredEntries {
    oid             addressMap.3;
    type            Integer32 (-1..2147483647);
    access          readwrite;
    description     
       "The maximum number of entries that are desired in the
        addressMapTable.  The probe will not create more than
        this number of entries in the table but may choose to create
        fewer entries in this table for any reason, including the lack
        of resources.
        
        If this object is set to a value less than the current number
        of entries, enough entries are chosen in an
        implementation-dependent manner and deleted so that the number
        of entries in the table equals the value of this object.
        
        If this value is set to -1, the probe may create any number
        of entries in this table.
        
        This object may be used to control how resources are allocated
        on the probe for the various RMON functions.";
  };

  table addressMapControlTable {
    oid             addressMap.4;
    description     
       "A table to control the collection of mappings from network
        layer address to physical address to interface.
        
        Note that this is not like the typical RMON
        controlTable and dataTable in which each entry creates
        its own data table.  Each entry in this table enables the
        discovery of addresses on a new interface and the placement
        of address mappings into the central addressMapTable.
        
        Implementations are encouraged to add an entry per monitored
        interface upon initialization so that a default collection
        of address mappings is available.";

    row addressMapControlEntry {
      oid           addressMapControlTable.1;
      index         (addressMapControlIndex);
      create        ;
      description   
         "A conceptual row in the addressMapControlTable.
          
          An example of the indexing of this entry is
          addressMapControlDroppedFrames.1";

      column addressMapControlIndex {
        oid         addressMapControlEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "A unique index for this entry in the addressMapControlTable.";
      };

      column addressMapControlDataSource {
        oid         addressMapControlEntry.2;
        type        DataSource;
        access      readwrite;
        description 
           "The source of data for this addressMapControlEntry.";
      };

      column addressMapControlDroppedFrames {
        oid         addressMapControlEntry.3;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the probe
            is out of some resources and decides to shed load from this
            collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column addressMapControlOwner {
        oid         addressMapControlEntry.4;
        type        OwnerString;
        access      readwrite;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column addressMapControlStatus {
        oid         addressMapControlEntry.5;
        type        RowStatus;
        access      readwrite;
        description 
           "The status of this addressMap control entry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.
            
            If this object is not equal to active(1), all associated
            entries in the addressMapTable shall be deleted.";
      };
    };
  };

  table addressMapTable {
    oid             addressMap.5;
    description     
       "A table of mappings from network layer address to physical
        address to interface.
        
        The probe will add entries to this table based on the source
        MAC and network addresses seen in packets without MAC-level
        errors.  The probe will populate this table for all protocols
        in the protocol directory table whose value of
        protocolDirAddressMapConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirAddressMapConfig value of supportedOff(2).";

    row addressMapEntry {
      oid           addressMapTable.1;
      index         (addressMapTimeMark, protocolDirLocalIndex, 
                     addressMapNetworkAddress, addressMapSource);
      description   
         "A conceptual row in the addressMapTable.
          
          The protocolDirLocalIndex in the index identifies the network
          layer protocol of the addressMapNetworkAddress.
          
          
          
          
          An example of the indexing of this entry is
          addressMapSource.783495.18.4.128.2.6.6.11.1.3.6.1.2.1.2.2.1.1.1.
          
          Note that some combinations of index values may result in an
          index that exceeds 128 sub-identifiers in length, which exceeds
          the maximum for the SNMP protocol.  Implementations should take
          care to avoid such combinations.";

      column addressMapTimeMark {
        oid         addressMapEntry.1;
        type        TimeFilter;
        access      noaccess;
        description 
           "A TimeFilter for this entry.  See the TimeFilter textual
            convention to see how this works.";
      };

      column addressMapNetworkAddress {
        oid         addressMapEntry.2;
        type        OctetString (1..255);
        access      noaccess;
        description 
           "The network address for this relation.
            
            This is represented as an octet string with
            specific semantics and length as identified
            by the protocolDirLocalIndex component of the
            index.
            
            For example, if the protocolDirLocalIndex indicates an
            encapsulation of ip, this object is encoded as a length
            octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column addressMapSource {
        oid         addressMapEntry.3;
        type        ObjectIdentifier;
        access      noaccess;
        description 
           "The interface or port on which the associated network
            address was most recently seen.
            
            If this address mapping was discovered on an interface, this
            object shall identify the instance of the ifIndex
            object, defined in [RFC2863], for the desired interface.
            For example, if an entry were to receive data from
            interface #1, this object would be set to ifIndex.1.
            
            If this address mapping was discovered on a port, this
            object shall identify the instance of the rptrGroupPortIndex
            object, defined in [RFC2108], for the desired port.
            For example, if an entry were to receive data from
            group #1, port #1, this object would be set to
            rptrGroupPortIndex.1.1.
            
            Note that while the dataSource associated with this entry
            may only point to index objects, this object may at times
            point to repeater port objects.  This situation occurs when
            the dataSource points to an interface that is a locally
            attached repeater and the agent has additional information
            about the source port of traffic seen on that repeater.";
      };

      column addressMapPhysicalAddress {
        oid         addressMapEntry.4;
        type        OctetString;
        access      readonly;
        description 
           "The last source physical address on which the associated
            network address was seen.  If the protocol of the associated
            network address was encapsulated inside of a network-level or
            higher protocol, this will be the address of the next-lower
            protocol with the addressRecognitionCapable bit enabled and
            will be formatted as specified for that protocol.";
      };

      column addressMapLastChange {
        oid         addressMapEntry.5;
        type        TimeStamp;
        access      readonly;
        description 
           "The value of sysUpTime at the time this entry was last
            created or the values of the physical address changed.
            
            
            
            
            This can be used to help detect duplicate address problems, in
            which case this object will be updated frequently.";
      };
    };
  };

  node nlHost {
    oid             rmon.14;
  };

  table hlHostControlTable {
    oid             nlHost.1;
    description     
       "A list of higher-layer (i.e., non-MAC) host table control
        entries.
        
        These entries will enable the collection of the network- and
        application-level host tables indexed by network addresses.
        Both the network- and application-level host tables are
        controlled by this table so that they will both be created
        and deleted at the same time, further increasing the ease with
        which they can be implemented as a single datastore.  (Note that
        if an implementation stores application-layer host records in
        memory, it can derive network-layer host records from them.)
        
        Entries in the nlHostTable will be created on behalf of each
        entry in this table.  Additionally, if this probe implements
        the alHostTable, entries in the alHostTable will be created on
        behalf of each entry in this table.
        
        Implementations are encouraged to add an entry per monitored
        interface upon initialization so that a default collection
        of host statistics is available.";

    row hlHostControlEntry {
      oid           hlHostControlTable.1;
      index         (hlHostControlIndex);
      create        ;
      description   
         "A conceptual row in the hlHostControlTable.
          
          An example of the indexing of this entry is
          
          
          
          hlHostControlNlDroppedFrames.1";

      column hlHostControlIndex {
        oid         hlHostControlEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "An index that uniquely identifies an entry in the
            hlHostControlTable.  Each such entry defines
            a function that discovers hosts on a particular
            interface and places statistics about them in the
            nlHostTable, and optionally in the alHostTable, on
            behalf of this hlHostControlEntry.";
      };

      column hlHostControlDataSource {
        oid         hlHostControlEntry.2;
        type        DataSource;
        access      readwrite;
        description 
           "The source of data for the associated host tables.
            
            The statistics in this group reflect all packets
            on the local network segment attached to the
            identified interface.
            
            This object may not be modified if the associated
            hlHostControlStatus object is equal to active(1).";
      };

      column hlHostControlNlDroppedFrames {
        oid         hlHostControlEntry.3;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for the associated
            nlHost entries for whatever reason.  Most often, this event
            occurs when the probe is out of some resources and decides to
            shed load from this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that if the nlHostTable is inactive because no protocols
            are enabled in the protocol directory, this value should be 0.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column hlHostControlNlInserts {
        oid         hlHostControlEntry.4;
        type        Counter32;
        access      readonly;
        description 
           "The number of times an nlHost entry has been
            inserted into the nlHost table.  If an entry is inserted, then
            deleted, and then inserted, this counter will be incremented
            by 2.
            
            To allow for efficient implementation strategies, agents may
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal
            data structures to differ from those visible via SNMP for
            short periods of time.  This counter may reflect the internal
            data structures for those short periods of time.
            
            Note that the table size can be determined by subtracting
            hlHostControlNlDeletes from hlHostControlNlInserts.";
      };

      column hlHostControlNlDeletes {
        oid         hlHostControlEntry.5;
        type        Counter32;
        access      readonly;
        description 
           "The number of times an nlHost entry has been
            
            
            
            deleted from the nlHost table (for any reason).  If an entry
            is deleted, then inserted, and then deleted, this counter will
            be incremented by 2.
            
            To allow for efficient implementation strategies, agents may
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal
            data structures to differ from those visible via SNMP for
            short periods of time.  This counter may reflect the internal
            data structures for those short periods of time.
            
            Note that the table size can be determined by subtracting
            hlHostControlNlDeletes from hlHostControlNlInserts.";
      };

      column hlHostControlNlMaxDesiredEntries {
        oid         hlHostControlEntry.6;
        type        Integer32 (-1..2147483647);
        access      readwrite;
        description 
           "The maximum number of entries that are desired in the
            nlHostTable on behalf of this control entry.  The probe will
            not create more than this number of associated entries in the
            table but may choose to create fewer entries in this table
            for any reason, including the lack of resources.
            
            If this object is set to a value less than the current number
            of entries, enough entries are chosen in an
            implementation-dependent manner and deleted so that the number
            of entries in the table equals the value of this object.
            
            If this value is set to -1, the probe may create any number
            of entries in this table.  If the associated
            hlHostControlStatus object is equal to 'active', this
            object may not be modified.
            
            This object may be used to control how resources are allocated
            on the probe for the various RMON functions.";
      };

      column hlHostControlAlDroppedFrames {
        oid         hlHostControlEntry.7;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for the associated
            
            
            
            alHost entries for whatever reason.  Most often, this event
            occurs when the probe is out of some resources and decides to
            shed load from this collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that if the alHostTable is not implemented or is inactive
            because no protocols are enabled in the protocol directory,
            this value should be 0.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column hlHostControlAlInserts {
        oid         hlHostControlEntry.8;
        type        Counter32;
        access      readonly;
        description 
           "The number of times an alHost entry has been
            inserted into the alHost table.  If an entry is inserted, then
            deleted, and then inserted, this counter will be incremented
            by 2.
            
            To allow for efficient implementation strategies, agents may
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal
            data structures to differ from those visible via SNMP for
            short periods of time.  This counter may reflect the internal
            data structures for those short periods of time.
            
            Note that the table size can be determined by subtracting
            hlHostControlAlDeletes from hlHostControlAlInserts.";
      };

      column hlHostControlAlDeletes {
        oid         hlHostControlEntry.9;
        type        Counter32;
        access      readonly;
        description 
           "The number of times an alHost entry has been
            deleted from the alHost table (for any reason).  If an entry
            is deleted, then inserted, and then deleted, this counter will
            be incremented by 2.
            
            To allow for efficient implementation strategies, agents may
            delay updating this object for short periods of time.  For
            
            
            
            example, an implementation strategy may allow internal
            data structures to differ from those visible via SNMP for
            short periods of time.  This counter may reflect the internal
            data structures for those short periods of time.
            
            Note that the table size can be determined by subtracting
            hlHostControlAlDeletes from hlHostControlAlInserts.";
      };

      column hlHostControlAlMaxDesiredEntries {
        oid         hlHostControlEntry.10;
        type        Integer32 (-1..2147483647);
        access      readwrite;
        description 
           "The maximum number of entries that are desired in the alHost
            table on behalf of this control entry.  The probe will not
            create more than this number of associated entries in the
            table but may choose to create fewer entries in this table
            for any reason, including the lack of resources.
            
            If this object is set to a value less than the current number
            of entries, enough entries are chosen in an
            implementation-dependent manner and deleted so that the number
            of entries in the table equals the value of this object.
            
            If this value is set to -1, the probe may create any number
            of entries in this table.  If the associated
            hlHostControlStatus object is equal to 'active', this
            object may not be modified.
            
            This object may be used to control how resources are allocated
            on the probe for the various RMON functions.";
      };

      column hlHostControlOwner {
        oid         hlHostControlEntry.11;
        type        OwnerString;
        access      readwrite;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column hlHostControlStatus {
        oid         hlHostControlEntry.12;
        type        RowStatus;
        access      readwrite;
        description 
           "The status of this hlHostControlEntry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.
            
            If this object is not equal to active(1), all associated
            entries in the nlHostTable and alHostTable shall be deleted.";
      };
    };
  };

  table nlHostTable {
    oid             nlHost.2;
    description     
       "A collection of statistics for a particular network layer
        address that has been discovered on an interface of this
        device.
        
        The probe will populate this table for all network layer
        protocols in the protocol directory table whose value of
        protocolDirHostConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirHostConfig value of supportedOff(2).
        
        The probe will add to this table all addresses seen
        as the source or destination address in all packets with no
        MAC errors, and will increment octet and packet counts in the
        table for all packets with no MAC errors.";

    row nlHostEntry {
      oid           nlHostTable.1;
      index         (hlHostControlIndex, nlHostTimeMark, 
                     protocolDirLocalIndex, nlHostAddress);
      description   
         "A conceptual row in the nlHostTable.
          
          The hlHostControlIndex value in the index identifies the
          hlHostControlEntry on whose behalf this entry was created.
          The protocolDirLocalIndex value in the index identifies the
          network layer protocol of the nlHostAddress.
          
          An example of the indexing of this entry is
          nlHostOutPkts.1.783495.18.4.128.2.6.6.
          
          Note that some combinations of index values may result in an
          index that exceeds 128 sub-identifiers in length, which exceeds
          the maximum for the SNMP protocol.  Implementations should take
          
          
          
          care to avoid such combinations.";

      column nlHostTimeMark {
        oid         nlHostEntry.1;
        type        TimeFilter;
        access      noaccess;
        description 
           "A TimeFilter for this entry.  See the TimeFilter textual
            convention to see how this works.";
      };

      column nlHostAddress {
        oid         nlHostEntry.2;
        type        OctetString (1..255);
        access      noaccess;
        description 
           "The network address for this nlHostEntry.
            
            This is represented as an octet string with
            specific semantics and length as identified
            by the protocolDirLocalIndex component of the index.
            
            For example, if the protocolDirLocalIndex indicates an
            encapsulation of IP, this object is encoded as a length
            octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column nlHostInPkts {
        oid         nlHostEntry.3;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets without errors transmitted to
            
            
            
            this address since it was added to the nlHostTable.  Note that
            this is the number of link-layer packets, so if a single
            network-layer packet is fragmented into several link-layer
            frames, this counter is incremented several times.";
      };

      column nlHostOutPkts {
        oid         nlHostEntry.4;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets without errors transmitted by
            this address since it was added to the nlHostTable.  Note that
            this is the number of link-layer packets, so if a single
            network-layer packet is fragmented into several link-layer
            frames, this counter is incremented several times.";
      };

      column nlHostInOctets {
        oid         nlHostEntry.5;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of octets transmitted to this address
            since it was added to the nlHostTable (excluding
            framing bits, but including FCS octets), excluding
            octets in packets that contained errors.
            
            Note that this doesn't count just those octets in the particular
            protocol frames but includes the entire packet that contained
            the protocol.";
      };

      column nlHostOutOctets {
        oid         nlHostEntry.6;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of octets transmitted by this address
            since it was added to the nlHostTable (excluding
            framing bits, but including FCS octets), excluding
            octets in packets that contained errors.
            
            Note that this doesn't count just those octets in the particular
            protocol frames but includes the entire packet that contained
            the protocol.";
      };

      column nlHostOutMacNonUnicastPkts {
        oid         nlHostEntry.7;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets without errors transmitted by this
            address that were directed to any MAC broadcast addresses
            or to any MAC multicast addresses since this host was
            added to the nlHostTable.  Note that this is the number of
            link-layer packets, so if a single network-layer packet is
            fragmented into several link-layer frames, this counter is
            incremented several times.";
      };

      column nlHostCreateTime {
        oid         nlHostEntry.8;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this entry was last activated.
            This can be used by the management station to ensure that the
            entry has not been deleted and recreated between polls.";
      };
    };
  };

  node nlMatrix {
    oid             rmon.15;
  };

  table hlMatrixControlTable {
    oid             nlMatrix.1;
    description     
       "A list of higher-layer (i.e., non-MAC) matrix control entries.
        
        These entries will enable the collection of the network- and
        application-level matrix tables containing conversation
        statistics indexed by pairs of network addresses.
        Both the network- and application-level matrix tables are
        controlled by this table so that they will both be created
        and deleted at the same time, further increasing the ease with
        which they can be implemented as a single datastore.  (Note that
        if an implementation stores application-layer matrix records
        
        
        
        in memory, it can derive network-layer matrix records from
        them.)
        
        Entries in the nlMatrixSDTable and nlMatrixDSTable will be
        created on behalf of each entry in this table.  Additionally,
        if this probe implements the alMatrix tables, entries in the
        alMatrix tables will be created on behalf of each entry in
        this table.";

    row hlMatrixControlEntry {
      oid           hlMatrixControlTable.1;
      index         (hlMatrixControlIndex);
      create        ;
      description   
         "A conceptual row in the hlMatrixControlTable.
          
          An example of indexing of this entry is
          hlMatrixControlNlDroppedFrames.1";

      column hlMatrixControlIndex {
        oid         hlMatrixControlEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "An index that uniquely identifies an entry in the
            hlMatrixControlTable.  Each such entry defines
            a function that discovers conversations on a particular
            interface and places statistics about them in the
            nlMatrixSDTable and the nlMatrixDSTable, and optionally the
            alMatrixSDTable and alMatrixDSTable, on behalf of this
            
            
            
            hlMatrixControlEntry.";
      };

      column hlMatrixControlDataSource {
        oid         hlMatrixControlEntry.2;
        type        DataSource;
        access      readwrite;
        description 
           "The source of the data for the associated matrix tables.
            
            The statistics in this group reflect all packets
            on the local network segment attached to the
            identified interface.
            
            This object may not be modified if the associated
            hlMatrixControlStatus object is equal to active(1).";
      };

      column hlMatrixControlNlDroppedFrames {
        oid         hlMatrixControlEntry.3;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the probe
            is out of some resources and decides to shed load from this
            collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that if the nlMatrixTables are inactive because no
            protocols are enabled in the protocol directory, this value
            should be 0.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column hlMatrixControlNlInserts {
        oid         hlMatrixControlEntry.4;
        type        Counter32;
        access      readonly;
        description 
           "The number of times an nlMatrix entry has been
            inserted into the nlMatrix tables.  If an entry is inserted,
            
            
            
            then deleted, and then inserted, this counter will be
            incremented by 2.  The addition of a conversation into both
            the nlMatrixSDTable and nlMatrixDSTable shall be counted as
            two insertions (even though every addition into one table must
            be accompanied by an insertion into the other).
            
            To allow for efficient implementation strategies, agents may
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal
            data structures to differ from those visible via SNMP for
            short periods of time.  This counter may reflect the internal
            data structures for those short periods of time.
            
            Note that the sum of then nlMatrixSDTable and nlMatrixDSTable
            sizes can be determined by subtracting
            hlMatrixControlNlDeletes from hlMatrixControlNlInserts.";
      };

      column hlMatrixControlNlDeletes {
        oid         hlMatrixControlEntry.5;
        type        Counter32;
        access      readonly;
        description 
           "The number of times an nlMatrix entry has been
            deleted from the nlMatrix tables (for any reason).  If an
            entry is deleted, then inserted, and then deleted, this
            counter will be incremented by 2.  The deletion of a
            conversation from both the nlMatrixSDTable and nlMatrixDSTable
            shall be counted as two deletions (even though every deletion
            from one table must be accompanied by a deletion from the
            other).
            
            To allow for efficient implementation strategies, agents may
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal
            data structures to differ from those visible via SNMP for
            short periods of time.  This counter may reflect the internal
            data structures for those short periods of time.
            
            Note that the table size can be determined by subtracting
            hlMatrixControlNlDeletes from hlMatrixControlNlInserts.";
      };

      column hlMatrixControlNlMaxDesiredEntries {
        oid         hlMatrixControlEntry.6;
        type        Integer32 (-1..2147483647);
        access      readwrite;
        description 
           "The maximum number of entries that are desired in the
            nlMatrix tables on behalf of this control entry.  The probe
            will not create more than this number of associated entries in
            the table but may choose to create fewer entries in this
            table for any reason, including the lack of resources.
            
            If this object is set to a value less than the current number
            of entries, enough entries are chosen in an
            implementation-dependent manner and deleted so that the number
            of entries in the table equals the value of this object.
            
            If this value is set to -1, the probe may create any number
            of entries in this table.  If the associated
            hlMatrixControlStatus object is equal to 'active', this
            object may not be modified.
            
            This object may be used to control how resources are allocated
            on the probe for the various RMON functions.";
      };

      column hlMatrixControlAlDroppedFrames {
        oid         hlMatrixControlEntry.7;
        type        Counter32;
        access      readonly;
        description 
           "The total number of frames that were received by the probe
            and therefore not accounted for in the *StatsDropEvents, but
            that the probe chose not to count for this entry for
            whatever reason.  Most often, this event occurs when the probe
            is out of some resources and decides to shed load from this
            collection.
            
            This count does not include packets that were not counted
            because they had MAC-layer errors.
            
            Note that if the alMatrixTables are not implemented or are
            inactive because no protocols are enabled in the protocol
            directory, this value should be 0.
            
            Note that, unlike the dropEvents counter, this number is the
            exact number of frames dropped.";
      };

      column hlMatrixControlAlInserts {
        oid         hlMatrixControlEntry.8;
        type        Counter32;
        access      readonly;
        description 
           "The number of times an alMatrix entry has been
            inserted into the alMatrix tables.  If an entry is inserted,
            then deleted, and then inserted, this counter will be
            incremented by 2.  The addition of a conversation into both
            the alMatrixSDTable and alMatrixDSTable shall be counted as
            two insertions (even though every addition into one table must
            be accompanied by an insertion into the other).
            
            To allow for efficient implementation strategies, agents may
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal
            data structures to differ from those visible via SNMP for
            short periods of time.  This counter may reflect the internal
            data structures for those short periods of time.
            
            Note that the table size can be determined by subtracting
            hlMatrixControlAlDeletes from hlMatrixControlAlInserts.";
      };

      column hlMatrixControlAlDeletes {
        oid         hlMatrixControlEntry.9;
        type        Counter32;
        access      readonly;
        description 
           "The number of times an alMatrix entry has been
            deleted from the alMatrix tables.  If an entry is deleted,
            then inserted, and then deleted, this counter will be
            incremented by 2.  The deletion of a conversation from both
            the alMatrixSDTable and alMatrixDSTable shall be counted as
            two deletions (even though every deletion from one table must
            be accompanied by a deletion from the other).
            
            To allow for efficient implementation strategies, agents may
            delay updating this object for short periods of time.  For
            example, an implementation strategy may allow internal
            data structures to differ from those visible via SNMP for
            short periods of time.  This counter may reflect the internal
            data structures for those short periods of time.
            
            Note that the table size can be determined by subtracting
            hlMatrixControlAlDeletes from hlMatrixControlAlInserts.";
      };

      column hlMatrixControlAlMaxDesiredEntries {
        oid         hlMatrixControlEntry.10;
        type        Integer32 (-1..2147483647);
        access      readwrite;
        description 
           "The maximum number of entries that are desired in the
            alMatrix tables on behalf of this control entry.  The probe
            will not create more than this number of associated entries in
            the table but may choose to create fewer entries in this
            table for any reason, including the lack of resources.
            
            If this object is set to a value less than the current number
            of entries, enough entries are chosen in an
            implementation-dependent manner and deleted so that the number
            of entries in the table equals the value of this object.
            
            If this value is set to -1, the probe may create any number
            of entries in this table.  If the associated
            hlMatrixControlStatus object is equal to 'active', this
            object may not be modified.
            
            This object may be used to control how resources are allocated
            on the probe for the various RMON functions.";
      };

      column hlMatrixControlOwner {
        oid         hlMatrixControlEntry.11;
        type        OwnerString;
        access      readwrite;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column hlMatrixControlStatus {
        oid         hlMatrixControlEntry.12;
        type        RowStatus;
        access      readwrite;
        description 
           "The status of this hlMatrixControlEntry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.
            
            If this object is not equal to active(1), all
            associated entries in the nlMatrixSDTable,
            nlMatrixDSTable, alMatrixSDTable, and alMatrixDSTable
            shall be deleted by the agent.";
      };
    };
  };

  table nlMatrixSDTable {
    oid             nlMatrix.2;
    description     
       "A list of traffic matrix entries that collect statistics for
        conversations between two network-level addresses.  This table
        is indexed first by the source address and then by the
        destination address to make it convenient to collect all
        conversations from a particular address.
        
        The probe will populate this table for all network layer
        protocols in the protocol directory table whose value of
        protocolDirMatrixConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirMatrixConfig value of supportedOff(2).
        
        The probe will add to this table all pairs of addresses
        seen in all packets with no MAC errors and will increment
        octet and packet counts in the table for all packets with no
        MAC errors.
        
        Further, this table will only contain entries that have a
        corresponding entry in the nlMatrixDSTable with the same
        source address and destination address.";

    row nlMatrixSDEntry {
      oid           nlMatrixSDTable.1;
      index         (hlMatrixControlIndex, nlMatrixSDTimeMark, 
                     protocolDirLocalIndex, 
                     nlMatrixSDSourceAddress, 
                     nlMatrixSDDestAddress);
      description   
         "A conceptual row in the nlMatrixSDTable.
          
          The hlMatrixControlIndex value in the index identifies the
          hlMatrixControlEntry on whose behalf this entry was created.
          The protocolDirLocalIndex value in the index identifies the
          network-layer protocol of the nlMatrixSDSourceAddress and
          nlMatrixSDDestAddress.
          
          An example of the indexing of this table is
          nlMatrixSDPkts.1.783495.18.4.128.2.6.6.4.128.2.6.7.
          
          Note that some combinations of index values may result in an
          index that exceeds 128 sub-identifiers in length, which exceeds
          the maximum for the SNMP protocol.  Implementations should take
          care to avoid such combinations.";

      column nlMatrixSDTimeMark {
        oid         nlMatrixSDEntry.1;
        type        TimeFilter;
        access      noaccess;
        description 
           "A TimeFilter for this entry.  See the TimeFilter textual
            convention to see how this works.";
      };

      column nlMatrixSDSourceAddress {
        oid         nlMatrixSDEntry.2;
        type        OctetString (1..255);
        access      noaccess;
        description 
           "The network source address for this nlMatrixSDEntry.
            
            This is represented as an octet string with
            specific semantics and length as identified
            by the protocolDirLocalIndex component of the index.
            
            For example, if the protocolDirLocalIndex indicates an
            encapsulation of IP, this object is encoded as a length
            octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column nlMatrixSDDestAddress {
        oid         nlMatrixSDEntry.3;
        type        OctetString (1..255);
        access      noaccess;
        description 
           "The network destination address for this
            nlMatrixSDEntry.
            
            This is represented as an octet string with
            specific semantics and length as identified
            by the protocolDirLocalIndex component of the index.
            
            For example, if the protocolDirLocalIndex indicates an
            
            
            
            encapsulation of IP, this object is encoded as a length
            octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column nlMatrixSDPkts {
        oid         nlMatrixSDEntry.4;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets without errors transmitted from the
            source address to the destination address since this entry was
            added to the nlMatrixSDTable.  Note that this is the number of
            link-layer packets, so if a single network-layer packet is
            fragmented into several link-layer frames, this counter is
            incremented several times.";
      };

      column nlMatrixSDOctets {
        oid         nlMatrixSDEntry.5;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of octets transmitted from the source address to
            the destination address since this entry was added to the
            nlMatrixSDTable (excluding framing bits, but
            including FCS octets), excluding octets in packets that
            contained errors.
            
            Note that this doesn't count just those octets in the particular
            protocol frames but includes the entire packet that contained
            the protocol.";
      };

      column nlMatrixSDCreateTime {
        oid         nlMatrixSDEntry.6;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this entry was last activated.
            This can be used by the management station to ensure that the
            entry has not been deleted and recreated between polls.";
      };
    };
  };

  table nlMatrixDSTable {
    oid             nlMatrix.3;
    description     
       "A list of traffic matrix entries that collect statistics for
        conversations between two network-level addresses.  This table
        is indexed first by the destination address and then by the
        source address to make it convenient to collect all
        conversations to a particular address.
        
        The probe will populate this table for all network layer
        protocols in the protocol directory table whose value of
        protocolDirMatrixConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirMatrixConfig value of supportedOff(2).
        
        The probe will add to this table all pairs of addresses
        seen in all packets with no MAC errors and will increment
        octet and packet counts in the table for all packets with no
        MAC errors.
        
        Further, this table will only contain entries that have a
        corresponding entry in the nlMatrixSDTable with the same
        source address and destination address.";

    row nlMatrixDSEntry {
      oid           nlMatrixDSTable.1;
      index         (hlMatrixControlIndex, nlMatrixDSTimeMark, 
                     protocolDirLocalIndex, 
                     nlMatrixDSDestAddress, 
                     nlMatrixDSSourceAddress);
      description   
         "A conceptual row in the nlMatrixDSTable.
          
          The hlMatrixControlIndex value in the index identifies the
          hlMatrixControlEntry on whose behalf this entry was created.
          The protocolDirLocalIndex value in the index identifies the
          network-layer protocol of the nlMatrixDSSourceAddress and
          nlMatrixDSDestAddress.
          
          An example of the indexing of this table is
          nlMatrixDSPkts.1.783495.18.4.128.2.6.7.4.128.2.6.6.
          
          Note that some combinations of index values may result in an
          index that exceeds 128 sub-identifiers in length, which exceeds
          the maximum for the SNMP protocol.  Implementations should take
          care to avoid such combinations.";

      column nlMatrixDSTimeMark {
        oid         nlMatrixDSEntry.1;
        type        TimeFilter;
        access      noaccess;
        description 
           "A TimeFilter for this entry.  See the TimeFilter textual
            convention to see how this works.";
      };

      column nlMatrixDSSourceAddress {
        oid         nlMatrixDSEntry.2;
        type        OctetString (1..255);
        access      noaccess;
        description 
           "The network source address for this nlMatrixDSEntry.
            
            This is represented as an octet string with
            specific semantics and length as identified
            by the protocolDirLocalIndex component of the index.
            
            For example, if the protocolDirLocalIndex indicates an
            encapsulation of IP, this object is encoded as a length
            octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column nlMatrixDSDestAddress {
        oid         nlMatrixDSEntry.3;
        type        OctetString (1..255);
        access      noaccess;
        description 
           "The network destination address for this
            nlMatrixDSEntry.
            
            This is represented as an octet string with
            specific semantics and length as identified
            
            
            
            by the protocolDirLocalIndex component of the index.
            
            For example, if the protocolDirLocalIndex indicates an
            encapsulation of IP, this object is encoded as a length
            octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column nlMatrixDSPkts {
        oid         nlMatrixDSEntry.4;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets without errors transmitted from the
            source address to the destination address since this entry was
            added to the nlMatrixDSTable.  Note that this is the number of
            link-layer packets, so if a single network-layer packet is
            fragmented into several link-layer frames, this counter is
            incremented several times.";
      };

      column nlMatrixDSOctets {
        oid         nlMatrixDSEntry.5;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of octets transmitted from the source address
            to the destination address since this entry was added to the
            nlMatrixDSTable (excluding framing bits, but
            including FCS octets), excluding octets in packets that
            contained errors.
            
            Note that this doesn't count just those octets in the particular
            protocol frames but includes the entire packet that contained
            the protocol.";
      };

      column nlMatrixDSCreateTime {
        oid         nlMatrixDSEntry.6;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this entry was last activated.
            This can be used by the management station to ensure that the
            entry has not been deleted and recreated between polls.";
      };
    };
  };

  table nlMatrixTopNControlTable {
    oid             nlMatrix.4;
    description     
       "A set of parameters that control the creation of a
        report of the top N matrix entries according to
        a selected metric.";

    row nlMatrixTopNControlEntry {
      oid           nlMatrixTopNControlTable.1;
      index         (nlMatrixTopNControlIndex);
      create        ;
      description   
         "A conceptual row in the nlMatrixTopNControlTable.
          
          An example of the indexing of this table is
          nlMatrixTopNControlDuration.3";

      column nlMatrixTopNControlIndex {
        oid         nlMatrixTopNControlEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "An index that uniquely identifies an entry
            in the nlMatrixTopNControlTable.  Each such
            entry defines one topN report prepared for
            one interface.";
      };

      column nlMatrixTopNControlMatrixIndex {
        oid         nlMatrixTopNControlEntry.2;
        type        Integer32 (1..65535);
        access      readwrite;
        description 
           "The nlMatrix[SD/DS] table for which a topN report will be
            prepared on behalf of this entry.  The nlMatrix[SD/DS] table
            is identified by the value of the hlMatrixControlIndex
            for that table - that value is used here to identify the
            particular table.
            
            This object may not be modified if the associated
            nlMatrixTopNControlStatus object is equal to active(1).";
      };

      column nlMatrixTopNControlRateBase {
        oid         nlMatrixTopNControlEntry.3;
        type        Enumeration (nlMatrixTopNPkts(1), 
                      nlMatrixTopNOctets(2), 
                      nlMatrixTopNHighCapacityPkts(3), 
                      nlMatrixTopNHighCapacityOctets(4));
        access      readwrite;
        description 
           "The variable for each nlMatrix[SD/DS] entry that the
            nlMatrixTopNEntries are sorted by, as well as a control
            for the table that the results will be reported in.
            
            This object may not be modified if the associated
            nlMatrixTopNControlStatus object is equal to active(1).
            
            If this value is less than or equal to 2, when the report
            is prepared, entries are created in the nlMatrixTopNTable
            associated with this object.
            If this value is greater than or equal to 3, when the report
            is prepared, entries are created in the
            nlMatrixTopNHighCapacityTable associated with this object.";
      };

      column nlMatrixTopNControlTimeRemaining {
        oid         nlMatrixTopNControlEntry.4;
        type        Integer32 (0..2147483647);
        access      readwrite;
        default     1800;
        description 
           "The number of seconds left in the report currently
            being collected.  When this object is modified by
            the management station, a new collection is started,
            possibly aborting a currently running report.  The
            new value is used as the requested duration of this
            
            
            
            report and is immediately loaded into the associated
            nlMatrixTopNControlDuration object.
            
            When the report finishes, the probe will automatically
            start another collection with the same initial value
            of nlMatrixTopNControlTimeRemaining.  Thus, the management
            station may simply read the resulting reports repeatedly,
            checking the startTime and duration each time to ensure that a
            report was not missed or that the report parameters were not
            changed.
            
            While the value of this object is non-zero, it decrements
            by one per second until it reaches zero.  At the time
            that this object decrements to zero, the report is made
            accessible in the nlMatrixTopNTable, overwriting any report
            that may be there.
            
            When this object is modified by the management station, any
            associated entries in the nlMatrixTopNTable shall be deleted.
            
            (Note that this is a different algorithm than the one used
            in the hostTopNTable).";
      };

      column nlMatrixTopNControlGeneratedReports {
        oid         nlMatrixTopNControlEntry.5;
        type        Counter32;
        access      readonly;
        description 
           "The number of reports that have been generated by this entry.";
      };

      column nlMatrixTopNControlDuration {
        oid         nlMatrixTopNControlEntry.6;
        type        Integer32;
        access      readonly;
        description 
           "The number of seconds that this report has collected
            during the last sampling interval.
            
            When the associated nlMatrixTopNControlTimeRemaining object is
            set, this object shall be set by the probe to the
            same value and shall not be modified until the next
            time the nlMatrixTopNControlTimeRemaining is set.
            
            This value shall be zero if no reports have been
            requested for this nlMatrixTopNControlEntry.";
      };

      column nlMatrixTopNControlRequestedSize {
        oid         nlMatrixTopNControlEntry.7;
        type        Integer32 (0..2147483647);
        access      readwrite;
        default     150;
        description 
           "The maximum number of matrix entries requested for this report.
            
            When this object is created or modified, the probe
            should set nlMatrixTopNControlGrantedSize as closely to this
            object as possible for the particular probe
            implementation and available resources.";
      };

      column nlMatrixTopNControlGrantedSize {
        oid         nlMatrixTopNControlEntry.8;
        type        Integer32 (0..2147483647);
        access      readonly;
        description 
           "The maximum number of matrix entries in this report.
            
            When the associated nlMatrixTopNControlRequestedSize object is
            created or modified, the probe should set this
            object as closely to the requested value as
            possible for the particular implementation and
            available resources.  The probe must not lower this
            value except as a side-effect of a set to the associated
            nlMatrixTopNControlRequestedSize object.
            
            If the value of nlMatrixTopNControlRateBase is equal to
            nlMatrixTopNPkts, when the next topN report is generated,
            matrix entries with the highest value of nlMatrixTopNPktRate
            shall be placed in this table in decreasing order of this rate
            until there is no more room or until there are no more
            matrix entries.
            
            If the value of nlMatrixTopNControlRateBase is equal to
            nlMatrixTopNOctets, when the next topN report is generated,
            matrix entries with the highest value of nlMatrixTopNOctetRate
            shall be placed in this table in decreasing order of this rate
            until there is no more room or until there are no more
            matrix entries.
            
            It is an implementation-specific matter how entries with the
            same value of nlMatrixTopNPktRate or nlMatrixTopNOctetRate are
            sorted.  It is also an implementation-specific matter as to
            
            
            
            whether zero-valued entries are available.";
      };

      column nlMatrixTopNControlStartTime {
        oid         nlMatrixTopNControlEntry.9;
        type        TimeStamp;
        access      readonly;
        description 
           "The value of sysUpTime when this topN report was
            last started.  In other words, this is the time that
            the associated nlMatrixTopNControlTimeRemaining object was
            modified to start the requested report or the time
            the report was last automatically (re)started.
            
            This object may be used by the management station to
            determine whether a report was missed.";
      };

      column nlMatrixTopNControlOwner {
        oid         nlMatrixTopNControlEntry.10;
        type        OwnerString;
        access      readwrite;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column nlMatrixTopNControlStatus {
        oid         nlMatrixTopNControlEntry.11;
        type        RowStatus;
        access      readwrite;
        description 
           "The status of this nlMatrixTopNControlEntry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.
            
            If this object is not equal to active(1), all
            associated entries in the nlMatrixTopNTable shall be deleted
            by the agent.";
      };
    };
  };

  table nlMatrixTopNTable {
    oid             nlMatrix.5;
    description     
       "A set of statistics for those network-layer matrix entries
        
        
        
        that have counted the highest number of octets or packets.";

    row nlMatrixTopNEntry {
      oid           nlMatrixTopNTable.1;
      index         (nlMatrixTopNControlIndex, nlMatrixTopNIndex);
      description   
         "A conceptual row in the nlMatrixTopNTable.
          
          The nlMatrixTopNControlIndex value in the index identifies the
          nlMatrixTopNControlEntry on whose behalf this entry was
          created.
          
          An example of the indexing of this table is
          nlMatrixTopNPktRate.3.10";

      column nlMatrixTopNIndex {
        oid         nlMatrixTopNEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "An index that uniquely identifies an entry in
            the nlMatrixTopNTable among those in the same report.
            This index is between 1 and N, where N is the
            number of entries in this report.
            
            If the value of nlMatrixTopNControlRateBase is equal to
            nlMatrixTopNPkts, increasing values of nlMatrixTopNIndex shall
            be assigned to entries with decreasing values of
            nlMatrixTopNPktRate until index N is assigned or there are no
            more nlMatrixTopNEntries.
            
            If the value of nlMatrixTopNControlRateBase is equal to
            nlMatrixTopNOctets, increasing values of nlMatrixTopNIndex
            
            
            
            shall be assigned to entries with decreasing values of
            nlMatrixTopNOctetRate until index N is assigned or there are
            no more nlMatrixTopNEntries.";
      };

      column nlMatrixTopNProtocolDirLocalIndex {
        oid         nlMatrixTopNEntry.2;
        type        Integer32 (1..2147483647);
        access      readonly;
        description 
           "The protocolDirLocalIndex of the network-layer protocol of
            this entry's network address.";
      };

      column nlMatrixTopNSourceAddress {
        oid         nlMatrixTopNEntry.3;
        type        OctetString (1..255);
        access      readonly;
        description 
           "The network-layer address of the source host in this
            conversation.
            
            This is represented as an octet string with
            specific semantics and length as identified
            by the associated nlMatrixTopNProtocolDirLocalIndex.
            
            For example, if the protocolDirLocalIndex indicates an
            encapsulation of IP, this object is encoded as a length
            octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column nlMatrixTopNDestAddress {
        oid         nlMatrixTopNEntry.4;
        type        OctetString (1..255);
        access      readonly;
        description 
           "The network-layer address of the destination host in this
            conversation.
            
            This is represented as an octet string with
            specific semantics and length as identified
            by the associated nlMatrixTopNProtocolDirLocalIndex.
            
            For example, if the nlMatrixTopNProtocolDirLocalIndex
            indicates an encapsulation of IP, this object is encoded as a
            length octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column nlMatrixTopNPktRate {
        oid         nlMatrixTopNEntry.5;
        type        Gauge32;
        access      readonly;
        description 
           "The number of packets seen from the source host
            to the destination host during this sampling interval, counted
            using the rules for counting the nlMatrixSDPkts object.
            If the value of nlMatrixTopNControlRateBase is
            nlMatrixTopNPkts, this variable will be used to sort this
            report.";
      };

      column nlMatrixTopNReversePktRate {
        oid         nlMatrixTopNEntry.6;
        type        Gauge32;
        access      readonly;
        description 
           "The number of packets seen from the destination host to the
            source host during this sampling interval, counted
            using the rules for counting the nlMatrixSDPkts object.  (Note
            that the corresponding nlMatrixSDPkts object selected is the
            one whose source address is equal to nlMatrixTopNDestAddress
            and whose destination address is equal to
            nlMatrixTopNSourceAddress.)
            
            Note that if the value of nlMatrixTopNControlRateBase is equal
            to nlMatrixTopNPkts, the sort of topN entries is based
            entirely on nlMatrixTopNPktRate, and not on the value of this
            object.";
      };

      column nlMatrixTopNOctetRate {
        oid         nlMatrixTopNEntry.7;
        type        Gauge32;
        access      readonly;
        description 
           "The number of octets seen from the source host
            to the destination host during this sampling interval, counted
            using the rules for counting the nlMatrixSDOctets object.  If
            the value of nlMatrixTopNControlRateBase is
            nlMatrixTopNOctets, this variable will be used to sort this
            report.";
      };

      column nlMatrixTopNReverseOctetRate {
        oid         nlMatrixTopNEntry.8;
        type        Gauge32;
        access      readonly;
        description 
           "The number of octets seen from the destination host to the
            source host during this sampling interval, counted
            using the rules for counting the nlMatrixDSOctets object.  (Note
            that the corresponding nlMatrixSDOctets object selected is the
            one whose source address is equal to nlMatrixTopNDestAddress
            and whose destination address is equal to
            nlMatrixTopNSourceAddress.)
            
            Note that if the value of nlMatrixTopNControlRateBase is equal
            to nlMatrixTopNOctets, the sort of topN entries is based
            entirely on nlMatrixTopNOctetRate, and not on the value of
            this object.";
      };
    };
  };

  node alHost {
    oid             rmon.16;
  };

  table alHostTable {
    oid             alHost.1;
    description     
       "A collection of statistics for a particular protocol from a
        particular network address that has been discovered on an
        interface of this device.
        
        The probe will populate this table for all protocols in the
        protocol directory table whose value of
        protocolDirHostConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirHostConfig value of supportedOff(2).
        
        
        
        The probe will add to this table all addresses
        seen as the source or destination address in all packets with
        no MAC errors and will increment octet and packet counts in
        the table for all packets with no MAC errors.  Further,
        entries will only be added to this table if their address
        exists in the nlHostTable and will be deleted from this table
        if their address is deleted from the nlHostTable.";

    row alHostEntry {
      oid           alHostTable.1;
      index         (hlHostControlIndex, alHostTimeMark, 
                     protocolDirLocalIndex, nlHostAddress, 
                     protocolDirLocalIndex);
      description   
         "A conceptual row in the alHostTable.
          
          The hlHostControlIndex value in the index identifies the
          hlHostControlEntry on whose behalf this entry was created.
          The first protocolDirLocalIndex value in the index identifies
          the network-layer protocol of the address.
          The nlHostAddress value in the index identifies the network-
          layer address of this entry.
          The second protocolDirLocalIndex value in the index identifies
          the protocol that is counted by this entry.
          
          An example of the indexing in this entry is
          alHostOutPkts.1.783495.18.4.128.2.6.6.34.
          
          Note that some combinations of index values may result in an
          index that exceeds 128 sub-identifiers in length, which exceeds
          the maximum for the SNMP protocol.  Implementations should take
          care to avoid such combinations.";

      column alHostTimeMark {
        oid         alHostEntry.1;
        type        TimeFilter;
        access      noaccess;
        description 
           "A TimeFilter for this entry.  See the TimeFilter textual
            convention to see how this works.";
      };

      column alHostInPkts {
        oid         alHostEntry.2;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets of this protocol type without errors
            transmitted to this address since it was added to the
            alHostTable.  Note that this is the number of link-layer
            packets, so if a single network-layer packet is fragmented
            into several link-layer frames, this counter is incremented
            several times.";
      };

      column alHostOutPkts {
        oid         alHostEntry.3;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets of this protocol type without errors
            transmitted by this address since it was added to the
            alHostTable.  Note that this is the number of link-layer
            packets, so if a single network-layer packet is fragmented
            into several link-layer frames, this counter is incremented
            several times.";
      };

      column alHostInOctets {
        oid         alHostEntry.4;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of octets transmitted to this address
            of this protocol type since it was added to the
            alHostTable (excluding framing bits, but including
            FCS octets), excluding octets in packets that
            contained errors.
            
            Note that this doesn't count just those octets in the particular
            protocol frames but includes the entire packet that contained
            the protocol.";
      };

      column alHostOutOctets {
        oid         alHostEntry.5;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of octets transmitted by this address
            of this protocol type since it was added to the
            alHostTable (excluding framing bits, but including
            FCS octets), excluding octets in packets that
            contained errors.
            
            Note that this doesn't count just those octets in the particular
            protocol frames but includes the entire packet that contained
            the protocol.";
      };

      column alHostCreateTime {
        oid         alHostEntry.6;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this entry was last activated.
            This can be used by the management station to ensure that the
            entry has not been deleted and recreated between polls.";
      };
    };
  };

  node alMatrix {
    oid             rmon.17;
  };

  table alMatrixSDTable {
    oid             alMatrix.1;
    description     
       "A list of application traffic matrix entries that collect
        statistics for conversations of a particular protocol between
        two network-level addresses.  This table is indexed first by
        the source address and then by the destination address to make
        it convenient to collect all statistics from a particular
        address.
        
        The probe will populate this table for all protocols in the
        protocol directory table whose value of
        
        
        
        protocolDirMatrixConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirMatrixConfig value of supportedOff(2).
        
        The probe will add to this table all pairs of addresses for
        all protocols seen in all packets with no MAC errors and will
        increment octet and packet counts in the table for all packets
        with no MAC errors.  Further, entries will only be added to
        this table if their address pair exists in the nlMatrixSDTable
        and will be deleted from this table if the address pair is
        deleted from the nlMatrixSDTable.";

    row alMatrixSDEntry {
      oid           alMatrixSDTable.1;
      index         (hlMatrixControlIndex, alMatrixSDTimeMark, 
                     protocolDirLocalIndex, 
                     nlMatrixSDSourceAddress, 
                     nlMatrixSDDestAddress, 
                     protocolDirLocalIndex);
      description   
         "A conceptual row in the alMatrixSDTable.
          
          The hlMatrixControlIndex value in the index identifies the
          hlMatrixControlEntry on whose behalf this entry was created.
          The first protocolDirLocalIndex value in the index identifies
          the network-layer protocol of the nlMatrixSDSourceAddress and
          nlMatrixSDDestAddress.
          The nlMatrixSDSourceAddress value in the index identifies the
          network-layer address of the source host in this conversation.
          The nlMatrixSDDestAddress value in the index identifies the
          network-layer address of the destination host in this
          conversation.
          The second protocolDirLocalIndex value in the index identifies
          the protocol that is counted by this entry.
          
          An example of the indexing of this entry is
          alMatrixSDPkts.1.783495.18.4.128.2.6.6.4.128.2.6.7.34.
          
          Note that some combinations of index values may result in an
          index that exceeds 128 sub-identifiers in length, which exceeds
          the maximum for the SNMP protocol.  Implementations should take
          care to avoid such combinations.";

      column alMatrixSDTimeMark {
        oid         alMatrixSDEntry.1;
        type        TimeFilter;
        access      noaccess;
        description 
           "A TimeFilter for this entry.  See the TimeFilter textual
            convention to see how this works.";
      };

      column alMatrixSDPkts {
        oid         alMatrixSDEntry.2;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets of this protocol type without errors
            transmitted from the source address to the destination address
            since this entry was added to the alMatrixSDTable.  Note that
            this is the number of link-layer packets, so if a single
            network-layer packet is fragmented into several link-layer
            frames, this counter is incremented several times.";
      };

      column alMatrixSDOctets {
        oid         alMatrixSDEntry.3;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of octets in packets of this protocol type
            transmitted from the source address to the destination address
            since this entry was added to the alMatrixSDTable (excluding
            framing bits, but including FCS octets), excluding octets
            in packets that contained errors.
            
            Note that this doesn't count just those octets in the particular
            protocol frames but includes the entire packet that contained
            the protocol.";
      };

      column alMatrixSDCreateTime {
        oid         alMatrixSDEntry.4;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this entry was last activated.
            This can be used by the management station to ensure that the
            entry has not been deleted and recreated between polls.";
      };
    };
  };

  table alMatrixDSTable {
    oid             alMatrix.2;
    description     
       "A list of application traffic matrix entries that collect
        statistics for conversations of a particular protocol between
        two network-level addresses.  This table is indexed first by
        the destination address and then by the source address to make
        it convenient to collect all statistics to a particular
        address.
        
        The probe will populate this table for all protocols in the
        protocol directory table whose value of
        protocolDirMatrixConfig is equal to supportedOn(3), and
        will delete any entries whose protocolDirEntry is deleted or
        has a protocolDirMatrixConfig value of supportedOff(2).
        
        The probe will add to this table all pairs of addresses for
        all protocols seen in all packets with no MAC errors and will
        increment octet and packet counts in the table for all packets
        with no MAC errors.  Further, entries will only be added to
        this table if their address pair exists in the nlMatrixDSTable
        and will be deleted from this table if the address pair is
        deleted from the nlMatrixDSTable.";

    row alMatrixDSEntry {
      oid           alMatrixDSTable.1;
      index         (hlMatrixControlIndex, alMatrixDSTimeMark, 
                     protocolDirLocalIndex, 
                     nlMatrixDSDestAddress, 
                     nlMatrixDSSourceAddress, 
                     protocolDirLocalIndex);
      description   
         "A conceptual row in the alMatrixDSTable.
          
          The hlMatrixControlIndex value in the index identifies the
          hlMatrixControlEntry on whose behalf this entry was created.
          The first protocolDirLocalIndex value in the index identifies
          the network-layer protocol of the alMatrixDSSourceAddress and
          alMatrixDSDestAddress.
          The nlMatrixDSDestAddress value in the index identifies the
          network-layer address of the destination host in this
          
          
          
          conversation.
          The nlMatrixDSSourceAddress value in the index identifies the
          network-layer address of the source host in this conversation.
          The second protocolDirLocalIndex value in the index identifies
          the protocol that is counted by this entry.
          
          An example of the indexing of this entry is
          alMatrixDSPkts.1.783495.18.4.128.2.6.7.4.128.2.6.6.34.
          
          Note that some combinations of index values may result in an
          index that exceeds 128 sub-identifiers in length, which exceeds
          the maximum for the SNMP protocol.  Implementations should take
          care to avoid such combinations.";

      column alMatrixDSTimeMark {
        oid         alMatrixDSEntry.1;
        type        TimeFilter;
        access      noaccess;
        description 
           "A TimeFilter for this entry.  See the TimeFilter textual
            convention to see how this works.";
      };

      column alMatrixDSPkts {
        oid         alMatrixDSEntry.2;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of packets of this protocol type without errors
            transmitted from the source address to the destination address
            since this entry was added to the alMatrixDSTable.  Note that
            this is the number of link-layer packets, so if a single
            network-layer packet is fragmented into several link-layer
            frames, this counter is incremented several times.";
      };

      column alMatrixDSOctets {
        oid         alMatrixDSEntry.3;
        type        ZeroBasedCounter32;
        access      readonly;
        description 
           "The number of octets in packets of this protocol type
            transmitted from the source address to the destination address
            since this entry was added to the alMatrixDSTable (excluding
            framing bits, but including FCS octets), excluding octets
            in packets that contained errors.
            
            Note that this doesn't count just those octets in the particular
            protocol frames but includes the entire packet that contained
            the protocol.";
      };

      column alMatrixDSCreateTime {
        oid         alMatrixDSEntry.4;
        type        LastCreateTime;
        access      readonly;
        description 
           "The value of sysUpTime when this entry was last activated.
            This can be used by the management station to ensure that the
            entry has not been deleted and recreated between polls.";
      };
    };
  };

  table alMatrixTopNControlTable {
    oid             alMatrix.3;
    description     
       "A set of parameters that control the creation of a
        report of the top N matrix entries according to
        a selected metric.";

    row alMatrixTopNControlEntry {
      oid           alMatrixTopNControlTable.1;
      index         (alMatrixTopNControlIndex);
      create        ;
      description   
         "A conceptual row in the alMatrixTopNControlTable.
          
          An example of the indexing of this table is
          alMatrixTopNControlDuration.3";

      column alMatrixTopNControlIndex {
        oid         alMatrixTopNControlEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "An index that uniquely identifies an entry
            in the alMatrixTopNControlTable.  Each such
            entry defines one topN report prepared for
            one interface.";
      };

      column alMatrixTopNControlMatrixIndex {
        oid         alMatrixTopNControlEntry.2;
        type        Integer32 (1..65535);
        access      readwrite;
        description 
           "The alMatrix[SD/DS] table for which a topN report will be
            prepared on behalf of this entry.  The alMatrix[SD/DS] table
            is identified by the value of the hlMatrixControlIndex
            for that table - that value is used here to identify the
            particular table.
            
            This object may not be modified if the associated
            alMatrixTopNControlStatus object is equal to active(1).";
      };

      column alMatrixTopNControlRateBase {
        oid         alMatrixTopNControlEntry.3;
        type        Enumeration (alMatrixTopNTerminalsPkts(1), 
                      alMatrixTopNTerminalsOctets(2), 
                      alMatrixTopNAllPkts(3), 
                      alMatrixTopNAllOctets(4), 
                      alMatrixTopNTerminalsHighCapacityPkts(5), 
                      alMatrixTopNTerminalsHighCapacityOctets(6), 
                      alMatrixTopNAllHighCapacityPkts(7), 
                      alMatrixTopNAllHighCapacityOctets(8));
        access      readwrite;
        description 
           "This object controls which alMatrix[SD/DS] entry that the
            alMatrixTopNEntries are sorted by, which view of the matrix
            table that will be used, as well as which table the results
            will be reported in.
            
            The values alMatrixTopNTerminalsPkts,
            alMatrixTopNTerminalsOctets,
            alMatrixTopNTerminalsHighCapacityPkts, and
            alMatrixTopNTerminalsHighCapacityOctets cause collection
            only from protocols that have no child protocols that are
            counted.  The values alMatrixTopNAllPkts,
            alMatrixTopNAllOctets, alMatrixTopNAllHighCapacityPkts, and
            alMatrixTopNAllHighCapacityOctets cause collection from all
            alMatrix entries.
            
            This object may not be modified if the associated
            alMatrixTopNControlStatus object is equal to active(1).";
      };

      column alMatrixTopNControlTimeRemaining {
        oid         alMatrixTopNControlEntry.4;
        type        Integer32 (0..2147483647);
        access      readwrite;
        default     1800;
        description 
           "The number of seconds left in the report currently
            being collected.  When this object is modified by
            the management station, a new collection is started,
            possibly aborting a currently running report.  The
            new value is used as the requested duration of this
            report and is immediately loaded into the associated
            alMatrixTopNControlDuration object.
            
            When the report finishes, the probe will automatically
            start another collection with the same initial value
            of alMatrixTopNControlTimeRemaining.  Thus, the management
            station may simply read the resulting reports repeatedly,
            checking the startTime and duration each time to ensure that a
            report was not missed or that the report parameters were not
            changed.
            
            While the value of this object is non-zero, it decrements
            by one per second until it reaches zero.  At the time
            
            
            
            that this object decrements to zero, the report is made
            accessible in the alMatrixTopNTable, overwriting any report
            that may be there.
            
            When this object is modified by the management station, any
            associated entries in the alMatrixTopNTable shall be deleted.
            
            (Note that this is a different algorithm than the one used
            in the hostTopNTable).";
      };

      column alMatrixTopNControlGeneratedReports {
        oid         alMatrixTopNControlEntry.5;
        type        Counter32;
        access      readonly;
        description 
           "The number of reports that have been generated by this entry.";
      };

      column alMatrixTopNControlDuration {
        oid         alMatrixTopNControlEntry.6;
        type        Integer32;
        access      readonly;
        description 
           "The number of seconds that this report has collected
            during the last sampling interval.
            
            When the associated alMatrixTopNControlTimeRemaining object
            is set, this object shall be set by the probe to the
            same value and shall not be modified until the next
            time the alMatrixTopNControlTimeRemaining is set.
            
            This value shall be zero if no reports have been
            requested for this alMatrixTopNControlEntry.";
      };

      column alMatrixTopNControlRequestedSize {
        oid         alMatrixTopNControlEntry.7;
        type        Integer32 (0..2147483647);
        access      readwrite;
        default     150;
        description 
           "The maximum number of matrix entries requested for this report.
            
            When this object is created or modified, the probe
            should set alMatrixTopNControlGrantedSize as closely to this
            object as possible for the particular probe
            implementation and available resources.";
      };

      column alMatrixTopNControlGrantedSize {
        oid         alMatrixTopNControlEntry.8;
        type        Integer32 (0..2147483647);
        access      readonly;
        description 
           "The maximum number of matrix entries in this report.
            
            When the associated alMatrixTopNControlRequestedSize object
            is created or modified, the probe should set this
            object as closely to the requested value as
            possible for the particular implementation and
            available resources. The probe must not lower this
            value except as a side-effect of a set to the associated
            alMatrixTopNControlRequestedSize object.
            
            If the value of alMatrixTopNControlRateBase is equal to
            alMatrixTopNTerminalsPkts or alMatrixTopNAllPkts, when the
            next topN report is generated, matrix entries with the highest
            value of alMatrixTopNPktRate shall be placed in this table in
            decreasing order of this rate until there is no more room or
            until there are no more matrix entries.
            
            If the value of alMatrixTopNControlRateBase is equal to
            alMatrixTopNTerminalsOctets or alMatrixTopNAllOctets, when the
            next topN report is generated, matrix entries with the highest
            value of alMatrixTopNOctetRate shall be placed in this table
            in decreasing order of this rate until there is no more room
            or until there are no more matrix entries.
            
            It is an implementation-specific matter how entries with the
            same value of alMatrixTopNPktRate or alMatrixTopNOctetRate are
            sorted.  It is also an implementation-specific matter as to
            whether zero-valued entries are available.";
      };

      column alMatrixTopNControlStartTime {
        oid         alMatrixTopNControlEntry.9;
        type        TimeStamp;
        access      readonly;
        description 
           "The value of sysUpTime when this topN report was
            last started.  In other words, this is the time that
            the associated alMatrixTopNControlTimeRemaining object
            was modified to start the requested report or the time
            the report was last automatically (re)started.
            
            
            
            This object may be used by the management station to
            determine whether a report was missed.";
      };

      column alMatrixTopNControlOwner {
        oid         alMatrixTopNControlEntry.10;
        type        OwnerString;
        access      readwrite;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column alMatrixTopNControlStatus {
        oid         alMatrixTopNControlEntry.11;
        type        RowStatus;
        access      readwrite;
        description 
           "The status of this alMatrixTopNControlEntry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.
            
            If this object is not equal to active(1), all
            associated entries in the alMatrixTopNTable shall be
            deleted by the agent.";
      };
    };
  };

  table alMatrixTopNTable {
    oid             alMatrix.4;
    description     
       "A set of statistics for those application-layer matrix
        entries that have counted the highest number of octets or
        packets.";

    row alMatrixTopNEntry {
      oid           alMatrixTopNTable.1;
      index         (alMatrixTopNControlIndex, alMatrixTopNIndex);
      description   
         "A conceptual row in the alMatrixTopNTable.
          
          The alMatrixTopNControlIndex value in the index identifies
          the alMatrixTopNControlEntry on whose behalf this entry was
          created.
          
          
          
          An example of the indexing of this table is
          alMatrixTopNPktRate.3.10";

      column alMatrixTopNIndex {
        oid         alMatrixTopNEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "An index that uniquely identifies an entry in
            the alMatrixTopNTable among those in the same report.
            
            This index is between 1 and N, where N is the
            number of entries in this report.
            
            If the value of alMatrixTopNControlRateBase is equal to
            alMatrixTopNTerminalsPkts or alMatrixTopNAllPkts, increasing
            values of alMatrixTopNIndex shall be assigned to entries with
            decreasing values of alMatrixTopNPktRate until index N is
            assigned or there are no more alMatrixTopNEntries.
            
            If the value of alMatrixTopNControlRateBase is equal to
            alMatrixTopNTerminalsOctets or alMatrixTopNAllOctets,
            increasing values of alMatrixTopNIndex shall be assigned to
            entries with decreasing values of alMatrixTopNOctetRate until
            index N is assigned or there are no more alMatrixTopNEntries.";
      };

      column alMatrixTopNProtocolDirLocalIndex {
        oid         alMatrixTopNEntry.2;
        type        Integer32 (1..2147483647);
        access      readonly;
        description 
           "The protocolDirLocalIndex of the network-layer protocol of
            this entry's network address.";
      };

      column alMatrixTopNSourceAddress {
        oid         alMatrixTopNEntry.3;
        type        OctetString (1..255);
        access      readonly;
        description 
           "The network-layer address of the source host in this
            conversation.
            
            This is represented as an octet string with
            specific semantics and length as identified
            by the associated alMatrixTopNProtocolDirLocalIndex.
            
            For example, if the alMatrixTopNProtocolDirLocalIndex
            indicates an encapsulation of IP, this object is encoded as a
            length octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column alMatrixTopNDestAddress {
        oid         alMatrixTopNEntry.4;
        type        OctetString (1..255);
        access      readonly;
        description 
           "The network-layer address of the destination host in this
            conversation.
            
            This is represented as an octet string with
            specific semantics and length as identified
            by the associated alMatrixTopNProtocolDirLocalIndex.
            
            For example, if the alMatrixTopNProtocolDirLocalIndex
            indicates an encapsulation of IP, this object is encoded as a
            length octet of 4, followed by the 4 octets of the IP address,
            in network byte order.";
      };

      column alMatrixTopNAppProtocolDirLocalIndex {
        oid         alMatrixTopNEntry.5;
        type        Integer32 (1..2147483647);
        access      readonly;
        description 
           "The type of the protocol counted by this matrix entry.";
      };

      column alMatrixTopNPktRate {
        oid         alMatrixTopNEntry.6;
        type        Gauge32;
        access      readonly;
        description 
           "The number of packets seen of this protocol from the source
            host to the destination host during this sampling interval,
            counted using the rules for counting the alMatrixSDPkts
            object.
            
            If the value of alMatrixTopNControlRateBase is
            alMatrixTopNTerminalsPkts or alMatrixTopNAllPkts, this
            variable will be used to sort this report.";
      };

      column alMatrixTopNReversePktRate {
        oid         alMatrixTopNEntry.7;
        type        Gauge32;
        access      readonly;
        description 
           "The number of packets seen of this protocol from the
            destination host to the source host during this sampling
            interval, counted using the rules for counting the
            alMatrixDSPkts object.  (Note that the corresponding
            alMatrixSDPkts object selected is the one whose source address
            is equal to alMatrixTopNDestAddress and whose destination
            address is equal to alMatrixTopNSourceAddress.)
            
            Note that if the value of alMatrixTopNControlRateBase is equal
            to alMatrixTopNTerminalsPkts or alMatrixTopNAllPkts, the sort
            of topN entries is based entirely on alMatrixTopNPktRate, and
            not on the value of this object.";
      };

      column alMatrixTopNOctetRate {
        oid         alMatrixTopNEntry.8;
        type        Gauge32;
        access      readonly;
        description 
           "The number of octets seen of this protocol from the source
            host to the destination host during this sampling interval,
            counted using the rules for counting the alMatrixSDOctets
            object.
            
            If the value of alMatrixTopNControlRateBase is
            alMatrixTopNTerminalsOctets or alMatrixTopNAllOctets, this
            variable will be used to sort this report.";
      };

      column alMatrixTopNReverseOctetRate {
        oid         alMatrixTopNEntry.9;
        type        Gauge32;
        access      readonly;
        description 
           "The number of octets seen of this protocol from the
            destination host to the source host during this sampling
            interval, counted using the rules for counting the
            alMatrixDSOctets object.  (Note that the corresponding
            alMatrixSDOctets object selected is the one whose source
            address is equal to alMatrixTopNDestAddress and whose
            destination address is equal to alMatrixTopNSourceAddress.)
            
            Note that if the value of alMatrixTopNControlRateBase is equal
            to alMatrixTopNTerminalsOctets or alMatrixTopNAllOctets, the
            sort of topN entries is based entirely on
            alMatrixTopNOctetRate, and not on the value of this object.";
      };
    };
  };

  node usrHistory {
    oid             rmon.18;
  };

  table usrHistoryControlTable {
    oid             usrHistory.1;
    description     
       "A list of data-collection configuration entries.";

    row usrHistoryControlEntry {
      oid           usrHistoryControlTable.1;
      index         (usrHistoryControlIndex);
      create        ;
      description   
         "A list of parameters that set up a group of user-defined
          MIB objects to be sampled periodically (called a
          bucket-group).
          
          For example, an instance of usrHistoryControlInterval
          might be named usrHistoryControlInterval.1";

      column usrHistoryControlIndex {
        oid         usrHistoryControlEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "An index that uniquely identifies an entry in the
            usrHistoryControlTable.  Each such entry defines a
            set of samples at a particular interval for a specified
            set of MIB instances available from the managed system.";
      };

      column usrHistoryControlObjects {
        oid         usrHistoryControlEntry.2;
        type        Integer32 (1..65535);
        access      readwrite;
        description 
           "The number of MIB objects to be collected
            in the portion of usrHistoryTable associated with this
            usrHistoryControlEntry.
            
            This object may not be modified if the associated instance
            of usrHistoryControlStatus is equal to active(1).";
      };

      column usrHistoryControlBucketsRequested {
        oid         usrHistoryControlEntry.3;
        type        Integer32 (1..65535);
        access      readwrite;
        default     50;
        description 
           "The requested number of discrete time intervals
            over which data is to be saved in the part of the
            usrHistoryTable associated with this usrHistoryControlEntry.
            
            When this object is created or modified, the probe
            should set usrHistoryControlBucketsGranted as closely to
            this object as possible for the particular probe
            implementation and available resources.";
      };

      column usrHistoryControlBucketsGranted {
        oid         usrHistoryControlEntry.4;
        type        Integer32 (1..65535);
        access      readonly;
        description 
           "The number of discrete sampling intervals
            over which data shall be saved in the part of
            the usrHistoryTable associated with this
            usrHistoryControlEntry.
            
            When the associated usrHistoryControlBucketsRequested
            object is created or modified, the probe should set
            this object as closely to the requested value as
            possible for the particular probe implementation and
            available resources.  The probe must not lower this
            value except as a result of a modification to the associated
            usrHistoryControlBucketsRequested object.
            
            The associated usrHistoryControlBucketsRequested object
            should be set before or at the same time as this object
            to allow the probe to accurately estimate the resources
            required for this usrHistoryControlEntry.
            
            There will be times when the actual number of buckets
            associated with this entry is less than the value of
            this object.  In this case, at the end of each sampling
            interval, a new bucket will be added to the usrHistoryTable.
            
            When the number of buckets reaches the value of this object
            and a new bucket is to be added to the usrHistoryTable,
            the oldest bucket associated with this usrHistoryControlEntry
            shall be deleted by the agent so that the new bucket can be
            added.
            
            When the value of this object changes to a value less than
            the current value, entries are deleted from the
            usrHistoryTable associated with this usrHistoryControlEntry.
            Enough of the oldest of these entries shall be deleted by the
            agent so that their number remains less than or equal to the
            new value of this object.
            
            When the value of this object changes to a value greater
            than the current value, the number of associated usrHistory
            entries may be allowed to grow.";
      };

      column usrHistoryControlInterval {
        oid         usrHistoryControlEntry.5;
        type        Integer32 (1..2147483647);
        access      readwrite;
        default     1800;
        description 
           "The interval in seconds over which the data is
            sampled for each bucket in the part of the usrHistory
            table associated with this usrHistoryControlEntry.
            
            Because the counters in a bucket may overflow at their
            maximum value with no indication, a prudent manager will
            take into account the possibility of overflow in any of
            the associated counters.  It is important to consider the
            minimum time in which any counter could overflow on a
            particular media type and to set the usrHistoryControlInterval
            object to a value less than this interval.
            
            This object may not be modified if the associated
            usrHistoryControlStatus object is equal to active(1).";
      };

      column usrHistoryControlOwner {
        oid         usrHistoryControlEntry.6;
        type        OwnerString;
        access      readwrite;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column usrHistoryControlStatus {
        oid         usrHistoryControlEntry.7;
        type        RowStatus;
        access      readwrite;
        description 
           "The status of this variable history control entry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.
            
            If this object is not equal to active(1), all associated
            entries in the usrHistoryTable shall be deleted.";
      };
    };
  };

  table usrHistoryObjectTable {
    oid             usrHistory.2;
    description     
       "A list of data-collection configuration entries.";

    row usrHistoryObjectEntry {
      oid           usrHistoryObjectTable.1;
      index         (usrHistoryControlIndex, 
                     usrHistoryObjectIndex);
      create        ;
      description   
         "A list of MIB instances to be sampled periodically.
          
          Entries in this table are created when an associated
          usrHistoryControlObjects object is created.
          
          The usrHistoryControlIndex value in the index is
          that of the associated usrHistoryControlEntry.
          
          For example, an instance of usrHistoryObjectVariable might be
          usrHistoryObjectVariable.1.3";

      column usrHistoryObjectIndex {
        oid         usrHistoryObjectEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        description 
           "An index used to uniquely identify an entry in the
            usrHistoryObject table.  Each such entry defines a
            MIB instance to be collected periodically.";
      };

      column usrHistoryObjectVariable {
        oid         usrHistoryObjectEntry.2;
        type        ObjectIdentifier;
        access      readwrite;
        description 
           "The object identifier of the particular variable to be
            
            
            
            sampled.
            
            Only variables that resolve to an ASN.1 primitive type of
            Integer32 (Integer32, Counter, Gauge, or TimeTicks) may be
            sampled.
            
            Because SNMP access control is articulated entirely in terms
            of the contents of MIB views, no access control mechanism
            exists that can restrict the value of this object to identify
            only those objects that exist in a particular MIB view.
            Because there is thus no acceptable means of restricting the
            read access that could be obtained through the user history
            mechanism, the probe must only grant write access to this
            object in those views that have read access to all objects on
            the probe.  See USM [RFC3414] and VACM [RFC3415] for more
            information.
            
            During a set operation, if the supplied variable name is not
            available in the selected MIB view, a badValue error must be
            returned.
            
            This object may not be modified if the associated
            usrHistoryControlStatus object is equal to active(1).";
      };

      column usrHistoryObjectSampleType {
        oid         usrHistoryObjectEntry.3;
        type        Enumeration (absoluteValue(1), deltaValue(2));
        access      readwrite;
        description 
           "The method of sampling the selected variable for storage in
            the usrHistoryTable.
            
            If the value of this object is absoluteValue(1), the value of
            the selected variable will be copied directly into the history
            bucket.
            
            If the value of this object is deltaValue(2), the value of the
            selected variable at the last sample will be subtracted from
            the current value, and the difference will be stored in the
            history bucket.  If the associated usrHistoryObjectVariable
            instance could not be obtained at the previous sample
            interval, then a delta sample is not possible, and the value
            of the associated usrHistoryValStatus object for this interval
            will be valueNotAvailable(1).
            
            
            
            This object may not be modified if the associated
            usrHistoryControlStatus object is equal to active(1).";
      };
    };
  };

  table usrHistoryTable {
    oid             usrHistory.3;
    description     
       "A list of user-defined history entries.";

    row usrHistoryEntry {
      oid           usrHistoryTable.1;
      index         (usrHistoryControlIndex, 
                     usrHistorySampleIndex, 
                     usrHistoryObjectIndex);
      description   
         "A historical sample of user-defined variables.  This sample
          is associated with the usrHistoryControlEntry that set up the
          parameters for a regular collection of these samples.
          
          The usrHistoryControlIndex value in the index identifies the
          usrHistoryControlEntry on whose behalf this entry was created.
          The usrHistoryObjectIndex value in the index identifies the
          usrHistoryObjectEntry on whose behalf this entry was created.
          
          For example, an instance of usrHistoryAbsValue, which represents
          the 14th sample of a variable collected as specified by
          usrHistoryControlEntry.1 and usrHistoryObjectEntry.1.5,
          would be named usrHistoryAbsValue.1.14.5";

      column usrHistorySampleIndex {
        oid         usrHistoryEntry.1;
        type        Integer32 (1..2147483647);
        access      noaccess;
        description 
           "An index that uniquely identifies the particular sample this
            entry represents among all samples associated with the same
            usrHistoryControlEntry.  This index starts at 1 and increases
            by one as each new sample is taken.";
      };

      column usrHistoryIntervalStart {
        oid         usrHistoryEntry.2;
        type        TimeStamp;
        access      readonly;
        description 
           "The value of sysUpTime at the start of the interval over
            which this sample was measured.  If the probe keeps track of
            the time of day, it should start the first sample of the
            history at a time such that when the next hour of the day
            begins, a sample is started at that instant.
            
            Note that following this rule may require that the probe delay
            collecting the first sample of the history, as each sample
            must be of the same interval.  Also note that the sample that
            is currently being collected is not accessible in this table
            until the end of its interval.";
      };

      column usrHistoryIntervalEnd {
        oid         usrHistoryEntry.3;
        type        TimeStamp;
        access      readonly;
        description 
           "The value of sysUpTime at the end of the interval over which
            this sample was measured.";
      };

      column usrHistoryAbsValue {
        oid         usrHistoryEntry.4;
        type        Gauge32;
        access      readonly;
        description 
           "The absolute value (i.e., unsigned value) of the
            user-specified statistic during the last sampling period.  The
            value during the current sampling period is not made available
            until the period is completed.
            
            To obtain the true value for this sampling interval, the
            associated instance of usrHistoryValStatus must be checked,
            and usrHistoryAbsValue adjusted as necessary.
            
            
            
            
            If the MIB instance could not be accessed during the sampling
            interval, then this object will have a value of zero, and the
            associated instance of usrHistoryValStatus will be set to
            'valueNotAvailable(1)'.
            
            The access control check prescribed in the definition of
            usrHistoryObjectVariable SHOULD be checked for each sampling
            interval.  If this check determines that access should not be
            allowed, then this object will have a value of zero, and the
            associated instance of usrHistoryValStatus will be set to
            'valueNotAvailable(1)'.";
      };

      column usrHistoryValStatus {
        oid         usrHistoryEntry.5;
        type        Enumeration (valueNotAvailable(1), 
                      valuePositive(2), valueNegative(3));
        access      readonly;
        description 
           "This object indicates the validity and sign of the data in
            the associated instance of usrHistoryAbsValue.
            
            If the MIB instance could not be accessed during the sampling
            interval, then 'valueNotAvailable(1)' will be returned.
            
            If the sample is valid and the actual value of the sample is
            greater than or equal to zero, then 'valuePositive(2)' is
            returned.
            
            If the sample is valid and the actual value of the sample is
            less than zero, 'valueNegative(3)' will be returned.  The
            associated instance of usrHistoryAbsValue should be multiplied
            by -1 to obtain the true sample value.";
      };
    };
  };

  node probeConfig {
    oid             rmon.19;
  };

  scalar probeCapabilities {
    oid             probeConfig.1;
    type            Bits (etherStats(0), historyControl(1), 
                      etherHistory(2), alarm(3), hosts(4), 
                      hostTopN(5), matrix(6), filter(7), 
                      capture(8), event(9), tokenRingMLStats(10), 
                      tokenRingPStats(11), 
                      tokenRingMLHistory(12), 
                      tokenRingPHistory(13), ringStation(14), 
                      ringStationOrder(15), 
                      ringStationConfig(16), sourceRouting(17), 
                      protocolDirectory(18), 
                      protocolDistribution(19), 
                      addressMapping(20), nlHost(21), 
                      nlMatrix(22), alHost(23), alMatrix(24), 
                      usrHistory(25), probeConfig(26));
    access          readonly;
    description     
       "An indication of the RMON MIB groups supported
        on at least one interface by this probe.";
  };

  scalar probeSoftwareRev {
    oid             probeConfig.2;
    type            DisplayString (0..15);
    access          readonly;
    description     
       "The software revision of this device.  This string will have
        a zero length if the revision is unknown.";
  };

  scalar probeHardwareRev {
    oid             probeConfig.3;
    type            DisplayString (0..31);
    access          readonly;
    description     
       "The hardware revision of this device.  This string will have
        a zero length if the revision is unknown.";
  };

  scalar probeDateTime {
    oid             probeConfig.4;
    type            OctetString (0 | 8 | 11);
    access          readwrite;
    description     
       "Probe's current date and time.
        
        field  octets  contents                  range
        -----  ------  --------                  -----
          1      1-2   year                      0..65536
          2       3    month                     1..12
          3       4    day                       1..31
          4       5    hour                      0..23
          5       6    minutes                   0..59
          6       7    seconds                   0..60
                        (use 60 for leap-second)
          7       8    deci-seconds              0..9
          8       9    direction from UTC        '+' / '-'
          9      10    hours from UTC            0..11
         10      11    minutes from UTC          0..59
        
        For example, Tuesday May 26, 1992 at 1:30:15 PM
        EDT would be displayed as:
        
                    1992-5-26,13:30:15.0,-4:0
        
        Note that if only local time is known, then
        time zone information (fields 8-10) is not
        present, and that if no time information is known, the
        null string is returned.";
  };

  scalar probeResetControl {
    oid             probeConfig.5;
    type            Enumeration (running(1), warmBoot(2), 
                      coldBoot(3));
    access          readwrite;
    description     
       "Setting this object to warmBoot(2) causes the device to
        restart the application software with current configuration
        parameters saved in non-volatile memory.  Setting this
        object to coldBoot(3) causes the device to reinitialize
        configuration parameters in non-volatile memory to default
        values and to restart the application software.  When the device
        is running normally, this variable has a value of
        running(1).";
  };

  scalar probeDownloadFile {
    oid             probeConfig.6;
    type            DisplayString (0..127);
    access          readwrite;
    status          deprecated;
    description     
       "The file name to be downloaded from the TFTP server when a
        download is next requested via this MIB.  This value is set to
        the zero-length string when no file name has been specified.
        
        This object has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability to
        meet the requirements of a Draft Standard.";
  };

  scalar probeDownloadTFTPServer {
    oid             probeConfig.7;
    type            IpAddress;
    access          readwrite;
    status          deprecated;
    description     
       "The IP address of the TFTP server that contains the boot
        image to load when a download is next requested via this MIB.
        This value is set to '0.0.0.0' when no IP address has been
        
        
        
        specified.
        
        This object has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability to
        meet the requirements of a Draft Standard.";
  };

  scalar probeDownloadAction {
    oid             probeConfig.8;
    type            Enumeration (notDownloading(1), 
                      downloadToPROM(2), downloadToRAM(3));
    access          readwrite;
    status          deprecated;
    description     
       "When this object is set to downloadToRAM(3) or
        downloadToPROM(2), the device will discontinue its
        normal operation and begin download of the image specified
        by probeDownloadFile from the server specified by
        probeDownloadTFTPServer using the TFTP protocol.  If
        downloadToRAM(3) is specified, the new image is copied
        to RAM only (the old image remains unaltered in the flash
        EPROM).  If downloadToPROM(2) is specified,
        the new image is written to the flash EPROM
        memory after its checksum has been verified to be correct.
        When the download process is completed, the device will
        warm boot to restart the newly loaded application.
        When the device is not downloading, this object will have
        a value of notDownloading(1).
        
        This object has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability to
        meet the requirements of a Draft Standard.";
  };

  scalar probeDownloadStatus {
    oid             probeConfig.9;
    type            Enumeration (downloadSuccess(1), 
                      downloadStatusUnknown(2), 
                      downloadGeneralError(3), 
                      downloadNoResponseFromServer(4), 
                      downloadChecksumError(5), 
                      downloadIncompatibleImage(6), 
                      downloadTftpFileNotFound(7), 
                      downloadTftpAccessViolation(8));
    access          readonly;
    status          deprecated;
    description     
       "The status of the last download procedure, if any.  This
        object will have a value of downloadStatusUnknown(2) if no
        download process has been performed.
        
        This object has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability to
        meet the requirements of a Draft Standard.";
  };

  table serialConfigTable {
    oid             probeConfig.10;
    status          deprecated;
    description     
       "A table of serial interface configuration entries.  This data
        will be stored in non-volatile memory and preserved across
        probe resets or power loss.
        
        This table has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability to
        meet the requirements of a Draft Standard.";

    row serialConfigEntry {
      oid           serialConfigTable.1;
      index         (ifIndex);
      create        ;
      status        deprecated;
      description   
         "A set of configuration parameters for a particular
          serial interface on this device.  If the device has no serial
          interfaces, this table is empty.
          
          The index is composed of the ifIndex assigned to this serial
          line interface.";

      column serialMode {
        oid         serialConfigEntry.1;
        type        Enumeration (direct(1), modem(2));
        access      readwrite;
        default     direct;
        status      deprecated;
        description 
           "The type of incoming connection to be expected on this
            serial interface.";
      };

      column serialProtocol {
        oid         serialConfigEntry.2;
        type        Enumeration (other(1), slip(2), ppp(3));
        access      readwrite;
        default     slip;
        status      deprecated;
        description 
           "The type of data link encapsulation to be used on this
            serial interface.";
      };

      column serialTimeout {
        oid         serialConfigEntry.3;
        type        Integer32 (1..65535);
        access      readwrite;
        default     300;
        status      deprecated;
        description 
           "This timeout value is used when the Management Station has
            initiated the conversation over the serial link.  This variable
            represents the number of seconds of inactivity allowed before
            terminating the connection on this serial interface.  Use the
            serialDialoutTimeout in the case where the probe has initiated
            the connection for the purpose of sending a trap.";
      };

      column serialModemInitString {
        oid         serialConfigEntry.4;
        type        ControlString (0..255);
        access      readwrite;
        status      deprecated;
        description 
           "A control string that controls how a modem attached to this
            serial interface should be initialized.  The initialization
            is performed once during startup and again after each
            connection is terminated if the associated serialMode has the
            value of modem(2).
            
            A control string that is appropriate for a wide variety of
            modems is: '^s^MATE0Q0V1X4 S0=1 S2=43^M'.";
      };

      column serialModemHangUpString {
        oid         serialConfigEntry.5;
        type        ControlString (0..255);
        access      readwrite;
        status      deprecated;
        description 
           "A control string that specifies how to disconnect a modem
            connection on this serial interface.  This object is only
            meaningful if the associated serialMode has the value
            of modem(2).
            
            A control string that is appropriate for a wide variety of
            modems is: '^d2^s+++^d2^sATH0^M^d2'.";
      };

      column serialModemConnectResp {
        oid         serialConfigEntry.6;
        type        DisplayString (0..255);
        access      readwrite;
        status      deprecated;
        description 
           "An ASCII string containing substrings that describe the
            expected modem connection response code and associated bps
            rate.  The substrings are delimited by the first character
            in the string, for example:
               /CONNECT/300/CONNECT 1200/1200/CONNECT 2400/2400/
               CONNECT 4800/4800/CONNECT 9600/9600
            will be interpreted as:
                response code    bps rate
                CONNECT            300
                CONNECT 1200      1200
                CONNECT 2400      2400
                CONNECT 4800      4800
                CONNECT 9600      9600
            The agent will use the information in this string to adjust
            the bps rate of this serial interface once a modem connection
            is established.
            
            A value that is appropriate for a wide variety of modems is:
            
            
            
            '/CONNECT/300/CONNECT 1200/1200/CONNECT 2400/2400/
             CONNECT 4800/4800/CONNECT 9600/9600/CONNECT 14400/14400/
            CONNECT 19200/19200/CONNECT 38400/38400/'.";
      };

      column serialModemNoConnectResp {
        oid         serialConfigEntry.7;
        type        DisplayString (0..255);
        access      readwrite;
        status      deprecated;
        description 
           "An ASCII string containing response codes that may be
            generated by a modem to report the reason why a connection
            attempt has failed.  The response codes are delimited by
            the first character in the string, for example:
               /NO CARRIER/BUSY/NO DIALTONE/NO ANSWER/ERROR/
            
            If one of these response codes is received via this serial
            interface while attempting to make a modem connection,
            the agent will issue the hang up command as specified by
            serialModemHangUpString.
            
            A value that is appropriate for a wide variety of modems is:
            '/NO CARRIER/BUSY/NO DIALTONE/NO ANSWER/ERROR/'.";
      };

      column serialDialoutTimeout {
        oid         serialConfigEntry.8;
        type        Integer32 (1..65535);
        access      readwrite;
        default     20;
        status      deprecated;
        description 
           "This timeout value is used when the probe initiates the
            serial connection with the intention of contacting a
            management station.  This variable represents the number
            of seconds of inactivity allowed before terminating the
            connection on this serial interface.";
      };

      column serialStatus {
        oid         serialConfigEntry.9;
        type        RowStatus;
        access      readwrite;
        status      deprecated;
        description 
           "The status of this serialConfigEntry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.";
      };
    };
  };

  table netConfigTable {
    oid             probeConfig.11;
    status          deprecated;
    description     
       "A table of netConfigEntries.
        
        This table has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability to
        meet the requirements of a Draft Standard.";

    row netConfigEntry {
      oid           netConfigTable.1;
      index         (ifIndex);
      create        ;
      status        deprecated;
      description   
         "A set of configuration parameters for a particular
          network interface on this device.  If the device has no network
          interface, this table is empty.
          
          The index is composed of the ifIndex assigned to the
          corresponding interface.";

      column netConfigIPAddress {
        oid         netConfigEntry.1;
        type        IpAddress;
        access      readwrite;
        status      deprecated;
        description 
           "The IP address of this Net interface.  The default value
            for this object is 0.0.0.0.  If either the netConfigIPAddress
            or netConfigSubnetMask is 0.0.0.0, then when the device
            boots, it may use BOOTP to try to figure out what these
            values should be.  If BOOTP fails before the device
            can talk on the network, this value must be configured
            (e.g., through a terminal attached to the device).  If BOOTP is
            used, care should be taken to not send BOOTP broadcasts too
            frequently and to eventually send them very infrequently if no
            replies are received.";
      };

      column netConfigSubnetMask {
        oid         netConfigEntry.2;
        type        IpAddress;
        access      readwrite;
        status      deprecated;
        description 
           "The subnet mask of this Net interface.  The default value
            for this object is 0.0.0.0.  If either the netConfigIPAddress
            or netConfigSubnetMask is 0.0.0.0, then when the device
            boots, it may use BOOTP to try to figure out what these
            values should be.  If BOOTP fails before the device
            can talk on the network, this value must be configured
            (e.g., through a terminal attached to the device).  If BOOTP is
            used, care should be taken to not send BOOTP broadcasts too
            frequently and to eventually send them very infrequently if no
            replies are received.";
      };

      column netConfigStatus {
        oid         netConfigEntry.3;
        type        RowStatus;
        access      readwrite;
        status      deprecated;
        description 
           "The status of this netConfigEntry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.";
      };
    };
  };

  scalar netDefaultGateway {
    oid             probeConfig.12;
    type            IpAddress;
    access          readwrite;
    status          deprecated;
    description     
       "The IP Address of the default gateway.  If this value is
        undefined or unknown, it shall have the value 0.0.0.0.";
  };

  table trapDestTable {
    oid             probeConfig.13;
    status          deprecated;
    description     
       "A list of trap destination entries.";

    row trapDestEntry {
      oid           trapDestTable.1;
      index         (trapDestIndex);
      create        ;
      status        deprecated;
      description   
         "This entry includes a destination IP address to which
          traps are sent for this community.";

      column trapDestIndex {
        oid         trapDestEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        status      deprecated;
        description 
           "A value that uniquely identifies this trapDestEntry.";
      };

      column trapDestCommunity {
        oid         trapDestEntry.2;
        type        OctetString (0..127);
        access      readwrite;
        status      deprecated;
        description 
           "A community to which this destination address belongs.
            This entry is associated with any eventEntries in the RMON
            MIB whose value of eventCommunity is equal to the value of
            this object.  Every time an associated event entry sends a
            trap due to an event, that trap will be sent to each
            
            
            
            address in the trapDestTable with a trapDestCommunity equal
            to eventCommunity, as long as no access control mechanism
            precludes it (e.g., VACM).
            
            This object may not be modified if the associated
            trapDestStatus object is equal to active(1).";
      };

      column trapDestProtocol {
        oid         trapDestEntry.3;
        type        Enumeration (ip(1), ipx(2));
        access      readwrite;
        status      deprecated;
        description 
           "The protocol with which this trap is to be sent.";
      };

      column trapDestAddress {
        oid         trapDestEntry.4;
        type        OctetString;
        access      readwrite;
        status      deprecated;
        description 
           "The destination address for traps on behalf of this entry.
            
            If the associated trapDestProtocol object is equal to ip(1),
            the encoding of this object is the same as the snmpUDPAddress
            textual convention in RFC 3417, 'Transport Mappings for the
             Simple Network Management Protocol (SNMP)' [RFC3417]:
              -- for a SnmpUDPAddress of length 6:
              --
              -- octets   contents        encoding
              --  1-4     IP-address      network-byte order
              --  5-6     UDP-port        network-byte order
            
            If the associated trapDestProtocol object is equal to ipx(2),
            the encoding of this object is the same as the snmpIPXAddress
            textual convention in RFC 3417, 'Transport Mappings for the
             Simple Network Management Protocol (SNMP)' [RFC3417]:
              -- for a SnmpIPXAddress of length 12:
              --
              -- octets   contents            encoding
              --  1-4     network-number      network-byte order
              --  5-10    physical-address    network-byte order
              -- 11-12    socket-number       network-byte order
            
            This object may not be modified if the associated
            
            
            
            trapDestStatus object is equal to active(1).";
      };

      column trapDestOwner {
        oid         trapDestEntry.5;
        type        OwnerString;
        access      readwrite;
        status      deprecated;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column trapDestStatus {
        oid         trapDestEntry.6;
        type        RowStatus;
        access      readwrite;
        status      deprecated;
        description 
           "The status of this trap destination entry.
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.";
      };
    };
  };

  table serialConnectionTable {
    oid             probeConfig.14;
    status          deprecated;
    description     
       "A list of serialConnectionEntries.
        
        This table has been deprecated, as it has not had enough
        independent implementations to demonstrate interoperability
        to meet the requirements of a Draft Standard.";

    row serialConnectionEntry {
      oid           serialConnectionTable.1;
      index         (serialConnectIndex);
      create        ;
      status        deprecated;
      description   
         "Configuration for a SLIP link over a serial line.";

      column serialConnectIndex {
        oid         serialConnectionEntry.1;
        type        Integer32 (1..65535);
        access      noaccess;
        status      deprecated;
        description 
           "A value that uniquely identifies this serialConnection
            entry.";
      };

      column serialConnectDestIpAddress {
        oid         serialConnectionEntry.2;
        type        IpAddress;
        access      readwrite;
        status      deprecated;
        description 
           "The IP Address that can be reached at the other end of this
            serial connection.
            
            This object may not be modified if the associated
            serialConnectStatus object is equal to active(1).";
      };

      column serialConnectType {
        oid         serialConnectionEntry.3;
        type        Enumeration (direct(1), modem(2), switch(3), 
                      modemSwitch(4));
        access      readwrite;
        default     direct;
        status      deprecated;
        description 
           "The type of outgoing connection to be made.  If this object
            has the value direct(1), then a direct serial connection
            is assumed.  If this object has the value modem(2),
            then serialConnectDialString will be used to make a modem
            connection.  If this object has the value switch(3),
            then serialConnectSwitchConnectSeq will be used to establish
            the connection over a serial data switch, and
            serialConnectSwitchDisconnectSeq will be used to terminate
            the connection.  If this object has the value
            modem-switch(4), then a modem connection will be made first,
            followed by the switch connection.
            
            This object may not be modified if the associated
            serialConnectStatus object is equal to active(1).";
      };

      column serialConnectDialString {
        oid         serialConnectionEntry.4;
        type        ControlString (0..255);
        access      readwrite;
        status      deprecated;
        description 
           "A control string that specifies how to dial the phone
            number in order to establish a modem connection.  The
            string should include the dialing prefix and suffix.  For
            example: '^s^MATD9,888-1234^M' will instruct the Probe
            to send a carriage return, followed by the dialing prefix
            'ATD', the phone number '9,888-1234', and a carriage
            return as the dialing suffix.
            
            This object may not be modified if the associated
            serialConnectStatus object is equal to active(1).";
      };

      column serialConnectSwitchConnectSeq {
        oid         serialConnectionEntry.5;
        type        ControlString (0..255);
        access      readwrite;
        status      deprecated;
        description 
           "A control string that specifies how to establish a
            data switch connection.
            
            This object may not be modified if the associated
            serialConnectStatus object is equal to active(1).";
      };

      column serialConnectSwitchDisconnectSeq {
        oid         serialConnectionEntry.6;
        type        ControlString (0..255);
        access      readwrite;
        status      deprecated;
        description 
           "A control string that specifies how to terminate a
            data switch connection.
            
            This object may not be modified if the associated
            serialConnectStatus object is equal to active(1).";
      };

      column serialConnectSwitchResetSeq {
        oid         serialConnectionEntry.7;
        type        ControlString (0..255);
        access      readwrite;
        status      deprecated;
        description 
           "A control string that specifies how to reset a data
            switch in the event of a timeout.
            
            This object may not be modified if the associated
            serialConnectStatus object is equal to active(1).";
      };

      column serialConnectOwner {
        oid         serialConnectionEntry.8;
        type        OwnerString;
        access      readwrite;
        status      deprecated;
        description 
           "The entity that configured this entry and is
            therefore using the resources assigned to it.";
      };

      column serialConnectStatus {
        oid         serialConnectionEntry.9;
        type        RowStatus;
        access      readwrite;
        status      deprecated;
        description 
           "The status of this serialConnectionEntry.
            
            If the manager attempts to set this object to active(1) when
            the serialConnectType is set to modem(2) or modem-switch(4)
            and the serialConnectDialString is a zero-length string or
            cannot be correctly parsed as a ConnectString, the set
            request will be rejected with badValue(3).
            
            If the manager attempts to set this object to active(1) when
            the serialConnectType is set to switch(3) or modem-switch(4)
            and the serialConnectSwitchConnectSeq,
            the serialConnectSwitchDisconnectSeq, or
            
            
            
            the serialConnectSwitchResetSeq is a zero-length string
            or cannot be correctly parsed as a ConnectString, the set
            request will be rejected with badValue(3).
            
            An entry may not exist in the active state unless all
            objects in the entry have an appropriate value.";
      };
    };
  };

  node rmonConformance {
    oid             rmon.20;
  };

  node rmon2MIBCompliances {
    oid             rmonConformance.1;
  };

  node rmon2MIBGroups {
    oid             rmonConformance.2;
  };

//
// GROUP DEFINITIONS
//

  group protocolDirectoryGroup {
    oid             rmon2MIBGroups.1;
    members         (protocolDirLastChange, 
                     protocolDirLocalIndex, protocolDirDescr, 
                     protocolDirType, 
                     protocolDirAddressMapConfig, 
                     protocolDirHostConfig, 
                     protocolDirMatrixConfig, protocolDirOwner, 
                     protocolDirStatus);
    description     
       "Lists the inventory of protocols the probe has the
        capability of monitoring and allows the addition, deletion,
        and configuration of entries in this list.";
  };

  group protocolDistributionGroup {
    oid             rmon2MIBGroups.2;
    members         (protocolDistControlDataSource, 
                     protocolDistControlDroppedFrames, 
                     protocolDistControlCreateTime, 
                     protocolDistControlOwner, 
                     protocolDistControlStatus, 
                     protocolDistStatsPkts, 
                     protocolDistStatsOctets);
    description     
       "Collects the relative amounts of octets and packets for the
        different protocols detected on a network segment.";
  };

  group addressMapGroup {
    oid             rmon2MIBGroups.3;
    members         (addressMapInserts, addressMapDeletes, 
                     addressMapMaxDesiredEntries, 
                     addressMapControlDataSource, 
                     addressMapControlDroppedFrames, 
                     addressMapControlOwner, 
                     addressMapControlStatus, 
                     addressMapPhysicalAddress, 
                     addressMapLastChange);
    description     
       "Lists MAC address to network address bindings discovered by
        the probe and what interface they were last seen on.";
  };

  group nlHostGroup {
    oid             rmon2MIBGroups.4;
    members         (hlHostControlDataSource, 
                     hlHostControlNlDroppedFrames, 
                     hlHostControlNlInserts, 
                     hlHostControlNlDeletes, 
                     hlHostControlNlMaxDesiredEntries, 
                     hlHostControlAlDroppedFrames, 
                     hlHostControlAlInserts, 
                     hlHostControlAlDeletes, 
                     hlHostControlAlMaxDesiredEntries, 
                     hlHostControlOwner, hlHostControlStatus, 
                     nlHostInPkts, nlHostOutPkts, nlHostInOctets, 
                     nlHostOutOctets, nlHostOutMacNonUnicastPkts, 
                     nlHostCreateTime);
    description     
       "Counts the amount of traffic sent from and to each network
        address discovered by the probe.  Note that while the
        hlHostControlTable also has objects that control an optional
        alHostTable, implementation of the alHostTable is not
        required to fully implement this group.";
  };

  group nlMatrixGroup {
    oid             rmon2MIBGroups.5;
    members         (hlMatrixControlDataSource, 
                     hlMatrixControlNlDroppedFrames, 
                     hlMatrixControlNlInserts, 
                     hlMatrixControlNlDeletes, 
                     hlMatrixControlNlMaxDesiredEntries, 
                     hlMatrixControlAlDroppedFrames, 
                     hlMatrixControlAlInserts, 
                     hlMatrixControlAlDeletes, 
                     hlMatrixControlAlMaxDesiredEntries, 
                     hlMatrixControlOwner, hlMatrixControlStatus, 
                     nlMatrixSDPkts, nlMatrixSDOctets, 
                     nlMatrixSDCreateTime, nlMatrixDSPkts, 
                     nlMatrixDSOctets, nlMatrixDSCreateTime, 
                     nlMatrixTopNControlMatrixIndex, 
                     nlMatrixTopNControlRateBase, 
                     nlMatrixTopNControlTimeRemaining, 
                     nlMatrixTopNControlGeneratedReports, 
                     nlMatrixTopNControlDuration, 
                     nlMatrixTopNControlRequestedSize, 
                     nlMatrixTopNControlGrantedSize, 
                     nlMatrixTopNControlStartTime, 
                     nlMatrixTopNControlOwner, 
                     nlMatrixTopNControlStatus, 
                     nlMatrixTopNProtocolDirLocalIndex, 
                     nlMatrixTopNSourceAddress, 
                     nlMatrixTopNDestAddress, 
                     nlMatrixTopNPktRate, 
                     nlMatrixTopNReversePktRate, 
                     nlMatrixTopNOctetRate, 
                     nlMatrixTopNReverseOctetRate);
    description     
       "Counts the amount of traffic sent between each pair of
        network addresses discovered by the probe.  Note that while
        the hlMatrixControlTable also has objects that control
        optional alMatrixTables, implementation of the
        alMatrixTables is not required to fully implement this
        group.";
  };

  group alHostGroup {
    oid             rmon2MIBGroups.6;
    members         (alHostInPkts, alHostOutPkts, alHostInOctets, 
                     alHostOutOctets, alHostCreateTime);
    description     
       "Counts the amount of traffic, by protocol, sent from and to
        each network address discovered by the probe.  Implementation
        of this group requires implementation of the Network-Layer
        Host Group.";
  };

  group alMatrixGroup {
    oid             rmon2MIBGroups.7;
    members         (alMatrixSDPkts, alMatrixSDOctets, 
                     alMatrixSDCreateTime, alMatrixDSPkts, 
                     alMatrixDSOctets, alMatrixDSCreateTime, 
                     alMatrixTopNControlMatrixIndex, 
                     alMatrixTopNControlRateBase, 
                     alMatrixTopNControlTimeRemaining, 
                     alMatrixTopNControlGeneratedReports, 
                     alMatrixTopNControlDuration, 
                     alMatrixTopNControlRequestedSize, 
                     alMatrixTopNControlGrantedSize, 
                     alMatrixTopNControlStartTime, 
                     alMatrixTopNControlOwner, 
                     alMatrixTopNControlStatus, 
                     alMatrixTopNProtocolDirLocalIndex, 
                     alMatrixTopNSourceAddress, 
                     alMatrixTopNDestAddress, 
                     alMatrixTopNAppProtocolDirLocalIndex, 
                     alMatrixTopNPktRate, 
                     alMatrixTopNReversePktRate, 
                     alMatrixTopNOctetRate, 
                     alMatrixTopNReverseOctetRate);
    description     
       "Counts the amount of traffic, by protocol, sent between each
        pair of network addresses discovered by the
        probe.  Implementation of this group requires implementation
        of the Network-Layer Matrix Group.";
  };

  group usrHistoryGroup {
    oid             rmon2MIBGroups.8;
    members         (usrHistoryControlObjects, 
                     usrHistoryControlBucketsRequested, 
                     usrHistoryControlBucketsGranted, 
                     usrHistoryControlInterval, 
                     usrHistoryControlOwner, 
                     usrHistoryControlStatus, 
                     usrHistoryObjectVariable, 
                     usrHistoryObjectSampleType, 
                     usrHistoryIntervalStart, 
                     usrHistoryIntervalEnd, usrHistoryAbsValue, 
                     usrHistoryValStatus);
    description     
       "The usrHistoryGroup provides user-defined collection of
        historical information from MIB objects on the probe.";
  };

  group probeInformationGroup {
    oid             rmon2MIBGroups.9;
    members         (probeCapabilities, probeSoftwareRev, 
                     probeHardwareRev, probeDateTime);
    description     
       "This group describes various operating parameters of the
        probe and controls the local time of the probe.";
  };

  group probeConfigurationGroup {
    oid             rmon2MIBGroups.10;
    members         (probeResetControl, probeDownloadFile, 
                     probeDownloadTFTPServer, 
                     probeDownloadAction, probeDownloadStatus, 
                     serialMode, serialProtocol, serialTimeout, 
                     serialModemInitString, 
                     serialModemHangUpString, 
                     serialModemConnectResp, 
                     serialModemNoConnectResp, 
                     serialDialoutTimeout, serialStatus, 
                     netConfigIPAddress, netConfigSubnetMask, 
                     netConfigStatus, netDefaultGateway, 
                     trapDestCommunity, trapDestProtocol, 
                     trapDestAddress, trapDestOwner, 
                     trapDestStatus, serialConnectDestIpAddress, 
                     serialConnectType, serialConnectDialString, 
                     serialConnectSwitchConnectSeq, 
                     serialConnectSwitchDisconnectSeq, 
                     serialConnectSwitchResetSeq, 
                     serialConnectOwner, serialConnectStatus);
    status          deprecated;
    description     
       "This group controls the configuration of various operating
        parameters of the probe.  This group is not referenced by any
        MODULE-COMPLIANCE macro because it is 'grandfathered' from
        more recent MIB review rules that would require it.";
  };

  group rmon1EnhancementGroup {
    oid             rmon2MIBGroups.11;
    members         (historyControlDroppedFrames, 
                     hostControlDroppedFrames, 
                     hostControlCreateTime, 
                     matrixControlDroppedFrames, 
                     matrixControlCreateTime, 
                     channelDroppedFrames, channelCreateTime, 
                     filterProtocolDirDataLocalIndex, 
                     filterProtocolDirLocalIndex);
    description     
       "This group adds some enhancements to RMON-1 that help
        management stations.";
  };

  group rmon1EthernetEnhancementGroup {
    oid             rmon2MIBGroups.12;
    members         (etherStatsDroppedFrames, 
                     etherStatsCreateTime);
    description     
       "This group adds some enhancements to RMON-1 that help
        management stations.";
  };

  group rmon1TokenRingEnhancementGroup {
    oid             rmon2MIBGroups.13;
    members         (tokenRingMLStatsDroppedFrames, 
                     tokenRingMLStatsCreateTime, 
                     tokenRingPStatsDroppedFrames, 
                     tokenRingPStatsCreateTime, 
                     ringStationControlDroppedFrames, 
                     ringStationControlCreateTime, 
                     sourceRoutingStatsDroppedFrames, 
                     sourceRoutingStatsCreateTime);
    status          deprecated;
    description     
       "This group adds some enhancements to RMON-1 that help
        management stations.  This group is not referenced by any
        MODULE-COMPLIANCE macro because it is 'grandfathered' from
        more recent MIB review rules that would require it.";
  };

//
// COMPLIANCE DEFINITIONS
//

  compliance rmon2MIBCompliance {
    oid             rmon2MIBCompliances.1;
    description     
       "Describes the requirements for conformance to
        the RMON2 MIB";

    mandatory       (protocolDirectoryGroup, 
                     protocolDistributionGroup, addressMapGroup, 
                     nlHostGroup, nlMatrixGroup, usrHistoryGroup, 
                     probeInformationGroup);

    optional rmon1EnhancementGroup {
      description   
         "The rmon1EnhancementGroup is mandatory for systems
          that implement RMON [RFC2819].";
    };
    optional rmon1EthernetEnhancementGroup {
      description   
         "The rmon1EthernetEnhancementGroup is optional and is
          appropriate for systems that implement the Ethernet
          group of RMON [RFC2819].";
    };

    refine nlMatrixTopNControlRateBase {
      type          Enumeration (nlMatrixTopNPkts(1), 
                      nlMatrixTopNOctets(2));
      description   
         "Conformance to RMON2 requires only support for these
          values of nlMatrixTopNControlRateBase.";
    };
  };

  compliance rmon2MIBApplicationLayerCompliance {
    oid             rmon2MIBCompliances.2;
    description     
       "Describes the requirements for conformance to
        the RMON2 MIB with Application-Layer Enhancements.";

    mandatory       (protocolDirectoryGroup, 
                     protocolDistributionGroup, addressMapGroup, 
                     nlHostGroup, nlMatrixGroup, alHostGroup, 
                     alMatrixGroup, usrHistoryGroup, 
                     probeInformationGroup);

    optional rmon1EnhancementGroup {
      description   
         "The rmon1EnhancementGroup is mandatory for systems
          that implement RMON [RFC2819].";
    };
    optional rmon1EthernetEnhancementGroup {
      description   
         "The rmon1EthernetEnhancementGroup is optional and is
          appropriate for systems that implement the Ethernet
          group of RMON [RFC2819].";
    };

    refine nlMatrixTopNControlRateBase {
      type          Enumeration (nlMatrixTopNPkts(1), 
                      nlMatrixTopNOctets(2));
      description   
         "Conformance to RMON2 requires only support for these
          values of nlMatrixTopNControlRateBase.";
    };
    refine alMatrixTopNControlRateBase {
      type          Enumeration (alMatrixTopNTerminalsPkts(1), 
                      alMatrixTopNTerminalsOctets(2), 
                      alMatrixTopNAllPkts(3), 
                      alMatrixTopNAllOctets(4));
      description   
         "Conformance to RMON2 requires only support for these
          
          
          
          values of alMatrixTopNControlRateBase.";
    };
  };

}; // end of module RMON2-MIB.