START-MIB DEFINITIONS ::= BEGIN

internet  	OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
directory 	OBJECT IDENTIFIER ::= { internet 1 }
mgmt  		OBJECT IDENTIFIER ::= { internet 2 }
experimental 	OBJECT IDENTIFIER ::= { internet 3 }
private  	OBJECT IDENTIFIER ::= { internet 4 }
enterprises 	OBJECT IDENTIFIER ::= { private 1 }
snmpV2 		OBJECT IDENTIFIER ::= { internet 6 }
snmpModules 	OBJECT IDENTIFIER ::= { snmpV2 3 } 
snmpMIB 	OBJECT IDENTIFIER ::= { snmpModules 1 }
snmpMIBObjects 	OBJECT IDENTIFIER ::= { snmpMIB 1 }
snmpTrap 	OBJECT IDENTIFIER ::= { snmpMIBObjects 4 }
snmpTraps 	OBJECT IDENTIFIER ::= { snmpMIBObjects 5 }

-- Text Conventions
TruthValue ::= INTEGER { true (1), false (2) }
RowStatus ::= INTEGER {
	active(1),
	notInService(2),
	notReady(3),
	createAndGo(4),
	createAndWait(5),
	destroy(6)
}
InterfaceIndex ::= Integer32
PhysAddress ::= OCTET STRING
AutonomousType ::= OBJECT IDENTIFIER
TestAndIncr ::= Integer32



-- HACK
--
-- These well-known traps are placed here so we don't have to pull
-- in a lot of SNMP V2 MIB files to get these variables.
--
-- HACK
 
coldStart NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A coldStart trap signifies that the SNMPv2 entity, acting
            in an agent role, is reinitializing itself and that its
            configuration may have been altered."
    ::= { snmpTraps 1 }
 
warmStart NOTIFICATION-TYPE
    STATUS  current
    DESCRIPTION
            "A warmStart trap signifies that the SNMPv2 entity, acting
            in an agent role, is reinitializing itself such that its
            configuration is unaltered."
    ::= { snmpTraps 2 }

authenticationFailure NOTIFICATION-TYPE
    STATUS  current
    ::= { snmpTraps 5 }

END
          RFC1213-MIB DEFINITIONS ::= BEGIN

          IMPORTS
                  mgmt, NetworkAddress, IpAddress, Counter, Gauge,
                          TimeTicks
                      FROM RFC1155-SMI
                  OBJECT-TYPE
                          FROM RFC-1212;

          --  This MIB module uses the extended OBJECT-TYPE macro as
          --  defined in [14];


          --  MIB-II (same prefix as MIB-I)

          mib-2      OBJECT IDENTIFIER ::= { mgmt 1 }

          -- textual conventions

          DisplayString ::=
              OCTET STRING
          -- This data type is used to model textual information taken
          -- from the NVT ASCII character set.  By convention, objects
          -- with this syntax are declared as having
          --
          --      SIZE (0..255)

          PhysAddress ::=
              OCTET STRING
          -- This data type is used to model media addresses.  For many
          -- types of media, this will be in a binary representation.
          -- For example, an ethernet address would be represented as
          -- a string of 6 octets.


          -- groups in MIB-II

          system       OBJECT IDENTIFIER ::= { mib-2 1 }

          interfaces   OBJECT IDENTIFIER ::= { mib-2 2 }

          at           OBJECT IDENTIFIER ::= { mib-2 3 }

          ip           OBJECT IDENTIFIER ::= { mib-2 4 }

          icmp         OBJECT IDENTIFIER ::= { mib-2 5 }

          tcp          OBJECT IDENTIFIER ::= { mib-2 6 }

          udp          OBJECT IDENTIFIER ::= { mib-2 7 }

          egp          OBJECT IDENTIFIER ::= { mib-2 8 }

          -- historical (some say hysterical)
          -- cmot      OBJECT IDENTIFIER ::= { mib-2 9 }

          transmission OBJECT IDENTIFIER ::= { mib-2 10 }

          snmp         OBJECT IDENTIFIER ::= { mib-2 11 }


          -- the System group

          -- Implementation of the System group is mandatory for all
          -- systems.  If an agent is not configured to have a value
          -- for any of these variables, a string of length 0 is
          -- returned.

          sysDescr OBJECT-TYPE
              SYNTAX  DisplayString (SIZE (0..255))
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A textual description of the entity.  This value
                      should include the full name and version
                      identification of the system's hardware type,
                      software operating-system, and networking
                      software.  It is mandatory that this only contain
                      printable ASCII characters."
              ::= { system 1 }

          sysObjectID OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The vendor's authoritative identification of the
                      network management subsystem contained in the
                      entity.  This value is allocated within the SMI
                      enterprises subtree (1.3.6.1.4.1) and provides an
                      easy and unambiguous means for determining `what
                      kind of box' is being managed.  For example, if
                      vendor `Flintstones, Inc.' was assigned the
                      subtree 1.3.6.1.4.1.4242, it could assign the
                      identifier 1.3.6.1.4.1.4242.1.1 to its `Fred
                      Router'."
              ::= { system 2 }

          sysUpTime OBJECT-TYPE
              SYNTAX  TimeTicks
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The time (in hundredths of a second) since the
                      network management portion of the system was last
                      re-initialized."
              ::= { system 3 }

          sysContact OBJECT-TYPE
              SYNTAX  DisplayString (SIZE (0..255))
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The textual identification of the contact person
                      for this managed node, together with information
                      on how to contact this person."
              ::= { system 4 }

          sysName OBJECT-TYPE
              SYNTAX  DisplayString (SIZE (0..255))
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "An administratively-assigned name for this
                      managed node.  By convention, this is the node's
                      fully-qualified domain name."
              ::= { system 5 }

          sysLocation OBJECT-TYPE
              SYNTAX  DisplayString (SIZE (0..255))
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The physical location of this node (e.g.,
                      `telephone closet, 3rd floor')."
              ::= { system 6 }

          sysServices OBJECT-TYPE
              SYNTAX  INTEGER (0..127)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A value which indicates the set of services that
                      this entity primarily offers.

                      The value is a sum.  This sum initially takes the
                      value zero, Then, for each layer, L, in the range
                      1 through 7, that this node performs transactions
                      for, 2 raised to (L - 1) is added to the sum.  For
                      example, a node which performs primarily routing
                      functions would have a value of 4 (2^(3-1)).  In
                      contrast, a node which is a host offering
                      application services would have a value of 72
                      (2^(4-1) + 2^(7-1)).  Note that in the context of
                      the Internet suite of protocols, values should be
                      calculated accordingly:

                           layer  functionality
                               1  physical (e.g., repeaters)
                               2  datalink/subnetwork (e.g., bridges)
                               3  internet (e.g., IP gateways)
                               4  end-to-end  (e.g., IP hosts)
                               7  applications (e.g., mail relays)

                      For systems including OSI protocols, layers 5 and
                      6 may also be counted."
              ::= { system 7 }

          -- the Interfaces group

          -- Implementation of the Interfaces group is mandatory for
          -- all systems.

          ifNumber OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of network interfaces (regardless of
                      their current state) present on this system."
              ::= { interfaces 1 }


          -- the Interfaces table

          -- The Interfaces table contains information on the entity's
          -- interfaces.  Each interface is thought of as being
          -- attached to a `subnetwork'.  Note that this term should
          -- not be confused with `subnet' which refers to an
          -- addressing partitioning scheme used in the Internet suite
          -- of protocols.

          ifTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF IfEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of interface entries.  The number of
                      entries is given by the value of ifNumber."
              ::= { interfaces 2 }

          ifEntry OBJECT-TYPE
              SYNTAX  IfEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "An interface entry containing objects at the
                      subnetwork layer and below for a particular
                      interface."
              INDEX   { ifIndex }
              ::= { ifTable 1 }

          IfEntry ::=
              SEQUENCE {
                  ifIndex
                      INTEGER,
                  ifDescr
                      DisplayString,
                  ifType
                      INTEGER,
                  ifMtu
                      INTEGER,
                  ifSpeed
                      Gauge,
                  ifPhysAddress
                      PhysAddress,
                  ifAdminStatus
                      INTEGER,
                  ifOperStatus
                      INTEGER,
                  ifLastChange
                      TimeTicks,
                  ifInOctets
                      Counter,
                  ifInUcastPkts
                      Counter,
                  ifInNUcastPkts
                      Counter,
                  ifInDiscards
                      Counter,
                  ifInErrors
                      Counter,
                  ifInUnknownProtos
                      Counter,
                  ifOutOctets
                      Counter,
                  ifOutUcastPkts
                      Counter,
                  ifOutNUcastPkts
                      Counter,
                  ifOutDiscards
                      Counter,
                  ifOutErrors
                      Counter,
                  ifOutQLen
                      Gauge,
                  ifSpecific
                      OBJECT IDENTIFIER
              }

          ifIndex OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A unique value for each interface.  Its value
                      ranges between 1 and the value of ifNumber.  The
                      value for each interface must remain constant at
                      least from one re-initialization of the entity's
                      network management system to the next re-
                      initialization."
              ::= { ifEntry 1 }

          ifDescr OBJECT-TYPE
              SYNTAX  DisplayString (SIZE (0..255))
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A textual string containing information about the
                      interface.  This string should include the name of
                      the manufacturer, the product name and the version
                      of the hardware interface."
              ::= { ifEntry 2 }

          ifType OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),          -- none of the following
                          regular1822(2),
                          hdh1822(3),
                          ddn-x25(4),
                          rfc877-x25(5),
                          ethernet-csmacd(6),
                          iso88023-csmacd(7),
                          iso88024-tokenBus(8),
                          iso88025-tokenRing(9),
                          iso88026-man(10),
                          starLan(11),
                          proteon-10Mbit(12),
                          proteon-80Mbit(13),
                          hyperchannel(14),
                          fddi(15),
                          lapb(16),
                          sdlc(17),
                          ds1(18),           -- T-1
                          e1(19),            -- european equiv. of T-1
                          basicISDN(20),
                          primaryISDN(21),   -- proprietary serial
                          propPointToPointSerial(22),
                          ppp(23),
                          softwareLoopback(24),
                          eon(25),            -- CLNP over IP [11]
                          ethernet-3Mbit(26),
                          nsip(27),           -- XNS over IP
                          slip(28),           -- generic SLIP
                          ultra(29),          -- ULTRA technologies
                          ds3(30),            -- T-3
                          sip(31),            -- SMDS
                          frame-relay(32)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The type of interface, distinguished according to
                      the physical/link protocol(s) immediately `below'
                      the network layer in the protocol stack."
              ::= { ifEntry 3 }

          ifMtu OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The size of the largest datagram which can be
                      sent/received on the interface, specified in
                      octets.  For interfaces that are used for
                      transmitting network datagrams, this is the size
                      of the largest network datagram that can be sent
                      on the interface."
              ::= { ifEntry 4 }

          ifSpeed OBJECT-TYPE
              SYNTAX  Gauge
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "An estimate of the interface's current bandwidth
                      in bits per second.  For interfaces which do not
                      vary in bandwidth or for those where no accurate
                      estimation can be made, this object should contain
                      the nominal bandwidth."
              ::= { ifEntry 5 }

          ifPhysAddress OBJECT-TYPE
              SYNTAX  PhysAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The interface's address at the protocol layer
                      immediately `below' the network layer in the
                      protocol stack.  For interfaces which do not have
                      such an address (e.g., a serial line), this object
                      should contain an octet string of zero length."
              ::= { ifEntry 6 }

          ifAdminStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          up(1),       -- ready to pass packets
                          down(2),
                          testing(3)   -- in some test mode
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The desired state of the interface.  The
                      testing(3) state indicates that no operational
                      packets can be passed."
              ::= { ifEntry 7 }

          ifOperStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          up(1),       -- ready to pass packets
                          down(2),
                          testing(3)   -- in some test mode
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The current operational state of the interface.
                      The testing(3) state indicates that no operational
                      packets can be passed."
              ::= { ifEntry 8 }

          ifLastChange OBJECT-TYPE
              SYNTAX  TimeTicks
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The value of sysUpTime at the time the interface
                      entered its current operational state.  If the
                      current state was entered prior to the last re-
                      initialization of the local network management
                      subsystem, then this object contains a zero
                      value."
              ::= { ifEntry 9 }

          ifInOctets OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of octets received on the
                      interface, including framing characters."
              ::= { ifEntry 10 }

          ifInUcastPkts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of subnetwork-unicast packets
                      delivered to a higher-layer protocol."
              ::= { ifEntry 11 }

          ifInNUcastPkts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of non-unicast (i.e., subnetwork-
                      broadcast or subnetwork-multicast) packets
                      delivered to a higher-layer protocol."
              ::= { ifEntry 12 }

          ifInDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of inbound packets which were chosen
                      to be discarded even though no errors had been
                      detected to prevent their being deliverable to a
                      higher-layer protocol.  One possible reason for
                      discarding such a packet could be to free up
                      buffer space."
              ::= { ifEntry 13 }

          ifInErrors OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of inbound packets that contained
                      errors preventing them from being deliverable to a
                      higher-layer protocol."
              ::= { ifEntry 14 }

          ifInUnknownProtos OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of packets received via the interface
                      which were discarded because of an unknown or
                      unsupported protocol."
              ::= { ifEntry 15 }

          ifOutOctets OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of octets transmitted out of the
                      interface, including framing characters."
              ::= { ifEntry 16 }

          ifOutUcastPkts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of packets that higher-level
                      protocols requested be transmitted to a
                      subnetwork-unicast address, including those that
                      were discarded or not sent."
              ::= { ifEntry 17 }

          ifOutNUcastPkts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of packets that higher-level
                      protocols requested be transmitted to a non-
                      unicast (i.e., a subnetwork-broadcast or
                      subnetwork-multicast) address, including those
                      that were discarded or not sent."
              ::= { ifEntry 18 }

          ifOutDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of outbound packets which were chosen
                      to be discarded even though no errors had been
                      detected to prevent their being transmitted.  One
                      possible reason for discarding such a packet could
                      be to free up buffer space."
              ::= { ifEntry 19 }

          ifOutErrors OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of outbound packets that could not be
                      transmitted because of errors."
              ::= { ifEntry 20 }

          ifOutQLen OBJECT-TYPE
              SYNTAX  Gauge
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The length of the output packet queue (in
                      packets)."
              ::= { ifEntry 21 }

          ifSpecific OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A reference to MIB definitions specific to the
                      particular media being used to realize the
                      interface.  For example, if the interface is
                      realized by an ethernet, then the value of this
                      object refers to a document defining objects
                      specific to ethernet.  If this information is not
                      present, its value should be set to the OBJECT
                      IDENTIFIER { 0 0 }, which is a syntatically valid
                      object identifier, and any conformant
                      implementation of ASN.1 and BER must be able to
                      generate and recognize this value."
              ::= { ifEntry 22 }


          -- the Address Translation group

          -- Implementation of the Address Translation group is
          -- mandatory for all systems.  Note however that this group
          -- is deprecated by MIB-II. That is, it is being included
          -- solely for compatibility with MIB-I nodes, and will most
          -- likely be excluded from MIB-III nodes.  From MIB-II and
          -- onwards, each network protocol group contains its own
          -- address translation tables.

          -- The Address Translation group contains one table which is
          -- the union across all interfaces of the translation tables
          -- for converting a NetworkAddress (e.g., an IP address) into
          -- a subnetwork-specific address.  For lack of a better term,
          -- this document refers to such a subnetwork-specific address
          -- as a `physical' address.

          -- Examples of such translation tables are: for broadcast
          -- media where ARP is in use, the translation table is
          -- equivalent to the ARP cache; or, on an X.25 network where
          -- non-algorithmic translation to X.121 addresses is
          -- required, the translation table contains the
          -- NetworkAddress to X.121 address equivalences.

          atTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF AtEntry
              ACCESS  not-accessible
              STATUS  deprecated
              DESCRIPTION
                      "The Address Translation tables contain the
                      NetworkAddress to `physical' address equivalences.
                      Some interfaces do not use translation tables for
                      determining address equivalences (e.g., DDN-X.25
                      has an algorithmic method); if all interfaces are
                      of this type, then the Address Translation table
                      is empty, i.e., has zero entries."
              ::= { at 1 }

          atEntry OBJECT-TYPE
              SYNTAX  AtEntry
              ACCESS  not-accessible
              STATUS  deprecated
              DESCRIPTION
                      "Each entry contains one NetworkAddress to
                      `physical' address equivalence."
              INDEX   { atIfIndex,
                        atNetAddress }
              ::= { atTable 1 }

          AtEntry ::=
              SEQUENCE {
                  atIfIndex
                      INTEGER,
                  atPhysAddress
                      PhysAddress,
                  atNetAddress
                      NetworkAddress
              }

          atIfIndex OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  deprecated
              DESCRIPTION
                      "The interface on which this entry's equivalence
                      is effective.  The interface identified by a
                      particular value of this index is the same
                      interface as identified by the same value of
                      ifIndex."
              ::= { atEntry 1 }

          atPhysAddress OBJECT-TYPE
              SYNTAX  PhysAddress
              ACCESS  read-write
              STATUS  deprecated
              DESCRIPTION
                      "The media-dependent `physical' address.

                      Setting this object to a null string (one of zero
                      length) has the effect of invaliding the
                      corresponding entry in the atTable object.  That
                      is, it effectively dissasociates the interface
                      identified with said entry from the mapping
                      identified with said entry.  It is an
                      implementation-specific matter as to whether the
                      agent removes an invalidated entry from the table.
                      Accordingly, management stations must be prepared
                      to receive tabular information from agents that
                      corresponds to entries not currently in use.
                      Proper interpretation of such entries requires
                      examination of the relevant atPhysAddress object."
              ::= { atEntry 2 }

          atNetAddress OBJECT-TYPE
              SYNTAX  NetworkAddress
              ACCESS  read-write
              STATUS  deprecated
              DESCRIPTION
                      "The NetworkAddress (e.g., the IP address)
                      corresponding to the media-dependent `physical'
                      address."
              ::= { atEntry 3 }


          -- the IP group

          -- Implementation of the IP group is mandatory for all
          -- systems.

          ipForwarding OBJECT-TYPE
              SYNTAX  INTEGER {
                          forwarding(1),    -- acting as a gateway
                          not-forwarding(2) -- NOT acting as a gateway
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The indication of whether this entity is acting
                      as an IP gateway in respect to the forwarding of
                      datagrams received by, but not addressed to, this
                      entity.  IP gateways forward datagrams.  IP hosts
                      do not (except those source-routed via the host).

                      Note that for some managed nodes, this object may
                      take on only a subset of the values possible.
                      Accordingly, it is appropriate for an agent to
                      return a `badValue' response if a management
                      station attempts to change this object to an
                      inappropriate value."
              ::= { ip 1 }

          ipDefaultTTL OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The default value inserted into the Time-To-Live
                      field of the IP header of datagrams originated at
                      this entity, whenever a TTL value is not supplied
                      by the transport layer protocol."
              ::= { ip 2 }

          ipInReceives OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of input datagrams received from
                      interfaces, including those received in error."
              ::= { ip 3 }

          ipInHdrErrors OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of input datagrams discarded due to
                      errors in their IP headers, including bad
                      checksums, version number mismatch, other format
                      errors, time-to-live exceeded, errors discovered
                      in processing their IP options, etc."
              ::= { ip 4 }

          ipInAddrErrors OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of input datagrams discarded because
                      the IP address in their IP header's destination
                      field was not a valid address to be received at
                      this entity.  This count includes invalid
                      addresses (e.g., 0.0.0.0) and addresses of
                      unsupported Classes (e.g., Class E).  For entities
                      which are not IP Gateways and therefore do not
                      forward datagrams, this counter includes datagrams
                      discarded because the destination address was not
                      a local address."
              ::= { ip 5 }

          ipForwDatagrams OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of input datagrams for which this
                      entity was not their final IP destination, as a
                      result of which an attempt was made to find a
                      route to forward them to that final destination.
                      In entities which do not act as IP Gateways, this
                      counter will include only those packets which were
                      Source-Routed via this entity, and the Source-
                      Route option processing was successful."
              ::= { ip 6 }

          ipInUnknownProtos OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of locally-addressed datagrams
                      received successfully but discarded because of an
                      unknown or unsupported protocol."
              ::= { ip 7 }

          ipInDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of input IP datagrams for which no
                      problems were encountered to prevent their
                      continued processing, but which were discarded
                      (e.g., for lack of buffer space).  Note that this
                      counter does not include any datagrams discarded
                      while awaiting re-assembly."
              ::= { ip 8 }

          ipInDelivers OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of input datagrams successfully
                      delivered to IP user-protocols (including ICMP)."
              ::= { ip 9 }

          ipOutRequests OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of IP datagrams which local IP
                      user-protocols (including ICMP) supplied to IP in
                      requests for transmission.  Note that this counter
                      does not include any datagrams counted in
                      ipForwDatagrams."
              ::= { ip 10 }

          ipOutDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of output IP datagrams for which no
                      problem was encountered to prevent their
                      transmission to their destination, but which were
                      discarded (e.g., for lack of buffer space).  Note
                      that this counter would include datagrams counted
                      in ipForwDatagrams if any such packets met this
                      (discretionary) discard criterion."
              ::= { ip 11 }

          ipOutNoRoutes OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of IP datagrams discarded because no
                      route could be found to transmit them to their
                      destination.  Note that this counter includes any
                      packets counted in ipForwDatagrams which meet this
                      `no-route' criterion.  Note that this includes any
                      datagarms which a host cannot route because all of
                      its default gateways are down."
              ::= { ip 12 }

          ipReasmTimeout OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The maximum number of seconds which received
                      fragments are held while they are awaiting
                      reassembly at this entity."
              ::= { ip 13 }

          ipReasmReqds OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of IP fragments received which needed
                      to be reassembled at this entity."
              ::= { ip 14 }

          ipReasmOKs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of IP datagrams successfully re-
                      assembled."
              ::= { ip 15 }

          ipReasmFails OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of failures detected by the IP re-
                      assembly algorithm (for whatever reason: timed
                      out, errors, etc).  Note that this is not
                      necessarily a count of discarded IP fragments
                      since some algorithms (notably the algorithm in
                      RFC 815) can lose track of the number of fragments
                      by combining them as they are received."
              ::= { ip 16 }

          ipFragOKs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of IP datagrams that have been
                      successfully fragmented at this entity."
              ::= { ip 17 }

          ipFragFails OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of IP datagrams that have been
                      discarded because they needed to be fragmented at
                      this entity but could not be, e.g., because their
                      Don't Fragment flag was set."
              ::= { ip 18 }

          ipFragCreates OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of IP datagram fragments that have
                      been generated as a result of fragmentation at
                      this entity."
              ::= { ip 19 }

          -- the IP address table

          -- The IP address table contains this entity's IP addressing
          -- information.

          ipAddrTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF IpAddrEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The table of addressing information relevant to
                      this entity's IP addresses."
              ::= { ip 20 }

          ipAddrEntry OBJECT-TYPE
              SYNTAX  IpAddrEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The addressing information for one of this
                      entity's IP addresses."
              INDEX   { ipAdEntAddr }
              ::= { ipAddrTable 1 }

          IpAddrEntry ::=
              SEQUENCE {
                  ipAdEntAddr
                      IpAddress,
                  ipAdEntIfIndex
                      INTEGER,
                  ipAdEntNetMask
                      IpAddress,
                  ipAdEntBcastAddr
                      INTEGER,
                  ipAdEntReasmMaxSize
                      INTEGER (0..65535)
              }

          ipAdEntAddr OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The IP address to which this entry's addressing
                      information pertains."
              ::= { ipAddrEntry 1 }

          ipAdEntIfIndex OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The index value which uniquely identifies the
                      interface to which this entry is applicable.  The
                      interface identified by a particular value of this
                      index is the same interface as identified by the
                      same value of ifIndex."
              ::= { ipAddrEntry 2 }

          ipAdEntNetMask OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The subnet mask associated with the IP address of
                      this entry.  The value of the mask is an IP
                      address with all the network bits set to 1 and all
                      the hosts bits set to 0."
              ::= { ipAddrEntry 3 }

          ipAdEntBcastAddr OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The value of the least-significant bit in the IP
                      broadcast address used for sending datagrams on
                      the (logical) interface associated with the IP
                      address of this entry.  For example, when the
                      Internet standard all-ones broadcast address is
                      used, the value will be 1.  This value applies to
                      both the subnet and network broadcasts addresses
                      used by the entity on this (logical) interface."
              ::= { ipAddrEntry 4 }

          ipAdEntReasmMaxSize OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The size of the largest IP datagram which this
                      entity can re-assemble from incoming IP fragmented
                      datagrams received on this interface."
              ::= { ipAddrEntry 5 }

          -- the IP routing table

          -- The IP routing table contains an entry for each route
          -- presently known to this entity.

          ipRouteTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF IpRouteEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "This entity's IP Routing table."
              ::= { ip 21 }

          ipRouteEntry OBJECT-TYPE
              SYNTAX  IpRouteEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A route to a particular destination."
              INDEX   { ipRouteDest }
              ::= { ipRouteTable 1 }

          IpRouteEntry ::=
              SEQUENCE {
                  ipRouteDest
                      IpAddress,
                  ipRouteIfIndex
                      INTEGER,
                  ipRouteMetric1
                      INTEGER,
                  ipRouteMetric2
                      INTEGER,
                  ipRouteMetric3
                      INTEGER,
                  ipRouteMetric4
                      INTEGER,
                  ipRouteNextHop
                      IpAddress,
                  ipRouteType
                      INTEGER,
                  ipRouteProto
                      INTEGER,
                  ipRouteAge
                      INTEGER,
                  ipRouteMask
                      IpAddress,
                  ipRouteMetric5
                      INTEGER,
                  ipRouteInfo
                      OBJECT IDENTIFIER
              }

          ipRouteDest OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The destination IP address of this route.  An
                      entry with a value of 0.0.0.0 is considered a
                      default route.  Multiple routes to a single
                      destination can appear in the table, but access to
                      such multiple entries is dependent on the table-
                      access mechanisms defined by the network
                      management protocol in use."
              ::= { ipRouteEntry 1 }

          ipRouteIfIndex OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The index value which uniquely identifies the
                      local interface through which the next hop of this
                      route should be reached.  The interface identified
                      by a particular value of this index is the same
                      interface as identified by the same value of
                      ifIndex."
              ::= { ipRouteEntry 2 }

          ipRouteMetric1 OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The primary routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      ipRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { ipRouteEntry 3 }

          ipRouteMetric2 OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "An alternate routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      ipRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { ipRouteEntry 4 }

          ipRouteMetric3 OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "An alternate routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      ipRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { ipRouteEntry 5 }

          ipRouteMetric4 OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "An alternate routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      ipRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { ipRouteEntry 6 }

          ipRouteNextHop OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The IP address of the next hop of this route.
                      (In the case of a route bound to an interface
                      which is realized via a broadcast media, the value
                      of this field is the agent's IP address on that
                      interface.)"
              ::= { ipRouteEntry 7 }

          ipRouteType OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),        -- none of the following

                          invalid(2),      -- an invalidated route
                                           -- route to directly
                          direct(3),       -- connected (sub-)network

                                           -- route to a non-local
                          indirect(4)      -- host/network/sub-network
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The type of route.  Note that the values
                      direct(3) and indirect(4) refer to the notion of
                      direct and indirect routing in the IP
                      architecture.

                      Setting this object to the value invalid(2) has
                      the effect of invalidating the corresponding entry
                      in the ipRouteTable object.  That is, it
                      effectively dissasociates the destination
                      identified with said entry from the route
                      identified with said entry.  It is an
                      implementation-specific matter as to whether the
                      agent removes an invalidated entry from the table.
                      Accordingly, management stations must be prepared
                      to receive tabular information from agents that
                      corresponds to entries not currently in use.
                      Proper interpretation of such entries requires
                      examination of the relevant ipRouteType object."
              ::= { ipRouteEntry 8 }

          ipRouteProto OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),       -- none of the following

                                          -- non-protocol information,
                                          -- e.g., manually configured
                          local(2),       -- entries

                                          -- set via a network
                          netmgmt(3),     -- management protocol

                                          -- obtained via ICMP,
                          icmp(4),        -- e.g., Redirect

                                          -- the remaining values are
                                          -- all gateway routing
                                          -- protocols
                          egp(5),
                          ggp(6),
                          hello(7),
                          rip(8),
                          is-is(9),
                          es-is(10),
                          ciscoIgrp(11),
                          bbnSpfIgp(12),
                          ospf(13),
                          bgp(14)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The routing mechanism via which this route was
                      learned.  Inclusion of values for gateway routing
                      protocols is not intended to imply that hosts
                      should support those protocols."
              ::= { ipRouteEntry 9 }

          ipRouteAge OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The number of seconds since this route was last
                      updated or otherwise determined to be correct.
                      Note that no semantics of `too old' can be implied
                      except through knowledge of the routing protocol
                      by which the route was learned."
              ::= { ipRouteEntry 10 }

          ipRouteMask OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "Indicate the mask to be logical-ANDed with the
                      destination address before being compared to the
                      value in the ipRouteDest field.  For those systems
                      that do not support arbitrary subnet masks, an
                      agent constructs the value of the ipRouteMask by
                      determining whether the value of the correspondent
                      ipRouteDest field belong to a class-A, B, or C
                      network, and then using one of:

                           mask           network
                           255.0.0.0      class-A
                           255.255.0.0    class-B
                           255.255.255.0  class-C

                      If the value of the ipRouteDest is 0.0.0.0 (a
                      default route), then the mask value is also
                      0.0.0.0.  It should be noted that all IP routing
                      subsystems implicitly use this mechanism."
              ::= { ipRouteEntry 11 }

          ipRouteMetric5 OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "An alternate routing metric for this route.  The
                      semantics of this metric are determined by the
                      routing-protocol specified in the route's
                      ipRouteProto value.  If this metric is not used,
                      its value should be set to -1."
              ::= { ipRouteEntry 12 }

          ipRouteInfo OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A reference to MIB definitions specific to the
                      particular routing protocol which is responsible
                      for this route, as determined by the value
                      specified in the route's ipRouteProto value.  If
                      this information is not present, its value should
                      be set to the OBJECT IDENTIFIER { 0 0 }, which is
                      a syntatically valid object identifier, and any
                      conformant implementation of ASN.1 and BER must be
                      able to generate and recognize this value."
              ::= { ipRouteEntry 13 }


          -- the IP Address Translation table

          -- The IP address translation table contain the IpAddress to
          -- `physical' address equivalences.  Some interfaces do not
          -- use translation tables for determining address
          -- equivalences (e.g., DDN-X.25 has an algorithmic method);
          -- if all interfaces are of this type, then the Address
          -- Translation table is empty, i.e., has zero entries.

          ipNetToMediaTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF IpNetToMediaEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The IP Address Translation table used for mapping
                      from IP addresses to physical addresses."
              ::= { ip 22 }

          ipNetToMediaEntry OBJECT-TYPE
              SYNTAX  IpNetToMediaEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Each entry contains one IpAddress to `physical'
                      address equivalence."
              INDEX   { ipNetToMediaIfIndex,
                        ipNetToMediaNetAddress }
              ::= { ipNetToMediaTable 1 }

          IpNetToMediaEntry ::=
              SEQUENCE {
                  ipNetToMediaIfIndex
                      INTEGER,
                  ipNetToMediaPhysAddress
                      PhysAddress,
                  ipNetToMediaNetAddress
                      IpAddress,
                  ipNetToMediaType
                      INTEGER
              }

          ipNetToMediaIfIndex OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The interface on which this entry's equivalence
                      is effective.  The interface identified by a
                      particular value of this index is the same
                      interface as identified by the same value of
                      ifIndex."
              ::= { ipNetToMediaEntry 1 }

          ipNetToMediaPhysAddress OBJECT-TYPE
              SYNTAX  PhysAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The media-dependent `physical' address."
              ::= { ipNetToMediaEntry 2 }

          ipNetToMediaNetAddress OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The IpAddress corresponding to the media-
                      dependent `physical' address."
              ::= { ipNetToMediaEntry 3 }

          ipNetToMediaType OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),        -- none of the following
                          invalid(2),      -- an invalidated mapping
                          dynamic(3),
                          static(4)
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The type of mapping.

                      Setting this object to the value invalid(2) has
                      the effect of invalidating the corresponding entry
                      in the ipNetToMediaTable.  That is, it effectively
                      dissasociates the interface identified with said
                      entry from the mapping identified with said entry.
                      It is an implementation-specific matter as to
                      whether the agent removes an invalidated entry
                      from the table.  Accordingly, management stations
                      must be prepared to receive tabular information
                      from agents that corresponds to entries not
                      currently in use.  Proper interpretation of such
                      entries requires examination of the relevant
                      ipNetToMediaType object."
              ::= { ipNetToMediaEntry 4 }


          -- additional IP objects

          ipRoutingDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of routing entries which were chosen
                      to be discarded even though they are valid.  One
                      possible reason for discarding such an entry could
                      be to free-up buffer space for other routing
                      entries."
              ::= { ip 23 }


          -- the ICMP group

          -- Implementation of the ICMP group is mandatory for all
          -- systems.

          icmpInMsgs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of ICMP messages which the
                      entity received.  Note that this counter includes
                      all those counted by icmpInErrors."
              ::= { icmp 1 }

          icmpInErrors OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP messages which the entity
                      received but determined as having ICMP-specific
                      errors (bad ICMP checksums, bad length, etc.)."
              ::= { icmp 2 }

          icmpInDestUnreachs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Destination Unreachable
                      messages received."
              ::= { icmp 3 }

          icmpInTimeExcds OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Time Exceeded messages
                      received."
              ::= { icmp 4 }

          icmpInParmProbs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Parameter Problem messages
                      received."
              ::= { icmp 5 }

          icmpInSrcQuenchs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Source Quench messages
                      received."
              ::= { icmp 6 }

          icmpInRedirects OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Redirect messages received."
              ::= { icmp 7 }

          icmpInEchos OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Echo (request) messages
                      received."
              ::= { icmp 8 }

          icmpInEchoReps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Echo Reply messages received."
              ::= { icmp 9 }

          icmpInTimestamps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Timestamp (request) messages
                      received."
              ::= { icmp 10 }

          icmpInTimestampReps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Timestamp Reply messages
                      received."
              ::= { icmp 11 }

          icmpInAddrMasks OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Address Mask Request messages
                      received."
              ::= { icmp 12 }

          icmpInAddrMaskReps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Address Mask Reply messages
                      received."
              ::= { icmp 13 }

          icmpOutMsgs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of ICMP messages which this
                      entity attempted to send.  Note that this counter
                      includes all those counted by icmpOutErrors."
              ::= { icmp 14 }

          icmpOutErrors OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP messages which this entity did
                      not send due to problems discovered within ICMP
                      such as a lack of buffers.  This value should not
                      include errors discovered outside the ICMP layer
                      such as the inability of IP to route the resultant
                      datagram.  In some implementations there may be no
                      types of error which contribute to this counter's
                      value."
              ::= { icmp 15 }

          icmpOutDestUnreachs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Destination Unreachable
                      messages sent."
              ::= { icmp 16 }

          icmpOutTimeExcds OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Time Exceeded messages sent."
              ::= { icmp 17 }

          icmpOutParmProbs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Parameter Problem messages
                      sent."
              ::= { icmp 18 }

          icmpOutSrcQuenchs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Source Quench messages sent."
              ::= { icmp 19 }

          icmpOutRedirects OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Redirect messages sent.  For a
                      host, this object will always be zero, since hosts
                      do not send redirects."
              ::= { icmp 20 }

          icmpOutEchos OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Echo (request) messages sent."
              ::= { icmp 21 }

          icmpOutEchoReps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Echo Reply messages sent."
              ::= { icmp 22 }

          icmpOutTimestamps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Timestamp (request) messages
                      sent."
              ::= { icmp 23 }

          icmpOutTimestampReps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Timestamp Reply messages
                      sent."
              ::= { icmp 24 }

          icmpOutAddrMasks OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Address Mask Request messages
                      sent."
              ::= { icmp 25 }

          icmpOutAddrMaskReps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ICMP Address Mask Reply messages
                      sent."
              ::= { icmp 26 }


          -- the TCP group

          -- Implementation of the TCP group is mandatory for all
          -- systems that implement the TCP.

          -- Note that instances of object types that represent
          -- information about a particular TCP connection are
          -- transient; they persist only as long as the connection
          -- in question.

          tcpRtoAlgorithm OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),    -- none of the following

                          constant(2), -- a constant rto
                          rsre(3),     -- MIL-STD-1778, Appendix B
                          vanj(4)      -- Van Jacobson's algorithm [10]
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The algorithm used to determine the timeout value
                      used for retransmitting unacknowledged octets."
              ::= { tcp 1 }

          tcpRtoMin OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The minimum value permitted by a TCP
                      implementation for the retransmission timeout,
                      measured in milliseconds.  More refined semantics
                      for objects of this type depend upon the algorithm
                      used to determine the retransmission timeout.  In
                      particular, when the timeout algorithm is rsre(3),
                      an object of this type has the semantics of the
                      LBOUND quantity described in RFC 793."
              ::= { tcp 2 }


          tcpRtoMax OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The maximum value permitted by a TCP
                      implementation for the retransmission timeout,
                      measured in milliseconds.  More refined semantics
                      for objects of this type depend upon the algorithm
                      used to determine the retransmission timeout.  In
                      particular, when the timeout algorithm is rsre(3),
                      an object of this type has the semantics of the
                      UBOUND quantity described in RFC 793."
              ::= { tcp 3 }

          tcpMaxConn OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The limit on the total number of TCP connections
                      the entity can support.  In entities where the
                      maximum number of connections is dynamic, this
                      object should contain the value -1."
              ::= { tcp 4 }

          tcpActiveOpens OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of times TCP connections have made a
                      direct transition to the SYN-SENT state from the
                      CLOSED state."
              ::= { tcp 5 }

          tcpPassiveOpens OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of times TCP connections have made a
                      direct transition to the SYN-RCVD state from the
                      LISTEN state."
              ::= { tcp 6 }

          tcpAttemptFails OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of times TCP connections have made a
                      direct transition to the CLOSED state from either
                      the SYN-SENT state or the SYN-RCVD state, plus the
                      number of times TCP connections have made a direct
                      transition to the LISTEN state from the SYN-RCVD
                      state."
              ::= { tcp 7 }

          tcpEstabResets OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of times TCP connections have made a
                      direct transition to the CLOSED state from either
                      the ESTABLISHED state or the CLOSE-WAIT state."
              ::= { tcp 8 }

          tcpCurrEstab OBJECT-TYPE
              SYNTAX  Gauge
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of TCP connections for which the
                      current state is either ESTABLISHED or CLOSE-
                      WAIT."
              ::= { tcp 9 }

          tcpInSegs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of segments received, including
                      those received in error.  This count includes
                      segments received on currently established
                      connections."
              ::= { tcp 10 }

          tcpOutSegs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of segments sent, including
                      those on current connections but excluding those
                      containing only retransmitted octets."
              ::= { tcp 11 }

          tcpRetransSegs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of segments retransmitted - that
                      is, the number of TCP segments transmitted
                      containing one or more previously transmitted
                      octets."
              ::= { tcp 12 }


          -- the TCP Connection table

          -- The TCP connection table contains information about this
          -- entity's existing TCP connections.

          tcpConnTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF TcpConnEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table containing TCP connection-specific
                      information."
              ::= { tcp 13 }

          tcpConnEntry OBJECT-TYPE
              SYNTAX  TcpConnEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Information about a particular current TCP
                      connection.  An object of this type is transient,
                      in that it ceases to exist when (or soon after)
                      the connection makes the transition to the CLOSED
                      state."
              INDEX   { tcpConnLocalAddress,
                        tcpConnLocalPort,
                        tcpConnRemAddress,
                        tcpConnRemPort }
              ::= { tcpConnTable 1 }

          TcpConnEntry ::=
              SEQUENCE {
                  tcpConnState
                      INTEGER,
                  tcpConnLocalAddress
                      IpAddress,
                  tcpConnLocalPort
                      INTEGER (0..65535),
                  tcpConnRemAddress
                      IpAddress,
                  tcpConnRemPort
                      INTEGER (0..65535)
              }

          tcpConnState OBJECT-TYPE
              SYNTAX  INTEGER {
                          closed(1),
                          listen(2),
                          synSent(3),
                          synReceived(4),
                          established(5),
                          finWait1(6),
                          finWait2(7),
                          closeWait(8),
                          lastAck(9),
                          closing(10),
                          timeWait(11),
                          deleteTCB(12)
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The state of this TCP connection.

                      The only value which may be set by a management
                      station is deleteTCB(12).  Accordingly, it is
                      appropriate for an agent to return a `badValue'
                      response if a management station attempts to set
                      this object to any other value.

                      If a management station sets this object to the
                      value deleteTCB(12), then this has the effect of
                      deleting the TCB (as defined in RFC 793) of the
                      corresponding connection on the managed node,
                      resulting in immediate termination of the
                      connection.

                      As an implementation-specific option, a RST
                      segment may be sent from the managed node to the
                      other TCP endpoint (note however that RST segments
                      are not sent reliably)."
              ::= { tcpConnEntry 1 }

          tcpConnLocalAddress OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The local IP address for this TCP connection.  In
                      the case of a connection in the listen state which
                      is willing to accept connections for any IP
                      interface associated with the node, the value
                      0.0.0.0 is used."
              ::= { tcpConnEntry 2 }

          tcpConnLocalPort OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The local port number for this TCP connection."
              ::= { tcpConnEntry 3 }

          tcpConnRemAddress OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The remote IP address for this TCP connection."
              ::= { tcpConnEntry 4 }

          tcpConnRemPort OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The remote port number for this TCP connection."
              ::= { tcpConnEntry 5 }


          -- additional TCP objects

          tcpInErrs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of segments received in error
                      (e.g., bad TCP checksums)."
              ::= { tcp 14 }

          tcpOutRsts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of TCP segments sent containing the
                      RST flag."
              ::= { tcp 15 }


          -- the UDP group

          -- Implementation of the UDP group is mandatory for all
          -- systems which implement the UDP.

          udpInDatagrams OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of UDP datagrams delivered to
                      UDP users."
              ::= { udp 1 }

          udpNoPorts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of received UDP datagrams for
                      which there was no application at the destination
                      port."
              ::= { udp 2 }

          udpInErrors OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of received UDP datagrams that could
                      not be delivered for reasons other than the lack
                      of an application at the destination port."
              ::= { udp 3 }

          udpOutDatagrams OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of UDP datagrams sent from this
                      entity."
              ::= { udp 4 }


          -- the UDP Listener table

          -- The UDP listener table contains information about this
          -- entity's UDP end-points on which a local application is
          -- currently accepting datagrams.

          udpTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF UdpEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table containing UDP listener information."
              ::= { udp 5 }

          udpEntry OBJECT-TYPE
              SYNTAX  UdpEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Information about a particular current UDP
                      listener."
              INDEX   { udpLocalAddress, udpLocalPort }
              ::= { udpTable 1 }

          UdpEntry ::=
              SEQUENCE {
                  udpLocalAddress
                      IpAddress,
                  udpLocalPort
                      INTEGER (0..65535)
              }

          udpLocalAddress OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The local IP address for this UDP listener.  In
                      the case of a UDP listener which is willing to
                      accept datagrams for any IP interface associated
                      with the node, the value 0.0.0.0 is used."
              ::= { udpEntry 1 }

          udpLocalPort OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The local port number for this UDP listener."
              ::= { udpEntry 2 }


          -- the EGP group

          -- Implementation of the EGP group is mandatory for all
          -- systems which implement the EGP.

          egpInMsgs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of EGP messages received without
                      error."
              ::= { egp 1 }

          egpInErrors OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of EGP messages received that proved
                      to be in error."
              ::= { egp 2 }

          egpOutMsgs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of locally generated EGP
                      messages."
              ::= { egp 3 }

          egpOutErrors OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of locally generated EGP messages not
                      sent due to resource limitations within an EGP
                      entity."
              ::= { egp 4 }


          -- the EGP Neighbor table

          -- The EGP neighbor table contains information about this
          -- entity's EGP neighbors.

          egpNeighTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF EgpNeighEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "The EGP neighbor table."
              ::= { egp 5 }

          egpNeighEntry OBJECT-TYPE
              SYNTAX  EgpNeighEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Information about this entity's relationship with
                      a particular EGP neighbor."
              INDEX   { egpNeighAddr }
              ::= { egpNeighTable 1 }

          EgpNeighEntry ::=
              SEQUENCE {
                  egpNeighState
                      INTEGER,
                  egpNeighAddr
                      IpAddress,
                  egpNeighAs
                      INTEGER,
                  egpNeighInMsgs
                      Counter,
                  egpNeighInErrs
                      Counter,
                  egpNeighOutMsgs
                      Counter,
                  egpNeighOutErrs
                      Counter,
                  egpNeighInErrMsgs
                      Counter,
                  egpNeighOutErrMsgs
                      Counter,
                  egpNeighStateUps
                      Counter,
                  egpNeighStateDowns
                      Counter,
                  egpNeighIntervalHello
                      INTEGER,
                  egpNeighIntervalPoll
                      INTEGER,
                  egpNeighMode
                      INTEGER,
                  egpNeighEventTrigger
                      INTEGER
              }

          egpNeighState OBJECT-TYPE
              SYNTAX  INTEGER {
                          idle(1),
                          acquisition(2),
                          down(3),
                          up(4),
                          cease(5)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The EGP state of the local system with respect to
                      this entry's EGP neighbor.  Each EGP state is
                      represented by a value that is one greater than
                      the numerical value associated with said state in
                      RFC 904."
              ::= { egpNeighEntry 1 }

          egpNeighAddr OBJECT-TYPE
              SYNTAX  IpAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The IP address of this entry's EGP neighbor."
              ::= { egpNeighEntry 2 }

          egpNeighAs OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The autonomous system of this EGP peer.  Zero
                      should be specified if the autonomous system
                      number of the neighbor is not yet known."
              ::= { egpNeighEntry 3 }

          egpNeighInMsgs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of EGP messages received without error
                      from this EGP peer."
              ::= { egpNeighEntry 4 }

          egpNeighInErrs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of EGP messages received from this EGP
                      peer that proved to be in error (e.g., bad EGP
                      checksum)."
              ::= { egpNeighEntry 5 }

          egpNeighOutMsgs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of locally generated EGP messages to
                      this EGP peer."
              ::= { egpNeighEntry 6 }

          egpNeighOutErrs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of locally generated EGP messages not
                      sent to this EGP peer due to resource limitations
                      within an EGP entity."
              ::= { egpNeighEntry 7 }

          egpNeighInErrMsgs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of EGP-defined error messages received
                      from this EGP peer."
              ::= { egpNeighEntry 8 }

          egpNeighOutErrMsgs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of EGP-defined error messages sent to
                      this EGP peer."
              ::= { egpNeighEntry 9 }

          egpNeighStateUps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of EGP state transitions to the UP
                      state with this EGP peer."
              ::= { egpNeighEntry 10 }

          egpNeighStateDowns OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of EGP state transitions from the UP
                      state to any other state with this EGP peer."
              ::= { egpNeighEntry 11 }

          egpNeighIntervalHello OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The interval between EGP Hello command
                      retransmissions (in hundredths of a second).  This
                      represents the t1 timer as defined in RFC 904."
              ::= { egpNeighEntry 12 }

          egpNeighIntervalPoll OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The interval between EGP poll command
                      retransmissions (in hundredths of a second).  This
                      represents the t3 timer as defined in RFC 904."
              ::= { egpNeighEntry 13 }

          egpNeighMode OBJECT-TYPE
              SYNTAX  INTEGER { active(1), passive(2) }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The polling mode of this EGP entity, either
                      passive or active."
              ::= { egpNeighEntry 14 }

          egpNeighEventTrigger OBJECT-TYPE
              SYNTAX  INTEGER { start(1), stop(2) }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "A control variable used to trigger operator-
                      initiated Start and Stop events.  When read, this
                      variable always returns the most recent value that
                      egpNeighEventTrigger was set to.  If it has not
                      been set since the last initialization of the
                      network management subsystem on the node, it
                      returns a value of `stop'.

                      When set, this variable causes a Start or Stop
                      event on the specified neighbor, as specified on
                      pages 8-10 of RFC 904.  Briefly, a Start event
                      causes an Idle peer to begin neighbor acquisition
                      and a non-Idle peer to reinitiate neighbor
                      acquisition.  A stop event causes a non-Idle peer
                      to return to the Idle state until a Start event
                      occurs, either via egpNeighEventTrigger or
                      otherwise."
              ::= { egpNeighEntry 15 }


          -- additional EGP objects

          egpAs OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The autonomous system number of this EGP entity."
              ::= { egp 6 }

          -- the Transmission group

          -- Based on the transmission media underlying each interface
          -- on a system, the corresponding portion of the Transmission
          -- group is mandatory for that system.

          -- When Internet-standard definitions for managing
          -- transmission media are defined, the transmission group is
          -- used to provide a prefix for the names of those objects.

          -- Typically, such definitions reside in the experimental
          -- portion of the MIB until they are "proven", then as a
          -- part of the Internet standardization process, the
          -- definitions are accordingly elevated and a new object
          -- identifier, under the transmission group is defined. By
          -- convention, the name assigned is:
          --
          --     type OBJECT IDENTIFIER    ::= { transmission number }
          --
          -- where "type" is the symbolic value used for the media in
          -- the ifType column of the ifTable object, and "number" is
          -- the actual integer value corresponding to the symbol.


          -- the SNMP group

          -- Implementation of the SNMP group is mandatory for all
          -- systems which support an SNMP protocol entity.  Some of
          -- the objects defined below will be zero-valued in those
          -- SNMP implementations that are optimized to support only
          -- those functions specific to either a management agent or
          -- a management station.  In particular, it should be
          -- observed that the objects below refer to an SNMP entity,
          -- and there may be several SNMP entities residing on a
          -- managed node (e.g., if the node is hosting acting as
          -- a management station).

          snmpInPkts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of Messages delivered to the
                      SNMP entity from the transport service."
              ::= { snmp 1 }

          snmpOutPkts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Messages which were
                      passed from the SNMP protocol entity to the
                      transport service."
              ::= { snmp 2 }

          snmpInBadVersions OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Messages which were
                      delivered to the SNMP protocol entity and were for
                      an unsupported SNMP version."
              ::= { snmp 3 }

          snmpInBadCommunityNames OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Messages delivered to
                      the SNMP protocol entity which used a SNMP
                      community name not known to said entity."
              ::= { snmp 4 }

          snmpInBadCommunityUses OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Messages delivered to
                      the SNMP protocol entity which represented an SNMP
                      operation which was not allowed by the SNMP
                      community named in the Message."
              ::= { snmp 5 }

          snmpInASNParseErrs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of ASN.1 or BER errors
                      encountered by the SNMP protocol entity when
                      decoding received SNMP Messages."
              ::= { snmp 6 }

          -- { snmp 7 } is not used

          snmpInTooBigs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP PDUs which were
                      delivered to the SNMP protocol entity and for
                      which the value of the error-status field is
                      `tooBig'."
              ::= { snmp 8 }

          snmpInNoSuchNames OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP PDUs which were
                      delivered to the SNMP protocol entity and for
                      which the value of the error-status field is
                      `noSuchName'."
              ::= { snmp 9 }

          snmpInBadValues OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP PDUs which were
                      delivered to the SNMP protocol entity and for
                      which the value of the error-status field is
                      `badValue'."
              ::= { snmp 10 }

          snmpInReadOnlys OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number valid SNMP PDUs which were
                      delivered to the SNMP protocol entity and for
                      which the value of the error-status field is
                      `readOnly'.  It should be noted that it is a
                      protocol error to generate an SNMP PDU which
                      contains the value `readOnly' in the error-status
                      field, as such this object is provided as a means
                      of detecting incorrect implementations of the
                      SNMP."
              ::= { snmp 11 }

          snmpInGenErrs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP PDUs which were
                      delivered to the SNMP protocol entity and for
                      which the value of the error-status field is
                      `genErr'."
              ::= { snmp 12 }

          snmpInTotalReqVars OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of MIB objects which have been
                      retrieved successfully by the SNMP protocol entity
                      as the result of receiving valid SNMP Get-Request
                      and Get-Next PDUs."
              ::= { snmp 13 }

          snmpInTotalSetVars OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of MIB objects which have been
                      altered successfully by the SNMP protocol entity
                      as the result of receiving valid SNMP Set-Request
                      PDUs."
              ::= { snmp 14 }

          snmpInGetRequests OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Get-Request PDUs which
                      have been accepted and processed by the SNMP
                      protocol entity."
              ::= { snmp 15 }

          snmpInGetNexts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Get-Next PDUs which have
                      been accepted and processed by the SNMP protocol
                      entity."
              ::= { snmp 16 }

          snmpInSetRequests OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Set-Request PDUs which
                      have been accepted and processed by the SNMP
                      protocol entity."
              ::= { snmp 17 }

          snmpInGetResponses OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Get-Response PDUs which
                      have been accepted and processed by the SNMP
                      protocol entity."
              ::= { snmp 18 }

          snmpInTraps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Trap PDUs which have
                      been accepted and processed by the SNMP protocol
                      entity."
              ::= { snmp 19 }

          snmpOutTooBigs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP PDUs which were
                      generated by the SNMP protocol entity and for
                      which the value of the error-status field is
                      `tooBig.'"
              ::= { snmp 20 }

          snmpOutNoSuchNames OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP PDUs which were
                      generated by the SNMP protocol entity and for
                      which the value of the error-status is
                      `noSuchName'."
              ::= { snmp 21 }

          snmpOutBadValues OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP PDUs which were
                      generated by the SNMP protocol entity and for
                      which the value of the error-status field is
                      `badValue'."
              ::= { snmp 22 }

          -- { snmp 23 } is not used

          snmpOutGenErrs OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP PDUs which were
                      generated by the SNMP protocol entity and for
                      which the value of the error-status field is
                      `genErr'."
              ::= { snmp 24 }

          snmpOutGetRequests OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Get-Request PDUs which
                      have been generated by the SNMP protocol entity."
              ::= { snmp 25 }

          snmpOutGetNexts OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Get-Next PDUs which have
                      been generated by the SNMP protocol entity."
              ::= { snmp 26 }

          snmpOutSetRequests OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Set-Request PDUs which
                      have been generated by the SNMP protocol entity."
              ::= { snmp 27 }

          snmpOutGetResponses OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Get-Response PDUs which
                      have been generated by the SNMP protocol entity."
              ::= { snmp 28 }

          snmpOutTraps OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of SNMP Trap PDUs which have
                      been generated by the SNMP protocol entity."
              ::= { snmp 29 }

          snmpEnableAuthenTraps OBJECT-TYPE
              SYNTAX  INTEGER { enabled(1), disabled(2) }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "Indicates whether the SNMP agent process is
                      permitted to generate authentication-failure
                      traps.  The value of this object overrides any
                      configuration information; as such, it provides a
                      means whereby all authentication-failure traps may
                      be disabled.

                      Note that it is strongly recommended that this
                      object be stored in non-volatile memory so that it
                      remains constant between re-initializations of the
                      network management system."
              ::= { snmp 30 }

          END
     RFC1253-MIB DEFINITIONS ::= BEGIN

     IMPORTS
             Counter, Gauge, IpAddress
                     FROM RFC1155-SMI
             mib-2
                     FROM RFC1213-MIB
             OBJECT-TYPE
                     FROM RFC-1212;

     --  This MIB module uses the extended OBJECT-TYPE macro as
     --  defined in [9].

             ospf OBJECT IDENTIFIER ::= { mib-2 14 }

     --  The Area ID, in OSPF, has the same format as an IP Address,
     --  but has the function of defining a summarization point for
     --  Link State Advertisements

             AreaID ::= IpAddress

     --  The Router ID, in OSPF, has the same format as an IP Address,
     --  but identifies the router independent of its IP Address.

             RouterID ::= IpAddress

     --  The OSPF Metric is defined as an unsigned value in the range

             Metric    ::= INTEGER (1..'FFFF'h)
             BigMetric ::= INTEGER (1..'FFFFFF'h)

     --  Boolean Values

             TruthValue ::= INTEGER { true (1), false (2) }

     --  Status Values

             Status ::= INTEGER { enabled (1), disabled (2) }
     --  Row Creation/Deletion Values

             Validation ::= INTEGER { valid (1), invalid (2) }

     --  Time Durations measured in seconds

             PositiveInteger ::= INTEGER (1..'7FFFFFFF'h)
             HelloRange      ::= INTEGER (1..'FFFF'h)
             UpToMaxAge      ::= INTEGER (1..3600)

     --  The range of ifIndex, i.e. (1..ifNumber)

             InterfaceIndex ::= INTEGER

     --  Potential Priorities for the Designated Router Election

             DesignatedRouterPriority ::= INTEGER (0..'FF'h)

     --  Type of Service is defined as a mapping to the IP Type of
     --  Service Flags as defined in the Router Requirements
     --  Document:
     --
     --      D => Low Delay          R => Reliable Route
     --      T => High Bandwidth

     --  D T R   TOS      D T R   TOS
     --  0 0 0 =>  0      0 0 1 =>  4
     --  0 1 0 =>  8      0 1 1 => 12
     --  1 0 0 => 16      1 0 1 => 20
     --  1 1 0 => 24      1 1 1 => 28

     --  The remaining values are left for future definition.

             TOSType ::= INTEGER (0..31)

     --  OSPF General Variables

     --      These parameters apply globally to the Router's
     --      OSPF Process.

     ospfGeneralGroup OBJECT IDENTIFIER ::= { ospf 1 }

     ospfRouterId OBJECT-TYPE
         SYNTAX   RouterID
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "A 32-bit integer uniquely identifying the router in
            the Autonomous System.

            By convention, to ensure uniqueness, this should
            default to the value of one of the router's IP
            interface addresses."
         REFERENCE
            "OSPF Version 2, C.1 Global parameters"
         ::= { ospfGeneralGroup 1 }

     ospfAdminStat OBJECT-TYPE
         SYNTAX   Status
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The administrative status of OSPF in the router.  The
            value 'enabled' denotes that the OSPF Process is active
            on at least one interface; 'disabled' disables it on
            all interfaces."
         ::= { ospfGeneralGroup 2 }

     ospfVersionNumber OBJECT-TYPE
         SYNTAX   INTEGER { version2 (2) }
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The current version number of the OSPF protocol is 2."
         REFERENCE
            "OSPF Version 2, Title"
         ::= { ospfGeneralGroup 3 }

     ospfAreaBdrRtrStatus OBJECT-TYPE
         SYNTAX   TruthValue
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "A flag to note whether this router is an area border
            router."
         REFERENCE
            "OSPF Version 2, Section 3 Splitting the AS into Areas"
         ::= { ospfGeneralGroup 4 }

     ospfASBdrRtrStatus OBJECT-TYPE
         SYNTAX   TruthValue
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "A flag to note whether this router is an Autonomous
            System border router."
         REFERENCE
            "OSPF Version 2, Section 3.3 Classification of routers"
         ::= { ospfGeneralGroup 5 }

     ospfExternLSACount OBJECT-TYPE
         SYNTAX   Gauge
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The number of external (LS type 5) link-state
            advertisements in the link-state database."
         REFERENCE
            "OSPF Version 2, Appendix A.4.5 AS external link
            advertisements"
         ::= { ospfGeneralGroup 6 }

     ospfExternLSACksumSum OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The 32-bit unsigned sum of the LS checksums of the
            external link-state advertisements contained in the
            link-state database.  This sum can be used to determine
            if there has been a change in a router's link state
            database, and to compare the link-state database of two
            routers."
         ::= { ospfGeneralGroup 7 }

     ospfTOSSupport OBJECT-TYPE
         SYNTAX   TruthValue
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The router's support for type-of-service routing."
         REFERENCE
            "OSPF Version 2, Appendix F.1.2 Optional TOS support"
         ::= { ospfGeneralGroup 8 }

     ospfOriginateNewLSAs OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The number of new link-state advertisements that have
            been originated.  This number is incremented each time
            the router originates a new LSA."
         ::= { ospfGeneralGroup 9 }

     ospfRxNewLSAs OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The number of link-state advertisements received
            determined to be new instantiations.  This number does
            not include newer instantiations of self-originated
            link-state advertisements."
         ::= { ospfGeneralGroup 10 }

     --      The OSPF Area Data Structure contains information
     --      regarding the various areas. The interfaces and
     --      virtual links are configured as part of these areas.
     --      Area 0.0.0.0, by definition, is the Backbone Area

     ospfAreaTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfAreaEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "Information describing the configured parameters and
            cumulative statistics of the router's attached areas."
         REFERENCE
            "OSPF Version 2, Section 6  The Area Data Structure"
         ::= { ospf 2 }

     ospfAreaEntry OBJECT-TYPE
         SYNTAX   OspfAreaEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "Information describing the configured parameters and
            cumulative statistics of one of the router's attached
            areas."
         INDEX { ospfAreaId }
         ::= { ospfAreaTable 1 }

     OspfAreaEntry ::=
         SEQUENCE {
             ospfAreaId
                 AreaID,
             ospfAuthType
                 INTEGER,
             ospfImportASExtern
                 TruthValue,
             ospfSpfRuns
                 Counter,
             ospfAreaBdrRtrCount
                 Gauge,
             ospfASBdrRtrCount
                 Gauge,
             ospfAreaLSACksumSum
                 INTEGER,
             ospfAreaStatus
                 Validation
         }

     ospfAreaId OBJECT-TYPE
         SYNTAX   AreaID
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "A 32-bit integer uniquely identifying an area.  Area
            ID 0.0.0.0 is used for the OSPF backbone."
         REFERENCE
            "OSPF Version 2, Appendix C.2 Area parameters"
         ::= { ospfAreaEntry 1 }

     ospfAuthType OBJECT-TYPE
         SYNTAX INTEGER {
                 none(0),              -- no authentication
                 simplePassword(1)     -- simple password authentication
         }
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The authentication type specified for an area.
            Additional authentication types may be assigned locally
            on a per Area basis."
         REFERENCE
            "OSPF Version 2, Appendix E Authentication"
         DEFVAL { 0 }        -- no authentication, by default
         ::= { ospfAreaEntry 2 }

     ospfImportASExtern OBJECT-TYPE
         SYNTAX   TruthValue
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The area's support for importing AS external link-
            state advertisements."
         REFERENCE
            "OSPF Version 2, Appendix C.2 Area parameters"
         DEFVAL { true }
         ::= { ospfAreaEntry 3 }

     ospfSpfRuns OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The number of times that the intra-area route table
            has been calculated using this area's link-state
            database.  This is typically done using Dijkstra's
            algorithm."
         ::= { ospfAreaEntry 4 }

     ospfAreaBdrRtrCount OBJECT-TYPE
         SYNTAX   Gauge
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The total number of area border routers reachable
            within this area.  This is initially zero, and is
            calculated in each SPF Pass."
         DEFVAL   { 0 }
         ::= { ospfAreaEntry 5 }

     ospfASBdrRtrCount OBJECT-TYPE
         SYNTAX   Gauge
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The total number of Autonomous System border routers
            reachable within this area.  This is initially zero,
            and is calculated in each SPF Pass."
         DEFVAL   { 0 }
         ::= { ospfAreaEntry 6 }

     ospfAreaLSACount OBJECT-TYPE
         SYNTAX   Gauge
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The total number of link-state advertisements in this
            area's link-state database, excluding AS External
            LSA's."
         DEFVAL   { 0 }
         ::= { ospfAreaEntry 7 }

     ospfAreaLSACksumSum OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The 32-bit unsigned sum of the link-state
            advertisements' LS checksums contained in this area's
            link-state database.  This sum excludes external (LS
            type 5) link-state advertisements.  The sum can be used
            to determine if there has been a change in a router's
            link state database, and to compare the link-state
            database of two routers."
         DEFVAL   { 0 }
         ::= { ospfAreaEntry 8 }

     ospfAreaStatus OBJECT-TYPE
         SYNTAX   Validation
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This variable displays the validity or invalidity of
            the entry.  Setting it to 'invalid' has the effect of
            rendering it inoperative.  The internal effect (row
            removal) is implementation dependent."
         DEFVAL   { valid }
         ::= { ospfAreaEntry 10 }


     --  OSPF Area Default Metric Table

     --      The OSPF Area Default Metric Table describes the metrics
     --      that a default Area Border Router will advertise into a
     --      Stub area.

     ospfStubAreaTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfStubAreaEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The set of metrics that will be advertised by a
            default Area Border Router into a stub area."
         REFERENCE
            "OSPF Version 2, Appendix C.2, Area Parameters"
         ::= { ospf 3 }

     ospfStubAreaEntry OBJECT-TYPE
         SYNTAX   OspfStubAreaEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The metric for a given Type of Service that will be
            advertised by a default Area Border Router into a stub
            area."
         REFERENCE
            "OSPF Version 2, Appendix C.2, Area Parameters"
         INDEX { ospfStubAreaID, ospfStubTOS }
         ::= { ospfStubAreaTable 1 }

     OspfStubAreaEntry ::=
         SEQUENCE {
             ospfStubAreaID
                 AreaID,
             ospfStubTOS
                 TOSType,
             ospfStubMetric
                 BigMetric,
             ospfStubStatus
                 Validation
         }

     ospfStubAreaID OBJECT-TYPE
         SYNTAX   AreaID
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The 32 bit identifier for the Stub Area.  On creation,
            this can be derived from the instance."
         ::= { ospfStubAreaEntry 1 }

     ospfStubTOS OBJECT-TYPE
         SYNTAX   TOSType
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The Type of Service associated with the metric.  On
            creation, this can be derived from the instance."

         ::= { ospfStubAreaEntry 2 }

     ospfStubMetric OBJECT-TYPE
         SYNTAX   BigMetric
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The metric value applied at the indicated type of
            service.  By default, this equals the least metric at
            the type of service among the interfaces to other
            areas."
         ::= { ospfStubAreaEntry 3 }

     ospfStubStatus OBJECT-TYPE
         SYNTAX   Validation
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This variable displays the validity or invalidity of
            the entry.  Setting it to 'invalid' has the effect of
            rendering it inoperative.  The internal effect (row
            removal) is implementation dependent."
         DEFVAL   { valid }
         ::= { ospfStubAreaEntry 4 }


     --  OSPF Link State Database

     --      The Link State Database contains the Link State
     --      Advertisements from throughout the areas that the
     --      device is attached to.

     ospfLsdbTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfLsdbEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The OSPF Process's Links State Database."
         REFERENCE
            "OSPF Version 2, Section 12 Link State Advertisements"
         ::= { ospf 4 }

     ospfLsdbEntry OBJECT-TYPE
         SYNTAX   OspfLsdbEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "A single Link State Advertisement."
         INDEX { ospfLsdbAreaId, ospfLsdbType,
                 ospfLsdbLSID, ospfLsdbRouterId }
         ::= { ospfLsdbTable 1 }

     OspfLsdbEntry ::=
         SEQUENCE {
             ospfLsdbAreaId
                 AreaID,
             ospfLsdbType
                 INTEGER,
             ospfLsdbLSID
                 IpAddress,
             ospfLsdbRouterId
                 RouterID,
             ospfLsdbSequence
                 INTEGER,
             ospfLsdbAge
                 INTEGER,
             ospfLsdbChecksum
                 INTEGER,
             ospfLsdbAdvertisement
                 OCTET STRING
         }

     ospfLsdbAreaId OBJECT-TYPE
         SYNTAX   AreaID
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The 32 bit identifier of the Area from which the LSA
            was received."
         REFERENCE
            "OSPF Version 2, Appendix C.2 Area parameters"
         ::= { ospfLsdbEntry 1 }

     ospfLsdbType OBJECT-TYPE
         SYNTAX   INTEGER {
                     routerLink (1),
                     networkLink (2),
                     summaryLink (3),
                     asSummaryLink (4),
                     asExternalLink (5)
                  }
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The type of the link state advertisement.  Each link
            state type has a separate advertisement format."
         REFERENCE
            "OSPF Version 2, Appendix A.4.1 The Link State
            Advertisement header"
         ::= { ospfLsdbEntry 2 }

     ospfLsdbLSID OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The Link State ID is an LS Type Specific field
            containing either a Router ID or an IP Address; it
            identifies the piece of the routing domain that is
            being described by the advertisement."
         REFERENCE
            "OSPF Version 2, Section 12.1.4 Link State ID"
         ::= { ospfLsdbEntry 3 }

     ospfLsdbRouterId OBJECT-TYPE
         SYNTAX   RouterID
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The 32 bit number that uniquely identifies the
            originating router in the Autonomous System."
         REFERENCE
            "OSPF Version 2, Appendix C.1 Global parameters"
         ::= { ospfLsdbEntry 4 }

     --  Note that the OSPF Sequence Number is a 32 bit signed
     --  integer.  It starts with the value '80000001'h,
     --  or -'7FFFFFFF'h, and increments until '7FFFFFFF'h
     --  Thus, a typical sequence number will be very negative.

     ospfLsdbSequence OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The sequence number field is a signed 32-bit integer.
            It is used to detect old and duplicate link state
            advertisements.  The space of sequence numbers is
            linearly ordered.  The larger the sequence number the
            more recent the advertisement."
         REFERENCE
            "OSPF Version 2, Section 12.1.6 LS sequence number"
         ::= { ospfLsdbEntry 5 }

     ospfLsdbAge OBJECT-TYPE
         SYNTAX   INTEGER    -- Should be 0..MaxAge
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "This field is the age of the link state advertisement
            in seconds."
         REFERENCE
            "OSPF Version 2, Section 12.1.1 LS age"
         ::= { ospfLsdbEntry 6 }

     ospfLsdbChecksum OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "This field is the checksum of the complete contents of
            the advertisement, excepting the age field.  The age
            field is excepted so that an advertisement's age can be
            incremented without updating the checksum.  The
            checksum used is the same that is used for ISO
            connectionless datagrams; it is commonly referred to as
            the Fletcher checksum."
         REFERENCE
            "OSPF Version 2, Section 12.1.7 LS checksum"
         ::= { ospfLsdbEntry 7 }

     ospfLsdbAdvertisement OBJECT-TYPE
         SYNTAX   OCTET STRING
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The entire Link State Advertisement, including its
            header."
         REFERENCE
            "OSPF Version 2, Section 12 Link State Advertisements"
         ::= { ospfLsdbEntry 8 }


     --  Address Range Table

     --      The Address Range Table acts as an adjunct to the Area
     --      Table; It describes those Address Range Summaries that
     --      are configured to be propagated from an Area to reduce
     --      the amount of information about it which is known beyond
     --      its borders.

     ospfAreaRangeTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfAreaRangeEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "A range if IP addresses specified by an IP address/IP
            network mask pair.  For example, class B address range
            of X.X.X.X with a network mask of 255.255.0.0 includes
            all IP addresses from X.X.0.0 to X.X.255.255"
         REFERENCE
            "OSPF Version 2, Appendix C.2  Area parameters"
         ::= { ospf 5 }

     ospfAreaRangeEntry OBJECT-TYPE
         SYNTAX   OspfAreaRangeEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "A range if IP addresses specified by an IP address/IP
            network mask pair.  For example, class B address range
            of X.X.X.X with a network mask of 255.255.0.0 includes
            all IP addresses from X.X.0.0 to X.X.255.255"
         REFERENCE
            "OSPF Version 2, Appendix C.2  Area parameters"
         INDEX { ospfAreaRangeAreaID, ospfAreaRangeNet }
         ::= { ospfAreaRangeTable 1 }

     OspfAreaRangeEntry ::=
         SEQUENCE {
             ospfAreaRangeAreaID
                 AreaID,
             ospfAreaRangeNet
                 IpAddress,
             ospfAreaRangeMask
                 IpAddress,
             ospfAreaRangeStatus
                 Validation
         }

     ospfAreaRangeAreaID OBJECT-TYPE
         SYNTAX   AreaID
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The Area the Address Range is to be found within."
         REFERENCE
            "OSPF Version 2, Appendix C.2 Area parameters"
         ::= { ospfAreaRangeEntry 1 }

     ospfAreaRangeNet OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The IP Address of the Net or Subnet indicated by the
            range."
         REFERENCE
            "OSPF Version 2, Appendix C.2 Area parameters"
         ::= { ospfAreaRangeEntry 2 }

     ospfAreaRangeMask OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The Subnet Mask that pertains to the Net or Subnet."
         REFERENCE
            "OSPF Version 2, Appendix C.2 Area parameters"
         ::= { ospfAreaRangeEntry 3 }

     ospfAreaRangeStatus OBJECT-TYPE
         SYNTAX   Validation
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This variable displays the validity or invalidity of
            the entry.  Setting it to 'invalid' has the effect of
            rendering it inoperative.  The internal effect (row
            removal) is implementation dependent."
         DEFVAL   { valid }
         ::= { ospfAreaRangeEntry 4 }


     --  OSPF Host Table

     --      The Host/Metric Table indicates what hosts are directly
     --      attached to the Router, and what metrics and types of
     --      service should be advertised for them.

     ospfHostTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfHostEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The list of Hosts, and their metrics, that the router
            will advertise as host routes."
         REFERENCE
            "OSPF Version 2, Appendix C.6  Host route parameters"
         ::= { ospf 6 }

     ospfHostEntry OBJECT-TYPE
         SYNTAX   OspfHostEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "A metric to be advertised, for a given type of service,
            when a given host is reachable."
         INDEX { ospfHostIpAddress, ospfHostTOS }
         ::= { ospfHostTable 1 }

     OspfHostEntry ::=
         SEQUENCE {
             ospfHostIpAddress
                 IpAddress,
             ospfHostTOS
                 TOSType,
             ospfHostMetric
                 Metric,
             ospfHostStatus
                 Validation
         }

     ospfHostIpAddress OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The IP Address of the Host."
         REFERENCE
            "OSPF Version 2, Appendix C.6 Host route parameters"
         ::= { ospfHostEntry 1 }

     ospfHostTOS OBJECT-TYPE
         SYNTAX   TOSType
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The Type of Service of the route being configured."
         REFERENCE
            "OSPF Version 2, Appendix C.6 Host route parameters"
         ::= { ospfHostEntry 2 }

     ospfHostMetric OBJECT-TYPE
         SYNTAX   Metric
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The Metric to be advertised."
         REFERENCE
            "OSPF Version 2, Appendix C.6 Host route parameters"
         ::= { ospfHostEntry 3 }

     ospfHostStatus OBJECT-TYPE
         SYNTAX   Validation
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This variable displays the validity or invalidity of
            the entry.  Setting it to 'invalid' has the effect of
            rendering it inoperative.  The internal effect (row
            removal) is implementation dependent."
         DEFVAL   { valid }
         ::= { ospfHostEntry 4 }
     --  OSPF Interface Table

     --      The OSPF Interface Table augments the ifTable with OSPF
     --      specific information.

     ospfIfTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfIfEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The OSPF Interface Table describes the interfaces from
            the viewpoint of OSPF."
         REFERENCE
            "OSPF Version 2, Appendix C.3  Router interface
            parameters"
         ::= { ospf 7 }

     ospfIfEntry OBJECT-TYPE
         SYNTAX   OspfIfEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The OSPF Interface Entry describes one interface from
            the viewpoint of OSPF."
         INDEX { ospfIfIpAddress, ospfAddressLessIf }
         ::= { ospfIfTable 1 }

     OspfIfEntry ::=
         SEQUENCE {
             ospfIfIpAddress
                 IpAddress,
             ospfAddressLessIf
                 INTEGER,
             ospfIfAreaId
                 AreaID,
             ospfIfType
                 INTEGER,
             ospfIfAdminStat
                 Status,
             ospfIfRtrPriority
                 DesignatedRouterPriority,
             ospfIfTransitDelay
                 UpToMaxAge,
             ospfIfRetransInterval
                 UpToMaxAge,
             ospfIfHelloInterval
                 HelloRange,
             ospfIfRtrDeadInterval
                 PositiveInteger,
             ospfIfPollInterval
                 PositiveInteger,
             ospfIfState
                 INTEGER,
             ospfIfDesignatedRouter
                 IpAddress,
             ospfIfBackupDesignatedRouter
                 IpAddress,
             ospfIfEvents
                 Counter,
             ospfIfAuthKey
                 OCTET STRING
         }

     ospfIfIpAddress OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The IP address of this OSPF interface."
         ::= { ospfIfEntry 1 }

     ospfAddressLessIf OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "For the purpose of easing the instancing of addressed
            and addressless interfaces; This variable takes the
            value 0 on interfaces with IP Addresses, and the
            corresponding value of ifIndex for interfaces having no
            IP Address."
         ::= { ospfIfEntry 2 }

     ospfIfAreaId OBJECT-TYPE
         SYNTAX   AreaID
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "A 32-bit integer uniquely identifying the area to
            which the interface connects.  Area ID 0.0.0.0 is used
            for the OSPF backbone."
         DEFVAL   { '00000000'H }    -- 0.0.0.0
         ::= { ospfIfEntry 3 }

     ospfIfType OBJECT-TYPE
         SYNTAX   INTEGER {
                     broadcast (1),
                     nbma (2),
                     pointToPoint (3)
                  }
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The OSPF interface type.

            By way of a default, this field may be intuited from
            the corresponding value of ifType.  Broadcast LANs,
            such as Ethernet and IEEE 802.5, take the value
            'broadcast', X.25, Frame Relay, and similar
            technologies take the value 'nbma', and links that are
            definitively point to point take the value
            'pointToPoint'."
         ::= { ospfIfEntry 4 }

     ospfIfAdminStat OBJECT-TYPE
         SYNTAX   Status
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The OSPF interface's administrative status.  The value
            'enabled' denotes that neighbor relationships may be
            formed on the interface, and the interface will be
            advertised as an internal route to some area.  The
            value 'disabled' denotes that the interface is external
            to OSPF."
         DEFVAL { enabled }
         ::= { ospfIfEntry 5 }

     ospfIfRtrPriority OBJECT-TYPE
         SYNTAX   DesignatedRouterPriority
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The priority of this interface.  Used in multi-access
            networks, this field is used in the designated router
            election algorithm.  The value 0 signifies that the
            router is not eligible to become the designated router
            on this particular network.  In the event of a tie in
            this value, routers will use their router id as a tie
            breaker."
         DEFVAL { 1 }
         ::= { ospfIfEntry 6 }

     ospfIfTransitDelay OBJECT-TYPE
         SYNTAX   UpToMaxAge
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The estimated number of seconds it takes to transmit a
            link- state update packet over this interface."
         DEFVAL { 1 }
         ::= { ospfIfEntry 7 }

     ospfIfRetransInterval OBJECT-TYPE
         SYNTAX   UpToMaxAge
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The number of seconds between link-state advertisement
            retransmissions, for adjacencies belonging to this
            interface.  This value is also used when retransmitting
            database description and link-state request packets."
         DEFVAL { 5 }
         ::= { ospfIfEntry 8 }

     ospfIfHelloInterval OBJECT-TYPE
         SYNTAX   HelloRange
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The length of time, in seconds, between the Hello
            packets that the router sends on the interface.  This
            value must be the same for all routers attached to a
            common network."
         DEFVAL { 10 }
         ::= { ospfIfEntry 9 }

     ospfIfRtrDeadInterval OBJECT-TYPE
         SYNTAX   PositiveInteger
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The number of seconds that a router's Hello packets
            have not been seen before it's neighbors declare the
            router down.  This should be some multiple of the Hello
            interval.  This value must be the same for all routers
            attached to a common network."
         DEFVAL { 40 }
         ::= { ospfIfEntry 10 }

     ospfIfPollInterval OBJECT-TYPE
         SYNTAX   PositiveInteger
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The larger time interval, in seconds, between the
            Hello packets sent to an inactive non-broadcast multi-
            access neighbor."
         DEFVAL { 120 }
         ::= { ospfIfEntry 11 }

     ospfIfState OBJECT-TYPE
         SYNTAX   INTEGER {
                     down (1),
                     loopback (2),
                     waiting (3),
                     pointToPoint (4),
                     designatedRouter (5),
                     backupDesignatedRouter (6),
                     otherDesignatedRouter (7)
                  }
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The OSPF Interface State."
         DEFVAL { down }
         ::= { ospfIfEntry 12 }

     ospfIfDesignatedRouter OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The IP Address of the Designated Router."
         DEFVAL   { '00000000'H }    -- 0.0.0.0
         ::= { ospfIfEntry 13 }

     ospfIfBackupDesignatedRouter OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The IP Address of the Backup Designated Router."
         DEFVAL   { '00000000'H }    -- 0.0.0.0
         ::= { ospfIfEntry 14 }

     ospfIfEvents OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The number of times this OSPF interface has changed
            its state, or an error has occurred."
         ::= { ospfIfEntry 15 }

     ospfIfAuthKey OBJECT-TYPE
         SYNTAX   OCTET STRING
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The Authentication Key.  If the Area's Authorization
            Type is simplePassword, and the key length is shorter
            than 8 octets, the agent will left adjust and zero fill
            to 8 octets.

            When read, ospfIfAuthKey always returns an Octet String
            of length zero."
         REFERENCE
            "OSPF Version 2, Section 9 The Interface Data
            Structure"
         DEFVAL   { '0000000000000000'H }    -- 0.0.0.0.0.0.0.0
         ::= { ospfIfEntry 16 }


     --  OSPF Interface Metric Table

     --      The Metric Table describes the metrics to be advertised
     --      for a specified interface at the various types of service.
     --      As such, this table is an adjunct of the OSPF Interface
     --      Table.

     -- Types of service, as defined by RFC 791, have the ability
     -- to request low delay, high bandwidth, or reliable linkage.

     -- For the purposes of this specification, the measure of
     -- bandwidth

     --      Metric = 10^8 / ifSpeed

     -- is the default value.  For multiple link interfaces, note
     -- that ifSpeed is the sum of the individual link speeds.
     -- This yields a number having the following typical values:
     --      Network Type/bit rate   Metric

     --      >= 100 MBPS                 1
     --      Ethernet/802.3             10
     --      E1                         48
     --      T1 (ESF)                   65
     --       64 KBPS                 1562
     --       56 KBPS                 1785
     --       19.2 KBPS               5208
     --        9.6 KBPS              10416

     -- Routes that are not specified use the default (TOS 0) metric

     ospfIfMetricTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfIfMetricEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The TOS metrics for a non-virtual interface identified
            by the interface index."
         REFERENCE
            "OSPF Version 2, Appendix C.3  Router interface
            parameters"
         ::= { ospf 8 }

     ospfIfMetricEntry OBJECT-TYPE
         SYNTAX   OspfIfMetricEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "A particular TOS metric for a non-virtual interface
            identified by the interface index."
         REFERENCE
            "OSPF Version 2, Appendix C.3  Router interface
            parameters"
         INDEX { ospfIfMetricIpAddress,
                 ospfIfMetricAddressLessIf,
                 ospfIfMetricTOS }
         ::= { ospfIfMetricTable 1 }

     OspfIfMetricEntry ::=
         SEQUENCE {
             ospfIfMetricIpAddress
                 IpAddress,
             ospfIfMetricAddressLessIf
                 INTEGER,
             ospfIfMetricTOS
                 TOSType,
             ospfIfMetricMetric
                 Metric,
             ospfIfMetricStatus
                 Validation
         }

     ospfIfMetricIpAddress OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The IP address of this OSPF interface.  On row
            creation, this can be derived from the instance."
         ::= { ospfIfMetricEntry 1 }

     ospfIfMetricAddressLessIf OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "For the purpose of easing the instancing of addressed
            and addressless interfaces; This variable takes the
            value 0 on interfaces with IP Addresses, and the value
            of ifIndex for interfaces having no IP Address.  On row
            creation, this can be derived from the instance."
         ::= { ospfIfMetricEntry 2 }

     ospfIfMetricTOS OBJECT-TYPE
         SYNTAX   TOSType
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The type of service metric being referenced.  On row
            creation, this can be derived from the instance."
         ::= { ospfIfMetricEntry 3 }

     ospfIfMetricMetric OBJECT-TYPE
         SYNTAX   Metric
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The metric of using this type of service on this
            interface.  The default value of the TOS 0 Metric is
            10^8 / ifSpeed.

            The value FFFF is distinguished to mean 'no route via
            this TOS'."
         ::= { ospfIfMetricEntry 4 }

     ospfIfMetricStatus OBJECT-TYPE
         SYNTAX   Validation
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This variable displays the validity or invalidity of
            the entry.  Setting it to 'invalid' has the effect of
            rendering it inoperative.  The internal effect (row
            removal) is implementation dependent."
         DEFVAL   { valid }
         ::= { ospfIfMetricEntry 5 }


     --  OSPF Virtual Interface Table

     --      The Virtual Interface Table describes the virtual
     --      links that the OSPF Process is configured to
     --      carry on.

     ospfVirtIfTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfVirtIfEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "Information about this router's virtual interfaces."
         REFERENCE
            "OSPF Version 2, Appendix C.4  Virtual link parameters"
         ::= { ospf 9 }

     ospfVirtIfEntry OBJECT-TYPE
         SYNTAX   OspfVirtIfEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "Information about a single Virtual Interface."
         INDEX { ospfVirtIfAreaID, ospfVirtIfNeighbor }
         ::= { ospfVirtIfTable 1 }

     OspfVirtIfEntry ::=
         SEQUENCE {
             ospfVirtIfAreaID
                 AreaID,
             ospfVirtIfNeighbor
                 RouterID,
             ospfVirtIfTransitDelay
                 UpToMaxAge,
             ospfVirtIfRetransInterval
                 UpToMaxAge,
             ospfVirtIfHelloInterval
                 HelloRange,
             ospfVirtIfRtrDeadInterval
                 PositiveInteger,
             ospfVirtIfState
                 INTEGER,
             ospfVirtIfEvents
                 Counter,
             ospfVirtIfAuthKey
                 OCTET STRING,
             ospfVirtIfStatus
                 Validation
         }

     ospfVirtIfAreaID OBJECT-TYPE
         SYNTAX   AreaID
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The Transit Area that the Virtual Link traverses.  By
            definition, this is not 0.0.0.0"
         ::= { ospfVirtIfEntry 1 }

     ospfVirtIfNeighbor OBJECT-TYPE
         SYNTAX   RouterID
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The Router ID of the Virtual Neighbor."
         ::= { ospfVirtIfEntry 2 }

     ospfVirtIfTransitDelay OBJECT-TYPE
         SYNTAX   UpToMaxAge
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The estimated number of seconds it takes to transmit a
            link- state update packet over this interface."
         DEFVAL { 1 }
         ::= { ospfVirtIfEntry 3 }

     ospfVirtIfRetransInterval OBJECT-TYPE
         SYNTAX   UpToMaxAge
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The number of seconds between link-state advertisement
            retransmissions, for adjacencies belonging to this
            interface.  This value is also used when retransmitting
            database description and link-state request packets.
            This value should be well over the expected round-trip
            time."
         DEFVAL { 5 }
         ::= { ospfVirtIfEntry 4 }

     ospfVirtIfHelloInterval OBJECT-TYPE
         SYNTAX   HelloRange
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The length of time, in seconds, between the Hello
            packets that the router sends on the interface.  This
            value must be the same for the virtual neighbor."
         DEFVAL { 10 }
         ::= { ospfVirtIfEntry 5 }

     ospfVirtIfRtrDeadInterval OBJECT-TYPE
         SYNTAX   PositiveInteger
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The number of seconds that a router's Hello packets
            have not been seen before it's neighbors declare the
            router down.  This should be some multiple of the Hello
            interval.  This value must be the same for the virtual
            neighbor."
         DEFVAL { 60 }
         ::= { ospfVirtIfEntry 6 }

     ospfVirtIfState OBJECT-TYPE
         SYNTAX   INTEGER {
                     down (1),            -- these use the same encoding
                     pointToPoint (4)     -- as the ospfIfTable
                  }
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "OSPF virtual interface states."
         DEFVAL   { down }
         ::= { ospfVirtIfEntry 7 }

     ospfVirtIfEvents OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The number of state changes or error events on this
            Virtual Link"
         ::= { ospfVirtIfEntry 8 }

     ospfVirtIfAuthKey OBJECT-TYPE
         SYNTAX   OCTET STRING
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "If Authentication Type is simplePassword, the device
            will left adjust and zero fill to 8 octets.

            When read, ospfVifAuthKey always returns a string of
            length zero."
         REFERENCE
            "OSPF Version 2, Section 9 The Interface Data
            Structure"
         DEFVAL   { '0000000000000000'H }    -- 0.0.0.0.0.0.0.0
         ::= { ospfVirtIfEntry 9 }

     ospfVirtIfStatus OBJECT-TYPE
         SYNTAX   Validation
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This variable displays the validity or invalidity of
            the entry.  Setting it to 'invalid' has the effect of
            rendering it inoperative.  The internal effect (row
            removal) is implementation dependent."
         DEFVAL   { valid }
         ::= { ospfVirtIfEntry 10 }


     --  OSPF Neighbor Table

     --      The OSPF Neighbor Table describes all neighbors in
     --      the locality of the subject router.

     ospfNbrTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfNbrEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "A table of non-virtual neighbor information."
         REFERENCE
            "OSPF Version 2, Section 10 The Neighbor Data
            Structure"
         ::= { ospf 10 }

     ospfNbrEntry OBJECT-TYPE
         SYNTAX   OspfNbrEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The information regarding a single neighbor."
         REFERENCE
            "OSPF Version 2, Section 10 The Neighbor Data
            Structure"
         INDEX { ospfNbrIpAddr, ospfNbrAddressLessIndex }
         ::= { ospfNbrTable 1 }

     OspfNbrEntry ::=
         SEQUENCE {
             ospfNbrIpAddr
                 IpAddress,
             ospfNbrAddressLessIndex
                 InterfaceIndex,
             ospfNbrRtrId
                 RouterID,
             ospfNbrOptions
                 INTEGER,
             ospfNbrPriority
                 DesignatedRouterPriority,
             ospfNbrState
                 INTEGER,
             ospfNbrEvents
                 Counter,
             ospfNbrLSRetransQLen
                 Gauge,
             ospfNBMANbrStatus
                 Validation
         }

     ospfNbrIpAddr OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The IP address of this neighbor."
         ::= { ospfNbrEntry 1 }

     ospfNbrAddressLessIndex OBJECT-TYPE
         SYNTAX   InterfaceIndex
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            " On an interface having an IP Address, zero.  On
            addressless interfaces, the corresponding value of
            ifIndex in the Internet Standard MIB.  On row creation,
            this can be derived from the instance."
         ::= { ospfNbrEntry 2 }

     ospfNbrRtrId OBJECT-TYPE
         SYNTAX   RouterID
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "A 32-bit integer (represented as a type IpAddress)
            uniquely identifying the neighboring router in the
            Autonomous System."
         DEFVAL   { '00000000'H }    -- 0.0.0.0
         ::= { ospfNbrEntry 3 }

     ospfNbrOptions OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "A Bit Mask corresponding to the neighbor's options
            field.

            Bit 0, if set, indicates that the area accepts and
            operates on external information; if zero, it is a stub
            area.

            Bit 1, if set, indicates that the system will operate
            on Type of Service metrics other than TOS 0.  If zero,
            the neighbor will ignore all metrics except the TOS 0
            metric."
         REFERENCE
            "OSPF Version 2, Section 12.1.2 Options"
         DEFVAL { 0 }
         ::= { ospfNbrEntry 4 }

     ospfNbrPriority OBJECT-TYPE
         SYNTAX   DesignatedRouterPriority
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The priority of this neighbor in the designated router
            election algorithm.  The value 0 signifies that the
            neighbor is not eligible to become the designated
            router on this particular network."
         DEFVAL { 1 }
         ::= { ospfNbrEntry 5 }

     ospfNbrState OBJECT-TYPE
         SYNTAX   INTEGER {
                     down (1),
                     attempt (2),
                     init (3),
                     twoWay (4),
                     exchangeStart (5),
                     exchange (6),
                     loading (7),
                     full (8)
                  }
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The State of the relationship with this Neighbor."
         REFERENCE
            "OSPF Version 2, Section 10.1 Neighbor States"
         DEFVAL   { down }
         ::= { ospfNbrEntry 6 }

     ospfNbrEvents OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The number of times this neighbor relationship has
            changed state, or an error has occurred."
         ::= { ospfNbrEntry 7 }

     ospfNbrLSRetransQLen OBJECT-TYPE
         SYNTAX   Gauge
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The current length of the retransmission queue."
         DEFVAL   { 0 }
         ::= { ospfNbrEntry 8 }

     ospfNBMANbrStatus OBJECT-TYPE
         SYNTAX   Validation
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This variable displays the validity or invalidity of
            the entry.  Setting it to 'invalid' has the effect of
            rendering it inoperative.  The internal effect (row
            removal) is implementation dependent."
         DEFVAL { valid }
         ::= { ospfNbrEntry 9 }


     --  OSPF Virtual Neighbor Table

     --      This table describes all virtual neighbors.
     --      Since Virtual Links are configured in the
     --      virtual interface table, this table is read-only.

     ospfVirtNbrTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF OspfVirtNbrEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "A table of virtual neighbor information."
         REFERENCE
            "OSPF Version 2, Section 15  Virtual Links"
         ::= { ospf 11 }

     ospfVirtNbrEntry OBJECT-TYPE
         SYNTAX   OspfVirtNbrEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "Virtual neighbor information."
         INDEX { ospfVirtNbrArea, ospfVirtNbrRtrId }
         ::= { ospfVirtNbrTable 1 }

     OspfVirtNbrEntry ::=
         SEQUENCE {
             ospfVirtNbrArea
                 AreaID,
             ospfVirtNbrRtrId
                 RouterID,
             ospfVirtNbrIpAddr
                 IpAddress,
             ospfVirtNbrOptions
                 INTEGER,
             ospfVirtNbrState
                 INTEGER,
             ospfVirtNbrEvents
                 Counter,
             ospfVirtNbrLSRetransQLen
                 Gauge
         }

     ospfVirtNbrArea OBJECT-TYPE
         SYNTAX   AreaID
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The Transit Area Identifier."
         ::= { ospfVirtNbrEntry 1 }

     ospfVirtNbrRtrId OBJECT-TYPE
         SYNTAX   RouterID
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "A 32-bit integer uniquely identifying the neighboring
            router in the Autonomous System."
         ::= { ospfVirtNbrEntry 2 }

     ospfVirtNbrIpAddr OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The IP address this Virtual Neighbor is using."
         ::= { ospfVirtNbrEntry 3 }

     ospfVirtNbrOptions OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "A bit map corresponding to the neighbor's options
            field.  Thus, Bit 1, if set, indicates that the
            neighbor supports Type of Service Routing; if zero, no
            metrics other than TOS 0 are in use by the neighbor."
         ::= { ospfVirtNbrEntry 4 }

     ospfVirtNbrState OBJECT-TYPE
         SYNTAX   INTEGER {
                     down (1),
                     attempt (2),
                     init (3),
                     twoWay (4),
                     exchangeStart (5),
                     exchange (6),
                     loading (7),
                     full (8)
                  }
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The state of the Virtual Neighbor Relationship."
         ::= { ospfVirtNbrEntry 5 }

     ospfVirtNbrEvents OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The number of times this virtual link has changed its
            state, or an error has occurred."
         ::= { ospfVirtNbrEntry 6 }

     ospfVirtNbrLSRetransQLen OBJECT-TYPE
         SYNTAX   Gauge
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The current length of the retransmission queue."
         ::= { ospfVirtNbrEntry 7 }

     END
          RFC1271-MIB DEFINITIONS ::= BEGIN

              IMPORTS
                  Counter, TimeTicks                   FROM RFC1155-SMI
                  DisplayString, mib-2                 FROM RFC1213-MIB
                  OBJECT-TYPE                          FROM RFC-1212;

          --  This MIB module uses the extended OBJECT-TYPE macro as
          --  defined in [9].


          --  Remote Network Monitoring MIB

              rmon    OBJECT IDENTIFIER ::= { mib-2 16 }


              -- textual conventions

              OwnerString ::= DisplayString
              -- This data type is used to model an administratively
              -- assigned name of the owner of a resource. This
              -- information is taken from the NVT ASCII character set.
              -- It is suggested that this name contain one or more
              -- of the following:
              -- IP address, management station name, network manager's
              -- name, location, or phone number.
              -- In some cases the agent itself will be the owner of
              -- an entry.  In these cases, this string shall be set
              -- to a string starting with 'monitor'.
              --
              -- SNMP access control is articulated entirely in terms of
              -- the contents of MIB views; access to a particular SNMP
              -- object instance depends only upon its presence or
              -- absence in a particular MIB view and never upon its
              -- value or the value of related object instances. Thus,
              -- objects of this type afford resolution of resource
              -- contention only among cooperating managers; they
              -- realize no access control function with respect
              -- to uncooperative parties.
              --
              -- By convention, objects with this syntax are declared
              -- as having
              --
              --      SIZE (0..127)


              EntryStatus ::= INTEGER
                         { valid(1),
                           createRequest(2),
                           underCreation(3),
                           invalid(4)
                         }

              -- The status of a table entry.
              --
              -- Setting this object to the value invalid(4) has the
              -- effect of invalidating the corresponding entry.
              -- That is, it effectively disassociates the mapping
              -- identified with said entry.
              -- It is an implementation-specific matter as to whether
              -- the agent removes an invalidated entry from the table.
              -- Accordingly, management stations must be prepared to
              -- receive tabular information from agents that corresponds
              -- to entries currently not in use.  Proper
              -- interpretation of such entries requires examination
              -- of the relevant EntryStatus object.
              --
              -- An existing instance of this object cannot be set to
              -- createRequest(2).  This object may only be set to
              -- createRequest(2) when this instance is created.  When
              -- this object is created, the agent may wish to create
              -- supplemental object instances to complete a conceptual
              -- row in this table.  Immediately after completing the
              -- create operation, the agent must set this object to
              -- underCreation(3).
              --
              -- Entries shall exist in the underCreation(3) state until
              -- the management station is finished configuring the
              -- entry and sets this object to valid(1) or aborts,
              -- setting this object to invalid(4).  If the agent
              -- determines that an entry has been in the
              -- underCreation(3) state for an abnormally long time,
              -- it may decide that the management station has
              -- crashed.  If the agent makes this decision,
              -- it may set this object to invalid(4) to reclaim the
              -- entry.  A prudent agent will understand that the
              -- management station may need to wait for human input
              -- and will allow for that possibility in its
              -- determination of this abnormally long period.


              statistics        OBJECT IDENTIFIER ::= { rmon 1 }
              history           OBJECT IDENTIFIER ::= { rmon 2 }
              alarm             OBJECT IDENTIFIER ::= { rmon 3 }
              hosts             OBJECT IDENTIFIER ::= { rmon 4 }
              hostTopN          OBJECT IDENTIFIER ::= { rmon 5 }
              matrix            OBJECT IDENTIFIER ::= { rmon 6 }
              filter            OBJECT IDENTIFIER ::= { rmon 7 }
              capture           OBJECT IDENTIFIER ::= { rmon 8 }
              event             OBJECT IDENTIFIER ::= { rmon 9 }


          -- The Statistics Group
          --
          -- Implementation of the Statistics group is optional.
          --
          -- The statistics group contains statistics measured by the
          -- probe for each monitored interface on this device.  These
          -- statistics take the form of free running counters that
          -- start from zero when a valid entry is created.
          --
          -- This group currently has statistics defined only for
          -- Ethernet interfaces.  Each etherStatsEntry contains
          -- statistics for one Ethernet interface.  The probe must
          -- create one etherStats entry for each monitored Ethernet
          -- interface on the device.

          etherStatsTable OBJECT-TYPE
              SYNTAX SEQUENCE OF EtherStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of Ethernet statistics entries."
              ::= { statistics 1 }

          etherStatsEntry OBJECT-TYPE
              SYNTAX EtherStatsEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics kept for a particular
                  Ethernet interface."
              INDEX { etherStatsIndex }
              ::= { etherStatsTable 1 }

          EtherStatsEntry ::= SEQUENCE {
              etherStatsIndex                    INTEGER (1..65535),
              etherStatsDataSource               OBJECT IDENTIFIER,
              etherStatsDropEvents               Counter,
              etherStatsOctets                   Counter,
              etherStatsPkts                     Counter,
              etherStatsBroadcastPkts            Counter,
              etherStatsMulticastPkts            Counter,
              etherStatsCRCAlignErrors           Counter,
              etherStatsUndersizePkts            Counter,
              etherStatsOversizePkts             Counter,
              etherStatsFragments                Counter,
              etherStatsJabbers                  Counter,
              etherStatsCollisions               Counter,
              etherStatsPkts64Octets             Counter,
              etherStatsPkts65to127Octets        Counter,
              etherStatsPkts128to255Octets       Counter,
              etherStatsPkts256to511Octets       Counter,
              etherStatsPkts512to1023Octets      Counter,
              etherStatsPkts1024to1518Octets     Counter,
              etherStatsOwner                    DisplayString,
              etherStatsStatus                   EntryStatus
          }

          etherStatsIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of this object uniquely identifies this
                  etherStats entry."
              ::= { etherStatsEntry 1 }

          etherStatsDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the source of the data that
                  this etherStats entry is configured to analyze.  This
                  source can be any ethernet interface on this device.
                  In order to identify a particular interface, this
                  object shall identify the instance of the ifIndex
                  object, defined in [4,6], for the desired interface.
                  For example, if an entry were to receive data from
                  interface #1, this object would be set to ifIndex.1.

                  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
                  etherStatsStatus object is equal to valid(1)."
              ::= { etherStatsEntry 2 }

          etherStatsDropEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of events in which packets
                  were dropped by the probe due to lack of resources.
                  Note that this number is not necessarily the number of
                  packets dropped; it is just the number of times this
                  condition has been detected."
              ::= { etherStatsEntry 3 }

          etherStatsOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of octets of data (including
                  those in bad packets) received on the
                  network (excluding framing bits but including
                  FCS octets)."
              ::= { etherStatsEntry 4 }

          etherStatsPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including error packets)
                  received."
              ::= { etherStatsEntry 5 }

          etherStatsBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of good packets received that were
                  directed to the broadcast address."
              ::= { etherStatsEntry 6 }

          etherStatsMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of good packets received that were
                  directed to a multicast address.  Note that this
                  number does not include packets directed to the
                  broadcast address."
              ::= { etherStatsEntry 7 }

          etherStatsCRCAlignErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that
                  had a length (excluding framing bits, but
                  including FCS octets) of between 64 and 1518
                  octets, inclusive, but were not an integral number
                  of octets in length or had a bad Frame Check
                  Sequence (FCS)."
              ::= { etherStatsEntry 8 }

          etherStatsUndersizePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that were
                  less than 64 octets long (excluding framing bits,
                  but including FCS octets) and were otherwise well
                  formed."
              ::= { etherStatsEntry 9 }

          etherStatsOversizePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that were
                  longer than 1518 octets (excluding framing bits,
                  but including FCS octets) and were otherwise
                  well formed."
              ::= { etherStatsEntry 10 }

          etherStatsFragments OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that were not an
                  integral number of octets in length or that had a bad
                  Frame Check Sequence (FCS), and were less than 64
                  octets in length (excluding framing bits but
                  including FCS octets)."
              ::= { etherStatsEntry 11 }

          etherStatsJabbers OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received that were
                  longer than 1518 octets (excluding framing bits,
                  but including FCS octets), and were not an
                  integral number of octets in length or had
                  a bad Frame Check Sequence (FCS)."
              ::= { etherStatsEntry 12 }

          etherStatsCollisions OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The best estimate of the total number of collisions
                  on this Ethernet segment."
              ::= { etherStatsEntry 13 }

          etherStatsPkts64Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including error
                  packets) received that were 64 octets in length
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 14 }

          etherStatsPkts65to127Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including error
                  packets) received that were between
                  65 and 127 octets in length inclusive
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 15 }

          etherStatsPkts128to255Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including error
                  packets) received that were between
                  128 and 255 octets in length inclusive
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 16 }

          etherStatsPkts256to511Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including error
                  packets) received that were between
                  256 and 511 octets in length inclusive
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 17 }

          etherStatsPkts512to1023Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including error
                  packets) received that were between
                  512 and 1023 octets in length inclusive
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 18 }

          etherStatsPkts1024to1518Octets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets (including error
                  packets) received that were between
                  1024 and 1518 octets in length inclusive
                  (excluding framing bits but including FCS octets)."
              ::= { etherStatsEntry 19 }

          etherStatsOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { etherStatsEntry 20 }

          etherStatsStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this etherStats entry."
              ::= { etherStatsEntry 21 }


          -- The History Group

          -- Implementation of the History group is optional.
          --
          -- The history group records periodic statistical samples from
          -- a network and stores them for later retrieval.  The
          -- historyControl table stores configuration entries that each
          -- define an interface, polling period, and other parameters.
          -- Once samples are taken, their data is stored in an entry
          -- in a media-specific table.  Each such entry defines one
          -- sample, and is associated with the historyControlEntry that
          -- caused the sample to be taken.  Currently the only media-
          -- specific table defined is the etherHistoryTable, for
          -- Ethernet networks.
          --
          -- 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.  This tends to make more
          -- user-friendly reports, and enables comparison of reports
          -- from different probes that have relatively accurate time
          -- of day.
          --
          -- The monitor is encouraged to add two history control entries
          -- per monitored interface upon initialization that describe
          -- a short term and a long term polling period.  Suggested
          -- parameters are 30 seconds for the short term polling
          -- period and 30 minutes for the long term period.

          historyControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HistoryControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of history control entries."
              ::= { history 1 }

          historyControlEntry OBJECT-TYPE
              SYNTAX HistoryControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of parameters that set up a periodic
                  sampling of statistics."
              INDEX { historyControlIndex }
              ::= { historyControlTable 1 }

          HistoryControlEntry ::= SEQUENCE {
              historyControlIndex             INTEGER (1..65535),
              historyControlDataSource        OBJECT IDENTIFIER,
              historyControlBucketsRequested  INTEGER (1..350),
              historyControlBucketsGranted    INTEGER (1..350),
              historyControlInterval          INTEGER (1..3600),
              historyControlOwner             DisplayString,
              historyControlStatus            EntryStatus
          }

          historyControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  historyControl table.  Each such entry defines a
                  set of samples at a particular interval for an
                  interface on the device."
              ::= { historyControlEntry 1 }

          historyControlDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the source of the data for
                  which historical data was collected and
                  placed in a media-specific table on behalf of this
                  historyControlEntry.  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 [4,6], for the desired interface.  For example,
                  if an entry were to receive data from interface #1,
                  this object would be set to ifIndex.1.

                  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
                  historyControlStatus object is equal to valid(1)."
              ::= { historyControlEntry 2 }

          historyControlBucketsRequested OBJECT-TYPE
              SYNTAX INTEGER (1..350)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The requested number of discrete time intervals
                  over which data is to be saved in the part of the
                  media-specific table associated with this
                  historyControl entry.

                  When this object is created or modified, the probe
                  should set historyControlBucketsGranted as closely to
                  this object as is possible for the particular probe
                  implementation and available resources."
              DEFVAL { 50 }
              ::= { historyControlEntry 3 }

          historyControlBucketsGranted OBJECT-TYPE
              SYNTAX INTEGER (1..350)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of discrete sampling intervals
                  over which data shall be saved in the part of
                  the media-specific table associated with this
                  historyControl entry.

                  When the associated historyControlBucketsRequested
                  object is created or modified, the probe
                  should set this object as closely to the requested
                  value as is 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
                  historyControlBucketsRequested object.

                  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 media-specific table.

                  When the number of buckets reaches the value of
                  this object and a new bucket is to be added to the
                  media-specific table, the oldest bucket associated
                  with this historyControlEntry 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 media-specific table associated with this
                  historyControlEntry.  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 media-specific entries may be allowed
                  to grow."
              ::= { historyControlEntry 4 }

          historyControlInterval OBJECT-TYPE
              SYNTAX INTEGER (1..3600)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The interval in seconds over which the data is
                  sampled for each bucket in the part of the
                  media-specific table associated with this
                  historyControl entry.  This interval can
                  be set to any number of seconds between 1 and
                  3600 (1 hour).

                  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 set
                  the historyControlInterval object to a value less
                  than this interval.  This is typically most
                  important for the 'octets' counter in any
                  media-specific table.  For example, on an Ethernet
                  network, the etherHistoryOctets counter could overflow
                  in about one hour at the Ethernet's maximum
                  utilization.

                  This object may not be modified if the associated
                  historyControlStatus object is equal to valid(1)."
              DEFVAL { 1800 }
              ::= { historyControlEntry 5 }

          historyControlOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is therefore
                  using the resources assigned to it."
              ::= { historyControlEntry 6 }

          historyControlStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this historyControl entry.

                  Each instance of the media-specific table associated
                  with this historyControlEntry will be deleted by the
                  agent if this historyControlEntry is not equal to
                  valid(1)."
              ::= { historyControlEntry 7 }


          -- Ether History table

          etherHistoryTable OBJECT-TYPE
              SYNTAX SEQUENCE OF EtherHistoryEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of Ethernet history entries."
              ::= { history 2 }

          etherHistoryEntry OBJECT-TYPE
              SYNTAX EtherHistoryEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "An historical sample of Ethernet statistics on a
                  particular Ethernet interface.  This sample is
                  associated with the historyControlEntry which set
                  up the parameters for a regular collection of these
                  samples."
              INDEX { etherHistoryIndex , etherHistorySampleIndex }
              ::= { etherHistoryTable 1 }

          EtherHistoryEntry ::= SEQUENCE {
              etherHistoryIndex                 INTEGER (1..65535),
              etherHistorySampleIndex           INTEGER,
              etherHistoryIntervalStart         TimeTicks,
              etherHistoryDropEvents            Counter,
              etherHistoryOctets                Counter,
              etherHistoryPkts                  Counter,
              etherHistoryBroadcastPkts         Counter,
              etherHistoryMulticastPkts         Counter,
              etherHistoryCRCAlignErrors        Counter,
              etherHistoryUndersizePkts         Counter,
              etherHistoryOversizePkts          Counter,
              etherHistoryFragments             Counter,
              etherHistoryJabbers               Counter,
              etherHistoryCollisions            Counter,
              etherHistoryUtilization           INTEGER (0..10000)
          }

          etherHistoryIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The history of which this entry is a part.  The
                  history identified by a particular value of this
                  index is the same history as identified
                  by the same value of historyControlIndex."
              ::= { etherHistoryEntry 1 }

          etherHistorySampleIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies the particular
                  sample this entry represents among all samples
                  associated with the same historyControlEntry.
                  This index starts at 1 and increases by one
                  as each new sample is taken."
              ::= { etherHistoryEntry 2 }

          etherHistoryIntervalStart OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              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 the probe to delay collecting the
                  first sample of the history, as each sample must be
                  of the same interval.  Also note that the sample which
                  is currently being collected is not accessible in this
                  table until the end of its interval."
              ::= { etherHistoryEntry 3 }

          etherHistoryDropEvents OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of events in which packets
                  were dropped by the probe due to lack of resources
                  during this interval.  Note that this number is not
                  necessarily the number of packets dropped, it is just
                  the number of times this condition has been detected."
              ::= { etherHistoryEntry 4 }

          etherHistoryOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of octets of data (including
                  those in bad packets) received on the
                  network (excluding framing bits but including
                  FCS octets)."
              ::= { etherHistoryEntry 5 }

          etherHistoryPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets (including error packets)
                  received during this sampling interval."
              ::= { etherHistoryEntry 6 }

          etherHistoryBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets received during this
                  sampling interval that were directed to the
                  broadcast address."
              ::= { etherHistoryEntry 7 }

          etherHistoryMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets received during this
                  sampling interval that were directed to a
                  multicast address.  Note that this number does not
                  include packets addressed to the broadcast address."
              ::= { etherHistoryEntry 8 }

          etherHistoryCRCAlignErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets received during this
                  sampling interval that had a length (excluding
                  framing bits but including FCS octets) between
                  64 and 1518 octets, inclusive, but were not an
                  integral number of octets in length or had a
                  bad Frame Check Sequence (FCS)."
              ::= { etherHistoryEntry 9 }

          etherHistoryUndersizePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets received during this
                  interval that were less than 64 octets long
                  (excluding framing bits but including FCS
                  octets) and were otherwise well formed."
              ::= { etherHistoryEntry 10 }

          etherHistoryOversizePkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets received during this
                  interval that were longer than 1518 octets
                  (excluding framing bits but including FCS
                  octets) but were otherwise well formed."
              ::= { etherHistoryEntry 11 }

          etherHistoryFragments OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The total number of packets received during this
                  sampling interval that were not an integral
                  number of octets in length or that
                  had a bad Frame Check Sequence (FCS), and
                  were less than 64 octets in length (excluding
                  framing bits but including FCS octets)."
              ::= { etherHistoryEntry 12 }

          etherHistoryJabbers OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets received during this
                  interval that were longer than 1518 octets
                  (excluding framing bits but including FCS octets),
                  and were not an integral number of octets in
                  length or had a bad Frame Check Sequence (FCS)."
              ::= { etherHistoryEntry 13 }

          etherHistoryCollisions OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The best estimate of the total number of collisions
                  on this Ethernet segment during this interval."
              ::= { etherHistoryEntry 14 }

          etherHistoryUtilization OBJECT-TYPE
              SYNTAX INTEGER (0..10000)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The best estimate of the mean physical layer
                  network utilization on this interface during this
                  interval, in hundredths of a percent."
              ::= { etherHistoryEntry 15 }


          -- The Alarm Group

          -- Implementation of the Alarm group is optional.
          --
          -- The Alarm Group requires the implementation of the Event
          -- group.
          --
          -- The Alarm group periodically takes statistical samples from
          -- variables in the probe and compares them to thresholds
          -- that have been configured.  The alarm table stores
          -- configuration entries that each define a variable,
          -- polling period, and threshold parameters.  If a sample is
          -- found to cross the threshold values, an event is
          -- generated.  Only variables that resolve to an ASN.1
          -- primitive type of INTEGER (INTEGER, Counter,
          -- Gauge, or TimeTicks) may be monitored in this way.
          --
          -- This function has a hysteresis mechanism to limit the
          -- generation of events.  This mechanism generates one event
          -- as a threshold is crossed in the appropriate direction.
          -- No more events are generated for that threshold until the
          -- opposite threshold is crossed.
          --
          -- In the case of a sampling a deltaValue, a probe may
          -- implement this mechanism with more precision if it takes
          -- a delta sample twice per period, each time comparing the
          -- sum of the latest two samples to the threshold.  This
          -- allows the detection of threshold crossings
          -- that span the sampling boundary.  Note that this does not
          -- require any special configuration of the threshold value.
          -- It is suggested that probes implement this more precise
          -- algorithm.

          alarmTable OBJECT-TYPE
              SYNTAX SEQUENCE OF AlarmEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of alarm entries."
              ::= { alarm 1 }

          alarmEntry OBJECT-TYPE
              SYNTAX AlarmEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of parameters that set up a periodic checking
                  for alarm conditions."
              INDEX { alarmIndex }
              ::= { alarmTable 1 }

          AlarmEntry ::= SEQUENCE {
              alarmIndex                    INTEGER (1..65535),
              alarmInterval                 INTEGER,
              alarmVariable                 OBJECT IDENTIFIER,
              alarmSampleType               INTEGER,
              alarmValue                    INTEGER,
              alarmStartupAlarm             INTEGER,
              alarmRisingThreshold          INTEGER,
              alarmFallingThreshold         INTEGER,
              alarmRisingEventIndex         INTEGER (0..65535),
              alarmFallingEventIndex        INTEGER (0..65535),
              alarmOwner                    DisplayString,
              alarmStatus                   EntryStatus
          }

          alarmIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  alarm table.  Each such entry defines a
                  diagnostic sample at a particular interval
                  for an object on the device."
              ::= { alarmEntry 1 }

          alarmInterval OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The interval in seconds over which the data is
                  sampled and compared with the rising and falling
                  thresholds.  When setting this variable, care
                  should be given to ensure that the variable being
                  monitored will not exceed 2^31 - 1 and roll
                  over the alarmValue object during the interval.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 2 }

          alarmVariable OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The object identifier of the particular variable to
                  be sampled.  Only variables that resolve to an ASN.1
                  primitive type of INTEGER (INTEGER, 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 alarm mechanism, the
                  probe must only grant write access to this object in
                  those views that have read access to all objects on
                  the probe.

                  During a set operation, if the supplied variable
                  name is not available in the selected MIB view, a
                  badValue error must be returned.  If at any time
                  the variable name of an established alarmEntry is
                  no longer available in the selected MIB view, the
                  probe must change the status of this alarmEntry
                  to invalid(4).

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 3 }

          alarmSampleType OBJECT-TYPE
              SYNTAX INTEGER {
                  absoluteValue(1),
                  deltaValue(2)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The method of sampling the selected variable and
                  calculating the value to be compared against the
                  thresholds.  If the value of this object is
                  absoluteValue(1), the value of the selected variable
                  will be compared directly with the thresholds at the
                  end of the sampling interval.  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 compared with
                  the thresholds.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 4 }

          alarmValue OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of the statistic during the last sampling
                  period.  The value during the current sampling period
                  is not made available until the period is completed."
              ::= { alarmEntry 5 }

          alarmStartupAlarm OBJECT-TYPE
              SYNTAX INTEGER {
                  risingAlarm(1),
                  fallingAlarm(2),
                  risingOrFallingAlarm(3)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The alarm that may be sent when this entry is first
                  set to valid.  If the first sample after this entry
                  becomes valid is greater than or equal to the
                  risingThreshold and alarmStartupAlarm is equal to
                  risingAlarm(1) or risingOrFallingAlarm(3), then a
                  single rising alarm will be generated.  If the first
                  sample after this entry becomes valid is less than
                  or equal to the fallingThreshold and
                  alarmStartupAlarm is equal to fallingAlarm(2) or
                  risingOrFallingAlarm(3), then a single falling
                  alarm will be generated.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 6 }

          alarmRisingThreshold OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "A threshold for the sampled statistic.  When the
                  current sampled value is greater than or equal to
                  this threshold, and the value at the last sampling
                  interval was less than this threshold, a single
                  event will be generated.
                  A single event will also be generated if the first
                  sample after this entry becomes valid is greater
                  than or equal to this threshold and the associated
                  alarmStartupAlarm is equal to risingAlarm(1) or
                  risingOrFallingAlarm(3).

                  After a rising event is generated, another such event
                  will not be generated until the sampled value
                  falls below this threshold and reaches the
                  alarmFallingThreshold.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 7 }

          alarmFallingThreshold OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "A threshold for the sampled statistic.  When the
                  current sampled value is less than or equal to
                  this threshold, and the value at the last sampling
                  interval was greater than this threshold, a single
                  event will be generated.
                  A single event will also be generated if the first
                  sample after this entry becomes valid is less than or
                  equal to this threshold and the associated
                  alarmStartupAlarm is equal to fallingAlarm(2) or
                  risingOrFallingAlarm(3).

                  After a falling event is generated, another such event
                  will not be generated until the sampled value
                  rises above this threshold and reaches the
                  alarmRisingThreshold.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 8 }

          alarmRisingEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The index of the eventEntry that is
                  used when a rising threshold is crossed.  The
                  eventEntry identified by a particular value of
                  this index is the same as identified by the same value
                  of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then
                  no association exists.  In particular, if this value
                  is zero, no associated event will be generated, as
                  zero is not a valid event index.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 9 }

          alarmFallingEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The index of the eventEntry that is
                  used when a falling threshold is crossed.  The
                  eventEntry identified by a particular value of
                  this index is the same as identified by the same value
                  of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then
                  no association exists.  In particular, if this value
                  is zero, no associated event will be generated, as
                  zero is not a valid event index.

                  This object may not be modified if the associated
                  alarmStatus object is equal to valid(1)."
              ::= { alarmEntry 10 }

          alarmOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { alarmEntry 11 }

          alarmStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this alarm entry."
              ::= { alarmEntry 12 }


          -- The Host Group

          -- Implementation of the Host group is optional.
          --
          -- The host group discovers new hosts on the network by
          -- keeping a list of source and destination MAC Addresses seen
          -- in good packets.  For each of these addresses, the host
          -- group keeps a set of statistics.  The hostControlTable
          -- controls which interfaces this function is performed on,
          -- and contains some information about the process.  On
          -- behalf of each hostControlEntry, data is collected on an
          -- interface and placed both the hostTable and the
          -- hostTimeTable.  If the monitoring device finds itself
          -- short of resources, it may delete entries as needed.  It
          -- is suggested that the device delete the least recently
          -- used entries first.

          -- The hostTable contains entries for each address
          -- discovered on a particular interface.  Each entry
          -- contains statistical data about that host.  This table
          -- is indexed by the MAC address of the host, through
          -- which a random access may be achieved.

          -- The hostTimeTable contains data in the same format as the
          -- hostTable, and must contain the same set of hosts, but is
          -- indexed using hostTimeCreationOrder rather than hostAddress.
          -- The hostTimeCreationOrder is an integer which reflects
          -- the relative order in which a particular entry was
          -- discovered and thus inserted into the table.  As this
          -- order, and thus index, is among those entries currently
          -- in the table, the index for a particular entry may change
          -- if an (earlier) entry is deleted.  Thus the association
          -- between hostTimeCreationOrder and hostTimeEntry may be
          -- broken at any time.

          -- The hostTimeTable has two important uses.  The first is the
          -- fast download of this potentially large table.  Because the
          -- index of this table runs from 1 to the size of the table,
          -- inclusive, its values are predictable.  This allows very
          -- efficient packing of variables into SNMP PDU's and allows
          -- a table transfer to have multiple packets outstanding.
          -- These benefits increase transfer rates tremendously.

          -- The second use of the hostTimeTable is the efficient
          -- discovery by the management station of new entries added
          -- to the table.  After the management station has
          -- downloaded the entire table, it knows that new entries
          -- will be added immediately after the end of the current
          -- table.  It can thus detect new entries there
          -- and retrieve them easily.

          -- Because the association between hostTimeCreationOrder and
          -- hostTimeEntry may be broken at any time, the management
          -- station must monitor the related hostControlLastDeleteTime
          -- object.  When the management station thus detects a deletion,
          -- it must assume that any such associations have been broken,
          -- and invalidate any it has stored locally.  This includes
          -- restarting any download of the hostTimeTable that may have
          -- been in progress, as well as rediscovering the end of the
          -- hostTimeTable so that it may detect new entries.  If the
          -- management station does not detect the broken association,
          -- it may continue to refer to a particular host by its
          -- creationOrder while unwittingly retrieving the data
          -- associated with another host entirely.  If this happens
          -- while downloading the host table, the management station
          -- may fail to download all of the entries in the table.


          hostControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of host table control entries."
              ::= { hosts 1 }

          hostControlEntry OBJECT-TYPE
              SYNTAX HostControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of parameters that set up the discovery of
                  hosts on a particular interface and the collection
                  of statistics about these hosts."
              INDEX { hostControlIndex }
              ::= { hostControlTable 1 }

          HostControlEntry ::= SEQUENCE {
              hostControlIndex            INTEGER (1..65535),
              hostControlDataSource       OBJECT IDENTIFIER,
              hostControlTableSize        INTEGER,
              hostControlLastDeleteTime   TimeTicks,
              hostControlOwner            DisplayString,
              hostControlStatus           EntryStatus
          }

          hostControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  hostControl table.  Each such entry defines
                  a function that discovers hosts on a particular
                  interface and places statistics about them in the
                  hostTable and the hostTimeTable on behalf of this
                  hostControlEntry."
              ::= { hostControlEntry 1 }

          hostControlDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the source of the data for
                  this instance of the host function.  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 [4,6], for the desired interface.  For example,
                  if an entry were to receive data from interface #1,
                  this object would be set to ifIndex.1.

                  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
                  hostControlStatus object is equal to valid(1)."
              ::= { hostControlEntry 2 }

          hostControlTableSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of hostEntries in the hostTable and the
                  hostTimeTable associated with this hostControlEntry."
              ::= { hostControlEntry 3 }

          hostControlLastDeleteTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when the last entry
                  was deleted from the portion of the hostTable
                  associated with this hostControlEntry.  If no
                  deletions have occurred, this value shall be zero."
              ::= { hostControlEntry 4 }

          hostControlOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { hostControlEntry 5 }

          hostControlStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this hostControl entry.

                  If this object is not equal to valid(1), all
                  associated entries in the hostTable,
                  hostTimeTable, and the hostTopNTable shall be
                  deleted by the agent."
              ::= { hostControlEntry 6 }

          hostTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of host entries."
              ::= { hosts 2 }

          hostEntry OBJECT-TYPE
              SYNTAX HostEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics for a particular host
                  that has been discovered on an interface of this
                  device."
              INDEX { hostIndex, hostAddress }
              ::= { hostTable 1 }

          HostEntry ::= SEQUENCE {
              hostAddress             OCTET STRING,
              hostCreationOrder       INTEGER (1..65535),
              hostIndex               INTEGER (1..65535),
              hostInPkts              Counter,
              hostOutPkts             Counter,
              hostInOctets            Counter,
              hostOutOctets           Counter,
              hostOutErrors           Counter,
              hostOutBroadcastPkts    Counter,
              hostOutMulticastPkts    Counter
          }

          hostAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The physical address of this host."
              ::= { hostEntry 1 }

          hostCreationOrder OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that defines the relative ordering of
                  the creation time of hosts captured for a
                  particular hostControlEntry.  This index shall
                  be between 1 and N, where N is the value of
                  the associated hostControlTableSize.  The ordering
                  of the indexes is based on the order of each entry's
                  insertion into the table, in which entries added
                  earlier have a lower index value than entries added
                  later.

                  It is important to note that the order for a
                  particular entry may change as an (earlier) entry
                  is deleted from the table.  Because this order may
                  change, management stations should make use of the
                  hostControlLastDeleteTime variable in the
                  hostControlEntry associated with the relevant
                  portion of the hostTable.  By observing
                  this variable, the management station may detect
                  the circumstances where a previous association
                  between a value of hostCreationOrder
                  and a hostEntry may no longer hold."
              ::= { hostEntry 2 }

          hostIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The set of collected host statistics of which
                  this entry is a part.  The set of hosts
                  identified by a particular value of this
                  index is associated with the hostControlEntry
                  as identified by the same value of hostControlIndex."
              ::= { hostEntry 3 }

          hostInPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets without errors transmitted to
                  this address since it was added to the hostTable."
              ::= { hostEntry 4 }

          hostOutPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets including errors transmitted
                  by this address since it was added to the hostTable."
              ::= { hostEntry 5 }

          hostInOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets transmitted to this address
                  since it was added to the hostTable (excluding
                  framing bits but including FCS octets), except for
                  those octets in packets that contained errors."
              ::= { hostEntry 6 }

          hostOutOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets transmitted by this address
                  since it was added to the hostTable (excluding
                  framing bits but including FCS octets), including
                  those octets in packets that contained errors."
              ::= { hostEntry 7 }

          hostOutErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of error packets transmitted by this
                  address since this host was added to the hostTable."
              ::= { hostEntry 8 }

          hostOutBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets transmitted by this
                  address that were directed to the broadcast address
                  since this host was added to the hostTable."
              ::= { hostEntry 9 }

          hostOutMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets transmitted by this
                  address that were directed to a multicast address
                  since this host was added to the hostTable.
                  Note that this number does not include packets
                  directed to the broadcast address."
              ::= { hostEntry 10 }


          -- host Time Table

          hostTimeTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostTimeEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of time-ordered host table entries."
              ::= { hosts 3 }

          hostTimeEntry OBJECT-TYPE
              SYNTAX HostTimeEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics for a particular host
                  that has been discovered on an interface of this
                  device.  This collection includes the relative
                  ordering of the creation time of this object."
              INDEX { hostTimeIndex, hostTimeCreationOrder }
              ::= { hostTimeTable 1 }

          HostTimeEntry ::= SEQUENCE {
              hostTimeAddress              OCTET STRING,
              hostTimeCreationOrder        INTEGER (1..65535),
              hostTimeIndex                INTEGER (1..65535),
              hostTimeInPkts               Counter,
              hostTimeOutPkts              Counter,
              hostTimeInOctets             Counter,
              hostTimeOutOctets            Counter,
              hostTimeOutErrors            Counter,
              hostTimeOutBroadcastPkts     Counter,
              hostTimeOutMulticastPkts     Counter
          }

          hostTimeAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The physical address of this host."
              ::= { hostTimeEntry 1 }

          hostTimeCreationOrder OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in
                  the hostTime table among those entries associated
                  with the same hostControlEntry.  This index shall
                  be between 1 and N, where N is the value of
                  the associated hostControlTableSize.  The ordering
                  of the indexes is based on the order of each entry's
                  insertion into the table, in which entries added
                  earlier have a lower index value than entries added
                  later.  Thus the management station has the ability
                  to learn of new entries added to this table without
                  downloading the entire table.

                  It is important to note that the index for a
                  particular entry may change as an (earlier) entry
                  is deleted from the table.  Because this order may
                  change, management stations should make use of the
                  hostControlLastDeleteTime variable in the
                  hostControlEntry associated with the relevant
                  portion of the hostTimeTable.  By observing
                  this variable, the management station may detect
                  the circumstances where a download of the table
                  may have missed entries, and where a previous
                  association between a value of hostTimeCreationOrder
                  and a hostTimeEntry may no longer hold."
              ::= { hostTimeEntry 2 }

          hostTimeIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The set of collected host statistics of which
                  this entry is a part.  The set of hosts
                  identified by a particular value of this
                  index is associated with the hostControlEntry
                  as identified by the same value of hostControlIndex."
              ::= { hostTimeEntry 3 }

          hostTimeInPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets without errors transmitted to
                  this address since it was added to the hostTimeTable."
              ::= { hostTimeEntry 4 }

          hostTimeOutPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets including errors transmitted
                  by this address since it was added to the
                  hostTimeTable."
              ::= { hostTimeEntry 5 }

          hostTimeInOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets transmitted to this address
                  since it was added to the hostTimeTable (excluding
                  framing bits but including FCS octets), except for
                  those octets in packets that contained errors."
              ::= { hostTimeEntry 6 }

          hostTimeOutOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets transmitted by this address since
                  it was added to the hostTimeTable (excluding framing
                  bits but including FCS octets), including those
                  octets in packets that contained errors."
              ::= { hostTimeEntry 7 }

          hostTimeOutErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of error packets transmitted by this
                  address since this host was added to the
                  hostTimeTable."
              ::= { hostTimeEntry 8 }

          hostTimeOutBroadcastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets transmitted by this
                  address that were directed to the broadcast address
                  since this host was added to the hostTimeTable."
              ::= { hostTimeEntry 9 }

          hostTimeOutMulticastPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of good packets transmitted by this
                  address that were directed to a multicast address
                  since this host was added to the hostTimeTable.
                  Note that this number does not include packets
                  directed to the broadcast address."
              ::= { hostTimeEntry 10 }


          -- The Host Top "N" Group

          -- Implementation of the Host Top N group is optional.
          --
          -- The Host Top N group requires the implementation of the
          -- host group.
          --
          -- The Host Top N group is used to prepare reports that
          -- describe the hosts that top a list ordered by one of
          -- their statistics.  The available statistics are samples
          -- of one of their base statistics, over an interval
          -- specified by the management station.  Thus, these
          -- statistics are rate based.  The management
          -- station also selects how many such hosts are reported.

          -- The hostTopNControlTable is used to initiate the generation
          -- of such a report.  The management station may select the
          -- parameters of such a report, such as which interface,
          -- which statistic, how many hosts, and the start and stop
          -- times of the sampling.  When the report is prepared,
          -- entries are created in the hostTopNTable associated with
          -- the relevant hostTopNControlEntry.  These entries are
          -- static for each report after it has been prepared.

          hostTopNControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostTopNControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of top N host control entries."
              ::= { hostTopN 1 }

          hostTopNControlEntry OBJECT-TYPE
              SYNTAX HostTopNControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of parameters that control the creation of a
                  report of the top N hosts according to several
                  metrics."
              INDEX { hostTopNControlIndex }
              ::= { hostTopNControlTable 1 }

          HostTopNControlEntry ::= SEQUENCE {
              hostTopNControlIndex    INTEGER (1..65535),
              hostTopNHostIndex       INTEGER (1..65535),
              hostTopNRateBase        INTEGER,
              hostTopNTimeRemaining   INTEGER,
              hostTopNDuration        INTEGER,
              hostTopNRequestedSize   INTEGER,
              hostTopNGrantedSize     INTEGER,
              hostTopNStartTime       TimeTicks,
              hostTopNOwner           DisplayString,
              hostTopNStatus          EntryStatus
          }

          hostTopNControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the hostTopNControl table.  Each such
                  entry defines one top N report prepared for
                  one interface."
              ::= { hostTopNControlEntry 1 }

          hostTopNHostIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The host table for which a top N report will be
                  prepared on behalf of this entry.  The host table
                  identified by a particular value of this index is
                  associated with the same host table as identified
                  by the same value of hostIndex.

                  This object may not be modified if the associated
                  hostTopNStatus object is equal to valid(1)."
              ::= { hostTopNControlEntry 2 }

          hostTopNRateBase OBJECT-TYPE
              SYNTAX INTEGER {
                      hostTopNInPkts(1),
                      hostTopNOutPkts(2),
                      hostTopNInOctets(3),
                      hostTopNOutOctets(4),
                      hostTopNOutErrors(5),
                      hostTopNOutBroadcastPkts(6),
                      hostTopNOutMulticastPkts(7)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The variable for each host that the hostTopNRate
                  variable is based upon.

                  This object may not be modified if the associated
                  hostTopNStatus object is equal to valid(1)."
              ::= { hostTopNControlEntry 3 }

          hostTopNTimeRemaining OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              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, which is loaded into the associated
                  hostTopNDuration object.

                  When this object is set to a non-zero value, any
                  associated hostTopNEntries shall be made
                  inaccessible by the monitor.  While the value of this
                  object is non-zero, it decrements by one per second
                  until it reaches zero.  During this time, all
                  associated hostTopNEntries shall remain
                  inaccessible.  At the time that this object
                  decrements to zero, the report is made
                  accessible in the hostTopNTable.  Thus, the hostTopN
                  table needs to be created only at the end of the
                  collection interval."
              DEFVAL { 0 }
              ::= { hostTopNControlEntry 4 }

          hostTopNDuration OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of seconds that this report has collected
                  during the last sampling interval, or if this
                  report is currently being collected, the number
                  of seconds that this report is being collected
                  during this sampling interval.

                  When the associated hostTopNTimeRemaining 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 hostTopNTimeRemaining is set.

                  This value shall be zero if no reports have been
                  requested for this hostTopNControlEntry."
              DEFVAL { 0 }
              ::= { hostTopNControlEntry 5 }

          hostTopNRequestedSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of hosts requested for the top N
                  table.

                  When this object is created or modified, the probe
                  should set hostTopNGrantedSize as closely to this
                  object as is possible for the particular probe
                  implementation and available resources."
              DEFVAL { 10 }
              ::= { hostTopNControlEntry 6 }

          hostTopNGrantedSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of hosts in the top N table.

                  When the associated hostTopNRequestedSize object is
                  created or modified, the probe should set this
                  object as closely to the requested value as is
                  possible for the particular implementation and
                  available resources. The probe must not lower this
                  value except as a result of a set to the associated
                  hostTopNRequestedSize object.

                  Hosts with the highest value of hostTopNRate shall be
                  placed in this table in decreasing order of this rate
                  until there is no more room or until there are no more
                  hosts."
              ::= { hostTopNControlEntry 7 }

          hostTopNStartTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when this top N report was
                  last started.  In other words, this is the time that
                  the associated hostTopNTimeRemaining object was
                  modified to start the requested report."
              ::= { hostTopNControlEntry 8 }

          hostTopNOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { hostTopNControlEntry 9 }

          hostTopNStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this hostTopNControl entry.
                  If this object is not equal to valid(1), all
                  associated hostTopNEntries shall be deleted by
                  the agent."
              ::= { hostTopNControlEntry 10 }

          hostTopNTable OBJECT-TYPE
              SYNTAX SEQUENCE OF HostTopNEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of top N host entries."
              ::= { hostTopN 2 }

          hostTopNEntry OBJECT-TYPE
              SYNTAX HostTopNEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of statistics for a host that is part of a
                  top N report."
              INDEX { hostTopNReport, hostTopNIndex }
              ::= { hostTopNTable 1 }

          HostTopNEntry ::= SEQUENCE {
              hostTopNReport                INTEGER (1..65535),
              hostTopNIndex                 INTEGER (1..65535),
              hostTopNAddress               OCTET STRING,
              hostTopNRate                  INTEGER
          }

          hostTopNReport OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the top N report of which
                  this entry is a part.  The set of hosts
                  identified by a particular value of this
                  object is part of the same report as identified
                  by the same value of the hostTopNControlIndex object."
              ::= { hostTopNEntry 1 }

          hostTopNIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in
                  the hostTopN table among those in the same report.
                  This index is between 1 and N, where N is the
                  number of entries in this table.  Increasing values
                  of hostTopNIndex shall be assigned to entries with
                  decreasing values of hostTopNRate until index N
                  is assigned to the entry with the lowest value of
                  hostTopNRate or there are no more hostTopNEntries."
              ::= { hostTopNEntry 2 }

          hostTopNAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The physical address of this host."
              ::= { hostTopNEntry 3 }

          hostTopNRate OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The amount of change in the selected variable
                  during this sampling interval.  The selected
                  variable is this host's instance of the object
                  selected by hostTopNRateBase."
              ::= { hostTopNEntry 4 }


          -- The Matrix Group

          -- Implementation of the Matrix group is optional.
          --
          -- The Matrix group consists of the matrixControlTable,
          -- matrixSDTable and the matrixDSTable.  These tables
          -- store statistics for a particular conversation between
          -- two addresses.  As the device detects a new conversation,
          -- including those to a non-unicast address, it creates a
          -- new entry in both of the matrix tables.
          -- It must only create new entries based on information
          -- received in good packets.  If the monitoring device finds
          -- itself short of resources, it may delete entries as needed.
          -- It is suggested that the device delete the least recently
          -- used entries first.

          matrixControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF MatrixControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of information entries for the
                  traffic matrix on each interface."
              ::= { matrix 1 }

          matrixControlEntry OBJECT-TYPE
              SYNTAX MatrixControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "Information about a traffic matrix on a
                  particular interface."
              INDEX { matrixControlIndex }
              ::= { matrixControlTable 1 }

          MatrixControlEntry ::= SEQUENCE {
              matrixControlIndex           INTEGER (1..65535),
              matrixControlDataSource      OBJECT IDENTIFIER,
              matrixControlTableSize       INTEGER,
              matrixControlLastDeleteTime  TimeTicks,
              matrixControlOwner           DisplayString,
              matrixControlStatus          EntryStatus
          }

          matrixControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  matrixControl table.  Each such entry defines
                  a function that discovers conversations on a particular
                  interface and places statistics about them in the
                  matrixSDTable and the matrixDSTable on behalf of this
                  matrixControlEntry."
              ::= { matrixControlEntry 1 }

          matrixControlDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the source of
                  the data from which this entry creates a traffic matrix.
                  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 [4,6], for the desired interface.  For
                  example, if an entry were to receive data from
                  interface #1, this object would be set to ifIndex.1.

                  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
                  matrixControlStatus object is equal to valid(1)."
              ::= { matrixControlEntry 2 }

          matrixControlTableSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of matrixSDEntries in the matrixSDTable
                  for this interface.  This must also be the value of
                  the number of entries in the matrixDSTable for this
                  interface."
              ::= { matrixControlEntry 3 }

          matrixControlLastDeleteTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when the last entry
                  was deleted from the portion of the matrixSDTable
                  or matrixDSTable associated with this
                  matrixControlEntry.
                  If no deletions have occurred, this value shall be
                  zero."
              ::= { matrixControlEntry 4 }

          matrixControlOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { matrixControlEntry 5 }

          matrixControlStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this matrixControl entry.

                  If this object is not equal to valid(1), all
                  associated entries in the matrixSDTable and the
                  matrixDSTable shall be deleted by the agent."
              ::= { matrixControlEntry 6 }

          matrixSDTable OBJECT-TYPE
              SYNTAX SEQUENCE OF MatrixSDEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of traffic matrix entries indexed by
                  source and destination MAC address."
              ::= { matrix 2 }

          matrixSDEntry OBJECT-TYPE
              SYNTAX MatrixSDEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics for communications between
                  two addresses on a particular interface."
              INDEX { matrixSDIndex,
                      matrixSDSourceAddress, matrixSDDestAddress }
              ::= { matrixSDTable 1 }

          MatrixSDEntry ::= SEQUENCE {
              matrixSDSourceAddress       OCTET STRING,
              matrixSDDestAddress         OCTET STRING,
              matrixSDIndex               INTEGER (1..65535),
              matrixSDPkts                Counter,
              matrixSDOctets              Counter,
              matrixSDErrors              Counter
          }

          matrixSDSourceAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The source physical address."
              ::= { matrixSDEntry 1 }

          matrixSDDestAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The destination physical address."
              ::= { matrixSDEntry 2 }

          matrixSDIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The set of collected matrix statistics of which
                  this entry is a part.  The set of matrix statistics
                  identified by a particular value of this index
                  is associated with the same matrixControlEntry
                  as identified by the same value of matrixControlIndex."
              ::= { matrixSDEntry 3 }

          matrixSDPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets transmitted from the source
                  address to the destination address (this number
                  includes error packets)."
              ::= { matrixSDEntry 4 }

          matrixSDOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets (excluding framing bits but
                  including FCS octets) contained in all packets
                  transmitted from the source address to the
                  destination address."
              ::= { matrixSDEntry 5 }

          matrixSDErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of error packets transmitted from
                  the source address to the destination address."
              ::= { matrixSDEntry 6 }


          -- Traffic matrix tables from destination to source

          matrixDSTable OBJECT-TYPE
              SYNTAX SEQUENCE OF MatrixDSEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of traffic matrix entries indexed by
                  destination and source MAC address."
              ::= { matrix 3 }

          matrixDSEntry OBJECT-TYPE
              SYNTAX MatrixDSEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A collection of statistics for communications between
                  two address on a particular interface."
              INDEX { matrixDSIndex,
                      matrixDSDestAddress, matrixDSSourceAddress }
              ::= { matrixDSTable 1 }

          MatrixDSEntry ::= SEQUENCE {
              matrixDSSourceAddress       OCTET STRING,
              matrixDSDestAddress         OCTET STRING,
              matrixDSIndex               INTEGER (1..65535),
              matrixDSPkts                Counter,
              matrixDSOctets              Counter,
              matrixDSErrors              Counter
          }

          matrixDSSourceAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The source physical address."
              ::= { matrixDSEntry 1 }

          matrixDSDestAddress OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The destination physical address."
              ::= { matrixDSEntry 2 }

          matrixDSIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The set of collected matrix statistics of which
                  this entry is a part.  The set of matrix statistics
                  identified by a particular value of this index
                  is associated with the same matrixControlEntry
                  as identified by the same value of matrixControlIndex."
              ::= { matrixDSEntry 3 }

          matrixDSPkts OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets transmitted from the source
                  address to the destination address (this number
                  includes error packets)."
              ::= { matrixDSEntry 4 }

          matrixDSOctets OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of octets (excluding framing bits
                  but including FCS octets) contained in all packets
                  transmitted from the source address to the
                  destination address."
              ::= { matrixDSEntry 5 }

          matrixDSErrors OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of error packets transmitted from
                  the source address to the destination address."
              ::= { matrixDSEntry 6 }


          -- The Filter Group

          -- Implementation of the Filter group is optional.
          --
          -- The Filter group allows packets to be captured with an
          -- arbitrary filter expression.  A logical data and
          -- event stream or "channel" is formed by the packets
          -- that match the filter expression.
          --
          -- This filter mechanism allows the creation of an arbitrary
          -- logical expression with which to filter packets.  Each
          -- filter associated with a channel is OR'ed with the others.
          -- Within a filter, any bits checked in the data and status are
          -- AND'ed with respect to other bits in the same filter.  The
          -- NotMask also allows for checking for inequality.  Finally,
          -- the channelAcceptType object allows for inversion of the
          -- whole equation.
          --
          -- The channel can be turned on or off, and can also
          -- generate events when packets pass through it.

          filterTable OBJECT-TYPE
              SYNTAX SEQUENCE OF FilterEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of packet filter entries."
              ::= { filter 1 }

          filterEntry OBJECT-TYPE
              SYNTAX FilterEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of parameters for a packet filter applied on a
                  particular interface."
              INDEX { filterIndex }
              ::= { filterTable 1 }

          FilterEntry ::= SEQUENCE {
              filterIndex                 INTEGER (1..65535),
              filterChannelIndex          INTEGER (1..65535),
              filterPktDataOffset         INTEGER,
              filterPktData               OCTET STRING,
              filterPktDataMask           OCTET STRING,
              filterPktDataNotMask        OCTET STRING,
              filterPktStatus             INTEGER,
              filterPktStatusMask         INTEGER,
              filterPktStatusNotMask      INTEGER,
              filterOwner                 DisplayString,
              filterStatus                EntryStatus
          }

          filterIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the filter table.  Each such entry defines
                  one filter that is to be applied to every packet
                  received on an interface."
              ::= { filterEntry 1 }

          filterChannelIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the channel of which this
                  filter is a part.  The filters identified by a
                  particular value of this object are associated
                  with the same channel as identified by the same
                  value of the channelIndex object."
              ::= { filterEntry 2 }

          filterPktDataOffset OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The offset from the beginning of each packet where
                  a match of packet data will be attempted.  This offset
                  is measured from the point in the physical layer
                  packet after the framing bits, if any.  For example,
                  in an Ethernet frame, this point is at the beginning
                  of the destination MAC address.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              DEFVAL { 0 }
              ::= { filterEntry 3 }

          filterPktData OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The data that is to be matched with the input packet.
                  For each packet received, this filter and the
                  accompanying filterPktDataMask and
                  filterPktDataNotMask will be adjusted for the
                  offset.  The only bits relevant to this
                  match algorithm are those that have the corresponding
                  filterPktDataMask bit equal to one.  The following
                  three rules are then applied to every packet:

                  (1) If the packet is too short and does not have data
                      corresponding to part of the filterPktData, the
                      packet will fail this data match.

                  (2) For each relevant bit from the packet with the
                      corresponding filterPktDataNotMask bit set to
                      zero, if the bit from the packet is not equal to
                      the corresponding bit from the filterPktData,
                      then the packet will fail this data match.

                  (3) If for every relevant bit from the packet with the
                      corresponding filterPktDataNotMask bit set to one,
                      the bit from the packet is equal to the
                      corresponding bit from the filterPktData, then
                      the packet will fail this data match.

                  Any packets that have not failed any of the three
                  matches above have passed this data match.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 4 }

          filterPktDataMask OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The mask that is applied to the match process.
                  After adjusting this mask for the offset, only those
                  bits in the received packet that correspond to bits
                  set in this mask are relevant for further processing
                  by the match algorithm.  The offset is applied to
                  filterPktDataMask in the same way it is applied to
                  the filter.  For the purposes of the matching
                  algorithm, if the associated filterPktData object
                  is longer than this mask, this mask is conceptually
                  extended with '1' bits until it reaches the
                  length of the filterPktData object.
                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 5 }

          filterPktDataNotMask OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The inversion mask that is applied to the match
                  process.  After adjusting this mask for the offset,
                  those relevant bits in the received packet that
                  correspond to bits cleared in this mask must all
                  be equal to their corresponding bits in the
                  filterPktData object for the packet to be accepted.
                  In addition, at least one of those relevant
                  bits in the received packet that correspond to bits
                  set in this mask must be different to its
                  corresponding bit in the filterPktData object.

                  For the purposes of the matching algorithm, if
                  the associated filterPktData object is longer than
                  this mask, this mask is conceptually extended with
                  '0' bits until it reaches the length of the
                  filterPktData object.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 6 }

          filterPktStatus OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status that is to be matched with the input
                  packet.  The only bits relevant to this match
                  algorithm are those that have the corresponding
                  filterPktStatusMask bit equal to one.

                  The following two rules are then applied to every
                  packet:

                  (1) For each relevant bit from the packet status
                      with the corresponding filterPktStatusNotMask
                      bit set to zero, if the bit from the packet
                      status is not equal to the corresponding bit
                      from the filterPktStatus, then the packet will
                      fail this status match.

                  (2) If for every relevant bit from the packet status
                      with the corresponding filterPktStatusNotMask
                      bit set to one, the bit from the packet status
                      is equal to the corresponding bit from the
                      filterPktStatus, then the packet will fail
                      this status match.

                  Any packets that have not failed either of the two
                  matches above have passed this status match.

                  The value of the packet status is a sum.  This sum
                  initially takes the value zero.  Then, for each
                  error, E, that has been discovered in this packet,
                  2 raised to a value representing E is added to the sum.
                  The errors and the bits that represent them are
                  dependent on the media type of the interface that
                  this channel is receiving packets from.

                  The errors defined for a packet captured off of an
                  Ethernet interface are as follows:

                      bit #    Error
                          0    Packet is longer than 1518 octets
                          1    Packet is shorter than 64 octets
                          2    Packet experienced a CRC or Alignment
                               error

                  For example, an Ethernet fragment would have a
                  value of 6 (2^1 + 2^2).

                  As this MIB is expanded to new media types, this
                  object will have other media-specific errors defined.

                  For the purposes of this status matching algorithm, if
                  the packet status is longer than this
                  object, filterPktStatus this object is conceptually
                  extended with '0' bits until it reaches the size of
                  the packet status.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 7 }

          filterPktStatusMask OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The mask that is applied to the status match process.
                  Only those bits in the received packet that correspond
                  to bits set in this mask are relevant for further
                  processing by the status match algorithm.  For the
                  purposes of the matching algorithm, if the
                  associated filterPktStatus object is longer than
                  this mask, this mask is conceptually extended with
                  '1' bits until it reaches the size of the
                  filterPktStatus.  In addition, if a packet status is
                  longer than this mask, this mask is conceptually
                  extended with '0' bits until it reaches the size of
                  the packet status.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 8 }

          filterPktStatusNotMask OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The inversion mask that is applied to the status match
                  process.  Those relevant bits in the received packet
                  status that correspond to bits cleared in this mask
                  must all be equal to their corresponding bits in the
                  filterPktStatus object for the packet to be accepted.
                  In addition, at least one of those relevant bits in the
                  received packet status that correspond to bits set in
                  this mask must be different to its corresponding bit
                  in the filterPktStatus object for the packet to be
                  accepted.

                  For the purposes of the matching algorithm, if the
                  associated filterPktStatus object or a packet status
                  is longer than this mask, this mask is conceptually
                  extended with '0' bits until it reaches the longer of
                  the lengths of the filterPktStatus object and the
                  packet status.

                  This object may not be modified if the associated
                  filterStatus object is equal to valid(1)."
              ::= { filterEntry 9 }

          filterOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is
                  therefore using the resources assigned to it."
              ::= { filterEntry 10 }

          filterStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this filter entry."
              ::= { filterEntry 11 }

          channelTable OBJECT-TYPE
              SYNTAX SEQUENCE OF ChannelEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of packet channel entries."
              ::= { filter 2 }

          channelEntry OBJECT-TYPE
              SYNTAX ChannelEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of parameters for a packet channel applied on a
                  particular interface."
              INDEX { channelIndex }
              ::= { channelTable 1 }

          ChannelEntry ::= SEQUENCE {
              channelIndex                 INTEGER (1..65535),
              channelIfIndex               INTEGER (1..65535),
              channelAcceptType            INTEGER,
              channelDataControl           INTEGER,
              channelTurnOnEventIndex      INTEGER (0..65535),
              channelTurnOffEventIndex     INTEGER (0..65535),
              channelEventIndex            INTEGER (0..65535),
              channelEventStatus           INTEGER,
              channelMatches               Counter,
              channelDescription           DisplayString (SIZE (0..127)),
              channelOwner                 DisplayString,
              channelStatus                EntryStatus
          }

          channelIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the channel table.  Each such
                  entry defines one channel, a logical data
                  and event stream."
              ::= { channelEntry 1 }

          channelIfIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The value of this object uniquely identifies the
                  interface on this remote network monitoring device
                  to which the associated filters are applied to allow
                  data into this channel.  The interface identified by
                  a particular value of this object is the same
                  interface as identified by the same value of the
                  ifIndex object, defined in [4,6].  The filters in
                  this group are applied to all packets on the local
                  network segment attached to the identified
                  interface.

                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 2 }

          channelAcceptType OBJECT-TYPE
              SYNTAX INTEGER {
                  acceptMatched(1),
                  acceptFailed(2)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object controls the action of the filters
                  associated with this channel.  If this object is equal
                  to acceptMatched(1), packets will be accepted to this
                  channel if they are accepted by both the packet data
                  and packet status matches of an associated filter. If
                  this object is equal to acceptFailed(2), packets will
                  be accepted to this channel only if they fail either
                  the packet data match or the packet status match of
                  each of the associated filters.
                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 3 }

          channelDataControl OBJECT-TYPE
              SYNTAX INTEGER {
                  on(1),
                  off(2)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object controls the flow of data through this
                  channel.  If this object is on(1), data, status and
                  events flow through this channel.  If this object is
                  off(2), data, status and events will not flow through
                  this channel."
              DEFVAL { off }
              ::= { channelEntry 4 }

          channelTurnOnEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The value of this object identifies the event
                  that is configured to turn the associated
                  channelDataControl from off to on when the event is
                  generated.  The event identified by a particular value
                  of this object is the same event as identified by the
                  same value of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then no
                  association exists.  In fact, if no event is intended
                  for this channel, channelTurnOnEventIndex must be
                  set to zero, a non-existent event index.

                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 5 }

          channelTurnOffEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The value of this object identifies the event
                  that is configured to turn the associated
                  channelDataControl from on to off when the event is
                  generated.  The event identified by a particular value
                  of this object is the same event as identified by the
                  same value of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then no
                  association exists.  In fact, if no event is intended
                  for this channel, channelTurnOffEventIndex must be
                  set to zero, a non-existent event index.

                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 6 }

          channelEventIndex OBJECT-TYPE
              SYNTAX INTEGER (0..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The value of this object identifies the event
                  that is configured to be generated when the
                  associated channelDataControl is on and a packet
                  is matched.  The event identified by a particular value
                  of this object is the same event as identified by the
                  same value of the eventIndex object.  If there is no
                  corresponding entry in the eventTable, then no
                  association exists.  In fact, if no event is intended
                  for this channel, channelEventIndex must be
                  set to zero, a non-existent event index.

                  This object may not be modified if the associated
                  channelStatus object is equal to valid(1)."
              ::= { channelEntry 7 }

          channelEventStatus OBJECT-TYPE
              SYNTAX INTEGER {
                  eventReady(1),
                  eventFired(2),
                  eventAlwaysReady(3)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The event status of this channel.

                  If this channel is configured to generate events
                  when packets are matched, a means of controlling
                  the flow of those events is often needed.  When
                  this object is equal to eventReady(1), a single
                  event may be generated, after which this object
                  will be set by the probe to eventFired(2).  While
                  in the eventFired(2) state, no events will be
                  generated until the object is modified to
                  eventReady(1) (or eventAlwaysReady(3)).  The
                  management station can thus easily respond to a
                  notification of an event by re-enabling this object.

                  If the management station wishes to disable this
                  flow control and allow events to be generated
                  at will, this object may be set to
                  eventAlwaysReady(3).  Disabling the flow control
                  is discouraged as it can result in high network
                  traffic or other performance problems."
              DEFVAL { eventReady }
              ::= { channelEntry 8 }

          channelMatches OBJECT-TYPE
              SYNTAX Counter
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of times this channel has matched a packet.
                  Note that this object is updated even when
                  channelDataControl is set to off."
              ::= { channelEntry 9 }

          channelDescription OBJECT-TYPE
              SYNTAX DisplayString (SIZE (0..127))
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "A comment describing this channel."
              ::= { channelEntry 10 }

          channelOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is therefore
                  using the resources assigned to it."
              ::= { channelEntry 11 }

          channelStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this channel entry."
              ::= { channelEntry 12 }


          -- The Packet Capture Group

          -- Implementation of the Packet Capture group is optional.
          --
          -- The Packet Capture Group requires implementation of the
          -- Filter Group.
          --
          -- The Packet Capture group allows packets to be captured
          -- upon a filter match.  The bufferControlTable controls
          -- the captured packets output from a channel that is
          -- associated with it.  The captured packets are placed
          -- in entries in the captureBufferTable.  These entries are
          -- associated with the bufferControlEntry on whose behalf they
          -- were stored.

          bufferControlTable OBJECT-TYPE
              SYNTAX SEQUENCE OF BufferControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of buffers control entries."
              ::= { capture 1 }

          bufferControlEntry OBJECT-TYPE
              SYNTAX BufferControlEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of parameters that control the collection of
                  a stream of packets that have matched filters."
              INDEX { bufferControlIndex }
              ::= { bufferControlTable 1 }

          BufferControlEntry ::= SEQUENCE {
              bufferControlIndex                INTEGER (1..65535),
              bufferControlChannelIndex         INTEGER (1..65535),
              bufferControlFullStatus           INTEGER,
              bufferControlFullAction           INTEGER,
              bufferControlCaptureSliceSize     INTEGER,
              bufferControlDownloadSliceSize    INTEGER,
              bufferControlDownloadOffset       INTEGER,
              bufferControlMaxOctetsRequested   INTEGER,
              bufferControlMaxOctetsGranted     INTEGER,
              bufferControlCapturedPackets      INTEGER,
              bufferControlTurnOnTime           TimeTicks,
              bufferControlOwner                DisplayString,
              bufferControlStatus               EntryStatus
          }

          bufferControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the bufferControl table.  The value of this
                  index shall never be zero.  Each such
                  entry defines one set of packets that is
                  captured and controlled by one or more filters."
              ::= { bufferControlEntry 1 }

          bufferControlChannelIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "An index that identifies the channel that is the
                  source of packets for this bufferControl table.
                  The channel identified by a particular value of this
                  index is the same as identified by the same value of
                  the channelIndex object.

                  This object may not be modified if the associated
                  bufferControlStatus object is equal to valid(1)."
              ::= { bufferControlEntry 2 }

          bufferControlFullStatus OBJECT-TYPE
              SYNTAX INTEGER {
                      spaceAvailable(1),
                      full(2)
              }
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "This object shows whether the buffer has room to
                  accept new packets or if it is full.

                  If the status is spaceAvailable(1), the buffer is
                  accepting new packets normally.  If the status is
                  full(2) and the associated bufferControlFullAction
                  object is wrapWhenFull, the buffer is accepting new
                  packets by deleting enough of the oldest packets
                  to make room for new ones as they arrive.  Otherwise,
                  if the status is full(2) and the
                  bufferControlFullAction object is lockWhenFull,
                  then the buffer has stopped collecting packets.

                  When this object is set to full(2) the probe must
                  not later set it to spaceAvailable(1) except in the
                  case of a significant gain in resources such as
                  an increase of bufferControlOctetsGranted.  In
                  particular, the wrap-mode action of deleting old
                  packets to make room for newly arrived packets
                  must not affect the value of this object."
              ::= { bufferControlEntry 3 }

          bufferControlFullAction OBJECT-TYPE
              SYNTAX INTEGER {
                      lockWhenFull(1),
                      wrapWhenFull(2)    -- FIFO
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "Controls the action of the buffer when it
                  reaches the full status.  When in the lockWhenFull(1)
                  state a packet is added to the buffer that
                  fills the buffer, the bufferControlFullStatus will
                  be set to full(2) and this buffer will stop capturing
                  packets."
              ::= { bufferControlEntry 4 }

          bufferControlCaptureSliceSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of octets of each packet
                  that will be saved in this capture buffer.
                  For example, if a 1500 octet packet is received by
                  the probe and this object is set to 500, then only
                  500 octets of the packet will be stored in the
                  associated capture buffer.  If this variable is set
                  to 0, the capture buffer will save as many octets
                  as is possible.

                  This object may not be modified if the associated
                  bufferControlStatus object is equal to valid(1)."
              DEFVAL { 100 }
              ::= { bufferControlEntry 5 }

          bufferControlDownloadSliceSize OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of octets of each packet
                  in this capture buffer that will be returned in
                  an SNMP retrieval of that packet.  For example,
                  if 500 octets of a packet have been stored in the
                  associated capture buffer, the associated
                  bufferControlDownloadOffset is 0, and this
                  object is set to 100, then the captureBufferPacket
                  object that contains the packet will contain only
                  the first 100 octets of the packet.

                  A prudent manager will take into account possible
                  interoperability or fragmentation problems that may
                  occur if the download slice size is set too large.
                  In particular, conformant SNMP implementations are not
                  required to accept messages whose length exceeds 484
                  octets, although they are encouraged to support larger
                  datagrams whenever feasible."
              DEFVAL { 100 }
              ::= { bufferControlEntry 6 }

          bufferControlDownloadOffset OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The offset of the first octet of each packet
                  in this capture buffer that will be returned in
                  an SNMP retrieval of that packet.  For example,
                  if 500 octets of a packet have been stored in the
                  associated capture buffer and this object is set to
                  100, then the captureBufferPacket object that
                  contains the packet will contain bytes starting
                  100 octets into the packet."
              DEFVAL { 0 }
              ::= { bufferControlEntry 7 }

          bufferControlMaxOctetsRequested OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The requested maximum number of octets to be
                  saved in this captureBuffer, including any
                  implementation-specific overhead. If this variable
                  is set to -1, the capture buffer will save as many
                  octets as is possible.

                  When this object is created or modified, the probe
                  should set bufferControlMaxOctetsGranted as closely
                  to this object as is possible for the particular probe
                  implementation and available resources.  However, if
                  the object has the special value of -1, the probe
                  must set bufferControlMaxOctetsGranted to -1."
              DEFVAL { -1 }
              ::= { bufferControlEntry 8 }

          bufferControlMaxOctetsGranted OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The maximum number of octets that can be
                  saved in this captureBuffer, including overhead.
                  If this variable is -1, the capture buffer will save
                  as many octets as possible.

                  When the bufferControlMaxOctetsRequested object is
                  created or modified, the probe should set this object
                  as closely to the requested value as is possible for
                  the particular probe implementation and available
                  resources.  However, if the request object has the
                  special value of -1, the probe must set this object
                  to -1.  The probe must not lower this value except
                  as a result of a modification to the associated
                  bufferControlMaxOctetsRequested object.

                  When this maximum number of octets is reached
                  and a new packet is to be added to this
                  capture buffer and the corresponding
                  bufferControlFullAction is set to wrapWhenFull(2),
                  enough of the oldest packets associated with this
                  capture buffer shall be deleted by the agent so
                  that the new packet can be added.  If the
                  corresponding bufferControlFullAction is set to
                  lockWhenFull(1), the new packet shall be discarded.
                  In either case, the probe must set
                  bufferControlFullStatus to full(2).

                  When the value of this object changes to a value less
                  than the current value, entries are deleted from
                  the captureBufferTable associated with this
                  bufferControlEntry.  Enough of the
                  oldest of these captureBufferEntries shall be
                  deleted by the agent so that the number of octets
                  used 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
                  captureBufferEntries may be allowed to grow."
              ::= { bufferControlEntry 9 }

          bufferControlCapturedPackets OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of packets currently in this captureBuffer."
              ::= { bufferControlEntry 10 }

          bufferControlTurnOnTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when this capture buffer was
                  first turned on."
              ::= { bufferControlEntry 11 }

          bufferControlOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is therefore
                  using the resources assigned to it."
              ::= { bufferControlEntry 12 }

          bufferControlStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this buffer Control Entry."
              ::= { bufferControlEntry 13 }

          captureBufferTable OBJECT-TYPE
              SYNTAX SEQUENCE OF CaptureBufferEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of packets captured off of a channel."
              ::= { capture 2 }

          captureBufferEntry OBJECT-TYPE
              SYNTAX CaptureBufferEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A packet captured off of an attached network."
              INDEX { captureBufferControlIndex, captureBufferIndex }
              ::= { captureBufferTable 1 }

          CaptureBufferEntry ::= SEQUENCE {
              captureBufferControlIndex   INTEGER (1..65535),
              captureBufferIndex          INTEGER,
              captureBufferPacketID       INTEGER,
              captureBufferPacketData     OCTET STRING,
              captureBufferPacketLength   INTEGER,
              captureBufferPacketTime     INTEGER,
              captureBufferPacketStatus   INTEGER
          }

          captureBufferControlIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The index of the bufferControlEntry with which
                  this packet is associated."
              ::= { captureBufferEntry 1 }

          captureBufferIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the captureBuffer table associated with a
                  particular bufferControlEntry.  This index will
                  start at 1 and increase by one for each new packet
                  added with the same captureBufferControlIndex."
              ::= { captureBufferEntry 2 }

          captureBufferPacketID OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that describes the order of packets
                  that are received on a particular interface.
                  The packetID of a packet captured on an
                  interface is defined to be greater than the
                  packetID's of all packets captured previously on
                  the same interface.  As the captureBufferPacketID
                  object has a maximum positive value of 2^31 - 1,
                  any captureBufferPacketID object shall have the
                  value of the associated packet's packetID mod 2^31."
              ::= { captureBufferEntry 3 }

          captureBufferPacketData OBJECT-TYPE
              SYNTAX OCTET STRING
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The data inside the packet, starting at the beginning
                  of the packet plus any offset specified in the
                  associated bufferControlDownloadOffset, including any
                  link level headers.  The length of the data in this
                  object is the minimum of the length of the captured
                  packet minus the offset, the length of the associated
                  bufferControlCaptureSliceSize minus the offset, and the
                  associated bufferControlDownloadSliceSize.  If this
                  minimum is less than zero, this object shall have a
                  length of zero."
              ::= { captureBufferEntry 4 }

          captureBufferPacketLength OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The actual length (off the wire) of the packet stored
                  in this entry, including FCS octets."
              ::= { captureBufferEntry 5 }

          captureBufferPacketTime OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The number of milliseconds that had passed since
                  this capture buffer was first turned on when this
                  packet was captured."
              ::= { captureBufferEntry 6 }

          captureBufferPacketStatus OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "A value which indicates the error status of this
                  packet.

                  The value of this object is defined in the same way as
                  filterPacketStatus.  The value is a sum.  This sum
                  initially takes the value zero.  Then, for each
                  error, E, that has been discovered in this packet,
                  2 raised to a value representing E is added to the sum.

                  The errors defined for a packet captured off of an
                  Ethernet interface are as follows:

                      bit #    Error
                          0    Packet is longer than 1518 octets
                          1    Packet is shorter than 64 octets
                          2    Packet experienced a CRC or Alignment
                               error
                          3    First packet in this capture buffer after
                               it was detected that some packets were
                               not processed correctly.

                  For example, an Ethernet fragment would have a
                  value of 6 (2^1 + 2^2).

                  As this MIB is expanded to new media types, this object
                  will have other media-specific errors defined."
              ::= { captureBufferEntry 7 }


          -- The Event Group

          -- Implementation of the Event group is optional.
          --
          -- The Event group controls the generation and notification
          -- of events from this device.  Each entry in the eventTable
          -- describes the parameters of the event that can be triggered.
          -- Each event entry is fired by an associated condition located
          -- elsewhere in the MIB.  An event entry may also be associated
          -- with a function elsewhere in the MIB that will be executed
          -- when the event is generated.  For example, a channel may
          -- be turned on or off by the firing of an event.
          --
          -- Each eventEntry may optionally specify that a log entry
          -- be created on its behalf whenever the event occurs.
          -- Each entry may also specify that notification should
          -- occur by way of SNMP trap messages.  In this case, the
          -- community for the trap message is given in the associated
          -- eventCommunity object.  The enterprise and specific trap
          -- fields of the trap are determined by the condition that
          -- triggered the event.  Three traps are defined in a companion
          -- document: risingAlarm, fallingAlarm, and packetMatch.
          -- If the eventTable is triggered by a condition specified
          -- elsewhere, the enterprise and specific trap fields
          -- must be specified for traps generated for that condition.

          eventTable OBJECT-TYPE
              SYNTAX SEQUENCE OF EventEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of events to be generated."
              ::= { event 1 }

          eventEntry OBJECT-TYPE
              SYNTAX EventEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of parameters that describe an event to be
                  generated when certain conditions are met."
              INDEX { eventIndex }
              ::= { eventTable 1 }

          EventEntry ::= SEQUENCE {
              eventIndex          INTEGER (1..65535),
              eventDescription    DisplayString (SIZE (0..127)),
              eventType           INTEGER,
              eventCommunity      DisplayString,
              eventLastTimeSent   TimeTicks,
              eventOwner          DisplayString,
              eventStatus         EntryStatus
          }

          eventIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry in the
                  event table.  Each such entry defines one event that
                  is to be generated when the appropriate conditions
                  occur."
              ::= { eventEntry 1 }

          eventDescription OBJECT-TYPE
              SYNTAX DisplayString (SIZE (0..127))
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "A comment describing this event entry."
              ::= { eventEntry 2 }

          eventType OBJECT-TYPE
              SYNTAX INTEGER {
                      none(1),
                      log(2),
                      snmp-trap(3),    -- send an SNMP trap
                      log-and-trap(4)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The type of notification that the probe will make
                  about this event.  In the case of log, an entry is
                  made in the log table for each event.  In the case of
                  snmp-trap, an SNMP trap is sent to one or more
                  management stations."
              ::= { eventEntry 3 }

          eventCommunity OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "If an SNMP trap is to be sent, it will be sent to
                  the SNMP community specified by this octet string.
                  In the future this table will be extended to include
                  the party security mechanism.  This object shall be
                  set to a string of length zero if it is intended that
                  that mechanism be used to specify the destination of
                  the trap."
              ::= { eventEntry 4 }

          eventLastTimeSent OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime at the time this event
                  entry last generated an event.  If this entry has
                  not generated any events, this value will be
                  zero."
              ::= { eventEntry 5 }

          eventOwner OBJECT-TYPE
              SYNTAX DisplayString
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The entity that configured this entry and is therefore
                  using the resources assigned to it.

                  If this object contains a string starting with 'monitor'
                  and has associated entries in the log table, all
                  connected management stations should retrieve those
                  log entries, as they may have significance to all
                  management stations connected to this device"
              ::= { eventEntry 6 }

          eventStatus OBJECT-TYPE
              SYNTAX EntryStatus
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The status of this event entry.

                  If this object is not equal to valid(1), all associated
                  log entries shall be deleted by the agent."
              ::= { eventEntry 7 }

          --
          logTable OBJECT-TYPE
              SYNTAX SEQUENCE OF LogEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A list of events that have been logged."
              ::= { event 2 }

          logEntry OBJECT-TYPE
              SYNTAX LogEntry
              ACCESS not-accessible
              STATUS mandatory
              DESCRIPTION
                  "A set of data describing an event that has been
                  logged."
              INDEX { logEventIndex, logIndex }
              ::= { logTable 1 }

          LogEntry ::= SEQUENCE {
              logEventIndex           INTEGER (1..65535),
              logIndex                INTEGER,
              logTime                 TimeTicks,
              logDescription          DisplayString (SIZE (0..255))
          }

          logEventIndex OBJECT-TYPE
              SYNTAX INTEGER (1..65535)
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The event entry that generated this log
                  entry.  The log identified by a particular
                  value of this index is associated with the same
                  eventEntry as identified by the same value
                  of eventIndex."
              ::= { logEntry 1 }

          logIndex OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An index that uniquely identifies an entry
                  in the log table amongst those generated by the
                  same eventEntries.  These indexes are
                  assigned beginning with 1 and increase by one
                  with each new log entry.  The association
                  between values of logIndex and logEntries
                  is fixed for the lifetime of each logEntry.
                  The agent may choose to delete the oldest
                  instances of logEntry as required because of
                  lack of memory.  It is an implementation-specific
                  matter as to when this deletion may occur."
              ::= { logEntry 2 }

          logTime OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime when this log entry was
                  created."
              ::= { logEntry 3 }

          logDescription OBJECT-TYPE
              SYNTAX DisplayString (SIZE (0..255))
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "An implementation dependent description of the
                  event that activated this log entry."
              ::= { logEntry 4 }

          END
	RFC1271-TRAPS

	DEFINITIONS ::= BEGIN

	IMPORTS
		TRAP-TYPE	FROM RFC-1215
		rmon,
		alarmIndex,
		alarmVariable,
		alarmSampleType,
		alarmValue,
		alarmRisingThreshold,
		alarmFallingThreshold,
		channelIndex,
		channelMatches,
		channelDescription
				FROM RFC1271-MIB;

          risingAlarm TRAP-TYPE
              ENTERPRISE  rmon 
              VARIABLES { alarmIndex, alarmVariable, alarmSampleType,
                          alarmValue, alarmRisingThreshold }
              DESCRIPTION
                  "The SNMP trap that is generated when an alarm
                  entry crosses its rising threshold and generates
                  an event that is configured for sending SNMP
                  traps."
              ::= 1

          fallingAlarm TRAP-TYPE
              ENTERPRISE  rmon 
              VARIABLES { alarmIndex, alarmVariable, alarmSampleType,
                          alarmValue, alarmFallingThreshold }
              DESCRIPTION
                  "The SNMP trap that is generated when an alarm
                  entry crosses its fallingthreshold and generates
                  an event that is configured for sending SNMP
                  traps."
              ::= 2

          packetMatch TRAP-TYPE
              ENTERPRISE  rmon 
              VARIABLES { channelIndex, channelMatches, channelDescription }
              DESCRIPTION
                  "The SNMP trap that is generated when a packet
                  is captured by a channel that is configured for
                  sending SNMP traps."
              ::= 3
	END

   RFC1389-MIB DEFINITIONS ::= BEGIN

   IMPORTS
           Counter, TimeTicks, IpAddress
                   FROM RFC1155-SMI
           mib-2
                   FROM RFC1213-MIB
           OBJECT-TYPE
                   FROM RFC-1212;

   --  RIP-2 Management Information Base

     rip2 OBJECT IDENTIFIER ::= { mib-2 23 }
   -- the RouteTag type represents the contents of the
   -- Route Tag field in the packet header or route entry.

   RouteTag ::= OCTET STRING (SIZE (2))

   -- the Validation type is used for the variable that deletes
   -- an entry from a table, and ALWAYS takes at least these values:

   Validation ::= INTEGER { valid (1), invalid (2) }


   --      The RIP-2 Globals Group.
   --      Implementation of this group is mandatory for systems that
   --           implement RIP-2.

   -- These counters are intended to facilitate debugging quickly
   -- changing routes or failing neighbors

   rip2GlobalGroup OBJECT IDENTIFIER ::= { rip2 1 }


       rip2GlobalRouteChanges OBJECT-TYPE
           SYNTAX   Counter
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The number of changes made to the IP Route Da-
              tabase by RIP."
          ::= { rip2GlobalGroup 1 }


       rip2GlobalQueries OBJECT-TYPE
           SYNTAX   Counter
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The number of responses sent  to  RIP  queries
              from other systems."
          ::= { rip2GlobalGroup 2 }


   --  RIP Interfaces Groups
   --  Implementation of these Groups is mandatory for systems that
   --       implement RIP-2.

   -- Since RIP versions 1 and 2 do not deal with addressless links,
   -- it is assumed that RIP "interfaces" are subnets within a
   -- routing domain.
   -- The RIP Interface Status Table.

       rip2IfStatTable OBJECT-TYPE
           SYNTAX   SEQUENCE OF Rip2IfStatEntry
           ACCESS   not-accessible
           STATUS   mandatory
           DESCRIPTION
              "A  list  of  subnets  which  require  separate
              status monitoring in RIP."
          ::= { rip2 2 }

      rip2IfStatEntry OBJECT-TYPE
          SYNTAX   Rip2IfStatEntry
          ACCESS   not-accessible
          STATUS   mandatory
          DESCRIPTION
             "A Single Routing Domain in a single Subnet."
         INDEX { rip2IfStatAddress }
         ::= { rip2IfStatTable 1 }


       Rip2IfStatEntry ::=
           SEQUENCE {
               rip2IfStatAddress
                   IpAddress,
               rip2IfStatRcvBadPackets
                   Counter,
               rip2IfStatRcvBadRoutes
                   Counter,
               rip2IfStatSentUpdates
                   Counter,
               rip2IfStatStatus
                   Validation
       }

       rip2IfStatAddress OBJECT-TYPE
           SYNTAX   IpAddress
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The IP Address of this system on the indicated
              subnet."
          ::= { rip2IfStatEntry 1 }


       rip2IfStatRcvBadPackets OBJECT-TYPE
           SYNTAX   Counter
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The number of RIP response packets received by
              the  RIP  process  which were subsequently dis-
              carded for any reason (e.g. a version 0 packet,
              or an unknown command type)."
          ::= { rip2IfStatEntry 2 }


       rip2IfStatRcvBadRoutes OBJECT-TYPE
           SYNTAX   Counter
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The number of routes, in  valid  RIP  packets,
              which were ignored for any reason (e.g. unknown
              address family, or invalid metric)."
          ::= { rip2IfStatEntry 3 }


       rip2IfStatSentUpdates OBJECT-TYPE
           SYNTAX   Counter
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The number of triggered RIP  updates  actually
              sent  on  this interface.  This explicitly does
              NOT include full updates  sent  containing  new
              information."
          ::= { rip2IfStatEntry 4 }

       rip2IfStatStatus OBJECT-TYPE
           SYNTAX   Validation
           ACCESS   read-write
           STATUS   mandatory
           DESCRIPTION
              "Writing invalid has  the  effect  of  deleting
              this interface."
          DEFVAL { valid }
          ::= { rip2IfStatEntry 5 }


   -- The RIP Interface Configuration Table.


       rip2IfConfTable OBJECT-TYPE
           SYNTAX   SEQUENCE OF Rip2IfConfEntry
           ACCESS   not-accessible
           STATUS   mandatory
           DESCRIPTION
              "A list of subnets which require separate  con-
              figuration in RIP."
          ::= { rip2 3 }

      rip2IfConfEntry OBJECT-TYPE
          SYNTAX   Rip2IfConfEntry
          ACCESS   not-accessible
          STATUS   mandatory
          DESCRIPTION
             "A Single Routing Domain in a single Subnet."
         INDEX { rip2IfConfAddress }
         ::= { rip2IfConfTable 1 }


       Rip2IfConfEntry ::=
           SEQUENCE {
               rip2IfConfAddress
                   IpAddress,
               rip2IfConfDomain
                   RouteTag,
               rip2IfConfAuthType
                   INTEGER,
               rip2IfConfAuthKey
                   OCTET STRING (SIZE(0..16)),
               rip2IfConfSend
                   INTEGER,
               rip2IfConfReceive
                   INTEGER,
               rip2IfConfDefaultMetric
                   INTEGER,
               rip2IfConfStatus
                   Validation
       }

       rip2IfConfAddress OBJECT-TYPE
           SYNTAX   IpAddress
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The IP Address of this system on the indicated
              subnet."
          ::= { rip2IfConfEntry 1 }


       rip2IfConfDomain OBJECT-TYPE
           SYNTAX   RouteTag
           ACCESS   read-write
           STATUS   mandatory
           DESCRIPTION
              "Value inserted into the Routing  Domain  field
              of all RIP packets sent on this interface."
          DEFVAL { '0000'h }
          ::= { rip2IfConfEntry 2 }


       rip2IfConfAuthType OBJECT-TYPE
           SYNTAX   INTEGER {
                       noAuthentication (1),
                       simplePassword (2)
                    }
           ACCESS   read-write
           STATUS   mandatory
           DESCRIPTION
              "The type of Authentication used on this inter-
              face."
          DEFVAL { noAuthentication }
          ::= { rip2IfConfEntry 3 }


       rip2IfConfAuthKey OBJECT-TYPE
           SYNTAX   OCTET STRING (SIZE(0..16))
           ACCESS   read-write
           STATUS   mandatory
           DESCRIPTION
              "The value to be used as the Authentication Key
              whenever    the   corresponding   instance   of
              rip2IfConfAuthType has  the  value  simplePass-
              word.   A modification of the corresponding in-
              stance of rip2IfConfAuthType  does  not  modify
              the rip2IfConfAuthKey value.

              If a string shorter than 16 octets is supplied,
              it  will be left-justified and padded to 16 oc-
              tets, on the right, with nulls (0x00).

              Reading this object always results in an  OCTET
              STRING  of  length zero; authentication may not
              be bypassed by reading the MIB object."
          DEFVAL { ''h }
          ::= { rip2IfConfEntry 4 }


       rip2IfConfSend OBJECT-TYPE
           SYNTAX   INTEGER {
                       doNotSend (1),
                       ripVersion1 (2),
                       rip1Compatible (3),
                       ripVersion2 (4)
                    }
           ACCESS   read-write
           STATUS   mandatory
           DESCRIPTION
              "What  the  router  sends  on  this  interface.
              ripVersion1 implies sending RIP updates compli-
              ant  with  RFC  1058.   rip1Compatible  implies
              broadcasting RIP-2 updates using RFC 1058 route
              subsumption rules.  ripVersion2 implies  multi-
              casting RIP-2 updates."
          DEFVAL { rip1Compatible }
          ::= { rip2IfConfEntry 5 }


       rip2IfConfReceive OBJECT-TYPE
           SYNTAX   INTEGER {
                       rip1 (1),
                       rip2 (2),
                       rip1OrRip2 (3)
                    }
           ACCESS   read-write
           STATUS   mandatory
           DESCRIPTION
              "This indicates which version  of  RIP  updates
              are   to  be  accepted.   Note  that  rip2  and
              rip1OrRip2 implies reception of multicast pack-
              ets."
          DEFVAL { rip1OrRip2 }
          ::= { rip2IfConfEntry 6 }


       rip2IfConfDefaultMetric OBJECT-TYPE
           SYNTAX   INTEGER ( 0..15 )
           ACCESS   read-write
           STATUS   mandatory
           DESCRIPTION
              "This variable indicates what metric is  to  be
              used  as  a  default  route in RIP updates ori-
              ginated on this interface.  A value of zero in-
              dicates  that  no  default route should be ori-
              ginated; in this  case,  a  default  route  via
              another router may be propagated."
          ::= { rip2IfConfEntry 7 }

       rip2IfConfStatus OBJECT-TYPE
           SYNTAX   Validation
           ACCESS   read-write
           STATUS   mandatory
           DESCRIPTION
              "Writing invalid has  the  effect  of  deleting
              this interface."
          DEFVAL { valid }
          ::= { rip2IfConfEntry 8 }


   --  Peer Table

   --      The RIP Peer Group
   --      Implementation of this Group is Optional

   --      This group provides information about active peer
   --      relationships intended to assist in debugging.

       rip2PeerTable OBJECT-TYPE
           SYNTAX   SEQUENCE OF Rip2PeerEntry
           ACCESS   not-accessible
           STATUS   mandatory
           DESCRIPTION
              "A list of RIP Peers."
          ::= { rip2 4 }

      rip2PeerEntry OBJECT-TYPE
          SYNTAX   Rip2PeerEntry
          ACCESS   not-accessible
          STATUS   mandatory
          DESCRIPTION
             "Information regarding a single routing peer."
         INDEX { rip2PeerAddress, rip2PeerDomain }
         ::= { rip2PeerTable 1 }


       Rip2PeerEntry ::=
           SEQUENCE {
               rip2PeerAddress
                   IpAddress,
               rip2PeerDomain
                   RouteTag,
               rip2PeerLastUpdate
                   TimeTicks,
               rip2PeerVersion
                   INTEGER,
               rip2PeerRcvBadPackets
                   Counter,
               rip2PeerRcvBadRoutes
                   Counter
               }


       rip2PeerAddress OBJECT-TYPE
           SYNTAX   IpAddress
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The IP Address of the Peer System."
          ::= { rip2PeerEntry 1 }


       rip2PeerDomain OBJECT-TYPE
           SYNTAX   RouteTag
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The value in the Routing Domain field  in  RIP
              packets received from the peer."
          ::= { rip2PeerEntry 2 }


       rip2PeerLastUpdate OBJECT-TYPE
           SYNTAX   TimeTicks
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The value of sysUpTime when  the  most  recent
              RIP update was received from this system."
          ::= { rip2PeerEntry 3 }


       rip2PeerVersion OBJECT-TYPE
           SYNTAX   INTEGER ( 0..255 )
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The RIP version number in the  header  of  the
              last RIP packet received."
          ::= { rip2PeerEntry 4 }


       rip2PeerRcvBadPackets OBJECT-TYPE
           SYNTAX   Counter
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The number of RIP response packets  from  this
              peer discarded as invalid."
          ::= { rip2PeerEntry 5 }


       rip2PeerRcvBadRoutes OBJECT-TYPE
           SYNTAX   Counter
           ACCESS   read-only
           STATUS   mandatory
           DESCRIPTION
              "The number of routes from this peer that  were
              ignored because the entry format was invalid."
          ::= { rip2PeerEntry 6 }


   END
          BRIDGE-MIB DEFINITIONS ::= BEGIN

          IMPORTS
                     Counter, TimeTicks
                             FROM RFC1155-SMI
                     mib-2
                             FROM RFC1213-MIB
                     OBJECT-TYPE
                             FROM RFC-1212
                     TRAP-TYPE
                             FROM RFC-1215;

          -- All representations of MAC addresses in this MIB Module
          -- use, as a textual convention (i.e. this convention does
          -- not affect their encoding), the data type:

          MacAddress ::= OCTET STRING (SIZE (6))    -- a 6 octet address
                                                    -- in the
                                                    -- "canonical"
                                                    -- order
          -- defined by IEEE 802.1a, i.e., as if it were transmitted
          -- least significant bit first, even though 802.5 (in
          -- contrast to other n802.x protocols) requires MAC
          -- addresses to be transmitted most significant bit first.
          --
          -- 16-bit addresses, if needed, are represented by setting
          -- their upper 4 octets to all 0's, i.e., AAFF would be
          -- represented as 00000000AAFF.


          -- Similarly, all representations of Bridge-Id in this MIB
          -- Module use, as a textual convention (i.e. this
          -- convention does not affect their encoding), the data
          -- type:

          BridgeId ::= OCTET STRING (SIZE (8))   -- the
                                                 -- Bridge-Identifier
                                                 -- as used in the
                                                 -- Spanning Tree
          -- Protocol to uniquely identify a bridge.  Its first two
          -- octets (in network byte order) contain a priority
          -- value and its last 6 octets contain the MAC address
          -- used to refer to a bridge in a unique fashion
          -- (typically, the numerically smallest MAC address
          -- of all ports on the bridge).
          -- Several objects in this MIB module represent values of
          -- timers used by the Spanning Tree Protocol.  In this
          -- MIB, these timers have values in units of hundreths of
          -- a second (i.e. 1/100 secs).
          -- These timers, when stored in a Spanning Tree Protocol's
          -- BPDU, are in units of 1/256 seconds.  Note, however,
          -- that 802.1D-1990 specifies a settable granularity of
          -- no more than 1 second for these timers.  To avoid
          -- ambiguity, a data type is defined here as a textual
          -- convention and all representation of these timers
          -- in this MIB module are defined using this data type.  An
          -- algorithm is also defined for converting between the
          -- different units, to ensure a timer's value is not
          -- distorted by multiple conversions.
          -- The data type is:

          Timeout ::= INTEGER -- a STP timer in units of 1/100 seconds

          -- To convert a Timeout value into a value in units of
          -- 1/256 seconds, the following algorithm should be used:
          --
          --      b  = floor( (n * 256) / 100)
          --
          -- where:
          --      floor   =  quotient [ignore remainder]
          --      n is the value in 1/100 second units
          --      b is the value in 1/256 second units
          --
          -- To convert the value from 1/256 second units back to
          -- 1/100 seconds, the following algorithm should be used:
          --
          --      n = ceiling( (b * 100) / 256)
          --
          -- where:
          --      ceiling =  quotient [if remainder is 0], or
          --                 quotient + 1 [if remainder is non-zero]
          --      n is the value in 1/100 second units
          --      b is the value in 1/256 second units
          --
          -- Note: it is important that the arithmetic operations are
          -- done in the order specified (i.e., multiply first, divide
          -- second).


             dot1dBridge   OBJECT IDENTIFIER ::= { mib-2 17 }
          -- groups in the Bridge MIB

          dot1dBase     OBJECT IDENTIFIER ::= { dot1dBridge 1 }

          dot1dStp      OBJECT IDENTIFIER ::= { dot1dBridge 2 }

          dot1dSr       OBJECT IDENTIFIER ::= { dot1dBridge 3 }
          -- separately documented

          dot1dTp       OBJECT IDENTIFIER ::= { dot1dBridge 4 }

          dot1dStatic   OBJECT IDENTIFIER ::= { dot1dBridge 5 }


          -- the dot1dBase group

          -- Implementation of the dot1dBase group is mandatory for all
          -- bridges.

          dot1dBaseBridgeAddress OBJECT-TYPE
              SYNTAX  MacAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The MAC address used by this bridge when it must
                      be referred to in a unique fashion.   It is
                      recommended that this be the numerically smallest
                      MAC address of all ports that belong to this
                      bridge.  However it is only required to be unique.
                      When concatenated with dot1dStpPriority a unique
                      BridgeIdentifier is formed which is used in the
                      Spanning Tree Protocol."
              REFERENCE
                      "IEEE 802.1D-1990: Sections 6.4.1.1.3 and 3.12.5"
              ::= { dot1dBase 1 }

          dot1dBaseNumPorts OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of ports controlled by this bridging
                      entity."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.4.1.1.3"
              ::= { dot1dBase 2 }

          dot1dBaseType OBJECT-TYPE
              SYNTAX  INTEGER {
                          unknown(1),
                          transparent-only(2),
                          sourceroute-only(3),
                          srt(4)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Indicates what type of bridging this bridge can
                      perform.  If a bridge is actually performing a
                      certain type of bridging this will be indicated by
                      entries in the port table for the given type."
              ::= { dot1dBase 3 }

          -- The Generic Bridge Port Table

          dot1dBasePortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Dot1dBasePortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains generic information about
                      every port that is associated with this bridge.
                      Transparent, source-route, and srt ports are
                      included."
              ::= { dot1dBase 4 }

          dot1dBasePortEntry OBJECT-TYPE
              SYNTAX  Dot1dBasePortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of information for each port of the
                      bridge."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.4.2, 6.6.1"
              INDEX  { dot1dBasePort }
              ::= { dot1dBasePortTable 1 }


          Dot1dBasePortEntry ::=
              SEQUENCE {
                  dot1dBasePort
                      INTEGER,
                  dot1dBasePortIfIndex
                      INTEGER,
                  dot1dBasePortCircuit
                      OBJECT IDENTIFIER,
                  dot1dBasePortDelayExceededDiscards
                      Counter,
                  dot1dBasePortMtuExceededDiscards
                      Counter
              }

          dot1dBasePort OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port for which this entry
                      contains bridge management information."
              ::= { dot1dBasePortEntry 1 }

          dot1dBasePortIfIndex OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The value of the instance of the ifIndex object,
                      defined in MIB-II, for the interface corresponding
                      to this port."
              ::= { dot1dBasePortEntry 2 }

          dot1dBasePortCircuit OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "For a port which (potentially) has the same value
                      of dot1dBasePortIfIndex as another port on the
                      same bridge, this object contains the name of an
                      object instance unique to this port.  For example,
                      in the case where multiple ports correspond one-
                      to-one with multiple X.25 virtual circuits, this
                      value might identify an (e.g., the first) object
                      instance associated with the X.25 virtual circuit
                      corresponding to this port.

                      For a port which has a unique value of
                      dot1dBasePortIfIndex, this object can have the
                      value { 0 0 }."
              ::= { dot1dBasePortEntry 3 }

          dot1dBasePortDelayExceededDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames discarded by this port due
                      to excessive transit delay through the bridge.  It
                      is incremented by both transparent and source
                      route bridges."
              REFERENCE
                       "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dBasePortEntry 4 }

          dot1dBasePortMtuExceededDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames discarded by this port due
                      to an excessive size.  It is incremented by both
                      transparent and source route bridges."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dBasePortEntry 5 }


          -- the dot1dStp group

          -- Implementation of the dot1dStp group is optional.  It is
          -- implemented by those bridges that support the Spanning Tree
          -- Protocol.


          dot1dStpProtocolSpecification OBJECT-TYPE
              SYNTAX  INTEGER {
                          unknown(1),
                          decLb100(2),
                          ieee8021d(3)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "An indication of what version of the Spanning
                      Tree Protocol is being run.  The value
                      'decLb100(2)' indicates the DEC LANbridge 100
                      Spanning Tree protocol.  IEEE 802.1d
                      implementations will return 'ieee8021d(3)'.  If
                      future versions of the IEEE Spanning Tree Protocol
                      are released that are incompatible with the
                      current version a new value will be defined."
              ::= { dot1dStp 1 }

          dot1dStpPriority OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value of the write-able portion of the Bridge
                      ID, i.e., the first two octets of the (8 octet
                      long) Bridge ID.  The other (last) 6 octets of the
                      Bridge ID are given by the value of
                      dot1dBaseBridgeAddress."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.7"
              ::= { dot1dStp 2 }

          dot1dStpTimeSinceTopologyChange OBJECT-TYPE
              SYNTAX  TimeTicks
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The time (in hundredths of a second) since the
                      last time a topology change was detected by the
                      bridge entity."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.8.1.1.3"
              ::= { dot1dStp 3 }

          dot1dStpTopChanges OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of topology changes detected by
                      this bridge since the management entity was last
                      reset or initialized."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.8.1.1.3"
              ::= { dot1dStp 4 }

          dot1dStpDesignatedRoot OBJECT-TYPE
              SYNTAX  BridgeId
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The bridge identifier of the root of the spanning
                      tree as determined by the Spanning Tree Protocol
                      as executed by this node.  This value is used as
                      the Root Identifier parameter in all Configuration
                      Bridge PDUs originated by this node."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.1"
              ::= { dot1dStp 5 }

          dot1dStpRootCost OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The cost of the path to the root as seen from
                      this bridge."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.2"
              ::= { dot1dStp 6 }

          dot1dStpRootPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port which offers the
                      lowest cost path from this bridge to the root
                      bridge."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.3"
              ::= { dot1dStp 7 }

          dot1dStpMaxAge OBJECT-TYPE
              SYNTAX  Timeout
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The maximum age of Spanning Tree Protocol
                      information learned from the network on any port
                      before it is discarded, in units of hundredths of
                      a second.  This is the actual value that this
                      bridge is currently using."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.4"
              ::= { dot1dStp 8 }

          dot1dStpHelloTime OBJECT-TYPE
              SYNTAX  Timeout
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The amount of time between the transmission of
                      Configuration bridge PDUs by this node on any port
                      when it is the root of the spanning tree or trying
                      to become so, in units of hundredths of a second.
                      This is the actual value that this bridge is
                      currently using."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.5"
              ::= { dot1dStp 9 }

          dot1dStpHoldTime OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This time value determines the interval length
                      during which no more than two Configuration bridge
                      PDUs shall be transmitted by this node, in units
                      of hundredths of a second."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.14"
              ::= { dot1dStp 10 }

          dot1dStpForwardDelay OBJECT-TYPE
              SYNTAX  Timeout
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This time value, measured in units of hundredths
                      of a second, controls how fast a port changes its
                      spanning state when moving towards the Forwarding
                      state.  The value determines how long the port
                      stays in each of the Listening and Learning
                      states, which precede the Forwarding state.  This
                      value is also used, when a topology change has
                      been detected and is underway, to age all dynamic
                      entries in the Forwarding Database.  [Note that
                      this value is the one that this bridge is
                      currently using, in contrast to
                      dot1dStpBridgeForwardDelay which is the value that
                      this bridge and all others would start using
                      if/when this bridge were to become the root.]"
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.6"
              ::= { dot1dStp 11 }

          dot1dStpBridgeMaxAge OBJECT-TYPE
              SYNTAX  Timeout (600..4000)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value that all bridges use for MaxAge when
                      this bridge is acting as the root.  Note that
                      802.1D-1990 specifies that the range for this
                      parameter is related to the value of
                      dot1dStpBridgeHelloTime. The granularity of this
                      timer is specified by 802.1D-1990 to be 1 second.
                      An agent may return a badValue error if a set is
                      attempted to a value which is not a whole number
                      of seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.8"
              ::= { dot1dStp 12 }

          dot1dStpBridgeHelloTime OBJECT-TYPE
              SYNTAX  Timeout (100..1000)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value that all bridges use for HelloTime when
                      this bridge is acting as the root.  The
                      granularity of this timer is specified by 802.1D-
                      1990 to be 1 second.  An agent may return a
                      badValue error if a set is attempted to a value
                      which is not a whole number of seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.9"
              ::= { dot1dStp 13 }

          dot1dStpBridgeForwardDelay OBJECT-TYPE
              SYNTAX  Timeout (400..3000)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value that all bridges use for ForwardDelay
                      when this bridge is acting as the root.  Note that
                      802.1D-1990 specifies that the range for this
                      parameter is related to the value of
                      dot1dStpBridgeMaxAge.  The granularity of this
                      timer is specified by 802.1D-1990 to be 1 second.
                      An agent may return a badValue error if a set is
                      attempted to a value which is not a whole number
                      of seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.10"
              ::= { dot1dStp 14 }
          -- The Spanning Tree Port Table

          dot1dStpPortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Dot1dStpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains port-specific information
                      for the Spanning Tree Protocol."
              ::= { dot1dStp 15 }

          dot1dStpPortEntry OBJECT-TYPE
              SYNTAX  Dot1dStpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of information maintained by every port
                      about the Spanning Tree Protocol state for that
                      port."
              INDEX   { dot1dStpPort }
              ::= { dot1dStpPortTable 1 }

          Dot1dStpPortEntry ::=
              SEQUENCE {
                  dot1dStpPort
                      INTEGER,
                  dot1dStpPortPriority
                      INTEGER,
                  dot1dStpPortState
                      INTEGER,
                  dot1dStpPortEnable
                      INTEGER,
                  dot1dStpPortPathCost
                      INTEGER,
                  dot1dStpPortDesignatedRoot
                      BridgeId,
                  dot1dStpPortDesignatedCost
                      INTEGER,
                  dot1dStpPortDesignatedBridge
                      BridgeId,
                  dot1dStpPortDesignatedPort
                      OCTET STRING,
                  dot1dStpPortForwardTransitions
                      Counter
              }

          dot1dStpPort OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port for which this entry
                      contains Spanning Tree Protocol management
                      information."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.8.2.1.2"
              ::= { dot1dStpPortEntry 1 }

          dot1dStpPortPriority OBJECT-TYPE
              SYNTAX  INTEGER (0..255)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value of the priority field which is
                      contained in the first (in network byte order)
                      octet of the (2 octet long) Port ID.  The other
                      octet of the Port ID is given by the value of
                      dot1dStpPort."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.1"
              ::= { dot1dStpPortEntry 2 }

          dot1dStpPortState OBJECT-TYPE
              SYNTAX  INTEGER {
                          disabled(1),
                          blocking(2),
                          listening(3),
                          learning(4),
                          forwarding(5),
                          broken(6)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port's current state as defined by
                      application of the Spanning Tree Protocol.  This
                      state controls what action a port takes on
                      reception of a frame.  If the bridge has detected
                      a port that is malfunctioning it will place that
                      port into the broken(6) state.  For ports which
                      are disabled (see dot1dStpPortEnable), this object
                      will have a value of disabled(1)."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.2"
              ::= { dot1dStpPortEntry 3 }

          dot1dStpPortEnable OBJECT-TYPE
              SYNTAX  INTEGER {
                          enabled(1),
                          disabled(2)
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The enabled/disabled status of the port."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.2"
              ::= { dot1dStpPortEntry 4 }

          dot1dStpPortPathCost OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The contribution of this port to the path cost of
                      paths towards the spanning tree root which include
                      this port.  802.1D-1990 recommends that the
                      default value of this parameter be in inverse
                      proportion to the speed of the attached LAN."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.3"
              ::= { dot1dStpPortEntry 5 }

          dot1dStpPortDesignatedRoot OBJECT-TYPE
              SYNTAX  BridgeId
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The unique Bridge Identifier of the Bridge
                      recorded as the Root in the Configuration BPDUs
                      transmitted by the Designated Bridge for the
                      segment to which the port is attached."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.4"
              ::= { dot1dStpPortEntry 6 }

          dot1dStpPortDesignatedCost OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The path cost of the Designated Port of the
                      segment connected to this port.  This value is
                      compared to the Root Path Cost field in received
                      bridge PDUs."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.5"
              ::= { dot1dStpPortEntry 7 }

          dot1dStpPortDesignatedBridge OBJECT-TYPE
              SYNTAX  BridgeId
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The Bridge Identifier of the bridge which this
                      port considers to be the Designated Bridge for
                      this port's segment."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.6"
              ::= { dot1dStpPortEntry 8 }

          dot1dStpPortDesignatedPort OBJECT-TYPE
              SYNTAX  OCTET STRING (SIZE (2))
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The Port Identifier of the port on the Designated
                      Bridge for this port's segment."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.7"
              ::= { dot1dStpPortEntry 9 }

          dot1dStpPortForwardTransitions OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of times this port has transitioned
                      from the Learning state to the Forwarding state."
              ::= { dot1dStpPortEntry 10 }


          -- the dot1dTp group

          -- Implementation of the dot1dTp group is optional.  It is
          -- implemented by those bridges that support the transparent
          -- bridging mode.  A transparent or SRT bridge will implement
          -- this group.


          dot1dTpLearnedEntryDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of Forwarding Database entries,
                      which have been or would have been learnt, but
                      have been discarded due to a lack of space to
                      store them in the Forwarding Database.  If this
                      counter is increasing, it indicates that the
                      Forwarding Database is regularly becoming full (a
                      condition which has unpleasant performance effects
                      on the subnetwork).  If this counter has a
                      significant value but is not presently increasing,
                      it indicates that the problem has been occurring
                      but is not persistent."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.1.1.3"
              ::= { dot1dTp 1 }

          dot1dTpAgingTime OBJECT-TYPE
              SYNTAX   INTEGER (10..1000000)
              ACCESS   read-write
              STATUS   mandatory
              DESCRIPTION
                      "The timeout period in seconds for aging out
                      dynamically learned forwarding information.
                      802.1D-1990 recommends a default of 300 seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.1.1.3"
              ::= { dot1dTp 2 }


          --  The Forwarding Database for Transparent Bridges

          dot1dTpFdbTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Dot1dTpFdbEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains information about unicast
                      entries for which the bridge has forwarding and/or
                      filtering information.  This information is used
                      by the transparent bridging function in
                      determining how to propagate a received frame."
              ::= { dot1dTp 3 }

          dot1dTpFdbEntry OBJECT-TYPE
              SYNTAX  Dot1dTpFdbEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Information about a specific unicast MAC address
                      for which the bridge has some forwarding and/or
                      filtering information."
              INDEX   { dot1dTpFdbAddress }
              ::= { dot1dTpFdbTable 1 }

          Dot1dTpFdbEntry ::=
              SEQUENCE {
                  dot1dTpFdbAddress
                      MacAddress,
                  dot1dTpFdbPort
                      INTEGER,
                  dot1dTpFdbStatus
                      INTEGER
              }

          dot1dTpFdbAddress OBJECT-TYPE
              SYNTAX  MacAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A unicast MAC address for which the bridge has
                      forwarding and/or filtering information."
              REFERENCE
                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
              ::= { dot1dTpFdbEntry 1 }

          dot1dTpFdbPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Either the value '0', or the port number of the
                      port on which a frame having a source address
                      equal to the value of the corresponding instance
                      of dot1dTpFdbAddress has been seen.  A value of
                      '0' indicates that the port number has not been
                      learned but that the bridge does have some
                      forwarding/filtering information about this
                      address (e.g. in the dot1dStaticTable).
                      Implementors are encouraged to assign the port
                      value to this object whenever it is learned even
                      for addresses for which the corresponding value of
                      dot1dTpFdbStatus is not learned(3)."
              ::= { dot1dTpFdbEntry 2 }

          dot1dTpFdbStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),
                          invalid(2),
                          learned(3),
                          self(4),
                          mgmt(5)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The status of this entry.  The meanings of the
                      values are:

                        other(1)   : none of the following.  This would
                                     include the case where some other
                                     MIB object (not the corresponding
                                     instance of dot1dTpFdbPort, nor an
                                     entry in the dot1dStaticTable) is
                                     being used to determine if and how
                                     frames addressed to the value of
                                     the corresponding instance of
                                     dot1dTpFdbAddress are being
                                     forwarded.

                        invalid(2) : this entry is not longer valid
                                     (e.g., it was learned but has since
                                     aged-out), but has not yet been
                                     flushed from the table.

                        learned(3) : the value of the corresponding
                                     instance of dot1dTpFdbPort was
                                     learned, and is being used.

                        self(4)    : the value of the corresponding
                                     instance of dot1dTpFdbAddress
                                     represents one of the bridge's
                                     addresses.  The corresponding
                                     instance of dot1dTpFdbPort
                                     indicates which of the bridge's
                                     ports has this address.

                        mgmt(5)    : the value of the corresponding
                                     instance of dot1dTpFdbAddress is
                                     also the value of an existing
                                     instance of dot1dStaticAddress."
              ::= { dot1dTpFdbEntry 3 }
          --  Port Table for Transparent Bridges

          dot1dTpPortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Dot1dTpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains information about every
                      port that is associated with this transparent
                      bridge."
              ::= { dot1dTp 4 }

          dot1dTpPortEntry OBJECT-TYPE
              SYNTAX  Dot1dTpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of information for each port of a
                      transparent bridge."
              INDEX   { dot1dTpPort }
              ::= { dot1dTpPortTable 1 }

          Dot1dTpPortEntry ::=
              SEQUENCE {
                  dot1dTpPort
                      INTEGER,
                  dot1dTpPortMaxInfo
                      INTEGER,
                  dot1dTpPortInFrames
                      Counter,
                  dot1dTpPortOutFrames
                      Counter,
                  dot1dTpPortInDiscards
                      Counter
              }

          dot1dTpPort OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port for which this entry
                      contains Transparent bridging management
                      information."
              ::= { dot1dTpPortEntry 1 }

          -- It would be nice if we could use ifMtu as the size of the
          -- largest INFO field, but we can't because ifMtu is defined
          -- to be the size that the (inter-)network layer can use which
          -- can differ from the MAC layer (especially if several layers
          -- of encapsulation are used).

          dot1dTpPortMaxInfo OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The maximum size of the INFO (non-MAC) field that
                      this port will receive or transmit."
              ::= { dot1dTpPortEntry 2 }

          dot1dTpPortInFrames OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames that have been received by
                      this port from its segment. Note that a frame
                      received on the interface corresponding to this
                      port is only counted by this object if and only if
                      it is for a protocol being processed by the local
                      bridging function, including bridge management
                      frames."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dTpPortEntry 3 }

          dot1dTpPortOutFrames OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames that have been transmitted
                      by this port to its segment.  Note that a frame
                      transmitted on the interface corresponding to this
                      port is only counted by this object if and only if
                      it is for a protocol being processed by the local
                      bridging function, including bridge management
                      frames."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dTpPortEntry 4 }

          dot1dTpPortInDiscards OBJECT-TYPE
              SYNTAX   Counter
              ACCESS   read-only
              STATUS   mandatory
              DESCRIPTION
                      "Count of valid frames received which were
                      discarded (i.e., filtered) by the Forwarding
                      Process."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dTpPortEntry 5 }


          -- The Static (Destination-Address Filtering) Database

          -- Implementation of this group is optional.


          dot1dStaticTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Dot1dStaticEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table containing filtering information
                      configured into the bridge by (local or network)
                      management specifying the set of ports to which
                      frames received from specific ports and containing
                      specific destination addresses are allowed to be
                      forwarded.  The value of zero in this table as the
                      port number from which frames with a specific
                      destination address are received, is used to
                      specify all ports for which there is no specific
                      entry in this table for that particular
                      destination address.  Entries are valid for
                      unicast and for group/broadcast addresses."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.2"
              ::= { dot1dStatic 1 }

          dot1dStaticEntry OBJECT-TYPE
              SYNTAX  Dot1dStaticEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Filtering information configured into the bridge
                      by (local or network) management specifying the
                      set of ports to which frames received from a
                      specific port and containing a specific
                      destination address are allowed to be forwarded."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.2"
              INDEX   { dot1dStaticAddress, dot1dStaticReceivePort }
              ::= { dot1dStaticTable 1 }

          Dot1dStaticEntry ::=
              SEQUENCE {
                  dot1dStaticAddress
                      MacAddress,
                  dot1dStaticReceivePort
                      INTEGER,
                  dot1dStaticAllowedToGoTo
                      OCTET STRING,
                  dot1dStaticStatus
                      INTEGER
              }

          dot1dStaticAddress OBJECT-TYPE
              SYNTAX  MacAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The destination MAC address in a frame to which
                      this entry's filtering information applies.  This
                      object can take the value of a unicast address, a
                      group address or the broadcast address."
              REFERENCE
                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
              ::= { dot1dStaticEntry 1 }

          dot1dStaticReceivePort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "Either the value '0', or the port number of the
                      port from which a frame must be received in order
                      for this entry's filtering information to apply.
                      A value of zero indicates that this entry applies
                      on all ports of the bridge for which there is no
                      other applicable entry."
              ::= { dot1dStaticEntry 2 }

          dot1dStaticAllowedToGoTo OBJECT-TYPE
              SYNTAX  OCTET STRING
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The set of ports to which frames received from a
                      specific port and destined for a specific MAC
                      address, are allowed to be forwarded.  Each octet
                      within the value of this object specifies a set of
                      eight ports, with the first octet specifying ports
                      1 through 8, the second octet specifying ports 9
                      through 16, etc.  Within each octet, the most
                      significant bit represents the lowest numbered
                      port, and the least significant bit represents the
                      highest numbered port.  Thus, each port of the
                      bridge is represented by a single bit within the
                      value of this object.  If that bit has a value of
                      '1' then that port is included in the set of
                      ports; the port is not included if its bit has a
                      value of '0'.  (Note that the setting of the bit
                      corresponding to the port from which a frame is
                      received is irrelevant.)  The default value of
                      this object is a string of ones of appropriate
                      length."
              ::= { dot1dStaticEntry 3 }

          dot1dStaticStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),
                          invalid(2),
                          permanent(3),
                          deleteOnReset(4),
                          deleteOnTimeout(5)
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "This object indicates the status of this entry.
                      The default value is permanent(3).

                           other(1) - this entry is currently in use but
                                the conditions under which it will
                                remain so are different from each of the
                                following values.
                           invalid(2) - writing this value to the object
                                removes the corresponding entry.
                           permanent(3) - this entry is currently in use
                                and will remain so after the next reset
                                of the bridge.
                           deleteOnReset(4) - this entry is currently in
                                use and will remain so until the next
                                reset of the bridge.
                           deleteOnTimeout(5) - this entry is currently
                                in use and will remain so until it is
                                aged out."
              ::= { dot1dStaticEntry 4 }


          -- Traps for use by Bridges

          -- Traps for the Spanning Tree Protocol

          newRoot TRAP-TYPE
              ENTERPRISE  dot1dBridge
              DESCRIPTION
                      "The newRoot trap indicates that the sending agent
                      has become the new root of the Spanning Tree; the
                      trap is sent by a bridge soon after its election
                      as the new root, e.g., upon expiration of the
                      Topology Change Timer immediately subsequent to
                      its election.  Implementation of this trap is
                      optional."
              ::= 1

          topologyChange TRAP-TYPE
              ENTERPRISE  dot1dBridge
              DESCRIPTION
                      "A topologyChange trap is sent by a bridge when
                      any of its configured ports transitions from the
                      Learning state to the Forwarding state, or from
                      the Forwarding state to the Blocking state.  The
                      trap is not sent if a newRoot trap is sent for the
                      same transition.  Implementation of this trap is
                      optional."
              ::= 2

          END

   IANAifType-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY                     FROM SNMPv2-SMI
       TEXTUAL-CONVENTION                  FROM SNMPv2-TC
       mib-2                		   FROM RFC1213-MIB;

   ianaifType MODULE-IDENTITY
       LAST-UPDATED "9311082155Z"
       ORGANIZATION "IANA"
       CONTACT-INFO

                  "        Internet Assigned Numbers Authority

                   Postal: USC/Information Sciences Institute
                           4676 Admiralty Way, Marina del Rey, CA 90292

                   Tel:    +1  310 822 1511
                   E-Mail: iana@isi.edu"
       DESCRIPTION
               "The MIB module which defines the IANAifType textual
               convention, and thus the enumerated values of the
               ifType object defined in MIB-II's ifTable."
       ::= { mib-2 30 }


   IANAifType ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
               "This data type is used as the syntax of the ifType
               object in the (updated) definition of MIB-II's
               ifTable.
               The definition of this textual convention with the
               addition of newly assigned values is published
               periodically by the IANA, in either the Assigned
               Numbers RFC, or some derivative of it specific to
               Internet Network Management number assignments.  (The
               latest arrangements can be obtained by contacting the
               IANA.)

               Requests for new values should be made to IANA via
               email (iana@isi.edu).

               The relationship between the assignment of ifType
               values and of OIDs to particular media-specific MIBs
               is solely the purview of IANA and is subject to change
               without notice.  Quite often, a media-specific MIB's
               OID-subtree assignment within MIB-II's 'transmission'
               subtree will be the same as its ifType value.
               However, in some circumstances this will not be the
               case, and implementors must not pre-assume any
               specific relationship between ifType values and
               transmission subtree OIDs."
       SYNTAX  INTEGER {
                   other(1),          -- none of the following
                   regular1822(2),
                   hdh1822(3),
                   ddnX25(4),
                   rfc877x25(5),
                   ethernetCsmacd(6),
                   iso88023Csmacd(7),
                   iso88024TokenBus(8),
                   iso88025TokenRing(9),
                   iso88026Man(10),
                   starLan(11),
                   proteon10Mbit(12),
                   proteon80Mbit(13),
                   hyperchannel(14),
                   fddi(15),
                   lapb(16),
                   sdlc(17),
                   ds1(18),           -- DS1/E1 (RFC 1406)
                   e1(19),            -- obsolete
                   basicISDN(20),
                   primaryISDN(21),
                   propPointToPointSerial(22), -- proprietary serial
                   ppp(23),
                   softwareLoopback(24),
                   eon(25),            -- CLNP over IP (RFC 1070)
                   ethernet3Mbit(26),
                   nsip(27),           -- XNS over IP
                   slip(28),           -- generic SLIP
                   ultra(29),          -- ULTRA technologies
                   ds3(30),            -- T-3
                   sip(31),            -- SMDS
                   frameRelay(32),    -- DTE only
                   rs232(33),
                   para(34),           -- parallel-port
                   arcnet(35),         -- arcnet
                   arcnetPlus(36),     -- arcnet plus
                   atm(37),            -- ATM cells
                   miox25(38),
                   sonet(39),          -- SONET or SDH
                   x25ple(40),
                   iso88022llc(41),
                   localTalk(42),
                   smdsDxi(43),
                   frameRelayService(44),  -- Frame relay DCE
                   v35(45),
                   hssi(46),
                   hippi(47),
                   modem(48),          -- Generic modem
                   aal5(49),           -- AAL5 over ATM
                   sonetPath(50),
                   sonetVT(51),
                   smdsIcip(52),       -- SMDS InterCarrier Interface
                   propVirtual(53),    -- proprietary virtual/internal
                   propMultiplexor(54) -- proprietary multiplexing
               }

   END

   IF-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32,
       Integer32, TimeTicks, Counter64,
       NOTIFICATION-TYPE                        FROM SNMPv2-SMI
       TEXTUAL-CONVENTION, DisplayString,
       PhysAddress, TruthValue, RowStatus,
       AutonomousType, TestAndIncr              FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP          FROM SNMPv2-CONF

-- RCC HACK - BEGIN
--       snmpTraps                                FROM SNMPv2-MIB
-- RCC HACK - END

       IANAifType                               FROM IANAifType-MIB
       mib-2, interfaces                        FROM RFC1213-MIB;
   ifMIB MODULE-IDENTITY
       LAST-UPDATED "9311082155Z"
       ORGANIZATION "IETF Interfaces MIB Working Group"
       CONTACT-INFO

                  "        Keith McCloghrie

                   Postal: Hughes LAN Systems
                           1225 Charleston Road, Mountain View, CA 94043

                   Tel:    +1 415 966 7934
                   E-Mail: kzm@hls.com


                           Frank Kastenholz

                   Postal: FTP Software
                           2 High Street, North Andover, MA 01845

                   Tel:    +1 508 685 4000
                   E-Mail: kasten@ftp.com"
       DESCRIPTION
               "The MIB module to describe generic objects for
               network interface sub-layers.  This MIB is an updated
               version of MIB-II's ifTable, and incorporates the
               extensions defined in RFC 1229."
       ::= { mib-2 31 }

-- RCC HACK - BEGIN
--
-- Additions to resolve some SNMP V2 dependencies so we don't
-- have to pull-in a lot of mib modules.
--
internet	OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
snmpV2		OBJECT IDENTIFIER ::= { internet 6 }
snmpModules	OBJECT IDENTIFIER ::= { snmpV2 3 }
snmpMIB		OBJECT IDENTIFIER ::= { snmpModules 1 }
snmpMIBObjects	OBJECT IDENTIFIER ::= { snmpMIB 1 }
snmpTraps	OBJECT IDENTIFIER ::= { snmpMIBObjects 5 }
-- RCC HACK - END 

   ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }


-- RCC HACK - BEGIN
--
-- Modification to resolve conflict with "OwnerString" definition
-- in rfc1271.mib.  In rfc1271.mib "OwnerString" is defined as
-- "DisplayString" whereas in this file, it is define as OCTET
-- STRING.
--
   OwnerString ::= DisplayString
-- RCC HACK - END 

   -- OwnerString has the same semantics as used in RFC 1271
   --
   -- OwnerString ::= TEXTUAL-CONVENTION
   --     DISPLAY-HINT "255a"
   --     STATUS       current
   --     DESCRIPTION
   --             "This data type is used to model an administratively
   --             assigned name of the owner of a resource.  This
   --             information is taken from the NVT ASCII character set.
   --             It is suggested that this name contain one or more of
   --             the following: ASCII form of the manager station's
   --             transport address, management station name (e.g.,
   --             domain name), network management personnel's name,
   --             location, or phone number.  In some cases the agent
   --             itself will be the owner of an entry.  In these cases,
   --             this string shall be set to a string starting with
   --             'agent'."
   --     SYNTAX       OCTET STRING (SIZE(0..255))

   -- InterfaceIndex contains the semantics of ifIndex and
   -- should be used for any objects defined on other mib
   -- modules that need these semantics.

   InterfaceIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "A unique value, greater than zero, for each interface
               or interface sub-layer in the managed system.  It is
               recommended that values are assigned contiguously
               starting from 1.  The value for each interface sub-
               layer must remain constant at least from one re-
               initialization of the entity's network management
               system to the next re-initialization."
       SYNTAX       Integer32

   ifNumber  OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of network interfaces (regardless of their
               current state) present on this system."
       ::= { interfaces 1 }


   -- the Interfaces table

   -- The Interfaces table contains information on the entity's
   -- interfaces.  Each sub-layer below the internetwork-layer
   -- of a network interface is considered to be an interface.

   ifTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of interface entries.  The number of entries
               is given by the value of ifNumber."
       ::= { interfaces 2 }

   ifEntry OBJECT-TYPE
       SYNTAX      IfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing management information applicable
               to a particular interface."
       INDEX   { ifIndex }
       ::= { ifTable 1 }

   IfEntry ::=
       SEQUENCE {
           ifIndex                 InterfaceIndex,
           ifDescr                 DisplayString,
           ifType                  IANAifType,
           ifMtu                   Integer32,
           ifSpeed                 Gauge32,
           ifPhysAddress           PhysAddress,
           ifAdminStatus           INTEGER,
           ifOperStatus            INTEGER,
           ifLastChange            TimeTicks,
           ifInOctets              Counter32,
           ifInUcastPkts           Counter32,
           ifInNUcastPkts          Counter32,  -- deprecated
           ifInDiscards            Counter32,
           ifInErrors              Counter32,
           ifInUnknownProtos       Counter32,
           ifOutOctets             Counter32,
           ifOutUcastPkts          Counter32,
           ifOutNUcastPkts         Counter32,  -- deprecated
           ifOutDiscards           Counter32,
           ifOutErrors             Counter32,
           ifOutQLen               Gauge32,    -- deprecated
           ifSpecific              OBJECT IDENTIFIER -- deprecated
       }


   ifIndex OBJECT-TYPE
       SYNTAX      InterfaceIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A unique value, greater than zero, for each
               interface.  It is recommended that values are assigned
               contiguously starting from 1.  The value for each
               interface sub-layer must remain constant at least from
               one re-initialization of the entity's network
               management system to the next re-initialization."
       ::= { ifEntry 1 }

   ifDescr OBJECT-TYPE
       SYNTAX      DisplayString (SIZE (0..255))
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A textual string containing information about the
               interface.  This string should include the name of the
               manufacturer, the product name and the version of the
               interface hardware/software."
       ::= { ifEntry 2 }

   ifType OBJECT-TYPE
       SYNTAX      IANAifType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The type of interface.  Additional values for ifType
               are assigned by the Internet Assigned Numbers
               Authority (IANA), through updating the syntax of the
               IANAifType textual convention."
       ::= { ifEntry 3 }

   ifMtu OBJECT-TYPE
       SYNTAX      Integer32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The size of the largest packet which can be
               sent/received on the interface, specified in octets.
               For interfaces that are used for transmitting network
               datagrams, this is the size of the largest network
               datagram that can be sent on the interface."
       ::= { ifEntry 4 }

   ifSpeed OBJECT-TYPE
       SYNTAX      Gauge32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "An estimate of the interface's current bandwidth in
               bits per second.  For interfaces which do not vary in
               bandwidth or for those where no accurate estimation
               can be made, this object should contain the nominal
               bandwidth.  If the bandwidth of the interface is
               greater than the maximum value reportable by this
               object then this object should report its maximum
               value (4,294,967,295) and ifHighSpeed must be used to
               report the interace's speed.  For a sub-layer which
               has no concept of bandwidth, this object should be
               zero."
       ::= { ifEntry 5 }

   ifPhysAddress OBJECT-TYPE
       SYNTAX      PhysAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The interface's address at its protocol sub-layer.
               The interface's media-specific MIB must define the bit
               and byte ordering and format of the value contained by
               this object.  For interfaces which do not have such an
               address (e.g., a serial line), this object should
               contain an octet string of zero length."
       ::= { ifEntry 6 }

   ifAdminStatus OBJECT-TYPE
       SYNTAX  INTEGER {
                   up(1),       -- ready to pass packets
                   down(2),
                   testing(3)   -- in some test mode
               }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "The desired state of the interface.  The testing(3)
               state indicates that no operational packets can be
               passed.  When a managed system initializes, all
               interfaces start with ifAdminStatus in the down(2)
               state.  As a result of either explicit management
               action or per configuration information retained by
               the managed system, ifAdminStatus is then changed to
               either the up(1) or testing(3) states (or remains in
               the down(2) state)."
       ::= { ifEntry 7 }

   ifOperStatus OBJECT-TYPE
       SYNTAX  INTEGER {
                   up(1),       -- ready to pass packets
                   down(2),
                   testing(3),  -- in some test mode
                   unknown(4),  -- status can not be determined
                                -- for some reason.
                   dormant(5)
               }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The current operational state of the interface.  The
               testing(3) state indicates that no operational packets
               can be passed.  If ifAdminStatus is down(2) then
               ifOperStatus should be down(2).  If ifAdminStatus is
               changed to up(1) then ifOperStatus should change to
               up(1) if the interface is ready to transmit and
               receive network traffic; it should change to
               dormant(5) if the interface is waiting for external
               actions (such as a serial line waiting for an
               incomming connection); it should remain in the down(2)
               state if and only if there is a fault that prevents if
               from going to the up(1) state."
       ::= { ifEntry 8 }

   ifLastChange OBJECT-TYPE
       SYNTAX      TimeTicks
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The value of sysUpTime at the time the interface
               entered its current operational state.  If the current
               state was entered prior to the last re-initialization
               of the local network management subsystem, then this
               object contains a zero value."
       ::= { ifEntry 9 }

   ifInOctets OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of octets received on the interface,
               including framing characters."
       ::= { ifEntry 10 }

   ifInUcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were not addressed to a
               multicast or broadcast address at this sub-layer."
       ::= { ifEntry 11 }

   ifInNUcastPkts OBJECT-TYPE
       SYNTAX  Counter32
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               multicast or broadcast address at this sub-layer.
               This object is deprecated in favour of
               ifInMulticastPkts and ifInBroadcastPkts."
       ::= { ifEntry 12 }

   ifInDiscards OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of inbound packets which were chosen to be
               discarded even though no errors had been detected to
               prevent their being deliverable to a higher-layer
               protocol.  One possible reason for discarding such a
               packet could be to free up buffer space."
       ::= { ifEntry 13 }

   ifInErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "For packet-oriented interfaces, the number of inbound
               packets that contained errors preventing them from
               being deliverable to a higher-layer protocol.  For
               character-oriented or fixed-length interfaces, the
               number of inbound transmission units that contained
               errors preventing them from being deliverable to a
               higher-layer protocol."
       ::= { ifEntry 14 }

   ifInUnknownProtos OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "For packet-oriented interfaces, the number of packets
               received via the interface which were discarded
               because of an unknown or unsupported protocol.  For
               character-oriented or fixed-length interfaces which
               support protocol multiplexing the number of
               transmission units received via the interface which
               were discarded because of an unknown or unsupported
               protocol.  For any interface which does not support
               protocol multiplexing, this counter will always be 0."
       ::= { ifEntry 15 }

   ifOutOctets OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of octets transmitted out of the
               interface, including framing characters."
       ::= { ifEntry 16 }

   ifOutUcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION

               "The total number of packets that higher-level
               protocols requested be transmitted, and which were not
               addressed to a multicast or broadcast address at this
               sub-layer, including those that were discarded or not
               sent."
       ::= { ifEntry 17 }

   ifOutNUcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a multicast or broadcast address at this
               sub-layer, including those that were discarded or not
               sent.

               This object is deprecated in favour of
               ifOutMulticastPkts and ifOutBroadcastPkts."
       ::= { ifEntry 18 }

   ifOutDiscards OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of outbound packets which were chosen to
               be discarded even though no errors had been detected
               to prevent their being transmitted.  One possible
               reason for discarding such a packet could be to free
               up buffer space."
       ::= { ifEntry 19 }

   ifOutErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "For packet-oriented interfaces, the number of
               outbound packets that could not be transmitted because
               of errors.  For character-oriented or fixed-length
               interfaces, the number of outbound transmission units
               that could not be transmitted because of errors."
       ::= { ifEntry 20 }

   ifOutQLen OBJECT-TYPE
       SYNTAX      Gauge32
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "The length of the output packet queue (in packets)."
       ::= { ifEntry 21 }

   ifSpecific OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "A reference to MIB definitions specific to the
               particular media being used to realize the interface.
               It is recommended that this value point to an instance
               of a MIB object in the media-specific MIB, i.e., that
               this object have the semantics associated with the
               InstancePointer textual convention defined in RFC
               1443.  In fact, it is recommended that the media-
               specific MIB specify what value ifSpecific should/can
               take for values of ifType.  If no MIB definitions
               specific to the particular media are available, the
               value should be set to the OBJECT IDENTIFIER { 0 0 }."
       ::= { ifEntry 22 }


   --
   --   Extension to the interface table
   --
   -- This table replaces the ifExtnsTable table.
   --

   ifXTable        OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfXEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of interface entries.  The number of entries
               is given by the value of ifNumber.  This table
               contains additional objects for the interface table."
       ::= { ifMIBObjects 1 }

   ifXEntry        OBJECT-TYPE
       SYNTAX      IfXEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing additional management information
               applicable to a particular interface."
       AUGMENTS    { ifEntry }
       ::= { ifXTable 1 }

   IfXEntry ::=
       SEQUENCE {
           ifName                  DisplayString,
           ifInMulticastPkts       Counter32,
           ifInBroadcastPkts       Counter32,
           ifOutMulticastPkts      Counter32,
           ifOutBroadcastPkts      Counter32,
           ifHCInOctets            Counter64,
           ifHCInUcastPkts         Counter64,
           ifHCInMulticastPkts     Counter64,
           ifHCInBroadcastPkts     Counter64,
           ifHCOutOctets           Counter64,
           ifHCOutUcastPkts        Counter64,
           ifHCOutMulticastPkts    Counter64,
           ifHCOutBroadcastPkts    Counter64,
           ifLinkUpDownTrapEnable  INTEGER,
           ifHighSpeed             Gauge32,
           ifPromiscuousMode       TruthValue,
           ifConnectorPresent      TruthValue
       }


   ifName OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The textual name of the interface.  The value of this
               object should be the name of the interface as assigned
               by the local device and should be suitable for use in
               commands entered at the device's `console'.  This
               might be a text name, such as `le0' or a simple port
               number, such as `1', depending on the interface naming
               syntax of the device.  If several entries in the
               ifTable together represent a single interface as named
               by the device, then each will have the same value of
               ifName.  If there is no local name, or this object is
               otherwise not applicable, then this object contains a
               0-length string."
       ::= { ifXEntry 1 }

   ifInMulticastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               multicast address at this sub-layer.  For a MAC layer
               protocol, this includes both Group and Functional
               addresses."
       ::= { ifXEntry 2 }

   ifInBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               broadcast address at this sub-layer."
       ::= { ifXEntry 3 }

   ifOutMulticastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a multicast address at this sub-layer,
               including those that were discarded or not sent.  For
               a MAC layer protocol, this includes both Group and
               Functional addresses."
       ::= { ifXEntry 4 }

   ifOutBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a broadcast address at this sub-layer,
               including those that were discarded or not sent."
       ::= { ifXEntry 5 }

   --
   -- High Capacity Counter objects.  These objects are all

   -- 64 bit versions of the "basic" ifTable counters.  These
   -- objects all have the same basic semantics as their 32-bit
   -- counterparts, however, their syntax has been extended
   -- to 64 bits.
   --

   ifHCInOctets OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of octets received on the interface,
               including framing characters.  This object is a 64-bit
               version of ifInOctets."
       ::= { ifXEntry 6 }

   ifHCInUcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were not addressed to a
               multicast or broadcast address at this sub-layer.
               This object is a 64-bit version of ifInUcastPkts."
       ::= { ifXEntry 7 }

   ifHCInMulticastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               multicast address at this sub-layer.  For a MAC layer
               protocol, this includes both Group and Functional
               addresses.  This object is a 64-bit version of
               ifInMulticastPkts."
       ::= { ifXEntry 8 }

   ifHCInBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               broadcast address at this sub-layer.  This object is a
               64-bit version of ifInBroadcastPkts."
       ::= { ifXEntry 9 }

   ifHCOutOctets OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of octets transmitted out of the
               interface, including framing characters.  This object
               is a 64-bit version of ifOutOctets."
       ::= { ifXEntry 10 }

   ifHCOutUcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were not
               addressed to a multicast or broadcast address at this
               sub-layer, including those that were discarded or not
               sent.  This object is a 64-bit version of
               ifOutUcastPkts."
       ::= { ifXEntry 11 }

   ifHCOutMulticastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a multicast address at this sub-layer,
               including those that were discarded or not sent.  For
               a MAC layer protocol, this includes both Group and
               Functional addresses.  This object is a 64-bit version
               of ifOutMulticastPkts."
       ::= { ifXEntry 12 }

   ifHCOutBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a broadcast address at this sub-layer,
               including those that were discarded or not sent.  This
               object is a 64-bit version of ifOutBroadcastPkts."
       ::= { ifXEntry 13 }

   ifLinkUpDownTrapEnable  OBJECT-TYPE
       SYNTAX      INTEGER { enabled(1), disabled(2) }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "Indicates whether linkUp/linkDown traps should be
               generated for this interface.

               By default, this object should have the value
               enabled(1) for interfaces which do not operate on
               'top' of any other interface (as defined in the
               ifStackTable), and disabled(2) otherwise."
       ::= { ifXEntry 14 }

   ifHighSpeed OBJECT-TYPE
       SYNTAX      Gauge32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "An estimate of the interface's current bandwidth in
               units of 1,000,000 bits per second.  If this object
               reports a value of `n' then the speed of the interface
               is somewhere in the range of `n-500,000' to
               `n+499,999'.  For interfaces which do not vary in
               bandwidth or for those where no accurate estimation
               can be made, this object should contain the nominal
               bandwidth.  For a sub-layer which has no concept of
               bandwidth, this object should be zero."
       ::= { ifXEntry 15 }

   ifPromiscuousMode  OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "This object has a value of false(2) if this interface
               only accepts packets/frames that are addressed to this
               station.  This object has a value of true(1) when the
               station accepts all packets/frames transmitted on the
               media.  The value true(1) is only legal on certain
               types of media.  If legal, setting this object to a
               value of true(1) may require the interface to be reset
               before becoming effective.

               The value of ifPromiscuousMode does not affect the
               reception of broadcast and multicast packets/frames by
               the interface."
       ::= { ifXEntry 16 }

   ifConnectorPresent   OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "This object has the value 'true(1)' if the interface
               sublayer has a physical connector and the value
               'false(2)' otherwise."
       ::= { ifXEntry 17 }


   --           The Interface Stack Group
   --
   -- Implementation of this group is mandatory for all systems
   --

   ifStackTable  OBJECT-TYPE
        SYNTAX        SEQUENCE OF IfStackEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "The table containing information on the relationships
               between the multiple sub-layers of network interfaces.
               In particular, it contains information on which sub-
               layers run 'on top of' which other sub-layers.  Each
               sub-layer corresponds to a conceptual row in the
               ifTable."
        ::= { ifMIBObjects 2 }


   ifStackEntry  OBJECT-TYPE
        SYNTAX        IfStackEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "Information on a particular relationship between two
               sub-layers, specifying that one sub-layer runs on
               'top' of the other sub-layer.  Each sub-layer
               corresponds to a conceptual row in the ifTable."
        INDEX { ifStackHigherLayer, ifStackLowerLayer }
        ::= { ifStackTable 1 }


   IfStackEntry ::=
       SEQUENCE {
           ifStackHigherLayer  Integer32,
           ifStackLowerLayer   Integer32,
           ifStackStatus       RowStatus
        }


   ifStackHigherLayer  OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "The value of ifIndex corresponding to the higher
               sub-layer of the relationship, i.e., the sub-layer
               which runs on 'top' of the sub-layer identified by the
               corresponding instance of ifStackLowerLayer.  If there
               is no higher sub-layer (below the internetwork layer),
               then this object has the value 0."
        ::= { ifStackEntry 1 }


   ifStackLowerLayer  OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "The value of ifIndex corresponding to the lower sub-
               layer of the relationship, i.e., the sub-layer which
               runs 'below' the sub-layer identified by the
               corresponding instance of ifStackHigherLayer.  If
               there is no lower sub-layer, then this object has the
               value 0."
        ::= { ifStackEntry 2 }


   ifStackStatus  OBJECT-TYPE
       SYNTAX         RowStatus
       MAX-ACCESS     read-write
       STATUS         current
       DESCRIPTION
               "The status of the relationship between two sub-
               layers.

               Changing the value of this object from 'active' to
               'notInService' or 'destroy' will likely have
               consequences up and down the interface stack.  Thus,
               write access to this object is likely to be
               inappropriate for some types of interfaces, and many
               implementations will choose not to support write-
               access for any type of interface."
       ::= { ifStackEntry 3 }


   --
   --    The Interface Test Table
   --
   -- This group of objects is optional.  However, a media-specific
   -- MIB may make implementation of this group mandatory.
   --
   -- This table replaces the ifExtnsTestTable
   --

   ifTestTable   OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfTestEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "This table contains one entry per interface.  It
               defines objects which allow a network manager to
               instruct an agent to test an interface for various
               faults.  Tests for an interface are defined in the
               media-specific MIB for that interface.  After invoking
               a test, the object ifTestResult can be read to
               determine the outcome.  If an agent can not perform
               the test, ifTestResult is set to so indicate.  The
               object ifTestCode can be used to provide further
               test-specific or interface-specific (or even
               enterprise-specific) information concerning the
               outcome of the test.  Only one test can be in progress
               on each interface at any one time.  If one test is in
               progress when another test is invoked, the second test
               is rejected.  Some agents may reject a test when a
               prior test is active on another interface.
               Before starting a test, a manager-station must first
               obtain 'ownership' of the entry in the ifTestTable for
               the interface to be tested.  This is accomplished with
               the ifTestId and ifTestStatus objects as follows:

            try_again:
                get (ifTestId, ifTestStatus)
                while (ifTestStatus != notInUse)
                    /*
                     * Loop while a test is running or some other
                     * manager is configuring a test.
                     */
                    short delay
                    get (ifTestId, ifTestStatus)
                }

                /*
                 * Is not being used right now -- let's compete
                 * to see who gets it.
                 */
                lock_value = ifTestId

                if ( set(ifTestId = lock_value, ifTestStatus = inUse,
                         ifTestOwner = 'my-IP-address') == FAILURE)
                    /*
                     * Another manager got the ifTestEntry -- go
                     * try again
                     */
                    goto try_again;

                /*
                 * I have the lock
                 */
                set up any test parameters.

                /*
                 * This starts the test
                 */
                set(ifTestType = test_to_run);

                wait for test completion by polling ifTestResult

                when test completes, agent sets ifTestResult
                     agent also sets ifTestStatus = 'notInUse'

                retrieve any additional test results, and ifTestId

                if (ifTestId == lock_value+1) results are valid
              A manager station first retrieves the value of the
              appropriate ifTestId and ifTestStatus objects,
              periodically repeating the retrieval if necessary,
              until the value of ifTestStatus is 'notInUse'.  The
              manager station then tries to set the same ifTestId
              object to the value it just retrieved, the same
              ifTestStatus object to 'inUse', and the corresponding
              ifTestOwner object to a value indicating itself.  If
              the set operation succeeds then the manager has
              obtained ownership of the ifTestEntry, and the value of
              the ifTestId object is incremented by the agent (per
              the semantics of TestAndIncr).  Failure of the set
              operation indicates that some other manager has
              obtained ownership of the ifTestEntry.

              Once ownership is obtained, any test parameters can be
              setup, and then the test is initiated by setting
              ifTestType.  On completion of the test, the agent sets
              ifTestStatus to 'notInUse'.  Once this occurs, the
              manager can retrieve the results.  In the (rare) event
              that the invocation of tests by two network managers
              were to overlap, then there would be a possibility that
              the first test's results might be overwritten by the
              second test's results prior to the first results being
              read.  This unlikely circumstance can be detected by a
              network manager retrieving ifTestId at the same time as
              retrieving the test results, and ensuring that the
              results are for the desired request.

              If ifTestType is not set within an abnormally long
              period of time after ownership is obtained, the agent
              should time-out the manager, and reset the value of the
              ifTestStatus object back to 'notInUse'.  It is
              suggested that this time-out period be 5 minutes.

              In general, a management station must not retransmit a
              request to invoke a test for which it does not receive
              a response; instead, it properly inspects an agent's
              MIB to determine if the invocation was successful.
              Only if the invocation was unsuccessful, is the
              invocation request retransmitted.

              Some tests may require the interface to be taken off-
              line in order to execute them, or may even require the
              agent to reboot after completion of the test.  In these
              circumstances, communication with the management
              station invoking the test may be lost until after
              completion of the test.  An agent is not required to
              support such tests.  However, if such tests are
              supported, then the agent should make every effort to
              transmit a response to the request which invoked the
              test prior to losing communication.  When the agent is
              restored to normal service, the results of the test are
              properly made available in the appropriate objects.
              Note that this requires that the ifIndex value assigned
              to an interface must be unchanged even if the test
              causes a reboot.  An agent must reject any test for
              which it cannot, perhaps due to resource constraints,
              make available at least the minimum amount of
              information after that test completes."
       ::= { ifMIBObjects 3 }

   ifTestEntry OBJECT-TYPE
       SYNTAX       IfTestEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
               "An entry containing objects for invoking tests on an
               interface."
       AUGMENTS  { ifEntry }
       ::= { ifTestTable 1 }

   IfTestEntry ::=
       SEQUENCE {
           ifTestId           TestAndIncr,
           ifTestStatus       INTEGER,
           ifTestType         AutonomousType,
           ifTestResult       INTEGER,
           ifTestCode         OBJECT IDENTIFIER,
           ifTestOwner        OwnerString
       }

   ifTestId         OBJECT-TYPE
       SYNTAX       TestAndIncr
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
               "This object identifies the current invocation of the
               interface's test."
       ::= { ifTestEntry 1 }

   ifTestStatus     OBJECT-TYPE
       SYNTAX       INTEGER { notInUse(1), inUse(2) }
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
               "This object indicates whether or not some manager
               currently has the necessary 'ownership' required to
               invoke a test on this interface.  A write to this
               object is only successful when it changes its value
               from 'notInUse(1)' to 'inUse(2)'.  After completion of
               a test, the agent resets the value back to
               'notInUse(1)'."
       ::= { ifTestEntry 2 }

   ifTestType       OBJECT-TYPE
       SYNTAX       AutonomousType
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
               "A control variable used to start and stop operator-
               initiated interface tests.  Most OBJECT IDENTIFIER
               values assigned to tests are defined elsewhere, in
               association with specific types of interface.
               However, this document assigns a value for a full-
               duplex loopback test, and defines the special meanings
               of the subject identifier:

                   noTest  OBJECT IDENTIFIER ::= { 0 0 }

               When the value noTest is written to this object, no
               action is taken unless a test is in progress, in which
               case the test is aborted.  Writing any other value to
               this object is only valid when no test is currently in
               progress, in which case the indicated test is
               initiated.

               When read, this object always returns the most recent
               value that ifTestType was set to.  If it has not been
               set since the last initialization of the network
               management subsystem on the agent, a value of noTest
               is returned."
       ::= { ifTestEntry 3 }

   ifTestResult  OBJECT-TYPE
       SYNTAX       INTEGER {
                        none(1),          -- no test yet requested
                        success(2),
                        inProgress(3),
                        notSupported(4),
                        unAbleToRun(5),   -- due to state of system
                        aborted(6),
                        failed(7)
                    }
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
               "This object contains the result of the most recently
               requested test, or the value none(1) if no tests have
               been requested since the last reset.  Note that this
               facility provides no provision for saving the results
               of one test when starting another, as could be
               required if used by multiple managers concurrently."
       ::= { ifTestEntry 4 }

   ifTestCode  OBJECT-TYPE
       SYNTAX       OBJECT IDENTIFIER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
               "This object contains a code which contains more
               specific information on the test result, for example
               an error-code after a failed test.  Error codes and
               other values this object may take are specific to the
               type of interface and/or test.  The value may have the
               semantics of either the AutonomousType or
               InstancePointer textual conventions as defined in RFC
               1443.  The identifier:

                   testCodeUnknown  OBJECT IDENTIFIER ::= { 0 0 }

               is defined for use if no additional result code is
               available."
       ::= { ifTestEntry 5 }

   ifTestOwner      OBJECT-TYPE
       SYNTAX       OwnerString
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
               "The entity which currently has the 'ownership'
               required to invoke a test on this interface."
       ::= { ifTestEntry 6 }


   --   Generic Receive Address Table
   --
   -- This group of objects is mandatory for all types of
   -- interfaces which can receive packets/frames addressed to
   -- more than one address.
   --
   -- This table replaces the ifExtnsRcvAddr table.  The main
   -- difference is that this table makes use of the RowStatus
   -- textual convention, while ifExtnsRcvAddr did not.

   ifRcvAddressTable  OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfRcvAddressEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "This table contains an entry for each address
               (broadcast, multicast, or uni-cast) for which the
               system will receive packets/frames on a particular
               interface, except as follows:

               - for an interface operating in promiscuous mode,
               entries are only required for those addresses for
               which the system would receive frames were it not
               operating in promiscuous mode.

               - for 802.5 functional addresses, only one entry is
               required, for the address which has the functional
               address bit ANDed with the bit mask of all functional
               addresses for which the interface will accept frames."
       ::= { ifMIBObjects 4 }

   ifRcvAddressEntry  OBJECT-TYPE
       SYNTAX      IfRcvAddressEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of objects identifying an address for which
               the system will accept packets/frames on the
               particular interface identified by the index value
               ifIndex."
       INDEX  { ifIndex, ifRcvAddressAddress }
       ::= { ifRcvAddressTable 1 }

   IfRcvAddressEntry ::=
       SEQUENCE {
           ifRcvAddressAddress   PhysAddress,
           ifRcvAddressStatus    RowStatus,
           ifRcvAddressType      INTEGER
       }

   ifRcvAddressAddress OBJECT-TYPE
       SYNTAX      PhysAddress
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
               "An address for which the system will accept
               packets/frames on this entry's interface."
       ::= { ifRcvAddressEntry 1 }

   ifRcvAddressStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "This object is used to create and delete rows in the
               ifRcvAddressTable."

       ::= { ifRcvAddressEntry 2 }

   ifRcvAddressType OBJECT-TYPE
       SYNTAX      INTEGER {
                       other(1),
                       volatile(2),
                       nonVolatile(3)
                   }

       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
               "This object has the value nonVolatile(3) for those
               entries in the table which are valid and will not be
               deleted by the next restart of the managed system.
               Entries having the value volatile(2) are valid and
               exist, but have not been saved, so that will not exist
               after the next restart of the managed system.  Entries
               having the value other(1) are valid and exist but are
               not classified as to whether they will continue to
               exist after the next restart."

       DEFVAL  { volatile }

       ::= { ifRcvAddressEntry 3 }


   -- definition of interface-related traps.

   linkDown NOTIFICATION-TYPE
       OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
       STATUS  current
       DESCRIPTION
               "A linkDown trap signifies that the SNMPv2 entity,
               acting in an agent role, has detected that the
               ifOperStatus object for one of its communication links
               is about to transition into the down state."
       ::= { snmpTraps 3 }

   linkUp NOTIFICATION-TYPE
       OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
       STATUS  current
       DESCRIPTION
               "A linkUp trap signifies that the SNMPv2 entity,
               acting in an agent role, has detected that the
               ifOperStatus object for one of its communication links
               has transitioned out of the down state."
       ::= { snmpTraps 4 }


   -- conformance information

   ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 }

   ifGroups      OBJECT IDENTIFIER ::= { ifConformance 1 }
   ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 }


   -- compliance statements

   ifCompliance MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for SNMPv2 entities which
               have network interfaces."

       MODULE  -- this module
           MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup }

           GROUP       ifFixedLengthGroup
           DESCRIPTION
               "This group is mandatory for all network interfaces
               which are character-oriented or transmit data in
               fixed-length transmission units."

           GROUP       ifHCFixedLengthGroup
           DESCRIPTION
               "This group is mandatory only for those network
               interfaces which are character-oriented or transmit
               data in fixed-length transmission units, and for which
               the value of the corresponding instance of ifSpeed is
               greater than 20,000,000 bits/second."

           GROUP       ifPacketGroup
           DESCRIPTION
               "This group is mandatory for all network interfaces
               which are packet-oriented."

           GROUP       ifHCPacketGroup
           DESCRIPTION
               "This group is mandatory only for those network
               interfaces which are packet-oriented and for which the
               value of the corresponding instance of ifSpeed is
               greater than 650,000,000 bits/second."
           GROUP       ifTestGroup
           DESCRIPTION
               "This group is optional.  Media-specific MIBs which
               require interface tests are strongly encouraged to use
               this group for invoking tests and reporting results.
               A medium specific MIB which has mandatory tests may
               make implementation of this group mandatory."

           GROUP       ifRcvAddressGroup
           DESCRIPTION
               "The applicability of this group MUST be defined by
               the media-specific MIBs.  Media-specific MIBs must
               define the exact meaning, use, and semantics of the
               addresses in this group."

           OBJECT      ifLinkUpDownTrapEnable
           MIN-ACCESS  read-only
           DESCRIPTION
               "Write access is not required."

           OBJECT      ifPromiscuousMode
           MIN-ACCESS  read-only
           DESCRIPTION
               "Write access is not required."

           OBJECT      ifStackStatus
           SYNTAX      INTEGER { active(1) } -- subset of RowStatus
           MIN-ACCESS  read-only
           DESCRIPTION
               "Write access is not required, and only one of the six
               enumerated values for the RowStatus textual convention
               need be supported, specifically: active(1)."

           OBJECT       ifAdminStatus
           SYNTAX       INTEGER { up(1), down(2) }
           MIN-ACCESS   read-only
           DESCRIPTION
               "Write access is not required, nor is support for the
               value testing(3)."
       ::= { ifCompliances 1 }


   -- units of conformance

   ifGeneralGroup    OBJECT-GROUP
       OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress,
                 ifAdminStatus, ifOperStatus, ifLastChange,
                 ifLinkUpDownTrapEnable, ifConnectorPresent,
                 ifHighSpeed, ifName }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               applicable to all network interfaces."
       ::= { ifGroups 1 }

   -- the following five groups are mutually exclusive; at most
   -- one of these groups is implemented for any interface

   ifFixedLengthGroup    OBJECT-GROUP
       OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to non-high speed, character-oriented or
               fixed-length-transmission network interfaces.  (Non-
               high speed interfaces transmit and receive at speeds
               less than or equal to 20,000,000 bits/second.)"
       ::= { ifGroups 2 }

   ifHCFixedLengthGroup    OBJECT-GROUP
       OBJECTS { ifHCInOctets, ifHCOutOctets,
                 ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to high speed (greater than 20,000,000
               bits/second) character-oriented or fixed-length-
               transmission network interfaces."
       ::= { ifGroups 3 }

   ifPacketGroup    OBJECT-GROUP
       OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors,
                 ifMtu, ifInUcastPkts, ifInMulticastPkts,
                 ifInBroadcastPkts, ifInDiscards,
                 ifOutUcastPkts, ifOutMulticastPkts,
                 ifOutBroadcastPkts, ifOutDiscards,
                 ifPromiscuousMode }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to non-high speed, packet-oriented network
               interfaces.  (Non-high speed interfaces transmit and
               receive at speeds less than or equal to 20,000,000
               bits/second.)"
       ::= { ifGroups 4 }

   ifHCPacketGroup    OBJECT-GROUP
       OBJECTS { ifHCInOctets, ifHCOutOctets,
                 ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors,
                 ifMtu, ifInUcastPkts, ifInMulticastPkts,
                 ifInBroadcastPkts, ifInDiscards,
                 ifOutUcastPkts, ifOutMulticastPkts,
                 ifOutBroadcastPkts, ifOutDiscards,
                 ifPromiscuousMode }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to high speed (greater than 20,000,000
               bits/second but less than or equal to 650,000,000
               bits/second) packet-oriented network interfaces."
       ::= { ifGroups 5 }

   ifVHCPacketGroup    OBJECT-GROUP
       OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts,
                 ifHCInBroadcastPkts, ifHCOutUcastPkts,
                 ifHCOutMulticastPkts, ifHCOutBroadcastPkts,
                 ifHCInOctets, ifHCOutOctets,
                 ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors,
                 ifMtu, ifInUcastPkts, ifInMulticastPkts,
                 ifInBroadcastPkts, ifInDiscards,
                 ifOutUcastPkts, ifOutMulticastPkts,
                 ifOutBroadcastPkts, ifOutDiscards,
                 ifPromiscuousMode }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to higher speed (greater than 650,000,000
               bits/second) packet-oriented network interfaces."
       ::= { ifGroups 6 }

   ifRcvAddressGroup    OBJECT-GROUP
       OBJECTS { ifRcvAddressStatus, ifRcvAddressType }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information on the
               multiple addresses which an interface receives."
       ::= { ifGroups 7 }

   ifTestGroup    OBJECT-GROUP
       OBJECTS { ifTestId, ifTestStatus, ifTestType,
                 ifTestResult, ifTestCode, ifTestOwner }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing the ability to
               invoke tests on an interface."
       ::= { ifGroups 8 }

   ifStackGroup    OBJECT-GROUP
       OBJECTS { ifStackStatus }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information on the
               layering of MIB-II interfaces."
       ::= { ifGroups 9 }

   END
   EtherLike-MIB DEFINITIONS ::= BEGIN

      IMPORTS
          Counter                FROM RFC1155-SMI
          ifIndex, transmission  FROM RFC1213-MIB
          OBJECT-TYPE            FROM RFC-1212;

       -- This MIB module uses the extended OBJECT-TYPE macro as
       -- defined in RFC-1212.

      dot3    OBJECT IDENTIFIER ::= { transmission 7 }

      -- the Ethernet-like Statistics group

       dot3StatsTable  OBJECT-TYPE
            SYNTAX     SEQUENCE OF Dot3StatsEntry
            ACCESS     not-accessible
            STATUS     mandatory
            DESCRIPTION
             "Statistics for a collection of ethernet-like
             interfaces attached to a particular system."
            ::= { dot3 2 }


       dot3StatsEntry   OBJECT-TYPE
            SYNTAX      Dot3StatsEntry
            ACCESS      not-accessible
            STATUS      mandatory
            DESCRIPTION
              "Statistics for a particular interface to an
              ethernet-like medium."
            INDEX     { dot3StatsIndex }
            ::= { dot3StatsTable 1 }

       Dot3StatsEntry ::= SEQUENCE {
            dot3StatsIndex                      INTEGER,
            dot3StatsAlignmentErrors            Counter,
            dot3StatsFCSErrors                  Counter,
            dot3StatsSingleCollisionFrames      Counter,
            dot3StatsMultipleCollisionFrames    Counter,
            dot3StatsSQETestErrors              Counter,
            dot3StatsDeferredTransmissions      Counter,
            dot3StatsLateCollisions             Counter,
            dot3StatsExcessiveCollisions        Counter,
            dot3StatsInternalMacTransmitErrors  Counter,
            dot3StatsCarrierSenseErrors         Counter,
            dot3StatsFrameTooLongs              Counter,
            dot3StatsInternalMacReceiveErrors   Counter,
            dot3StatsEtherChipSet               OBJECT IDENTIFIER
       }

       dot3StatsIndex   OBJECT-TYPE
            SYNTAX      INTEGER
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
              "An index value that uniquely identifies an
              interface to an ethernet-like medium.  The
              interface identified by a particular value of
              this index is the same interface as identified
              by the same value of ifIndex."
            ::= { dot3StatsEntry 1 }

       dot3StatsAlignmentErrors   OBJECT-TYPE
            SYNTAX     Counter
            ACCESS     read-only
            STATUS     mandatory
            DESCRIPTION
             "A count of frames received on a particular
             interface that are not an integral number of
             octets in length and do not pass the FCS check.

             The count represented by an instance of this
             object is incremented when the alignmentError
             status is returned by the MAC service to the
             LLC (or other MAC user). Received frames for
             which multiple error conditions obtain are,
             according to the conventions of IEEE 802.3
             Layer Management, counted exclusively according
             to the error status presented to the LLC."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 2 }

       dot3StatsFCSErrors   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "A count of frames received on a particular
            interface that are an integral number of octets
            in length but do not pass the FCS check.

            The count represented by an instance of this
            object is incremented when the frameCheckError
            status is returned by the MAC service to the
            LLC (or other MAC user). Received frames for
            which multiple error conditions obtain are,
            according to the conventions of IEEE 802.3
            Layer Management, counted exclusively according
            to the error status presented to the LLC."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 3 }

       dot3StatsSingleCollisionFrames   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "A count of successfully transmitted frames on
            a particular interface for which transmission
            is inhibited by exactly one collision.

            A frame that is counted by an instance of this
            object is also counted by the corresponding
            instance of either the ifOutUcastPkts,
            ifOutMulticastPkts, or ifOutBroadcastPkts,
            and is not counted by the corresponding
            instance of the dot3StatsMultipleCollisionFrames
            object."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 4 }

       dot3StatsMultipleCollisionFrames   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "A count of successfully transmitted frames on
            a particular interface for which transmission
             is inhibited by more than one collision.

            A frame that is counted by an instance of this
            object is also counted by the corresponding
            instance of either the ifOutUcastPkts,
            ifOutMulticastPkts, or ifOutBroadcastPkts,
            and is not counted by the corresponding
            instance of the dot3StatsSingleCollisionFrames
            object."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 5 }

       dot3StatsSQETestErrors   OBJECT-TYPE
            SYNTAX     Counter
            ACCESS     read-only
            STATUS     mandatory
            DESCRIPTION
            "A count of times that the SQE TEST ERROR
            message is generated by the PLS sublayer for a
            particular interface. The SQE TEST ERROR
            message is defined in section 7.2.2.2.4 of
            ANSI/IEEE 802.3-1985 and its generation is
            described in section 7.2.4.6 of the same
            document."
            REFERENCE
            "ANSI/IEEE Std 802.3-1985 Carrier Sense
            Multiple Access with Collision Detection Access
            Method and Physical Layer Specifications"
            ::= { dot3StatsEntry 6 }

       dot3StatsDeferredTransmissions   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "A count of frames for which the first
            transmission attempt on a particular interface
            is delayed because the medium is busy.

            The count represented by an instance of this
            object does not include frames involved in
            collisions."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 7 }

       dot3StatsLateCollisions   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "The number of times that a collision is
            detected on a particular interface later than
            512 bit-times into the transmission of a
            packet.

            Five hundred and twelve bit-times corresponds
            to 51.2 microseconds on a 10 Mbit/s system. A
            (late) collision included in a count
            represented by an instance of this object is
            also considered as a (generic) collision for
            purposes of other collision-related
            statistics."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 8 }

       dot3StatsExcessiveCollisions   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of frames for which transmission on a
            particular interface fails due to excessive
            collisions."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 9 }


       dot3StatsInternalMacTransmitErrors   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of frames for which transmission on a
            particular interface fails due to an internal
            MAC sublayer transmit error. A frame is only
            counted by an instance of this object if it is
            not counted by the corresponding instance of
            either the dot3StatsLateCollisions object, the
            dot3StatsExcessiveCollisions object, or the
            dot3StatsCarrierSenseErrors object.

            The precise meaning of the count represented by
            an instance of this object is implementation-
            specific.  In particular, an instance of this
            object may represent a count of transmission
            errors on a particular interface that are not
            otherwise counted."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 10 }

       dot3StatsCarrierSenseErrors   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "The number of times that the carrier sense
            condition was lost or never asserted when
            attempting to transmit a frame on a particular
            interface.

            The count represented by an instance of this
            object is incremented at most once per
            transmission attempt, even if the carrier sense
            condition fluctuates during a transmission
            attempt."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 11 }

       -- { dot3StatsEntry 12 } is not assigned

       dot3StatsFrameTooLongs   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of frames received on a particular
            interface that exceed the maximum permitted
            frame size.

            The count represented by an instance of this
            object is incremented when the frameTooLong
            status is returned by the MAC service to the
            LLC (or other MAC user). Received frames for
            which multiple error conditions obtain are,
            according to the conventions of IEEE 802.3
            Layer Management, counted exclusively according
            to the error status presented to the LLC."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 13 }

       -- { dot3StatsEntry 14 } is not assigned

       -- { dot3StatsEntry 15 } is not assigned

       dot3StatsInternalMacReceiveErrors   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of frames for which reception on a
            particular interface fails due to an internal
            MAC sublayer receive error. A frame is only
            counted by an instance of this object if it is
            not counted by the corresponding instance of
            either the dot3StatsFrameTooLongs object, the
            dot3StatsAlignmentErrors object, or the
            dot3StatsFCSErrors object.

            The precise meaning of the count represented by
            an instance of this object is implementation-
            specific.  In particular, an instance of this
            object may represent a count of receive errors
            on a particular interface that are not
            otherwise counted."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 16 }

       dot3StatsEtherChipSet   OBJECT-TYPE
            SYNTAX        OBJECT IDENTIFIER
            ACCESS        read-only
            STATUS        mandatory
            DESCRIPTION
            "This object contains an OBJECT IDENTIFIER
            which identifies the chipset used to
            realize the interface. Ethernet-like
            interfaces are typically built out of
            several different chips. The MIB implementor
            is presented with a decision of which chip
            to identify via this object. The implementor
            should identify the chip which is usually
            called the Medium Access Control chip.
            If no such chip is easily identifiable,
            the implementor should identify the chip
            which actually gathers the transmit
            and receive statistics and error
            indications. This would allow a
            manager station to correlate the
            statistics and the chip generating
            them, giving it the ability to take
            into account any known anomalies
            in the chip."
            ::= { dot3StatsEntry 17 }

       -- the Ethernet-like Collision Statistics group

       -- Implementation of this group is optional; it is appropriate
       -- for all systems which have the necessary metering

       dot3CollTable  OBJECT-TYPE
            SYNTAX    SEQUENCE OF Dot3CollEntry
            ACCESS    not-accessible
            STATUS    mandatory
            DESCRIPTION
            "A collection of collision histograms for a
            particular set of interfaces."
            ::= { dot3 5 }


       dot3CollEntry  OBJECT-TYPE
            SYNTAX    Dot3CollEntry
            ACCESS    not-accessible
            STATUS    mandatory
            DESCRIPTION
            "A cell in the histogram of per-frame
            collisions for a particular interface.  An
            instance of this object represents the
            frequency of individual MAC frames for which
            the transmission (successful or otherwise) on a
            particular interface is accompanied by a
            particular number of media collisions."
            INDEX     { ifIndex, dot3CollCount }
            ::= { dot3CollTable 1 }

       Dot3CollEntry ::= SEQUENCE {
            dot3CollCount        INTEGER,
            dot3CollFrequencies  Counter
       }

       -- { dot3CollEntry 1 } is no longer in use

       dot3CollCount  OBJECT-TYPE
            SYNTAX    INTEGER (1..16)
            ACCESS    not-accessible
            STATUS    mandatory
            DESCRIPTION
            "The number of per-frame media collisions for
            which a particular collision histogram cell
            represents the frequency on a particular
            interface."
            ::= { dot3CollEntry 2 }


       dot3CollFrequencies   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of individual MAC frames for which the
            transmission (successful or otherwise) on a
            particular interface occurs after the
            frame has experienced exactly the number
            of collisions in the associated
            dot3CollCount object.

            For example, a frame which is transmitted
            on interface 77 after experiencing
            exactly 4 collisions would be indicated
            by incrementing only dot3CollFrequencies.77.4.
            No other instance of dot3CollFrequencies would
            be incremented in this example."
            ::= { dot3CollEntry 3 }

       --  802.3 Tests

       dot3Tests   OBJECT IDENTIFIER ::= { dot3 6 }

       dot3Errors  OBJECT IDENTIFIER ::= { dot3 7 }


       --  TDR Test

       -- The Time-Domain Reflectometry (TDR) test is specific
       -- to ethernet-like interfaces with the exception of
       -- 10BaseT and 10BaseF. The TDR value may be useful
       -- in determining the approximate distance to a cable fault.
       -- It is advisable to repeat this test to check for a
       -- consistent resulting TDR value, to verify that there
       -- is a fault.

       dot3TestTdr OBJECT IDENTIFIER ::= { dot3Tests 1 }

       -- A TDR test returns as its result the time interval,
       -- measured in 10 MHz ticks or 100 nsec units, between
       -- the start of TDR test transmission and the subsequent
       -- detection of a collision or deassertion of carrier.  On
       -- successful completion of a TDR test, the result is
       -- stored as the value of the appropriate instance of the
       -- MIB object dot3TestTdrValue, and the OBJECT IDENTIFIER
       -- of that instanceis stored in the corresponding instance
       -- of ifExtnsTestCode (thereby indicating where the
       -- result has been stored).


       -- Loopback Test

       -- Another test is the full-duplex loopback test.
       -- This test configures the MAC chip and executes
       -- an internal loopback test of memory, data paths,
       -- and the MAC chip logic.  This loopback test can
       -- only be executed if the interface is offline.
       -- Once the test has completed, the MAC chip should
       -- be reinitialized for network operation, but it
       -- should remain offline.

       dot3TestLoopBack OBJECT IDENTIFIER ::= { dot3Tests 2 }

       -- If an error occurs during a test, the object
       -- ifTestResult (defined in RFC1573) will be set
       -- to failed(7).  The following two OBJECT
       -- IDENTIFIERs may be used to provided more
       -- information as values for ifTestCode.

                -- couldn't initialize MAC chip for test
       dot3ErrorInitError     OBJECT IDENTIFIER ::= { dot3Errors 1 }

                -- expected data not received (or not
                -- received correctly) in loopback test
       dot3ErrorLoopbackError OBJECT IDENTIFIER ::= { dot3Errors 2 }

       -- RFC1573 does away with the interface chipset object.
       -- The following OBJECT IDENTIFIER definitions are
       -- retained for purposes of backwards compatibility
       -- with pre-RFC1573 systems.
       --  802.3 Hardware Chipsets

       -- The object ifExtnsChipSet is provided in RFC1229 to
       -- identify the MAC hardware used to communcate on an
       -- interface.  The following hardware chipsets are
       -- provided for 802.3:

       dot3ChipSets          OBJECT IDENTIFIER ::= { dot3 8 }
       dot3ChipSetAMD        OBJECT IDENTIFIER ::= { dot3ChipSets 1 }
       dot3ChipSetAMD7990    OBJECT IDENTIFIER ::= { dot3ChipSetAMD 1 }
       dot3ChipSetAMD79900   OBJECT IDENTIFIER ::= { dot3ChipSetAMD 2 }
       dot3ChipSetAMD79C940  OBJECT IDENTIFIER ::= { dot3ChipSetAMD 3 }

       dot3ChipSetIntel      OBJECT IDENTIFIER ::= { dot3ChipSets 2 }
       dot3ChipSetIntel82586 OBJECT IDENTIFIER ::= { dot3ChipSetIntel 1 }
       dot3ChipSetIntel82596 OBJECT IDENTIFIER ::= { dot3ChipSetIntel 2 }

       dot3ChipSetSeeq       OBJECT IDENTIFIER ::= { dot3ChipSets 3 }
       dot3ChipSetSeeq8003   OBJECT IDENTIFIER ::= { dot3ChipSetSeeq 1 }

       dot3ChipSetNational      OBJECT IDENTIFIER ::= { dot3ChipSets 4 }
       dot3ChipSetNational8390  OBJECT IDENTIFIER ::=
                                  { dot3ChipSetNational 1 }
       dot3ChipSetNationalSonic OBJECT IDENTIFIER ::=
                                  { dot3ChipSetNational 2 }

       dot3ChipSetFujitsu       OBJECT IDENTIFIER ::= { dot3ChipSets 5 }
       dot3ChipSetFujitsu86950  OBJECT IDENTIFIER ::=
                                  { dot3ChipSetFujitsu 1 }

       dot3ChipSetDigital       OBJECT IDENTIFIER ::= { dot3ChipSets 6 }
       dot3ChipSetDigitalDC21040  OBJECT IDENTIFIER ::=
                                  { dot3ChipSetDigital 1 }

       -- For those chipsets not represented above, OBJECT IDENTIFIER
       -- assignment is required in other documentation, e.g., assignment
       -- within that part of the registration tree delegated to
       -- individual enterprises (see RFC1155).

   END
OSPF-TRAP-MIB DEFINITIONS ::= BEGIN

    -- RCC Changes
    -- Renamed ospfVirtIfAreaId to ospfVirtIfAreaID (defined in rfc1253)
    -- Renamed opsfLsdbLsid to ospfLsdbLSID (defined in rfc1253) 
    -- Changed MODULE-IDENTITY to OBJECT-TYPE
    -- 6/5/97 removed ospfSetTrap variable. We will include it later.

    IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, IpAddress
                FROM SNMPv2-SMI
            MODULE-COMPLIANCE, OBJECT-GROUP
                FROM SNMPv2-CONF
            ospfRouterId, ospfIfIpAddress, ospfAddressLessIf, ospfIfState,
            ospfVirtIfAreaID, ospfVirtIfNeighbor, ospfVirtIfState,
            ospfNbrIpAddr, ospfNbrAddressLessIndex, ospfNbrRtrId,
            ospfNbrState, ospfVirtNbrArea, ospfVirtNbrRtrId, 
            ospfVirtNbrState, ospf
                FROM RFC1253-MIB;

    ospfTrap MODULE-IDENTITY
           LAST-UPDATED "9501201225Z" -- Fri Jan 20 12:25:50 PST 1995
           ORGANIZATION "IETF OSPF Working Group"
           CONTACT-INFO
           "                      Fred Baker
           Postal:                Cisco Systems
                                  519 Lado Drive
                                  Santa Barbara, California 93111
           Tel:                   +1 805 681 0115
           E-Mail:                fred@cisco.com
 
                                  Rob Coltun
           Postal:                RainbowBridge Communications
           Tel:                   (301) 340-9416
           E-Mail:                rcoltun@rainbow-bridge.com"
       DESCRIPTION
          "The MIB module to describe traps for  the  OSPF
          Version 2 Protocol."
      ::= { ospf 16 }

--    ospfTrap OBJECT IDENTIFIER ::= { ospf 16 }

-- Trap Support Objects

--         The following are support objects for the OSPF traps.

ospfTrapControl OBJECT IDENTIFIER ::= { ospfTrap 1 }
ospfTraps OBJECT IDENTIFIER ::= { ospfTrap 2 }


    ospfConfigErrorType OBJECT-TYPE
        SYNTAX   INTEGER   {
                    badVersion (1),
                    areaMismatch (2),
                    unknownNbmaNbr (3), -- Router is Dr eligible
                    unknownVirtualNbr (4),
                    authTypeMismatch(5),
                    authFailure (6),
                    netMaskMismatch (7),
                    helloIntervalMismatch (8),
                    deadIntervalMismatch (9),
                    optionMismatch (10) }
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "Potential types  of  configuration  conflicts.
           Used  by the ospfConfigError and ospfConfigVir-
           tError traps."
   ::= { ospfTrapControl 2 }


    ospfPacketType OBJECT-TYPE
        SYNTAX   INTEGER   {
                    hello (1),
                    dbDescript (2),
                    lsReq (3),
                    lsUpdate (4),
                    lsAck (5) }
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "OSPF packet types."
   ::= { ospfTrapControl 3 }


    ospfPacketSrc OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The IP address of an inbound packet that  can-
           not be identified by a neighbor instance."
       ::= { ospfTrapControl 4 }


-- Traps


    ospfVirtIfStateChange NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtIfAreaID,
                    ospfVirtIfNeighbor,
                    ospfVirtIfState  -- The new state
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfStateChange trap signifies that there
           has  been a change in the state of an OSPF vir-
           tual interface.
           This trap should be generated when  the  inter-
           face  state  regresses  (e.g., goes from Point-
           to-Point to Down) or progresses to  a  terminal
           state (i.e., Point-to-Point)."
   ::= { ospfTraps 1 }


    ospfNbrStateChange NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfNbrIpAddr,
                    ospfNbrAddressLessIndex,
                    ospfNbrRtrId,
                    ospfNbrState  -- The new state
                  }
        STATUS             current
        DESCRIPTION
           "An  ospfNbrStateChange  trap  signifies   that
           there  has been a change in the state of a non-
           virtual OSPF neighbor.   This  trap  should  be
           generated  when  the  neighbor  state regresses
           (e.g., goes from Attempt or Full  to  1-Way  or
           Down)  or progresses to a terminal state (e.g.,
           2-Way or Full).  When an  neighbor  transitions
           from  or  to Full on non-broadcast multi-access
           and broadcast networks, the trap should be gen-
           erated  by the designated router.  A designated
           router transitioning to Down will be  noted  by
           ospfIfStateChange."
   ::= { ospfTraps 2 }


    ospfVirtNbrStateChange NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtNbrArea,
                    ospfVirtNbrRtrId,
                    ospfVirtNbrState  -- The new state
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfStateChange trap signifies that there
           has  been a change in the state of an OSPF vir-
           tual neighbor.  This trap should  be  generated
           when  the  neighbor state regresses (e.g., goes
           from Attempt or  Full  to  1-Way  or  Down)  or
           progresses to a terminal state (e.g., Full)."
   ::= { ospfTraps 3 }

    ospfIfConfigError NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    ospfPacketSrc,  -- The source IP address
                    ospfConfigErrorType, -- Type of error
                    ospfPacketType
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfConfigError  trap  signifies  that  a
           packet  has  been received on a non-virtual in-
           terface  from  a  router  whose   configuration
           parameters  conflict  with this router's confi-
           guration parameters.  Note that the  event  op-
           tionMismatch  should  cause  a  trap only if it
           prevents an adjacency from forming."
                  ::= { ospfTraps 4 }


    ospfVirtIfConfigError NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtIfAreaID,
                    ospfVirtIfNeighbor,
                    ospfConfigErrorType, -- Type of error
                    ospfPacketType
                  }
        STATUS             current
        DESCRIPTION
           "An ospfConfigError trap signifies that a pack-
           et  has  been  received  on a virtual interface
           from a router  whose  configuration  parameters
           conflict   with   this  router's  configuration
           parameters.  Note that the event optionMismatch
           should  cause a trap only if it prevents an ad-
           jacency from forming."
   ::= { ospfTraps 5 }


    ospfIfAuthFailure NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    ospfPacketSrc,  -- The source IP address
                    ospfConfigErrorType, -- authTypeMismatch or
                                         -- authFailure
                    ospfPacketType
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfAuthFailure  trap  signifies  that  a
           packet  has  been received on a non-virtual in-
           terface from a router whose authentication  key
           or  authentication  type  conflicts  with  this
           router's authentication key  or  authentication
           type."
   ::= { ospfTraps 6 }


    ospfVirtIfAuthFailure NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtIfAreaID,
                    ospfVirtIfNeighbor,
                    ospfConfigErrorType, -- authTypeMismatch or
                                         -- authFailure
                    ospfPacketType
                  }
        STATUS             current
        DESCRIPTION
           "An ospfVirtIfAuthFailure trap signifies that a
           packet has been received on a virtual interface
           from a router whose authentication key  or  au-
           thentication  type conflicts with this router's
           authentication key or authentication type."
   ::= { ospfTraps 7 }

    ospfIfStateChange NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    ospfIfState   -- The new state
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfStateChange trap signifies that there
           has been a change in the state of a non-virtual
           OSPF interface. This trap should  be  generated
           when  the interface state regresses (e.g., goes
           from Dr to Down) or progresses  to  a  terminal
           state  (i.e.,  Point-to-Point, DR Other, Dr, or
           Backup)."
   ::= { ospfTraps 16 }


-- conformance information

ospfTrapConformance OBJECT IDENTIFIER ::= { ospfTrap 3 }

ospfTrapGroups      OBJECT IDENTIFIER ::= { ospfTrapConformance 1 }
ospfTrapCompliances OBJECT IDENTIFIER ::= { ospfTrapConformance 2 }

-- compliance statements

    ospfTrapCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
           "The compliance statement "
       MODULE  -- this module
       MANDATORY-GROUPS { ospfTrapControlGroup }


        GROUP       ospfTrapControlGroup
        DESCRIPTION
           "This group is optional but recommended for all
           OSPF systems"
       ::= { ospfTrapCompliances 1 }


-- units of conformance

    ospfTrapControlGroup    OBJECT-GROUP
        OBJECTS {
                           ospfConfigErrorType,
                           ospfPacketType,
                           ospfPacketSrc
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  to  control  traps
           from OSPF systems."
       ::= { ospfTrapGroups 1 }


END

RAPID-CITY DEFINITIONS ::= BEGIN

-- Title:       Rapid-City Communications Enterprise MIB
-- Date:        December 4, 1996
-- By:         	Edwin Tsang 
-- Revision:	
--        v1  : 05/28/96 - Initial version from Ian Wallis.
--        v2  : 06/23/96 - VLAN table now has port memberships
--        v3  : 06/27/96 - Added Port table        
--        v4  : 07/03/96 - Rearranged rcSystem group so scalars
--                         are grouped together
--        v5  : 07/29/96 - Modified rcVlan and rcCard groups.
--                         Added rcMirror and rcDipSwitch groups. 
--        v6  : 08/09/96 - Cleaned up rcVlanPortTable and rcTftp 
--                         groups.
--        v7  : 08/21/96 - Added rcTraps group, rcVlanColorCode,
--                         rcSysLastVlanChange, rcError group.
--	  v9  : 09/10/96 - Added rcTblSize group.  
--		           Added rc16x100BaseTX(7) to rcCardType variable. 
--			   Added rcVlanStpTrapEnable to rcVlanEntry.
--			   Added rcStpNewRoot and rcStpTopologyChange traps.
--			   Added rcPortOperation to rcPortEntry.
--			   Added rcSysCpuUtil and rcSysSwitchFabricUtil to
--			   rcSystem.
--			   Added rcVlanHighPriority and rcPortHighPriority.
--	  v10 : 09/23/96 - Changed rcSysNvRam to rcSysNvRamSize.
--			   Added rcVlanRoutingEnable and rcVlanIfIndex.
--			   Added rcIp group.
--	  v11 : 10/01/96 - Added rcSysRmonEnable, rcSysRmonMemSize, and
--                         rcSysLastSaveToNVRam.
-- 	  v12 : 10/16/96 - Added rcSysRmonSaveConfig.
--                         Changed rcIpAdEntBcastAddr to 
--                         rcIpAdEntBcastAddrFormat
--        v13 : 11/1/96  - Added rcTestTypes, rcTestCodesAdded, 
--                         and rcQos.
--	  v14 : 11/12/96 - Added saveToSlaveNVRAM and switchOver to
--			   rcSysAction variable.
--			   Changed range of rcVlanColorCode.
--			   Removed rcPortPerformBridging.
--			   Removed rcPortOperation.
--			   Added rcSysResult.
--			   Added rcSysLastSaveToSlaveNVRam.
--			   Added rcVlanAction and rcVlanResult.
-- 			   Added rcPortAction and rcPortResult.
--	  v15 : 12/04/96 - Added rcSysSupportRouting. 
--			   Changed rcVlanPortMembers.
--			   Added rcVlanMemberType, rcVlanAllowToJoin
--			   	 rcVlanType, rcVlanProtocolId, 
--			         rcVlanSubnetAddr, rcVlanSubnetMask.
--			   Added rcVlanPortType. 
--			   Added rcVlanMacTable.
--			   Added rcChasNumPorts.
--			   Added rcCardPCMCIAType. 
--			   Added rcIpConfTable.
--			   Removed loadFromNVRAM from rcSysAction.
--	  v16 : 12/09/96 - Changed rcVlanProtocolId to an enumeration.
--			   Added rcErrorText.
--			   Maded rcQosProtocol an index in rcQosEntry.
--	  v17 : 12/12/96 - Added rcStgTable and rcStgPortTable.
--			   Changed rcStpNewRoot and rcStpTopologyChange
--			   traps to use rcStgId instead of rcVlanId.
--	  v18 : 12/18/96 - Added rcVlanStgId.
--			   Removed rcVlanStpEnable, rcVlanStpTrapEnable.
--		           Shifted rVlanPortMembers, rcVlanMemberType,
--			   rcVlanNotAllowToJoin.
--		           Added fail(14) to rcPortAction.
--			   Added rcPortDefaultConnector.
--			   Added rcPortActiveConnector.
--			   Renamed all(5) to flushAll(5) to rcPortAction.
--			   Added switchConnector(6) to rcPortAction.
--			   Added types to rcCardType.
--			   Added rcVlanMemberType to rcVlanStaticMembers.
--			   Removed rcVlanPortTrunk
--			   Added rcErrorReturnCode
--			   Added rcTblArVlanByPortAdded
--			   Added rcTblArVlanByPortDeleted
--			   Added rcTblArVlanByProtocolAdded
--			   Added rcTblArVlanByProtocolDeleted
--			   Added rcTblArVlanByIpSubnetAdded
--			   Added rcTblArVlanByIpSubnetDeleted
--			   Added rcTblArIpSubnetsAdded
--			   Added rcTblArIpSubnetsDeleted
--			   Added rcTblArRsvpsAdded
--			   Added rcTblArRsvpsDeleted
--			   Added rcTblArIpMcastAdded
--			   Added rcTblArIpMcastDeleted
--			   Added rcTblArFree
--			   Added rcTblArTblSize
--			   Added rcTblArMcastTblSize
--			   Added rcTblArFreeMcastGroups
--			   Added rcTblBrdgFdbSize
--			   Added rcStgPortMembers
--			   Added rcQosPriority
--			   Added rcStgUnassignedPorts
--	  v19 : 1/6/97  -  Added rcSysTrapRecvVersion
--        v20 : 1/7/97  -  Removed switchConnector(6) from rcPortAction
--                         Added write access to rcPortActiveConnector
--                         Added rcPortStandbyConnectorStatus to 
--                         rcPortTable.
--	  v21 : 1/9/97  -  Renamed rcPortDefaultConnector to
--                         rcPortPrimaryConnector.
--			   Removed write access to rcPortActiveConnector.
--			   Renamed rcPortStandbyConnectorStatus to
--                         rcPortBackupConnectorStatus.
--	                   Renamed rcVlanColorCode to rcVlanColor
--                         Renamed switchOver to cpuSwitchOver.
--                         Changed Access of rcStgId to read-only.
--	  v22 : 1/17/97  - Added rcBoot group
--                         Added rcPing group
--                         Added rcTraceTable
--                         Added rcTrace trap
--                         Added rcBridge Tables
--	  v23 : 1/20/97  - Added rcTraceFeatureId and rcTraceLevel 
--                         objects to rcTraceNotification trap.
--                         Removed rcPingPort from rcPing group.
--                         Added rcBridgeFdbTblSize 
--                         Added rcBridgeStaticTblSize 
--                         Added rcBridgeFilterTblSize 
--                         Removed rcStgPortEnable from 
--                         rcStgPortTable 
--                         Added rcStgPortEnableStg to
--                         rcStgPortTable 
--                         Added rcStgPortInConfigBpdus,
--                         Added rcStgPortInTcnBpdus, 
--                         Added rcStgPortInBadBpdus 
--                         Added rcStgPortOutConfigBpdus,
--                         Added rcStgPortOutTcnBpdus 
--                         Removed ipxAny and snaAny from 
--                         rcVlanProtocolId 
--                         Renamed byMacAddr to bySrcMac in
--                         rcVlanType
--                         Added byDstMcast value to rcVlanType
--	  v24 : 1/23/97  - Added rcSysRmonTrapOption.
--                         Added agent, port, chassis, bridge, ip
--                         to rcTraceFeatureId.
--	  v25 : 1/25/97  - Removed rcTraceRowStatus.
--                         Changed Access of rcTraceFeatureId to Read-only
--                         Added more error codes to rcErrorReturnCode. 
--                         Rearranged the objects in the rcMirrorGroup.
--                         Renamed rcMirrorByPort to rcMirrorByPortEnable
--                         Added rcMirrorSaveConfig to rcMirror.
--                         Added rcWebEnableServer.
--                         Added rcWebAccessTable.
--                         Added rcWebAccessTblSize scalar object.
--                         Added rcVlanAgingTime in rcVlanTable.
--                         Added rcStgPortFastStart in rcStgPortTable.
--                         Added flushDynMemb to rcVlanAction. 
--        v26 : 2/13/97  - Rename downloadSw to downloadSwToFlash 
--                         and added downloadSwToPcmcia to rcTftpAction.
--                         Modified rcIpAdEtReasmMaxSize to be read-only.
--                         Added  "removed" to rcCardOperStatus. 
--                         Added  more featureIds to rcTraceFeatureId. 
--        v27 : 2/19/97  - Added checkSwInFlash and 
--                         checkSwInPcmcia  to rcTftpAction.
--                         Added more result codes to rcTftpResult.
--        v27 : 2/19/97  - Added checkSwInFlash and 
--                         checkSwInPcmcia  to rcSysAction.
--                         Added more result codes to rcSysResult.
--                         Added more result codes to rcTftpResult.
--	  v28 : 2/28/97  - Expanded rcWeb and removed rcWebAccessTbl.
--	  v29 : 3/20/97  - Changed rcCardSerialNum and rcChassisSerialNum
--			   to a DisplayString.
--	  v30 : 3/26/97  - Added rcSysSupportWebServer to rcSystem Group.
--                         Removed rcStgName from rcStgTable.
--                         Changed rcStgId range from 1..50 to 1..25.
--                         Added rcVlanPotentialMembers to rcVlanTable.  
--                         Added rcChasType to rcChassisGroup.
--                         Removed rcChasFanOperStatus from rcChassisGroup.
--                         Added rcChasFanTable.
--                         Modified rcChasPowerSupplyId range.
--                         Added rcErrorSendTrap to rcError group.
--                         Added rcPortType, rcPortAutoNegotiate, rcPortDuplex,
--                         rcPortSetDuplex, rcPortSetSpeed to rcPortTable.
--			   Changed enterprise mib oid from
--			   1024 to 2272.
--
--	  v31 : 3/31/97  - changed enums for rcChasType.
--                         changed rcF1200 and rcF600 OID.                        
--	  v32 : 4/01/97  - renamed rcPortSetSpeed to rcPortAdminSpeed 
--	                 - renamed rcPortSetDuplex to rcPortAdminDuplex 
--	                 - renamed rcPortDuplex to rcPortOperDuplex 
--	                 - Added rcPortOperSpeed to rcPortTable. 
--	                 - Added rcIpFlowTable.
--			 - Removed "both" from trap version.
--			 - Added rcStatGigTable.
--        v33 : 4/21/97  - Added default value for rcStgTaggedBpduAddress.
--                         Removed rcStgTagAccessPortBpdus.
--			   Added rcVlanMacAddress.
--			   Added additional enums to rcErrorReturnCode.
--			   Removed rcStatGigRxFlowControlFrames and
--			   rcStatGigRxRuntFrames.
--                         Added rcStatTbl.
--	  v34 : 5/08/97  - Added a bunch of bridging and routing
--                         counters to the rcStat group.
--	  v35 : 6/09/97  - Added a bunch of bridging and routing
--                         Added rcPortRipEnable, rcPortOspfEnable,
--                         rcPortOspfRtrPriority, rcPortOspfMetric,
--                         rcPortOpsfAuthKey to rcPortTable.
--                         Added additional error codes for ospf.
--                         Added rcStatOspf group.
--                         Added rcStatOspfIfTable.
--                         Added error codes for Ospf.
--                         Added rcIpRoutingRedistributeRipToOspf group.
--                         Added rcIpRoutingRedistributeOspfToRip group.
--                         Added rcIpRoutingRedistributeRipToOspfRouteTable
--                         Added rcIpRoutingRedistributeOspfToRipRouteTable.
--                         Added counters for mismatches in rcStatOspfIfTable.
--                         Added rcIpConfAddrAssigned in rcIpConfTable.
--                         Added rcSysOspfTrapEnable in rcSystem group.
--                         Added rcIpConfOspfTable.
--                         Moved rcIpConfOspfMetric, rcIpConfOspfRtrPriority,
--                         and rcIpOspfAuthKey to rcIpConfOspfTable.
--	  v36 : 6/16/97  - Added rc2x1000BaseFF200, rc8x100BaseTXF200, 
--			   rc16x100BaseTXF200 to rcCardType.
--                         Misc. syntax changes to rcStatEntry group.
--			   Changed all variables that are used as
--			   ifIndex to the InterfaceIndex variable
-- 			   type.
--	  v37 : 6/30/97  - changed range for FanId values.
--			   added additional error codes.
--			   renamed the following variables:
--			   rcMirrorDstPort to rcMirrorByPortMirrorPort
--			   rcMirrorEnableSrcPortOne to rcMirrorByPortEnableMirroredPortOne
--		 	   rcMirrorSrcPortOne to rcMirrorByPortMirroredPortOne.
--			   rcMirrorEnableSrcPortTwo to rcMirrorByPortEnableMirroredPortTwo
--		 	   rcMirrorSrcPortTwo to rcMirrorByPortMirroredPortTwo.
--			   removed rcPing group
--			   removed rcTrace group
--        v38 : 7/09/97  - added new error codes
--			   added new enums to rcTftpResult
--			   added rcStgFastStart to rcStgTable.
--        v39 : 7/15/97  - added InFlowCtrlPkts, OutFlowCtrlPkts to
--                         rcStatGigTable.
--                         removed enum "removed" from rcCardOperStatus.
--                         Added enum "mbps1000" to  rcPortAdminSpeed.
--                         Added new error codes.
--	  v40 : 7/10/97  - added rcIpConfOspfCost group.
--                         added rcIpRoutingRedistributeRipToOspfRouteMetric
--                         and rcIpRoutingRedistributeOspfToRipRouteMetric
--                         removed LeakAllSubnets from 
--                         rcIpRoutingRedistributeRipToOspfTable.
--                         removed Internal, External1 and External2 
--                         from rcIpRoutingRedistributeRipToOspfTable.
--                         Added rcIpRoutingRedistributeOspfToRipUseDefaultMetric
--                         Added rcIpRoutingRedistributeRipToOspfUseDefaultMetric
--                         Added ospf error codes.
--                         Added rcCardPartNumber in rcCardEntry.
--			   Changed saveToSlaveNVRAM to saveToStandbyNVRAM.
--        		   Added rc2x1000BaseDualFF200 to rcCardType. 
--	  v41 : 8/28/97  - Changed rcCardType to new format.
--                         Changed rcChasType to new format.
--			   Removed mbps1000 enumeration.
--			   Removed rcStgFastStart variable.
--
--	  vigmp : 6/07/97  - Added rcIpConfIgmpTable, rcIgmpGroupTable.
--                         Added rcStatIgmp group.
--                         Added new card types for rcCardType.
--                         
--                         
--	  v42 : 09/09/97 - Made rcIpAdEntBcastAddrFormat read-only.
--	  v43 : 9/15/97  - added rcIpConfOspfHelloInterval and 
--                         rcIpConfOspfRtrDeadInterval to rcIpConfOspfTable
--                         added rcIpConfOspf group.
--                         moved rcSysOspfTrapEnable to rcIpConfOspf group.
--                         added LsdbTblSize to rcStatOspf group.
--	  v44 : 09/16/97 - Added rcPortIndex to rcStpTopologyChange trap.
--			   Added additional error codes.
--	  v45 : 09/18/97 - Added rcChasPowerSupplyDown rcChasFanDown
--                         traps.
--	  v46 : 09/26/97 - Changed rcSysIpAddr, rcSysNetMask, and rcSysBroadcast
--			   from read-write to read-only.
--	  v47 : 10/28/97 - Added rcSysTrapRecvSrcAddress to rcSysTrapRecvTable. 
--			 - Added enums to rcTftpResult.
--			 - Added "other(n)" enum to rcPortPrimaryConnector,
--		           rcPortActiveConnector, rcPortBackupConnectorStatus,
--                         rcPortAdminSpeed.
--	  v48 : 10/24/97 - Removed rcIpConfOspfExternalMetricType.
--                         Renamed UseDefaultMetric to UseExplicitMetric
--                         and DefaultMetric to ExplicitMetric in
--                         RedistributeRipToOspf and RedistributeOspfToRip
--                         Added ExternalMetricType to RedistributeRipToOspf 
--                         Added rcIpRoutingRedistributeDirectToOspf
--                         and rcIpRoutingRedistributeStaticToOspf grps
--                         removed un used error codes (148, 153, 158).
--                         Added rcIpRoutingRedistributeDirectToRip
--                         and rcIpRoutingRedistributeStaticToRip grps.
--                         Added new error codes for ip addr.
--        v49 : 11/24/97 - Added rcIpRouteTable group. 
--	  v50 : 11/24/97 - Modified the value of rcIpConfOspfMetric 
--	                   Modified the default value of 
--                         rcIpRoutingRedistributeDirectToOspfExplicitMetric. 
--        v51 : 12/01/97 - Changed rcSysTrapRecvVersion to v1.
--                         Added enums to rcTftpAction and rcTftpResult.
--


-- ISSUES
--
-- None outstanding
--

IMPORTS
--	MODULE-IDENTITY, NOTIFICATION-TYPE    	FROM SNMPv2-SMI
--	TEXTUAL-CONVENTION                  	FROM SNMPv2-TC
	enterprises,  IpAddress, TimeTicks	FROM RFC1155-SMI
	Counter					FROM RFC1155-SMI
	OBJECT-TYPE 				FROM RFC-1212
	DisplayString, mib-2			FROM RFC1213-MIB
	RowStatus, TruthValue, MacAddress 	FROM SNMPv2-TC
	Gauge32, NOTIFICATION-TYPE		FROM SNMPv2-SMI; 

-- 
-- Local defines to avoid having to pull-in other RFC's.
--
BridgeId 	::= OCTET STRING (SIZE (8))
Timeout		::= INTEGER
InterfaceIndex	::= INTEGER

--
-- Additions to resolve some SNMP V2 dependencies so we don't
-- have to pull-in a lot of mib modules.
--                  
internet  	OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
snmpV2 		OBJECT IDENTIFIER ::= { internet 6 }
snmpModules 	OBJECT IDENTIFIER ::= { snmpV2 3 }
snmpMIB 	OBJECT IDENTIFIER ::= { snmpModules 1 }
snmpMIBObjects 	OBJECT IDENTIFIER ::= { snmpMIB 1 }
snmpTraps 	OBJECT IDENTIFIER ::= { snmpMIBObjects 5 }


--
-- Enterprise specific MIB groups
--
rapidCity 	OBJECT IDENTIFIER ::= { enterprises 2272 }

rcMgmt 		OBJECT IDENTIFIER ::= { rapidCity 1 }
rcA1100		OBJECT IDENTIFIER ::= { rapidCity 2 }
rcA1250    	OBJECT IDENTIFIER ::= { rapidCity 6 }
rcA1150    	OBJECT IDENTIFIER ::= { rapidCity 7 }
rcA1200    	OBJECT IDENTIFIER ::= { rapidCity 8 }

rcSystem  	OBJECT IDENTIFIER ::= { rcMgmt 1 }
rcTftp 	  	OBJECT IDENTIFIER ::= { rcMgmt 2 }
rcVlan 	  	OBJECT IDENTIFIER ::= { rcMgmt 3 }
rcChassis 	OBJECT IDENTIFIER ::= { rcMgmt 4 }
rcMirror	OBJECT IDENTIFIER ::= { rcMgmt 5 }
rcDipSwitch	OBJECT IDENTIFIER ::= { rcMgmt 6 }
rcTblSize	OBJECT IDENTIFIER ::= { rcMgmt 7 }
rcIp		OBJECT IDENTIFIER ::= { rcMgmt 8 }
rcArp		OBJECT IDENTIFIER ::= { rcMgmt 9 }
rcRip		OBJECT IDENTIFIER ::= { rcMgmt 10 }
rcTest		OBJECT IDENTIFIER ::= { rcMgmt 11 }
rcStat		OBJECT IDENTIFIER ::= { rcMgmt 12 }
rcStg		OBJECT IDENTIFIER ::= { rcMgmt 13 }
rcBridge	OBJECT IDENTIFIER ::= { rcMgmt 14 }
rcBoot		OBJECT IDENTIFIER ::= { rcMgmt 15 }
rcWeb		OBJECT IDENTIFIER ::= { rcMgmt 18 }
rcError		OBJECT IDENTIFIER ::= { rcMgmt 20 }
rcTraps		OBJECT IDENTIFIER ::= { rcMgmt 21 }


-- LOGICAL (System) Elements

rcSysIpAddr OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "This entity's IP address."
        ::= { rcSystem 1 }

rcSysNetMask OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "This entity's subnet mask."
        ::= { rcSystem 2 }

rcSysBroadcast OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "This entity's broadcast address."
        ::= { rcSystem 3 }

-- Community Strings

rcSysCommReadWriteAll OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "When an SNMP message is received by this entity, the
                      community string in the message is compared with this
                      string first.  If it matches, read-write access is
                      granted to all items in the MIB.  If it doesn't
                      match, the rcSysCommunityRw string is compared next."
        ::= { rcSystem 4 }

rcSysCommReadWrite OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "When an SNMP message is received by this entity, the
                      community string in the message is compared with this
                      string second.  If it matches, read-write access is
                      granted to all items in the MIB except community
                      strings.  (Community strings appear empty when read
                      and return a no such name error when an attempt is
                      made to write them.)  If it doesn't match, the
                      rcSysCommunityRo string is compared next."
        ::= { rcSystem 5 }

rcSysCommReadOnly OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "When an SNMP message is received by this entity, the
                      community string in the message is compared with this
                      string third.  If it matches, read-only access is
                      granted to all items in the MIB except community
                      strings.  (Community strings appear empty when read.)
                      If it doesn't match, no access is granted, no
                      response is sent back to the SNMP requester, and
                      SNMP traps are sent to the SNMP trap receiver(s) if
                      configured."
        ::= { rcSystem 6 }

-- Other

rcSysVersion OBJECT-TYPE
	SYNTAX 		DisplayString (SIZE (0..20))
	ACCESS 		read-only
	STATUS 		mandatory
	DESCRIPTION	"Software version running on device"
	::= { rcSystem 7 }

rcSysAction OBJECT-TYPE
        SYNTAX       INTEGER {
                         none(1),               -- none of the following
                         hardReset(2),          -- power on tests
                         softReset(3),          -- reset w/o power on tests
                         saveToNVRAM(4),        -- save current config to NVRAM
                         resetCounters(5),      -- reset all statistic counters
                         saveToStandbyNVRAM(6), -- save config to slave NVRAM
                         cpuSwitchOver(7),      -- CPU board switch-over
		         checkSwInFlash(8),       
		         checkSwInPcmcia(9)
 	              }
        ACCESS        read-write
        STATUS        mandatory
	DESCRIPTION   "Initiate a system action."
	DEFVAL 		{ none }
        ::= { rcSystem 8 }

rcSysResult OBJECT-TYPE
	SYNTAX       INTEGER {
		         none(1),		-- none of the following
		         inProgress(2),		-- in progress
		         success(3),		-- success
		         fail(4),		-- failure
		         flashReadFailed(5),	-- could not read from flash
		         pcmciaReadFailed(6),	-- could not read from pcmcia
		         crcCheckFailed(7)
	              }
        ACCESS        read-only
        STATUS        mandatory
	DESCRIPTION   "Result from the last system action."
	DEFVAL 	      { none }
        ::= { rcSystem 9 }

rcSysLastChange OBJECT-TYPE
        SYNTAX        TimeTicks
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Last management initiated configuration 
		      change since sysUpTime."
        ::= { rcSystem 10 }

rcSysLastVlanChange OBJECT-TYPE
        SYNTAX        TimeTicks
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Last management initiated VLAN configuration 
		      change since sysUpTime."
        ::= { rcSystem 11 }

rcSysLastStatisticsReset OBJECT-TYPE
        SYNTAX        TimeTicks
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Last management initiated statistics reset 
		      since sysUpTime."
        ::= { rcSystem 12 }

-- Global Statistics

rcSysBufferUtil OBJECT-TYPE
	SYNTAX        INTEGER (0..100)
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "Buffer utilization as a percentage of the
                      total amount of buffer space in the system.  
                      A high value indicates congestion."
	::= { rcSystem 13 }

rcSysBufferUtilPeak OBJECT-TYPE
	SYNTAX        INTEGER (0..100)
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "The largest buffer utilization since sysUpTime"
	::= { rcSystem 14 }

rcSysBufferUtilPeakTime OBJECT-TYPE
	SYNTAX        TimeTicks
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "Timestamp for rcSysPeakBandwidth"
	::= { rcSystem 15 }

rcSysNVRamSize OBJECT-TYPE
	SYNTAX        Gauge32
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "Total Non-volatile RAM in Kbytes"
	::= { rcSystem 16 }

rcSysNVRamUsed OBJECT-TYPE
	SYNTAX        Gauge32
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "Non-volatile RAM in use in Kbytes"
	::= { rcSystem 17 }

rcSysLastSaveToNVRam    OBJECT-TYPE
        SYNTAX        TimeTicks
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "SysUpTime of the last time when NVRAM was
                      written to.  This could be a save of the system
                      configuration or via a file transfer of a
                      configuration file."
        ::= { rcSystem 18 }

rcSysLastSaveToStandbyNVRam OBJECT-TYPE
        SYNTAX        TimeTicks
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "SysUpTime of the last time when the standby NVRAM
                      (on the back-up CPU board) was written to."
        ::= { rcSystem 19 }

rcSysCpuUtil OBJECT-TYPE
        SYNTAX        Gauge32
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Percentage of CPU utilization"
        ::= { rcSystem 20 }

rcSysSwitchFabricUtil OBJECT-TYPE
        SYNTAX        Gauge32
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Percentage of Switching Fabric utilization"
        ::= { rcSystem 21 }

rcSysRmonMemSize OBJECT-TYPE
        SYNTAX        INTEGER (250000..4000000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Amount of RAM in bytes to allocate for RMON
                      to use when rcSysRmonEnable is TRUE."
        ::= { rcSystem 22 }

rcSysRmonEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Control whether the RMON feature should be
                      enabled.

		      To enable the RMON feature, set this variable to
		      true.  The RMON agent in the device will get 
                      started immediately if the amount of memory
		      specified by rcSysRmonMemSize is currently
		      available in the device.

		      To disable the RMON feature, set this variable to
		      false, save the new setting to NVRAM, and reboot
		      the device.  After the device is rebooted the
		      RMON agent will not be operational." 
        ::= { rcSystem 23 }

rcSysRmonSaveConfig OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Control whether RMON configuration information 
                      should be saved to NVRAM so RMON settings can 
                      be automatically reinstalled after a system
                      reboot. 

		      Setting rcSysRmonSaveConfig to true does not 
		      immediately save the configuration information.
		      The save happens when the rcSysAction variable 
		      is set to 'saveToNVRAM(4)'.

                      This option is only meaningful when the 
                      rcSysRmonEnable variable is set to true."
        ::= { rcSystem 24 }

rcSysRmonTrapOption OBJECT-TYPE
        SYNTAX        INTEGER {
		 	 toOwner(1),
			 toAll(2)
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether RMON traps should be
		      sent to only the owner of the RMON alarm (i.e.,
		      the manager that created the alarm entry) or 
		      all trap recipients in the system trap receiver
		      table."
	DEFVAL	      { toOwner }
        ::= { rcSystem 25 }

rcSysSupportRouting OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether routing is supported
                      in this product."
        ::= { rcSystem 26 }

rcSysSupportWebServer OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether WebServer is supported
                      in this product."
        ::= { rcSystem 27 }



-- Trap Receiver Table
 
rcSysTrapRecvTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcSysTrapRecvEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "The trap receiver table (0 to 25 entries).  This
                      table lists the addresses of Network Management
                      Stations that should receive trap messages from 
                      this entity when an exception condition occurs."
        ::= { rcSystem 60 }

rcSysTrapRecvEntry OBJECT-TYPE
        SYNTAX        RcSysTrapRecvEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A trap receiver table entry."
        INDEX         { rcSysTrapRecvAddress }
        ::= { rcSysTrapRecvTable 1 }
 
RcSysTrapRecvEntry ::=
        SEQUENCE {
                rcSysTrapRecvAddress IpAddress,
                rcSysTrapRecvVersion INTEGER,
                rcSysTrapRecvCommunity DisplayString,
                rcSysTrapRecvSrcAddress IpAddress,
                rcSysTrapRecvRowStatus RowStatus
        }
 
rcSysTrapRecvAddress OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "IP address for trap receiver."
        ::= { rcSysTrapRecvEntry 1 }
 
rcSysTrapRecvVersion OBJECT-TYPE
        SYNTAX        INTEGER {
		         v1(1),          
		         v2c(2)
	              }
        ACCESS        read-write
        STATUS	      mandatory
	DEFVAL 	      { v1 }
	::= { rcSysTrapRecvEntry 2 }

rcSysTrapRecvCommunity OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Community string used for trap messages to this
                       trap receiver."
        ::= { rcSysTrapRecvEntry 3 }

rcSysTrapRecvSrcAddress OBJECT-TYPE 
        SYNTAX        IpAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Source IP address to use when sending traps.
		       This IP address will be inserted into the
		       source IP address field in the UDP trap packet."
        ::= { rcSysTrapRecvEntry 4 } 
 
rcSysTrapRecvRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete entries"
        ::= { rcSysTrapRecvEntry 5 }


-- Upload/Download

rcTftpHost OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Name of source/destination host for the TFTP
                      transfer."
        ::= { rcTftp 1 }

rcTftpFile OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..64))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Name of file for the TFTP transfer."
        ::= { rcTftp 2 }

rcTftpAction OBJECT-TYPE
        SYNTAX        INTEGER {
		         none(1),          -- none of the following
		         downloadConfig(2),
		         uploadConfig(3),
		         downloadSwToFlash(4),
                         downloadSwToPcmcia(5),
                         uploadSw(6),
                         downloadSwToDram(7)
	              }
        ACCESS	      read-write
        STATUS	      mandatory
	DEFVAL 	      { none }
	::= { rcTftp 3 }

rcTftpResult OBJECT-TYPE
        SYNTAX        INTEGER {
		         none(1),
		         inProgress(2),
		         noResponse(3),
		         fileAccessError(4),
		         badFlash(5),
		         flashEraseFailed(6),
		         pcmciaEraseFailed(7),
		         success(8),
		         fail(9),
                         writeToNvramFailed(10),
		         flashWriteFailed(11),
		         pcmciaWriteFailed(12),
                         configFileTooBig(13),
                         imageFileTooBig(14),
			 noPcmciaDetect(15),
			 pcmciaNotSupported(16),
			 invalidFile(17),
			 noMemory(18),
			 xferError(19),
			 crcError(20),
                         readNvramFailed(21),
                         pcmciaWriteProtect(22)
	              }
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Contains result of the last Tftp action request."
        ::= { rcTftp 4 }

-- VLAN Table

rcVlanNumVlans OBJECT-TYPE
	SYNTAX	      INTEGER (1..128)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Number of VLANs currently defined"
        ::= { rcVlan 1 }

rcVlanTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcVlanEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A list of Virtual LAN entries.  VLAN 1 is the default."
        ::= { rcVlan 2 }

rcVlanEntry OBJECT-TYPE
        SYNTAX        RcVlanEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing information for a particular
                      Virtual LAN."
        INDEX         { rcVlanId }
        ::= { rcVlanTable 1 }

RcVlanEntry ::= SEQUENCE {
		rcVlanId INTEGER,
		rcVlanName DisplayString,
		rcVlanColor INTEGER,
		rcVlanHighPriority TruthValue,
		rcVlanRoutingEnable TruthValue,
		rcVlanIfIndex InterfaceIndex,
		rcVlanAction INTEGER,
		rcVlanResult INTEGER,
		rcVlanStgId INTEGER,
		rcVlanType INTEGER,
		rcVlanPortMembers OCTET STRING,
		rcVlanPotentialMembers OCTET STRING,
		rcVlanStaticMembers OCTET STRING,
		rcVlanNotAllowToJoin OCTET STRING,
		rcVlanProtocolId INTEGER,
		rcVlanSubnetAddr IpAddress,
		rcVlanSubnetMask IpAddress,
                rcVlanAgingTime  INTEGER,
		rcVlanMacAddress MacAddress,
		rcVlanRowStatus RowStatus
	}

rcVlanId OBJECT-TYPE
        SYNTAX        INTEGER (1..4095)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A value that uniquely identifies the Virtual LAN 
                      associated with this entry.  This value correspond
		      to the lower 12 bits in the IEEE VLAN field."
        ::= { rcVlanEntry 1 }

rcVlanName OBJECT-TYPE
	SYNTAX	      DisplayString (SIZE (0..20))
	ACCESS 	      read-write
	STATUS 	      mandatory
	DESCRIPTION   "VLAN Name"
	::= { rcVlanEntry 2 }

rcVlanColor OBJECT-TYPE
        SYNTAX        INTEGER (0..32)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Color  assigned to this VLAN.  The color
		      is a proprietary number scheme used by
                      the DM to associate an integer value with a
                      particular color.  The color  is treated
                      transparently in the device." 
        ::= { rcVlanEntry 3 }

rcVlanHighPriority OBJECT-TYPE
        SYNTAX 	      TruthValue
        ACCESS 	      read-write
        STATUS 	      mandatory
        DESCRIPTION   "Control whether this VLAN should be given 
                      high priority."
	DEFVAL 	      { false }
        ::= { rcVlanEntry 4 }

rcVlanRoutingEnable OBJECT-TYPE
        SYNTAX 	      TruthValue
        ACCESS 	      read-write
        STATUS 	      mandatory
        DESCRIPTION   "Control whether routing should be enabled on this 
                      VLAN." 
	DEFVAL	      { false }
        ::= { rcVlanEntry 5 }

rcVlanIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex 
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "If rcVlanRoutingEnable is set to TRUE, then this
                      value will indicate the 'logical' ifIndex that is
                      assigned to this VLAN.  Otherwise, this value is
                      meaningless and should be set to zero."
        ::= { rcVlanEntry 6 }

rcVlanAction OBJECT-TYPE
        SYNTAX        INTEGER {
                         none(1),          -- none of the following
		         flushMacFdb(2),   -- flush MAC forwarding table
		         flushArp(3),	   -- flush ARP table
		         flushIp(4),	   -- flush IP route table
		         flushDynMemb(5),  -- flush Dynamic Members
                         all(6)		   -- flush all tables 
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Vlan related actions."
        DEFVAL        { none }
        ::= { rcVlanEntry 7 }

rcVlanResult OBJECT-TYPE
        SYNTAX        INTEGER {
                         none(1),        -- none of the following
                         inProgress(2),  -- in progress
                         success(3),     -- success
                         fail(4)         -- failure
                      }
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Result from the last Vlan action."
        DEFVAL        { none }
        ::= { rcVlanEntry 8 }

rcVlanStgId OBJECT-TYPE
        SYNTAX        INTEGER (0..128)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the spanning tree group this
                      VLAN is associated it.  If this vlan is not
                      be associated with any spanning tree group, this
                      value should be set to zero(0)."
        DEFVAL        { 1 }
        ::= { rcVlanEntry 9 }

rcVlanType OBJECT-TYPE
        SYNTAX        INTEGER {
                         byPort(1),       -- VLAN by Port 
                         byIpSubnet(2),   -- VLAN by IP subnet 
                         byProtocolId(3), -- VLAN by Protocol Id
		         bySrcMac(4),	  -- VLAN by Src MAC address
		         byDstMcast(5)	  -- VLAN by Dst MultiCast
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the type of VLAN."
        ::= { rcVlanEntry 10 }

rcVlanPortMembers OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(32))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "A bitfield used to identify which ports in the
                      system are members (static or dynamic) to this
                      VLAN.
 
                      The bitfield is 32 octets long representing
                      ports 0 to 255 (inclusive)."
        ::= { rcVlanEntry 11 }
 
rcVlanPotentialMembers OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(32))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "A bitfield used to identify which ports in the
                      system are potential members to join this VLAN. 
 
                      The bitfield is 32 octets long representing
                      ports 0 to 255 (inclusive)."
        ::= { rcVlanEntry 12 }
 
rcVlanStaticMembers OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(32))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "A bitfield used to identify how ports are 
		      members of this VLAN.

                      A one(1) value in a bit means the port is a
                      static member of this VLAN.  A zero(0) value 
		      in a bit means the port is a dynamic member 
		      of this VLAN.

                      The bitfield is 32 octets long representing
                      ports 0 to 255 (inclusive)."
        ::= { rcVlanEntry 13 }

rcVlanNotAllowToJoin OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(32))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "A bitfield used to identify which ports are not
                      allowed to join this VLAN.
                          
                      A one(1) value in a bit means the port is not
                      allowed to join a VLAN.  A zero(0) value in a bit
                      means the port is allowed to join a VLAN.
 
                      The bitfield is 32 octets long representing
                      ports 0 to 255 (inclusive)."
        ::= { rcVlanEntry 14 }

rcVlanProtocolId OBJECT-TYPE
        SYNTAX        INTEGER {
		         none(0),
		         ip(1),
                         ipx802dot3(2),
                         ipx802dot2(3),
                         ipxSnap(4),
                         ipxEthernet2(5),
                         appleTalk(6),
                         decLat(7),
                         decOther(8),
                         sna802dot2(9),
                         snaEthernet2(10),
                         netBios(11),
                         xns(12)
	              }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The protocol id of this VLAN.  This value 
		      is meaningful only if 'rcVlanType' is equal to 
                      'byProtocolId'."
        ::= { rcVlanEntry 15 }

rcVlanSubnetAddr OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The IP subnet address of this VLAN.  This value 
		      is meaningful only if 'rcVlanType' is equal to 
                      'byIpSubnet'."
        ::= { rcVlanEntry 16 }

rcVlanSubnetMask OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The IP subnet mask of this VLAN.  This value
		      is meaningful only if 'rcVlanType' is equal to 
		      'byIpSubnet'."
        ::= { rcVlanEntry 17 }

rcVlanAgingTime OBJECT-TYPE
        SYNTAX        INTEGER (10..1000000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The timeout period in seconds for aging out
                      dynamic members of policy-based VLANs."
        DEFVAL        { 600 }
        ::= { rcVlanEntry 18 }

rcVlanMacAddress OBJECT-TYPE
        SYNTAX        MacAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The MAC address assigned to this VLAN.
		      This field is only relevant when the VLAN
		      is configured for routing."
        ::= { rcVlanEntry 19 }

rcVlanRowStatus OBJECT-TYPE
	SYNTAX 	      RowStatus
	ACCESS 	      read-write
	STATUS 	      mandatory
	DESCRIPTION   "Used to create/delete entries"
	::= { rcVlanEntry 20 }


-- VLAN Port Table

rcVlanPortTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcVlanPortEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to maintain VLAN port related 
 		      information." 
        ::= { rcVlan 3 }

rcVlanPortEntry OBJECT-TYPE
        SYNTAX        RcVlanPortEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing VLAN information regarding a 
                      particular port."
        INDEX         { rcVlanPortIndex }
        ::= { rcVlanPortTable 1 }

RcVlanPortEntry ::= SEQUENCE {
		rcVlanPortIndex INTEGER,
		rcVlanPortNumVlanIds INTEGER,
		rcVlanPortVlanIds OCTET STRING,
		rcVlanPortType INTEGER
	}

rcVlanPortIndex OBJECT-TYPE
        SYNTAX        INTEGER 
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An unique index used to identify a particular 
                       port in the system."
        ::= { rcVlanPortEntry 1 }

rcVlanPortNumVlanIds OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of Vlan Ids that
                      are stored in the rcVlanPortVlanIds variable."
        ::= { rcVlanPortEntry 2 }

rcVlanPortVlanIds OBJECT-TYPE
        SYNTAX        OCTET STRING
        ACCESS        read-write  
        STATUS        mandatory
        DESCRIPTION   "An array used to identify which VLANs this port 
  		      is assigned to.  Each VLAN ID is stored as a two
		      octet value (16 bits).
         
 		      A port can have upto 128 values in this field 
		      (i.e., a port can be assigned to 128 different
		      VLANs)."
        ::= { rcVlanPortEntry 3 }

rcVlanPortType OBJECT-TYPE
        SYNTAX        INTEGER {
		         access(1),	-- access port type
		 	 trunk(2)	-- trunk port type
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the port type of this interface."
	DEFVAL	      { access }
        ::= { rcVlanPortEntry 4 }


-- VLAN MAC Table

rcVlanMacTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcVlanMacEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to maintain MAC addresses assigned 
                      to a particular VLAN by MAC address."
        ::= { rcVlan 4 }
 
rcVlanMacEntry OBJECT-TYPE
        SYNTAX        RcVlanMacEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing VLAN information regarding a
                      particular port."
        INDEX         { rcVlanMacVlanId, rcVlanMacAddr }
        ::= { rcVlanMacTable 1 }
 
RcVlanMacEntry ::= SEQUENCE {
                rcVlanMacVlanId INTEGER,
                rcVlanMacAddr MacAddress,
                rcVlanMacRowStatus RowStatus
        }
 
rcVlanMacVlanId OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An unique index used to identify a VLAN (by MAC 
                      address) in the system."
        ::= { rcVlanMacEntry 1 }

rcVlanMacAddr OBJECT-TYPE
        SYNTAX        MacAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An unique index used to identify a MAC address
		      assigned to a particular VLAN."
        ::= { rcVlanMacEntry 2 }

rcVlanMacRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Row status for this entry."
        ::= { rcVlanMacEntry 3 }


-- PHYSICAL Elements

rcChasType OBJECT-TYPE
	SYNTAX	      INTEGER {
		         unknown(1),  -- unknown chassis
		         a1100(2),    -- 3 slots chassis (1/2, 1/2, full)
		         a1250(6),    -- 4 slots chassis (full, ... , full)
		         a1150(7),    -- 3 slots chassis (1/2, 1/2, full)
		         a1200(8)     -- 8 slots chassis (full, ... , full)
	              }
	ACCESS 	      read-only
	STATUS 	      mandatory
	DESCRIPTION   "Chassis Type"
        ::= { rcChassis 1 }

rcChasSerialNumber OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..8))
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Unique serial number for this chassis."
        ::= { rcChassis 2 }

rcChasHardwareRevision OBJECT-TYPE
	SYNTAX 	      DisplayString (SIZE (0..20))
	ACCESS 	      read-only
	STATUS 	      mandatory
	DESCRIPTION   "Device hardware revision level"
	::= { rcChassis 3 }
	
rcChasNumSlots OBJECT-TYPE
        SYNTAX        INTEGER (1..16)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The number of slots in the chassis available for
                      plug-in cards."
        ::= { rcChassis 4 }

rcChasNumPorts OBJECT-TYPE
        SYNTAX        INTEGER (0..255) 
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The total number of ports currently installed in
		      the chassis."
        ::= { rcChassis 5 }

-- TBD FIXME : We need to get the final list from Hardware
rcChasTestResult OBJECT-TYPE
	SYNTAX        INTEGER {
			 other(1),
			 ok(2),
			 crceeprom(3),
			 timer(4),
			 procdram(5),
			 led(6),
       	         	 formaccpuaccess(7),
       	         	 asiccpuaccess(8),
                	 memory(9),
                	 loopback(10)
		      }
	ACCESS 	      read-only
	STATUS 	      mandatory
	DESCRIPTION   "Chassis start-up diagnostic tests."
	::= { rcChassis 6 }

rcChasFan OBJECT IDENTIFIER ::= { rcChassis 7 }

rcChasFanTable OBJECT-TYPE
	SYNTAX        SEQUENCE OF RcChasFanEntry
	ACCESS        not-accessible
	STATUS        mandatory
	DESCRIPTION   "This table contains information about power 
		      supplies."
	::= { rcChasFan 1 }

rcChasFanEntry OBJECT-TYPE
	SYNTAX        RcChasFanEntry
	ACCESS        not-accessible
	STATUS        mandatory
	DESCRIPTION   "Contains information regarding a power supply
		      unit."
	INDEX         { rcChasFanId }
	::= { rcChasFanTable 1 }

RcChasFanEntry ::=
	SEQUENCE {
		rcChasFanId INTEGER,
		rcChasFanOperStatus INTEGER
	}

rcChasFanId OBJECT-TYPE
	SYNTAX        INTEGER(1..4)
	ACCESS        read-only
	STATUS        mandatory
	::= { rcChasFanEntry 1 }

rcChasFanOperStatus OBJECT-TYPE
	SYNTAX        INTEGER {
		         unknown(1),
		         up(2),
		         down(3)
	              }
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "Actual status of the Fan:
	              - unknown(1) - status can not be determined.
	              - up(2) - present and supplying power.
	              - down(3) - present, but failure indicated."
	::= { rcChasFanEntry 2 }

rcChasPowerSupply OBJECT IDENTIFIER ::= { rcChassis 8 }

rcChasPowerSupplyTable OBJECT-TYPE
	SYNTAX        SEQUENCE OF RcChasPowerSupplyEntry
	ACCESS        not-accessible
	STATUS        mandatory
	DESCRIPTION   "This table contains information about power 
		      supplies."
	::= { rcChasPowerSupply 1 }

rcChasPowerSupplyEntry OBJECT-TYPE
	SYNTAX        RcChasPowerSupplyEntry
	ACCESS        not-accessible
	STATUS        mandatory
	DESCRIPTION   "Contains information regarding a power supply
		      unit."
	INDEX  { rcChasPowerSupplyId }
	::= { rcChasPowerSupplyTable 1 }

RcChasPowerSupplyEntry ::=
	SEQUENCE {
		rcChasPowerSupplyId INTEGER,
		rcChasPowerSupplyOperStatus INTEGER
	}

rcChasPowerSupplyId OBJECT-TYPE
	SYNTAX        INTEGER(1..2)
	ACCESS        read-only
	STATUS        mandatory
	::= { rcChasPowerSupplyEntry 1 }


rcChasPowerSupplyOperStatus OBJECT-TYPE
	SYNTAX         INTEGER {
		          unknown(1),
		          empty(2),
		          up(3),
	     	          down(4)
	               }
	ACCESS         read-only
	STATUS         mandatory
	DESCRIPTION   "Actual status of the power supply:
	              - unknown(1) - status can not be determined.
	              - empty(2) - power supply not installed.
	              - up(3) - present and supplying power.
	              - down(4) - present, but failure indicated."
	::= { rcChasPowerSupplyEntry 2 }

rcCard OBJECT IDENTIFIER ::= { rcChassis 9 }

rcCardTable OBJECT-TYPE
	SYNTAX        SEQUENCE OF RcCardEntry
	ACCESS        not-accessible
	STATUS        mandatory
	DESCRIPTION   "A table that contains information about the 
                      cards in this chassis.  For those slots that 
                      do not contain a physical card, the table may 
		      be implemented to contain a conceptual row 
                      with the type of physical module set to 
 		      'chasCardEmpty', or it may be implemented to 
		      have no conceptual row instance."
	::= { rcCard 1 }

rcCardEntry OBJECT-TYPE
	SYNTAX        RcCardEntry
	ACCESS        not-accessible
	STATUS        mandatory
	DESCRIPTION   "Card attributes"
	INDEX         { rcCardIndex }
	::= { rcCardTable 1 }

RcCardEntry ::=
	SEQUENCE {
		rcCardIndex INTEGER,
		rcCardType INTEGER,
		rcCardSerialNumber DisplayString,
		rcCardHardwareRevision DisplayString,
		rcCardAdminStatus INTEGER,
		rcCardOperStatus INTEGER,
		rcCardPCMCIAType INTEGER,
		rcCardPartNumber DisplayString
	}

rcCardIndex OBJECT-TYPE
        SYNTAX        	INTEGER (1..8)
        ACCESS        	read-only
        STATUS       	mandatory
        DESCRIPTION   	"A unique value for each module within the chassis.
                      	This value is determined by the chassis slot number
                      	where the module is inserted.  Valid entries are 1
                      	to the value of rcChasNumSlots"
        ::= { rcCardEntry 1 }

rcCardType OBJECT-TYPE
	SYNTAX        INTEGER {
		         other(1),		  -- no card installed
		         rcCPU(2),		  -- CPU Card
		         rc8x100BaseTX(3),	  -- 8 port (cat 5)
		         rc8x100BaseT2(4),	  -- 8 port (cat 3)
		         rc8x100BaseF(5),	  -- 8 port fiber
		         rc16x100BaseTX(6),	  -- 16 port (cat 5)
		         rc8x100BaseTXWG(12),      -- 8 port (half width - WG model)
		         rc4x100BaseFWG(14), 	  -- 4 port (half width - WG model)
		         rc16x100BaseTXWG(13),	  -- 16 port plus CPU (A1100 model)
		         rc4x1000BaseSXWG(1028),   -- 1 0 00 000 0100 plus CPU (A1150 model)
		         rc1x1000BaseSXWG(1025),   -- 1 0 00 000 0001
		         rc2x1000BaseSXWG(1026),   -- 1 0 00 000 0010
		         rc1x1000BaseSXRWG(1537),  -- 1 1 00 000 0001
		         rc2x1000BaseSXRWG(1538),  -- 1 1 00 000 0010
		         rc1x1000BaseLXWG(1153),   -- 1 0 01 000 0001
		         rc2x1000BaseLXWG(1154),   -- 1 0 01 000 0010 
		         rc1x1000BaseLXRWG(1665),  -- 1 1 01 000 0001
		         rc2x1000BaseLXRWG(1666),  -- 1 1 01 000 0010
		         rc1x1000BaseSXBB(1041),   -- 1 0 00 001 0001
		         rc2x1000BaseSXBB(1042),   -- 1 0 00 001 0010
		         rc1x1000BaseSXRBB(1553),  -- 1 1 00 001 0001
		         rc2x1000BaseSXRBB(1554),  -- 1 1 00 001 0010 
		         rc1x1000BaseLXBB(1169),   -- 1 0 01 001 0001
		         rc2x1000BaseLXBB(1170),   -- 1 0 01 001 0010
		         rc1x1000BaseLXRBB(1681),  -- 1 1 01 001 0001
		         rc2x1000BaseLXRBB(1682)   -- 1 1 01 001 0010
	              }
	ACCESS 	      read-only
	STATUS 	      mandatory
	DESCRIPTION   "Used to indicate a card type.  Gigabit cards use
		      an encoded value according to the following rule:

                              +-----+----+----+---+---+---+
                      bits  : |31-11| 10 |  9 |8-7|6-4|3-0|
                              +-----+----+----+---+---+---+
                      field : |  a  |  b |  c | d | e | f |
                              +-----+----+----+---+---+---+

                             a : not-used
                             b : 1=gigabit
                             c : 0=non-redundant, 
                                 1=redundant
                             d : 0=short-haul, 
                                 1=long-haul  
                             e : 0=work-group(f200 & f800)
                                 1=back-bone(f600 & f1200), 
                             f : 1=1-port, 2=2-port, 4=4-port
                      "
	::= { rcCardEntry 2 }

rcCardSerialNumber OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..8))
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "Unique serial number for this card."
	::= { rcCardEntry 3 }

rcCardHardwareRevision OBJECT-TYPE
	SYNTAX        DisplayString (SIZE (0..8))
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "Hardware Version"
	::= { rcCardEntry 4 }

rcCardAdminStatus OBJECT-TYPE
        SYNTAX       INTEGER { 
			 up(1),
         		 down(2),
			 testing(3)
                      }
        ACCESS        read-write 
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the administrative status of this
                       card"
        ::= { rcCardEntry 5 }

rcCardOperStatus OBJECT-TYPE
	SYNTAX        INTEGER { 
			 up(1),
         		 down(2),
			 testing(3),
			 unknown(4),
		 	 dormant(5)
                      }
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "Used to indicate the operational status of this card."
	::= { rcCardEntry 6 }

rcCardPCMCIAType OBJECT-TYPE
        SYNTAX        INTEGER {
			 none(1),
			 modem28kbs(2),
			 flash2meg(3),
			 flash4meg(4)
                      }
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the type of PCMCIA card currently
                      installed in this CPU card, if any.

                      For non-CPU cards, this variable has no meaning and
                      will always be set to none."
	DEFVAL        { none }
        ::= { rcCardEntry 7 }

rcCardPartNumber OBJECT-TYPE
        SYNTAX        	DisplayString (SIZE (0..6))
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Card Part Number"
        ::= { rcCardEntry 8 }

-- Port Table

rcPort OBJECT IDENTIFIER ::= { rcChassis 10 }

rcPortTable OBJECT-TYPE
        SYNTAX	      SEQUENCE OF RcPortEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Port table"
        ::= { rcPort 1 }

rcPortEntry OBJECT-TYPE
        SYNTAX        RcPortEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing info. for a particular port"
        INDEX         { rcPortIndex }
        ::= { rcPortTable 1 }

RcPortEntry ::= SEQUENCE {
		rcPortIndex                    InterfaceIndex,
		rcPortType                     INTEGER,
                rcPortConnectorType            INTEGER,
		rcPortPerformRouting           TruthValue,
		rcPortHighPriority             TruthValue,
                rcPortAction                   INTEGER,
                rcPortResult                   INTEGER,
                rcPortPrimaryConnector         INTEGER,
                rcPortActiveConnector          INTEGER,
                rcPortBackupConnectorStatus    INTEGER,
                rcPortAutoNegotiate            TruthValue,
                rcPortAdminDuplex              INTEGER,
                rcPortOperDuplex               INTEGER,
                rcPortAdminSpeed               INTEGER,
                rcPortOperSpeed                INTEGER
	}

rcPortIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An index value that uniquely identifies a port.
                      This value is similar to ifIndex in MIB2."
        ::= { rcPortEntry 1 }

rcPortType OBJECT-TYPE
	SYNTAX        INTEGER {
		         other(0),	     -- no port installed
		         rc100BaseTX(1),     -- (cat 5)
		         rc100BaseT2(2),     -- (cat 3)
		         rc100BaseF(3),	     -- fiber
		         rc1000BaseF(4),     -- (fiber)
		         rc1000BaseDualF(5)  -- (fiber - dual connector)
	              }
	ACCESS        read-only
	STATUS        mandatory
	DESCRIPTION   "Port type"
	::= { rcPortEntry 2 }

rcPortConnectorType OBJECT-TYPE
        SYNTAX        INTEGER {
                         nonRedundant(1), -- non-redundant connector type 
                         redundant(2) 	  -- redundant connector type 
                      }
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Type of connector installed on this port."
        DEFVAL        { nonRedundant }
        ::= { rcPortEntry 3 }

rcPortPerformRouting OBJECT-TYPE
	SYNTAX 	      TruthValue
	ACCESS 	      read-write
        STATUS 	      mandatory
	DESCRIPTION   "Indicate whether this port should perform
                      routing"
	DEFVAL	      { false }
	::= { rcPortEntry 4 }

rcPortHighPriority OBJECT-TYPE 
        SYNTAX 	      TruthValue
        ACCESS 	      read-write
        STATUS 	      mandatory
        DESCRIPTION   "Indicate whether this port should treated with 
                      high priority"
	DEFVAL 	      { false }
        ::= { rcPortEntry 5 }

rcPortAction OBJECT-TYPE
        SYNTAX        INTEGER {
                         none(1),         -- none of the following
                         flushMacFdb(2),  -- flush MAC forwarding table
                         flushArp(3),     -- flush ARP table
                         flushIp(4),      -- flush IP route table
                         flushAll(5)      -- flush all tables
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Port related actions."
        DEFVAL        { none }
        ::= { rcPortEntry 6 }
 
rcPortResult OBJECT-TYPE 
        SYNTAX        	INTEGER { 
                       		none(1),        -- none of the following 
                       	  	inProgress(2),  -- in progress 
                       	  	success(3),     -- success
                       	  	fail(4)         -- failure 
                      	} 
        ACCESS		read-only 
        STATUS        	mandatory 
        DESCRIPTION   	"Result from the last Vlan action." 
        DEFVAL        	{ none } 
        ::= { rcPortEntry 7 } 

rcPortPrimaryConnector OBJECT-TYPE 
        SYNTAX 		INTEGER { 
                		left(1),	-- left side connector
                		right(2),	-- right side connector 
				other(3)
        		} 
        ACCESS          read-write 
        STATUS          mandatory 
        DESCRIPTION     "For ports configured with redundant connectors,
			 this value is used to indicate which connector 
			 should be used as the 'active' connector on this 
			 port the next time the port is placed into the 
			 ifAdminStatus=Up."
	DEFVAL          { left } 
        ::= { rcPortEntry 8 }

rcPortActiveConnector OBJECT-TYPE
        SYNTAX        INTEGER {
                         	left(1),	-- left side connector
                         	right(2),       -- right side connector
				other(3)
                      }
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "For ports configured with redundant connectors,
		      this value is used to indicate which connector
		      is currently the active one.  Only one connector
		      can be active an anytime."
        DEFVAL        { left } 
        ::= { rcPortEntry 9 }

rcPortBackupConnectorStatus OBJECT-TYPE
        SYNTAX 		INTEGER {
                		up(1),            -- link Up
                		down(2),          -- link Down
				other(3)
        }
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Indicate the status of the link attached to the
		 	 back-up (non-active) connector."
        ::= { rcPortEntry 10 }

rcPortAutoNegotiate OBJECT-TYPE
	SYNTAX 	      TruthValue
	ACCESS 	      read-write
        STATUS 	      mandatory
	DESCRIPTION   "Indicate whether this port enabled for auto 
                      negotiations or not."
	DEFVAL	      { true }
	::= { rcPortEntry 11 }

rcPortAdminDuplex OBJECT-TYPE
        SYNTAX 		INTEGER { 
                		half(1),	-- half duplex
                		full(2)		-- full duplex  
        		} 
	ACCESS 		read-write
        STATUS 		mandatory
	DESCRIPTION     "Indicates the port duplex type "	
	DEFVAL		{ half }
	::= { rcPortEntry 12 }

rcPortOperDuplex OBJECT-TYPE
        SYNTAX 		INTEGER { 
                		half(1),	-- half duplex
                		full(2)		-- full duplex  
        		} 
	ACCESS 		read-only
        STATUS 		mandatory
	DESCRIPTION 	"Indicate this port's current duplex value."
	::= { rcPortEntry 13 }

rcPortAdminSpeed OBJECT-TYPE
        SYNTAX 		INTEGER { 
                		mbps10(1),	-- 10Mb/s
                		mbps100(2),	-- 100Mb/s
				other(3)
        		} 
	ACCESS 		read-write
        STATUS 		mandatory
	DESCRIPTION 	"Indicate this port's speed."
	DEFVAL		{ mbps10 }
	::= { rcPortEntry 14 }

rcPortOperSpeed OBJECT-TYPE
        SYNTAX INTEGER  
	ACCESS 	      read-only
        STATUS 	      mandatory
	DESCRIPTION   "Indicate this port's current speed value."
	::= { rcPortEntry 15 }

-- Mirror Group

rcMirrorSaveConfig OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Control whether Mirror configuration information 
                       	should be saved to NVRAM so mirror settings can 
                       	be automatically reinstalled after a system
                       	reboot. 

                       	Setting rcMirrorSaveConfig to true does not 
                       	immediately save the configuration information.
                       	The save happens when the rcSysAction variable 
                       	is set to 'saveToNVRAM(4)'."
        ::= { rcMirror 1 }

rcMirrorByPort OBJECT IDENTIFIER ::= { rcMirror 2 }

rcMirrorByPortEnable OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate whether the mirror by port
                       	feature is active.  The system can only support 
                       	mirroring on two ports.  When this feature is 
                       	active, all packets received on the port(s) 
                       	specified by rcMirrorSrcPortOne and/or 
                       	rcMirrorSrcPortTwo are copied to rcMirrorDstPort.  
                       	The mirroring operation is non-intrusive." 
	DEFVAL 		{ false }
        ::= { rcMirrorByPort 1 }

rcMirrorByPortMirrorPort OBJECT-TYPE 
        SYNTAX        	InterfaceIndex 
        ACCESS        	read-write
        STATUS       	mandatory 
        DESCRIPTION   	"The ifIndex of the port to forward mirrored frames to." 
        ::= { rcMirrorByPort 2 }

rcMirrorByPortEnableMirroredPortOne OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate whether the port specified in
                       	rcMirrorByPortMirroredPortOne should be mirrored." 
	DEFVAL 		{ false }
        ::= { rcMirrorByPort 3 }

rcMirrorByPortMirroredPortOne OBJECT-TYPE
        SYNTAX        	InterfaceIndex
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"The ifIndex of the port to be mirrored.  That
		       	is, traffic received on this port will be sent
		       	to the mirror port." 
        ::= { rcMirrorByPort 4 }

rcMirrorByPortEnableMirroredPortTwo OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate whether the port specified in
                       	rcMirrorByPortMirroredPortTwo should be mirrored." 
	DEFVAL 		{ false }
        ::= { rcMirrorByPort 5 }

rcMirrorByPortMirroredPortTwo OBJECT-TYPE
        SYNTAX        	InterfaceIndex
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"The ifIndex of the port to be mirrored.  That
		       	is, traffic received on this port will be sent
		       	to the mirror port." 
        ::= { rcMirrorByPort 6 }
 
-- Dip-Switch Group

rcIsolateUnconfigPorts OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether ports that are unconfigured
                      should be assigned to the 'isolated' VLAN.  Ports
                      assigned to the 'isolated' VLAN can only communicate
                      with the CP port.   If this option is not specified,
                      unconfigured ports will be assigned to the 'default'
                      VLAN"
        ::= { rcDipSwitch 1 }

rcUseFactorySettings OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether the system should ignore
                      the configuration information stored in NVRAM when
                      the system is booted."   
        ::= { rcDipSwitch 2 }


-- Table Size Group

rcTblRmonStatSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the current size of the RMON
                      Statistic table."
        ::= { rcTblSize 1 }

rcTblRmonHistoryControlSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the current size of the RMON  
                      History Control table." 
        ::= { rcTblSize 2 }

rcTblRmonHistoryEnetSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the current size of the RMON  
                      History Ethernet table." 
        ::= { rcTblSize 3 }

rcTblRmonAlarmSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the current size of the RMON  
                      Alarm table." 
        ::= { rcTblSize 4 }

rcTblRmonEventSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the current size of the RMON  
                      Event table." 
        ::= { rcTblSize 5 }

rcTblRmonLogSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the current size of the RMON  
                      Log table." 
        ::= { rcTblSize 6 }

rcTblArTblSize OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the size of the Address 
                      Translation (AR) table."
        ::= { rcTblSize 7 }


rcTblArFree OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of free
                      entries that are available in the Address 
                      Translation (AR) table."
        ::= { rcTblSize 8 }

rcTblArNoSpace OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of entries that could
                      not be added to the Address Translation (AR) table
                      due to lack of space."  
        ::= { rcTblSize 9 }

rcTblArAdded OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries added to
                      the Address Translation (AR) table." 
        ::= { rcTblSize 10 }

rcTblArDeleted OBJECT-TYPE 
        SYNTAX        INTEGER 
        ACCESS        read-only 
        STATUS        mandatory 
        DESCRIPTION   "Used to indicate the number of entries deleted to
                      the Address Translation (AR) table."
        ::= { rcTblSize 11 }

rcTblArMacAdded OBJECT-TYPE 
        SYNTAX        INTEGER 
        ACCESS        read-only 
        STATUS        mandatory 
        DESCRIPTION   "Used to indicate the number of MAC entries added to
                      the Address Translation (AR) table."
        ::= { rcTblSize 12 }

rcTblArMacDeleted OBJECT-TYPE 
        SYNTAX        INTEGER 
        ACCESS        read-only 
        STATUS        mandatory 
        DESCRIPTION   "Used to indicate the number of MAC entries deleted to
                      the Address Translation (AR) table."
        ::= { rcTblSize 13 }

rcTblArMacMoved OBJECT-TYPE 
        SYNTAX        INTEGER 
        ACCESS        read-only 
        STATUS        mandatory 
        DESCRIPTION   "Used to indicate the number of MAC entries moved in 
                      the Address Translation (AR) table."
        ::= { rcTblSize 14 }

rcTblArIpAdded OBJECT-TYPE 
        SYNTAX        INTEGER 
        ACCESS        read-only 
        STATUS        mandatory 
        DESCRIPTION   "Used to indicate the number of IP entries added to
                      the Address Translation (AR) table."
        ::= { rcTblSize 15 }

rcTblArIpDeleted OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of IP entries deleted to 
                      the Address Translation (AR) table."    
        ::= { rcTblSize 16 }

rcTblArMcastTblSize OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the size of the Multicast 
                      Address Translation (AR) table."
        ::= { rcTblSize 17 }


rcTblArFreeMcastGroups OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of free multicast
                      groups availabe in the Address Translation (AR) 
                      table."
        ::= { rcTblSize 18 }

rcTblArIpMcastAdded OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of Ip multicast
                      entries that are added to the Address 
                      Translation (AR) table."
        ::= { rcTblSize 19 }

rcTblArIpMcastDeleted OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of Ip multicast
                      entries that are deleted from the Address 
                      Translation (AR) table."
        ::= { rcTblSize 20 }

rcTblArVlanByPortAdded OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of VLAN by port
                      entries that are added to the Address 
                      Translation (AR) table."
        ::= { rcTblSize 21 }

rcTblArVlanByPortDeleted OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of VLAN by port
                      entries that are deleted from the Address 
                      Translation (AR) table."
        ::= { rcTblSize 22 }

rcTblArVlanByProtocolAdded OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of Vlans by 
                      Protocol Type entries that are added to 
                      the Address Translation (AR) table."
        ::= { rcTblSize 23 }

rcTblArVlanByProtocolDeleted OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of Vlans by 
                      Protocol Type entries that are deleted from 
                      the Address Translation (AR) table."
        ::= { rcTblSize 24 }

rcTblArVlanByIpSubnetAdded OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of VLAN by Ip 
                      entries that are added to the Address 
                      Translation (AR) table."
        ::= { rcTblSize 25 }

rcTblArVlanByIpSubnetDeleted OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of VLAN by Ip 
                      entries that are deleted from the Address 
                      Translation (AR) table."
        ::= { rcTblSize 26 }

rcTblArIpSubnetsAdded OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of Ip subnet
                      entries that are added to the Address 
                      Translation (AR) table."
        ::= { rcTblSize 27 }

rcTblArIpSubnetsDeleted OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of Ip subnet 
                      entries that are deleted from the Address 
                      Translation (AR) table."
        ::= { rcTblSize 28 }

rcTblArRsvpsAdded OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of RSVP
                      entries that are added to the Address 
                      Translation (AR) table."
        ::= { rcTblSize 29 }

rcTblArRsvpsDeleted OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of RSVP
                      entries that are deleted from the Address 
                      Translation (AR) table."
        ::= { rcTblSize 30 }


rcTblBrdgFdbSize OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of entries in the 
                      dot1d forwarding database table."    
        ::= { rcTblSize 31 }

rcTblBrdgStaticSize OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of entries in the 
                      dot1d Static Address Filtering table."    
        ::= { rcTblSize 32 }

rcTblIpAddrSize OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only  
        STATUS        mandatory  
        DESCRIPTION   "Used to indicate the number of entries in the 
                      IP Address table."    
        ::= { rcTblSize 33 }

rcTblIpForwardingSize OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only   
        STATUS        mandatory   
        DESCRIPTION   "Used to indicate the number of entries in the 
                      IP Forwarding table."        
        ::= { rcTblSize 34 }

rcTblIpNetToMediaSize OBJECT-TYPE  
        SYNTAX        INTEGER  
        ACCESS        read-only   
        STATUS        mandatory   
        DESCRIPTION   "Used to indicate the number of entries in the 
                      IP Net-to-media table."        
        ::= { rcTblSize 35 }


-- IP Group

rcIpConf OBJECT IDENTIFIER ::= { rcIp 1 }

-- IP Configuration Table

rcIpConfTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpConfEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to maintain IP routing information 
                      for a particular interface."
        ::= { rcIpConf 1 }
 
rcIpConfEntry OBJECT-TYPE
        SYNTAX        RcIpConfEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing IP routing information." 
        INDEX         { rcIpConfIfIndex }
        ::= { rcIpConfTable 1 }
 
RcIpConfEntry ::= SEQUENCE {
                rcIpConfIfIndex           InterfaceIndex,
                rcIpConfAdvertDefRte      TruthValue,
                rcIpConfAcceptDefRte      TruthValue,
		rcIpConfRowStatus         RowStatus,
                rcIpConfRipEnable         TruthValue,
                rcIpConfOspfEnable        TruthValue,
                rcIpConfIgmpEnable        TruthValue,
                rcIpConfAddrAssigned      TruthValue
        }

rcIpConfIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex (0..4095)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An unique value to identify a physical interface 
 		      or a logical interface (VLAN)."
        ::= { rcIpConfEntry 1 }

rcIpConfAdvertDefRte OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether this interface should
		      advertize a RIP default route." 
        ::= { rcIpConfEntry 2 }

rcIpConfAcceptDefRte OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether this interface should
		      accept a RIP default route."
        ::= { rcIpConfEntry 3 }

rcIpConfRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Row status for this entry."
        ::= { rcIpConfEntry 4 }

rcIpConfRipEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable RIP routing on the specified
                      interface."
        ::= { rcIpConfEntry 5 }
 
rcIpConfOspfEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable OSPF routing on the specified
                      interface."
        ::= { rcIpConfEntry 6 }
 
 
rcIpConfIgmpEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable IGMP on the specified
                      interface."
        ::= { rcIpConfEntry 7 }
 
rcIpConfAddrAssigned OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Indicate whether IpAddress has been assigned 
                      for this interface."
        ::= { rcIpConfEntry 8 }

-- Ospf Configuration Table
 
rcIpConfOspfTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpConfOspfEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to maintain Ospf information
                      for a particular interface."
        ::= { rcIpConf 2 }
 
rcIpConfOspfEntry OBJECT-TYPE
        SYNTAX        RcIpConfOspfEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing Ospf information."
        INDEX         { rcIpConfOspfIfIndex }
        ::= { rcIpConfOspfTable 1 }
 
RcIpConfOspfEntry ::= SEQUENCE {
                rcIpConfOspfIfIndex           InterfaceIndex,
                rcIpConfOspfRtrPriority       INTEGER,
                rcIpConfOspfMetric            INTEGER,
                rcIpConfOspfAuthKey           OCTET STRING,
                rcIpConfOspfRowStatus         RowStatus,
                rcIpConfOspfHelloInterval     INTEGER,
                rcIpConfOspfRtrDeadInterval   INTEGER
        }
 
rcIpConfOspfIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex (0..4095)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An unique value to identify a physical interface 
 		      or a logical interface (VLAN)."
        ::= { rcIpConfOspfEntry 1 }

rcIpConfOspfRtrPriority OBJECT-TYPE
        SYNTAX        INTEGER (0..'FF'h)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The priority of this interface.  Used in multi-
                      access networks, this field is used in the
                      designated router election algorithm.  The value 0
                      signifies that the router is not eligible to become
                      the designated router on this particular network.
                      In the event of a tie in this value, routers will
                      use their router id as a tie breaker."
        DEFVAL        { 1 }
        ::= { rcIpConfOspfEntry 2 }
 
rcIpConfOspfMetric OBJECT-TYPE
        SYNTAX        INTEGER (0..'FFFF'h)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The metric for this type of service (TOS) on this
                      interface.  The default value of the TOS 0 Metric
                      is (10^9 / ifSpeed). The value FFFF means 'no route 
		      via this TOS'. A value of 0 means the interface speed 
                      (rcIpConfOspfDefaultMetric) will be used as metric 
		      value, when the state of the interface is up." 
        ::= { rcIpConfOspfEntry 3 }
 
rcIpConfOspfAuthKey OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(8))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The Authentication Key.  If the Area's
                      Authorization Type is simplePassword, and the key
                      length is shorter than 8 octets, the agent will
                      left adjust and zero fill to 8 octets.  When read,
                      ospfIfAuthKey always returns an Octet String of
                      length zero."
        REFERENCE     "OSPF Version 2, Section 9 The Interface Data
                      Structure"
        DEFVAL        { '0000000000000000'H }    -- 0.0.0.0.0.0.0.0
        ::= { rcIpConfOspfEntry 4 }

rcIpConfOspfRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Row status for this entry."
        ::= { rcIpConfOspfEntry 5 }

rcIpConfOspfHelloInterval OBJECT-TYPE
        SYNTAX        INTEGER (1..'FFFF'h)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The length of time, in seconds, between the 
                      Hello packets that the router sends on the 
                      interface. This value must be the same for all
                      routers attached to a common network."
        DEFVAL        { 10 }
        ::= { rcIpConfOspfEntry 6 }

rcIpConfOspfRtrDeadInterval OBJECT-TYPE
        SYNTAX        INTEGER (1..'7FFFFFFF'h)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The number of seconds that a router's Hello 
                      packets have not been seen before it's 
                      neighbors declare the router down. This should
                      be some multiple of the Hello interval. This 
                      value must be the same for all routers attached
                      to a common network."
        DEFVAL        { 40 }
        ::= { rcIpConfOspfEntry 7 }

 
-- Ospf Cost Grp

rcIpConfOspfDefaultMetric   OBJECT IDENTIFIER       ::= { rcIpConf 3 }
 
rcIpConfOspfDefaultMetric10MegPort OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the cost associated with
                      10Meg Interface(Port)."
        ::= { rcIpConfOspfDefaultMetric 1 }
 
rcIpConfOspfDefaultMetric100MegPort OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the cost associated with
                      100Meg Interface(Port)."
        ::= { rcIpConfOspfDefaultMetric 2 }
 
rcIpConfOspfDefaultMetric1000MegPort OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the cost associated with
                      1000Meg Interface(Port)."
        ::= { rcIpConfOspfDefaultMetric 3 }

rcIpConfOspf   OBJECT IDENTIFIER       ::= { rcIpConf 4 }

 
rcIpConfOspfTrapEnable  OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether Ospf Traps should be sent."
        ::= { rcIpConfOspf 1 }

rcIpConfOspfAutoVirtLinkEnable  OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether auto virtual link 
                      creation is enabled or not. If set to true
                      OSPF will create virtual links between 
                      ABRs whether it is needed or not, but adjacency
                      will established only when one of the ABR 
                      losses connection to backbone area. If set to
                      false then it is user resposibity to create
                      virtual link whenever needed."
	DEFVAL	      { false }
        ::= { rcIpConfOspf 2 }


rcIpConfIgmp   OBJECT IDENTIFIER       ::= { rcIpConf 5 }

rcIpConfIgmpAdminStatus OBJECT-TYPE
        SYNTAX       INTEGER {
                         up(1),
                         down(2)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to set the administrative status of the
                       IGMP feature"
        DEFVAL        { down }
        ::= { rcIpConfIgmp 1 }


-- IP Address Table

rcIpAddrTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpAddrEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "The table of addressing information relevant to
                      this entity's IP addresses.

                      This table is identical to the ipAddrTable in 
                      MIB2 except the columns rcIpAdEntIfIndex and 
                      rcIpAdEntAddr are reversed.  Also, the table 
                      is indexed by both these variables."
	::= { rcIp 2 }

rcIpAddrEntry OBJECT-TYPE
	SYNTAX        RcIpAddrEntry
	ACCESS 	      not-accessible
	STATUS 	      mandatory
	DESCRIPTION   "The addressing information for one of this
                      entity's IP addresses."
	INDEX         { rcIpAdEntIfIndex, rcIpAdEntAddr }
	::= { rcIpAddrTable 1 }

RcIpAddrEntry ::=
    	SEQUENCE {
        	rcIpAdEntIfIndex InterfaceIndex,
	        rcIpAdEntAddr IpAddress,
	        rcIpAdEntNetMask IpAddress,
	        rcIpAdEntBcastAddrFormat INTEGER,
	        rcIpAdEntReasmMaxSize INTEGER (0..65535),
                rcIpAdEntRowStatus RowStatus 
    	}

rcIpAdEntIfIndex OBJECT-TYPE
   	SYNTAX        InterfaceIndex
  	ACCESS        read-only
  	STATUS        mandatory
	DESCRIPTION   "The index value which uniquely identifies the
                      interface to which this entry is applicable.  The
                      interface identified by a particular value of this
                      index is the same interface as identified by the
                      same value of ifIndex."
	::= { rcIpAddrEntry 1 }

rcIpAdEntAddr OBJECT-TYPE
	SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The IP address to which this entry's addressing
                      information pertains."
	::= { rcIpAddrEntry 2 }

rcIpAdEntNetMask OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The subnet mask associated with the IP address of
                      this entry.  The value of the mask is an IP
                      address with all the network bits set to 1 and all
                      the hosts bits set to 0."
	::= { rcIpAddrEntry 3 }

rcIpAdEntBcastAddrFormat OBJECT-TYPE
        SYNTAX        INTEGER {
			 zeros(0),	-- use zeros
			 ones(1)	-- use ones
		      }
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The IP broadcast address format used on this 
                      interface."
	::= { rcIpAddrEntry 4 }

rcIpAdEntReasmMaxSize OBJECT-TYPE
        SYNTAX        INTEGER (0..65535)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The size of the largest IP datagram which this
                      entity can re-assemble from incoming IP fragmented
                      datagrams received on this interface."
        ::= { rcIpAddrEntry 5 }

rcIpAdEntRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete entries"
        ::= { rcIpAddrEntry 6 }

-- FlowContorl Group

rcIpFlowTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpFlowEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "IpFlow Table.  This table contain entries that
		      correspond to RSVP records in the switching
		      fabric Address Resolution table.

		      A connection that has a matching entry in this 
                      table will be processed with a higher priority 
                      than connections that do not have an entry."
        ::= { rcIp 3 }

rcIpFlowEntry OBJECT-TYPE
        SYNTAX        RcIpFlowEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Proprietary flow control variables."
        INDEX         { rcIpFlowSrcIpAddress, rcIpFlowSrcIpPort,
		        rcIpFlowDstIpAddress, rcIpFlowDstIpPort,
		        rcIpFlowProtocol }
        ::= { rcIpFlowTable 1 }

RcIpFlowEntry ::=
        SEQUENCE {
                rcIpFlowSrcIpAddress IpAddress,
                rcIpFlowSrcIpPort    INTEGER,
                rcIpFlowDstIpAddress IpAddress,
                rcIpFlowDstIpPort    INTEGER,
		rcIpFlowProtocol     INTEGER,
		rcIpFlowRowStatus    RowStatus
        }

rcIpFlowSrcIpAddress OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The source IP address of an IP packet."
        ::= { rcIpFlowEntry 1 }

rcIpFlowSrcIpPort OBJECT-TYPE
        SYNTAX        INTEGER (0..65535)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The source port of an IP packet.  A zero value 
                      in this field is used as a wildcard value."
        DEFVAL 	      { 0 }
        ::= { rcIpFlowEntry 2 }

rcIpFlowDstIpAddress OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The destination IP address of an IP packet."
        ::= { rcIpFlowEntry 3 }

rcIpFlowDstIpPort OBJECT-TYPE
        SYNTAX        INTEGER (0..65535)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The destination port of an IP packet.  A zero
                      value in this field is used as a wildcard value."
	DEFVAL	      { 0 }
        ::= { rcIpFlowEntry 4 }

rcIpFlowProtocol OBJECT-TYPE
        SYNTAX 	      INTEGER {
                         ip(4),	        -- ip
			 tcp(6),	-- tcp
			 udp(17)	-- udp
        	      }
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The protocol type of an IP packet.  A zero value
                      in this field is used as a wildcard value."
	DEFVAL 	      { ip }
        ::= { rcIpFlowEntry 5 }

rcIpFlowRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Status of entry."
        ::= { rcIpFlowEntry 6 }


-- Routing group

rcIpRouting OBJECT IDENTIFIER ::= { rcIp 4 }


-- rcIpRouting/rcIpRoutingRedistributeRipToOspf Group

rcIpRoutingRedistributeRipToOspf OBJECT IDENTIFIER ::= {rcIpRouting 1}

rcIpRoutingRedistributeRipToOspfEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether or not to Redistribute
                      RIP routes to OSPF."
        DEFVAL        { false }
        ::= { rcIpRoutingRedistributeRipToOspf 1 }
 
rcIpRoutingRedistributeRipToOspfExplicitMetric OBJECT-TYPE
        SYNTAX        INTEGER (1..'FFFF'h)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Value of metric that is used to translate the
                      RIP route to OSPF."
        DEFVAL        { 1 }
        ::= { rcIpRoutingRedistributeRipToOspf 2 }

rcIpRoutingRedistributeRipToOspfUseExplicitMetric OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether or not to use the user
                      specified default metric for redistributing
                      RIP routes to OSPF."
        DEFVAL        { false }
        ::= { rcIpRoutingRedistributeRipToOspf 3 }
 
rcIpRoutingRedistributeRipToOspfExternalMetricType  OBJECT-TYPE
        SYNTAX        INTEGER {
                         type1(1),          -- extenal metric type1
                         type2(2)           -- extenal metric type2
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to configure the metric type of the
                      distributed routes to OSPF domain.
                      type1 means the metric is comparable directly
                      to the link state metric 
                      (cost = internal cost + external cost). 
                      type2 means the metric is considered larger 
                      than any link state metric (cost = external 
                      cost)."
        DEFVAL        { type2 }
        ::= { rcIpRoutingRedistributeRipToOspf 4 }


-- rcIpRouting/rcIpRoutingRedistributeOspfToRip Group

rcIpRoutingRedistributeOspfToRip OBJECT IDENTIFIER ::= {rcIpRouting 2}

rcIpRoutingRedistributeOspfToRipEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether or not to redistribute 
                      OSPF routes to RIP."
        DEFVAL        { false }
        ::= { rcIpRoutingRedistributeOspfToRip 1 }

rcIpRoutingRedistributeOspfToRipExplicitMetric OBJECT-TYPE
        SYNTAX        INTEGER (1..16)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Value of metric that is used to translate the
                      OSPF route to RIP."
        DEFVAL        { 1 }
        ::= { rcIpRoutingRedistributeOspfToRip 2 }
 
rcIpRoutingRedistributeOspfToRipUseExplicitMetric OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether or not to use the user
                      specified default metric for redistributing
                      OSPF routes to RIP."
        DEFVAL        { true }
        ::= { rcIpRoutingRedistributeOspfToRip 3 }

-- rcIpRouting/rcIpRoutingRedistributeDirectToOspf Group

rcIpRoutingRedistributeDirectToOspf OBJECT IDENTIFIER ::= {rcIpRouting 3}

rcIpRoutingRedistributeDirectToOspfEnable  OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether directly connected
                      networks through non-ospf interfaces are
                      distributed to OSPF database or not. If 
                      set to true all the static routes
                      will be added as external routes to OSPF
                      routing domain, provided the router is
                      configured as AS Border router. Also originates
                      asExtern link LSA."
        DEFVAL        { false }
        ::= { rcIpRoutingRedistributeDirectToOspf 1 }
 
rcIpRoutingRedistributeDirectToOspfMethod OBJECT-TYPE
        SYNTAX        INTEGER {
                         usePortSpeed(1),       
                         useExplicitMetric(2)  
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether or not to use the user
                      specified default metric for redistributing
                      direct routes to OSPF."
        DEFVAL        { usePortSpeed }
        ::= { rcIpRoutingRedistributeDirectToOspf 2 }

rcIpRoutingRedistributeDirectToOspfExplicitMetric OBJECT-TYPE
        SYNTAX        INTEGER (1..'FFFF'h)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Value of metric that is used to translate the
                      routes to directly connected networks to OSPF."
        DEFVAL        { 1 }
        ::= { rcIpRoutingRedistributeDirectToOspf 3 }
 
rcIpRoutingRedistributeDirectToOspfExternalMetricType  OBJECT-TYPE
        SYNTAX        INTEGER {
                         type1(1),          -- extenal metric type1
                         type2(2)           -- extenal metric type2
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to configure the metric type of the
                      distributed routes to OSPF domain.
                      type1 means the metric is comparable directly
                      to the link state metric 
                      (cost = internal cost + external cost). 
                      type2 means the metric is considered larger 
                      than any link state metric (cost = external 
                      cost)."
        DEFVAL        { type1 }
        ::= { rcIpRoutingRedistributeDirectToOspf 4 }


-- rcIpRouting/rcIpRoutingRedistributeStaticToOspf Group

rcIpRoutingRedistributeStaticToOspf OBJECT IDENTIFIER ::= {rcIpRouting 4}

rcIpRoutingRedistributeStaticToOspfEnable  OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether static routes (that
                      are configured locally through management
                      protocol) are distributed to OSPF database
                      or not. If set to true all the static routes
                      will be added as external routes to OSPF
                      routing domain, provided the router is
                      configured as AS Border router. Also originates
                      asExtern link LSA."
        DEFVAL        { false }
        ::= { rcIpRoutingRedistributeStaticToOspf 1 }
 
rcIpRoutingRedistributeStaticToOspfExplicitMetric OBJECT-TYPE
        SYNTAX        INTEGER (1..'FFFF'h)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Value of metric that is used to translate the
                      static routes to OSPF."
        DEFVAL        { 10 }
        ::= { rcIpRoutingRedistributeStaticToOspf 2 }
 
rcIpRoutingRedistributeStaticToOspfUseExplicitMetric OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether or not to use the user
                      specified default metric for redistributing
                      static routes to OSPF."
        DEFVAL        { false }
        ::= { rcIpRoutingRedistributeStaticToOspf 3 }

rcIpRoutingRedistributeStaticToOspfExternalMetricType  OBJECT-TYPE
        SYNTAX        INTEGER {
                         type1(1),          -- extenal metric type1
                         type2(2)           -- extenal metric type2
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to configure the metric type of the
                      distributed routes to OSPF domain.
                      type1 means the metric is comparable directly
                      to the link state metric 
                      (cost = internal cost + external cost). 
                      type2 means the metric is considered larger 
                      than any link state metric (cost = external 
                      cost)."
        DEFVAL        { type2 }
        ::= { rcIpRoutingRedistributeStaticToOspf 4 }

rcIpRoutingRedistributeStaticToOspfAdvertDefRte  OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether default route (that
                      are configured locally through management
                      protocol) should be distributed to OSPF database
                      or not. If set to true then the default route will 
                      be added as external route to OSPF routing domain, 
                      provided the router is configured as AS Border router. 
                      Also originates asExtern link LSA."
        DEFVAL        { false }
        ::= { rcIpRoutingRedistributeStaticToOspf 5 }

-- rcIpRouting/rcIpRoutingRedistributeDirectToRip Group

rcIpRoutingRedistributeDirectToRip OBJECT IDENTIFIER ::= {rcIpRouting 5}

rcIpRoutingRedistributeDirectToRipEnable  OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether directly connected
                      networks through non-rip interfaces are
                      distributed to RIP or not." 
        DEFVAL        { false }
        ::= { rcIpRoutingRedistributeDirectToRip 1 }


-- rcIpRouting/rcIpRoutingRedistributeStaticToRip Group

rcIpRoutingRedistributeStaticToRip OBJECT IDENTIFIER ::= {rcIpRouting 6}

rcIpRoutingRedistributeStaticToRipEnable  OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether static routes (that
                      are configured locally through management
                      protocol) are distributed to RIP database
                      or not. If set to true all the static routes
                      will be added as external routes to RIP
                      routing domain."
        DEFVAL        { false }
        ::= { rcIpRoutingRedistributeStaticToRip 1 }


rcIpConfIgmpTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF RcIpConfIgmpEntry
        ACCESS     not-accessible
        STATUS     mandatory
        DESCRIPTION "The (conceptual) table listing the interfaces on 
                    which IGMP is enabled."
    ::= { rcIp 5 }
 
rcIpConfIgmpEntry OBJECT-TYPE
        SYNTAX     RcIpConfIgmpEntry
        ACCESS     not-accessible
        STATUS     mandatory
        DESCRIPTION "An entry (conceptual row) representing an 
                    interface on which IGMP is enabled."
        INDEX      { rcIpConfIgmpIfIndex }
        ::= { rcIpConfIgmpTable 1 }
 
RcIpConfIgmpEntry ::= SEQUENCE {
        rcIpConfIgmpIfIndex               INTEGER,
        rcIpConfIgmpQueryInterval         INTEGER,
        rcIpConfIgmpVersion               INTEGER,
        rcIpConfIgmpQueryMaxResponseTime  INTEGER,
        rcIpConfIgmpQuerierPresentTimeout INTEGER,
        rcIpConfIgmpLeaveEnabled          TruthValue,
        rcIpConfIgmpRowStatus             RowStatus
}

rcIpConfIgmpIfIndex OBJECT-TYPE
        SYNTAX          INTEGER (0..65535)
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "An unique value to identify a physical 
                        interface or a logical interface (VLAN)."
        ::= { rcIpConfIgmpEntry 1 }

rcIpConfIgmpQueryInterval OBJECT-TYPE
         SYNTAX     INTEGER
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "The frequency at which IGMP Host-Query packets are
                     transmitted on this interface."
         DEFVAL     { 125 }
         ::= { rcIpConfIgmpEntry 2 }
 
rcIpConfIgmpVersion OBJECT-TYPE
         SYNTAX     INTEGER { version1(1), version2(2) }
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "The version of IGMP which is running on this
                     interface. This object can be used to configure a
                     router capable of running either value.  For IGMP
                     to function correctly, all routers on a LAN must
                     be configured to run the same version of IGMP on
                     that LAN."
         DEFVAL     { version2 }
         ::= { rcIpConfIgmpEntry 3 }
 
rcIpConfIgmpQueryMaxResponseTime OBJECT-TYPE
         SYNTAX     INTEGER
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "The maximum query response time advertised in
                     IGMPv2 queries on this interface.  Smaller values
                     allow a router to prune groups faster."
         DEFVAL     { 10 }
         ::= { rcIpConfIgmpEntry 4 }
 
rcIpConfIgmpQuerierPresentTimeout OBJECT-TYPE
         SYNTAX     INTEGER
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "A timeout interval.  If no IGMPv2 queries are
                     heard on this interface within this timeout
                     interval, the local router will take over the
                     Querier on the IP subnet to which this interface
                     is attached."
         DEFVAL     { 255 }
 
         ::= { rcIpConfIgmpEntry 5 }
 
rcIpConfIgmpLeaveEnabled OBJECT-TYPE
         SYNTAX     TruthValue
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "An indication of whether the processing of IGMPv2
                      Leave messages is enabled on this interface."
         DEFVAL    { true }
         ::= { rcIpConfIgmpEntry 6 }
 
rcIpConfIgmpRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Status of entry."
        ::= { rcIpConfIgmpEntry 7 }

rcIgmpGroupTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF RcIgmpGroupEntry
        ACCESS     not-accessible
        STATUS     mandatory
        DESCRIPTION "The (conceptual) table listing the multicast 
                    groups configured in the device."
    ::= { rcIp 6 }
 
rcIgmpGroupEntry OBJECT-TYPE
        SYNTAX     RcIgmpGroupEntry
        ACCESS     not-accessible
        STATUS     mandatory
        DESCRIPTION "An entry (conceptual row) representing an
                    Igmp group."
        INDEX      { rcIgmpGroupIpAddress, rcIgmpGroupInPort,
                     rcIgmpGroupMembers }
        ::= { rcIgmpGroupTable 1 }
 
RcIgmpGroupEntry ::= SEQUENCE {
        rcIgmpGroupIpAddress         IpAddress,
        rcIgmpGroupInPort            INTEGER,
        rcIgmpGroupMembers           IpAddress,
        rcIgmpGroupExpiration        INTEGER 
}

rcIgmpGroupIpAddress OBJECT-TYPE
        SYNTAX          IpAddress 
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Multicast group Address (Class D) that others
                         want to join. A group address can be the same 
                         for many incoming ports."
        ::= { rcIgmpGroupEntry 1 }

rcIgmpGroupInPort OBJECT-TYPE
        SYNTAX          INTEGER (0..65535)
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "An unique value to identify a physical
                        interface or a logical interface (VLAN),
                        which has received Group reports from various
                        sources."
        ::= { rcIgmpGroupEntry 2 }

rcIgmpGroupMembers OBJECT-TYPE
        SYNTAX          IpAddress 
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "IP Address of a source that has sent group 
                         report wishing to join this group."
        ::= { rcIgmpGroupEntry 3 }
 
 
rcIgmpGroupExpiration OBJECT-TYPE
         SYNTAX     INTEGER
         ACCESS     read-only
         STATUS     mandatory
         DESCRIPTION "Time left before the group report expired on this
                      port. Only one of this variable port. This 
                      variable is updated upon receiving a group report."
         ::= { rcIgmpGroupEntry 4 }

-- IP Route Table

rcIpRouteTable OBJECT-TYPE 
        SYNTAX          SEQUENCE OF RcIpRouteEntry
        ACCESS          not-accessible 
        STATUS          mandatory 
        DESCRIPTION     "This entity's IP Routing table."
    ::= { rcIp 7 }

rcIpRouteEntry OBJECT-TYPE
	SYNTAX  	RcIpRouteEntry
        ACCESS  	not-accessible
        STATUS  	mandatory
        DESCRIPTION	"A route to a particular destination."
        INDEX   { rcIpRouteDest, rcIpRouteMask }
    ::= { rcIpRouteTable 1 }

RcIpRouteEntry ::=
	SEQUENCE {
        	rcIpRouteDest IpAddress,
                rcIpRouteMask IpAddress,
                rcIpRouteNextHop IpAddress,
                rcIpRouteMetric  INTEGER,
                rcIpRouteIfIndex InterfaceIndex,
                rcIpRouteType INTEGER,
                rcIpRouteProto INTEGER,
                rcIpRouteAge INTEGER,
		rcIpRouteRowStatus RowStatus
              }

rcIpRouteDest OBJECT-TYPE
        SYNTAX  	IpAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The destination IP address of this route.  An
                      	entry with a value of 0.0.0.0 is considered a
                      	default route.  Multiple routes to a single
                      	destination can appear in the table, but access to
                      	such multiple entries is dependent on the table-
                      	access mechanisms defined by the network
                      	management protocol in use."
    ::= { rcIpRouteEntry 1 }

rcIpRouteMask OBJECT-TYPE
        SYNTAX  	IpAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION	"Indicate the mask to be logical-ANDed with the
                      	destination address before being compared to the
                      	value in the rcIpRouteDest field.  For those systems
                      	that do not support arbitrary subnet masks, an
                      	agent constructs the value of the rcIpRouteMask by
                      	determining whether the value of the correspondent
                      	rcIpRouteDest field belong to a class-A, B, or C
                      	network, and then using one of:

                           mask           network
                           255.0.0.0      class-A
                           255.255.0.0    class-B
                           255.255.255.0  class-C

                      	If the value of the rcIpRouteDest is 0.0.0.0 (a
                      	default route), then the mask value is also
                      	0.0.0.0.  It should be noted that all IP routing
                      	subsystems implicitly use this mechanism."
    ::= { rcIpRouteEntry 2 }

rcIpRouteNextHop OBJECT-TYPE
        SYNTAX  	IpAddress
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The IP address of the next hop of this route.
                      	(In the case of a route bound to an interface
                      	which is realized via a broadcast media, the value
                      	of this field is the agent's IP address on that
                      	interface)."
    ::= { rcIpRouteEntry 3 }

rcIpRouteMetric OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The primary routing metric for this route.  The
                      	semantics of this metric are determined by the
                      	routing-protocol specified in the route's
                      	rcIpRouteProto value.  If this metric is not used,
                      	its value should be set to -1."
    ::= { rcIpRouteEntry 4 }

rcIpRouteIfIndex OBJECT-TYPE
        SYNTAX  	InterfaceIndex
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The index value which uniquely identifies the
                      	local interface through which the next hop of this
                      	route should be reached.  The interface identified
                      	by a particular value of this index is the same
                      	interface as identified by the same value of
                      	ifIndex."
    ::= { rcIpRouteEntry 5 }

rcIpRouteType OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),        -- none of the following
                    direct(3),       -- connected (sub-)network

                                     -- route to a non-local
                    indirect(4)      -- host/network/sub-network
               }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The type of route.  Note that the values
                      	direct(3) and indirect(4) refer to the notion of
                      	direct and indirect routing in the IP
                      	architecture."
    ::= { rcIpRouteEntry 6 }

rcIpRouteProto OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),       -- none of the following

                                    -- non-protocol information,
                                    -- e.g., manually configured
                    local(2),       -- entries

                                    -- set via a network
                    netmgmt(3),     -- management protocol

                                    -- obtained via ICMP,
                    icmp(4),        -- e.g., Redirect

                                    -- the remaining values are
                                    -- all gateway routing
                                    -- protocols
                    egp(5),
                    ggp(6),
                    hello(7),
                    rip(8),
                    is-is(9),
                    es-is(10),
                    ciscoIgrp(11),
                    bbnSpfIgp(12),
                    ospf(13),
                    bgp(14)
                }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION	"The routing mechanism via which this route was
                      	learned.  Inclusion of values for gateway routing
                      	protocols is not intended to imply that hosts
                      	should support those protocols."
    ::= { rcIpRouteEntry 7 }

rcIpRouteAge OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION	"The number of seconds since this route was last
                      	updated or otherwise determined to be correct.
                      	Note that no semantics of `too old' can be implied
                      	except through knowledge of the routing protocol
                      	by which the route was learned."
    ::= { rcIpRouteEntry 8 }

rcIpRouteRowStatus OBJECT-TYPE
        SYNTAX        	RowStatus
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to create/delete entries"
    ::= { rcIpRouteEntry 9 }


-- ARP Group

rcArpExtLifeTime OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The lifetime in minutues of an ARP entry within the 
                      system."
        ::= { rcArp 1 }

rcArpExtTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcArpExtEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "ARP extension table.  This table augments the
		      standard ipNetToMediaTable defined in RFC1213."
        ::= { rcArp 2 }

rcArpExtEntry OBJECT-TYPE
        SYNTAX        RcArpExtEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Proprietary ARP variables."
        INDEX         { rcArpExtEntIfIndex }
        ::= { rcArpExtTable 1 }

RcArpExtEntry ::=
        SEQUENCE {
                rcArpExtEntIfIndex InterfaceIndex,
                rcArpExtEntDoProxy INTEGER,
                rcArpExtEntDoResp INTEGER
        }

rcArpExtEntIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The index value which uniquely identifies the
                      interface to which this entry is applicable.
                      The interface identified by a particular value
                      of this index is the same interface as 
                      identified by the same value of ifIndex."
        ::= { rcArpExtEntry 1 }
 
rcArpExtEntDoProxy OBJECT-TYPE
        SYNTAX        INTEGER {
		         disable(1),
			 enable(2)
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable ARP proxy responses on the
		      specified interface."
        ::= { rcArpExtEntry 2 }
 
rcArpExtEntDoResp OBJECT-TYPE
        SYNTAX        INTEGER {
			 disable(1),
			 enable(2)
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable the sending of ARP responses
		      on the specified interface."
        ::= { rcArpExtEntry 3 }


-- RIP Group

rcRipExtOperation OBJECT-TYPE
        SYNTAX        INTEGER	{
                         disable(1),
                         enable(2)
	 	      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable the operation of RIP on all
		      Interfaces."
        ::= { rcRip 1 }

rcRipExtUpdateTime OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The time between transmission of RIP updates
		      on all interfaces."
        ::= { rcRip 2 }

rcRipExtTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcRipExtEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "RIP extension table.  This table augments the
		      standard IfConfTable table in RFC1389."
        ::= { rcRip 3 }

rcRipExtEntry OBJECT-TYPE
        SYNTAX        RcRipExtEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Proprietary RIP variables."
        INDEX         { rcRipExtEntIfIndex }
        ::= { rcRipExtTable 1 }

RcRipExtEntry ::=
        SEQUENCE {
                rcRipExtEntIfIndex InterfaceIndex,
                rcRipExtEntTalk INTEGER,
                rcRipExtEntListen INTEGER,
                rcRipExtEntPoison INTEGER
        }

rcRipExtEntIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The index value which uniquely identifies the
                      interface to which this entry is applicable.
                      The interface identified by a particular value
                      of this index is the same interface as 
                      identified by the same value of ifIndex."
        ::= { rcRipExtEntry 1 }
 
rcRipExtEntTalk OBJECT-TYPE
        SYNTAX       INTEGER {
                        disable(1),
                        enable(2)
		      }	
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable RIP transmission on the
		      specified interface."
        ::= { rcRipExtEntry 2 }
 
rcRipExtEntListen OBJECT-TYPE
        SYNTAX        INTEGER {
                         disable(1),
                         enable(2)
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable RIP reception on the specified
		      interface."
        ::= { rcRipExtEntry 3 }

rcRipExtEntPoison OBJECT-TYPE
        SYNTAX        INTEGER {
                         disable(1),
                         enable(2)
                      } 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable operation of poison reverse
		      on the specified interface.  If poison is
		      disabled, split-horizon operation is enabled."
        ::= { rcRipExtEntry 4 }


-- Test Group

rcTestExtTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcTestEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Test extension table.  This table augments the
                      standard ifTestTable table in RFC1573."
        ::= { rcTest 1 }
 
rcTestEntry OBJECT-TYPE
        SYNTAX        RcTestEntry
        ACCESS        not-accessible
        STATUS        mandatory    
        DESCRIPTION   "Proprietary test variables."
        INDEX         { rcTestExtIfIndex }
        ::= { rcTestExtTable 1 }
 
RcTestEntry ::=
        SEQUENCE {
                rcTestExtIfIndex InterfaceIndex,
                rcTestExtPassCount INTEGER,  
                rcTestExtFailCount INTEGER
        }
 
rcTestExtIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The index value which uniquely identifies the
                      interface to which this entry is applicable.
                      The interface identified by a particular value
                      of this index is the same interface as
                      identified by the same value of ifIndex."
        ::= { rcTestEntry 1 }

rcTestExtPassCount OBJECT-TYPE
	SYNTAX	      INTEGER
	ACCESS	      read-only
	STATUS	      mandatory
	DESCRIPTION   "The number of iterations of the test case that
		      completed successfully."
	::= { rcTestEntry 2}

rcTestExtFailCount OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The number of iterations of the test case that
                      failed."
        ::= { rcTestEntry 3}


rcTestTypes		OBJECT IDENTIFIER	::= { rcTest 2}
rcTestTypesFabric	OBJECT IDENTIFIER	::= { rcTestTypes 1 }
rcTestTypesArTable	OBJECT IDENTIFIER	::= { rcTestTypes 2}

rcTestCodes		OBJECT IDENTIFIER	::= { rcTest 3 }
rcTestCodesNoReceive	OBJECT IDENTIFIER	::= { rcTestCodes 1 }
rcTestCodesBadSeq	OBJECT IDENTIFIER	::= { rcTestCodes 2 }
rcTestCodesBadLen	OBJECT IDENTIFIER	::= { rcTestCodes 3 }
rcTestCodesBadData	OBJECT IDENTIFIER	::= { rcTestCodes 4 }


-- Statistics

rcStatTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcStatEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store port statistics."
        ::= { rcStat 1 }
 
rcStatEntry OBJECT-TYPE
        SYNTAX        RcStatEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "interface counters"
        INDEX         { rcStatPortIndex }
        ::= { rcStatTable 1 }
 
RcStatEntry ::= SEQUENCE {
                rcStatPortIndex            	InterfaceIndex,
                rcStatFrameTooShorts       	Counter,
 		rcStatBridgeInUnicastFrames	Counter,
 		rcStatBridgeInMulticastFrames	Counter,
 		rcStatBridgeInBroadcastFrames	Counter,
 		rcStatBridgeInDiscards		Counter,
 		rcStatBridgeOutUnicastFrames	Counter,
 		rcStatBridgeOutMulticastFrames	Counter,
 		rcStatBridgeOutBroadcastFrames	Counter,
 		rcStatRouteInUnicastFrames	Counter,
 		rcStatRouteInMulticastFrames	Counter,
 		rcStatRouteInDiscards		Counter,
 		rcStatRouteOutUnicastFrames	Counter,
 		rcStatRouteOutMulticastFrames 	Counter,
		rcStatStgForwardTransitions     Counter,
		rcStatStgInConfigBpdus          Counter,
		rcStatStgInTcnBpdus             Counter,
		rcStatStgInBadBpdus             Counter,
		rcStatStgOutConfigBpdus         Counter,
		rcStatStgOutTcnBpdus            Counter
        }
 
rcStatPortIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An index value that uniquely identifies a port.
                      This value is similar to ifIndex in MIB2."
        ::= { rcStatEntry 1 }
 
rcStatFrameTooShorts OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The total number of frames that are too short 
                      that were encountered on this interface."
        ::= { rcStatEntry 2 }

rcStatBridgeInUnicastFrames OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The total number of incoming unicast frames that 
		      were bridged."
        ::= { rcStatEntry 3 }

rcStatBridgeInMulticastFrames OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of incoming multicast frames that 
                      were bridged."
        ::= { rcStatEntry 4 }

rcStatBridgeInBroadcastFrames OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of incoming broadcast frames that 
                      were bridged."
        ::= { rcStatEntry 5 }

rcStatBridgeInDiscards OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of frames that were discarded by
		      the bridging entity."
        ::= { rcStatEntry 6 }

rcStatBridgeOutUnicastFrames OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of outgoing unicast frames that 
                      were bridged."
        ::= { rcStatEntry 7 }

rcStatBridgeOutMulticastFrames OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of outgoing multicast frames that 
                      were bridged."
        ::= { rcStatEntry 8 }

rcStatBridgeOutBroadcastFrames OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of outgoing broadcast frames that 
                      were bridged."
        ::= { rcStatEntry 9 }

rcStatRouteInUnicastFrames OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of incoming unicast frames that
                      were routed."
        ::= { rcStatEntry 10 }

rcStatRouteInMulticastFrames OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of incoming multicast frames that
                      were routed."
        ::= { rcStatEntry 11 }

rcStatRouteInDiscards OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of frames that were discarded by
		      the routing entity."
        ::= { rcStatEntry 12 }

rcStatRouteOutUnicastFrames OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of outgoing unicast frames that
                      were routed."
        ::= { rcStatEntry 13 }

rcStatRouteOutMulticastFrames OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "The total number of outgoing multicast frames that
                      were routed."
        ::= { rcStatEntry 14 }

rcStatStgForwardTransitions OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   ""
        ::= { rcStatEntry 15 }

rcStatStgInConfigBpdus OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   ""
        ::= { rcStatEntry 16 }

rcStatStgInTcnBpdus OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   ""
        ::= { rcStatEntry 17 }

rcStatStgInBadBpdus OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   ""
        ::= { rcStatEntry 18 }

rcStatStgOutConfigBpdus OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   ""
        ::= { rcStatEntry 19 }

rcStatStgOutTcnBpdus OBJECT-TYPE 
        SYNTAX        Counter 
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   ""
        ::= { rcStatEntry 20 }

rcStatGigTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcStatGigEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store Gigport error statistics."
        ::= { rcStat 2 } 
 
rcStatGigEntry OBJECT-TYPE  
        SYNTAX        RcStatGigEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Gigabit interface error counters"
        INDEX         { rcStatGigPortIndex }
        ::= { rcStatGigTable 1 }
 
RcStatGigEntry ::= SEQUENCE {
		rcStatGigPortIndex            InterfaceIndex,
		rcStatGigLinkFailures         Counter,
		rcStatGigPacketErrors         Counter,
		rcStatGigCarrierErrors        Counter,
		rcStatGigLinkInactiveErrors   Counter,
                rcStatGigInFlowCtrlPkts       Counter,
                rcStatGigOutFlowCtrlPkts      Counter
        }

rcStatGigPortIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An index value that uniquely identifies a port.
                      This value is similar to ifIndex in MIB2."
        ::= { rcStatGigEntry 1 }

rcStatGigLinkFailures OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The total number of link failures encountered on 
                      this interface."
        ::= { rcStatGigEntry 2 }

rcStatGigPacketErrors OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The total number of packet errors encountered on 
                      this interface."
        ::= { rcStatGigEntry 3 }

rcStatGigCarrierErrors OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The total number of carrier errors encountered on 
                      this interface."
        ::= { rcStatGigEntry 4 }

rcStatGigLinkInactiveErrors OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The total number of link inactive errors encountered 
                       on this interface."
        ::= { rcStatGigEntry 5 }

rcStatGigInFlowCtrlPkts OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The total number of flow control packets received
                         by this interface."
        ::= { rcStatGigEntry 6 }

rcStatGigOutFlowCtrlPkts OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The total number of flow control packets transmitted 
                       by this interface."
        ::= { rcStatGigEntry 7 }

rcStatOspf   OBJECT IDENTIFIER       ::= { rcStat 3}
 
rcStatOspfBuffersAllocated OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of buffers
                      allocated for OSPF."
        ::= { rcStatOspf 1 }
 
rcStatOspfBuffersFreed OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of buffers
                      that are freed by the OSPF."
        ::= { rcStatOspf 2 }
 
rcStatOspfBufferAllocFailures OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of times
                      that OSPF has failed to allocate buffers."
        ::= { rcStatOspf 3 }
 
rcStatOspfBufferFreeFailures OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of times
                      that OSPF has failed to free buffers."
        ::= { rcStatOspf 4 }
 
rcStatOspfTxPackets OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of packets
                      transmitted by OSPF."
        ::= { rcStatOspf 5 }
 
 
rcStatOspfRxPackets OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of packets
                      received by OSPF."
        ::= { rcStatOspf 6 }
 
rcStatOspfTxDropPackets OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of packets
                      dropped before transmitted by OSPF."
        ::= { rcStatOspf 7 }
 
 
rcStatOspfRxDropPackets OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of packets
                      dropped before received by OSPF."
        ::= { rcStatOspf 8 }
 
rcStatOspfRxBadPackets OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of packets
                      received by OSPF that are bad."
        ::= { rcStatOspf 9 }
 
rcStatOspfSpfRuns OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of SPF
                      calculatations performed by OSPF."
        ::= { rcStatOspf 10 }
 
rcStatOspfLastSpfRun OBJECT-TYPE
        SYNTAX        TimeTicks
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the time(SysUpTime) since
                      the last spf calculated by OSPF."
        ::= { rcStatOspf 11 }
 
rcStatIgmp   OBJECT IDENTIFIER       ::= { rcStat 4}

rcStatIgmpInMsgs OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of Igmp packets
                         received by the device."
        ::= { rcStatIgmp 1 }

rcStatIgmpInErrors OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of Igmp packets
                         received that are with checksum errors."
        ::= { rcStatIgmp 2 }

rcStatIgmpInQueries OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of Igmp queries
                         received by the device."
        ::= { rcStatIgmp 3 }

rcStatIgmpInReports OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of Igmp reports
                         received by the device."
        ::= { rcStatIgmp 4 }


rcStatIgmpInLeaves OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of Igmp Leaves
                         received by the device."
        ::= { rcStatIgmp 5 }

rcStatIgmpInvalid OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of Igmp packets
                         received by the device that contained invalid
                         type."
        ::= { rcStatIgmp 6 }

rcStatIgmpOutMsgs OBJECT-TYPE
        SYNTAX          Counter
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of Igmp queries
                         sent by the device."
        ::= { rcStatIgmp 7 }

rcStatOspfLsdbTblSize OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in
                      the linkstate database table."
        ::= { rcStatOspf 12 }
 
 
rcStatOspfIfTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcStatOspfIfEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store OSPF interface
                      statistics."
        ::= { rcStat 5 }
 
rcStatOspfIfEntry OBJECT-TYPE
        SYNTAX        RcStatOspfIfEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Ospf interface statistics"
        INDEX         { rcStatOspfIfIndex }
        ::= { rcStatOspfIfTable 1 }
 
RcStatOspfIfEntry ::= SEQUENCE {
                rcStatOspfIfIndex                 InterfaceIndex,
                rcStatOspfIfRxHellos              Counter,
                rcStatOspfIfRxDBDescrs            Counter,
                rcStatOspfIfRxLSUpdates           Counter,
                rcStatOspfIfRxLSReqs              Counter,
                rcStatOspfIfRxLSAcks              Counter,
                rcStatOspfIfTxHellos              Counter,
                rcStatOspfIfTxDBDescrs            Counter,
                rcStatOspfIfTxLSUpdates           Counter,
                rcStatOspfIfTxLSReqs              Counter,
                rcStatOspfIfTxLSAcks              Counter,
                rcStatOspfIfVersionMismatches       Counter,
                rcStatOspfIfAreaMismatches          Counter,
                rcStatOspfIfAuthTypeMismatches      Counter,
                rcStatOspfIfAuthFailures            Counter,
                rcStatOspfIfNetMaskMismatches       Counter,
                rcStatOspfIfHelloIntervalMismatches Counter,
                rcStatOspfIfDeadIntervalMismatches  Counter,
                rcStatOspfIfOptionMismatches        Counter
        }
 
rcStatOspfIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex (0..4095)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An unique value that is used to identify a
                      physical interface."
        ::= { rcStatOspfIfEntry 1 }
 
rcStatOspfIfRxHellos OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number hello packets
                      received by this interface."
        ::= { rcStatOspfIfEntry 2 }

rcStatOspfIfRxDBDescrs OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number database descriptor
                      packets received by this interface."
        ::= { rcStatOspfIfEntry 3 }
 
rcStatOspfIfRxLSUpdates OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number Link state update
                      packets received by this interface."
        ::= { rcStatOspfIfEntry 4 }
 
rcStatOspfIfRxLSReqs OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number Link state request
                      packets received by this interface."
        ::= { rcStatOspfIfEntry 5 }
 
rcStatOspfIfRxLSAcks OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number Link state acknowlege
                      packets received by this interface."
        ::= { rcStatOspfIfEntry 6 }
 
rcStatOspfIfTxHellos OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number hello packets
                      transmitted by this interface."
        ::= { rcStatOspfIfEntry 7 }
 
rcStatOspfIfTxDBDescrs OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number database descriptor
                      packets transmitted by this interface."
        ::= { rcStatOspfIfEntry 8 }
 
rcStatOspfIfTxLSUpdates OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number Link state update
                      packets transmitted by this interface."
        ::= { rcStatOspfIfEntry 9 }
 
rcStatOspfIfTxLSReqs OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number Link state request
                      packets transmitted by this interface."
        ::= { rcStatOspfIfEntry 10 }
 
rcStatOspfIfTxLSAcks OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number Link state acknowlege
                      packets transmitted by this interface."
        ::= { rcStatOspfIfEntry 11 }

rcStatOspfIfVersionMismatches OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number version
                      mismatches received by this interface."
        ::= { rcStatOspfIfEntry 12 }

rcStatOspfIfAreaMismatches OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number area
                      mismatches received by this interface."
        ::= { rcStatOspfIfEntry 13 }

rcStatOspfIfAuthTypeMismatches OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number AuthType 
                      mismatches received by this interface."
        ::= { rcStatOspfIfEntry 14 }

rcStatOspfIfAuthFailures OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number Authentication
                      failures."
        ::= { rcStatOspfIfEntry 15 }

rcStatOspfIfNetMaskMismatches OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number net mask
                      mismatches received by this interface."
        ::= { rcStatOspfIfEntry 16 }

rcStatOspfIfHelloIntervalMismatches OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number hello interval
                      mismatches received by this interface."
        ::= { rcStatOspfIfEntry 17 }

rcStatOspfIfDeadIntervalMismatches OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number dead interval
                      mismatches received by this interface."
        ::= { rcStatOspfIfEntry 18 }

rcStatOspfIfOptionMismatches OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number options
                      mismatches received by this interface."
        ::= { rcStatOspfIfEntry 19 }

-- Spanning Tree Group (STG)

rcStgMaxStgs OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The maximum number of spanning tree groups this
		      device can support concurrently."
        ::= { rcStg 1 }

rcStgNumStgs OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The number of spanning tree groups that are
		      currently defined."
        ::= { rcStg 2 }

rcStgUnassignedPorts OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(32))
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A bitfield used to identify which ports in
                      the system currently not assigned to any STG.

                      The bitfield is 32 octets long representing 
                      ports 0 to 255 (inclusive)."
        ::= { rcStg 3 }


-- STG Table

rcStgTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcStgEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store Spanning Tree Group (STG)
		      information.  Each row in the table specifies
		      a different STG in the device."
        ::= { rcStg 4 } 
 
rcStgEntry OBJECT-TYPE  
        SYNTAX        RcStgEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "STG attributes"
        INDEX  { rcStgId }
        ::= { rcStgTable 1 }
 
RcStgEntry ::= SEQUENCE {
		rcStgId INTEGER,
		rcStgTaggedBpduAddress MacAddress,
		rcStgTaggedBpduVlanId INTEGER,
		rcStgBridgeAddress MacAddress,
		rcStgNumPorts INTEGER,
		rcStgProtocolSpecification INTEGER,
		rcStgPriority INTEGER,
		rcStgTimeSinceTopologyChange TimeTicks,
		rcStgTopChanges Counter,
		rcStgDesignatedRoot BridgeId,
		rcStgRootCost INTEGER,
		rcStgRootPort INTEGER,
		rcStgMaxAge Timeout,
		rcStgHelloTime Timeout,
		rcStgHoldTime INTEGER,
		rcStgForwardDelay Timeout,
		rcStgBridgeMaxAge Timeout,
		rcStgBridgeHelloTime Timeout,
		rcStgBridgeForwardDelay Timeout,
		rcStgEnableStp TruthValue,
		rcStgStpTrapEnable TruthValue,
		rcStgPortMembers OCTET STRING,
		rcStgRowStatus RowStatus
        }

rcStgId OBJECT-TYPE 
        SYNTAX  	INTEGER (1..25)
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"An identifier used to identify a STG in the device."
        ::= { rcStgEntry 1 }

rcStgTaggedBpduAddress OBJECT-TYPE
        SYNTAX  	MacAddress
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The MAC address to be assigned to the destination
      	       		mac address field in tagged BPDUs.  

	       		The default address is the well known multicast 
	       		group address 01-80-c2-00-00-00."
        DEFVAL { "01:80:c2:00:00:00" }
  	::= { rcStgEntry 2 }

rcStgTaggedBpduVlanId OBJECT-TYPE 
        SYNTAX  	INTEGER  
        ACCESS  	read-write 
        STATUS  	mandatory  
        DESCRIPTION 	"The VLAN ID to be used for tagging BPDUs." 
        ::= { rcStgEntry 3 }

rcStgBridgeAddress OBJECT-TYPE
        SYNTAX  	MacAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The MAC address used by this bridge when it must
		       	be referred to in a unique fashion.   It is
		       	recommended that this be the numerically smallest
		       	MAC address of all ports that belong to this
		       	bridge.  However it is only required to be unique.
		       	When concatenated with rcStgPriority a unique
		       	BridgeIdentifier is formed which is used in the
		       	Spanning Tree Protocol."
        REFERENCE 	"IEEE 802.1D-1990: Sections 6.4.1.1.3 and 3.12.5"
        ::= { rcStgEntry 4 }

rcStgNumPorts OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The number of ports controlled by this bridging entity."
        REFERENCE 	"IEEE 802.1D-1990: Section 6.4.1.1.3"
        ::= { rcStgEntry 5 }

rcStgProtocolSpecification OBJECT-TYPE
        SYNTAX  	INTEGER {
			      unknown(1),
			      decLb100(2),
			      ieee8021d(3)
		        }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"An indication of what version of the Spanning
                     	Tree Protocol is being run.  The value
                     	'decLb100(2)' indicates the DEC LANbridge 100
                     	Spanning Tree protocol.  IEEE 802.1d
                     	implementations will return 'ieee8021d(3)'.  If
                     	future versions of the IEEE Spanning Tree Protocol
                     	are released that are incompatible with the
                     	current version a new value will be defined."
        ::= { rcStgEntry 6 }

rcStgPriority OBJECT-TYPE
        SYNTAX  	INTEGER (0..65535)
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The value of the write-able portion of the Bridge
	      	       	ID, i.e., the first two octets of the (8 octet
      		       	long) Bridge ID.  The other (last) 6 octets of the
      	       		Bridge ID are given by the value of rcStgBridgeAddress."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.7"
        DEFVAL  { 32768 }
        ::= { rcStgEntry 7 }

rcStgTimeSinceTopologyChange OBJECT-TYPE
        SYNTAX  	TimeTicks
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The time (in hundredths of a second) since the
	       		last time a topology change was detected by the
	       		bridge entity."
        REFERENCE 	"IEEE 802.1D-1990: Section 6.8.1.1.3"
        ::= { rcStgEntry 8 }

rcStgTopChanges OBJECT-TYPE
        SYNTAX  	Counter
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The total number of topology changes detected by
	       		this bridge since the management entity was last
	       		reset or initialized."
        REFERENCE 	"IEEE 802.1D-1990: Section 6.8.1.1.3"
        ::= { rcStgEntry 9 }

rcStgDesignatedRoot OBJECT-TYPE
        SYNTAX  	BridgeId
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The bridge identifier of the root of the spanning
	       		tree as determined by the Spanning Tree Protocol
	       		as executed by this node.  This value is used as
                        the Root Identifier parameter in all Configuration
                        Bridge PDUs originated by this node."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.1"
        ::= { rcStgEntry 10 }

rcStgRootCost OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The cost of the path to the root as seen from
	       		this bridge."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.2"
        ::= { rcStgEntry 11 }

rcStgRootPort OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The port number of the port which offers the
	  		lowest cost path from this bridge to the root
               		bridge."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.3"
        ::= { rcStgEntry 12 }

rcStgMaxAge OBJECT-TYPE
        SYNTAX  	Timeout
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The maximum age of Spanning Tree Protocol
	       		information learned from the network on any port
	       		before it is discarded, in units of hundredths of
	       		a second.  This is the actual value that this
	       		bridge is currently using."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.4"
        ::= { rcStgEntry 13 }

rcStgHelloTime OBJECT-TYPE
        SYNTAX  	Timeout
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The amount of time between the transmission of
	       		Configuration bridge PDUs by this node on any port
	       		when it is the root of the spanning tree or trying
	       		to become so, in units of hundredths of a second.
	       		This is the actual value that this bridge is
                        currently using."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.5"
        ::= { rcStgEntry 14 }

rcStgHoldTime OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "This time value determines the interval length
	                during which no more than two Configuration bridge
	                PDUs shall be transmitted by this node, in units
	             	of hundredths of a second."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.14"
        ::= { rcStgEntry 15 }

rcStgForwardDelay OBJECT-TYPE
        SYNTAX  	Timeout
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"This time value, measured in units of hundredths
	             	of a second, controls how fast a port changes its
	             	spanning state when moving towards the Forwarding
	             	state.  The value determines how long the port
	             	stays in each of the Listening and Learning
	             	states, which precede the Forwarding state.  This
	             	value is also used, when a topology change has
	             	been detected and is underway, to age all dynamic
	             	entries in the Forwarding Database.  [Note that
	             	this value is the one that this bridge is
	             	currently using, in contrast to
	             	rcStgBridgeForwardDelay which is the value that
	             	this bridge and all others would start using
	             	if/when this bridge were to become the root.]"
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.6"
        ::= { rcStgEntry 16 }

rcStgBridgeMaxAge OBJECT-TYPE
        SYNTAX  	Timeout (600..4000)
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The value that all bridges use for MaxAge when
	             	this bridge is acting as the root.  Note that
	             	802.1D-1990 specifies that the range for this
	             	parameter is related to the value of
	             	rcStgBridgeHelloTime. The granularity of this
	             	timer is specified by 802.1D-1990 to be 1 second.
	             	An agent may return a badValue error if a set is
	             	attempted to a value which is not a whole number
	             	of seconds."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.8"
        DEFVAL  { 2000 }
        ::= { rcStgEntry 17 }

rcStgBridgeHelloTime OBJECT-TYPE
        SYNTAX  	Timeout (100..1000)
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The value that all bridges use for HelloTime when
	             	this bridge is acting as the root.  The
	             	granularity of this timer is specified by 802.1D-
	             	1990 to be 1 second.  An agent may return a
	             	badValue error if a set is attempted to a value
	             	which is not a whole number of seconds."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.9"
        DEFVAL  { 200 }
        ::= { rcStgEntry 18 }

rcStgBridgeForwardDelay OBJECT-TYPE
        SYNTAX  	Timeout (400..3000)
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The value that all bridges use for ForwardDelay
	             	when this bridge is acting as the root.  Note that
	             	802.1D-1990 specifies that the range for this
	             	parameter is related to the value of
	             	rcStgBridgeMaxAge.  The granularity of this
	             	timer is specified by 802.1D-1990 to be 1 second.
	             	An agent may return a badValue error if a set is
	             	attempted to a value which is not a whole number
	             	of seconds."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.3.10"
        DEFVAL  { 1500 }
        ::= { rcStgEntry 19 }

rcStgEnableStp OBJECT-TYPE
        SYNTAX  	TruthValue
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Indicate whether the spanning tree protocol 
	       		should be active in this STG."
        DEFVAL { true }
        ::= { rcStgEntry 20 }

rcStgStpTrapEnable OBJECT-TYPE
        SYNTAX 	 	TruthValue
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Indicate whether traps relating to the spanning
	       		tree protocol should be sent for this STG."
        DEFVAL { true }
        ::= { rcStgEntry 21 }

rcStgPortMembers OBJECT-TYPE
        SYNTAX          OCTET STRING (SIZE(32))
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "A bitfield used to identify which ports in
		   	the system are members this STG.

		   	The bitfield is 32 octets long representing
		   	ports 0 to 255 (inclusive)."
        ::= { rcStgEntry 22 }

rcStgRowStatus OBJECT-TYPE
        SYNTAX  	RowStatus
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Row status."
        ::= { rcStgEntry 23 }


-- STG Port Table

rcStgPortTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcStgPortEntry
        ACCESS        not-accessible
        STATUS        mandatory    
        DESCRIPTION   "A table used to store Spanning Tree Group (STG)
                      port related information.  If a port is 
                      associated with more than one STGs, the port  
                      will have one entry in this table for each STG 
                      it assigned to." 
        ::= { rcStg 5 }
 
rcStgPortEntry OBJECT-TYPE
        SYNTAX        RcStgPortEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "STG Port attributes" 
        INDEX         { rcStgPort, rcStgPortStgId }
        ::= { rcStgPortTable 1 }
 
RcStgPortEntry ::= SEQUENCE {
                  rcStgPort InterfaceIndex,
                  rcStgPortStgId INTEGER,
                  rcStgPortPriority INTEGER,
                  rcStgPortState INTEGER,
                  rcStgPortEnableStp TruthValue,
                  rcStgPortFastStart TruthValue,
                  rcStgPortPathCost INTEGER,
                  rcStgPortDesignatedRoot BridgeId,
                  rcStgPortDesignatedCost INTEGER,
                  rcStgPortDesignatedBridge BridgeId,
                  rcStgPortDesignatedPort OCTET STRING,
                  rcStgPortForwardTransitions Counter,
                  rcStgPortInConfigBpdus Counter,
                  rcStgPortInTcnBpdus Counter,
                  rcStgPortInBadBpdus Counter,
                  rcStgPortOutConfigBpdus Counter,
                  rcStgPortOutTcnBpdus Counter,
		  rcStgPortRowStatus RowStatus
              }

rcStgPort OBJECT-TYPE
        SYNTAX  	InterfaceIndex
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The port number of the port for which this entry
                     	contains Spanning Tree Protocol management
                     	information."
        REFERENCE 	"IEEE 802.1D-1990: Section 6.8.2.1.2"
        ::= { rcStgPortEntry 1 }

rcStgPortStgId OBJECT-TYPE
        SYNTAX  	INTEGER (1..128)
        ACCESS  	read-only
        STATUS  	mandatory
	DESCRIPTION 	"The STG identifier this port is assigned to."
        ::= { rcStgPortEntry 2 }

rcStgPortPriority OBJECT-TYPE
        SYNTAX  	INTEGER (0..255)
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The value of the priority field which is
                     	contained in the first (in network byte order)
                     	octet of the (2 octet long) Port ID.  The other
                     	octet of the Port ID is given by the value of
                     	rcStgPort."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.5.1"
        DEFVAL  { 128 }
        ::= { rcStgPortEntry 3 }

rcStgPortState OBJECT-TYPE
        SYNTAX  	INTEGER {
	                	disabled(1),
       		         	blocking(2),
       	        		listening(3),
		                learning(4),
               		 	forwarding(5),
                		broken(6)
        		}
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The port's current state as defined by
                     	application of the Spanning Tree Protocol.  This
                     	state controls what action a port takes on
                     	reception of a frame.  If the bridge has detected
                     	a port that is malfunctioning it will place that
                     	port into the broken(6) state.  For ports which
                     	are disabled (see rcStgPortEnable), this object
                     	will have a value of disabled(1)."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.5.2"
        ::= { rcStgPortEntry 4 }


rcStgPortEnableStp OBJECT-TYPE
        SYNTAX  	TruthValue
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The enabled/disabled status of the port."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.5.2"
        DEFVAL   { true }
        ::= { rcStgPortEntry 5 }

rcStgPortFastStart OBJECT-TYPE
        SYNTAX     	TruthValue
        ACCESS     	read-write
        STATUS     	mandatory
        DESCRIPTION 	"When this flag is set, the port is moved 
                     	straight to the forwarding(5) state upon 
                     	being enabled."
        DEFVAL  { false }
        ::= { rcStgPortEntry 6 }

rcStgPortPathCost OBJECT-TYPE
        SYNTAX  	INTEGER (1..65535)
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The contribution of this port to the path cost of
                     	paths towards the spanning tree root which include
                     	this port.  802.1D-1990 recommends that the
                     	default value of this parameter be in inverse
                     	proportion to the speed of the attached LAN."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.5.3"
        ::= { rcStgPortEntry 7 }

rcStgPortDesignatedRoot OBJECT-TYPE
        SYNTAX  	BridgeId
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The unique Bridge Identifier of the Bridge
                     	recorded as the Root in the Configuration BPDUs
                     	transmitted by the Designated Bridge for the
                     	segment to which the port is attached."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.5.4"
        ::= { rcStgPortEntry 8 }

rcStgPortDesignatedCost OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The path cost of the Designated Port of the
                     	segment connected to this port.  This value is
                     	compared to the Root Path Cost field in received
                     	bridge PDUs."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.5.5"
        ::= { rcStgPortEntry 9 }

rcStgPortDesignatedBridge OBJECT-TYPE
        SYNTAX  	BridgeId
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The Bridge Identifier of the bridge which this
                     	port considers to be the Designated Bridge for
                     	this port's segment."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.5.6"
        ::= { rcStgPortEntry 10 }

rcStgPortDesignatedPort OBJECT-TYPE
        SYNTAX  	OCTET STRING (SIZE (2))
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The Port Identifier of the port on the Designated
                     	Bridge for this port's segment."
        REFERENCE 	"IEEE 802.1D-1990: Section 4.5.5.7"
        ::= { rcStgPortEntry 11 }

rcStgPortForwardTransitions OBJECT-TYPE
        SYNTAX  	Counter
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The number of times this port has transitioned
                     	from the Learning state to the Forwarding state."
        ::= { rcStgPortEntry 12 }

rcStgPortInConfigBpdus OBJECT-TYPE
        SYNTAX  	Counter
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The number of Config BPUDs received by
                     	this port."
        ::= { rcStgPortEntry 13 }

rcStgPortInTcnBpdus OBJECT-TYPE
        SYNTAX  	Counter
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The number of Topology Change Notification
                     	BPUDs received by this port."
        ::= { rcStgPortEntry 14 }

rcStgPortInBadBpdus OBJECT-TYPE
        SYNTAX  	Counter
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The number of Bad BPUDs received by this port."
        ::= { rcStgPortEntry 15 }

rcStgPortOutConfigBpdus OBJECT-TYPE
        SYNTAX  	Counter
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The number of Config BPUDs transmitted by this port."
        ::= { rcStgPortEntry 16 }


rcStgPortOutTcnBpdus OBJECT-TYPE
        SYNTAX  	Counter
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The number of Topology Change Notification
                     	BPUDs transmitted by this port."
        ::= { rcStgPortEntry 17 }

rcStgPortRowStatus OBJECT-TYPE
        SYNTAX  	RowStatus
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Row status."
        ::= { rcStgPortEntry 18 }

-- rcBridge Group
-- Forwarding Database for Transparent Bridges

rcBridgeFdbTable OBJECT-TYPE
	SYNTAX  	SEQUENCE OF RcBridgeFdbEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"This table is an replacement to the standard 
                     	dot1dTpFdbTable in rfc1493."
	::= { rcBridge 1 }

rcBridgeFdbEntry OBJECT-TYPE
	SYNTAX  	RcBridgeFdbEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
        DESCRIPTION 	"Information about a specific unicast MAC address
                     	for which the bridge has some forwarding information."
	INDEX { rcBridgeFdbStatus, rcBridgeFdbAddress }
	::= { rcBridgeFdbTable 1 }

RcBridgeFdbEntry ::=
	SEQUENCE {
                  rcBridgeFdbStatus INTEGER,
                  rcBridgeFdbAddress MacAddress,
                  rcBridgeFdbPort InterfaceIndex,
                  rcBridgeFdbMonitor TruthValue,
                  rcBridgeFdbPriority INTEGER
                 }
 
rcBridgeFdbStatus OBJECT-TYPE
        SYNTAX  	INTEGER {
			      other(1),
			      invalid(2),
			      learned(3),
			      self(4),
			      mgmt(5)
			  }
        ACCESS 	 	read-only
        STATUS 	 	mandatory
        DESCRIPTION 	"This object indicates the status of this entry."
        ::= { rcBridgeFdbEntry 1 }

rcBridgeFdbAddress OBJECT-TYPE
        SYNTAX  	MacAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"A unicast MAC address for which the bridge 
	             	has forwarding and/or filtering information."
        REFERENCE "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
        ::= { rcBridgeFdbEntry 2 }

rcBridgeFdbPort OBJECT-TYPE
        SYNTAX  	InterfaceIndex
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"Either the value '0', or the port number of the
      	             	port on which a frame having a source address
		        equal to the value of the corresponding instance
		        of rcBridgeFdbAddress has been seen.  A value of
		        '0' indicates that the port number has not been
		        learned but that the bridge does have some
		        forwarding/filtering information about this
		        address (e.g. in the dot1dStaticTable).
		        Implementors are encouraged to assign the port
		        value to this object whenever it is learned even
		        for addresses for which the corresponding value of
		        rcBridgeFdbStatus is not learned(3)."
        ::= { rcBridgeFdbEntry 3 }

rcBridgeFdbMonitor OBJECT-TYPE
        SYNTAX  	TruthValue
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Used to indicate whether monitoring should be
      	             	performed on this unicast MAC address.  If
	             	monitoring is enabled, any packet received
	             	with a matching destination MAC address
	             	will be forwarded to the port configured to
	             	receive monitor traffic."
        ::= { rcBridgeFdbEntry 4 }

rcBridgeFdbPriority OBJECT-TYPE
        SYNTAX  	INTEGER {
				low(0),
		            	high(1)
		        }
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION   	"Used to indicate the priority of the incoming
                       	frames with this destination Mac Address."
        DEFVAL { low }
        ::= { rcBridgeFdbEntry 5 }

rcBridgeFdbTblSize OBJECT-TYPE  
        SYNTAX         	INTEGER  
        ACCESS         	read-only  
        STATUS        	mandatory  
        DESCRIPTION   	"Used to indicate the number of entries in 
                       	the bridge forwarding database table."    
        ::= { rcBridge 2 }


-- The Static (Destination-Address) Database
 
rcBridgeStaticTable OBJECT-TYPE
	SYNTAX  	SEQUENCE OF RcBridgeStaticEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"This table is a proprietary replacement to the standard
                     	dot1dStaticTable in rfc1493."
	::= { rcBridge 3 }
 
rcBridgeStaticEntry OBJECT-TYPE
	SYNTAX  	RcBridgeStaticEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
   	DESCRIPTION 	"A table containing forwarding information about unicast
                     	entries configured into the bridge by management. This
                     	information is used by the transparent bridging function
                     	in determining how to propagate a received frame."
	INDEX   { rcBridgeStaticAddress, rcBridgeStaticPort }
              ::= { rcBridgeStaticTable 1 }
 
RcBridgeStaticEntry ::=
SEQUENCE {
	  rcBridgeStaticAddress  MacAddress,
	  rcBridgeStaticPort     InterfaceIndex,
	  rcBridgeStaticMonitor  TruthValue,
	  rcBridgeStaticPriority INTEGER,
	  rcBridgeStaticStatus   INTEGER
	 }

rcBridgeStaticAddress OBJECT-TYPE
        SYNTAX  	MacAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The MAC address of this entry." 
        ::= { rcBridgeStaticEntry 1 }

rcBridgeStaticPort OBJECT-TYPE
        SYNTAX  	InterfaceIndex
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"Port on which the MAC address is found."
        ::= { rcBridgeStaticEntry 2 }
 
rcBridgeStaticMonitor OBJECT-TYPE
        SYNTAX  	TruthValue 
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Used to indicate whether monitoring should be
		     	performed on incoming packets that match this
		     	entry."
        ::= { rcBridgeStaticEntry 3 }

rcBridgeStaticPriority OBJECT-TYPE
        SYNTAX  	INTEGER {
           			low(0),
			        high(1)
		        }
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Used to indicate forwarding priority of incoming 
        	     	packets that match this entry." 
        DEFVAL { low }
        ::= { rcBridgeStaticEntry 4 }

rcBridgeStaticStatus OBJECT-TYPE
       	SYNTAX  	INTEGER {
			    other(1),
			    invalid(2),
			    permanent(3),
			    deleteOnReset(4),
			    deleteOnTimeout(5)
       		        }
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION   	"This object indicates the status of this 
                       	entry. The default value is permanent(3)."
        ::= { rcBridgeStaticEntry 5 }

rcBridgeStaticTblSize OBJECT-TYPE  
        SYNTAX        	INTEGER  
        ACCESS        	read-only  
        STATUS        	mandatory  
        DESCRIPTION   	"Used to indicate the number of entries in 
                       	the bridge static table."    
        ::= { rcBridge 4 }

-- The filtering (Destination-Address) Database

rcBridgeFilterTable OBJECT-TYPE
	SYNTAX  	SEQUENCE OF RcBridgeFilterEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"This table is a proprietary replacement to the standard
                     	dot1dStaticTable (Filtering information) in rfc1493."
	::= { rcBridge 5 }
 
rcBridgeFilterEntry OBJECT-TYPE
	SYNTAX  	RcBridgeFilterEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"A table containing filtering information configured into
                     	the bridge by management specifying a destination address
                     	on a specific port and a set of incoming ports. Frames 
                     	received from one of the incoming ports and containing 
		     	the specific destination addresses are not allowed to be
		     	forwarded."
	INDEX   { rcBridgeFilterAddress, rcBridgeFilterPort }
        ::= { rcBridgeFilterTable 1 }
 
RcBridgeFilterEntry ::=
        SEQUENCE {
	     rcBridgeFilterAddress        MacAddress,
	     rcBridgeFilterPort           InterfaceIndex,
	     rcBridgeFilterNotAllowedFrom OCTET STRING,
	     rcBridgeFilterStatus         INTEGER
        }

rcBridgeFilterAddress OBJECT-TYPE
        SYNTAX  	MacAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The MAC address of this entry.  This address is used
		     	to match the destination address of incoming packets."
        ::= { rcBridgeFilterEntry 1 }
 
rcBridgeFilterPort OBJECT-TYPE
        SYNTAX  	InterfaceIndex
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"Port on which this MAC address is found."
        ::= { rcBridgeFilterEntry 2 }
 
rcBridgeFilterNotAllowedFrom OBJECT-TYPE
        SYNTAX  	OCTET STRING (SIZE(32))
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Used to indicate a set of ports.  Traffic arriving
		     	on any of the specified ports is not forwarded to this 
                     	MAC address."
        ::= { rcBridgeFilterEntry 3 }

rcBridgeFilterStatus OBJECT-TYPE
        SYNTAX  	INTEGER {
		               other(1),
       		               invalid(2),
       		               permanent(3),
       		               deleteOnReset(4),
       		               deleteOnTimeout(5)
       	         	}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"This object indicates the status of this 
                     	entry. The default value is permanent(3)."
        ::= { rcBridgeFilterEntry 4 }

rcBridgeFilterTblSize OBJECT-TYPE  
        SYNTAX        	INTEGER  
        ACCESS        	read-only  
        STATUS        	mandatory  
        DESCRIPTION   	"Used to indicate the number of entries in 
                       	the bridge filter table."    
        ::= { rcBridge 6 }


-- rcBoot Group
rcBootFlashSwVersion OBJECT-TYPE
        SYNTAX        DisplayString
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "BootFlashSwVersion indicates the software
                      version in the Flash."
        ::= { rcBoot 1 } 
 
rcBootPcmciaSwVersion OBJECT-TYPE
        SYNTAX        DisplayString
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "BootPcmciaSwVersion indicate the software
                      version in the Pcmcia card."
        ::= { rcBoot 2 } 
 

rcBootLastBootSource OBJECT-TYPE
        SYNTAX        DisplayString
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Indicates the boot source of the last
                      the system boot."
        ::= { rcBoot 3 } 
 
rcBootPrimary OBJECT-TYPE
        SYNTAX          INTEGER {
                           flash(1),
                           pcmcia(2),
                           net(3),
                           skip(4)
                        }
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"BootPrimary is indicator for the
                     	primary source to boot the system."
	DEFVAL 		{ flash }
        ::= { rcBoot 4 } 
 
rcBootSecondary OBJECT-TYPE
        SYNTAX          INTEGER {
                           flash(1),
                           pcmcia(2),
                           net(3),
                           skip(4)
                        }
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"BootSecondary indicates the second choice
                        of the boot source."
	DEFVAL 		{ pcmcia }
        ::= { rcBoot 5 } 
 
rcBootTertiary OBJECT-TYPE
        SYNTAX          INTEGER {
                           flash(1),
                           pcmcia(2),
                           net(3),
                           skip(4)
                        }
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"BootTertiary indicates the third choice 
                        of boot source."
	DEFVAL 		{ net }
        ::= { rcBoot 6 } 
 

-- rcWeb related information

rcWebEnableServer OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Control whether the web server should be enabled.
		      Setting this variable to true will make the server
		      operational.  Setting this variable to false will
		      disable server."
        DEFVAL        { false }
        ::= { rcWeb 1 }

rcWebRWAUserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name for the read-write-all web-server account."
        ::= { rcWeb 2 }

rcWebRWAPassword OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Password for the read-write-all web-server account."
        ::= { rcWeb 3 }

rcWebRWUserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name for the read-write all web-server account."
        ::= { rcWeb 4 }
 
rcWebRWPassword OBJECT-TYPE 
        SYNTAX        DisplayString (SIZE (0..20)) 
        ACCESS        read-write 
        STATUS        mandatory 
        DESCRIPTION   "Password for the read-write all web-server account." 
        ::= { rcWeb 5 } 

rcWebROUserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name for the read-only web-server account."
        ::= { rcWeb 6 }
 
rcWebROPassword OBJECT-TYPE 
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write 
        STATUS        mandatory 
        DESCRIPTION   "Password for the read-only web-server account." 
        ::= { rcWeb 7 } 

rcWebLastChange OBJECT-TYPE 
        SYNTAX        TimeTicks 
        ACCESS        read-only 
        STATUS        mandatory 
        DESCRIPTION   "Last web-browser initiated configuration
                      change since sysUpTime."
        ::= { rcWeb 8 }
 
rcWebNumHits OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Number of hits to the web-server"
	::= { rcWeb 9 } 

rcWebNumAccessChecks OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Number of access checks performed by the web-server"
        ::= { rcWeb 10 }

rcWebNumAccessBlocks OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Number of accesses blocked by the web-server"
        ::= { rcWeb 11 }

rcWebNumRxErrors OBJECT-TYPE 
        SYNTAX        INTEGER 
        ACCESS        read-only 
        STATUS        mandatory 
        DESCRIPTION   "Number of receive errors encountered by the web-server" 
        ::= { rcWeb 12 }

rcWebNumTxErrors OBJECT-TYPE 
        SYNTAX        INTEGER 
        ACCESS        read-only 
        STATUS        mandatory 
        DESCRIPTION   "Number of transmit errors encountered by the web-server" 
        ::= { rcWeb 13 }

rcWebNumSetRequest OBJECT-TYPE 
        SYNTAX        INTEGER 
        ACCESS        read-only 
        STATUS        mandatory 
        DESCRIPTION   "Number of set-request to the web-server" 
        ::= { rcWeb 14 }

-- Error Group
 
rcErrorLevel OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Error level indicator for the last error
                      reported in the system.  The meaning of
		      this value are :

			0 = Informative Information
			1 = Warning Condition
			2 = Error Condition
			3 = Manufacturing Information
			4 = Fatal Condition
		      "
        ::= { rcError 1 } 
 
rcErrorCode OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Error code indicator for the last error
                      reported in the system.  This is an encoded
		      value that identifies the software module
		      that generated the error message as well as
                      a specific error condition within that module.
		      This value is transparent to the user.  This
		      value is intended to help Accelar support and
		      development staff to isolate system problems."
        ::= { rcError 2 }

rcErrorText OBJECT-TYPE
        SYNTAX        DisplayString
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Error string of the last error reported 
                      in the system."
        ::= { rcError 3 }

rcErrorReturnCode OBJECT-TYPE
        SYNTAX        INTEGER {
			 none(100),
			 resourceNotAvailable(101),
			 operationNotAllowed(102),
			 operationInProgress(103),
			 invalidPortNumber(104),
			 invalidSubnetAddress(105),
			 invalidSubnetMask(106),
			 invalidVlanId(107),
			 invalidVlanName(108),
			 invalidVlanType(109),
			 invalidStgId(110),
			 invalidProtocolId(111),
			 invalidPortMembers(112),
			 invalidStaticMembers(113),
			 invalidNotAllowedMembers(114),
			 destinationNotReachable(115),
			 tableIsFull(116),
			 nondualConnectorGigPort(117),
			 testIdNotPresent(118),
			 invalidTestId(119),
			 invalidStatusChange(120),
			 invalidCpuCard(121),
			 invalidSrcPortChoice(122),
			 dstPortUnspecified(123),
			 srcPortOneUnspecified(124),
			 srcPortTwoUnspecified(125),
			 notSupported(126),
			 userNameIsNonUnique(127),
                         cannotModifyThisField(130),
                         invalidUserPasswordLength(131),
                         thisUsernameExists(132),
                         invalidIpAddress(133),
                         invalidMacAddress(134),
                         nosuchEntry(135),
			 anotherLoopBackTestAlreadyRunning(136),
			 protocolIdNotRoutable(137),
			 autoNegotiateIsOn(138),
			 noActionSpecified(139),
			 invalidActionSpecified(140),
                         cannotModifyAutoNegotiateIsOn(141),
                         cannotModifyAutoPortIsFiber(142),
                         autoNegotiationNotSupported(143),
                         cannotSetAdminSpeed(144),
                         cannotSetAdminDuplex(145),
                         ospfRtrDeadIntIsnotMultOfHelloInt(146),
                         ospfRtrDeadIntLessThan4TimesHelloInt(147),
                         notUsed1(148),
                         ospfBadAuthValue(149),
                         ospfEnabled(150),
                         ospfAreaNotFound(151),
                         ospfBackboneArea(152),
                         notUsed2(153),
                         ospfInvalidAreaRangeMask(154),
                         ospfDuplicateEntry(155),
                         ospfRangeNotAllocated(156),
                         ospfAreaRangeNotFound(157),
                         notUsed3(158),
			 nvramLimitExceeded(159),
			 flowAlreadyExist(160),
			 flowNotFound(161),
		 	 duplicateIpAddress(163),
		 	 conflictingIpAddress(164),
			 invalidRouteCost(165),
			 invalidNextHop(166),
			 duplicateRoute(167),
			 cannotFindRoute(168),
			 cannotDeleteLocalRoute(169)
		      }
        ACCESS        read-only
        STATUS        mandatory
 	DESCRIPTION   "This variable is used primarily as an enumeration
		      to list the proprietary return codes that this
		      device can send to a management station in
		      response to a failed SNMP operation."
	DEFVAL	      { none }
        ::= { rcError 4 }

rcErrorSendTrap OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Indicates whether to send trap upon receiving an
                      error in the system."
	DEFVAL	      { true }
        ::= { rcError 5 }


-- TRAPS

rcCardDown NOTIFICATION-TYPE
        OBJECTS      { rcCardIndex, rcCardAdminStatus, rcCardOperStatus }
        STATUS       current
        DESCRIPTION  "A rcCardDown trap signifies that the SNMPv2 entity,
                     acting in an agent role, has detected that the
                     rcCardOperStatus object for one of its cards 
                     is about to transition into the down state."
        ::= { rcTraps 1 }

rcCardUp NOTIFICATION-TYPE
        OBJECTS       { rcCardIndex, rcCardAdminStatus, rcCardOperStatus }
        STATUS        current
        DESCRIPTION   "A rcCardUp trap signifies that the SNMPv2 entity,
                      acting in an agent role, has detected that the
                      rcCardOperStatus object for one of its cards 
                      is about to transition into the up state."
        ::= { rcTraps 2 }

rcErrorNotification NOTIFICATION-TYPE
        OBJECTS       { rcErrorLevel, rcErrorCode, rcErrorText }
        STATUS        current
        DESCRIPTION   "A rcErrorNotification trap signifies that the 
                      SNMPv2 entity, acting in an agent role, has 
                      detected that an error condition has occured."
        ::= { rcTraps 3 }
 
rcStpNewRoot NOTIFICATION-TYPE
        OBJECTS       { rcStgId }
        STATUS        current
        DESCRIPTION   "A rcStpNewRoot trap signifies that the
                      SNMPv2 entity, acting in an agent role, has
                      detected the Spanning Tree Protocol has declared
                      the device to be the new root of the spanning 
       		      tree." 
        ::= { rcTraps 4 }

rcStpTopologyChange NOTIFICATION-TYPE
       OBJECTS        { rcStgId, rcPortIndex }
       STATUS         current   
       DESCRIPTION    "A rcStpTopologyChange trap signifies that the 
                      SNMPv2 entity, acting in an agent role, has 
                      detected the Spanning Tree Protocol has gone due
                      a topology change event."
       ::= { rcTraps 5 }

rcChasPowerSupplyDown NOTIFICATION-TYPE
        OBJECTS       { rcChasPowerSupplyId, rcChasPowerSupplyOperStatus}
        STATUS        current
        DESCRIPTION   "A rcChasPowerSupplyDown trap signifies that the 
                      SNMPv2 entity, acting in an agent role, has 
                      detected that the rcChasPowerSupplyOperStatus 
                      object for one of its power supply unit is 
                      about to transition into the down state."
        ::= { rcTraps 6 }

rcChasFanDown NOTIFICATION-TYPE
        OBJECTS       { rcChasFanId, rcChasFanOperStatus}
        STATUS        current
        DESCRIPTION   "A rcChasFanDown trap signifies that the 
                      SNMPv2 entity, acting in an agent role, has 
                      detected that the rcChasFanOperStatus object 
                      for one of its power supply unit is about to 
                      transition into the down state."
        ::= { rcTraps 7 }

END

