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
               RFC1269-MIB DEFINITIONS ::= BEGIN

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

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

               bgp     OBJECT IDENTIFIER ::= { mib-2 15 }

               bgpVersion OBJECT-TYPE
                    SYNTAX OCTET STRING
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "Vector of supported BGP protocol version
                         numbers. Each peer negotiates the version from
                         this vector.  Versions are identified via the
                         string of bits contained within this object.
                         The first octet contains bits 0 to 7, the
                         second octet contains bits 8 to 15, and so on,
                         with the most significant bit referring to the
                         lowest bit number in the octet (e.g., the MSB
                         of the first octet refers to bit 0).  If a bit,
                         i, is present and set, then the version (i+1)
                         of the BGP is supported."
                    ::= { bgp 1 }

               bgpLocalAs OBJECT-TYPE
                    SYNTAX INTEGER (0..65535)
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The local autonomous system number."
                    ::= { bgp 2 }

               bgpPeerTable OBJECT-TYPE
                    SYNTAX SEQUENCE OF BgpPeerEntry
                    ACCESS not-accessible
                    STATUS mandatory
                    DESCRIPTION
                         "The bgp peer table."
                    ::= { bgp 3 }

               bgpIdentifier OBJECT-TYPE
                    SYNTAX IpAddress
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The BGP Identifier of local system."
                    ::= { bgp 4 }

               bgpPeerEntry OBJECT-TYPE
                    SYNTAX BgpPeerEntry
                    ACCESS not-accessible
                    STATUS mandatory
                    DESCRIPTION
                         "Information about a BGP peer connection."
                    INDEX
                         { bgpPeerRemoteAddr }
                        ::= { bgpPeerTable 1 }

               BgpPeerEntry ::= SEQUENCE {
                    bgpPeerIdentifier
                         IpAddress,
                    bgpPeerState
                         INTEGER,
                    bgpPeerAdminStatus
                         INTEGER,
                    bgpPeerNegotiatedVersion
                         INTEGER,
                    bgpPeerLocalAddr
                         IpAddress,
                    bgpPeerLocalPort
                         INTEGER,
                    bgpPeerRemoteAddr
                         IpAddress,
                    bgpPeerRemotePort
                         INTEGER,
                    bgpPeerRemoteAs
                         INTEGER,
                    bgpPeerInUpdates
                         Counter,
                    bgpPeerOutUpdates
                         Counter,
                    bgpPeerInTotalMessages
                         Counter,
                    bgpPeerOutTotalMessages
                         Counter,
                    bgpPeerLastError
                         OCTET STRING
                    }

               bgpPeerIdentifier OBJECT-TYPE
                    SYNTAX IpAddress
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The BGP Identifier of this entry's BGP peer."
                    ::= { bgpPeerEntry 1 }

               bgpPeerState OBJECT-TYPE
                    SYNTAX INTEGER {
                         idle(1),
                         connect(2),
                         active(3),
                         opensent(4),
                         openconfirm(5),
                         established(6)
                    }
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The bgp peer connection state. "
                    ::= { bgpPeerEntry 2 }

               bgpPeerAdminStatus OBJECT-TYPE
                    SYNTAX INTEGER
                    ACCESS read-write
                    STATUS mandatory
                    DESCRIPTION
                         "The desired state of the BGP connection. A
                         transition from 'stop' to 'start' will cause
                         the BGP Start Event to be generated. A
                         transition from 'start' to 'stop' will cause
                         the BGP Stop Event to be generated. This
                         parameter can be used to restart BGP peer
                         connections.  Care should be used in providing
                         write access to this object without adequate
                         authentication."
                    ::= { bgpPeerEntry 3 }

               bgpPeerNegotiatedVersion OBJECT-TYPE
                    SYNTAX INTEGER
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The negotiated version of BGP running between
                         the two peers. "
                    ::= { bgpPeerEntry 4 }

               bgpPeerLocalAddr OBJECT-TYPE
                    SYNTAX IpAddress
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The local IP address of this entry's BGP
                         connection."
                    ::= { bgpPeerEntry 5 }

               bgpPeerLocalPort OBJECT-TYPE
                    SYNTAX INTEGER (0..65535)
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The local port for the TCP connection between
                         the BGP peers."
                    ::= { bgpPeerEntry 6 }

               bgpPeerRemoteAddr OBJECT-TYPE
                    SYNTAX IpAddress
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The remote IP address of this entry's BGP
                         peer."
                    ::= { bgpPeerEntry 7 }

               bgpPeerRemotePort OBJECT-TYPE
                    SYNTAX INTEGER (0..65535)
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The remote port for the TCP connection between
                         the BGP peers.  Note that the objects
                         bgpLocalAddr, bgpLocalPort, bgpRemoteAddr and
                         bgpRemotePort provide the appropriate reference
                         to the standard MIB TCP connection table."
                    ::= { bgpPeerEntry 8 }

               bgpPeerRemoteAs OBJECT-TYPE
                    SYNTAX INTEGER (0..65535)
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The remote autonomous system number."
                    ::= { bgpPeerEntry 9 }

               bgpPeerInUpdates OBJECT-TYPE
                    SYNTAX Counter
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The number of BGP UPDATE messages received on
                         this connection. This object should be
                         initialized to zero when the connection is
                         established."
                    ::= { bgpPeerEntry 10 }

               bgpPeerOutUpdates OBJECT-TYPE
                    SYNTAX Counter
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The number of BGP UPDATE messages received on
                         this connection. This object should be
                         initialized to zero when the connection is
                         established."
                    ::= { bgpPeerEntry 11}

               bgpPeerInTotalMessages OBJECT-TYPE
                    SYNTAX Counter
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The total number of messages received from the
                         remote peer on this connection. This object
                         should be initialized to zero when the
                         connection is established."
                    ::= { bgpPeerEntry 12 }

               bgpPeerOutTotalMessages OBJECT-TYPE
                    SYNTAX Counter
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The total number of messages transmitted to
                         the remote peer on this connection. This object
                         should be initialized to zero when the
                         connection is established."
                    ::= { bgpPeerEntry 13 }

               bgpPeerLastError OBJECT-TYPE
                    SYNTAX OCTET STRING (SIZE (2))
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The last error code and subcode seen by this
                         peer on this connection. If no error has
                         occurred, this field is zero. Otherwise, the
                         first byte of this two byte OCTET STRING
                         contains the error code; the second contains
                         the subcode."
                    ::= { bgpPeerEntry 14 }

               bgpRcvdPathAttrTable OBJECT-TYPE
                    SYNTAX SEQUENCE OF BgpPathAttrEntry
                    ACCESS not-accessible
                    STATUS mandatory
                    DESCRIPTION
                         "The BGP Received Path Attribute Table contains
                         information about paths to destination networks
                         received by all peers."
                    ::= { bgp 5 }

               bgpPathAttrEntry OBJECT-TYPE
                    SYNTAX BgpPathAttrEntry
                    ACCESS not-accessible
                    STATUS mandatory
                    DESCRIPTION
                         "Information about a path to a network."
                    INDEX
                         { bgpPathAttrDestNetwork,
                           bgpPathAttrPeer }
                    ::= { bgpRcvdPathAttrTable 1 }

               BgpPathAttrEntry ::= SEQUENCE {
                    bgpPathAttrPeer
                         IpAddress,
                    bgpPathAttrDestNetwork
                         IpAddress,
                    bgpPathAttrOrigin
                         INTEGER,
                    bgpPathAttrASPath
                         OCTET STRING,
                    bgpPathAttrNextHop
                         IpAddress,
                    bgpPathAttrInterASMetric
                         INTEGER
                    }

               bgpPathAttrPeer OBJECT-TYPE
                    SYNTAX IpAddress
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The IP address of the peer where the path
                         information
                          was learned."
                    ::= { bgpPathAttrEntry 1 }

               bgpPathAttrDestNetwork OBJECT-TYPE
                    SYNTAX IpAddress
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The address of the destination network."
                    ::= { bgpPathAttrEntry 2 }

               bgpPathAttrOrigin OBJECT-TYPE
                    SYNTAX INTEGER {
                         igp(1),-- networks are interior
                         egp(2),-- networks learned via EGP
                         incomplete(3) -- undetermined
                    }
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The ultimate origin of the path information."
                    ::= { bgpPathAttrEntry 3 }

               bgpPathAttrASPath OBJECT-TYPE
                    SYNTAX OCTET STRING
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The set of ASs that must be traversed to reach
                         the network. ( This object is probably best
                         represented as SEQUENCE OF INTEGER. For SMI
                         compatibility, though, it is represented as
                         OCTET STRING. Each AS is represented as a pair
                         of octets according to the following algorithm:

                              first-byte-of-pair = ASNumber / 256;
                              second-byte-of-pair = ASNumber & 255;"
                    ::= { bgpPathAttrEntry 4 }

               bgpPathAttrNextHop OBJECT-TYPE
                    SYNTAX IpAddress
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The address of the border router that should
                         be used for the destination network."
                    ::= { bgpPathAttrEntry 5 }

               bgpPathAttrInterASMetric OBJECT-TYPE
                    SYNTAX INTEGER
                    ACCESS read-only
                    STATUS mandatory
                    DESCRIPTION
                         "The optional inter-AS metric. If this
                         attribute has not been provided for this route,
                         the value for this object is 0."
                    ::= { bgpPathAttrEntry 6 }

               bgpEstablished TRAP-TYPE
                    ENTERPRISE   bgp
                    VARIABLES  { bgpPeerRemoteAddr,
                              bgpPeerLastError,
                              bgpPeerState }
                    DESCRIPTION
                         "The BGP Established event is generated when
                         the BGP FSM enters the ESTABLISHED state. "
                    ::= 1
               bgpBackwardTransition TRAP-TYPE
                    ENTERPRISE   bgp
                    VARIABLES  { bgpPeerRemoteAddr,
                              bgpPeerLastError,
                              bgpPeerState }
                    DESCRIPTION
                         "The BGPBackwardTransition Event is generated
                         when the BGP FSM moves from a higher numbered
                         state to a lower numbered state."
                    ::= 2
               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-MIB DEFINITIONS ::= BEGIN

    IMPORTS
            MODULE-IDENTITY, Counter32, Gauge32,
            Integer32 
                FROM SNMPv2-SMI
            OBJECT-TYPE 
		FROM RFC1212
            IpAddress
		FROM RFC1155-SMI
            DisplayString
		FROM RFC1213-MIB
            TruthValue, RowStatus
                FROM SNMPv2-TC
            MODULE-COMPLIANCE, OBJECT-GROUP          FROM SNMPv2-CONF
            mib-2                                    FROM RFC1213-MIB;

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

ospf 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 the OSPF Version 2
       Protocol"
    ::= { 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 ::= Integer32 (0..'FFFF'h)

BigMetric ::= Integer32 (0..'FFFFFF'h)

--  Status Values
--  The status of an interface: 'enabled' indicates that
--  it is willing to communicate with other OSPF Routers,
--  while 'disabled' indicates that it is not."
Status ::= INTEGER { enabled (1), disabled (2) }

--  Time Durations measured in seconds
--  "A positive integer. Values in excess are precluded as
--  unnecessary and prone to interoperability issues."
PositiveInteger ::= Integer32 (0..'7FFFFFFF'h)

-- "The range of intervals on which hello messages are exchanged."

HelloRange ::= Integer32 (1..'FFFF'h)

-- "The values that one might find or configure for
-- variables bounded by the maximum age of an LSA."

UpToMaxAge ::= Integer32 (0..3600)


--  The range of ifIndex
InterfaceIndex ::= Integer32


--  Potential Priorities for the Designated Router Election
--  "The values defined for the priority of a system for 
--  becoming the designated router."
DesignatedRouterPriority ::= Integer32 (0..'FF'h)

-- "Type of Service is defined as a mapping to the IP Type of
-- Service Flags as defined in the IP Forwarding Table MIB
--       +-----+-----+-----+-----+-----+-----+-----+-----+
--       |                 |                       |     |
--       |   PRECEDENCE    |    TYPE OF SERVICE    |  0  |
--       |                 |                       |     |
--       +-----+-----+-----+-----+-----+-----+-----+-----+

--                IP TOS                IP TOS
--           Field     Policy      Field     Policy

--          Contents    Code      Contents    Code
--           0 0 0 0  ==>   0      0 0 0 1  ==>   2
--           0 0 1 0  ==>   4      0 0 1 1  ==>   6
--           0 1 0 0  ==>   8      0 1 0 1  ==>  10
--           0 1 1 0  ==>  12      0 1 1 1  ==>  14
--           1 0 0 0  ==>  16      1 0 0 1  ==>  18
--           1 0 1 0  ==>  20      1 0 1 1  ==>  22
--           1 1 0 0  ==>  24      1 1 0 1  ==>  26
--           1 1 1 0  ==>  28      1 1 1 1  ==>  30

--       The remaining values are left for future definition."

TOSType ::= Integer32 (0..30)


--  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  inter-
           face;  'disabled'  disables  it  on  all inter-
           faces."
       ::= { ospfGeneralGroup 2 }

    ospfVersionNumber OBJECT-TYPE
        SYNTAX   INTEGER    { version2 (2) }
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The mandatory version number of the OSPF  proto-
           col 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  config-
           ured as an Autonomous System border router."
       REFERENCE
          "OSPF Version 2, Section 3.3  Classification  of
          routers"
      ::= { ospfGeneralGroup 5 }

    ospfExternLsaCount OBJECT-TYPE
        SYNTAX   Gauge32
        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   Integer32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The 32-bit unsigned sum of the LS checksums of
           the  external  link-state  advertisements  con-
           tained 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 rout-
           ing."
       REFERENCE
          "OSPF Version 2,  Appendix  F.1.2  Optional  TOS
          support"
      ::= { ospfGeneralGroup 8 }

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

    ospfRxNewLsas OBJECT-TYPE
        SYNTAX   Counter32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The number of  link-state  advertisements  re-
           ceived  determined  to  be  new instantiations.
           This number does not include  newer  instantia-
           tions  of self-originated link-state advertise-
           ments."
       ::= { ospfGeneralGroup 10 }

    ospfExtLsdbLimit OBJECT-TYPE
        SYNTAX   Integer32 (-1..'7FFFFFFF'h)
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "The  maximum   number   of   non-default   AS-
           external-LSAs entries that can be stored in the
           link-state database.  If the value is -1,  then
           there is no limit.

           When the number of non-default AS-external-LSAs
           in   a  router's  link-state  database  reaches
           ospfExtLsdbLimit, the router  enters  Overflow-
           State.   The   router  never  holds  more  than
           ospfExtLsdbLimit  non-default  AS-external-LSAs
           in  its  database. OspfExtLsdbLimit MUST be set
           identically in all routers attached to the OSPF
           backbone  and/or  any regular OSPF area. (i.e.,
           OSPF stub areas and NSSAs are excluded)."
       DEFVAL { -1 }
       ::= { ospfGeneralGroup 11 }

    ospfMulticastExtensions OBJECT-TYPE
        SYNTAX   Integer32
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "A Bit Mask indicating whether  the  router  is
           forwarding  IP  multicast  (Class  D) datagrams
           based on the algorithms defined in  the  Multi-
           cast Extensions to OSPF.

           Bit 0, if set, indicates that  the  router  can
           forward  IP multicast datagrams in the router's
           directly attached areas (called intra-area mul-
           ticast routing).

           Bit 1, if set, indicates that  the  router  can
           forward  IP  multicast  datagrams  between OSPF
           areas (called inter-area multicast routing).

           Bit 2, if set, indicates that  the  router  can
           forward  IP  multicast  datagrams between Auto-
           nomous Systems (called inter-AS multicast rout-
           ing).

           Only certain combinations of bit  settings  are
           allowed,  namely: 0 (no multicast forwarding is
           enabled), 1 (intra-area multicasting  only),  3
           (intra-area  and  inter-area  multicasting),  5
           (intra-area and inter-AS  multicasting)  and  7
           (multicasting  everywhere). By default, no mul-
           ticast forwarding is enabled."
       DEFVAL { 0 }
       ::= { ospfGeneralGroup 12 }

    ospfExitOverflowInterval OBJECT-TYPE
        SYNTAX   PositiveInteger
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "The number of  seconds  that,  after  entering
           OverflowState,  a  router will attempt to leave
           OverflowState. This allows the router to  again
           originate  non-default  AS-external-LSAs.  When
           set to 0, the router will not  leave  Overflow-
           State until restarted."
       DEFVAL { 0 }
       ::= { ospfGeneralGroup 13 }

    ospfDemandExtensions OBJECT-TYPE
        SYNTAX   TruthValue
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "The router's support for demand routing."
       REFERENCE
          "OSPF Version 2, Appendix on Demand Routing"
      ::= { ospfGeneralGroup 14 }


--      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  parame-
           ters  and cumulative statistics of the router's
           attached areas."
       REFERENCE
          "OSPF Version 2, Section 6  The Area Data Struc-
          ture"
      ::= { ospf 2 }


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

OspfAreaEntry ::=
    SEQUENCE {
        ospfAreaId
            AreaID,
        ospfAuthType
            Integer32,
        ospfImportAsExtern
            INTEGER,
        ospfSpfRuns
            Counter32,
        ospfAreaBdrRtrCount
            Gauge32,
        ospfAsBdrRtrCount
            Gauge32,
        ospfAreaLsaCount
            Gauge32,
        ospfAreaLsaCksumSum
            Integer32,
        ospfAreaSummary
            INTEGER,
        ospfAreaStatus
            RowStatus
              }

    ospfAreaId OBJECT-TYPE
        SYNTAX   AreaID
        ACCESS   read-only
        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   Integer32
                    -- none (0),
                    -- simplePassword (1)
                    -- md5 (2)
                    -- reserved for specification by IANA (> 2)
        ACCESS   read-write
        STATUS   obsolete
        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   INTEGER    {
                    importExternal (1),
                    importNoExternal (2),
                    importNssa (3)
                  }
        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 { importExternal }
      ::= { ospfAreaEntry 3 }


    ospfSpfRuns OBJECT-TYPE
        SYNTAX   Counter32
        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   Gauge32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The total number of area border routers reach-
           able within this area.  This is initially zero,
           and is calculated in each SPF Pass."
       ::= { ospfAreaEntry 5 }

    ospfAsBdrRtrCount OBJECT-TYPE
        SYNTAX   Gauge32
        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."
       ::= { ospfAreaEntry 6 }

    ospfAreaLsaCount OBJECT-TYPE
        SYNTAX   Gauge32
        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."
       ::= { ospfAreaEntry 7 }

    ospfAreaLsaCksumSum OBJECT-TYPE
        SYNTAX   Integer32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The 32-bit unsigned sum of the link-state  ad-
           vertisements'  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 data-
           base, and to compare the link-state database of
           two routers."
       DEFVAL   { 0 }
       ::= { ospfAreaEntry 8 }

    ospfAreaSummary OBJECT-TYPE
        SYNTAX   INTEGER    {
                    noAreaSummary (1),
                    sendAreaSummary (2)
                  }
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "The variable ospfAreaSummary controls the  im-
           port  of  summary LSAs into stub areas.  It has
           no effect on other areas.

           If it is noAreaSummary, the router will neither
           originate  nor  propagate summary LSAs into the
           stub area.  It will rely entirely  on  its  de-
           fault route.

           If it is sendAreaSummary, the router will  both
           summarize and propagate summary LSAs."
       DEFVAL   { noAreaSummary }
       ::= { ospfAreaEntry 9 }

    ospfAreaStatus OBJECT-TYPE
        SYNTAX   RowStatus
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.  Setting it to 'invalid' has the effect of
           rendering it inoperative.  The internal  effect
           (row removal) is implementation dependent."
       ::= { 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
            RowStatus,
        ospfStubMetricType
            INTEGER
              }

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

    ospfStubTOS OBJECT-TYPE
        SYNTAX   TOSType
        ACCESS   read-only
        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  inter-
           faces to other areas."
       ::= { ospfStubAreaEntry 3 }

    ospfStubStatus OBJECT-TYPE
        SYNTAX   RowStatus
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.  Setting it to 'invalid' has the effect of
           rendering it inoperative.  The internal  effect
           (row removal) is implementation dependent."
       ::= { ospfStubAreaEntry 4 }

    ospfStubMetricType OBJECT-TYPE
        SYNTAX   INTEGER    {
                    ospfMetric (1),                -- OSPF Metric
                    comparableCost (2),        -- external type 1
                    nonComparable  (3)        -- external type 2
                  }
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the type of metric  ad-
           vertised as a default route."
       DEFVAL   { ospfMetric }
       ::= { ospfStubAreaEntry 5 }


--  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 Link State Database."
       REFERENCE
          "OSPF Version 2, Section 12  Link  State  Adver-
          tisements"
      ::= { 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
            Integer32,
        ospfLsdbAge
            Integer32,
        ospfLsdbChecksum
            Integer32,
        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 }

-- External Link State Advertisements are permitted
-- for backward compatibility, but should be displayed in
-- the ospfExtLsdbTable rather than here.

    ospfLsdbType OBJECT-TYPE
        SYNTAX   INTEGER    {
                    routerLink (1),
                    networkLink (2),
                    summaryLink (3),
                    asSummaryLink (4),
                    asExternalLink (5), -- but see ospfExtLsdbTable
                    multicastLink (6),
                    nssaExternalLink (7)
                  }
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The type  of  the  link  state  advertisement.
           Each  link state type has a separate advertise-
           ment 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   Integer32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The sequence number field is a  signed  32-bit
           integer.   It  is used to detect old and dupli-
           cate 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   Integer32    -- Should be 0..MaxAge
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "This field is the age of the link state adver-
           tisement in seconds."
       REFERENCE
          "OSPF Version 2, Section 12.1.1 LS age"
      ::= { ospfLsdbEntry 6 }

    ospfLsdbChecksum OBJECT-TYPE
        SYNTAX   Integer32
        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 connec-
           tionless 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 (SIZE (1..65535))
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The entire Link State Advertisement, including
           its header."
       REFERENCE
          "OSPF Version 2, Section 12  Link  State  Adver-
          tisements"
      ::= { 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   obsolete
        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   obsolete
        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
            RowStatus,
        ospfAreaRangeEffect
            INTEGER
              }

    ospfAreaRangeAreaId OBJECT-TYPE
        SYNTAX   AreaID
        ACCESS   read-only
        STATUS   obsolete
        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-only
        STATUS   obsolete
        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   obsolete
        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   RowStatus
        ACCESS   read-write
        STATUS   obsolete
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.  Setting it to 'invalid' has the effect of
           rendering it inoperative.  The internal  effect
           (row removal) is implementation dependent."
       ::= { ospfAreaRangeEntry 4 }


    ospfAreaRangeEffect OBJECT-TYPE
        SYNTAX   INTEGER    {
                    advertiseMatching (1),
                    doNotAdvertiseMatching (2)
                  }
        ACCESS   read-write
        STATUS   obsolete
        DESCRIPTION
           "Subnets subsumed by ranges either trigger  the
           advertisement  of the indicated summary (adver-
           tiseMatching), or result in  the  subnet's  not
           being advertised at all outside the area."
       DEFVAL   { advertiseMatching }
       ::= { ospfAreaRangeEntry 5 }



--  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 param-
          eters"
      ::= { 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
            RowStatus,
        ospfHostAreaID
            AreaID
              }

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


    ospfHostTOS OBJECT-TYPE
        SYNTAX   TOSType
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The Type of Service of the route being config-
           ured."
       REFERENCE
          "OSPF Version 2, Appendix C.6 Host route parame-
          ters"
      ::= { 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 parame-
          ters"
      ::= { ospfHostEntry 3 }

    ospfHostStatus OBJECT-TYPE
        SYNTAX   RowStatus
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.  Setting it to 'invalid' has the effect of
           rendering it inoperative.  The internal  effect
           (row removal) is implementation dependent."
       ::= { ospfHostEntry 4 }


    ospfHostAreaID OBJECT-TYPE
        SYNTAX   AreaID
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The Area the Host Entry is to be found within.
           By  default, the area that a subsuming OSPF in-
           terface is in, or 0.0.0.0"
       REFERENCE
          "OSPF Version 2, Appendix C.2 Area parameters"
      ::= { ospfHostEntry 5 }


--  OSPF Interface Table

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

    ospfIfTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF OspfIfEntry
        ACCESS   not-accessible
        STATUS   mandatory
        DESCRIPTION
           "The OSPF Interface Table describes the  inter-
           faces 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  inter-
           face from the viewpoint of OSPF."
       INDEX { ospfIfIpAddress, ospfAddressLessIf }
       ::= { ospfIfTable 1 }

OspfIfEntry ::=
    SEQUENCE {
        ospfIfIpAddress
            IpAddress,
        ospfAddressLessIf
            Integer32,
        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
            Counter32,
        ospfIfAuthType
            INTEGER,
        ospfIfAuthKey
            DisplayString,
        ospfIfStatus
            RowStatus,
        ospfIfMulticastForwarding
            INTEGER,
        ospfIfDemand
            TruthValue
              }

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

    ospfAddressLessIf OBJECT-TYPE
        SYNTAX   Integer32
        ACCESS   read-only
        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),
                    pointToMultipoint (5)
                  }
        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.  Broad-
           cast LANs, such as  Ethernet  and  IEEE  802.5,
           take  the  value  'broadcast', X.25 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 formed on the interface, and the in-
           terface 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 eligi-
           ble 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  ad-
           vertisement  retransmissions,  for  adjacencies
           belonging to this  interface.   This  value  is
           also used when retransmitting database descrip-
           tion 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 in-
           terface.  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 neigh-
           bors 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   Counter32
        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   DisplayString (SIZE(0..256))
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "The Authentication Key.  If the Area's Author-
           ization  Type  is  simplePassword,  and the key
           length is shorter than 8 octets, the agent will
           left adjust and zero fill to 8 octets.

           Note that unauthenticated  interfaces  need  no
           authentication key, and simple password authen-
           tication cannot use a key of more  than  8  oc-
           tets.  Larger keys are useful only with authen-
           tication mechanisms not specified in this docu-
           ment.

           When read, ospfIfAuthKey always returns an  Oc-
           tet 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 }

    ospfIfStatus OBJECT-TYPE
        SYNTAX   RowStatus
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.  Setting it to 'invalid' has the effect of
           rendering it inoperative.  The internal  effect
           (row removal) is implementation dependent."
       ::= { ospfIfEntry 17 }


    ospfIfMulticastForwarding OBJECT-TYPE
        SYNTAX   INTEGER    {
                            blocked (1),        -- no multicast forwarding
                            multicast (2),        -- using multicast address
                            unicast (3)        -- to each OSPF neighbor
                  }
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "The way multicasts should  forwarded  on  this
           interface;  not  forwarded,  forwarded  as data
           link multicasts, or forwarded as data link uni-
           casts.   Data link multicasting is not meaning-
           ful on point to point and NBMA interfaces,  and
           setting ospfMulticastForwarding to 0 effective-
           ly disables all multicast forwarding."
       DEFVAL { blocked }
       ::= { ospfIfEntry 18 }


    ospfIfDemand OBJECT-TYPE
        SYNTAX   TruthValue
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "Indicates whether Demand OSPF procedures (hel-
           lo supression to FULL neighbors and setting the
           DoNotAge flag on proogated LSAs) should be per-
           formed on this interface."
       DEFVAL { false }
       ::= { ospfIfEntry 19 }


    ospfIfAuthType OBJECT-TYPE
        SYNTAX   INTEGER (0..255)
                    -- none (0),
                    -- simplePassword (1)
                    -- md5 (2)
                    -- reserved for specification by IANA (> 2)
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "The authentication type specified for  an  in-
           terface.   Additional  authentication types may
           be assigned locally."
       REFERENCE
          "OSPF Version 2, Appendix E Authentication"
      DEFVAL { 0 }        -- no authentication, by default
      ::= { ospfIfEntry 20 }


--  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  in-
           terface 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
            Integer32,
        ospfIfMetricTOS
            TOSType,
        ospfIfMetricValue
            Metric,
        ospfIfMetricStatus
            RowStatus
              }

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

    ospfIfMetricAddressLessIf OBJECT-TYPE
        SYNTAX   Integer32
        ACCESS   read-only
        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 in-
           terfaces having no IP Address.   On  row  crea-
           tion, this can be derived from the instance."
       ::= { ospfIfMetricEntry 2 }


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


    ospfIfMetricValue 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."
       ::= { ospfIfMetricEntry 4 }

    ospfIfMetricStatus OBJECT-TYPE
        SYNTAX   RowStatus
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.  Setting it to 'invalid' has the effect of
           rendering it inoperative.  The internal  effect
           (row removal) is implementation dependent."
       ::= { 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 inter-
           faces."
       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
            Counter32,
        ospfVirtIfAuthType
            INTEGER,
        ospfVirtIfAuthKey
            DisplayString,
        ospfVirtIfStatus
            RowStatus
              }

    ospfVirtIfAreaId OBJECT-TYPE
        SYNTAX   AreaID
        ACCESS   read-only
        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-only
        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  ad-
           vertisement  retransmissions,  for  adjacencies
           belonging to this  interface.   This  value  is
           also used when retransmitting database descrip-
           tion  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 in-
           terface.  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 neigh-
           bors declare the router down.  This  should  be
           some  multiple  of  the  Hello  interval.  This
           value must be the same for the  virtual  neigh-
           bor."
       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   Counter32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The number of state changes or error events on
           this Virtual Link"
       ::= { ospfVirtIfEntry 8 }


    ospfVirtIfAuthKey OBJECT-TYPE
        SYNTAX   DisplayString (SIZE(0..256))
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "If Authentication Type is simplePassword,  the
           device  will left adjust and zero fill to 8 oc-
           tets.

           Note that unauthenticated  interfaces  need  no
           authentication key, and simple password authen-
           tication cannot use a key of more  than  8  oc-
           tets.  Larger keys are useful only with authen-
           tication mechanisms not specified in this docu-
           ment.

           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   RowStatus
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.  Setting it to 'invalid' has the effect of
           rendering it inoperative.  The internal  effect
           (row removal) is implementation dependent."
       ::= { ospfVirtIfEntry 10 }


    ospfVirtIfAuthType OBJECT-TYPE
        SYNTAX   INTEGER (0..255)
                    -- none (0),
                    -- simplePassword (1)
                    -- md5 (2)
                    -- reserved for specification by IANA (> 2)
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "The authentication type specified for a virtu-
           al  interface.  Additional authentication types
           may be assigned locally."
       REFERENCE
          "OSPF Version 2, Appendix E Authentication"
      DEFVAL { 0 }        -- no authentication, by default
      ::= { ospfVirtIfEntry 11 }


--  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
            Integer32,
        ospfNbrPriority
            DesignatedRouterPriority,
        ospfNbrState
            INTEGER,
        ospfNbrEvents
            Counter32,
        ospfNbrLsRetransQLen
            Gauge32,
        ospfNbmaNbrStatus
            RowStatus,
        ospfNbmaNbrPermanence
            INTEGER,
        ospfNbrHelloSuppressed
            TruthValue
              }

    ospfNbrIpAddr OBJECT-TYPE
        SYNTAX   IpAddress
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The IP address this neighbor is using  in  its
           IP  Source  Address.  Note that, on addressless
           links, this will not be 0.0.0.0,  but  the  ad-
           dress of another of the neighbor's interfaces."
       ::= { ospfNbrEntry 1 }


    ospfNbrAddressLessIndex OBJECT-TYPE
        SYNTAX   InterfaceIndex
        ACCESS   read-only
        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  IpAd-
           dress)  uniquely  identifying  the  neighboring
           router in the Autonomous System."
       DEFVAL   { '00000000'H }    -- 0.0.0.0
       ::= { ospfNbrEntry 3 }


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

           Bit 0, 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.

           Bit 1, if set, indicates  that  the  associated
           area  accepts and operates on external informa-
           tion; if zero, it is a stub area.

           Bit 2, if set, indicates that the system is ca-
           pable  of routing IP Multicast datagrams; i.e.,
           that it implements the Multicast Extensions  to
           OSPF.

           Bit 3, if set, indicates  that  the  associated
           area  is  an  NSSA.  These areas are capable of
           carrying type 7 external advertisements,  which
           are  translated into type 5 external advertise-
           ments at NSSA borders."
       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 designat-
           ed router election algorithm.  The value 0 sig-
           nifies that the neighbor is not eligible to be-
           come  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 Neigh-
           bor."
       REFERENCE
          "OSPF Version 2, Section 10.1 Neighbor States"
      DEFVAL   { down }
      ::= { ospfNbrEntry 6 }


    ospfNbrEvents OBJECT-TYPE
        SYNTAX   Counter32
        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   Gauge32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The  mandatory  length  of  the   retransmission
           queue."
       ::= { ospfNbrEntry 8 }


    ospfNbmaNbrStatus OBJECT-TYPE
        SYNTAX   RowStatus
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.  Setting it to 'invalid' has the effect of
           rendering it inoperative.  The internal  effect
           (row removal) is implementation dependent."
       ::= { ospfNbrEntry 9 }


    ospfNbmaNbrPermanence OBJECT-TYPE
        SYNTAX   INTEGER    {
                    dynamic (1),        -- learned through protocol
                    permanent (2)       -- configured address
                  }
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.   'dynamic'  and  'permanent' refer to how
           the neighbor became known."
       DEFVAL { permanent }
       ::= { ospfNbrEntry 10 }


    ospfNbrHelloSuppressed OBJECT-TYPE
        SYNTAX   TruthValue
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "Indicates whether Hellos are being  suppressed
           to the neighbor"
       ::= { ospfNbrEntry 11 }


--  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
            Integer32,
        ospfVirtNbrState
            INTEGER,
        ospfVirtNbrEvents
            Counter32,
        ospfVirtNbrLsRetransQLen
            Gauge32,
        ospfVirtNbrHelloSuppressed
                TruthValue
              }

    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  us-
           ing."
       ::= { ospfVirtNbrEntry 3 }


    ospfVirtNbrOptions OBJECT-TYPE
        SYNTAX   Integer32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "A Bit Mask corresponding to the neighbor's op-
           tions field.

           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.

           Bit 2, if set, indicates  that  the  system  is
           Network  Multicast  capable; ie, that it imple-
           ments OSPF Multicast Routing."
       ::= { 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  Relation-
           ship."
       ::= { ospfVirtNbrEntry 5 }


    ospfVirtNbrEvents OBJECT-TYPE
        SYNTAX   Counter32
        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   Gauge32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The  mandatory  length  of  the   retransmission
           queue."
       ::= { ospfVirtNbrEntry 7 }


    ospfVirtNbrHelloSuppressed OBJECT-TYPE
        SYNTAX   TruthValue
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "Indicates whether Hellos are being  suppressed
           to the neighbor"
       ::= { ospfVirtNbrEntry 8 }


--  OSPF Link State Database, External

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

--             This table is identical to the OSPF LSDB Table in
--      format, but contains only External Link State
--             Advertisements.  The purpose is to allow external
--      LSAs to be displayed once for the router rather
--      than once in each non-stub area.

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


    ospfExtLsdbEntry OBJECT-TYPE
        SYNTAX   OspfExtLsdbEntry
        ACCESS   not-accessible
        STATUS   mandatory
        DESCRIPTION
           "A single Link State Advertisement."
       INDEX { ospfExtLsdbType, ospfExtLsdbLsid, ospfExtLsdbRouterId }
       ::= { ospfExtLsdbTable 1 }

OspfExtLsdbEntry ::=
    SEQUENCE {
        ospfExtLsdbType
            INTEGER,
        ospfExtLsdbLsid
            IpAddress,
        ospfExtLsdbRouterId
            RouterID,
        ospfExtLsdbSequence
            Integer32,
        ospfExtLsdbAge
            Integer32,
        ospfExtLsdbChecksum
            Integer32,
        ospfExtLsdbAdvertisement
            OCTET STRING
              }

    ospfExtLsdbType OBJECT-TYPE
        SYNTAX   INTEGER    {
                    asExternalLink (5)
                  }
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The type  of  the  link  state  advertisement.
           Each  link state type has a separate advertise-
           ment format."
       REFERENCE
          "OSPF Version 2, Appendix A.4.1 The  Link  State
          Advertisement header"
      ::= { ospfExtLsdbEntry 1 }


    ospfExtLsdbLsid 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"
      ::= { ospfExtLsdbEntry 2 }


    ospfExtLsdbRouterId 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"
      ::= { ospfExtLsdbEntry 3 }

--  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.

    ospfExtLsdbSequence OBJECT-TYPE
        SYNTAX   Integer32
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The sequence number field is a  signed  32-bit
           integer.   It  is used to detect old and dupli-
           cate 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"
      ::= { ospfExtLsdbEntry 4 }


    ospfExtLsdbAge OBJECT-TYPE
        SYNTAX   Integer32    -- Should be 0..MaxAge
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "This field is the age of the link state adver-
           tisement in seconds."
       REFERENCE
          "OSPF Version 2, Section 12.1.1 LS age"
      ::= { ospfExtLsdbEntry 5 }


    ospfExtLsdbChecksum OBJECT-TYPE
        SYNTAX   Integer32
        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 connec-
           tionless datagrams; it is commonly referred  to
           as the Fletcher checksum."
       REFERENCE
          "OSPF Version 2, Section 12.1.7 LS checksum"
      ::= { ospfExtLsdbEntry 6 }


    ospfExtLsdbAdvertisement OBJECT-TYPE
        SYNTAX   OCTET STRING (SIZE(36))
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The entire Link State Advertisement, including
           its header."
       REFERENCE
          "OSPF Version 2, Section 12  Link  State  Adver-
          tisements"
      ::= { ospfExtLsdbEntry 7 }


--  OSPF Use of the CIDR Route Table

ospfRouteGroup           OBJECT IDENTIFIER ::= { ospf 13 }

-- The IP Forwarding Table defines a number of objects for use by
-- the routing protocol to externalize its information.  Most of
-- the variables (ipForwardDest, ipForwardMask, ipForwardPolicy,
-- ipForwardNextHop, ipForwardIfIndex, ipForwardType,
-- ipForwardProto, ipForwardAge, and ipForwardNextHopAS) are
-- defined there.

-- Those that leave some discretion are defined here.

-- ipCidrRouteProto is, of course, ospf (13).

-- ipCidrRouteAge is the time since the route was first calculated,
-- as opposed to the time since the last SPF run.

-- ipCidrRouteInfo is an OBJECT IDENTIFIER for use by the routing
-- protocol.  The following values shall be found there depending
-- on the way the route was calculated.

ospfIntraArea      OBJECT IDENTIFIER ::= { ospfRouteGroup 1 }
ospfInterArea      OBJECT IDENTIFIER ::= { ospfRouteGroup 2 }
ospfExternalType1  OBJECT IDENTIFIER ::= { ospfRouteGroup 3 }
ospfExternalType2  OBJECT IDENTIFIER ::= { ospfRouteGroup 4 }

-- ipCidrRouteMetric1 is, by definition, the primary routing
-- metric.  Therefore, it should be the metric that route
-- selection is based on.  For intra-area and inter-area routes,
-- it is an OSPF metric.  For External Type 1 (comparable value)
-- routes, it is an OSPF metric plus the External Metric.  For
-- external Type 2 (non-comparable value) routes, it is the
-- external metric.

-- ipCidrRouteMetric2 is, by definition, a secondary routing
-- metric.  Therefore, it should be the metric that breaks a tie
-- among routes having equal metric1 values and the same
-- calculation rule.  For intra-area, inter-area routes, and
-- External Type 1 (comparable value) routes, it is unused.  For
-- external Type 2 (non-comparable value) routes, it is the metric
-- to the AS border router.

-- ipCidrRouteMetric3, ipCidrRouteMetric4, and ipCidrRouteMetric5 are
-- unused.

--
--      The OSPF Area Aggregate Table
--
--      This table replaces the OSPF Area Summary Table, being an
--      extension of that for CIDR routers.

    ospfAreaAggregateTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF OspfAreaAggregateEntry
        ACCESS   not-accessible
        STATUS   mandatory
        DESCRIPTION
           "A range of 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.   Note  that  if
           ranges  are configured such that one range sub-
           sumes  another  range  (e.g.,   10.0.0.0   mask
           255.0.0.0  and  10.1.0.0 mask 255.255.0.0), the
           most specific match is the preferred one."
       REFERENCE
          "OSPF Version 2, Appendix C.2  Area parameters"
      ::= { ospf 14 }


    ospfAreaAggregateEntry OBJECT-TYPE
        SYNTAX   OspfAreaAggregateEntry
        ACCESS   not-accessible
        STATUS   mandatory
        DESCRIPTION
           "A range of 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.   Note  that  if
           ranges are range configured such that one range
           subsumes another  range  (e.g.,  10.0.0.0  mask
           255.0.0.0  and  10.1.0.0 mask 255.255.0.0), the
           most specific match is the preferred one."
       REFERENCE
          "OSPF Version 2, Appendix C.2  Area parameters"
      INDEX { ospfAreaAggregateAreaID, ospfAreaAggregateLsdbType,
              ospfAreaAggregateNet, ospfAreaAggregateMask }
      ::= { ospfAreaAggregateTable 1 }


OspfAreaAggregateEntry ::=
    SEQUENCE {
        ospfAreaAggregateAreaID
            AreaID,
        ospfAreaAggregateLsdbType
            INTEGER,
        ospfAreaAggregateNet
            IpAddress,
        ospfAreaAggregateMask
            IpAddress,
        ospfAreaAggregateStatus
            RowStatus,
        ospfAreaAggregateEffect
            INTEGER
              }

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


    ospfAreaAggregateLsdbType OBJECT-TYPE
        SYNTAX   INTEGER    {
                    summaryLink (3),
                    nssaExternalLink (7)
                  }
        ACCESS   read-only
        STATUS   mandatory
        DESCRIPTION
           "The type of the Address Aggregate.  This field
           specifies  the  Lsdb type that this Address Ag-
           gregate applies to."
       REFERENCE
          "OSPF Version 2, Appendix A.4.1 The  Link  State
          Advertisement header"
      ::= { ospfAreaAggregateEntry 2 }


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


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


    ospfAreaAggregateStatus OBJECT-TYPE
        SYNTAX   RowStatus
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "This variable displays the status of  the  en-
           try.  Setting it to 'invalid' has the effect of
           rendering it inoperative.  The internal  effect
           (row removal) is implementation dependent."
       ::= { ospfAreaAggregateEntry 5 }


    ospfAreaAggregateEffect OBJECT-TYPE
        SYNTAX   INTEGER    {
                    advertiseMatching (1),
                    doNotAdvertiseMatching (2),
                    advertiseDoNotAggregate (3)
                  }
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
           "Subnets subsumed by ranges either trigger  the
           advertisement  of  the indicated aggregate (ad-
           vertiseMatching), or result in the subnet's not
           being advertised at all outside the area."
       DEFVAL   { advertiseMatching }
       ::= { ospfAreaAggregateEntry 6 }


-- conformance information

ospfConformance OBJECT IDENTIFIER ::= { ospf 15 }

ospfGroups      OBJECT IDENTIFIER ::= { ospfConformance 1 }
ospfCompliances OBJECT IDENTIFIER ::= { ospfConformance 2 }

-- compliance statements

    ospfCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
           "The compliance statement "
       MODULE  -- this module
       MANDATORY-GROUPS {
                    ospfBasicGroup,
                    ospfAreaGroup,
                    ospfStubAreaGroup,
                    ospfIfGroup,
                    ospfIfMetricGroup,
                    ospfVirtIfGroup,
                    ospfNbrGroup,
                    ospfVirtNbrGroup,
                    ospfAreaAggregateGroup
           }
       ::= { ospfCompliances 1 }


-- units of conformance

    ospfBasicGroup    OBJECT-GROUP
        OBJECTS {
                    ospfRouterId,
                    ospfAdminStat,
                    ospfVersionNumber,
                    ospfAreaBdrRtrStatus,
                    ospfASBdrRtrStatus,
                    ospfExternLsaCount,
                    ospfExternLsaCksumSum,
                    ospfTOSSupport,
                    ospfOriginateNewLsas,
                    ospfRxNewLsas,
                    ospfExtLsdbLimit,
                    ospfMulticastExtensions,
                    ospfExitOverflowInterval,
                    ospfDemandExtensions
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 1 }


    ospfAreaGroup    OBJECT-GROUP
        OBJECTS {
                    ospfAreaId,
                    ospfImportAsExtern,
                    ospfSpfRuns,
                    ospfAreaBdrRtrCount,
                    ospfAsBdrRtrCount,
                    ospfAreaLsaCount,
                    ospfAreaLsaCksumSum,
                    ospfAreaSummary,
                    ospfAreaStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  for  OSPF  systems
           supporting areas."
       ::= { ospfGroups 2 }


    ospfStubAreaGroup    OBJECT-GROUP
        OBJECTS {
                    ospfStubAreaId,
                    ospfStubTOS,
                    ospfStubMetric,
                    ospfStubStatus,
                    ospfStubMetricType
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  for  OSPF  systems
           supporting stub areas."
       ::= { ospfGroups 3 }


    ospfLsdbGroup    OBJECT-GROUP
        OBJECTS {
                    ospfLsdbAreaId,
                    ospfLsdbType,
                    ospfLsdbLsid,
                    ospfLsdbRouterId,
                    ospfLsdbSequence,
                    ospfLsdbAge,
                    ospfLsdbChecksum,
                    ospfLsdbAdvertisement
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  for  OSPF  systems
           that display their link state database."
       ::= { ospfGroups 4 }


    ospfAreaRangeGroup    OBJECT-GROUP
        OBJECTS {
                    ospfAreaRangeAreaId,
                    ospfAreaRangeNet,
                    ospfAreaRangeMask,
                    ospfAreaRangeStatus,
                    ospfAreaRangeEffect
        }
        STATUS  obsolete
        DESCRIPTION
           "These objects are required for  non-CIDR  OSPF
           systems that support multiple areas."
       ::= { ospfGroups 5 }


    ospfHostGroup    OBJECT-GROUP
        OBJECTS {
                    ospfHostIpAddress,
                    ospfHostTOS,
                    ospfHostMetric,
                    ospfHostStatus,
                    ospfHostAreaID
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  for  OSPF  systems
           that support attached hosts."
       ::= { ospfGroups 6 }


    ospfIfGroup    OBJECT-GROUP
        OBJECTS {
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    ospfIfAreaId,
                    ospfIfType,
                    ospfIfAdminStat,
                    ospfIfRtrPriority,
                    ospfIfTransitDelay,
                    ospfIfRetransInterval,
                    ospfIfHelloInterval,
                    ospfIfRtrDeadInterval,
                    ospfIfPollInterval,
                    ospfIfState,
                    ospfIfDesignatedRouter,
                    ospfIfBackupDesignatedRouter,
                    ospfIfEvents,
                    ospfIfAuthType,
                    ospfIfAuthKey,
                    ospfIfStatus,
                    ospfIfMulticastForwarding,
                    ospfIfDemand
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 7 }


    ospfIfMetricGroup    OBJECT-GROUP
        OBJECTS {
                    ospfIfMetricIpAddress,
                    ospfIfMetricAddressLessIf,
                    ospfIfMetricTOS,
                    ospfIfMetricValue,
                    ospfIfMetricStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 8 }


    ospfVirtIfGroup    OBJECT-GROUP
        OBJECTS {
                    ospfVirtIfAreaId,
                    ospfVirtIfNeighbor,
                    ospfVirtIfTransitDelay,
                    ospfVirtIfRetransInterval,
                    ospfVirtIfHelloInterval,
                    ospfVirtIfRtrDeadInterval,
                    ospfVirtIfState,
                    ospfVirtIfEvents,
                    ospfVirtIfAuthType,
                    ospfVirtIfAuthKey,
                    ospfVirtIfStatus
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 9 }


    ospfNbrGroup    OBJECT-GROUP
        OBJECTS {
                    ospfNbrIpAddr,
                    ospfNbrAddressLessIndex,
                    ospfNbrRtrId,
                    ospfNbrOptions,
                    ospfNbrPriority,
                    ospfNbrState,
                    ospfNbrEvents,
                    ospfNbrLsRetransQLen,
                    ospfNbmaNbrStatus,
                    ospfNbmaNbrPermanence,
                    ospfNbrHelloSuppressed
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 10 }


    ospfVirtNbrGroup    OBJECT-GROUP
        OBJECTS {
                    ospfVirtNbrArea,
                    ospfVirtNbrRtrId,
                    ospfVirtNbrIpAddr,
                    ospfVirtNbrOptions,
                    ospfVirtNbrState,
                    ospfVirtNbrEvents,
                    ospfVirtNbrLsRetransQLen,
                    ospfVirtNbrHelloSuppressed
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 11 }


    ospfExtLsdbGroup    OBJECT-GROUP
        OBJECTS {
                    ospfExtLsdbType,
                    ospfExtLsdbLsid,
                    ospfExtLsdbRouterId,
                    ospfExtLsdbSequence,
                    ospfExtLsdbAge,
                    ospfExtLsdbChecksum,
                    ospfExtLsdbAdvertisement
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  for  OSPF  systems
           that display their link state database."
       ::= { ospfGroups 12 }


    ospfAreaAggregateGroup    OBJECT-GROUP
        OBJECTS {
                    ospfAreaAggregateAreaID,
                    ospfAreaAggregateLsdbType,
                    ospfAreaAggregateNet,
                    ospfAreaAggregateMask,
                    ospfAreaAggregateStatus,
                    ospfAreaAggregateEffect
        }
        STATUS  current
        DESCRIPTION
           "These objects are required for OSPF systems."
       ::= { ospfGroups 13 }

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 OSPF-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
-- SECTION 1: Top Level Definitions

S5-ETH-MULTISEG-TOPOLOGY-MIB DEFINITIONS ::= BEGIN

-- 5000 Ethernet Multi-segment MIB Release 1.0.3
-- Revision 04/08/97 

-- Copyright 1995, 96, 97 Bay Networks, Inc.
-- All rights reserved.
-- This Bay Networks SNMP Management Information Base Specification
-- (Specification) embodies Bay Networks' confidential and
-- proprietary intellectual property. Bay Networks retains all
-- title and ownership in the Specification, including any
-- revisions.

-- This Specification is supplied "AS IS," and Bay Networks makes
-- no warranty, either express or implied, as to the use,
-- operation, condition, or performance of the Specification.


-- Imports

IMPORTS
	IpAddress, TimeTicks
		FROM RFC1155-SMI
	OBJECT-TYPE
		FROM RFC-1212
	SnpxChassisType, SnpxBackplaneType
		FROM SYNOPTICS-ROOT-MIB
	s5EnMsTop
		FROM S5-ROOT-MIB
	MacAddress
		FROM S5-TCS-MIB;


-- Groups

s5EnMsTopInfo		OBJECT IDENTIFIER ::= { s5EnMsTop 1 }

s5EnMsTopNmm		OBJECT IDENTIFIER ::= { s5EnMsTop 2 }

s5EnMsTopBdg		OBJECT IDENTIFIER ::= { s5EnMsTop 3 }

s5EnMsTopSrcMac		OBJECT IDENTIFIER ::= { s5EnMsTop 4 }

-- SECTION 2: MIB Objects

-- Topology Status and Configuration Information

s5EnMsTopIpAddr OBJECT-TYPE
	SYNTAX	IpAddress
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"An IP address of the agent. This is used to fill
		in the IP address field of transmitted SONMP packets.
		The agent should be reachable through this IP address."
	::= { s5EnMsTopInfo 1 }

s5EnMsTopStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		  topOn(1),
		  topOff(2)
		}
	ACCESS	read-write
	STATUS	mandatory
	DESCRIPTION
		"Indicates if the agent is participating in
		multi-segment topology. The values are:
		  topOn(1)....topology is on
		  topOff(2)...topology is off
		When the value is topOff(2) the status of 	
		topology table entries is undefined.  However, the
		agent should make its best attempt when the value is
		changed to topOff(2) to remove all existing instances
		of topology MIB objects. The agent must save the
		setting of this object in nonvolatile memory (i.e.,
		save across reboots)."
	::= { s5EnMsTopInfo 2 }

s5EnMsTopNmmLstChg OBJECT-TYPE
	SYNTAX	TimeTicks
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The value of sysUpTime the last time an entry in the
		NMM topology table was added, deleted, or modified.  If
		the NMM topology table has not changed since cold/warm
		start of the agent, then the value is zero."
	::= { s5EnMsTopInfo 3 }

s5EnMsTopBdgLstChg OBJECT-TYPE
	SYNTAX	TimeTicks
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The value of sysUpTime the last time an entry in the
		bridge topology table was added, deleted, or modified.
		If the bridge topology table has not changed since
		cold/warm start of the agent, then the value is zero."
	::= { s5EnMsTopInfo 4 }

s5EnMsTopNmmMaxNum OBJECT-TYPE
	SYNTAX	INTEGER (0..65535)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The maximum number of entries in the NMM topology
		table."
	::= { s5EnMsTopInfo 5 }

s5EnMsTopNmmCurNum OBJECT-TYPE
	SYNTAX	INTEGER (0..65535)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The current number of entries in the NMM topology
		table."
	::= { s5EnMsTopInfo 6 }

s5EnMsTopBdgMaxNum OBJECT-TYPE
	SYNTAX	INTEGER (0..65535)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The maximum number of entries in the bridge topology
		table."
	::= { s5EnMsTopInfo 7 }

s5EnMsTopBdgCurNum OBJECT-TYPE
	SYNTAX	INTEGER (0..65535)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The current number of entries in the bridge topology
		table."
	::= { s5EnMsTopInfo 8 }

-- Network Management Module (NMM) Topology Table

s5EnMsTopNmmTable OBJECT-TYPE
	SYNTAX	SEQUENCE OF S5EnMsTopNmmEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A table of topology information from each topology
		agent that sends out NMM topology messages, and that
		has been heard by the reporting topology agent.  The
		number of entries is determined by the number of
		distinct topology messages received.  A topology
		message is identified by a combination of the IP
		address and segment-identifier contained in the
		message, and the slot-port on which it is received.
		Entries in the table are created by reception of a
		'new' NMM topology message.  An entry is removed from
		the table after no messages are received from the
		corresponding topology agent in the required time
		interval.

		NOTE: there is an entry for the reporting agent with
		the values of slot and port set to zero."
	::= { s5EnMsTopNmm 1 }

s5EnMsTopNmmEntry OBJECT-TYPE
	SYNTAX	S5EnMsTopNmmEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A row in the NMM topology table. Entries in the table
		can not be created or deleted via SNMP."
	INDEX	{ s5EnMsTopNmmSlot,
		  s5EnMsTopNmmPort,
		  s5EnMsTopNmmIpAddr,
		  s5EnMsTopNmmSegId }
	::= { s5EnMsTopNmmTable 1 }

S5EnMsTopNmmEntry ::= SEQUENCE {
	s5EnMsTopNmmSlot INTEGER,
	s5EnMsTopNmmPort INTEGER,
	s5EnMsTopNmmIpAddr IpAddress,
	s5EnMsTopNmmSegId INTEGER,
	s5EnMsTopNmmMacAddr  MacAddress, 
	s5EnMsTopNmmChassisType SnpxChassisType,
	s5EnMsTopNmmBkplType SnpxBackplaneType,
	s5EnMsTopNmmLocalSeg INTEGER,
	s5EnMsTopNmmCurState INTEGER
	}

s5EnMsTopNmmSlot OBJECT-TYPE
	SYNTAX	INTEGER (0..255)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The slot on which the topology message
		was received.

		NOTE: There is an artificial 'row' for the reporting
		agent with slot and port equal to zero.

		NOTE: Non-modular devices that do not have multiple
		slots should set this value to 1."
	::= { s5EnMsTopNmmEntry 1 }

s5EnMsTopNmmPort OBJECT-TYPE
	SYNTAX	INTEGER (0..255)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The port on which the topology message 
		was received.

		NOTE: there is an artificial 'row' for the reporting
		agent with slot and port equal to zero."
	::= { s5EnMsTopNmmEntry 2 }

s5EnMsTopNmmIpAddr OBJECT-TYPE
	SYNTAX	IpAddress
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The IP address of the sender of the topology message."
	::= { s5EnMsTopNmmEntry 3 }

s5EnMsTopNmmSegId OBJECT-TYPE
	SYNTAX	INTEGER (0..'FFFFFF'H)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The 'segment identifier' of the segment from which
		the remote agent sent the topology message.  The value
		is extracted from the received topology message.
		Different devices may use different methods for
		representing the segment identifier.  For example,
		system 5000 NMMs that run multi-segment autotopology use
		the SrcIndx of the segment as the segment identifier;
                switches use a computed a value equal to '(256 * s) + p'
                where 's' is the board, card or slot number and 'p' is
                the port number on and as seen by the switch sending the 
                topology message;
		system 3000 NMMs use the lower three bytes of the MAC
		address of the NMM as the segment identifier.  In any
		case, the 'segment identifier' uniquely identifies the
		network segment in the remote device from which
		the topology message was sent."
	::= { s5EnMsTopNmmEntry 4 }

s5EnMsTopNmmMacAddr OBJECT-TYPE
	SYNTAX	MacAddress
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The MAC address of the sender of the topology message."
	::= { s5EnMsTopNmmEntry 5 }

s5EnMsTopNmmChassisType OBJECT-TYPE
	SYNTAX	SnpxChassisType
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The chassis type of the device that sent the topology
		message."
	::= { s5EnMsTopNmmEntry 6 }

s5EnMsTopNmmBkplType OBJECT-TYPE
	SYNTAX	SnpxBackplaneType
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The backplane type of the device that sent the
		topology message."
	::= { s5EnMsTopNmmEntry 7 }

s5EnMsTopNmmLocalSeg OBJECT-TYPE
	SYNTAX	INTEGER {
		true(1),
		false(2)
		}
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"Indicates if the sender of the topology message is on
		the same Ethernet segment (i.e., NOT across a bridge)
		as the reporting agent."
	::= { s5EnMsTopNmmEntry 8 }

s5EnMsTopNmmCurState OBJECT-TYPE
	SYNTAX	INTEGER {
		topChanged(1),
		heartbeat(2),
		new(3)
		}
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The current state of sender of the
		topology message. The values are:
		  topChanged(1)...topology information has
		                    recently changed
		  heartbeat(2)....topology information unchanged
		  new(3)..........sending agent is in new state."
	::= { s5EnMsTopNmmEntry 9 }

-- Encoded Octet Strings for NMM Topology Table

s5EnMsTopNmmEosSize OBJECT-TYPE
	SYNTAX	INTEGER (0..1440)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The current size of a 'row' in the table
		s5EnMsTopNmmEosTable.  This allows applications
		to be able to break apart 'rows' in the table."
	::= { s5EnMsTopNmm 2 }

s5EnMsTopNmmEosTable OBJECT-TYPE
	SYNTAX	SEQUENCE OF S5EnMsTopNmmEosEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A table of encoded octet strings of
		entries in table s5EnMsTopNmmTable.
		The number of entries is determined by
		packing of 'rows' from s5EnMsTopNmmTable."
	::= { s5EnMsTopNmm 3 }

s5EnMsTopNmmEosEntry OBJECT-TYPE
	SYNTAX	S5EnMsTopNmmEosEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A row in the table of encoded octet
		strings for table s5EnMsTopNmmTable.
		Instance returned in Response PDU:
		  On GETs: instance specified is the
		           instance returned.
		  On GET-NEXTs: instance returned is the
		                instance of the last record
		                contained in the octet string.

		Entries in the table can not be created
		or deleted via SNMP."
	INDEX	{ s5EnMsTopNmmSlot,
		  s5EnMsTopNmmPort,
		  s5EnMsTopNmmIpAddr,
		  s5EnMsTopNmmSegId }
	::= { s5EnMsTopNmmEosTable 1 }

S5EnMsTopNmmEosEntry ::= SEQUENCE {
	s5EnMsTopNmmEos OCTET STRING
	}

s5EnMsTopNmmEos OBJECT-TYPE
	SYNTAX	OCTET STRING (SIZE(0..1400))
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"An encoded octet string. On reads it contains
		an integral number of 'rows' from table
		s5EnMsTopNmmTable. All 'rows' are the same size
		which is defined by object s5EnMsTopNmmEosSize."
	::= { s5EnMsTopNmmEosEntry 1 }

-- Bridge Topology Table

s5EnMsTopBdgTable OBJECT-TYPE
	SYNTAX	SEQUENCE OF S5EnMsTopBdgEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A table of topology information from each Bridge in
		the network that is sending bridge topology messages
		that have been heard by the reporting agent.  The
		number of entries is determined by the number of
		detected (and active) bridges.  Entries in the table
		are created by reception of a topology message from a
		'new' bridge.  An entry is removed from the table
		after no messages are received from the corresponding
		bridge in the required time interval."
	::= { s5EnMsTopBdg 1 }

s5EnMsTopBdgEntry OBJECT-TYPE
	SYNTAX	S5EnMsTopBdgEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A row in the bridge topology table.  Entries in the
		table can not be created or deleted via SNMP."
	INDEX	{ s5EnMsTopBdgSlotNum,
		  s5EnMsTopBdgPortNum,
		  s5EnMsTopBdgIpAddr }
	::= { s5EnMsTopBdgTable 1 }

S5EnMsTopBdgEntry ::= SEQUENCE {
	s5EnMsTopBdgSlotNum INTEGER,
	s5EnMsTopBdgPortNum INTEGER,
	s5EnMsTopBdgIpAddr IpAddress,
	s5EnMsTopBdgNumber INTEGER,
	s5EnMsTopBdgMacAddr MacAddress,
	s5EnMsTopBdgType INTEGER,
	s5EnMsTopBdgStatus INTEGER,
	s5EnMsTopBdgNumPorts INTEGER,
	s5EnMsTopBdgHelloPortNum INTEGER,
	s5EnMsTopBdgHelloPortType INTEGER,
	s5EnMsTopBdgHelloPortStatus INTEGER,
	s5EnMsTopBdgCompBdgMac1 MacAddress,
	s5EnMsTopBdgCompBdgMac2 MacAddress
	}

s5EnMsTopBdgSlotNum OBJECT-TYPE
	SYNTAX	INTEGER (0..255)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The slot on which the topology message was
		received.

		NOTE: Non-modular devices that do not have multiple
		slots should set this value to 1."
	::= { s5EnMsTopBdgEntry 1 }

s5EnMsTopBdgPortNum OBJECT-TYPE
	SYNTAX	INTEGER (0..255)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The port on which the topology message was received."
	::= { s5EnMsTopBdgEntry 2 }

s5EnMsTopBdgIpAddr OBJECT-TYPE
	SYNTAX	IpAddress
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The IP address of the bridge that sent the
		topology message."
	::= { s5EnMsTopBdgEntry 3 }

s5EnMsTopBdgNumber OBJECT-TYPE
	SYNTAX	INTEGER (0..65535)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The 'Bridge Number' of the bridge that sent
		the topology message.  This is the IEEE 802.1
		bridge number."
	::= { s5EnMsTopBdgEntry 4 }

s5EnMsTopBdgMacAddr OBJECT-TYPE
	SYNTAX	MacAddress
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The MAC Address of the bridge that sent the
		topology message."
	::= { s5EnMsTopBdgEntry 5 }

s5EnMsTopBdgType OBJECT-TYPE
	SYNTAX	INTEGER {
		other(1),
		localSyn(2),
		remoteSyn(3),
		kalpana(4)
		}
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The 'kind of bridge' that sent the topology
		message. The values are:
		  other(1).....unknown or other type
		  locSyn(2)....local SynOptics bridge
		  remSyn(3)....remote SynOptics bridge
		  kalpana(4)...Kalpana bridge(switch)
		"
	::= { s5EnMsTopBdgEntry 6 }

s5EnMsTopBdgNumPorts OBJECT-TYPE
	SYNTAX	INTEGER
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The number of ports on the bridge."
	::= { s5EnMsTopBdgEntry 7 }

s5EnMsTopBdgStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		other(1),
		active(2),
		standby(3)
		}
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The current operational status from the bridge
		that sent the topology message.  The values are:
		  other(1).....unknown or other
		  active(2)....bridge is active
		  standby(3)...bridge is in standby

		A value of standby(3) means that at least ONE port
		is in standby mode.  A value of active(2) means NO
		port is in standby mode."
	::= { s5EnMsTopBdgEntry 8 }

s5EnMsTopBdgHelloPortNum OBJECT-TYPE
	SYNTAX	INTEGER (0..255)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The port number used by the bridge to
		send the topology message.  This port may
		or may not be in standby mode."
	::= { s5EnMsTopBdgEntry 9 }

s5EnMsTopBdgHelloPortType OBJECT-TYPE
	SYNTAX	INTEGER {
		other(1),
		eth(2),
		tok4(3),
		tok16(4),
		fddi(5),
		t1(6)
		}
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The type of the port used by the bridge to
		send the topology message.  The values are:
		  other(1)...other or unknown type
		  eth(2).....ethernet
		  tok4(3)....4 Mbit token ring
		  tok16(4)...16 Mbit token ring
		  fddi(5)....fddi
		  t1(6)......t1

		Note: These enumerations were done for
		'completeness'. No other value than eth(2)
		should ever be received by an ethernet agent."
	::= { s5EnMsTopBdgEntry 10 }

s5EnMsTopBdgHelloPortStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		other(1),
		active(2),
		standby(3)
		}
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The status of the port used by the bridge
		to send the topology message. The values are:
		  other(1).....unknown or other
		  active(2)....port is active
		  standby(3)...port is in standby"
	::= { s5EnMsTopBdgEntry 11 }

s5EnMsTopBdgCompBdgMac1 OBJECT-TYPE
	SYNTAX	MacAddress
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The first MAC address of a companion bridge
		of the bridge that sent the topology message.
		The value is 00:00:00:00:00:00 for local
		bridges (since there is no companion bridge)
		and also when the companion MAC address
		is unknown for remote bridges."
	::= { s5EnMsTopBdgEntry 12 }

s5EnMsTopBdgCompBdgMac2 OBJECT-TYPE
	SYNTAX	MacAddress
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The second MAC address of a companion bridge
		of the bridge that sent the topology message.
		The value is 00:00:00:00:00:00 for local
		bridges (since there is no companion bridge)
		and also when the companion MAC address
		is unknown for remote bridges."
	::= { s5EnMsTopBdgEntry 13 }

-- Encoded Octet Strings for Bridge Topology Table

s5EnMsTopBdgEosSize OBJECT-TYPE
	SYNTAX	INTEGER (0..1440)
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The current size of a 'row' in the table
		s5EnMsTopBdgEosTable.  This allows applications
		to be able to break apart 'rows' in the table."
	::= { s5EnMsTopBdg 2 }

s5EnMsTopBdgEosTable OBJECT-TYPE
	SYNTAX	SEQUENCE OF S5EnMsTopBdgEosEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A table of encoded octet strings of
		entries in table s5EnMsTopBdgTable.
		The number of entries is determined by
		packing of 'rows' from s5EnMsTopBdgTable."
	::= { s5EnMsTopBdg 3 }

s5EnMsTopBdgEosEntry OBJECT-TYPE
	SYNTAX	S5EnMsTopBdgEosEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A row in the table of encoded octet
		strings for table s5EnMsTopBdgTable.
		Instance returned in Response PDU:
		  On GETs: instance specified is the
		             instance returned.
		  On GET-NEXTs: instance returned is the
		                  instance of the last record
		                  contained in the octet string.

		Entries in the table can not be created
		or deleted via SNMP."
	INDEX	{ s5EnMsTopBdgSlotNum,
		  s5EnMsTopBdgPortNum,
		  s5EnMsTopBdgIpAddr }
	::= { s5EnMsTopBdgEosTable 1 }

S5EnMsTopBdgEosEntry ::= SEQUENCE {
	s5EnMsTopBdgEos OCTET STRING
	}

s5EnMsTopBdgEos OBJECT-TYPE
	SYNTAX	OCTET STRING (SIZE(0..1400))
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"An encoded octet string. On reads it contains
		an integral number of 'rows' from table
		s5EnMsTopBdgTable.  All 'rows' are the same size
		which is defined by object s5EnMsTopBdgEosSize."
	::= { s5EnMsTopBdgEosEntry 1 }

-- MAC Address-to-Segment Mapping Table

-- Implementation of this group is optional. It is supported by those
-- devices that use different source MAC addresses to transmit
-- topology messages on different segments.

s5EnMsTopSrcMacAddrTable OBJECT-TYPE
	SYNTAX	SEQUENCE OF S5EnMsTopSrcMacAddrEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A table describing the source MAC addresses that the
		agent uses to transmit topology messages on different
		segments in the device.  The MAC addresses are
		preallocated and remain unchanged for the agent.
		However, the mapping between a MAC address and segment
		may change, since it can depend on the current
		physical and/or logical configuration of the device.

		Implementation of this group is required for those
		devices that use different source MAC addresses to
		transmit topology messages on different segments.
		Implementation of this group is optional otherwise."
	::= { s5EnMsTopSrcMac 1 }

s5EnMsTopSrcMacAddrEntry OBJECT-TYPE
	SYNTAX	S5EnMsTopSrcMacAddrEntry
	ACCESS	not-accessible
	STATUS	mandatory
	DESCRIPTION
		"A row in the table of MAC address-to-segment mappings. 
		Entries in the table can not be created or deleted
		via SNMP."
	INDEX	{ s5EnMsTopSrcMacAddr }
	::= { s5EnMsTopSrcMacAddrTable 1 }

S5EnMsTopSrcMacAddrEntry ::= SEQUENCE {
	s5EnMsTopSrcMacAddr   MacAddress,
	s5EnMsTopSrcMacSegId  INTEGER
	}

s5EnMsTopSrcMacAddr OBJECT-TYPE
	SYNTAX	MacAddress
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The MAC address used to transmit topology messages."
	::= { s5EnMsTopSrcMacAddrEntry 1 }

s5EnMsTopSrcMacSegId OBJECT-TYPE
	SYNTAX	INTEGER (0..16777215) 
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The 'segment-identifier' of the segment 
		on which topology messages were transmitted."
	::= { s5EnMsTopSrcMacAddrEntry 2 }

s5EnMsTopSrcMacAddrLstChg OBJECT-TYPE
	SYNTAX	TimeTicks
	ACCESS	read-only
	STATUS	mandatory
	DESCRIPTION
		"The value of sysUpTime when an entry in the 
		table s5EnMsTopSrcMacAddrTable was last changed.
		If no changes have been done since cold/warm start
		of the agent, then the value is zero."
	::= { s5EnMsTopSrcMac 2 }

END
-- SECTION 1: Top Level Definitions

S5-ROOT-MIB DEFINITIONS ::= BEGIN


-- 5000 Root MIB Release 1.1.4
-- Revision 01/07/98

-- Copyright 1998 Bay Networks, Inc.
-- All rights reserved.
-- This Bay Networks SNMP Management Information Base Specification
-- (Specification) embodies Bay Networks' confidential and
-- proprietary intellectual property. Bay Networks retains all
-- title and ownership in the Specification, including any
-- revisions.

-- This Specification is supplied "AS IS," and Bay Networks makes
-- no warranty, either express or implied, as to the use,
-- operation, condition, or performance of the Specification.

-- Imports

IMPORTS
	series5000
		FROM SYNOPTICS-ROOT-MIB;

-- Branches under "series5000"

-- branch for registration of values for objects
--   with syntax of OBJECT IDENTIFIER
  s5reg		OBJECT IDENTIFIER ::= { series5000 1 }

-- Branch for 'Enterprise' field values in traps
  s5Traps	OBJECT IDENTIFIER ::= { series5000 2 }
    s5EthTrap	-- Ethernet
		OBJECT IDENTIFIER ::= { s5Traps 1 }
    s5TokTrap	-- Token Ring
		OBJECT IDENTIFIER ::= { s5Traps 2 }
    s5FddTrap	-- FDDI
		OBJECT IDENTIFIER ::= { s5Traps 3 }
    s5ChaTrap	-- Chassis
		OBJECT IDENTIFIER ::= { s5Traps 4 }
    s5ComTrap	-- Common
		OBJECT IDENTIFIER ::= { s5Traps 5 }
    s5EcellTrap	-- EtherCell
		OBJECT IDENTIFIER ::= { s5Traps 6 }
    atmTraps  -- Atm
                OBJECT IDENTIFIER ::= { s5Traps 7 }
     
-- Major 5000 MIB branches
  s5Chassis	OBJECT IDENTIFIER ::= { series5000 3 }
  s5Agent	OBJECT IDENTIFIER ::= { series5000 4 }
  s5Com		OBJECT IDENTIFIER ::= { series5000 5 }
  s5Eth		OBJECT IDENTIFIER ::= { series5000 6 }
  s5Tok		OBJECT IDENTIFIER ::= { series5000 7 }
  s5Fddi	OBJECT IDENTIFIER ::= { series5000 8 }
  s5EnTop	OBJECT IDENTIFIER ::= { series5000 9 }
  s5TrTop	OBJECT IDENTIFIER ::= { series5000 10 }
  s5FdTop	OBJECT IDENTIFIER ::= { series5000 11 }
  s5EnMsTop	OBJECT IDENTIFIER ::= { series5000 13 }
  s5AtmTop	OBJECT IDENTIFIER ::= { series5000 14 }
  s5IfExt	OBJECT IDENTIFIER ::= { series5000 15 }
END
-- SECTION 1: MIB Definition

S5-TCS-MIB DEFINITIONS ::= BEGIN


-- 5000 Common Textual Conventions MIB Release 1.1.2
-- Revision 07/28/94

-- Copyright 1993-94 SynOptics Communications, Inc.
-- All rights reserved.
-- This SynOptics SNMP Management Information Base Specification
-- (Specification) embodies SynOptics' confidential and
-- proprietary intellectual property. SynOptics retains all
-- title and ownership in the Specification, including any
-- revisions.

-- This Specification is supplied "AS IS," and SynOptics makes
-- no warranty, either express or implied, as to the use,
-- operation, condition, or performance of the Specification.


-- Textual Convention Definitions


-- A textual conventions for MAC addresses.
-- This is 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 802.x protocols) requires MAC addresses to be
-- transmitted most significant bit first.
MacAddress ::= OCTET STRING (SIZE (6))


-- A textual convention for IPX addresses. The first four bytes
-- are the network number in 'network order'. The last 6 bytes
-- are the MAC address.
IpxAddress ::= OCTET STRING (SIZE (10))


-- A textual convention for a period of time measured
-- in units of 0.01 seconds.
TimeIntervalHrd ::= INTEGER


-- A textual convention for a period of time measured
-- in units of seconds.
TimeIntervalSec ::= INTEGER



-- A textual convention for an Index of a "source".
-- The values are encoded so that the same MIB object
-- can be used to describe the same type of data, but
-- from different sources.
-- For the 5000 Chassis, this is encoded in the
-- following base 10 fields:
--   1bbiii - identifies an interface on an NMM
--              where 'bb' is the board index and
--              'iii' is the interface number.
--
--   2bbppp - identifies a connectivity port on
--              a board where 'bb' is the board INDEX
--              and 'ppp' is the port INDEX.
--
--   3bblll - identifies a local channel on a
--              board where 'bb' is the board INDEX
--              and 'll' is the local channel INDEX.
--
--   4bbccc - identifies a cluster on a board
--              where 'bb' is the board INDEX and
--              'cc' is the cluster INDEX.
--
--   5bbfff - identifies a FPU on a board where
--              'bb' is the board INDEX, and 'fff' is
--              the FPU INDEX.
--
--   6bbnnn - identifies host board backplane counters
--              where 'bb' is the board INDEX, and
--              'nnn' is the segment INDEX.
--
--   7bbccc - identifies a NULL segment on a board
--              where 'bb' is the board INDEX, and
--              'ccc' is the cluster INDEX.
--
--   8mmnnn - identifies a sum across all host board(s)
--              connected to a given backplane segment
--              where 'mm' is media type, and 'nnn' is
--              the segment INDEX. (NOTE: This is currently
--              only valid for Ethernet.)
SrcIndx ::= INTEGER (1..999999)



-- A textual convention for Media types
MediaType ::= INTEGER {
	other(1),	-- unknown or other type
	eth(2),		-- ethernet
	tok(3),		-- token ring
	fddi(4)		-- FDDI
	}		-- ATM later


-- The FDDI backplane mode.
FddiBkNetMode ::= INTEGER {
	other(1),	-- other or unknown
	thruLow(2),
	thruHigh(3),
	thruLowThruHigh(4)
	}

-- The backplane network ID. This is a numeric assignment
-- made to a backplane channel, a piece of a divided
-- backplane channel, or a grouping of several backplane
-- channels (which is done for FDDI). The number (and values)
-- of the backplane networks is determined by the setting
-- of the channel divider(s) which split some or all
-- the backplane channels into networks, and by
-- grouping when allowed by the media (such as FDDI).
-- Different media and backplane implementations may
-- have a divider or not. Also, there may be different
-- mappings of backplane network IDs to a divided (or
-- undivided) backplane channel.
--
-- Note to agent implementors - you must map the divided
-- (or undivided) backplane channel to the numbering here
-- based on the setting of the backplane channel divider(s),
-- and/or the grouping of the channels for FDDI.
BkNetId ::= INTEGER (1..255)


-- The physical backplane channel identification.
-- This does not change when a backplane is divided.
-- A value of zero means no channel. Otherwise, the
-- channels are numbered starting at one.
BkChan ::= INTEGER (0..255)

-- The physical local channel identification.
-- A value of zero means no channel. Otherwise, the
-- channels are numbered starting at one.
LocChan ::= INTEGER (0..255)

-- The attachment ID. This is either a backplane
-- network ID, a local channel, or as an indication
-- of no backplane network attachment. Negative numbers
-- are used to identify local channels on a board.
-- Where used, the board must also be specified
-- (or implied). A value of zero is used to indicate
-- no (or null) attachment. Positive numbers are the
-- backplane network IDs. The number (and values) of
-- the backplane networks is determined by the setting
-- of the channel divider(s) which split some or all
-- the backplane channels into backplane networks,
-- and by grouping when allowed by the media (such as
-- FDDI). Different media and implementations may have
-- a divider or not. Also, there may be different
-- mappings of backplane network IDs to a divided
-- (or undivided) backplane channel.
--
-- Note to agent implementors - you must map the divided
-- (or undivided) backplane channel to the numbering here
-- based on the setting of the backplane channel divider(s),
-- and/or the grouping of the channels for FDDI.
AttId ::= INTEGER (-255..255)


END

-- SECTION 1: Top Level Definitions

SYNOPTICS-ROOT-MIB DEFINITIONS ::= BEGIN


-- SynOptics Root MIB Release 1.5.6
-- Revision 9/03/97

-- Copyright 1996, 97 Bay Networks, Inc.
-- All rights reserved.
-- This Bay Networks SNMP Management Information Base Specification
-- (Specification) embodies Bay Networks' confidential and
-- proprietary intellectual property. Bay Networks retains all
-- title and ownership in the Specification, including any
-- revisions.

-- This Specification is supplied "AS IS," and Bay Networks makes
-- no warranty, either express or implied, as to the use,
-- operation, condition, or performance of the Specification.


-- Imports

IMPORTS
	enterprises
		FROM RFC1155-SMI;

-- Textual Conventions

SnpxBackplaneType ::= INTEGER {
	other(1),		-- none of the following
	eth(2),			-- ethernet
	ethTok(3),		-- ethernet and tokenring
	ethFddi(4),		-- ethernet and FDDI
	ethTokFddi(5),		-- ethernet, tokenring, and FDDI
	ethTokRed(6),		-- ethernet and tokenring with
				--   redundant powersupply
	ethTokFddiRed(7),	-- ethernet, tokenring, and FDDI
				--   with redundant powersupply
	tok(8),			-- tokenring
        enetTrFastEnet(9),      -- ethernet, tokenring, and fast ethernet
        enetFastEnet(10),       -- ethernet and fast ethernet
        enetTrFastEnetRed(11)   -- ethernet, tokenring, and fast ethernet
                                -- with redundant powersupply
	}
-- This type is used to specify a concentrator backplane.


SnpxChassisType ::= INTEGER {
	other(1),		-- none of the following
	m3000(2),		-- product 3000
	m3030(3),		-- product 3030
	m2310(4),		-- product 2310
	m2810(5),		-- product 2810
	m2912(6),		-- product 2912
	m2914(7),		-- product 2914
	m271x(8),		-- product 271x
	m2813(9),		-- product 2813
	m2814(10),		-- product 2814
	m2915(11),		-- product 2915
	m5000(12),		-- product 5000
	m2813SA(13),		-- product 2813SA
	m2814SA(14),		-- product 2814SA
	m810M(15),		-- product 810M
	m1032x(16),		-- product EtherCell
	m5005(17),		-- product 5005
	mAlcatelEthConc(18),	-- product Alcatel Ethernet workgroup conc.
	m2715SA(20),		-- product 2715SA
	m2486(21),		-- product 2486
	m28xxx(22),		-- product 28000 series
	m2300x(23),		-- product 23000 series
	m5DN00x(24),		-- product 5DN00x series
	mBayStackEth(25),	-- product BayStack Ethernet
	m2310x(26),		-- product 23100 series
	mBayStack100Hub(27),	-- product 100Base-T Hub
	m3000FastEth(28),       -- product 3000 Fast Ethernet
	mXediaSwitch(29),	-- product Orion switch
	notUsed(30),            -- not used 
        m28200EthSwitch(31),    -- product DDS 
	mCent6Slot(32),         -- product Centillion
	mCent12Slot(33),        -- product Centillion
	mCent1Slot(34),         -- product Centillion
	mBayStack301(35),       -- product BayStack 301
	mBayStackTr(36),        -- product BayStack TokenRing Hub
	mFVC10625(37),          -- product FVC Multimedia Switch
	mSwitchNode(38),        -- product Switch Node
	mBayStack302(39),       -- product BayStack 302 Switch
	mBayStack350(40),       -- product BayStack 350 Switch
	mBayStack150(41),       -- product BayStack 150 Ethernet Hub
        mCent50N3Slot(42),      -- product Centillion 50N switch
        mCent50T3Slot(43),      -- product Centillion 50T switch
        mBayStack303-304(44),   -- product BayStack 303 and 304 Switches
	mBayStack200(45),       -- product BayStack 200 Ethernet Hub
	mBayStack250(46),       -- product BayStack 250 10/100 Ethernet Hub
	mAccelar1200(50),	-- product Accelar 1200 L3 Switch
	mAccelar1250(51),	-- product Accelar 1250 L3 Switch
	mAccelar1100(52),	-- product Accelar 1100 L3 Switch
	mAccelar1150(53),	-- product Accelar 1150 L3 Switch
	mAccelar1050(54),	-- product Accelar 1050 L3 Switch
	mAccelar1051(55),	-- product Accelar 1051 L3 Switch
	mAccelar2400(56) 	-- product Accelar 2400 L3 Switch
	}
-- This type is used to specify a concentrator chassis.


-- Top Branches under "synoptics"

synoptics	OBJECT IDENTIFIER ::= { enterprises 45 }

products	OBJECT IDENTIFIER ::= { synoptics 1 }
temporary 	OBJECT IDENTIFIER ::= { synoptics 2 }
registration	OBJECT IDENTIFIER ::= { synoptics 3 }


-- Branches under "products"

series1000	OBJECT IDENTIFIER ::= { products 1 }
s3SnmpAgent	OBJECT IDENTIFIER ::= { products 2 }
series3000	OBJECT IDENTIFIER ::= { products 3 }
superAgent	OBJECT IDENTIFIER ::= { products 4 }
specialTraps	OBJECT IDENTIFIER ::= { products 5 }
series5000	OBJECT IDENTIFIER ::= { products 6 }
lanSwitch	OBJECT IDENTIFIER ::= { products 7 }


-- Branches under "temporary"

-- ieee8023	OBJECT IDENTIFIER ::= { temporary 1 }
-- proj1(del)	OBJECT IDENTIFIER ::= { temporary 2 }
-- proj2(sa)	OBJECT IDENTIFIER ::= { temporary 3 }
-- proj3(lc)	OBJECT IDENTIFIER ::= { temporary 4 }
-- proj4(pen)	OBJECT IDENTIFIER ::= { temporary 5 }
-- proj5(phe)	OBJECT IDENTIFIER ::= { temporary 6 }
-- proj6(fddi)	OBJECT IDENTIFIER ::= { temporary 7 }
-- proj7(xo)	OBJECT IDENTIFIER ::= { temporary 8 }

-- Branches under "registration" (values for object sysObjectId)
s3reg-other	OBJECT IDENTIFIER ::= { registration 1 }


s3reg-3000	OBJECT IDENTIFIER ::= { registration 2 }
  s3reg-3000-enetNMM
		OBJECT IDENTIFIER ::= { s3reg-3000 1 }
  s3reg-3000-trNMM
		OBJECT IDENTIFIER ::= { s3reg-3000 2 }
  s3reg-3000-FDDI-NMM
		OBJECT IDENTIFIER ::= { s3reg-3000 3 }
  s3reg-3000-FastEthNMM
		OBJECT IDENTIFIER ::= { s3reg-3000 4 }
  s3reg-3000-ethSwitchNMM
		OBJECT IDENTIFIER ::= { s3reg-3000 5 }


s3reg-3030	OBJECT IDENTIFIER ::= { registration 3 }
  s3reg-3030-enetNMM
		OBJECT IDENTIFIER ::= { s3reg-3030 1 }
  s3reg-3030-trNMM
		OBJECT IDENTIFIER ::= { s3reg-3030 2 }
  s3reg-3030-FDDI-NMM
		OBJECT IDENTIFIER ::= { s3reg-3030 3 }
  s3reg-3030-ethSwitchNMM
		OBJECT IDENTIFIER ::= { s3reg-3030 4 } 


s3reg-2310	OBJECT IDENTIFIER ::= { registration 4 }
  s3reg-2310-enetNMM
		OBJECT IDENTIFIER ::= { s3reg-2310 1 }
  s3reg-2310-trNMM
		OBJECT IDENTIFIER ::= { s3reg-2310 2 }
  s3reg-2310-FDDI-NMM
		OBJECT IDENTIFIER ::= { s3reg-2310 3 }


s3reg-332X	OBJECT IDENTIFIER ::= { registration 5 }
s3reg-332XS	OBJECT IDENTIFIER ::= { registration 6 }
s3reg-3356	OBJECT IDENTIFIER ::= { registration 7 }


s3reg-2810	OBJECT IDENTIFIER ::= { registration 8 }
  s3reg-2810-enetNMM
		OBJECT IDENTIFIER ::= { s3reg-2810 1 }


s3reg-2715	OBJECT IDENTIFIER ::= { registration 9 }
  s3reg-2715-trNMM
	OBJECT IDENTIFIER ::= { s3reg-2715 1 }


s3reg-291X	OBJECT IDENTIFIER ::= { registration 10 }
  s3reg-291X-FDDI-NMM
		OBJECT IDENTIFIER ::= { s3reg-291X 1 }


s3reg-3394	OBJECT IDENTIFIER ::= { registration 11 }

s3reg-281X	OBJECT IDENTIFIER ::= { registration 12 }
  s3reg-281X-enetNMM
		OBJECT IDENTIFIER ::= { s3reg-281X 1 }


s5reg-5000	OBJECT IDENTIFIER ::= { registration 13 }
  s5reg-5000-ethNMM  -- Ethernet NMM in 5000 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5000 1 }
  s5reg-5000-tokNMM  -- Token Ring NMM in 5000 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5000 2 }
  s5reg-5000-fddNMM  -- FDDI NMM in 5000 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5000 3 }
  s5reg-5000-atmNMM  -- ATM NMM in 5000 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5000 4 }
  s5reg-5000-ethSwitchNMM  -- Ethernet Switch NMM in 5000 Chassis
		OBJECT IDENTIFIER ::= {s5reg-5000 5}
  s5reg-5000-ethFastEthNMM  -- 10/100 Ethernet NMM in 5000 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5000 6 }
  s5reg-5000-eth10-100SwitchNMM  -- 10/100 Ethernet Switch NMM in 5000 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5000 7 }


s3reg-281XSA	OBJECT IDENTIFIER ::= { registration 14 }
  s3reg-281XSA-enetNMM
		OBJECT IDENTIFIER ::= { s3reg-281XSA 1 }


lsreg-28xxx	OBJECT IDENTIFIER ::= { registration 15 }
  lsreg-28xxx-NMM
		OBJECT IDENTIFIER ::= { lsreg-28xxx 1 }


s3reg-8xx	OBJECT IDENTIFIER ::= { registration 16 }
  s3reg-810M-enetNMM
		OBJECT IDENTIFIER ::= { s3reg-8xx 1 }


s5reg-5005	OBJECT IDENTIFIER ::= { registration 17 }
  s5reg-5005-ethNMM  -- Ethernet NMM in 5005 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5005 1 }
  s5reg-5005-tokNMM  -- Token Ring NMM in 5005 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5005 2 }
  s5reg-5005-ethSwitchNMM -- Ethernet Switch NMM in 5005 Chassis
	        OBJECT IDENTIFIER ::= { s5reg-5005 3 }
  s5reg-5005-fddNMM  -- FDDI NMM in 5005 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5005 4 }
  s5reg-5005-ethFastEthNMM  -- 10/100 Ethernet NMM in 5005 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5005 5 }
  s5reg-5005-eth10-100SwitchNMM -- 10/100 Ethernet Switch NMM in 5005 Chassis
		OBJECT IDENTIFIER ::= { s5reg-5005 7 }

s3reg-AlcatelConc	OBJECT IDENTIFIER ::= { registration 18 }
  s3reg-AlcatelEthConc-enetNMM
		OBJECT IDENTIFIER ::= { s3reg-AlcatelConc 1 }


s3reg-271XSA	OBJECT IDENTIFIER ::= { registration 19 }
  s3reg-271XSA-trNMM	OBJECT IDENTIFIER ::= { s3reg-271XSA 1 }


ecreg-1032x	OBJECT IDENTIFIER ::= { registration 20 }
  s3reg-1032x-NMM	OBJECT IDENTIFIER ::= { ecreg-1032x 1 }


sreg-5DN00x	OBJECT IDENTIFIER ::= { registration 21 }
  sreg-5DN00x-EthNMM	OBJECT IDENTIFIER ::= { sreg-5DN00x 1 } 


sreg-BayStackEth	OBJECT IDENTIFIER ::= { registration 22 }
  sreg-BayStackEth-ethNMM   OBJECT IDENTIFIER ::= { sreg-BayStackEth 1 }


sreg-2300x	OBJECT IDENTIFIER ::= { registration 23 }
  sreg-2300x-NMM	OBJECT IDENTIFIER ::= { sreg-2300x 1 }


sreg-2310x	OBJECT IDENTIFIER ::= { registration 24 }
  sreg-2310x-NMM	OBJECT IDENTIFIER ::= { sreg-2310x 1 }

sreg-Orion	OBJECT IDENTIFIER ::= { registration 25 }
  sreg-Orion-ethNMM	OBJECT IDENTIFIER ::= { sreg-Orion 1 }

sreg-BayStack100Hub     OBJECT IDENTIFIER ::= { registration 26 }
  sreg-BayStack100Unit-12Port
                OBJECT IDENTIFIER ::= { sreg-BayStack100Hub 1 }

sreg-BayStackTr  OBJECT IDENTIFIER ::= { registration 27 }
   sreg-BayStackTr-trNMM -- BayStackTr NMM in a virtual Chassis
		 OBJECT IDENTIFIER ::= { sreg-BayStackTr 1 }

lsreg-28200   OBJECT IDENTIFIER ::= { registration 28 }
   lsreg-28200-ethSwitchNMM -- 28200 Ethernet Switch
                 OBJECT IDENTIFIER ::= { lsreg-28200 1 }

sreg-BayStack302   OBJECT IDENTIFIER ::= { registration 29 }
   sreg-BayStack302-9port -- BayStack302 8+1Tx/Fx 10 Mb/s Ethernet Switch 
                 OBJECT IDENTIFIER ::= { sreg-BayStack302 1 }

sreg-BayStack350   OBJECT IDENTIFIER ::= { registration 30 }
   sreg-BayStack350-ethSwitchNMM  -- BayStack350 Family 10/100 Adaptive Switches
                 OBJECT IDENTIFIER ::= { sreg-BayStack350 1 }

sreg-BayStack150Eth        OBJECT IDENTIFIER ::= { registration 31 }
  sreg-BayStack150Eth-ethNMM
		OBJECT IDENTIFIER ::= { sreg-BayStack150Eth 1 }
   
sreg-BayStack303-304	OBJECT IDENTIFIER ::= { registration 32 }
  sreg-BayStack303-304-Sw   -- 12-24 10mb 1 100mb with MDA Switch
                 OBJECT IDENTIFIER ::= { sreg-BayStack303-304 1 }

sreg-BayStack200Eth        OBJECT IDENTIFIER ::= { registration 33 }
  sreg-BayStack200Eth-ethNMM  --BayStack200 Ethernet Hub
		OBJECT IDENTIFIER ::= { sreg-BayStack200Eth 1 }

sreg-BayStack250Eth        OBJECT IDENTIFIER ::= { registration 34 }
  sreg-BayStack250Eth-ethNMM  --BayStack250 10/100 Ethernet Hub
              OBJECT IDENTIFIER ::= { sreg-BayStack250Eth 1 }
 		 
END
IGMP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, experimental, Counter32,               
    Integer32, IpAddress, TimeTicks  FROM SNMPv2-SMI
    RowStatus, TruthValue            FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF;


igmpMIB MODULE-IDENTITY
    LAST-UPDATED "9504281659Z"
    ORGANIZATION "IETF IDMR Working Group."
    CONTACT-INFO
            " Keith McCloghrie
              Cisco Systems, Inc.
              170 West Tasman Drive
              San Jose, CA  95134-1706
              US

              Phone: +1 408 526 5260
              EMail: kzm@cisco.com"
    DESCRIPTION
            "The MIB module for IGMP Management."
    ::= { experimental 59 }


igmpMIBObjects     OBJECT IDENTIFIER ::= { igmpMIB 1 }

igmp      OBJECT IDENTIFIER ::= { igmpMIBObjects 1 }

--
--  The IGMP Interface Table
--

igmpInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF IgmpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the interfaces on which IGMP
            is enabled."
    ::= { igmp 1 }

igmpInterfaceEntry OBJECT-TYPE
    SYNTAX     IgmpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) representing an interface on
            which IGMP is enabled."
    INDEX      { igmpInterfaceIfIndex }
    ::= { igmpInterfaceTable 1 }

IgmpInterfaceEntry ::= SEQUENCE {
    igmpInterfaceIfIndex               Integer32,
    igmpInterfaceQueryInterval         Integer32,
    igmpInterfaceStatus                RowStatus,
    igmpInterfaceVersion               INTEGER,
    igmpInterfaceQuerier               IpAddress,
    igmpInterfaceQueryMaxResponseTime  Integer32,
    igmpInterfaceQuerierPresentTimeout Integer32,
    igmpInterfaceLeaveEnabled          TruthValue,
    igmpInterfaceVersion1QuerierTimer  Integer32,                        
    igmpInterfaceWrongVersionQueries   Counter32,                        
    igmpInterfaceJoins                 Counter32,                       
    igmpInterfaceLeaves                Counter32,
    igmpInterfaceRobustness            Integer32,
    igmpInterfaceLastMembQueryIntvl    Integer32,
    igmpInterfaceOperVersion           INTEGER
}

igmpInterfaceIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The interface for which IGMP is enabled."
    ::= { igmpInterfaceEntry 1 }

igmpInterfaceQueryInterval OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The frequency at which IGMP Host-Query packets are
            transmitted on this interface."
    DEFVAL     { 125 }
    ::= { igmpInterfaceEntry 2 }

igmpInterfaceStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The activation of a row enables IGMP on the interface.  The
            destruction of a row disables IGMP on the interface."
    ::= { igmpInterfaceEntry 3 }

igmpInterfaceVersion OBJECT-TYPE
    SYNTAX     INTEGER { version1(1), version2(2) }
    MAX-ACCESS read-write
    STATUS     current
    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 }
    ::= { igmpInterfaceEntry 4 }

igmpInterfaceQuerier OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the IGMP Querier on the IP subnet to which
            this interface is attached."
    ::= { igmpInterfaceEntry 5 }

igmpInterfaceQueryMaxResponseTime OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The maximum query response time advertised in IGMPv2
            queries on this interface.  Smaller values allow a router to
            prune groups faster."
    DEFVAL     { 10 }                                                    
    ::= { igmpInterfaceEntry 6 }

igmpInterfaceQuerierPresentTimeout OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    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 }                                                   
    ::= { igmpInterfaceEntry 7 }

igmpInterfaceLeaveEnabled OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An indication of whether the processing of IGMPv2 Leave
            messages is enabled on this interface."
    DEFVAL    { true }
    ::= { igmpInterfaceEntry 8 }

igmpInterfaceVersion1QuerierTimer OBJECT-TYPE                            
    SYNTAX     Integer32                                                 
    MAX-ACCESS read-only                                                 
    STATUS     current                                                   
    DESCRIPTION                                                          
            "The time remaining until the host assumes that there are no 
            IGMPv1 routers present on the interface.  While this is      
            non-zero, the host will reply to all queries with version 1  
            membership reports."                                         
    ::= { igmpInterfaceEntry 9 }                                         

igmpInterfaceWrongVersionQueries OBJECT-TYPE                             
    SYNTAX     Counter32                                                 
    MAX-ACCESS read-only                                                 
    STATUS     current                                                   
    DESCRIPTION                                                          
            "The number of queries received whose IGMP version does not 
            match igmpInterfaceVersion.   IGMP requires that all routers 
            on a LAN be configured to run the same version of IGMP.      
            Thus, if any queries are received with the wrong version,    
            this indicates a configuration error."                      
    ::= { igmpInterfaceEntry 10 }                                      

igmpInterfaceJoins OBJECT-TYPE                                           
    SYNTAX     Counter32                                                 
    MAX-ACCESS read-only                                                 
    STATUS     current                                                   
    DESCRIPTION                                                          
            "The number of times a group membership has been added on    
            this interface; that is, the number of times an entry for    
            this interface has been added to the Cache Table.  This     
            object gives an indication of the amount of IGMP activity   
            over time."                                                
    ::= { igmpInterfaceEntry 11 }                                     

igmpInterfaceLeaves OBJECT-TYPE                                          
    SYNTAX     Counter32                                                 
    MAX-ACCESS read-only                                                 
    STATUS     current                                                   
    DESCRIPTION                                                          
            "The number of times a group membership has been removed     
            from this interface; that is, the number of times an entry   
            for this interface has been deleted from the Cache Table.    
            The difference between this and igmpInterfaceJoins indicates 
            the current number of entries in the Cache Table."           
    ::= { igmpInterfaceEntry 12 }                                        

igmpInterfaceRobustness OBJECT-TYPE
    SYNTAX     Integer32 (2..255)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The robustness variable allows tuning for the expected packet
             loss on a subnet.  If a subnet is expected to be lossy, the
             robustness Variable may be increased. IGMP is robust to
             (Robustness Variable-1) packet losses."
    DEFVAL     { 2 }
    ::= { igmpInterfaceEntry 14 }

igmpInterfaceLastMembQueryIntvl OBJECT-TYPE
    SYNTAX     Integer32 (2..255)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            ""
    DEFVAL     { 10 }
    ::= { igmpInterfaceEntry 15 }

igmpInterfaceOperVersion OBJECT-TYPE
    SYNTAX     INTEGER { version1(1), version2(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The operational version of IGMP which is running on 
             this interface."
    ::= { igmpInterfaceEntry 16 }

--
--  The IGMP Cache Table
--

igmpCacheTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF IgmpCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the IP multicast groups for
            which there are members on a particular interface."
    ::= { igmp 2 }

igmpCacheEntry OBJECT-TYPE
    SYNTAX     IgmpCacheEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the igmpCacheTable."
    INDEX      { igmpCacheAddress, igmpCacheIfIndex }
    ::= { igmpCacheTable 1 }

IgmpCacheEntry ::= SEQUENCE {
    igmpCacheAddress            IpAddress,
    igmpCacheIfIndex            Integer32,
    igmpCacheSelf               TruthValue,	-- excluded
    igmpCacheLastReporter       IpAddress,
    igmpCacheUpTime             TimeTicks,	-- excluded
    igmpCacheExpiryTime         TimeTicks,
    igmpCacheStatus             RowStatus,
    igmpCacheVersion1HostTimer  Integer32                                
}

igmpCacheAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information."
    ::= { igmpCacheEntry 1 }

igmpCacheIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The interface for which this entry contains information for
            an IP multicast group address."
    ::= { igmpCacheEntry 2 }

igmpCacheSelf OBJECT-TYPE
    SYNTAX     TruthValue
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "An indication of whether the local system is a member of
            this group address on this interface."
    DEFVAL     { true }
    ::= { igmpCacheEntry 3 }

igmpCacheLastReporter OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP address of the source of the last membership report
            received for this IP Multicast group address on this
            interface.  If no membership report has been received, this
            object has the value 0.0.0.0."
    ::= { igmpCacheEntry 4 }

igmpCacheUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since the system joined this group address, or
            zero if the system is not currently a member."
    ::= { igmpCacheEntry 5 }

igmpCacheExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum amount of time remaining before this entry will
            be aged out."
    ::= { igmpCacheEntry 6 }

igmpCacheStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The status of this entry."
    ::= { igmpCacheEntry 7 }

igmpCacheVersion1HostTimer OBJECT-TYPE                                   
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time remaining until the local router will assume that
            there are no longer any IGMP version 1 members on the IP     
            subnet attached to this interface.  Upon hearing any IGMPv1
            Membership Report, this value is reset to the group
            membership timer.  While this time remaining is non-zero,
            the local router ignores any IGMPv2 Leave messages for this  
            group that it receives on this interface."                   
    ::= { igmpCacheEntry 8 }

-- conformance information

igmpMIBConformance
               OBJECT IDENTIFIER ::= { igmpMIB 2 }
igmpMIBCompliances
               OBJECT IDENTIFIER ::= { igmpMIBConformance 1 }
igmpMIBGroups  OBJECT IDENTIFIER ::= { igmpMIBConformance 2 }


-- compliance statements

igmpHostMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for hosts implementing the IGMP
            MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { igmpBaseMIBGroup }

    ::= { igmpMIBCompliances 1 }


igmpRouterMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for routers implementing the IGMP
            MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { igmpBaseMIBGroup,
                           igmpRouterMIBGroup
                         }
    ::= { igmpMIBCompliances 2 }


-- units of conformance

igmpBaseMIBGroup OBJECT-GROUP
    OBJECTS { igmpCacheSelf, igmpCacheLastReporter,
              igmpCacheStatus, igmpInterfaceStatus
            }
    STATUS  current
    DESCRIPTION
            "The basic collection of objects providing management of
            IGMP version 1 or 2."
    ::= { igmpMIBGroups 1 }

igmpRouterMIBGroup OBJECT-GROUP
    OBJECTS { igmpCacheUpTime, igmpCacheExpiryTime,
              igmpInterfaceQueryInterval
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional objects for management of IGMP
            version 1 or 2 in routers."
    ::= { igmpMIBGroups 2 }


igmpBaseVersion2MIBGroup OBJECT-GROUP
    OBJECTS { igmpInterfaceQuerier,
              igmpInterfaceVersion1QuerierTimer                         
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional objects for management of IGMP
            version 2."
    ::= { igmpMIBGroups 3 }

igmpRouterVersion2MIBGroup OBJECT-GROUP
    OBJECTS { igmpInterfaceVersion,                                      
              igmpInterfaceQueryMaxResponseTime,
              igmpInterfaceQuerierPresentTimeout,
              igmpInterfaceLeaveEnabled,
              igmpInterfaceWrongVersionQueries,                          
              igmpInterfaceJoins, igmpInterfaceLeaves,                   
              igmpCacheVersion1HostTimer                                 
            }
    STATUS  current
    DESCRIPTION
            "A collection of additional objects for management of IGMP
            version 2 in routers."
    ::= { igmpMIBGroups 4 }

END

IPX DEFINITIONS ::= BEGIN

-- This MIB defines the management information for a system using the IPX
-- protocol.  The MIB consists of four groups:
--
--    1.  System Group - contains general information about all instances
--                       of IPX on the system
--
--    2.  Circuit Group - contains information about all circuits used by
--                        IPX on the system
--
--    3.  Forwarding Group - contains generic routing information that
--                           must be provided by any IPX routing protocol.
--
--    4.  Services Group - contains information about all known services.
--
-- The MIB is designed to support multiple instances of the IPX
-- protocol on one system via a system instance identifier which is the
-- primary index for every table in this MIB.
--
-- This MIB is designed to provide a basic framework for the management
-- of systems implementing the IPX protocol.  Additional MIBs may be
-- created (especially in the area of IPX routing protocols) to contain
-- more specific information.  Whenever possible, these additional MIBs
-- should follow the format of this IPX MIB.  Information in these MIBs
-- should be linked to this MIB via the use of the system instance
-- identifier mentioned above.
--
--
-- Changes:
--
--    4/15/94:  Cleanup of some typographical errors
--
--    4/21/94:  Change ipxCircNetNumber acces to read-write

IMPORTS
        enterprises, Counter
                FROM RFC1155-SMI
        OBJECT-TYPE
                FROM RFC-1212
        TRAP-TYPE
                FROM RFC-1215
        PhysAddress, DisplayString
                FROM RFC1213-MIB;

novell  OBJECT IDENTIFIER ::= { enterprises 23 }
mibDoc  OBJECT IDENTIFIER ::= { novell 2 }
ipx     OBJECT IDENTIFIER ::= { mibDoc 5 }

-- Groups

ipxSystem OBJECT IDENTIFIER ::= {ipx 1}
ipxCircuit OBJECT IDENTIFIER ::= {ipx 2}
ipxForwarding OBJECT IDENTIFIER ::= {ipx 3}
ipxServices OBJECT IDENTIFIER ::= {ipx 4}
ipxTraps OBJECT IDENTIFIER ::= {ipx 5}

-- Types

NetNumber ::= OCTET STRING (SIZE(4))

-- System Group
--   This group contains global information about each instance of IPX
--   running on one system.

-- Basic System Table
--   This table contains one entry for each instance of IPX running on
--   the system.  It contains the management information that should
--   be made available by all implementations of the IPX protocol.

ipxBasicSysTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF IPXBasicSysEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The IPX System table - basic information."
   ::= {ipxSystem 1}

ipxBasicSysEntry OBJECT-TYPE
   SYNTAX      IPXBasicSysEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one instance of IPX running
                on the system."
   INDEX       {ipxBasicSysInstance}
   ::= {ipxBasicSysTable 1}

IPXBasicSysEntry ::= SEQUENCE {
                        ipxBasicSysInstance
                           INTEGER,
                        ipxBasicSysExistState
                           INTEGER,
                        ipxBasicSysNetNumber
                           NetNumber,
                        ipxBasicSysNode
                           OCTET STRING,
                        ipxBasicSysName
                           OCTET STRING,
                        ipxBasicSysInReceives
                           Counter,
                        ipxBasicSysInHdrErrors
                           Counter,
                        ipxBasicSysInUnknownSockets
                           Counter,
                        ipxBasicSysInDiscards
                           Counter,
                        ipxBasicSysInBadChecksums
                           Counter,
                        ipxBasicSysInDelivers
                           Counter,
                        ipxBasicSysNoRoutes
                           Counter,
                        ipxBasicSysOutRequests
                           Counter,
                        ipxBasicSysOutMalformedRequests
                           Counter,
                        ipxBasicSysOutDiscards
                           Counter,
                        ipxBasicSysOutPackets
                           Counter,
                        ipxBasicSysConfigSockets
                           INTEGER,
                        ipxBasicSysOpenSocketFails
                           Counter
                    }

ipxBasicSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of IPX to which this
                row corresponds.  This value may be written only when
                creating a new entry in the table."
   ::= {ipxBasicSysEntry 1}

ipxBasicSysExistState OBJECT-TYPE
   SYNTAX      INTEGER {
                        off(1),
                        on(2)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The validity of this entry in the IPX system table.
                Setting this field to off indicates that this entry may be
                deleted from the system table at the IPX implementation's
                discretion."
   ::= {ipxBasicSysEntry 2}

ipxBasicSysNetNumber OBJECT-TYPE
   SYNTAX      NetNumber
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The network number portion of the IPX address of this
                system."
   ::= {ipxBasicSysEntry 3}

ipxBasicSysNode OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(6))
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The node number portion of the IPX address of this
                system."
   ::= {ipxBasicSysEntry 4}

ipxBasicSysName OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(0..48))
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The readable name for this system."
   ::= {ipxBasicSysEntry 5}

ipxBasicSysInReceives OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The total number of IPX packets received, including
                those received in error."
   ::= {ipxBasicSysEntry 6}

ipxBasicSysInHdrErrors OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of IPX packets discarded due to errors in
                their headers, including any IPX packet with a size less
                than the minimum of 30 bytes."
   ::= {ipxBasicSysEntry 7}

ipxBasicSysInUnknownSockets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of IPX packets discarded because the
                destination socket was not open."
   ::= {ipxBasicSysEntry 8}

ipxBasicSysInDiscards OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of IPX packets received but discarded due to
                reasons other than those accounted for by
                ipxBasicSysInHdrErrors, ipxBasicSysInUnknownSockets,
                ipxAdvSysInDiscards, and ipxAdvSysInCompressDiscards."
   ::= {ipxBasicSysEntry 9}

ipxBasicSysInBadChecksums OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of IPX packets received with incorrect
                checksums."
   ::= {ipxBasicSysEntry 10}

ipxBasicSysInDelivers OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The total number of IPX packets delivered locally,
                including packets from local applications."
   ::= {ipxBasicSysEntry 11}

ipxBasicSysNoRoutes OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of times no route to a destination was
                found."
   ::= {ipxBasicSysEntry 12}

ipxBasicSysOutRequests OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of IPX packets supplied locally for
                transmission, not including any packets counted in
                ipxAdvForwPackets."
   ::= {ipxBasicSysEntry 13}

ipxBasicSysOutMalformedRequests OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of IPX packets supplied locally that contained
                errors in their structure."
   ::= {ipxBasicSysEntry 14}

ipxBasicSysOutDiscards OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of outgoing IPX packets discarded due to
                reasons other than those accounted for in
                ipxBasicSysOutMalformedRequests, ipxAdvSysOutFiltered,
                and ipxAdvSysOutCompressDiscards."
   ::= {ipxBasicSysEntry 15}

ipxBasicSysOutPackets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The total number of IPX packets transmitted."
   ::= {ipxBasicSysEntry 16}

ipxBasicSysConfigSockets OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The configured maximum number of IPX sockets that may be
                open at one time."
   ::= {ipxBasicSysEntry 17}

ipxBasicSysOpenSocketFails OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of IPX socket open calls which failed."
   ::= {ipxBasicSysEntry 18}

-- Advanced System Table
--   This table contains one entry for each instance of IPX running on
--   the system.  It contains the advanced management information that
--   may not be available from all implementations of the IPX protocol.

ipxAdvSysTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF IPXAdvSysEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The IPX System table - advanced information."
   ::= {ipxSystem 2}

ipxAdvSysEntry OBJECT-TYPE
   SYNTAX      IPXAdvSysEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one instance of IPX running
                on the system."
   INDEX       {ipxAdvSysInstance}
   ::= {ipxAdvSysTable 1}

IPXAdvSysEntry ::= SEQUENCE {
                     ipxAdvSysInstance
                        INTEGER,
                     ipxAdvSysMaxPathSplits
                        INTEGER,
                     ipxAdvSysMaxHops
                        INTEGER,
                     ipxAdvSysInTooManyHops
                        Counter,
                     ipxAdvSysInFiltered
                        Counter,
                     ipxAdvSysInCompressDiscards
                        Counter,
                     ipxAdvSysNETBIOSPackets
                        Counter,
                     ipxAdvSysForwPackets
                        Counter,
                     ipxAdvSysOutFiltered
                        Counter,
                     ipxAdvSysOutCompressDiscards
                        Counter,
                     ipxAdvSysCircCount
                        INTEGER,
                     ipxAdvSysDestCount
                        INTEGER,
                     ipxAdvSysServCount
                        INTEGER
                    }

ipxAdvSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of IPX to which this
                row corresponds.  This value may be written only when
                creating a new entry in the table."
   ::= {ipxAdvSysEntry 1}

ipxAdvSysMaxPathSplits OBJECT-TYPE
   SYNTAX      INTEGER (1..32)
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The maximum number of paths with equal routing metric
                value which this instance of the IPX may split
                between when forwarding packets."
   DEFVAL      { 1 }
   ::= {ipxAdvSysEntry 2}

ipxAdvSysMaxHops OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The maximum number of hops a packet may take."
   DEFVAL      { 64 }
   ::= {ipxAdvSysEntry 3}

ipxAdvSysInTooManyHops OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of IPX packets discarded due to exceeding the
                maximum hop count."
   ::= {ipxAdvSysEntry 4}

ipxAdvSysInFiltered OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of incoming IPX packets discarded due to
                filtering."
   ::= {ipxAdvSysEntry 5}

ipxAdvSysInCompressDiscards OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of incoming IPX packets discarded due to
                decompression errors."
   ::= {ipxAdvSysEntry 6}

ipxAdvSysNETBIOSPackets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of NETBIOS packets received."
   ::= {ipxAdvSysEntry 7}

ipxAdvSysForwPackets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of IPX packets forwarded."
   ::= {ipxAdvSysEntry 8}

ipxAdvSysOutFiltered OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of outgoing IPX packets discarded due to
                filtering."
   ::= {ipxAdvSysEntry 9}

ipxAdvSysOutCompressDiscards OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of outgoing IPX packets discarded due to
                compression errors."
   ::= {ipxAdvSysEntry 10}

ipxAdvSysCircCount OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of circuits known to this instance of IPX."
   ::= {ipxAdvSysEntry 11}

ipxAdvSysDestCount OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of currently reachable destinations known to
                this instance of IPX."
   ::= {ipxAdvSysEntry 12}

ipxAdvSysServCount OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of services known to this instance of IPX."
   ::= {ipxAdvSysEntry 13}

-- Circuit Group
--   This group contains management information for each circuit known
--   to this system.

-- Circuit Table
--   The Circuit table contains an entry for each circuit known to the
--   system.

ipxCircTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF IPXCircEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The Circuit table."
   ::= {ipxCircuit 1}

ipxCircEntry OBJECT-TYPE
   SYNTAX      IPXCircEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one circuit known to the
                system."
   INDEX       {
                ipxCircSysInstance,
                ipxCircIndex
               }
   ::= {ipxCircTable 1}

IPXCircEntry ::= SEQUENCE {
                     ipxCircSysInstance
                        INTEGER,
                     ipxCircIndex
                        INTEGER,
                     ipxCircExistState
                        INTEGER,
                     ipxCircOperState
                        INTEGER,
                     ipxCircIfIndex
                        INTEGER,
                     ipxCircName
                        OCTET STRING,
                     ipxCircType
                        INTEGER,
                     ipxCircDialName
                        OCTET STRING,
                     ipxCircLocalMaxPacketSize
                        INTEGER,
                     ipxCircCompressState
                        INTEGER,
                     ipxCircCompressSlots
                        INTEGER,
                     ipxCircStaticStatus
                        INTEGER,
                     ipxCircCompressedSent
                        Counter,
                     ipxCircCompressedInitSent
                        Counter,
                     ipxCircCompressedRejectsSent
                        Counter,
                     ipxCircUncompressedSent
                        Counter,
                     ipxCircCompressedReceived
                        Counter,
                     ipxCircCompressedInitReceived
                        Counter,
                     ipxCircCompressedRejectsReceived
                        Counter,
                     ipxCircUncompressedReceived
                        Counter,
                     ipxCircMediaType
                        OCTET STRING,
                     ipxCircNetNumber
                        NetNumber,
                     ipxCircStateChanges
                        Counter,
                     ipxCircInitFails
                        Counter,
                     ipxCircDelay
                        INTEGER,
                     ipxCircThroughput
                        INTEGER,
                     ipxCircNeighRouterName
                        OCTET STRING,
                     ipxCircNeighInternalNetNum
                        NetNumber
                    }

ipxCircSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of IPX
                to which this entry corresponds.  This value may be
                written only when creating a new entry in the table."
   ::= {ipxCircEntry 1}

ipxCircIndex OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The identifier of this circuit, unique within the
                instance of IPX.  This value may be written
                only when creating a new entry in the table."
   ::= {ipxCircEntry 2}

ipxCircExistState OBJECT-TYPE
   SYNTAX      INTEGER {
                        off(1),
                        on(2)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The validity of this circuit entry.  A circuit with this
                value set to off may be deleted from the table at the
                IPX implementation's discretion."
   ::= {ipxCircEntry 3}

ipxCircOperState OBJECT-TYPE
   SYNTAX      INTEGER {
                        down(1),
                        up(2),
                        sleeping(3)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The operational state of the circuit."
   ::= {ipxCircEntry 4}

ipxCircIfIndex OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The value of ifIndex for the interface used by this
                circuit.  This value may be written only when creating
                a new entry in the table."
   ::= {ipxCircEntry 5}

ipxCircName OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(0..48))
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The readable name for the circuit."
   ::= {ipxCircEntry 6}

ipxCircType OBJECT-TYPE
   SYNTAX      INTEGER {
                        other(1),
                        broadcast(2),
                        ptToPt(3),
                        wanRIP(4),
                        unnumberedRIP(5),
                        dynamic(6),
                        wanWS(7)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The type of the circuit."
   ::= {ipxCircEntry 7}

ipxCircDialName OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(0..48))
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The symbolic name used to refernce the dialing information
                used to create this circuit.  This value may be written
                only when creating a new entry in the table."
   ::= {ipxCircEntry 8}

ipxCircLocalMaxPacketSize OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The maximum size (including header), in bytes, that the
                system supports locally on this circuit."
   ::= {ipxCircEntry 9}

ipxCircCompressState OBJECT-TYPE
   SYNTAX      INTEGER {
                        off(1),
                        on(2)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The compression state on this circuit.  This value may
                be written only when creating a new entry in the table."
   DEFVAL      { off }
   ::= {ipxCircEntry 10}

ipxCircCompressSlots OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The number of compression slots available on this
                circuit.  This value may be written only when creating a
                new entry in the table."
   DEFVAL      { 16 }
   ::= {ipxCircEntry 11}

ipxCircStaticStatus OBJECT-TYPE
   SYNTAX      INTEGER {
                        unknown(1),
                        currentStatus(2), -- fixed due mib compiler error (was just 'current')
                        changed(3),
                        read(4),
                        reading(5),
                        write(6),
                        writing(7)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "Indicates whether the information about static routes
                and services reached via this circuit matches that
                saved in permanent storage (current).  Setting the
                value to write when it had the value changed will write
                the currently in use information to permanent storage,
                if supported.  Setting the value to read when it had
                the value changed will replace any routes and services
                currently defined for the circuit with those read from
                permanent storage, if supported."
   ::= {ipxCircEntry 12}

ipxCircCompressedSent OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of compressed packets sent."
   ::= {ipxCircEntry 13}

ipxCircCompressedInitSent OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of compression initialization packets sent."
   ::= {ipxCircEntry 14}

ipxCircCompressedRejectsSent OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of compressed packet rejected packets sent."
   ::= {ipxCircEntry 15}

ipxCircUncompressedSent OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of packets sent without being compressed
                even though compression was turned on for this circuit."
   ::= {ipxCircEntry 16}

ipxCircCompressedReceived OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of compressed packets received."
   ::= {ipxCircEntry 17}

ipxCircCompressedInitReceived OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of compression initialization packets received."
   ::= {ipxCircEntry 18}

ipxCircCompressedRejectsReceived OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of compressed packet rejected packets received."
   ::= {ipxCircEntry 19}

ipxCircUncompressedReceived OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of packets received without having been
                compressed even though compression was turned on for
                this circuit."
   ::= {ipxCircEntry 20}

ipxCircMediaType OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(2))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The media type used on this circuit."
   ::= {ipxCircEntry 21}

ipxCircNetNumber OBJECT-TYPE
   SYNTAX      NetNumber
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The IPX network number of this circuit.  This value may
                be written only when creating a new entry in the table."
   ::= {ipxCircEntry 22}

ipxCircStateChanges OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of times the circuit has changed state."
   ::= {ipxCircEntry 23}

ipxCircInitFails OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of times that initialization of this
                circuit has failed."
   ::= {ipxCircEntry 24}

ipxCircDelay OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The period of time, in milliseconds, that it takes to
                transmit one byte of data, excluding protocol headers,
                to a destination on the other end of the circuit, if
                the circuit is free of other traffic."
   ::= {ipxCircEntry 25}

ipxCircThroughput OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The amount of data, in bits per second, that may flow
                through the circuit if there is no other traffic."
   ::= {ipxCircEntry 26}

ipxCircNeighRouterName OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(0..48))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The name of the neighboring router on a WAN circuit."
   ::= {ipxCircEntry 27}

ipxCircNeighInternalNetNum OBJECT-TYPE
   SYNTAX      NetNumber
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The internal network number of the neighboring router
                on a WAN circuit."
   ::= {ipxCircEntry 28}

-- Forwarding Group
--   This group provides a representation of the forwarding database used
--   by all instances of IPX on the system.

-- Destination Table
--   The Destination table contains information about all known
--   destinations.  The routing information shown in this table represents
--   the path currently being used to reach the destination.

ipxDestTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF IPXDestEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The Destination table contains information about all
                known destinations."
   ::= {ipxForwarding 1}

ipxDestEntry OBJECT-TYPE
   SYNTAX      IPXDestEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one destination."
   INDEX       {
                ipxDestSysInstance,
                ipxDestNetNum
               }
   ::= {ipxDestTable 1}

IPXDestEntry ::= SEQUENCE {
                     ipxDestSysInstance
                        INTEGER,
                     ipxDestNetNum
                        NetNumber,
                     ipxDestProtocol
                        INTEGER,
                     ipxDestTicks
                        INTEGER,
                     ipxDestHopCount
                        INTEGER,
                     ipxDestNextHopCircIndex
                        INTEGER,
                     ipxDestNextHopNICAddress
                        PhysAddress,
                     ipxDestNextHopNetNum
                        NetNumber
                    }

ipxDestSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of IPX
                to which this row corresponds."
   ::= {ipxDestEntry 1}

ipxDestNetNum OBJECT-TYPE
   SYNTAX      NetNumber
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The IPX network number of the destination."
   ::= {ipxDestEntry 2}

ipxDestProtocol OBJECT-TYPE
   SYNTAX      INTEGER {
                        other(1),
                        local(2),
                        rip(3),
                        nlsp(4),
                        static(5)
                       }
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The routing protocol from which knowledge of this
                destination was obtained."
   ::= {ipxDestEntry 3}

ipxDestTicks OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The delay in ticks to reach this destination."
   ::= {ipxDestEntry 4}

ipxDestHopCount OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of hops necessary to reach the destination."
   ::= {ipxDestEntry 5}

ipxDestNextHopCircIndex OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the circuit used to reach the
                next hop."
   ::= {ipxDestEntry 6}

ipxDestNextHopNICAddress OBJECT-TYPE
   SYNTAX      PhysAddress
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The NIC address of the next hop."
   ::= {ipxDestEntry 7}

ipxDestNextHopNetNum OBJECT-TYPE
   SYNTAX      NetNumber
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The IPX network number of the next hop."
   ::= {ipxDestEntry 8}

-- Static Routes Table
--   This table contains the information about all the static routes
--   defined.  There may be more than one static route to any given
--   destination.  Only the route currently being used will also be
--   present in the Destination Table defined above.

ipxStaticRouteTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF IPXStaticRouteEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The Static Routes table contains information about all
                destinations reached via statically configured routes."
   ::= {ipxForwarding 2}

ipxStaticRouteEntry OBJECT-TYPE
   SYNTAX      IPXStaticRouteEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one static route."
   INDEX       {
                ipxStaticRouteSysInstance,
                ipxStaticRouteCircIndex,
                ipxStaticRouteNetNum
               }
   ::= {ipxStaticRouteTable 1}

IPXStaticRouteEntry ::= SEQUENCE {
                           ipxStaticRouteSysInstance
                              INTEGER,
                           ipxStaticRouteCircIndex
                              INTEGER,
                           ipxStaticRouteNetNum
                              NetNumber,
                           ipxStaticRouteExistState
                              INTEGER,
                           ipxStaticRouteTicks
                              INTEGER,
                           ipxStaticRouteHopCount
                              INTEGER,
                           ipxStaticRouteNextHop
                              OCTET STRING
                          }

ipxStaticRouteSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of IPX to
                which this row corresponds."
   ::= {ipxStaticRouteEntry 1}

ipxStaticRouteCircIndex OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the circuit used to
                reach the first hop in the static route."
   ::= {ipxStaticRouteEntry 2}

ipxStaticRouteNetNum OBJECT-TYPE
   SYNTAX      NetNumber
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The IPX network number of the route's destination."
   ::= {ipxStaticRouteEntry 3}

ipxStaticRouteExistState OBJECT-TYPE
   SYNTAX      INTEGER {
                        off(1),
                        on(2)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The validity of this static route.  Entries with the
                value set to off may be deleted from the table at the
                implementation's discretion."
   ::= {ipxStaticRouteEntry 4}

ipxStaticRouteTicks OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The delay, in ticks, to reach the route's destination."
   ::= {ipxStaticRouteEntry 5}

ipxStaticRouteHopCount OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The number of hops necessary to reach the destination."
   ::= {ipxStaticRouteEntry 6}

ipxStaticRouteNextHop OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(6))
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "Next hop node address."
   ::= {ipxStaticRouteEntry 7}

-- Services Group
--   The Services group contains management information for all known
--   services.

-- Services Table
--    This table contains the services information indexed by service
--    name and type.

ipxServTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF IPXServEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The table of services, indexed by name and type."
   ::= {ipxServices 1}

ipxServEntry OBJECT-TYPE
   SYNTAX      IPXServEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one service."
   INDEX       {
                ipxServSysInstance,
                ipxServType,
                ipxServName
               }
   ::= {ipxServTable 1}

IPXServEntry ::= SEQUENCE {
                     ipxServSysInstance
                        INTEGER,
                     ipxServType
                        OCTET STRING,
                     ipxServName
                        DisplayString,
                     ipxServProtocol
                        INTEGER,
                     ipxServNetNum
                        NetNumber,
                     ipxServNode
                        OCTET STRING,
                     ipxServSocket
                        OCTET STRING,
                     ipxServHopCount
                        INTEGER
                    }

ipxServSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of IPX
                to which this entry corresponds."
   ::= {ipxServEntry 1}

ipxServType OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(2))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The service type."
   ::= {ipxServEntry 2}

ipxServName OBJECT-TYPE
   SYNTAX      DisplayString (SIZE(1..48))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The service name."
   ::= {ipxServEntry 3}

ipxServProtocol OBJECT-TYPE
   SYNTAX      INTEGER {
                        other(1),
                        local(2),
                        nlsp(4),
                        static(5),
                        sap(6)
                       }
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The protocol from which knowledge of this service was
                obtained."
   ::= {ipxServEntry 4}

ipxServNetNum OBJECT-TYPE
   SYNTAX      NetNumber
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The IPX network number portion of the IPX address of the
                service."
   ::= {ipxServEntry 5}

ipxServNode OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(6))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The node portion of the IPX address of the service."
   ::= {ipxServEntry 6}

ipxServSocket OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(2))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The socket portion of the IPX address of the service."
   ::= {ipxServEntry 7}

ipxServHopCount OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of hops to the service."
   ::= {ipxServEntry 8}

-- Destination Services Table
--   This table contains the services information indexed by address,
--   name, and type.

ipxDestServTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF IPXDestServEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The table of services, indexed by address, name,
                and type."
   ::= {ipxServices 2}

ipxDestServEntry OBJECT-TYPE
   SYNTAX      IPXDestServEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one service."
   INDEX       {
                ipxDestServSysInstance,
                ipxDestServNetNum,
                ipxDestServNode,
                ipxDestServSocket,
                ipxDestServName,
                ipxDestServType
               }
   ::= {ipxDestServTable 1}

IPXDestServEntry ::= SEQUENCE {
                        ipxDestServSysInstance
                           INTEGER,
                        ipxDestServNetNum
                           NetNumber,
                        ipxDestServNode
                           OCTET STRING,
                        ipxDestServSocket
                           OCTET STRING,
                        ipxDestServName
                           DisplayString, 
                        ipxDestServType
                           OCTET STRING,
                        ipxDestServProtocol
                           INTEGER,
                        ipxDestServHopCount
                           INTEGER
                       }

ipxDestServSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of IPX
                to which this entry corresponds."
   ::= {ipxDestServEntry 1}

ipxDestServNetNum OBJECT-TYPE
   SYNTAX      NetNumber
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The IPX network number portion of the IPX address of the
                service."
   ::= {ipxDestServEntry 2}

ipxDestServNode OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(6))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The node portion of the IPX address of the service."
   ::= {ipxDestServEntry 3}

ipxDestServSocket OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(2))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The socket portion of the IPX address of the service."
   ::= {ipxDestServEntry 4}

ipxDestServName OBJECT-TYPE
   SYNTAX      DisplayString (SIZE(1..48))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The service name."
   ::= {ipxDestServEntry 5}

ipxDestServType OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(2))
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The service type."
   ::= {ipxDestServEntry 6}

ipxDestServProtocol OBJECT-TYPE
   SYNTAX      INTEGER {
                        other(1),
                        local(2),
                        nlsp(4),
                        static(5),
                        sap(6)
                       }
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The protocol from which knowledge of this service was
                obtained."
   ::= {ipxDestServEntry 7}

ipxDestServHopCount OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of hops to the service."
   ::= {ipxDestServEntry 8}

-- Static Services Table
--   This table contains information for all services reached via a
--   static route.

ipxStaticServTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF IPXStaticServEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The Static Services table contains information about
                all services reached via statically configured routes."
   ::= {ipxServices 3}

ipxStaticServEntry OBJECT-TYPE
   SYNTAX      IPXStaticServEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one service."
   INDEX       {
                ipxStaticServSysInstance,
                ipxStaticServCircIndex,
                ipxStaticServName,
                ipxStaticServType
               }
   ::= {ipxStaticServTable 1}

IPXStaticServEntry ::= SEQUENCE {
                           ipxStaticServSysInstance
                              INTEGER,
                           ipxStaticServCircIndex
                              INTEGER,
                           ipxStaticServName
                              DisplayString,
                           ipxStaticServType
                              OCTET STRING,
                           ipxStaticServExistState
                              INTEGER,
                           ipxStaticServNetNum
                              NetNumber,
                           ipxStaticServNode
                              OCTET STRING,
                           ipxStaticServSocket
                              OCTET STRING,
                           ipxStaticServHopCount
                              INTEGER
                          }

ipxStaticServSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of IPX to which
                this entry corresponds."
   ::= {ipxStaticServEntry 1}

ipxStaticServCircIndex OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The circuit used to reach this service."
   ::= {ipxStaticServEntry 2}

ipxStaticServName OBJECT-TYPE
   SYNTAX      DisplayString (SIZE(1..48))
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The service name."
   ::= {ipxStaticServEntry 3}

ipxStaticServType OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(2))
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The service type."
   ::= {ipxStaticServEntry 4}

ipxStaticServExistState OBJECT-TYPE
   SYNTAX      INTEGER {
                        off(1),
                        on(2)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The validity of this static service.  Entries with the
                value set to off may be deleted from the table at the
                implementation's discretion."
   ::= {ipxStaticServEntry 5}

ipxStaticServNetNum OBJECT-TYPE
   SYNTAX      NetNumber
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The IPX network number portion of the IPX address of the
                service."
   ::= {ipxStaticServEntry 6}

ipxStaticServNode OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(6))
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The node portion of the IPX address of the service."
   ::= {ipxStaticServEntry 7}

ipxStaticServSocket OBJECT-TYPE
   SYNTAX      OCTET STRING (SIZE(2))
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The socket portion of the IPX address of the service."
   ::= {ipxStaticServEntry 8}

ipxStaticServHopCount OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The number of hops to the service."
   ::= {ipxStaticServEntry 9}

-- Traps
--   The section describes the traps defined for IPX.

ipxTrapCircuitDown TRAP-TYPE
   ENTERPRISE    ipxTraps
   VARIABLES     {
                  ipxCircSysInstance,
                  ipxCircIndex
                 }
   DESCRIPTION   "This trap signifies that the specified circuit has
                  gone down."
   ::= 1

ipxTrapCircuitUp TRAP-TYPE
   ENTERPRISE    ipxTraps
   VARIABLES     {
                  ipxCircSysInstance,
                  ipxCircIndex
                 }
   DESCRIPTION   "This trap signifies that the specified circuit has
                  come up."
   ::= 2

END
-- *****************************************************************
-- NOVELL-RIPSAP-MIB.my:  Novell IPX RIP/SAP MIB
--
-- October 1994, Jeffrey T. Johnson
--
-- Copyright (c) 1994-1996 by cisco Systems, Inc.
-- All rights reserved.
-- 
-- *****************************************************************
--
-- This MIB is virtually identical to the RIPSAP MIB distributed as a part
-- of the Novell NetWare Link Services Protocol (NLSP) Specification 1.0,
-- Novell Part Number 100-001708-002, 2nd Edition Feb '94.  All changes
-- are syntactic in nature, and do not affect the semantics of the MIB.

NOVELL-RIPSAP-MIB DEFINITIONS ::= BEGIN

-- This MIB defines the management information for the RIP and SAP
-- protocols running in an IPX environment.  It provides information in 
-- addition to that contained in the IPX MIB itself.  All tables in this
-- MIB are linked to an instance of IPX via the system instance
-- identifier as defined in the IPX MIB.


IMPORTS 
   Counter
            FROM RFC1155-SMI
   OBJECT-TYPE
            FROM RFC-1212
   mibDoc
            FROM IPX;

ripsap  OBJECT IDENTIFIER ::= {mibDoc 20}


-- Groups

ripsapSystem  OBJECT IDENTIFIER ::= {ripsap 1}
ripsapCircuit OBJECT IDENTIFIER ::= {ripsap 2}


-- System Group
--   This group contains global information about each instance of
--   RIP/SAP running on one system.

-- RIP System Table
--   This table contains an entry for each instance of RIP
--   running on the system.

ripSysTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF RIPSysEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The RIP system table."
   ::= {ripsapSystem 1}

ripSysEntry OBJECT-TYPE
   SYNTAX      RIPSysEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one instance of RIP
                running on the system."
   INDEX       {ripSysInstance}
   ::= {ripSysTable 1}

RIPSysEntry ::= SEQUENCE {
                        ripSysInstance
                           INTEGER,
                        ripSysState
                           INTEGER,
                        ripSysIncorrectPackets
                           Counter
                       }
                           
ripSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of RIP to
                which this row corresponds.  This value links the
                instance of RIP to an instance of IPX running on the
                system  (i.e. the value of ripSysInstance should be the
                same as a value of ipxSysInstance).  This value may be
                written only when creating a new entry in the table."
   ::= {ripSysEntry 1}

ripSysState OBJECT-TYPE
   SYNTAX      INTEGER {
                        off(1),
                        on(2)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "Indicates the operational state of this instance of RIP."
   ::= {ripSysEntry 2}

ripSysIncorrectPackets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of times that an incorrectly formatted RIP
                packet was received."
   ::= {ripSysEntry 3}


-- SAP System Table
--   This table contains an entry for each instance of SAP
--   running on the system.

sapSysTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF SAPSysEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The SAP system table."
   ::= {ripsapSystem 2}

sapSysEntry OBJECT-TYPE
   SYNTAX      SAPSysEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one instance of SAP
                running on the system."
   INDEX       {sapSysInstance}
   ::= {sapSysTable 1}

SAPSysEntry ::= SEQUENCE {
                        sapSysInstance
                           INTEGER,
                        sapSysState
                           INTEGER,
                        sapSysIncorrectPackets
                           Counter
                       }
                           
sapSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of SAP to
                which this row corresponds.  This value links the
                instance of SAP to an instance of IPX running on the
                system  (i.e. the value of SApSysInstance should be the
                same as a value of ipxSysInstance).  This value may be
                written only when creating a new entry in the table."
   ::= {sapSysEntry 1}

sapSysState OBJECT-TYPE
   SYNTAX      INTEGER {
                        off(1),
                        on(2)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "Indicates the operational state of this instance of SAP."
   ::= {sapSysEntry 2}

sapSysIncorrectPackets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of times that an incorrectly formatted SAP
                packet was received."
   ::= {sapSysEntry 3}


-- Circuit Group
--   This group contains RIP and SAP management information for each
--   circuit known to this system.

-- RIP Circuit Table
--   The RIP Circuit table contains an entry for the RIP information for
--   each circuit known to the system.

ripCircTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF RIPCircEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The RIP Circuit table."
   ::= {ripsapCircuit 1}

ripCircEntry OBJECT-TYPE
   SYNTAX      RIPCircEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one circuit known to the
                system."
   INDEX       {
                ripCircSysInstance,
                ripCircIndex
               }
   ::= {ripCircTable 1}

RIPCircEntry ::= SEQUENCE {
                        ripCircSysInstance
                           INTEGER,
                        ripCircIndex
                           INTEGER,
                        ripCircState
                           INTEGER,
                        ripCircPace
                           INTEGER,
                        ripCircUpdate
                           INTEGER,
                        ripCircAgeMultiplier
                           INTEGER,
                        ripCircPacketSize
                           INTEGER,
                        ripCircOutPackets
                           Counter,
                        ripCircInPackets
                           Counter
                       }

ripCircSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of RIP and IPX
                (via ipxSysInstance) to which this entry corresponds.
                This value may be written only when creating a new entry in
                the table."
   ::= {ripCircEntry 1}

ripCircIndex OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The identifier of this circuit, unique within the
                instance of RIP.  This value corresponds to the circuit
                identifier found in ipxCircIndex.   This value may be
                written only when creating a new entry in the table."
   ::= {ripCircEntry 2}

ripCircState OBJECT-TYPE
   SYNTAX      INTEGER {
                        off(1),
                        on(2),
                        auto-on(3),
                        auto-off(4)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "Indicates whether RIP information may be sent/received
                over this circuit."
   DEFVAL      { auto-off }
   ::= {ripCircEntry 3}

ripCircPace OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The maximum pace, in packets per second, at which RIP
                packets may be sent on this circuit."
   ::= {ripCircEntry 4}

ripCircUpdate OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The RIP periodic update interval, in seconds."
   DEFVAL      { 60 }
   ::= {ripCircEntry 5}

ripCircAgeMultiplier OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The holding multiplier for information received in RIP
                periodic updates."
   DEFVAL      { 4 }
   ::= {ripCircEntry 6}

ripCircPacketSize OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The RIP packet size used on this circuit."
   ::= {ripCircEntry 7}

ripCircOutPackets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of RIP packets sent on this circuit."
   ::= {ripCircEntry 8}

ripCircInPackets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of RIP packets received on this circuit."
   ::= {ripCircEntry 9}


-- SAP Circuit Table
--   The SAP Circuit table contains an entry for the SAP information for
--   each circuit known to the system.

sapCircTable OBJECT-TYPE
   SYNTAX      SEQUENCE OF SAPCircEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "The SAP Circuit table."
   ::= {ripsapCircuit 2}

sapCircEntry OBJECT-TYPE
   SYNTAX      SAPCircEntry
   ACCESS      not-accessible
   STATUS      mandatory
   DESCRIPTION "Each entry corresponds to one circuit known to the
                system."
   INDEX       {
                sapCircSysInstance,
                sapCircIndex
               }
   ::= {sapCircTable 1}

SAPCircEntry ::= SEQUENCE {
                        sapCircSysInstance
                           INTEGER,
                        sapCircIndex
                           INTEGER,
                        sapCircState
                           INTEGER,
                        sapCircPace
                           INTEGER,
                        sapCircUpdate
                           INTEGER,
                        sapCircAgeMultiplier
                           INTEGER,
                        sapCircPacketSize
                           INTEGER,
                        sapCircGetNearestServerReply
                           INTEGER,
                        sapCircOutPackets
                           Counter,
                        sapCircInPackets
                           Counter
                       }

sapCircSysInstance OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The unique identifier of the instance of SAP and IPX
                (via ipxSysInstance) to which this entry corresponds.
                This value may be written only when creating a new entry in
                the table."
   ::= {sapCircEntry 1}

sapCircIndex OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The identifier of this circuit, unique within the
                instance of SAP.  This value corresponds to the circuit
                identifier found in ipxCircIndex.   This value may be
                written only when creating a new entry in the table."
   ::= {sapCircEntry 2}

sapCircState OBJECT-TYPE
   SYNTAX      INTEGER {
                        off(1),
                        on(2),
                        auto-on(3),
                        auto-off(4)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "Indicates whether SAP information may be sent/received
                over this circuit."
   DEFVAL      { auto-off }
   ::= {sapCircEntry 3}

sapCircPace OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The maximum pace, in packets per second, at which SAP
                packets may be sent on this circuit."
   ::= {sapCircEntry 4}

sapCircUpdate OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The SAP periodic update interval, in seconds."
   DEFVAL      { 60 }
   ::= {sapCircEntry 5}

sapCircAgeMultiplier OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The holding multiplier for information received in SAP
                periodic updates."
   DEFVAL      { 4 }
   ::= {sapCircEntry 6}

sapCircPacketSize OBJECT-TYPE
   SYNTAX      INTEGER
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "The SAP packet size used on this circuit."
   ::= {sapCircEntry 7}

sapCircGetNearestServerReply OBJECT-TYPE
   SYNTAX      INTEGER {
                        no(1),
                        yes(2)
                       }
   ACCESS      read-write
   STATUS      mandatory
   DESCRIPTION "Indicates whether to respond to SAP get nearest server
                requests received on this circuit."
   DEFVAL      { yes }
   ::= {sapCircEntry 8}

sapCircOutPackets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of SAP packets sent on this circuit."
   ::= {sapCircEntry 9}

sapCircInPackets OBJECT-TYPE
   SYNTAX      Counter
   ACCESS      read-only
   STATUS      mandatory
   DESCRIPTION "The number of SAP packets received on this circuit."
   ::= {sapCircEntry 10}

END
   VRRP-MIB DEFINITIONS ::= BEGIN
 
    IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, 
        NOTIFICATION-TYPE, Counter32, 
        Integer32, TimeTicks, IpAddress     FROM SNMPv2-SMI    -- RFC1442
        TEXTUAL-CONVENTION, RowStatus,
        TruthValue, MacAddress              FROM SNMPv2-TC     -- RFC1443
        MODULE-COMPLIANCE, OBJECT-GROUP     FROM SNMPv2-CONF   -- RFC1444
        mib-2, ifIndex                      FROM RFC1213-MIB;
 
 
    vrrp  MODULE-IDENTITY
          LAST-UPDATED "9606040900Z"    -- Dummy value
          ORGANIZATION "IETF VRRP Working Group"
          CONTACT-INFO
                 "Brian R. Jewell
          Postal: 3Com Corporation
                  5400 BayFront Plaza
                  Santa Clara, California 95052
          Tel:    +1 408 764 6173
          E-Mail: bjewell@3com.com"
 
        DESCRIPTION
            "The MIB module to describe the VRRP Version 2 Protocol."
        ::= { mib-2 46 }


    vrrpMIB         OBJECT IDENTIFIER ::= { vrrp 1 }


-- *******************************************************************
--  Textual Conventions 
-- *******************************************************************

    VrId ::= TEXTUAL-CONVENTION
        STATUS       current
        DESCRIPTION
            "A number which, along with an interface index (ifIndex),
            serves to uniquely identify a virtual router on a given VRRP
            router. A set of one or more associated addresses is assigned
            to a VRID."
        SYNTAX      Integer32 (1..255)


-- *******************************************************************
--  VRRP MIB Groups
-- *******************************************************************

    vrrpOperations      OBJECT IDENTIFIER ::= { vrrpMIB 1 }
    vrrpStatistics      OBJECT IDENTIFIER ::= { vrrpMIB 2 }
    vrrpNotifications   OBJECT IDENTIFIER ::= { vrrpMIB 3 }
    vrrpConformance     OBJECT IDENTIFIER ::= { vrrpMIB 4 }


-- *******************************************************************
--  Start of MIB objects
-- *******************************************************************

    vrrpEnable  OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
           "Enable feature."
        ::= { vrrpOperations 1 }

    vrrpNodeVersion  OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (2))
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
           "This value identifies the particular version of the VRRP
            supported by this node. The current value is '02'."
        REFERENCE
           "Virtual Router Redundancy Protocol, RFC XXXX"
        DEFVAL { '0200'H }
        ::= { vrrpOperations 2 }

    vrrpTrapCntl  OBJECT-TYPE
        SYNTAX       TruthValue
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
           "Indicates whether the VRRP-enabled router will generate
            SNMP traps for events defined in this MIB. Enabled
            results in SNMP traps; disabled, no traps are sent."
        DEFVAL { true }
        ::= { vrrpOperations 3 }


-- *******************************************************************
--  VRRP Operations Table
-- *******************************************************************

    vrrpOperTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF VrrpOperEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "Operations table for a VRRP router which consists of a
             sequence (i.e., one or more conceptual rows) of 
             'vrrpOperEntry' items."
        ::= { vrrpOperations 10 }

    vrrpOperEntry OBJECT-TYPE
        SYNTAX       VrrpOperEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "An entry in the vrrpOperTable containing the operational
             characteristics of a virtual router. On a VRRP router,
             a given virtual router is identified by a combination
             of the IF index and VRID."
        INDEX    { vrrpOperIfIndex, vrrpOperVrId }
        ::= { vrrpOperTable 1 }

    VrrpOperEntry ::=
        SEQUENCE {
            vrrpOperIfIndex
                INTEGER,
            vrrpOperVrId
                VrId,
            vrrpOperIpAddr
		IpAddress,
            vrrpOperVirtualMacAddr
                MacAddress,
            vrrpOperState
                INTEGER,
            vrrpOperControl
                INTEGER,
            vrrpOperPriority
                Integer32,
            vrrpOperIpAddrCount
                Integer32,
            vrrpOperMasterIpAddr
                IpAddress,
            vrrpOperAuthType
                INTEGER,
            vrrpOperHMACMD5Key
                OCTET STRING,
            vrrpOperAuthKey
                OCTET STRING,
            vrrpOperAdvertisementInterval
                Integer32,
            vrrpOperPreemptMode
                INTEGER,
            vrrpOperVirtualRouterUpTime
                TimeTicks,
            vrrpOperRowStatus
                RowStatus,
            vrrpOperCriticalIpAddr
                IpAddress
    }

    vrrpOperIfIndex OBJECT-TYPE
        SYNTAX       INTEGER
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION  "port interface index."
        ::= { vrrpOperEntry 1 }

    vrrpOperVrId OBJECT-TYPE
        SYNTAX       VrId
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "This object contains the Virtual Router Identifier (VRID)."
        ::= { vrrpOperEntry 2 }

    vrrpOperIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "The assigned IP addresses that a virtual router is responsible
            for backing up."
        ::= { vrrpOperEntry 3 }

    vrrpOperVirtualMacAddr OBJECT-TYPE
        SYNTAX       MacAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The virtual MAC address of the virtual router. This is derived
            as follows: 00-00-5E-00-01-<VRID>.

            Where the first three octets consist of the IANA's OUI; The
            next two octets indicate the address block of the VRRP protocol; 
            and the remaining octets consist of the VRID.

            Although this object can be derived from the 'vrrpOperVrId'
            object, it is included here, for completeness, so that it
            is easily obtainable by a management application and can be
            included in VRRP-related SNMP traps."
        REFERENCE
            "rfc1903 - MacAddress"
        ::= { vrrpOperEntry 4 }

    vrrpOperState OBJECT-TYPE
        SYNTAX       INTEGER {
            initialize(1),  -- Waiting for a startup event
            backup(2),      -- Monitoring the state/availability of
                            -- master router
            master(3)       -- Forwarding IP addresses associated with
                            -- this virtual router.
        } 
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The current state of the virtual router."
        ::= { vrrpOperEntry 5 }

    vrrpOperControl OBJECT-TYPE
        SYNTAX       INTEGER {
            enabled(1),
            disabled(2)
        }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "This object will enable/disable the virtual router
            function. Setting the value to 'enabled', will transition
            the state of the router from 'initialize to 'backup';
            Setting the value to 'disabled', will tranisition the
            router from 'master' or 'backup' to 'initialize'."
        DEFVAL    { enabled }
        ::= { vrrpOperEntry 6 }

    vrrpOperPriority OBJECT-TYPE
        SYNTAX       Integer32 (1..255)
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "This object specifies the priority for the virtual 
            router (e.g., master election) with respect to other 
            virtual routers that are backing up a one or more 
            associated IP addresses. Higher values imply higher 
            priority. 

            A priority of '0', although not settable, is used 
            to indicate that this router has ceased to particpate 
            in VRRP and a backup virtual router should transition \
            to become a new master.

            A priority of 255 is used for the router that owns the
            associated IP address(es)."
        DEFVAL       { 100 }
        ::= { vrrpOperEntry 7 }

    vrrpOperIpAddrCount OBJECT-TYPE
        SYNTAX       Integer32 (1..65535)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The number of IP addresses that are associated with this 
            virtual router. This number is equal to the number of rows 
            in the vrrpAssoIpAddrTable that correspond to a given IF 
            index/VRID pair."
        ::= { vrrpOperEntry 8 }

    vrrpOperMasterIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The master router's real (primary) IP address. This is
            the IP address listed as the source in VRRP advertisement
            last received by this virtual router"
        ::= { vrrpOperEntry 9 }

    vrrpOperAuthType OBJECT-TYPE
        SYNTAX       INTEGER {
            noAuthentication(1),       -- VRRP protocol exchanges are not
                                       -- authenticated.
            simpleTextPassword(2),     -- Exchanges are authenticated by a 
                                       -- clear text password.
            ipAuthenticationHeader(3)  -- Exchanges are authenticated using
                                       -- the IP authentication header [x].
        }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "Authentication type used for VRRP protocol exchanges between
            virtual routers."
	DEFVAL	 { noAuthentication }
        ::= { vrrpOperEntry 10 }

    vrrpOperAuthKey OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (8))
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "The Authentication Key.  If the virtual router's Authorization
            Type is 'simpleTextPassword', and the key length is shorter
            than 8 octets, the agent will left adjust and zero fill
            to 8 octets.

            When read, vrrpOperAuthKey always returns an Octet String
            of length zero."
         DEFVAL   { '0000000000000000'H }    -- 0.0.0.0.0.0.0.0
        ::= { vrrpOperEntry 11 }

    vrrpOperHMACMD5Key OBJECT-TYPE
        SYNTAX       OCTET STRING (SIZE (16))
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "The Authentication Key.  If the virtual router's 'Authorization
            Type' is 'ipAuthenticationHeader', and the key length is shorter
            than 16 octets, the agent will left adjust and zero fill
            to 16 octets.
 
            When read, vrrpOperHMACMD5Key always returns an Octet String
            of length zero."
        DEFVAL   { '00000000000000000000000000000000'H }    
        -- 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0
        ::= { vrrpOperEntry 12 }

    vrrpOperAdvertisementInterval OBJECT-TYPE
        SYNTAX       Integer32 (1..255)
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "This is the time interval, in seconds, between sending 
            advertisement messages. Only the master router sends 
            VRRP advertisements."
        DEFVAL       { 1 }
        ::= { vrrpOperEntry 13 }

    vrrpOperPreemptMode OBJECT-TYPE
        SYNTAX       INTEGER {
            true(1),   -- Preempt
            false(2)   -- Do not preempt
        }
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "Controls whether a higher priority virtual router will
            preempt a lower priority master."
        DEFVAL       { true }
        ::= { vrrpOperEntry 14 }

    vrrpOperVirtualRouterUpTime OBJECT-TYPE
        SYNTAX       TimeTicks
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "This is the time interval (in hundredths of a second)  
            since this virtual router was initialized."
        ::= { vrrpOperEntry 15 }

    vrrpOperRowStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "The row status variable, used according to installation 
            and removal conventions for conceptual rows. Setting this
            object to 'createAndGo' results in enabling the VRRP
            protocol for this virtual router. The information required
            to actually create the conceptual row may be included in 
            the SET primitive or may be initialized by the agent on 
            the virtual router. Destroying the entry or setting it to 
            'notInService' disables VRRP on this virtual router."
        ::= { vrrpOperEntry 16 }

    vrrpOperCriticalIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION  "IP address of the interface that will cause a
		     shutdown event."
        ::= { vrrpOperEntry 17 }



-- *******************************************************************
--  VRRP Associated IP Address Table
-- *******************************************************************

    vrrpAssoIpAddrTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF VrrpAssoIpAddrEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "The table of addresses associated with this virtual router."
        ::= { vrrpOperations 11 }

    vrrpAssoIpAddrEntry OBJECT-TYPE
        SYNTAX       VrrpAssoIpAddrEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "An entry in the table contains an IP address that is 
            associated with a virtual router. The number of rows for 
            a given IF Index and VRID will equal the number of IP 
            addresses associated (e.g., backed up by the virtual
            router)."
        INDEX    { vrrpAssoIpAddrIfIndex, vrrpAssoIpAddrVrId, vrrpAssoIpAddr }
        ::= { vrrpAssoIpAddrTable 1 }

    VrrpAssoIpAddrEntry ::=
        SEQUENCE {
            vrrpAssoIpAddrIfIndex
                INTEGER,
            vrrpAssoIpAddrVrId
                VrId,
            vrrpAssoIpAddr
                IpAddress,
            vrrpAssoIpAddrRowStatus
                RowStatus
    }

    vrrpAssoIpAddrIfIndex OBJECT-TYPE
        SYNTAX       INTEGER
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION  "port interface index."
        ::= { vrrpAssoIpAddrEntry 1 }

    vrrpAssoIpAddrVrId OBJECT-TYPE
        SYNTAX       VrId
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "This object contains the Virtual Router Identifier (VRID)."
        ::= { vrrpAssoIpAddrEntry 2 }

    vrrpAssoIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-create
        STATUS       current
        DESCRIPTION
            "The assigned IP addresses that a virtual router is responsible
            for backing up."
        ::= { vrrpAssoIpAddrEntry 3 }

    vrrpAssoIpAddrRowStatus OBJECT-TYPE
        SYNTAX       RowStatus
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "The row status variable, used according to installation 
            and removal conventions for conceptual rows. Setting this
            object to 'createAndGo' results in the addition of an
            associated address for a virtual router. The information 
            required to actually create the conceptual may be included 
            in the SET primitive or may be initialized by the agent on 
            the VRRP router. Destroying the entry or setting it to 
            'notInService' removes the associated address from the
            virtual router."
        ::= { vrrpAssoIpAddrEntry 4 }


-- *******************************************************************
--  VRRP Router Statistics Table
-- *******************************************************************

    vrrpRouterStatsTable OBJECT-TYPE
        SYNTAX       SEQUENCE OF VrrpRouterStatsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "Table of virtual router statistics."
        ::= { vrrpStatistics 1 }

    vrrpRouterStatsEntry OBJECT-TYPE
        SYNTAX       VrrpRouterStatsEntry
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "An entry in the table, containing statistics information
            about a given virtual router."
        INDEX    { vrrpStatsIfIndex, vrrpStatsVrId }
        ::= { vrrpRouterStatsTable 1 }

    VrrpRouterStatsEntry ::=
        SEQUENCE {
            vrrpStatsIfIndex
                INTEGER,
            vrrpStatsVrId
                VrId,
            vrrpStatsBecomeMaster
                Counter32,
            vrrpStatsAdvertiseRcvd
                Counter32,
            vrrpStatsChecksumErrors
                Counter32,
            vrrpStatsVersionErrors
                Counter32,
            vrrpStatsVrIdErrors
                Counter32,
            vrrpStatsAdvertiseIntervalErrors
                Counter32,
            vrrpStatsPasswdSecurityViolations
                Counter32,
            vrrpStatsHmacSecurityViolations
                Counter32,
            vrrpStatsIpTtlErrors
                Counter32,
            vrrpStatsPriorityZeroPktsRcvd
                Counter32,
            vrrpStatsPriorityZeroPktsSent
                Counter32,
            vrrpStatsInvalidTypePktsRcvd
                Counter32,
            vrrpStatsAddressListErrors
                Counter32,
            vrrpStatsUnknownAuthType
                Counter32,
            vrrpStatsAuthTypeErrors
                Counter32
    }

    vrrpStatsIfIndex OBJECT-TYPE
        SYNTAX       INTEGER
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION  "port interface index."
        ::= { vrrpRouterStatsEntry 1 }

    vrrpStatsVrId OBJECT-TYPE
        SYNTAX       VrId
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "This object contains the Virtual Router Identifier (VRID)."
        ::= { vrrpRouterStatsEntry 2 }

    vrrpStatsBecomeMaster OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of times that this virtual router's state
            has transitioned from BACKUP to MASTER."
        ::= { vrrpRouterStatsEntry 3 }

    vrrpStatsAdvertiseRcvd OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP advertisements received by this
            virtual router."
        ::= { vrrpRouterStatsEntry 4 }

    vrrpStatsChecksumErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received with an invalid
            checksum value."
        ::= { vrrpRouterStatsEntry 5 }

    vrrpStatsVersionErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received with an invalid 
            version number."
        ::= { vrrpRouterStatsEntry 6 }

    vrrpStatsVrIdErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received with an invalid
            VRID for this virtual router."
        ::= { vrrpRouterStatsEntry 7 }

    vrrpStatsAdvertiseIntervalErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP advertisement packets received
            for which the advertisement interval is different than the
            one configured for the local virtual router."
        ::= { vrrpRouterStatsEntry 8 }

    vrrpStatsPasswdSecurityViolations OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received that do not pass 
            the simple text password authentification check."
        ::= { vrrpRouterStatsEntry 9 }

    vrrpStatsHmacSecurityViolations OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received that do not pass 
            the HMAC-MD5-96 authentification check."
        ::= { vrrpRouterStatsEntry 10 }

    vrrpStatsIpTtlErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received by the virtual 
            router with IP TTL (Time-To-Live) not equal to 255."
        ::= { vrrpRouterStatsEntry 11 }

    vrrpStatsPriorityZeroPktsRcvd OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets received by the virtual 
            router with a priority of '0'."
        ::= { vrrpRouterStatsEntry 12 }

    vrrpStatsPriorityZeroPktsSent OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The total number of VRRP packets sent by the virtual router
            with a priority of '0'."
        ::= { vrrpRouterStatsEntry 13 }

    vrrpStatsInvalidTypePktsRcvd OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The number of VRRP packets received by the virtual router
            with an invalid value in the 'type' field."
        ::= { vrrpRouterStatsEntry 14 }

    vrrpStatsAddressListErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Packets received address list the address list does not    
            match the locally configured list for the virtual router."
        ::= { vrrpRouterStatsEntry 15 }

    vrrpStatsUnknownAuthType OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Packets received with an unknown authentication type."
        ::= { vrrpRouterStatsEntry 16 }

    vrrpStatsAuthTypeErrors OBJECT-TYPE
        SYNTAX       Counter32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Packets received with 'Auth Type' not equal to the locally
             configured authentication method ('vrrpOperAuthType')."
        ::= { vrrpRouterStatsEntry 17 }


-- *******************************************************************
--   Trap Definitions
-- *******************************************************************

    vrrpTraps       OBJECT IDENTIFIER ::= { vrrpNotifications 0 }

    vrrpTrapPacketSrc OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION 
            "The IP address of an inbound VRRP packet. Used by 
             vrrpTrapAuthFailure trap."
        ::= { vrrpOperations 12 }

    vrrpTrapConfigErrorType OBJECT-TYPE
        SYNTAX        INTEGER {
            authTypeMismatch (1),
            authFailure (2)
        }
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Potential types of configuration conflicts.
            Used by vrrpAuthFailure trap."
        ::= { vrrpOperations 13  }

    vrrpTrapNewMaster NOTIFICATION-TYPE
        OBJECTS      { ifIndex, 
                       vrrpOperVrId, 
                       vrrpOperVirtualMacAddr 
                     }
        STATUS       current
        DESCRIPTION
            "The newMaster trap indicates that the sending agent
            has transitioned from 'Backup' state to 'Master' state."
        ::= { vrrpTraps 2 }

    vrrpTrapAuthFailure NOTIFICATION-TYPE
        OBJECTS      { ifIndex,
                       vrrpOperVrId,
                       vrrpTrapPacketSrc,
                       vrrpTrapConfigErrorType
        	     }
        STATUS       current
        DESCRIPTION
            "A vrrpAuthFailure trap signifies that a packet has
            been received from a router whose authentication key
            or authentication type conflicts with this router's
            authentication key or authentication type. Implementation
            of this trap is optional."
        ::= { vrrpTraps 3 } 


-- *******************************************************************
--  Conformance Information
-- *******************************************************************

    vrrpMIBCompliances  OBJECT IDENTIFIER ::= { vrrpConformance 1 }
    vrrpMIBGroups       OBJECT IDENTIFIER ::= { vrrpConformance 2 }

-- ...................................................................
-- Compliance Statements
-- ...................................................................
 
    vrrpMIBCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
           "The core compliance statement for all VRRP implementations."
        MODULE -- this module
            MANDATORY-GROUPS  {
                vrrpOperGroup ,
                vrrpStatsGroup 
            }
        ::= { vrrpMIBCompliances 1 } 

-- ...................................................................
-- Conformance Groups
-- ...................................................................

    vrrpOperGroup  OBJECT-GROUP
        OBJECTS  {
            vrrpNodeVersion,
            vrrpTrapCntl,
            vrrpOperVrId,
            vrrpOperVirtualMacAddr,
            vrrpOperState,
            vrrpOperControl,
            vrrpOperPriority,
            vrrpOperIpAddrCount,
            vrrpOperMasterIpAddr,
            vrrpOperAuthType,
            vrrpOperHMACMD5Key,
            vrrpOperAuthKey,
            vrrpOperAdvertisementInterval,
            vrrpOperPreemptMode,
            vrrpOperVirtualRouterUpTime,
            vrrpOperRowStatus,
            vrrpTrapPacketSrc,
            vrrpTrapConfigErrorType,
            vrrpAssoIpAddr,
            vrrpAssoIpAddrRowStatus
            }
        STATUS current
        DESCRIPTION
           "Conformance group for VRRP operations."
        ::= { vrrpMIBGroups 1 }

    vrrpStatsGroup  OBJECT-GROUP
        OBJECTS  {
            vrrpStatsBecomeMaster,
            vrrpStatsAdvertiseRcvd,
            vrrpStatsChecksumErrors,
            vrrpStatsVersionErrors,
            vrrpStatsVrIdErrors,
            vrrpStatsAdvertiseIntervalErrors,
            vrrpStatsPasswdSecurityViolations,
            vrrpStatsHmacSecurityViolations,
            vrrpStatsIpTtlErrors,
            vrrpStatsPriorityZeroPktsRcvd,
            vrrpStatsPriorityZeroPktsSent,
            vrrpStatsInvalidTypePktsRcvd,
            vrrpStatsAddressListErrors,
            vrrpStatsUnknownAuthType,
            vrrpStatsAuthTypeErrors
            }
        STATUS current
        DESCRIPTION
           "Conformance group for VRRP statistics."
        ::= { vrrpMIBGroups 2 }

END
--
-- Distance-Vector Multicast Routing Protocol MIB
-- <draft-thaler-dvmrp-mib-09.txt>
--

DVMRP-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, experimental,
    Integer32, Counter32, Gauge32, NOTIFICATION-TYPE,
    IpAddress, TimeTicks             FROM SNMPv2-SMI
    DisplayString, RowStatus         FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF;

dvmrpMIB MODULE-IDENTITY
    LAST-UPDATED "9804221900Z"
    ORGANIZATION "IETF IDMR Working Group."
    CONTACT-INFO
            " Dave Thaler
              Microsoft
              One Microsoft Way
              Redmond, WA 98052-6399
              EMail: dthalerd@microsoft.com"
    DESCRIPTION
            "The MIB module for management of DVMRP routers."
    ::= { experimental 62 }

dvmrpMIBObjects OBJECT IDENTIFIER ::= { dvmrpMIB 1 }

dvmrp           OBJECT IDENTIFIER ::= { dvmrpMIBObjects 1 }

dvmrpVersionString OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The router's DVMRP version information."
    ::= { dvmrp 1 }

dvmrpGenerationId OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The generation identifier for the routing process.  This is
            used by neighboring routers to detect whether the DVMRP
            routing table should be resent."
    ::= { dvmrp 2 }

dvmrpNumRoutes OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the routing table.  This can be
            used to monitor the routing table size to detect illegal
            advertisements of unicast routes."
    ::= { dvmrp 9 }

dvmrpReachableRoutes OBJECT-TYPE
    SYNTAX     Gauge32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of entries in the routing table with non
            infinite metrics.  This can be used to detect network
            partitions by observing the ratio of reachable routes to
            total routes."
    ::= { dvmrp 10 }

-- The DVMRP Interface Table

dvmrpInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's multicast-
            capable interfaces."
    ::= { dvmrp 3 }

dvmrpInterfaceEntry OBJECT-TYPE
    SYNTAX     DvmrpInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the dvmrpInterfaceTable.  This
            row augments ipMRouteInterfaceEntry in the IP Multicast MIB,
            where the threshold object resides."
    INDEX      { dvmrpInterfaceIfIndex }
    ::= { dvmrpInterfaceTable 1 }

DvmrpInterfaceEntry ::= SEQUENCE {
    dvmrpInterfaceIfIndex                     Integer32,
    dvmrpInterfaceType                        INTEGER,        -- deprecated
    dvmrpInterfaceOperState                   INTEGER,
    dvmrpInterfaceLocalAddress                IpAddress,
    dvmrpInterfaceRemoteAddress               IpAddress,      -- deprecated
    dvmrpInterfaceRemoteSubnetMask            IpAddress,      -- deprecated
    dvmrpInterfaceMetric                      Integer32,
    dvmrpInterfaceRateLimit                   Integer32,      -- deprecated
    dvmrpInterfaceInPkts                      Counter32,      -- deprecated
    dvmrpInterfaceOutPkts                     Counter32,      -- deprecated
    dvmrpInterfaceInOctets                    Counter32,      -- deprecated
    dvmrpInterfaceOutOctets                   Counter32,      -- deprecated
    dvmrpInterfaceStatus                      RowStatus,
    dvmrpInterfaceRcvBadPkts                  Counter32,      -- excluded
    dvmrpInterfaceRcvBadRoutes                Counter32,      -- excluded
    dvmrpInterfaceSentRoutes                  Counter32,      -- excluded
    dvmrpInterfaceMasterKey                   DisplayString,  -- excluded
    dvmrpInterfaceMasterKeyVersion            Integer32       -- excluded
}

dvmrpInterfaceIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only 
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the interface for which DVMRP is
            enabled."
    ::= { dvmrpInterfaceEntry 1 }

dvmrpInterfaceType OBJECT-TYPE
    SYNTAX     INTEGER { tunnel(1), srcrt(2), querier(3), subnet(4) }
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The type of this DVMRP interface, whether it uses a tunnel,
            source routing, a physical interface for which we are a
            querier, or a physical interface for which we are not a
            querier.  This object is deprecated in favor of ifType."
    DEFVAL     { tunnel }
    ::= { dvmrpInterfaceEntry 2 }

dvmrpInterfaceOperState OBJECT-TYPE
    SYNTAX     INTEGER { up(1), down(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The current operational state of this DVMRP interface. This
            object is deprecated in favor of ifOperStatus."
    ::= { dvmrpInterfaceEntry 3 }

dvmrpInterfaceLocalAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The IP address this system will use as a source address on
            this interface.  On unnumbered interfaces, it must be the
            same value as dvmrpInterfaceLocalAddress for some interface
            on the system."
    ::= { dvmrpInterfaceEntry 4 }

dvmrpInterfaceRemoteAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-create
    STATUS     deprecated
    DESCRIPTION
            "The IP address of the remote end of this DVMRP virtual
            interface.  For a tunnel (including source routed), this is
            the IP address of the neighboring router.  For a subnet,
            this is the subnet address.  This object is deprecated in
            favor of address information associated with the underlying
            ifEntry."
    ::= { dvmrpInterfaceEntry 5 }

dvmrpInterfaceRemoteSubnetMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The subnet mask for a directly connected subnet.  For a
            tunnel, this should be 0.0.0.0.  This object is deprecated
            in favor of address information associated with the
            underlying ifEntry."
    ::= { dvmrpInterfaceEntry 6 }

dvmrpInterfaceMetric OBJECT-TYPE
    SYNTAX     Integer32 (1..31)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The distance metric for this interface which is used to
            calculate distance vectors."
    DEFVAL     { 1 }
    ::= { dvmrpInterfaceEntry 7 }

dvmrpInterfaceRateLimit OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-create
    STATUS     deprecated
    DESCRIPTION
            "The rate-limit, in kilobits per second, of forwarded
            multicast traffic on the interface.  A rate-limit of 0
            indicates that no rate limiting is done.  This object has
            been moved to the IP Multicast MIB."
    DEFVAL     { 0 }
    ::= { dvmrpInterfaceEntry 8 }

dvmrpInterfaceInPkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The number of multicast packets that have arrived on the
            interface.  This object is deprecated in favor of
            ifInMulticastPkts in the Interfaces MIB [8]."
    ::= { dvmrpInterfaceEntry 9 }

dvmrpInterfaceOutPkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The number of multicast packets that have been sent on the
            interface.  This object is deprecated in favor of
            ifOutMulticastPkts in the Interfaces MIB [8]."
    ::= { dvmrpInterfaceEntry 10 }

dvmrpInterfaceInOctets OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The number of octets in multicast packets that have arrived
            on the interface.  This object has been moved to the IP
            Multicast MIB."
    ::= { dvmrpInterfaceEntry 11 }

dvmrpInterfaceOutOctets OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     deprecated
    DESCRIPTION
            "The number of octets in multicast packets that have been
            sent on the interface.  This object has been moved to the IP
            Multicast MIB."
    ::= { dvmrpInterfaceEntry 12 }

dvmrpInterfaceStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The status of this entry.  Creating the entry enables DVMRP
            on the virtual interface; destroying the entry or setting it
            to notInService disables DVMRP on the virtual interface."
    ::= { dvmrpInterfaceEntry 13 }

dvmrpInterfaceRcvBadPkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of DVMRP packets received on the interface by
            the DVMRP process which were subsequently discarded as
            invalid (e.g. invalid packet format, or a route report from
            an unknown neighbor)."
    ::= { dvmrpInterfaceEntry 14 }

dvmrpInterfaceRcvBadRoutes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of routes, in valid DVMRP packets, which were
            ignored because the entry was invalid."
    ::= { dvmrpInterfaceEntry 15 }

dvmrpInterfaceSentRoutes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of routes, in DVMRP Report packets, which have
            been sent on this interface.  Together with
            dvmrpNeighborRcvRoutes at a peer, this object is useful for
            detecting routes being lost."
    ::= { dvmrpInterfaceEntry 16 }

dvmrpInterfaceMasterKey OBJECT-TYPE
    SYNTAX     DisplayString
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The master (shared) key for authenticating neighbors on
            this interface.  This object is intended solely for the
            purpose of setting the master key, and MUST be accessible
            only via requests using both authentication and privacy.
            The agent MAY report an empty string in response to get,
            get-next, get-bulk requests."
    ::= { dvmrpInterfaceEntry 17 }

dvmrpInterfaceMasterKeyVersion OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-create
    STATUS     current
    DESCRIPTION
            "The highest version number of all known master keys used
            for authenticating neighbors on this interface."
    ::= { dvmrpInterfaceEntry 18 }


-- The DVMRP Neighbor Table

dvmrpNeighborTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's DVMRP
            neighbors, as discovered by receiving DVMRP messages."
    ::= { dvmrp 4 }

dvmrpNeighborEntry OBJECT-TYPE
    SYNTAX     DvmrpNeighborEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the dvmrpNeighborTable."
    INDEX      { dvmrpNeighborIfIndex, dvmrpNeighborAddress }
    ::= { dvmrpNeighborTable 1 }

DvmrpNeighborEntry ::= SEQUENCE {
    dvmrpNeighborIfIndex         Integer32,
    dvmrpNeighborAddress         IpAddress,
    dvmrpNeighborUpTime          TimeTicks,
    dvmrpNeighborExpiryTime      TimeTicks,
    dvmrpNeighborGenerationId    Integer32,
    dvmrpNeighborMajorVersion    Integer32,
    dvmrpNeighborMinorVersion    Integer32,
    dvmrpNeighborCapabilities    INTEGER,
    dvmrpNeighborRcvRoutes       Counter32,
    dvmrpNeighborRcvBadPkts      Counter32,
    dvmrpNeighborRcvBadRoutes    Counter32,
    dvmrpNeighborState           INTEGER
}

dvmrpNeighborIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the virtual interface used to
            reach this DVMRP neighbor."
    ::= { dvmrpNeighborEntry 1 }

dvmrpNeighborAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP address of the DVMRP neighbor for which this entry
            contains information."
    ::= { dvmrpNeighborEntry 2 }

dvmrpNeighborUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since this DVMRP neighbor (last) became a neighbor
            of the local router."
    ::= { dvmrpNeighborEntry 3 }

dvmrpNeighborExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum time remaining before this DVMRP neighbor will
            be aged out."
    ::= { dvmrpNeighborEntry 4 }

dvmrpNeighborGenerationId OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The neighboring router's generation identifier."
    ::= { dvmrpNeighborEntry 6 }

dvmrpNeighborMajorVersion OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The neighboring router's major DVMRP version number."
    ::= { dvmrpNeighborEntry 7 }

dvmrpNeighborMinorVersion OBJECT-TYPE
    SYNTAX     Integer32 (0..255)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The neighboring router's minor DVMRP version number."
    ::= { dvmrpNeighborEntry 8 }

dvmrpNeighborCapabilities OBJECT-TYPE
    SYNTAX     INTEGER {
                   leaf(1),
                   prune(2),
                   generationID(4),
                   mtrace(8)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "This object describes the neighboring router's
            capabilities.  The leaf bit indicates that the neighbor has
            only one interface with neighbors.  The prune bit indicates
            that the neighbor supports pruning.  The generationID bit
            indicates that the neighbor sends its generationID in Probe
            messages.  The mtrace bit indicates that the neighbor can
            handle mtrace requests."
    ::= { dvmrpNeighborEntry 9 }

dvmrpNeighborRcvRoutes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The total number of routes received in valid DVMRP packets
            received from this neighbor.  This can be used to diagnose
            problems such as unicast route injection, as well as giving
            an indication of the level of DVMRP route exchange
            activity."
    ::= { dvmrpNeighborEntry 10 }

dvmrpNeighborRcvBadPkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of packet received from this neighbor which were
            discarded as invalid."
    ::= { dvmrpNeighborEntry 11 }

dvmrpNeighborRcvBadRoutes OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of routes, in valid DVMRP packets received from
            this neighbor, which were ignored because the entry was
            invalid."
    ::= { dvmrpNeighborEntry 12 }

dvmrpNeighborState OBJECT-TYPE
    SYNTAX     INTEGER {
                   oneway(1),
                   active(2),
                   ignoring(3),
                   down(4)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "State of the neighbor adjacency."
    ::= { dvmrpNeighborEntry 13 }


-- The DVMRP Route Table

dvmrpRouteTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The table of routes learned through DVMRP route exchange."
    ::= { dvmrp 5 }

dvmrpRouteEntry OBJECT-TYPE
    SYNTAX     DvmrpRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) containing the multicast routing
            information used by DVMRP in place of the unicast routing
            information."
    INDEX      { dvmrpRouteSource, dvmrpRouteSourceMask }
    ::= { dvmrpRouteTable 1 }

DvmrpRouteEntry ::= SEQUENCE {
    dvmrpRouteSource             IpAddress,
    dvmrpRouteSourceMask         IpAddress,
    dvmrpRouteUpstreamNeighbor   IpAddress,
    dvmrpRouteIfIndex            Integer32,
    dvmrpRouteMetric             Integer32,
    dvmrpRouteExpiryTime         TimeTicks,
    dvmrpRouteUpTime             TimeTicks
}

dvmrpRouteSource OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only 
    STATUS     current
    DESCRIPTION
            "The network address which when combined with the
            corresponding value of dvmrpRouteSourceMask identifies the
            sources for which this entry contains multicast routing
            information."
    ::= { dvmrpRouteEntry 1 }

dvmrpRouteSourceMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only 
    STATUS     current
    DESCRIPTION
            "The network mask which when combined with the corresponding
            value of dvmrpRouteSource identifies the sources for which
            this entry contains multicast routing information."
    ::= { dvmrpRouteEntry 2 }

dvmrpRouteUpstreamNeighbor OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the upstream neighbor (e.g., RPF neighbor)
            from which IP datagrams from these sources are received."
    ::= { dvmrpRouteEntry 3 }

dvmrpRouteIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the interface on which IP
            datagrams sent by these sources are received."
    ::= { dvmrpRouteEntry 4 }

dvmrpRouteMetric OBJECT-TYPE
    SYNTAX     Integer32 (1..31)
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The distance in hops to the source subnet."
    ::= { dvmrpRouteEntry 5 }

dvmrpRouteExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum amount of time remaining before this entry will
            be aged out."
    ::= { dvmrpRouteEntry 6 }

dvmrpRouteUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since the route represented by this entry was
            learned by the router."
    ::= { dvmrpRouteEntry 7 }

-- The DVMRP Routing Next Hop Table

dvmrpRouteNextHopTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containing information on the next
            hops on outgoing interfaces for routing IP multicast
            datagrams."
    ::= { dvmrp 6 }

dvmrpRouteNextHopEntry OBJECT-TYPE
    SYNTAX     DvmrpRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the list of next hops on
            outgoing interfaces to which IP multicast datagrams from
            particular sources are routed."
    INDEX      { dvmrpRouteNextHopSource, dvmrpRouteNextHopSourceMask,
                 dvmrpRouteNextHopIfIndex }
    ::= { dvmrpRouteNextHopTable 1 }

DvmrpRouteNextHopEntry ::= SEQUENCE {
    dvmrpRouteNextHopSource             IpAddress,
    dvmrpRouteNextHopSourceMask         IpAddress,
    dvmrpRouteNextHopIfIndex            Integer32,
    dvmrpRouteNextHopType               INTEGER
}

dvmrpRouteNextHopSource OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only 
    STATUS     current
    DESCRIPTION
            "The network address which when combined with the
            corresponding value of dvmrpRouteNextHopSourceMask
            identifies the sources for which this entry specifies a next
            hop on an outgoing interface."
    ::= { dvmrpRouteNextHopEntry 1 }

dvmrpRouteNextHopSourceMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only 
    STATUS     current
    DESCRIPTION
            "The network mask which when combined with the corresponding
            value of dvmrpRouteNextHopSource identifies the sources for
            which this entry specifies a next hop on an outgoing
            interface."
    ::= { dvmrpRouteNextHopEntry 2 }

dvmrpRouteNextHopIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only 
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the interface for the outgoing
            interface for this next hop."
    ::= { dvmrpRouteNextHopEntry 3 }

dvmrpRouteNextHopType OBJECT-TYPE
    SYNTAX     INTEGER { leaf(1), branch(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "Type is leaf if no downstream dependent neighbors exist on
            the outgoing virtual interface.  Otherwise, type is branch."
    ::= { dvmrpRouteNextHopEntry 4 }

-- The DVMRP Alternate Subnet Table

dvmrpAltNetTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF DvmrpAltNetEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The (conceptual) table listing the router's alternate
            subnets on physical interfaces for use in constructing the
            routing tables."
    ::= { dvmrp 8 }

dvmrpAltNetEntry OBJECT-TYPE
    SYNTAX     DvmrpAltNetEntry
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "An entry (conceptual row) in the dvmrpAltNetTable."
    INDEX      { dvmrpAltNetIfIndex, dvmrpAltNetAddress,
                 dvmrpAltNetMask }
    ::= { dvmrpAltNetTable 1 }

DvmrpAltNetEntry ::= SEQUENCE {
    dvmrpAltNetIfIndex            Integer32,  -- deprecated
    dvmrpAltNetAddress            IpAddress,  -- deprecated
    dvmrpAltNetMask               IpAddress,  -- deprecated
    dvmrpAltNetStatus             RowStatus   -- deprecated
}

dvmrpAltNetIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The ifIndex value of the interface to which this alternate
            subnet applies."
    ::= { dvmrpAltNetEntry 1 }

dvmrpAltNetAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The subnet address of the alternate subnet."
    ::= { dvmrpAltNetEntry 2 }

dvmrpAltNetMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     deprecated
    DESCRIPTION
            "The subnet mask of the alternate subnet."
    ::= { dvmrpAltNetEntry 3 }

dvmrpAltNetStatus OBJECT-TYPE
    SYNTAX     RowStatus
    MAX-ACCESS read-create
    STATUS     deprecated
    DESCRIPTION
            "The status of this row, by which new entries may be
            created, or old entries deleted from this table."
    ::= { dvmrpAltNetEntry 4 }

-- DVMRP Traps

dvmrpTraps      OBJECT IDENTIFIER ::= { dvmrp 11 }

dvmrpNeighborLoss NOTIFICATION-TYPE
    OBJECTS {
       dvmrpInterfaceLocalAddress, -- The originator of the trap
       dvmrpNeighborIfIndex,
       dvmrpNeighborAddress,
       dvmrpNeighborState  -- The new state
    }
    STATUS             current
    DESCRIPTION
            "A dvmrpNeighborLoss trap signifies the loss of a 2-way
            adjacency with a neighbor.  This trap should be generated
            when the neighbor state changes from active to one-way,
            ignoring, or down.  The trap should be generated only if the
            router has no other neighbors on the same interface with a
            lower IP address than itself."
    ::= { dvmrpTraps 1 }

dvmrpNeighborNotPruning NOTIFICATION-TYPE
    OBJECTS {
       dvmrpInterfaceLocalAddress, -- The originator of the trap
       dvmrpNeighborIfIndex,
       dvmrpNeighborAddress
    }
    STATUS             current
    DESCRIPTION
            "A dvmrpNeighborNotPruning trap signifies that a non-pruning
            neighbor has been detected.  This trap should be generated
            at most once per generation ID of the neighbor.  For
            example, it may be generated at the time a neighbor is first
            heard from if the prune bit is not set in its capabilities.
            The trap should be generated only if the router has no other
            neighbors on the same interface with a lower IP address than
            itself."
    ::= { dvmrpTraps 2 }


-- conformance information

dvmrpMIBConformance OBJECT IDENTIFIER ::= { dvmrpMIB 2 }

dvmrpMIBCompliances OBJECT IDENTIFIER ::= { dvmrpMIBConformance 1 }

dvmrpMIBGroups      OBJECT IDENTIFIER ::= { dvmrpMIBConformance 2 }


-- compliance statements

dvmrpMIBCompliance MODULE-COMPLIANCE
    STATUS  current
    DESCRIPTION
            "The compliance statement for the DVMRP MIB."
    MODULE  -- this module
        MANDATORY-GROUPS { dvmrpGeneralGroup, dvmrpInterfaceGroup,
            dvmrpNeighborGroup, dvmrpRoutingGroup
        }

        GROUP   dvmrpSecurityGroup
        DESCRIPTION
            "This group is mandatory for agents which support both
            authentication and privacy of SNMP messages, and only for
            those network interfaces for which DVMRP is authenticating
            neighbors."
    ::= { dvmrpMIBCompliances 1 }


-- units of conformance

dvmrpMIBGroup OBJECT-GROUP
    OBJECTS { dvmrpVersionString, dvmrpGenerationId,
              dvmrpNumRoutes, dvmrpReachableRoutes,
              dvmrpInterfaceType, dvmrpInterfaceOperState,
              dvmrpInterfaceLocalAddress, dvmrpInterfaceRemoteAddress,
              dvmrpInterfaceRemoteSubnetMask,
              dvmrpInterfaceMetric, dvmrpInterfaceRateLimit,
              dvmrpInterfaceInPkts, dvmrpInterfaceOutPkts,
              dvmrpInterfaceInOctets, dvmrpInterfaceOutOctets,
              dvmrpInterfaceStatus,
              dvmrpNeighborUpTime, dvmrpNeighborExpiryTime,
              dvmrpNeighborGenerationId, dvmrpNeighborMajorVersion,
              dvmrpNeighborMinorVersion, dvmrpNeighborCapabilities,
              dvmrpRouteUpstreamNeighbor, dvmrpRouteIfIndex,
              dvmrpRouteMetric, dvmrpRouteExpiryTime,
              dvmrpRouteNextHopType, dvmrpAltNetStatus
            }
    STATUS  deprecated
    DESCRIPTION
            "A collection of objects to support management of DVMRP
            routers."
    ::= { dvmrpMIBGroups 1 }

dvmrpGeneralGroup OBJECT-GROUP
    OBJECTS { dvmrpVersionString, dvmrpGenerationId,
              dvmrpNumRoutes, dvmrpReachableRoutes
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects used to describe general DVMRP
            configuration information."
    ::= { dvmrpMIBGroups 2 }

dvmrpInterfaceGroup OBJECT-GROUP
    OBJECTS { dvmrpInterfaceLocalAddress, dvmrpInterfaceMetric,
              dvmrpInterfaceStatus,
              dvmrpInterfaceRcvBadPkts, dvmrpInterfaceRcvBadRoutes,
              dvmrpInterfaceSentRoutes
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects used to describe DVMRP interface
            configuration and statistics."
    ::= { dvmrpMIBGroups 3 }

dvmrpNeighborGroup OBJECT-GROUP
    OBJECTS { dvmrpNeighborUpTime, dvmrpNeighborExpiryTime,
              dvmrpNeighborGenerationId,
              dvmrpNeighborMajorVersion, dvmrpNeighborMinorVersion,
              dvmrpNeighborCapabilities, dvmrpNeighborRcvRoutes,
              dvmrpNeighborRcvBadPkts, dvmrpNeighborRcvBadRoutes,
              dvmrpNeighborState
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects used to describe DVMRP peer
            configuration and statistics."
    ::= { dvmrpMIBGroups 4 }

dvmrpRoutingGroup OBJECT-GROUP
    OBJECTS { dvmrpRouteUpstreamNeighbor, dvmrpRouteIfIndex,
              dvmrpRouteMetric, dvmrpRouteExpiryTime,
              dvmrpRouteUpTime, dvmrpRouteNextHopType
            }
    STATUS  current
    DESCRIPTION
            "A collection of objects used to store the DVMRP routing
            table."
    ::= { dvmrpMIBGroups 5 }

dvmrpSecurityGroup OBJECT-GROUP
    OBJECTS { dvmrpInterfaceMasterKey,
              dvmrpInterfaceMasterKeyVersion }
    STATUS  current
    DESCRIPTION
            "A collection of objects used to store information related
            to DVMRP security."
    ::= { dvmrpMIBGroups 6 }

END
--
-- IP Multicast Routing MIB
-- <draft-ietf-idmr-multicast-routmib-06.txt>
--

IPMROUTE-MIB DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, experimental,
    Integer32, Counter32, Counter64,
    IpAddress, TimeTicks             FROM SNMPv2-SMI
    RowStatus                        FROM SNMPv2-TC
    MODULE-COMPLIANCE, OBJECT-GROUP  FROM SNMPv2-CONF;

ipMRouteMIB MODULE-IDENTITY
    LAST-UPDATED "9711201700Z"
    ORGANIZATION "IETF IDMR Working Group."
    CONTACT-INFO
            " Keith McCloghrie
              Cisco Systems, Inc.
              170 West Tasman Drive
              San Jose, CA  95134-1706
              US

              Phone: +1 408 526 5260
              EMail: kzm@cisco.com"
    DESCRIPTION
            "The MIB module for management of IP Multicast routing, but
            independent of the specific multicast routing protocol in
            use."
    ::= { experimental 60 }


ipMRouteMIBObjects OBJECT IDENTIFIER ::= { ipMRouteMIB 1 }

ipMRoute           OBJECT IDENTIFIER ::= { ipMRouteMIBObjects 1 }

-- the IP Multicast Routing MIB-Group
--
-- a collection of objects providing information about
-- IP Multicast Groups

ipMRouteEnable OBJECT-TYPE
    SYNTAX     INTEGER { enabled(1), disabled(2) }
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The enabled status of IP Multicast routing on this router."
    ::= { ipMRoute 1 }


ipMRouteTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF IpMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containing multicast routing
            information for IP datagrams sent by particular sources to
            the IP multicast groups known to this router."
    ::= { ipMRoute 2 }

ipMRouteEntry OBJECT-TYPE
    SYNTAX     IpMRouteEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) containing the multicast routing
            information for IP datagrams from a particular source and
            addressed to a particular IP multicast group address."
    INDEX      { ipMRouteGroup,
                 ipMRouteSource,
                 ipMRouteSourceMask }
    ::= { ipMRouteTable 1 }

IpMRouteEntry ::= SEQUENCE {
    ipMRouteGroup                 IpAddress,
    ipMRouteSource                IpAddress,
    ipMRouteSourceMask            IpAddress,
    ipMRouteUpstreamNeighbor      IpAddress,
    ipMRouteInIfIndex             Integer32,
    ipMRouteUpTime                TimeTicks,
    ipMRouteExpiryTime            TimeTicks,
    ipMRoutePkts                  Counter32,
    ipMRouteDifferentInIfPackets  Counter32,
    ipMRouteOctets                Counter32,
    ipMRouteProtocol              INTEGER
}

ipMRouteGroup OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains multicast routing information."
    ::= { ipMRouteEntry 1 }

ipMRouteSource OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The network address which when combined with the
            corresponding value of ipMRouteSourceMask identifies the
            sources for which this entry contains multicast routing
            information."
    ::= { ipMRouteEntry 2 }

ipMRouteSourceMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The network mask which when combined with the corresponding
            value of ipMRouteSource identifies the sources for which
            this entry contains multicast routing information."
    ::= { ipMRouteEntry 3 }

ipMRouteUpstreamNeighbor OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the upstream neighbor (e.g., RPF neighbor)
            from which IP datagrams from these sources to this multicast
            address are received, or 0.0.0.0 if the upstream neighbor is
            unknown (e.g., in CBT)."
    ::= { ipMRouteEntry 4 }

ipMRouteInIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The value of ifIndex for the interface on which IP
            datagrams sent by these sources to this multicast address
            are received.  A value of 0 indicates that datagrams are not
            subject to an incoming interface check, but may be accepted
            on multiple interfaces (e.g., in CBT)."
    ::= { ipMRouteEntry 5 }

ipMRouteUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since the multicast routing information
            represented by this entry was learned by the router."
    ::= { ipMRouteEntry 6 }

ipMRouteExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum amount of time remaining before this entry will
            be aged out.  The value 0 indicates that the entry is not
            subject to aging."
    ::= { ipMRouteEntry 7 }

ipMRoutePkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of packets which this router has received from
            these sources and addressed to this multicast group
            address."
    ::= { ipMRouteEntry 8 }

ipMRouteDifferentInIfPackets OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of packets which this router has received from
            these sources and addressed to this multicast group address,
            which were not received from the interface indicated by
            ipMRouteInIfIndex."
    ::= { ipMRouteEntry 9 }

ipMRouteOctets OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of octets contained in IP datagrams which were
            received from these sources and addressed to this multicast
            group address, and which were forwarded by this router."
    ::= { ipMRouteEntry 10 }

ipMRouteProtocol OBJECT-TYPE
    SYNTAX     INTEGER {
                   other(1),          -- none of the following
                   local(2),          -- e.g., manually configured
                   netmgmt(3),        -- set via net.mgmt protocol
                   dvmrp(4),
                   mospf(5),
                   pimSparseDense(6), -- PIMv1, both DM and SM
                   cbt(7),
                   pimSparseMode(8),  -- PIM-SMv2
                   pimDenseMode(9),   -- PIM-DMv2
                   igmpOnly(10)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The routing mechanism via which this route was learned."
    ::= { ipMRouteEntry 11 }


--
--  The IP Multicast Routing Next Hop Table
--

ipMRouteNextHopTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF IpMRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containing information on the next
            hops on outgoing interfaces for routing IP multicast
            datagrams.  Each entry is one of a list of next hops on
            outgoing interfaces for particular sources sending to a
            particular multicast group address."
    ::= { ipMRoute 3 }

ipMRouteNextHopEntry OBJECT-TYPE
    SYNTAX     IpMRouteNextHopEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the list of next hops on
            outgoing interfaces to which IP multicast datagrams from
            particular sources to a IP multicast group address are
            routed."
    INDEX      { ipMRouteNextHopGroup, ipMRouteNextHopSource,
                 ipMRouteNextHopSourceMask, ipMRouteNextHopIfIndex,
                 ipMRouteNextHopAddress }
    ::= { ipMRouteNextHopTable 1 }

IpMRouteNextHopEntry ::= SEQUENCE {
    ipMRouteNextHopGroup              IpAddress,
    ipMRouteNextHopSource             IpAddress,
    ipMRouteNextHopSourceMask         IpAddress,
    ipMRouteNextHopIfIndex            Integer32,
    ipMRouteNextHopAddress            IpAddress,
    ipMRouteNextHopState              INTEGER,
    ipMRouteNextHopUpTime             TimeTicks,
    ipMRouteNextHopExpiryTime         TimeTicks,
    ipMRouteNextHopClosestMemberHops  Integer32,
    ipMRouteNextHopProtocol           INTEGER,
    ipMRouteNextHopPkts               Counter32
}

ipMRouteNextHopGroup OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The IP multicast group for which this entry specifies a
            next hop on an outgoing interface."
    ::= { ipMRouteNextHopEntry 1 }

ipMRouteNextHopSource OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The network address which when combined with the
            corresponding value of ipMRouteNextHopSourceMask identifies
            the sources for which this entry specifies a next hop on an
            outgoing interface."
    ::= { ipMRouteNextHopEntry 2 }

ipMRouteNextHopSourceMask OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The network mask which when combined with the corresponding
            value of ipMRouteNextHopSource identifies the sources for
            which this entry specifies a next hop on an outgoing
            interface."
    ::= { ipMRouteNextHopEntry 3 }

ipMRouteNextHopIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the interface for the outgoing
            interface for this next hop."
    ::= { ipMRouteNextHopEntry 4 }

ipMRouteNextHopAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The address of the next hop specific to this entry.  For
            most interfaces, this is identical to ipMRouteNextHopGroup.
            NBMA interfaces, however, may have multiple next hop
            addresses out a single outgoing interface."
    ::= { ipMRouteNextHopEntry 5 }

ipMRouteNextHopState OBJECT-TYPE
    SYNTAX     INTEGER { pruned(1), forwarding(2) }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "An indication of whether the outgoing interface and next
            hop represented by this entry is currently being used to
            forward IP datagrams.  The value 'forwarding' indicates it
            is currently being used; the value 'pruned' indicates it is
            not."
    ::= { ipMRouteNextHopEntry 6 }

ipMRouteNextHopUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The time since the multicast routing information
            represented by this entry was learned by the router."
    ::= { ipMRouteNextHopEntry 7 }

ipMRouteNextHopExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum amount of time remaining before this entry will
            be aged out.  The value 0 indicates that the entry is not
            subject to aging."
    ::= { ipMRouteNextHopEntry 8 }

ipMRouteNextHopClosestMemberHops OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The minimum number of hops between this router and any
            member of this IP multicast group reached via this next hop
            on this outgoing interface.  Any IP multicast datagrams for
            the group which have a TTL less than this number of hops
            will not be forwarded to this next hop."
    ::= { ipMRouteNextHopEntry 9 }

ipMRouteNextHopProtocol OBJECT-TYPE
    SYNTAX     INTEGER {
                   other(1),          -- none of the following
                   local(2),          -- e.g., manually configured
                   netmgmt(3),        -- set via net.mgmt protocol
                   dvmrp(4),
                   mospf(5),
                   pimSparseDense(6), -- PIMv1, both DM and SM
                   cbt(7),
                   pimSparseMode(8),  -- PIM-SMv2
                   pimDenseMode(9),   -- PIM-DMv2
                   igmpOnly(10)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The routing mechanism via which this next-hop was learned."
    ::= { ipMRouteNextHopEntry 10 }

ipMRouteNextHopPkts OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of packets which have been forwarded using this
            route."
    ::= { ipMRouteNextHopEntry 11 }


--
--  The Multicast Routing Interface Table
--

ipMRouteInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF IpMRouteInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table containg multicast routing
            information specific to interfaces."
    ::= { ipMRoute 4 }

ipMRouteInterfaceEntry OBJECT-TYPE
    SYNTAX     IpMRouteInterfaceEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) containing the multicast routing
            information for a particular interface."
    INDEX      { ipMRouteInterfaceIfIndex }
    ::= { ipMRouteInterfaceTable 1 }

IpMRouteInterfaceEntry ::= SEQUENCE {
    ipMRouteInterfaceIfIndex          Integer32,
    ipMRouteInterfaceTtl              Integer32,
    ipMRouteInterfaceProtocol         INTEGER,
    ipMRouteInterfaceRateLimit        Integer32,
    ipMRouteInterfaceInMcastOctets    Counter32,
    ipMRouteInterfaceOutMcastOctets   Counter32,
    ipMRouteInterfaceHCInMcastOctets  Counter64,
    ipMRouteInterfaceHCOutMcastOctets Counter64
}

ipMRouteInterfaceIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The ifIndex value of the interface for which this entry
            contains information."
    ::= { ipMRouteInterfaceEntry 1 }

ipMRouteInterfaceTtl OBJECT-TYPE
    SYNTAX     Integer32 (1..255)
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The datagram TTL threshold for the interface. Any IP
            multicast datagrams with a TTL less than this threshold will
            not be forwarded out the interface. The default value of 0
            means all multicast packets are forwarded out the
            interface."
    ::= { ipMRouteInterfaceEntry 2 }

ipMRouteInterfaceProtocol OBJECT-TYPE
    SYNTAX     INTEGER {
                   other(1),          -- none of the following
                   local(2),          -- e.g., static routing
                   netmgmt(3),        -- set via net.mgmt protocol
                   dvmrp(4),
                   mospf(5),
                   pimSparseDense(6), -- PIMv1, both DM and SM
                   cbt(7),
                   pimSparseMode(8),  -- PIM-SMv2
                   pimDenseMode(9),   -- PIM-DMv2
                   igmpOnly(10)
               }
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The routing protocol running on this interface."
    ::= { ipMRouteInterfaceEntry 3 }

ipMRouteInterfaceRateLimit OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS read-write
    STATUS     current
    DESCRIPTION
            "The rate-limit, in kilobits per second, of forwarded
            multicast traffic on the interface.  A rate-limit of 0
            indicates that no rate limiting is done."
    DEFVAL     { 0 }
    ::= { ipMRouteInterfaceEntry 4 }

ipMRouteInterfaceInMcastOctets OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of octets of multicast packets that have arrived
            on the interface."
    ::= { ipMRouteInterfaceEntry 5 }

ipMRouteInterfaceOutMcastOctets OBJECT-TYPE
    SYNTAX     Counter32
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of octets of multicast packets that have been
            sent on the interface."
    ::= { ipMRouteInterfaceEntry 6 }

ipMRouteInterfaceHCInMcastOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of octets of multicast packets that have arrived
            on the interface.  This object is a 64-bit version of
            ipMRouteInterfaceInMcastOctets."
    ::= { ipMRouteInterfaceEntry 7 }

ipMRouteInterfaceHCOutMcastOctets OBJECT-TYPE
    SYNTAX     Counter64
    MAX-ACCESS read-only
    STATUS     current
    DESCRIPTION
            "The number of octets of multicast packets that have been
            sent on the interface.  This object is a 64-bit version of
            ipMRouteInterfaceOutMcastOctets."
    ::= { ipMRouteInterfaceEntry 8 }


--
--  The IP Multicast Scoped Boundary Table
--

ipMRouteBoundaryTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF IpMRouteBoundaryEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The (conceptual) table listing the router's scoped
            multicast address boundaries."
                ::= { ipMRoute 5 }

ipMRouteBoundaryEntry OBJECT-TYPE
    SYNTAX     IpMRouteBoundaryEntry
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "An entry (conceptual row) in the
            ipMRouteBoundaryTable representing a scoped
            boundary."
    INDEX      { ipMRouteBoundaryIfIndex, ipMRouteBoundaryAddress,
                 ipMRouteBoundaryAddressMask }
    ::= { ipMRouteBoundaryTable 1 }

IpMRouteBoundaryEntry ::= SEQUENCE {
    ipMRouteBoundaryIfIndex            Integer32,
    ipMRouteBoundaryAddress            IpAddress,
    ipMRouteBoundaryAddressMask        IpAddress,
    ipMRouteBoundaryStatus             RowStatus
}

ipMRouteBoundaryIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IfIndex value for the interface to which
            this boundary applies.  Packets with a
            destination address in the associated
            address/mask range will not be forwarded out this
            interface."
    ::= { ipMRouteBoundaryEntry 1 }

 ipMRouteBoundaryAddress OBJECT-TYPE
     SYNTAX     IpAddress
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
             "The group address which when combined with the
             corresponding value of ipMRouteBoundaryAddressMask
             identifies the group range for which the scoped
             boundary exists.  Scoped addresses must come from
             the range 239.x.x.x."
    ::= { ipMRouteBoundaryEntry 2 }

 ipMRouteBoundaryAddressMask OBJECT-TYPE
     SYNTAX     IpAddress
     MAX-ACCESS not-accessible
     STATUS     current
     DESCRIPTION
             "The group address mask which when combined with
             the corresponding value of ipMRouteBoundaryAddress
             identifies the group range for which the scoped
             boundary exists."
    ::= { ipMRouteBoundaryEntry 3 }

 ipMRouteBoundaryStatus OBJECT-TYPE
     SYNTAX     RowStatus
     MAX-ACCESS read-create
     STATUS     current
     DESCRIPTION
             "The status of this row, by which new entries may be
             created, or old entries deleted from this table."
    ::= { ipMRouteBoundaryEntry 4 }


 -- conformance information

 ipMRouteMIBConformance OBJECT IDENTIFIER ::= { ipMRouteMIB 2 }
 ipMRouteMIBCompliances OBJECT IDENTIFIER ::= { ipMRouteMIBConformance 1 }
 ipMRouteMIBGroups      OBJECT IDENTIFIER ::= { ipMRouteMIBConformance 2 }


 -- compliance statements

 ipMRouteMIBCompliance MODULE-COMPLIANCE
     STATUS  current
     DESCRIPTION
             "The compliance statement for the IP Multicast MIB."
     MODULE  -- this module
     MANDATORY-GROUPS { ipMRouteMIBBasicGroup }

     GROUP   ipMRouteMIBBoundaryGroup
     DESCRIPTION
             "This group is only required to support management of
             scoped multicast address boundaries."

     OBJECT      ipMRouteBoundaryStatus
     MIN-ACCESS  read-only
     DESCRIPTION
             "Write access is not required."

     GROUP   ipMRouteMIBHCInterfaceGroup
     DESCRIPTION
             "This group is mandatory only for those network
             interfaces for which the value of the corresponding
             instance of ifSpeed is greater than 20,000,000
             bits/second."

     ::= { ipMRouteMIBCompliances 1 }


 -- units of conformance

ipMRouteMIBBasicGroup OBJECT-GROUP
     OBJECTS { ipMRouteEnable, ipMRouteUpstreamNeighbor,
               ipMRouteInIfIndex,
               ipMRouteUpTime, ipMRouteExpiryTime,
               ipMRoutePkts, ipMRouteDifferentInIfPackets,
               ipMRouteOctets,
               ipMRouteNextHopState,
               ipMRouteNextHopUpTime,
               ipMRouteNextHopExpiryTime,
               ipMRouteNextHopProtocol,
               ipMRouteNextHopPkts,
               ipMRouteInterfaceTtl,
               ipMRouteInterfaceProtocol, ipMRouteInterfaceRateLimit,
               ipMRouteInterfaceInMcastOctets,
               ipMRouteInterfaceOutMcastOctets,
               ipMRouteProtocol
             }
     STATUS  current
     DESCRIPTION
             "A collection of objects to support basic management of
             IP Multicast routing."
     ::= { ipMRouteMIBGroups 1 }

ipMRouteMIBHopCountGroup OBJECT-GROUP
     OBJECTS { ipMRouteNextHopClosestMemberHops }
     STATUS  current
     DESCRIPTION
             "A collection of objects to support management of the use
             of hop counts in IP Multicast routing."
     ::= { ipMRouteMIBGroups 2 }

ipMRouteMIBBoundaryGroup OBJECT-GROUP
     OBJECTS { ipMRouteBoundaryStatus }
     STATUS  current
     DESCRIPTION
             "A collection of objects to support management of scoped
             multicast address boundaries."
     ::= { ipMRouteMIBGroups 3 }

ipMRouteMIBPktsOutGroup OBJECT-GROUP
     OBJECTS { ipMRouteNextHopPkts }
     STATUS  current
     DESCRIPTION
             "A collection of objects to support management of packet
             counters for each outgoing interface entry of a route."
     ::= { ipMRouteMIBGroups 4 }

ipMRouteMIBHCInterfaceGroup OBJECT-GROUP
     OBJECTS { ipMRouteInterfaceHCInMcastOctets,
               ipMRouteInterfaceHCOutMcastOctets }
     STATUS  current
     DESCRIPTION
             "A collection of objects providing information specific to
             high speed (greater than 20,000,000 bits/second) network
             interfaces."
     ::= { ipMRouteMIBGroups 5 }


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.
--        v52 : 12/03/97 - Added rcHighPriorityMode.  
--	  v53 : 12/18/97 - Added rcIpConfDhcpTable and rcIpDhcpForwardTable.
--        v54 : 12/29/97 - Changed rcVlanPotentialMembers to rcVlanActiveMembers.
--                         Added rcVlanPortDiscardTaggedFrames, 
--                               rcVlanPortDiscardUntaggedFrames, 
--                               rcVlanPortDefaultVlanId.
--                         Added rcSysLastIpAddrChange.
--        v55 : 12/31/97 - Added rcDevice group.
--	  v56 : 01/09/97 - Fixed compiler warning messages and added
--                         default values to some DHCP variables.
--	  v57 : 01/12/97 - Added enums to rcErrorReturnCode.
--			   Changed Max VLAN IDs from 4095 to 4094.
--        v58 : 01/21/98 - Obsoleted rcBoot.
--                         Took rcDeviceLastBootSourceFileNum off from rcDevice.
--                         Added rcDeviceFlashNumFiles, rcDevicePcmciaNumFiles
--                         into rcDevice.
--                         For rcDevice, added invalidDeviceFileNumber(179),
--                         notExecutableDeviceFile(180), deletedDeviceFile(181)
--                         into rcError.
--                         Changed rcDeviceFlashFileMod to rcDeviceFlashFileMode.
--                         For rcDeviceAction, changed squeezePcmica(3) to
--                         squeezePcmcia(3).
--	  v59 : 01/28/98 - Added enums to rcCardType.  
--			   Added vines(13) to rcVlanProtocolId.
--	  v60 : 01/26/98 - Modified enum for rcPortAdminSpeed.
--			   Added enums to rcCardType.
--	  v61 : 02/02/98 - Added rcTestTypesExtLoopBack.
--	  v62 : 02/06/98 - Changed IpDhcpForwardMode enum value.
--		           Added rcDeviceConfigSource and rcDeviceConfigSourceFileNum.
--	  v63 : 02/09/98 - Changed FileNum variables in rcDevice to be FileNames.
--	  v64 : 02/19/97 - Added rcIpFilter group and rcMlt group.
--      v64.1 : 04/09/98 - Modify the two "FIXME" field in rcIpFilter group.
--	  v65 : 02/27/98 - Added more error codes.
--			   Added rcPortLock group.
--			   Added rcPortLocked.
--        v66 : 02/25/98 - Added recoverFlash and recoverPcmcia to rcDeviceAction.
--        v66 : 04/16/98 - Added snoopIpMcastAddrExist, error code 215.
--	v66.1 : 04/02/98 - Added rc2x1000BaseXDWG and rc2x1000BaseXDBB card types.
--      v66.2 : 04/16/98 - Changed snoopIpMcastAddrExist to snoopStaticGroupExist.
--	  v67 : 03/05/98 - Added rcCli group.
--	  v68 : 03/09/98 - Changed all read-write variables that have none(1)
--			   to none(0). 
--			   Added IdList data type.
--			   Added rcSysCommReadWriteLayer3 and rcSysCommReadWriteLayer2. 
--	  v69 : 03/18/98 - Added rcSysAccessPolicyEnable and 
--			   rcSysAccessPolicyTable.
--        v70 : 03/18/98 - Added error code invalidDeviceFileLength
--	  v71 : 03/23/98 - Backed out changes to xxxAction variables that made
--			   none(1) to none(0).
--			 - Added flushSnoopMembers to rcVlanAction.
--	  v72 : 04/21/98 - Added rcIpPolicyAddrTable, 
--                         rcIpPolicyNetTable, rcIpPolicyListTable,
--                         rcIpPolicyRipAnnounceTable, rcIpPolicyOspfAnnounceTable,
--                         rcIpPolicyRipAcceptTable, rcIpPolicyOspfAcceptTable
--	  v73 : 04/29/98 - obsoleted rcIpRoutingRedistribute groups.
--                         added additional error codes.
--	  v74 : 04/30/98 - added "none" to rcIpFilterPortMode. 
--	v74.1 : 05/01/98 - changed the choice order of rcIpFilterPortMode. 
--	  v75 : 05/08/98 - added "resetConsole" and "resetModem" to rcSysAction.
--	  v76 : 05/08/98 - added "rcMltPortType" to rcMltTable. 
--	  v77 : 05/11/98 - Added rcVlanUserDefinedPid. 
--			   Added new enums for rcVlanProtocolId.
--			   Added rcIpConfGlobal group.
--	  v78 : 05/19/98 - Added error codes for rcip accept policies and filters.
--	  v79 : 05/20/98 - Added rcPortAutoNegotiationSupported.
--			   Added rcIpConfGlobalRipHoldDownTime
--	  v80 : 05/11/98 - modified ospfIfAuthKey SYNTAX in rcIpConfOsptTable.
--                         added rcIpConfOspfSpfHoldDownTime to rcIpConfOspf grp
--                         added rcIpConfOspfIfAreaId to rcIpConfOspfTable.
--	  v81 : 05/27/98 - Added rcChasAruMode.
--			   Added rcPortSingleRoutablePort.
-- 			   Deprecated rcPortPerformRouting.
-- 			   Deprecated rcVlanRoutingEnable.
--	  v82 : 05/29/98 - Added error codes for mlt.
--                         Added Default values in rcRipExtEntry & rcArpExtEntry.
--	  v83 : 06/01/98 - Added rcIpConfDhcpAlwaysBroadcast.
--	  v84 : 06/03/98 - Added rcIpVrrp group.
--	  v85 : 06/03/98 - Added rcIpConfOspfAreaTable.
--	  v86 : 06/04/98 - Enhancement in rcVlanTable and
--                         rcVlanIgmpSnoopStaticTable.
-- 	  v87 : 06/05/98 - Removed rcIpVrrp group.
-- 	  v87 : 06/05/98 - Removed rcIpVrrp group.
--        v88 : 06/12/98 - Added rcVlanSnoopActiveQuerier,
--                         rcVlanSnoopMRouterExpiration in rcVlan table.
--                         Added rcMltEnable, rcMltLoadBalance,
--                         rcMltDistributionAlgorithm in rcMlt table.
--        v89 : 06/17/98 - Changed rcVlanSnoopActiveMRouterPorts,
--                         rcVlanSnoopActiveQuerier, and
--                         rcVlanSnoopMRouterExpiration to
--                         rcVlanIgmpSnoopActiveMRouterPorts,
--                         rcVlanIgmpSnoopActiveMRouterPorts, and
--                         rcVlanIgmpSnoopMRouterExpiration respectively.
--        v90 : 06/12/98 - Added rcIpConfRipAutoAggrerateEnable,
--                         added additional error codes for route aggregation.
--        v91 : 06/29/98 - Added new trap rcLinkOscillation.
--        v92 : 07/01/98 - Added rcSyslog.
--        v93 : 07/08/98 - Added rcVlanIgmpSnoopAccessTable.
--	  v94 : 07/09/98 - Added rcChasPowerSupplyDetailTable. 
--	  v95 : 07/14/98 - Added rcVlanIgmpSnoopQuerierPort.
--	  v96 : 07/17/98 - Added additional error codes.
--	  v97 : 07/20/98 - Added rcIpFilterMode and rcIpFilterPortDefaultAction.
--			   Added rcMltIfIndex.
--			   Obsoleted rcIpFilterPortMode. 
--			   Added rcDiag group.
--	  v98 : 07/21/98 - Modified the rcIpPolicy group.
--	  v99 : 07/24/98 - Added description for Syslog group.
--	 v100 : 07/24/98 - Added a new card type rc8x10BaseFBB.
--       v101 : 07/29/98 - Added rcIpConfRipGenerateDefaultRoute.
--		         - Added triggerRipUpdate to rcVlanAction.
--	 v102 : 07/30/98 - Changed rcSysAccessPolicyActive to
--                         rcSysAccessPolicyPolicyEnable.
--	 v103 : 07/30/98 - modified the policy table index variable ACCESS
--                         to read-only.
--	 v104 : 08/04/98 - Added rc10BaseF to rcPortType.
--	 v105 : 08/11/98 - Changed range of rcMltId.
--	 v106 : 08/24/98 - Changed the option definition of rcSyslogHostModuleId
--                         in hexdecimal.
--       v107 : 08/28/98 - Added flushSnoopMRtr to rcVlanAction.
--       v108 : 08/28/98 - Backed out changes made in v106.
--	 v109 : 08/25/98 - Changed name size in policy & ip filter tables.
--       v110 : 09/01/98 - Added rcStgNotAllowedPorts to rcStg group.
--	 v111 : 09/28/98 - Changed rcVlanIgmpSnoopAccessMode options.
--                         Added rcPortPerformMacLearning for rcPortTable.
--       v112 : 10/01/98 - Add rcIpxAddrTbl
--       v113 : 10/06/98 - Added rcIpDvmrp.  Added rcIpConfIgmpRobustness 
--                         and rcIpConfIgmpLastMemberQueryInterval
--	 v114 : 10/06/98 - Added rc4xOC3, rc1xOC12, and rcRMON card types.
--	 v115 : 10/06/98 - Changed rcIpDvmrp table to rcIpConfDvmrpTable.
--
--       v116 : 09/29/98 - Added new items to rcIpFilter group.
--       v117 : 10/01/98 - Changed rcPortPerformMacLearning to read-write.
--       v118 : 10/07/98 - Changed rcPortPerformMacLearning to
--                         rcPortUnknownMacDiscard.
--       v119 : 09/29/98 - Merged rcIpFilter group from rel1.3.
--                         Added more rcError items.
--	 v120 : 10/15/98 - Added to "rarp" to rcVlanProtocolId.
--       v121 : 10/15/98 - Add rcIpDvmrpEnable into rcIpDvmrp.
--       v122 : 10/15/98 - Changed the range of rcIpConfIgmpRobustness.
--       v123 : 10/20/98 - Added rcStatMlt group.
--       v124 : 10/21/98 - Removed rcIpConfIgmp group.
--       v125 : 10/27/98 - Added rcChasEnableEOCMode, rcPortPerformMacLearning
--                         and rcError 323.
--       v126 : 10/12/98 - added rcIpUdpProtocolTable,  rcIpUdpPortFwdTable,
--                         rcIpUdpPortFwdListTable, rcIpUdpConfBroadcastIntfTable.
--       v127 : 10/30/98 - Added rcVlanIgmpSnoopSenderTable.
--       v128 : 11/02/98 - Added AuthType field to rcIpConfOspfTable.
--       v129 : 11/03/98 - Changed the index keys of rcipIgmpGroupTable.
--       v130 : 11/05/98 - Added enum none(0) to rcVlanIgmpSnoopSenderAction.
--       v131 : 11/05/98 - Added rcChasEocModeAdminStatus and
--                         rcChasEocModeOperStatus. Deleted rcChasEnableEOCMode.
--       v132 : 11/10/98 - Changed rcChasEocModeAdminStatus to read-write and
--                         rcChasEocModeOperStatus to read-only.
--                         Changed aruMixed of rcChasAruMode to aruThree.
--       v133 : 11/11/98 - Added PerformTagging into rcVlanPortTable.
--       v134 : 11/12/98 - Added range limit for rcIpConfigDvmrpTableMetric.
--       v135 : 11/16/98 - Added rcPortNumStateTransition in rcPort.
--       v136 : 11/20/98 - added rcIpConfAdvertiseWhenDown to rcIpConfTable.
--                         added additional error codes.
--       v137 : 11/23/98 - Added new items in rcIpDvmrp and rcIpConfIgmpTable.
--       v138 : 11/24/98 - Added interger range for UpdateInterval, 
--                         TriggeredUpdateInterval, LeafTimeout, NbrTimeout,
--                         and NbrProbeInterval in rcIpConfIgmpTable.
--       v139 : 12/03/98 - Re-built rcIpDvmrp, rcIpDvmrpGlobal & rcIpDvmrpTable.
--       v140 : 12/08/98 - Added IpTosRule under rcIpFilterTable. Added 
--                         rcIpRosRule group with AndMask, OrRule1, OrRule2, 
--                         OrRule3. 
--       v141 : 01/13/99 - Added return code 345 to 364 into rcErrorReturnCode.
--       v142 : 02/18/99 - modified udp protocol port number range.
--       v143 : 03/06/99 - modified rcIpUdpPortFwdListId range.
--       v144 : 06/25/99 - Changed default values of RipAcceptAction
--                         and OspfAcceptAction to accept.
--                         Added rcBridgeUnknownMacDiscardTable,
--                         rcBridgeManualEditTabl and rcBridgeAutoLearnTable.
--       v145 : 09/09/99 - Added rcIpStaticRoute group.
--	 v146 : 09/17/99 - Merged rcPortAllowOversizeFrame from REL2_1_BRANCH. 
-- 


-- ISSUES
--
-- None outstanding

IMPORTS
	MODULE-IDENTITY				FROM SNMPv2-SMI
--	TEXTUAL-CONVENTION                  	FROM SNMPv2-TC
	enterprises,  IpAddress, TimeTicks	FROM RFC1155-SMI
	Counter					FROM RFC1155-SMI
	OBJECT-TYPE 				FROM RFC-1212
	DisplayString		 		FROM RFC1213-MIB
	RowStatus, TruthValue, MacAddress 	FROM SNMPv2-TC
	Gauge32, NOTIFICATION-TYPE		FROM SNMPv2-SMI
	Counter32, Counter64			FROM SNMPv2-SMI; 

rapidCity MODULE-IDENTITY
       LAST-UPDATED 	"9701010000Z"
       ORGANIZATION 	"Bay Networks, Rapid-City Group"
       CONTACT-INFO 	"
				 	Edwin Tsang
                	 Postal: 	Bay Networks, Inc. 
                       			4401 Great America Parkway 
                       			Santa Clara, CA 95052-8185 

                   	 Tel: 		408-495-6159
                   	 Fax: 		408-495-5215 
                	 E-mail:	edwin_tsang@baynetworks.com 
			"
       DESCRIPTION 	"Enterprise MIB for the Accelar product family."
       ::= { enterprises 2272 }

-- 
-- Local defines to avoid having to pull-in other RFC's.
--
BridgeId	::= OCTET STRING (SIZE (8))
Timeout		::= INTEGER

--
-- This variable type is used through out the Rapid-City enterprise
-- MIB to denote the standard ifIndex in mib-2. 
--
InterfaceIndex	::= INTEGER

--
-- The string is 32 octets long, for a total of 256 bits. Each bit
-- corresponds to a port, as represented by its ifIndex value . When a
-- bit has the value one(1), the corresponding port is a member of the
-- set. When a bit has the value zero(0), the corresponding port is not
-- a member of the set. The encoding is such that the most significant
-- bit of octet #1 corresponds to ifIndex 0, while the least significant
-- bit of octet #32 corresponds to ifIndex 255."
--
PortSet 	::= OCTET STRING (SIZE (32))
IdList 		::= OCTET STRING


--
-- 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
--
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 }
rcA1050    	OBJECT IDENTIFIER ::= { rapidCity 9 }

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 }
rcDevice	OBJECT IDENTIFIER ::= { rcMgmt 16 }
rcMlt		OBJECT IDENTIFIER ::= { rcMgmt 17 }
rcWeb		OBJECT IDENTIFIER ::= { rcMgmt 18 }
rcCli		OBJECT IDENTIFIER ::= { rcMgmt 19 }
rcError		OBJECT IDENTIFIER ::= { rcMgmt 20 }
rcTraps		OBJECT IDENTIFIER ::= { rcMgmt 21 }
rcSyslog	OBJECT IDENTIFIER ::= { rcMgmt 22 }
rcDiag          OBJECT IDENTIFIER ::= { rcMgmt 23 }
-- RCIPX
rcIpx 		OBJECT IDENTIFIER ::= { rcMgmt 24 }
-- RCIPX


-- 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 rcSysCommReadWrite 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
                      rcSysCommReadWriteLayer3 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),
			 resetConsole(10),
			 resetModem(11),
			 flushIpRouteTbl(12)
 	              }
        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),
                         noStandbyCpu(8)
	              }
        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 }

rcSysLastIpAddrChange OBJECT-TYPE
        SYNTAX        TimeTicks
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Last management initiated IP address change 
                       since sysUpTime.  Any addition or deletion of
                       an IP address to a single routable port or
                       a VLAN is time-stamped by this variable."
        ::= { rcSystem 28 }

rcSysCommReadWriteLayer3 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-write access is 
		      granted to all Layer-3 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
                      rcSysCommReadWriteLayer2 string is compared next."
        ::= { rcSystem 29 }

rcSysCommReadWriteLayer2 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 fourth.  If it matches, read-write access is 
                      granted to all Layer-2 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
                      rcSysCommReadOnly string is compared next." 
        ::= { rcSystem 30 }

rcSysAccessPolicyEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to configure the system access policy feature.
		      if 'true', the rcSysAccessPolicyTable is examined to
		      determine which packets should be allowed or denied
                      access to this device." 
	DEFVAL	      { false }
        ::= { rcSystem 31 }


-- 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 }


-- Access Policy Table
 
rcSysAccessPolicyTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcSysAccesspolicyEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Management access policy table.  This table is 
		       used to permit or deny access to this device via
		       the specified source Id."
        ::= { rcSystem 61 }

rcSysAccessPolicyEntry OBJECT-TYPE
        SYNTAX        RcSysAccesspolicyEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "An access policy table entry."
        INDEX         { rcSysAccessPolicyId }
        ::= { rcSysAccessPolicyTable 1 }
 
RcSysAccesspolicyEntry ::=
        SEQUENCE {
                rcSysAccessPolicyId INTEGER,
                rcSysAccessPolicyName DisplayString,
                rcSysAccessPolicyPolicyEnable TruthValue,
                rcSysAccessPolicyMode INTEGER,
                rcSysAccessPolicyService INTEGER,
                rcSysAccessPolicyPrecedence INTEGER,
                rcSysAccessPolicyNetAddr IpAddress,
                rcSysAccessPolicyNetMask IpAddress,
                rcSysAccessPolicyTrustedHostAddr IpAddress,
                rcSysAccessPolicyTrustedHostUserName DisplayString,
                rcSysAccessPolicyAccessLevel INTEGER,
                rcSysAccessPolicyLog TruthValue,
                rcSysAccessPolicyUsage Counter,
                rcSysAccessPolicyRowStatus RowStatus
        }
 
rcSysAccessPolicyId OBJECT-TYPE 
        SYNTAX        INTEGER (1..65535)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Policy Id."
        ::= { rcSysAccessPolicyEntry 1 } 

rcSysAccessPolicyName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..15))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Name of this policy."
        ::= { rcSysAccessPolicyEntry 2 }

rcSysAccessPolicyPolicyEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Indicate whether this policy is currently 
                       active."
	DEFVAL	      { true }
        ::= { rcSysAccessPolicyEntry 3 }

rcSysAccessPolicyMode OBJECT-TYPE
        SYNTAX        INTEGER {
                        allow(1), 
                        deny(2)
                      }          
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether a packet having a
		       source IP address that matches this entry
		       should be permitted to enter the device or
 		       denied access." 
	DEFVAL	      { allow }
        ::= { rcSysAccessPolicyEntry 4 }

rcSysAccessPolicyService OBJECT-TYPE
        SYNTAX        INTEGER {
			telnet(1),
			snmp(2),
			tftp(4),
			ftp(8),
			http(16),
			rlogin(32)
	    	      }		
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Is represented as bitset to indicate which protocol
                      this entry should be applied to."
	DEFVAL	      { snmp }
        ::= { rcSysAccessPolicyEntry 5 }

rcSysAccessPolicyPrecedence OBJECT-TYPE
        SYNTAX        INTEGER (1..128)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the precedence of this policy.
		       The Lower the number the higher the precedence."
	DEFVAL	      { 10 }
        ::= { rcSysAccessPolicyEntry 6 }

rcSysAccessPolicyNetAddr OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Source network IP address."
        ::= { rcSysAccessPolicyEntry 7 }
 
rcSysAccessPolicyNetMask OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Source network mask."
        ::= { rcSysAccessPolicyEntry 8 }
 
rcSysAccessPolicyTrustedHostAddr OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Trusted IP address of host performing a rlogin
		       into the device."
        ::= { rcSysAccessPolicyEntry 9 }
 
rcSysAccessPolicyTrustedHostUserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..30))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name on the trusted host performing a rlogin
                       into the device."
        ::= { rcSysAccessPolicyEntry 10 }

rcSysAccessPolicyAccessLevel OBJECT-TYPE
        SYNTAX        INTEGER {
                        readOnly(1), 
                        readWrite(2),
                        readWriteAll(3)
                      }          
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Access level of trusted host." 
	DEFVAL	      { readWrite }
        ::= { rcSysAccessPolicyEntry 11 }

rcSysAccessPolicyLog OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether logging should be 
		       performed if this policy was applied."
	DEFVAL	      { false }
        ::= { rcSysAccessPolicyEntry 12 }

rcSysAccessPolicyUsage OBJECT-TYPE
        SYNTAX  	Counter
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"Usage counter"
        ::= { rcSysAccessPolicyEntry 13 }

rcSysAccessPolicyRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete an entry"
        ::= { rcSysAccessPolicyEntry 14 }


-- TFTP 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   "The number of VLANs currently defined in the switch."
        ::= { rcVlan 1 }

rcVlanTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcVlanEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A list of Virtual LAN entries. The number of entries
                      is given by rcVlanNumVlans."
        ::= { rcVlan 2 }

rcVlanEntry OBJECT-TYPE
        SYNTAX        RcVlanEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing configuration information for a 
                      particular Virtual LAN.

                      The relationship between the various port sets in a 
                      VLAN Entry are :

                      o The set of ports defined by PortMembers must be a 
                        subset of the set of ports in the underlying STG of 
                        the VLAN.

                      o The bitwise AND of PortMembers and NotAllowToJoin must 
                        be the empty set.

                      o The bitwise OR of PortMembers and NotAllowToJoin must 
                        be the set of ports in the underlying STG of the VLAN.

                      o The set of ports defined by StaticMembers must be a 
                        subset of the set of ports defined by PortMembers.

                      o The bitwise XOR of PortMembers and StaticMembers defines 
                        the set of dynamic (potential) members of the VLAN.

                      o The set of ports defined by ActiveMembers must be a subset 
                        of the set of ports defined by PortMembers.
                      "
        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 PortSet,
                rcVlanActiveMembers PortSet,
                rcVlanStaticMembers PortSet,
                rcVlanNotAllowToJoin PortSet,
                rcVlanProtocolId INTEGER,
                rcVlanSubnetAddr IpAddress,
                rcVlanSubnetMask IpAddress,
                rcVlanAgingTime  INTEGER,
                rcVlanMacAddress MacAddress,
                rcVlanRowStatus RowStatus,
                rcVlanIgmpSnoopEnable TruthValue,
                rcVlanIgmpSnoopReportProxyEnable TruthValue,
                rcVlanIgmpSnoopRobustness INTEGER,
                rcVlanIgmpSnoopQueryInterval INTEGER,
                rcVlanIgmpSnoopMRouterPorts PortSet,
		rcVlanUserDefinedPid INTEGER,
		rcVlanIgmpSnoopActiveMRouterPorts PortSet,
		rcVlanProtocolIds INTEGER,
		rcVlanIgmpSnoopActiveQuerier IpAddress,
		rcVlanIgmpSnoopMRouterExpiration INTEGER,
		rcVlanIgmpSnoopQuerierPort InterfaceIndex
        }

rcVlanId OBJECT-TYPE
        SYNTAX        INTEGER (1..4094)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A value that uniquely identifies the Virtual LAN 
                      associated with this entry. This value corresponds
                      to the lower 12 bits in the IEEE 802.1Q VLAN Tag."
        ::= { rcVlanEntry 1 }

rcVlanName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "An administratively-assigned name for this VLAN."
        ::= { rcVlanEntry 2 }

rcVlanColor OBJECT-TYPE
        SYNTAX        INTEGER (0..32)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "An administratively-assigned color code for this
                      VLAN. The value of this object is used by the VLAN
                      Manager GUI tool to select a color when it draws
                      this VLAN on the screen."
        ::= { rcVlanEntry 3 }

rcVlanHighPriority OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "A flag to note whether frames in this VLAN should 
                      be assigned a high switching priority."
        DEFVAL        { false }
        ::= { rcVlanEntry 4 }

rcVlanRoutingEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        deprecated
        DESCRIPTION   "A flag to note whether IP routing is enabled in
                      this VLAN." 
        DEFVAL        { false }
        ::= { rcVlanEntry 5 }

rcVlanIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex 
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "When rcVlanRoutingEnable is set to true(1), this 
                      value indicates the 'logical' ifIndex 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 
			 flushSnoopMemb(7),   -- flush IGMP Snoop Members
                         triggerRipUpdate(8), -- manually trigger rip update
			 flushSnoopMRtr(9)    -- flush snoop multicast router
                      }
        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   "The result from the last VLAN action."
        DEFVAL        { none }
        ::= { rcVlanEntry 8 }

rcVlanStgId OBJECT-TYPE
        SYNTAX        INTEGER (0..128)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Indicates the Spanning Tree Group (STG) used by
                      this VLAN to determine the state of its ports.
                      If this VLAN is not associated with any STG, this
                      value should be set to zero."
        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   "The type of VLAN, distinguished according to the
                      policy used to define its port membership."
        ::= { rcVlanEntry 10 }

rcVlanPortMembers OBJECT-TYPE
        SYNTAX        PortSet
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The set of ports that are members (static or 
                      dynamic) of this VLAN."
        ::= { rcVlanEntry 11 }
 
rcVlanActiveMembers OBJECT-TYPE
        SYNTAX        PortSet
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The set of ports that are currently active in 
                      this VLAN. Active ports include all static ports
                      and any dynamic ports where the VLAN policy was
                      met."
        ::= { rcVlanEntry 12 }
 
rcVlanStaticMembers OBJECT-TYPE
        SYNTAX        PortSet
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The set of ports that are static members of this
                      VLAN. A static member of a VLAN is always active 
                      and is never aged out."
        ::= { rcVlanEntry 13 }

rcVlanNotAllowToJoin OBJECT-TYPE
        SYNTAX        PortSet
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The set of ports that are not allowed to become
                      members of this VLAN."
        ::= { 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),
			 vines(13),
                         ipV6(14), 
                         usrDefined(15),
			 rarp(16)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The protocol identifier of this VLAN. This value 
                      is meaningful only if rcVlanType is equal to 
                      byProtocolId(3). For other VLAN types it should
                      have the value none(0)."
        ::= { 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(2). For other VLAN types it should
                      have the value 0.0.0.0."
        ::= { 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(2). For other VLAN types it should
                      have the value 0.0.0.0."
        ::= { rcVlanEntry 17 }

rcVlanAgingTime OBJECT-TYPE
        SYNTAX        INTEGER (10..1000000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The timeout period (in seconds) used for aging
                      out dynamic members of this VLAN. This field is
                      only relevant for policy-based VLANs."
        DEFVAL        { 600 }
        ::= { rcVlanEntry 18 }

rcVlanMacAddress OBJECT-TYPE
        SYNTAX        MacAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The MAC address assigned to the virtual router
                      interface of this VLAN. This field is meaningful 
                      only if rcVlanRoutingEnable is equal to true(1)."
        ::= { rcVlanEntry 19 }

rcVlanRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete entries in the rcVlanTable."
        ::= { rcVlanEntry 20 }

rcVlanIgmpSnoopEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "A flag to note whether IGMP Snooping is enabled
                      on this VLAN."
        DEFVAL        { false }
        ::= { rcVlanEntry 21 }
 
rcVlanIgmpSnoopReportProxyEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "A flag to note whether IGMP Report Proxy is
                      enabled on this VLAN."
        DEFVAL        { true }
        ::= { rcVlanEntry 22 }
 
rcVlanIgmpSnoopRobustness OBJECT-TYPE
        SYNTAX        INTEGER (2..255)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "This variable allows tuning for the expected
                      packet loss on a subnet. If a subnet is expected
                      to be lossy, the Robustness variable may be
                      increased. IGMP is robust to (Robustness - 1)
                      packet losses."
        DEFVAL        { 2 }
        ::= { rcVlanEntry 23 }
 
rcVlanIgmpSnoopQueryInterval OBJECT-TYPE
        SYNTAX        INTEGER (1..65535)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The interval (in seconds) between IGMP Host-Query
                      packets transmitted on this interface."
        DEFVAL        { 125 }
        ::= { rcVlanEntry 24 }
 
rcVlanIgmpSnoopMRouterPorts OBJECT-TYPE
        SYNTAX        PortSet
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The set of ports in this VLAN that provide
                      connectivity to an IP Multicast router."
        ::= { rcVlanEntry 25 }

rcVlanUserDefinedPid OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "When rcVlanProtocolId is set to usrDefined(15)
                       in a protocol-based VLAN, this field represents
                       the 16-bit user defined protocol identifier."
        ::= { rcVlanEntry 26 }
 
rcVlanIgmpSnoopActiveMRouterPorts OBJECT-TYPE
        SYNTAX        PortSet
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Active ports."
        ::= { rcVlanEntry 27 }

rcVlanProtocolIds OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Bitfield of protocol ids."
        ::= { rcVlanEntry 28 }

rcVlanIgmpSnoopActiveQuerier OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "IP address of multicast querier router."
        ::= { rcVlanEntry 29 }

rcVlanIgmpSnoopMRouterExpiration OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Multicast querier router aging time out."
        ::= { rcVlanEntry 30 }

rcVlanIgmpSnoopQuerierPort OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The port on which the multicast querier router
		       was heard."
        ::= { rcVlanEntry 31 }

-- 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 IdList,
                rcVlanPortType INTEGER,
                rcVlanPortDiscardTaggedFrames TruthValue,
                rcVlanPortDiscardUntaggedFrames TruthValue,
                rcVlanPortDefaultVlanId INTEGER,
                rcVlanPortPerformTagging TruthValue
        }

rcVlanPortIndex OBJECT-TYPE
        SYNTAX        INTEGER 
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An unique index used to identify a particular 
                      port in the system. This index is equal to the
                      ifIndex of the port."
        ::= { 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        IdList (SIZE (250))
        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. The first octet in the pair holds
                      bits 15-8 of the VLAN ID, while the second octet
                      holds bits 7-0 of the VLAN ID."
        ::= { rcVlanPortEntry 3 }

rcVlanPortType OBJECT-TYPE
        SYNTAX        INTEGER {
                         access(1),     -- access port type
                         trunk(2)       -- trunk port type
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The type of port: access(1) or trunk(2)."
        DEFVAL        { access }
        ::= { rcVlanPortEntry 4 }

rcVlanPortDiscardTaggedFrames OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "A flag used to determine how to process tagged
                      frames received on this access port. When the 
                      flag is set, these frames are discarded by the
                      forwarding process. When the flag is reset, these
                      frames are processed normally.

		      This field is meaningless when the port is not
		      an access port and should be set to false(2)."
        DEFVAL        { false }
        ::= { rcVlanPortEntry 5 }

rcVlanPortDiscardUntaggedFrames OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "A flag used to determine how to process untagged
                      frames received on this trunk port. When the flag 
                      is set, these frames are discarded by the 
                      forwarding process. When the flag is reset, these
                      frames are assigned to the VLAN specified by 
                      rcVlanPortDefaultVlanId.

		      This field is meaningless when the port is not
		      a trunk port and should be set to false(2)."
        DEFVAL        { false }
        ::= { rcVlanPortEntry 6 }

rcVlanPortDefaultVlanId OBJECT-TYPE
        SYNTAX        INTEGER (1..4094)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The VLAN ID assigned to untagged frames received
                      on this trunk port.

		      This field is meaningless when the port is not
		      a trunk port."
        DEFVAL        { 1 }
        ::= { rcVlanPortEntry 7 } 

rcVlanPortPerformTagging OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   ""
        DEFVAL        { false }
        ::= { rcVlanPortEntry 8 }

-- 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 }


-- VLAN IGMP Snoop Table

rcVlanIgmpSnoopNumGroups OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The number of entries (rows) in the
                      rcVlanIgmpSnoopTable."
        ::= { rcVlan 5 }

rcVlanIgmpSnoopTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcVlanIgmpSnoopEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "The (conceptual) table listing the IP multicast
                      groups for which there are members on a particular
                      interface on a particular VLAN."
    ::= { rcVlan 6 }
 
rcVlanIgmpSnoopEntry OBJECT-TYPE
        SYNTAX        RcVlanIgmpSnoopEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "An entry (row) in the rcVlanIgmpSnoopTable."
        INDEX         { rcVlanIgmpSnoopVlanId, rcVlanIgmpSnoopIpAddress,
                        rcVlanIgmpSnoopIfIndex, rcVlanIgmpSnoopMember }
        ::= { rcVlanIgmpSnoopTable 1 }
 
RcVlanIgmpSnoopEntry ::= SEQUENCE {
            rcVlanIgmpSnoopVlanId     INTEGER,
            rcVlanIgmpSnoopIpAddress  IpAddress,
            rcVlanIgmpSnoopIfIndex    InterfaceIndex,
            rcVlanIgmpSnoopMember     IpAddress,
            rcVlanIgmpSnoopExpiration INTEGER,
            rcVlanIgmpSnoopType       INTEGER
        }

rcVlanIgmpSnoopVlanId OBJECT-TYPE
        SYNTAX        INTEGER (1..4094)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The VLAN for which this entry contains
                      information."
        ::= { rcVlanIgmpSnoopEntry 1 } 

rcVlanIgmpSnoopIpAddress OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The IP multicast group address for which this 
                      entry contains information."
        ::= { rcVlanIgmpSnoopEntry 2 }
 
rcVlanIgmpSnoopIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The interface for which this entry contains 
                      information for this IP multicast group address."
        ::= { rcVlanIgmpSnoopEntry 3 }
 
rcVlanIgmpSnoopMember OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The IP Address of the source of the membership
                      report received for this IP Multicast group address
                      on this interface. If no membership report has been
                      received, this object has the value 0.0.0.0."
        ::= { rcVlanIgmpSnoopEntry 4 }
 
 
rcVlanIgmpSnoopExpiration OBJECT-TYPE
         SYNTAX       INTEGER
         ACCESS       read-only
         STATUS       mandatory
         DESCRIPTION  "The minimum amount of time remaining before this 
                      entry will be aged out."
         ::= { rcVlanIgmpSnoopEntry 5 }

rcVlanIgmpSnoopType OBJECT-TYPE
         SYNTAX       INTEGER {
                         dynamic(1),    -- created via IGMP
                         static(2)      -- created via management
                      }
         ACCESS       read-only
         STATUS       mandatory
         DESCRIPTION  "The type of entry: dynamic(1) entries are
                      created by snooping IGMP messages, static(2)
                      entries are created via management."
         ::= { rcVlanIgmpSnoopEntry 6 }


-- VLAN IGMP Snoop Static Table

rcVlanIgmpSnoopStaticTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcVlanIgmpSnoopStaticEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "The (conceptual) table listing the statically-
                      defined IP multicast groups for which there are
                      members on a particular interface on a particular
                      VLAN."
    	::= { rcVlan 7 }
 
rcVlanIgmpSnoopStaticEntry OBJECT-TYPE
        SYNTAX        RcVlanIgmpSnoopStaticEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "An entry (row) in the rcVlanIgmpSnoopStaticTable."
        INDEX         { rcVlanIgmpSnoopStaticVlanId, rcVlanIgmpSnoopStaticIpAddress }
        ::= { rcVlanIgmpSnoopStaticTable 1 }
 
RcVlanIgmpSnoopStaticEntry ::= SEQUENCE {
            rcVlanIgmpSnoopStaticVlanId           INTEGER,
            rcVlanIgmpSnoopStaticIpAddress        IpAddress,
            rcVlanIgmpSnoopStaticMemberPorts      PortSet,
            rcVlanIgmpSnoopStaticRowStatus        RowStatus,
            rcVlanIgmpSnoopStaticNotAllowedToJoin PortSet
        }

rcVlanIgmpSnoopStaticVlanId OBJECT-TYPE
        SYNTAX        INTEGER (1..4094)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The VLAN for which this entry contains
                      information."
        ::= { rcVlanIgmpSnoopStaticEntry 1 } 

rcVlanIgmpSnoopStaticIpAddress OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The IP multicast group address for which this 
                      entry contains information.  The address must
		      fall within 224.0.1.0 to 239.255.255.255."
        ::= { rcVlanIgmpSnoopStaticEntry 2 }

rcVlanIgmpSnoopStaticMemberPorts OBJECT-TYPE
        SYNTAX        PortSet
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The set of ports in this VLAN multicast traffic
		      for the rcVlanIgmpSnoopStaticIpAddress is to be
		      forwarded to."
        ::= { rcVlanIgmpSnoopStaticEntry 3 }

rcVlanIgmpSnoopStaticRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete entries in the 
                      rcVlanIgmpSnoopStaticTable."
        ::= { rcVlanIgmpSnoopStaticEntry 4 }

rcVlanIgmpSnoopStaticNotAllowedToJoin OBJECT-TYPE
        SYNTAX        PortSet
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Not allowed to join"
        ::= { rcVlanIgmpSnoopStaticEntry 5 }


-- VLAN IGMP Snoop Access Table

rcVlanIgmpSnoopAccessTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcVlanIgmpSnoopAccessEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   ""
    	::= { rcVlan 8 }
 
rcVlanIgmpSnoopAccessEntry OBJECT-TYPE
        SYNTAX        RcVlanIgmpSnoopAccessEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "An entry (row) in the rcVlanIgmpSnoopAccessTable."
        INDEX         { rcVlanIgmpSnoopAccessVlanId, rcVlanIgmpSnoopAccessGrpAddr, rcVlanIgmpSnoopAccessHostAddr, rcVlanIgmpSnoopAccessHostMask }
        ::= { rcVlanIgmpSnoopAccessTable 1 }
 

RcVlanIgmpSnoopAccessEntry ::= SEQUENCE {
            rcVlanIgmpSnoopAccessVlanId        INTEGER,
            rcVlanIgmpSnoopAccessGrpAddr       IpAddress,
            rcVlanIgmpSnoopAccessHostAddr      IpAddress,
            rcVlanIgmpSnoopAccessHostMask      IpAddress,
            rcVlanIgmpSnoopAccessMode          INTEGER,
            rcVlanIgmpSnoopAccessRowStatus     RowStatus
        }

rcVlanIgmpSnoopAccessVlanId OBJECT-TYPE
        SYNTAX        INTEGER (1..4094)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopAccessEntry 1 } 

rcVlanIgmpSnoopAccessGrpAddr OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopAccessEntry 2 } 

rcVlanIgmpSnoopAccessHostAddr OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopAccessEntry 3 }

rcVlanIgmpSnoopAccessHostMask OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopAccessEntry 4 }

rcVlanIgmpSnoopAccessMode OBJECT-TYPE
        SYNTAX        INTEGER {
                          denyTx(1),
                          denyRx(2),
                          denyBoth(3)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopAccessEntry 5 }

rcVlanIgmpSnoopAccessRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopAccessEntry 6 }

-- VLAN IGMP Snoop Sender Table

rcVlanIgmpSnoopSenderTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcVlanIgmpSnoopSenderEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   ""
    	::= { rcVlan 9 }
 
rcVlanIgmpSnoopSenderEntry OBJECT-TYPE
        SYNTAX        RcVlanIgmpSnoopSenderEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "An entry (row) in the rcVlanIgmpSnoopSenderTable."
        INDEX         { rcVlanIgmpSnoopSenderVlanId,
                        rcVlanIgmpSnoopSenderIpAddress,
                        rcVlanIgmpSnoopSenderIfIndex,
                        rcVlanIgmpSnoopSenderMember }
        ::= { rcVlanIgmpSnoopSenderTable 1 }
 

RcVlanIgmpSnoopSenderEntry ::= SEQUENCE {
            rcVlanIgmpSnoopSenderVlanId        INTEGER,
            rcVlanIgmpSnoopSenderIpAddress     IpAddress,
            rcVlanIgmpSnoopSenderIfIndex       InterfaceIndex,
            rcVlanIgmpSnoopSenderMember        IpAddress,
            rcVlanIgmpSnoopSenderAction        INTEGER
        }

rcVlanIgmpSnoopSenderVlanId OBJECT-TYPE
        SYNTAX        INTEGER (1..4094)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopSenderEntry 1 } 

rcVlanIgmpSnoopSenderIpAddress OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopSenderEntry 2 } 

rcVlanIgmpSnoopSenderIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopSenderEntry 3 }
 
rcVlanIgmpSnoopSenderMember OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopSenderEntry 4 } 

rcVlanIgmpSnoopSenderAction OBJECT-TYPE
	SYNTAX        INTEGER {
		         none(0),
		         flushEntry(1),
	     	         flushGrp(2)
	              }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopSenderEntry 5 } 


-- 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)
			 a1050(9)     -- 2 slots chassis (seahawk)
	              }
	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 }


rcChasPowerSupplyDetailTable OBJECT-TYPE
	SYNTAX        	SEQUENCE OF RcChasPowerSupplyDetailEntry
	ACCESS        	not-accessible
	STATUS        	mandatory
	DESCRIPTION   	"This table contains detailed information about
			power supplies."
	::= { rcChasPowerSupply 2 }

rcChasPowerSupplyDetailEntry OBJECT-TYPE
	SYNTAX        	RcChasPowerSupplyDetailEntry
	ACCESS        	not-accessible
	STATUS        	mandatory
	DESCRIPTION   	"Contains detailae info regarding a power supply
		      	unit."
	INDEX  { rcChasPowerSupplyDetailId }
	::= { rcChasPowerSupplyDetailTable 1 }

RcChasPowerSupplyDetailEntry ::=
	SEQUENCE {
		rcChasPowerSupplyDetailId INTEGER,
		rcChasPowerSupplyDetailType INTEGER,
		rcChasPowerSupplyDetailSerialNumber DisplayString,
		rcChasPowerSupplyDetailHardwareRevision DisplayString,
		rcChasPowerSupplyDetailPartNumber DisplayString
	}

rcChasPowerSupplyDetailId OBJECT-TYPE
	SYNTAX        	INTEGER(1..2)
	ACCESS        	read-only
	STATUS        	mandatory
	::= { rcChasPowerSupplyDetailEntry 1 }

rcChasPowerSupplyDetailType OBJECT-TYPE
        SYNTAX        	INTEGER {
				ac(1),
				dc(2)
		      	}
        ACCESS        	read-only
        STATUS        	mandatory
        ::= { rcChasPowerSupplyDetailEntry 2 }

rcChasPowerSupplyDetailSerialNumber OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..8))
        ACCESS        read-only
        STATUS        mandatory
        ::= { rcChasPowerSupplyDetailEntry 3 }

rcChasPowerSupplyDetailHardwareRevision OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..8))
        ACCESS        read-only
        STATUS        mandatory
        ::= { rcChasPowerSupplyDetailEntry 4 }

rcChasPowerSupplyDetailPartNumber OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..6))
        ACCESS        read-only
        STATUS        mandatory
        ::= { rcChasPowerSupplyDetailEntry 5 }


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),                        -- [1200] CPU Card (A1200)
        rc8x100BaseTX(3),                -- [1208TX] 8 port (cat 5) (A1200)
        rc8x100BaseT2(4),                -- [] 8 port (cat 3) (A1200)
        rc8x100BaseF(5),                 -- [1208FX] 8 port fiber (A1200)
        rc16x100BaseTX(6),               -- [1216TX] 16 port (cat 5) (A1200)
        rc8x100BaseTXWG(12),             -- [1108TX] 8 port (half width) (A1100)
        rc16x100BaseTXWG(13),            -- [1100] 16 port + CPU (A1100)
        rc4x100BaseFWG(14),              -- [1104FX] 4 port (half width) (A1100)
        rc12x100BaseTXWG(15),            -- [1050] 12 port + CPU (A1050)
        rc12x100BaseFBB(16),             -- [] 12 port (A1200)
        rc8x100BaseFWG(17),              -- [1108FX] 8 port (A1100)
        rc12x100BaseTX-2x100BaseFBB(18), -- [] 12 port + 2 port (A1200)
        rc2x155BaseFBB(19),              -- [] 2 sonet port (A1200)
        rc4x155BaseFBB(20),              -- [] 4 sonet port (A1200)
        rc16x100BaseFBB(21),             -- [1216FX] 16 port fiber (A1200)
        rc14x100BaseTX-2x100BaseFBB(22), -- [1216TF] 14 port + 2 port (A1200)
        rc8x10BaseFBB(23),               -- [1208FL] 8 port fiber low-speed (A1200)
	rc4xOC3(24),			 -- [1200xx] 4 port OC3 (A1200)
	rc1xOC12(25),			 -- [1200xx] 1 port OC12 (A1200)
        rcRMON(26),			 -- [1200xx] RMON (A1200) 
        rc4x1000BaseSXWG(1028),          -- [1150] 1 0 00 000 0100 + CPU (A1150)
        rc1x1000BaseSXWG(1025),          -- [1101SX] 1 0 00 000 0001
        rc2x1000BaseSXWG(1026),          -- [1102SX] 1 0 00 000 0010
        rc1x1000BaseSXRWG(1537),         -- [1101SR] 1 1 00 000 0001
        rc2x1000BaseSXRWG(1538),         -- [1102SR] 1 1 00 000 0010
        rc1x1000BaseLXWG(1153),          -- [1101LX] 1 0 01 000 0001
        rc2x1000BaseLXWG(1154),          -- [1102LX] 1 0 01 000 0010
        rc2x1000BaseXDWG(1282),          -- [1102XD] 1 0 10 000 0010
        rc1x1000BaseLXRWG(1665),         -- [1101LR] 1 1 01 000 0001
        rc2x1000BaseLXRWG(1666),         -- [1102LR] 1 1 01 000 0010
        rc1x1000BaseSXBB(1041),          -- [1201SX] 1 0 00 001 0001
        rc2x1000BaseSXBB(1042),          -- [1202SX] 1 0 00 001 0010
        rc1x1000BaseSXRBB(1553),         -- [1201SR] 1 1 00 001 0001
        rc2x1000BaseSXRBB(1554),         -- [1202SR] 1 1 00 001 0010
        rc1x1000BaseLXBB(1169),          -- [1201LX] 1 0 01 001 0001
        rc2x1000BaseLXBB(1170),          -- [1202LX] 1 0 01 001 0010
        rc2x1000BaseXDBB(1298),          -- [1202XD] 1 0 10 001 0010
        rc1x1000BaseLXRBB(1681),         -- [1201LR] 1 1 01 001 0001
        rc2x1000BaseLXRBB(1682)          -- [1202LR] 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, 
                                 2=extra-distance,
                             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,
		rcPortMltId		       INTEGER,
		rcPortLocked		       TruthValue,
		rcPortAutoNegotiationSupported TruthValue,
		rcPortSingleRoutablePort       TruthValue,
		rcPortUnknownMacDiscard        TruthValue,
                rcPortNumStateTransition       Counter,
		rcPortAllowOversizeFrame       TruthValue
	}

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),	     -- (100 mbps fiber)
		         rc1000BaseF(4),     -- (1000 mbps fiber)
		         rc1000BaseDualF(5), -- (fiber - dual connector)
		         rc10BaseF(6) 	     -- (10 mbps fiber)
	              }
	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 	      deprecated
	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
			 triggerRipUpdate(6) -- manually trigger rip update
                      }
        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 { 
				none(0),
                		mbps10(1),	-- 10Mb/s
                		mbps100(2)	-- 100Mb/s
        		} 
	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 }

rcPortMltId OBJECT-TYPE
        SYNTAX 		INTEGER  
	ACCESS 	      	read-only
        STATUS 	      	mandatory
	DESCRIPTION   	"Indicate which multi-link trunk (MLT) this port
		 	is assigned to.  If this port is not associated
			with any MLT, this value will be set to zero(0)."
	DEFVAL		{ 0 }
	::= { rcPortEntry 16 }

rcPortLocked OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Indicate whether this port is locked." 
        DEFVAL        	{ false }
        ::= { rcPortEntry 17 }

rcPortAutoNegotiationSupported OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Indicate whether this port can support 
		      	auto-negotiation." 
        DEFVAL        	{ false }
        ::= { rcPortEntry 18 }

rcPortSingleRoutablePort OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Indicate whether this port is a single routable
		      	port.  If this value is true, the port functions
			like a traditional router port."
        DEFVAL        	{ false }
        ::= { rcPortEntry 19 }

rcPortUnknownMacDiscard OBJECT-TYPE
        SYNTAX          TruthValue
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "If rcUnknownMacDiscard is set to True, 
                         then a packet with an unknown source MAC address
                         is dropped on that port, and other ports then
                         will discard any packets with this MAC address
                         in the destination field.  
                         For example, 
                         suppose 11:22:33:44:55:66 is an unknown source MAC,
                         packets with source MAC 11:22:33:44:55 coming from 
                         this port is discarded, further more, packets with
                         destination MAC 11:22:33:44:55:66 coming from
                         other ports are also discarded, unless this address
                         is later learned on another port or the restriction
                         ages out."

        DEFVAL          { false }
        ::= { rcPortEntry 20 }

rcPortNumStateTransition OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"# state transitions."
        ::= { rcPortEntry 21 }

rcPortAllowOversizeFrame OBJECT-TYPE
        SYNTAX          TruthValue
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "support large frames."
        ::= { rcPortEntry 23 }


-- Port Lock Group

rcPortLock OBJECT IDENTIFIER ::= { rcChassis 11 }

rcPortLockEnable OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Indicate whether the port lock feature is enabled."
        DEFVAL        	{ false }
        ::= { rcPortLock 1 }

rcPortLockLockedPorts OBJECT-TYPE
        SYNTAX        	PortSet
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"The set of ports that are administratively locked.
		      	Locked ports cannot be modified in anyway until the
		      	port is unlocked first."
        ::= { rcPortLock 2 }


-- Additional Chassis Group Variables

rcChasAruMode OBJECT-TYPE
        SYNTAX        	INTEGER 
			{
				aruOne(1),
				aruTwo(2),
				aruThree(3)
			}
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The ARU mode the chassis is operating in."
        ::= { rcChassis 12 }

rcChasQuidMode OBJECT-TYPE
        SYNTAX        	INTEGER 
			{
				quidMixed(1),
				quidTwo(2),
				quidThree(3),
				quidFour(4),
				quidFive(5)
			}
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The Quid mode the chassis is operating in."
        ::= { rcChassis 13 }

rcChasEocModeAdminStatus OBJECT-TYPE
        SYNTAX        	INTEGER 
			{
				default(0),
				aru1Quid4(1),
				aru2Quid4(2),
				aru2Quid5(3),
				aru3Quid4(4),
				aru3Quid5(5)
			}
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	""
        ::= { rcChassis 14 }

rcChasEocModeOperStatus OBJECT-TYPE
        SYNTAX        	INTEGER 
			{
				default(0),
				aru1Quid4(1),
				aru2Quid4(2),
				aru2Quid5(3),
				aru3Quid4(4),
				aru3Quid5(5)
			}
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	""
        ::= { rcChassis 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 }

rcHighPriorityMode OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether the system is configured
                      to operate in a high priority mode.  The switch can  
                      operate in either a 'best effort' or 'high priority' 
                      mode.  In the 'best effort' setting, the maximum 
                      queue thresholds for the QUIDs are set to 768/768 
                      buffers.  In the 'high priority' mode the setting
                      is 512/768.  This means that in 'high priority' mode
                      the normal priority queue can't have more than 512 
                      buffers, while the high priority queue can have up 
                      to 768." 
        ::= { rcDipSwitch 3 }


-- 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.  An entry
                      is automatically created in this table when routing 
		      is enabled for an interface -or- when an ip address 
                      is configured on an interface."
        INDEX         { rcIpConfIfIndex }
        ::= { rcIpConfTable 1 }
 
RcIpConfEntry ::= SEQUENCE {
                rcIpConfIfIndex               InterfaceIndex,
                rcIpConfAdvertDefRte          TruthValue,
                rcIpConfAcceptDefRte          TruthValue,
		rcIpConfRowStatus             RowStatus,
                rcIpConfRipEnable             TruthValue,
                rcIpConfOspfEnable            TruthValue,
                rcIpConfIgmpEnable            TruthValue,
                rcIpConfAddrAssigned          TruthValue,
                rcIpConfDhcpEnable            TruthValue,
                rcIpConfTriggeredUpdateEnable TruthValue,
                rcIpConfRipAutoAggrerateEnable TruthValue,
                rcIpConfRipGenerateDefaultRoute TruthValue,
                rcIpConfAdvertiseWhenDown       TruthValue
        }

rcIpConfIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex (0..4094)
        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 }

rcIpConfDhcpEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable or disable DHCP on the specified
                      interface."
        ::= { rcIpConfEntry 9 }

rcIpConfTriggeredUpdateEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether the RIP triggered update
		      feature should be enabled on this interface." 
        ::= { rcIpConfEntry 10 }
 
rcIpConfRipAutoAggrerateEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether the auto aggregation 
		      feature should be enabled on this interface." 
        ::= { rcIpConfEntry 11 }
 
rcIpConfRipGenerateDefaultRoute OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate whether to generate a default
		      RIP route	on this interface." 
        ::= { rcIpConfEntry 12 }

rcIpConfAdvertiseWhenDown OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The value is used indicated whether vlan state change
                       should be notified to layer 3 or not, provided the vlan
                       is configured as routable interface. Also used for
                       single routable ports, in that case the criteria for
                       state is PortOperStatus.
                       Vlan is considered as UP if atleast one member of the
                       port based vlan has link up, or atleast one port member
                       of the policy based has an entry in the MGID or atleast
                       one static member of the policy based vlan has link up.
                       Otherwise, vlan is considered as DOWN.
                       If the value is 'true' then the interface state change 
                       will not be notified to layer 3. (i.e., it always stays 
                       up). If the value is 'false' then the vlan state change 
                       will be notified to layer 3 so that IP related status 
                       reflects routable interface state."
        DEFVAL        { false }
        ::= { rcIpConfEntry 13 }
 

-- 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.  An entry is
                      automatically created in this table when routing 
		      is enabled for an interface -or- when an ip address 
                      is configured on an interface." 
        INDEX         { rcIpConfOspfIfIndex }
        ::= { rcIpConfOspfTable 1 }
 
RcIpConfOspfEntry ::= SEQUENCE {
                rcIpConfOspfIfIndex           InterfaceIndex,
                rcIpConfOspfRtrPriority       INTEGER,
                rcIpConfOspfMetric            INTEGER,
                rcIpConfOspfAuthKey           DisplayString,
                rcIpConfOspfRowStatus         RowStatus,
                rcIpConfOspfHelloInterval     INTEGER,
                rcIpConfOspfRtrDeadInterval   INTEGER,
                rcIpConfOspfIfAreaId          IpAddress,
                rcIpConfOspfAuthType          INTEGER
        }
 
rcIpConfOspfIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex (0..4094)
        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." 
        DEFVAL        { 0 }
        ::= { rcIpConfOspfEntry 3 }
 
rcIpConfOspfAuthKey OBJECT-TYPE
        SYNTAX        DisplayString (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"
        ::= { 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 }

rcIpConfOspfIfAreaId OBJECT-TYPE
         SYNTAX        IpAddress
         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
         ::= { rcIpConfOspfEntry 8 }

rcIpConfOspfAuthType OBJECT-TYPE
         SYNTAX        INTEGER {
                           none (0),
                           simplePassword (1),
                           md5 (2)
                           
                       }
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION    "The authentication type specified for  an  interface.   
                       Additional  authentication types may be assigned locally."
        REFERENCE      "OSPF Version 2, Appendix E Authentication"
        DEFVAL { 0 }        -- no authentication, by default
        ::= { rcIpConfOspfEntry 9 }

 
-- Ospf Cost Grp

rcIpConfOspfDefaultMetric   OBJECT IDENTIFIER       ::= { rcIpConf 3 }
 
rcIpConfOspfDefaultMetric10MegPort OBJECT-TYPE
        SYNTAX        INTEGER (1..'FFFF'h)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the cost associated with
                      10Meg Interface(Port)."
        ::= { rcIpConfOspfDefaultMetric 1 }
 
rcIpConfOspfDefaultMetric100MegPort OBJECT-TYPE
        SYNTAX        INTEGER (1..'FFFF'h)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the cost associated with
                      100Meg Interface(Port)."
        ::= { rcIpConfOspfDefaultMetric 2 }
 
rcIpConfOspfDefaultMetric1000MegPort OBJECT-TYPE
        SYNTAX        INTEGER (1..'FFFF'h)
        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 }

rcIpConfOspfSpfHoldDownTime OBJECT-TYPE
         SYNTAX   INTEGER (3..60)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION   "The SPF Hold Down Timer value. The SPF will run
                        at most once per hold down timer value."
         DEFVAL  { 10 }
         ::= { rcIpConfOspf 3 }


rcIpConfGlobal   OBJECT IDENTIFIER       ::= { rcIpConf 6 }

rcIpConfGlobalRipHoldDownTime OBJECT-TYPE
        SYNTAX	      INTEGER (0..360)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to set the system-wide RIP hold down time
		      in seconds."
        DEFVAL        { 180 }
        ::= { rcIpConfGlobal 1 }


-- Ospf Area Table
 
rcIpConfOspfAreaTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpConfOspfAreaEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to maintain OSPF information
                      for a particular Area."
        ::= { rcIpConf 7 }
 
rcIpConfOspfAreaEntry OBJECT-TYPE
        SYNTAX        RcIpConfOspfAreaEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing OSPF Area configuration 
                      information.  An entry is automatically created 
                      in this table when an area is configured through 
                      ospfAreaTable in (rfc1253rcc.mib)."
        INDEX         { rcIpConfOspfAreaId }
        ::= { rcIpConfOspfAreaTable 1 }
 
RcIpConfOspfAreaEntry ::= SEQUENCE {
                rcIpConfOspfAreaId              IpAddress,
                rcIpConfOspfAreaImportSummary   TruthValue,
                rcIpConfOspfAreaActiveIfCount   INTEGER
        }
 
rcIpConfOspfAreaId OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "An unique value to identify an area. Area ID
 		      0.0.0.0 is used for the OSPF backbone."
        ::= { rcIpConfOspfAreaEntry 1 }

rcIpConfOspfAreaImportSummary OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The area's support for importing Summary 
                      advertisements into a stub area. This field
                      should be used only if ospfImportASExtern is
                      set to FALSE"
        DEFVAL        { true }
        ::= { rcIpConfOspfAreaEntry 2 }
 
rcIpConfOspfAreaActiveIfCount OBJECT-TYPE
        SYNTAX        INTEGER 
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "This variable displays the number of active
                      interfaces configured in this area. An area
                      cannot be deleted if this value is > 0."
        ::= { rcIpConfOspfAreaEntry 3 }
 
-- 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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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        obsolete
        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   "A table used to maintain IGMP information
                      for a particular interface."
    ::= { rcIp 5 }
 
rcIpConfIgmpEntry OBJECT-TYPE
        SYNTAX        RcIpConfIgmpEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing IGMP information.  An entry is
                      automatically created in this table when routing 
                      is enabled for an interface -or- when an ip address 
                      is configured on an interface."
        INDEX      { rcIpConfIgmpIfIndex }
        ::= { rcIpConfIgmpTable 1 }
 
RcIpConfIgmpEntry ::= SEQUENCE {
        rcIpConfIgmpIfIndex                 INTEGER,
        rcIpConfIgmpQueryInterval           INTEGER,
        rcIpConfIgmpVersion                 INTEGER,
        rcIpConfIgmpQueryMaxResponseTime    INTEGER,
        rcIpConfIgmpQuerierPresentTimeout   INTEGER,
        rcIpConfIgmpLeaveEnabled            TruthValue,
        rcIpConfIgmpRowStatus               RowStatus,
        rcIpConfIgmpRobustness              INTEGER,
        rcIpConfIgmpLastMemberQueryInterval INTEGER
}

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 (1..65535)
         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 (1..255)
         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 }

rcIpConfIgmpRobustness OBJECT-TYPE
        SYNTAX          INTEGER (2..255)
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "lossiness of network."
        ::= { rcIpConfIgmpEntry 8 }

rcIpConfIgmpLastMemberQueryInterval OBJECT-TYPE
        SYNTAX          INTEGER (1..255)
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "max response in GrpSpec Query."
        ::= { rcIpConfIgmpEntry 9 }

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, rcIgmpGroupMembers }
        ::= { rcIgmpGroupTable 1 }
 
RcIgmpGroupEntry ::= SEQUENCE {
        rcIgmpGroupIpAddress         IpAddress,
        rcIgmpGroupMembers           IpAddress,
        rcIgmpGroupInPort            INTEGER,
        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 }

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 2 }
 
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 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 }


-- Ip Config Dhcp Table
 
rcIpConfDhcpTable OBJECT-TYPE 
        SYNTAX          SEQUENCE OF RcIpConfDhcpEntry
        ACCESS          not-accessible 
        STATUS          mandatory 
        DESCRIPTION     "DHCP configuration table"
    ::= { rcIp 8 }

rcIpConfDhcpEntry OBJECT-TYPE
        SYNTAX        	RcIpConfDhcpEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"Used to configure DHCP on a particular port.  An
		      	entry is created automatically when the variable
		      	rcIpConfDhcpEnable is set to TRUE.  

 		      	Once created this entry will only be deleted if the 
		      	rcIpConfDhcpRowStatus is set to 'destroy(6)'.  In
		      	which case, the rcIpConfDhcpEnable is automatically
		      	reset to the FALSE setting."
        INDEX         	{ rcIpConfDhcpIfIndex }
        ::= { rcIpConfDhcpTable 1 }
 
RcIpConfDhcpEntry ::=
        SEQUENCE {
                rcIpConfDhcpIfIndex   	    InterfaceIndex,
                rcIpConfDhcpMaxHop    	    INTEGER,
                rcIpConfDhcpMinSec    	    INTEGER,
                rcIpConfDhcpMode      	    INTEGER,
                rcIpConfDhcpRowStatus 	    RowStatus,
		rcIpConfDhcpNumRequests     Counter,
		rcIpConfDhcpNumReplies	    Counter,
		rcIpConfDhcpAlwaysBroadcast TruthValue
        }
 
rcIpConfDhcpIfIndex OBJECT-TYPE
        SYNTAX        	InterfaceIndex (0..4094)
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Interface number.  The number can represent either
		      	a physical or logical(VLAN) interface."
        ::= { rcIpConfDhcpEntry 1 }
 
rcIpConfDhcpMaxHop OBJECT-TYPE
        SYNTAX        	INTEGER (1..16)
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the maximum number of hops a 
		      	DHCP packet can take from the source device to 
		      	the destination device (i.e., DHCP client to 
		      	DHCP server)."
 	DEFVAL        	{ 4 }
        ::= { rcIpConfDhcpEntry 2 }
 
rcIpConfDhcpMinSec OBJECT-TYPE
        SYNTAX        	INTEGER (0..65535)
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the minimum number of seconds 
		      	to wait between receiving a DHCP packet and
		      	actually forwarding the DHCP packet to the 
		      	destination device.  A value of zero(0) indicates
		      	forwarding should be done immediately without any
		      	delay."
	DEFVAL        	{ 0 }
        ::= { rcIpConfDhcpEntry 3 }
 
rcIpConfDhcpMode OBJECT-TYPE
        SYNTAX		INTEGER {
				none(0),
				bootp(2),
				dhcp(3),
				both(4)
			}
        ACCESS     	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate what type of DHCP packets this
		      	interface should support.  A value of none(1) will
		      	result in all incoming DHCP and BOOTP packets to
		      	be dropped." 
        DEFVAL        	{ both }
        ::= { rcIpConfDhcpEntry 4 }
 
rcIpConfDhcpRowStatus OBJECT-TYPE
        SYNTAX        	RowStatus
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"An entry is created automatically when the variable
                      	rcIpConfDhcpEnable is set to TRUE.

                      	Once created this entry will only be deleted if the
                      	rcIpConfDhcpRowStatus is set to 'destroy(6)'.  In
                      	which case, the rcIpConfDhcpEnable is automatically
                      	reset to the FALSE setting."
        ::= { rcIpConfDhcpEntry 5 }

rcIpConfDhcpNumRequests OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of DHCP requests seen on this interface."
        ::= { rcIpConfDhcpEntry 6 }

rcIpConfDhcpNumReplies OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of DHCP replies seen on this interface."
        ::= { rcIpConfDhcpEntry 7 }

rcIpConfDhcpAlwaysBroadcast OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate if DHCP Reply packets should be 
		    	broadcast to the DHCP client on this interface."
	DEFVAL		{ false }
        ::= { rcIpConfDhcpEntry 8 }


-- Ip Dhcp Forward Table
 
rcIpDhcpForwardTable OBJECT-TYPE 
        SYNTAX	      	SEQUENCE OF RcIpDhcpForwardEntry
        ACCESS        	not-accessible 
        STATUS        	mandatory 
        DESCRIPTION   	"DHCP forwarding table."
    ::= { rcIp 9 }

rcIpDhcpForwardEntry OBJECT-TYPE
        SYNTAX        	RcIpDhcpForwardEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"An entry used represents a DHCP forwarding directive."
        INDEX         	{ rcIpDhcpForwardAgentAddr, rcIpDhcpForwardServerAddr }
        ::= { rcIpDhcpForwardTable 1 }
 
RcIpDhcpForwardEntry ::=
        SEQUENCE {
                rcIpDhcpForwardAgentAddr   IpAddress,
                rcIpDhcpForwardServerAddr  IpAddress,
                rcIpDhcpForwardEnable      TruthValue,
                rcIpDhcpForwardMode        INTEGER,
                rcIpDhcpForwardRowStatus   RowStatus
        }
 
rcIpDhcpForwardAgentAddr OBJECT-TYPE
        SYNTAX        	IpAddress
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The IP address configured on an interface
                      	(i.e., a locally configured IP address)."
        ::= { rcIpDhcpForwardEntry 1 }
 
rcIpDhcpForwardServerAddr OBJECT-TYPE
        SYNTAX        	IpAddress
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The IP address of the DHCP server.  If this
	              	IP address corresponds to a locally configured
		      	IP network, the DHCP packet is broadcasted out
	       	      	the interface the IP address is assigned to.
		      	This behavior is known as 'relay agent' mode.

 		      	If this IP address is a remote address, the DHCP
		      	packet is sent via unicast to the remote device.
		      	This behavior is known as 'preferred server' mode."
        ::= { rcIpDhcpForwardEntry 2 }
 
rcIpDhcpForwardEnable OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate whether is entry should be used."
	DEFVAL        	{ true }
        ::= { rcIpDhcpForwardEntry 3 }
 
rcIpDhcpForwardMode OBJECT-TYPE
        SYNTAX        	INTEGER {
				none(0),
				bootp(2),
				dhcp(3),
				both(4)
			}
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate whether this entry pertains to
		      	BOOTP packets, DHCP packets, or both."
	DEFVAL        	{ both }
        ::= { rcIpDhcpForwardEntry 4 }
 
rcIpDhcpForwardRowStatus OBJECT-TYPE
        SYNTAX        	RowStatus
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Row status of this entry."
        ::= { rcIpDhcpForwardEntry 5 }


-- IP Filter Group

rcIpFilter OBJECT IDENTIFIER ::= { rcIp 10 }

rcIpFilterFilterTableSize OBJECT-TYPE
        SYNTAX        	INTEGER
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the number of entries in the
                      	rcIpFilterTable."
        ::= { rcIpFilter 1 }

rcIpFilterGlobalListTableSize OBJECT-TYPE
        SYNTAX        	INTEGER
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the number of entries in the
                      	rcIpFilterGlobalListTable."
        ::= { rcIpFilter 2 }

rcIpFilterBaseListTableSize OBJECT-TYPE
        SYNTAX        	INTEGER
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the number of entries in the
                      	rcIpFilterBaseListTable."
        ::= { rcIpFilter 3 }

rcIpFilterPortTableSize OBJECT-TYPE
        SYNTAX        	INTEGER
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the number of entries in the
                      	rcIpFilterPortTable."
        ::= { rcIpFilter 4 }

rcIpFilterNextAvailFilterId OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "next available filter-id in the
                        rcIpFilterPortTable."
        ::= { rcIpFilter 5 }
 

-- IP Filter Table

rcIpFilterTable OBJECT-TYPE
        SYNTAX		SEQUENCE OF RcIpFilterEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"A table containing IP filters."
        ::= { rcIpFilter 20 }

rcIpFilterEntry OBJECT-TYPE
	SYNTAX        	RcIpFilterEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"IP filter attributes.  

			The system supports a vast array of filter options.
			Each of these options are supported in this entry.
			If a particular option is not used, the column
			should be set to zero."
        INDEX         	{ rcIpFilterType, rcIpFilterDstAddr,
			  rcIpFilterDstMask, rcIpFilterSrcAddr,
			  rcIpFilterSrcMask, rcIpFilterId }
        ::= { rcIpFilterTable 1 }

RcIpFilterEntry ::= SEQUENCE {
		rcIpFilterType INTEGER,
		rcIpFilterDstAddr IpAddress,
		rcIpFilterDstMask IpAddress,
		rcIpFilterSrcAddr IpAddress,
		rcIpFilterSrcMask IpAddress,
		rcIpFilterId INTEGER (1..1024),
		rcIpFilterName DisplayString (SIZE (0..15)),
		rcIpFilterProtocolType INTEGER,
		rcIpFilterSrcPort INTEGER (0..65535),
		rcIpFilterSrcOption INTEGER,
		rcIpFilterDstPort INTEGER (0..65535),
		rcIpFilterDstOption INTEGER,
		rcIpFilterCopyToCpu TruthValue,
		rcIpFilterMirror TruthValue,
		rcIpFilterHighPriority TruthValue,
		rcIpFilterTcpConnect TruthValue,
		rcIpFilterIeeeVlanPriority INTEGER,
		rcIpFilterUsePktLimit TruthValue,
		rcIpFilterPktLimit INTEGER,
		rcIpFilterRowStatus RowStatus,
                rcIpFilterMode INTEGER,
                rcIpFilterIpTosRule INTEGER
		}

rcIpFilterType OBJECT-TYPE
        SYNTAX		INTEGER {
			   global(1),
			   destination(2),
			   source(3)
			}
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"Used to indicate a particular type of filter.  

                        A 'global' filter is a filter that is applied to
                        all packets irregardless of the packet's source
                        or destination IP address.
 
                        A 'destination' filter is used to match the
                        destination IP address field of incoming packets.
                        When a match is found, this filter is applied to
                        the packet.
 
                        A 'source' filter is used to match the source
                        IP address field of incoming packets.  When a
                        match is found, this filter is applied to the
                        packet."
        ::= { rcIpFilterEntry 1 }

rcIpFilterDstAddr OBJECT-TYPE
        SYNTAX		IpAddress
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"Destination IP address to filter on."
        ::= { rcIpFilterEntry 2 }

rcIpFilterDstMask OBJECT-TYPE
        SYNTAX		IpAddress
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"Destination IP subnet mask to filter on."
        ::= { rcIpFilterEntry 3 }

rcIpFilterSrcAddr OBJECT-TYPE
        SYNTAX		IpAddress
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"Source IP address to filter on."
        ::= { rcIpFilterEntry 4 }

rcIpFilterSrcMask OBJECT-TYPE
        SYNTAX		IpAddress
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"Source IP subnet mask to filter on."
        ::= { rcIpFilterEntry 5 }

rcIpFilterId OBJECT-TYPE
        SYNTAX		INTEGER (1..1024)
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"This filter's unique identifier(id).  This id
			is automatically generated by the system when
			a filter is created.  This id is used in the
			'rcIpFilterGlobalListTable' and 
			'rcIpFilterBaseListTable' when grouping one
			or more filters into a filter list."
        ::= { rcIpFilterEntry 6 }

rcIpFilterName OBJECT-TYPE
        SYNTAX		DisplayString (SIZE (0..15))
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"This filter's name."
        ::= { rcIpFilterEntry 7 }

rcIpFilterProtocolType OBJECT-TYPE
        SYNTAX		INTEGER {
			    ignore(0),
			    icmp(1),
			    tcp(6),
			    udp(17)
			}
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Type of protocol to filter on."
	DEFVAL		{ ignore }
        ::= { rcIpFilterEntry 8 }

rcIpFilterSrcPort OBJECT-TYPE
        SYNTAX		INTEGER (0..65535)
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"TCP/UDP source port to filter on."
	DEFVAL		{ 0 }
        ::= { rcIpFilterEntry 9 }

rcIpFilterSrcOption OBJECT-TYPE
        SYNTAX		INTEGER {
                            equal(0),
                            notEqual(1),
                            greater(2),
                            less(3),
                            ignore(4)
			}
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Type of matching to perform on the field
			'rcIpFilterSrcPort'.
			
			For 'source' and 'destination' filters, this
			value can only be 'equal(1)'."
	DEFVAL 		{ ignore }
        ::= { rcIpFilterEntry 10 }

rcIpFilterDstPort OBJECT-TYPE
        SYNTAX		INTEGER (0..65535)
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"TCP/UDP destination port to filter on."
	DEFVAL		{ 0 }
        ::= { rcIpFilterEntry 11 }

rcIpFilterDstOption OBJECT-TYPE
        SYNTAX		INTEGER {
                            equal(0),
                            notEqual(1),
                            greater(2),
                            less(3),
                            ignore(4)
			}
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Type of matching to perform on the field
			'rcIpFilterDstPort'.

			For 'source' and 'destination' filters, this
			value can only be 'equal(1)'."
	DEFVAL		{ ignore }
        ::= { rcIpFilterEntry 12 }

rcIpFilterCopyToCpu OBJECT-TYPE
        SYNTAX		TruthValue
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Used to specify whether a packet matching
			this filter should be copied to the CPU."
	DEFVAL		{ false }
        ::= { rcIpFilterEntry 13 }

rcIpFilterMirror OBJECT-TYPE
        SYNTAX		TruthValue
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Used to specify whether a packet matching
			this filter should be mirrored to the port
			specified by 'rcMirrorByPortMirrorPort'."
	DEFVAL		{ false }
        ::= { rcIpFilterEntry 14 }

rcIpFilterHighPriority OBJECT-TYPE
        SYNTAX		TruthValue
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Used to specify whether a packet matching
			this filter should be forwarded with high
			priority." 
	DEFVAL		{ false }
        ::= { rcIpFilterEntry 15 }

rcIpFilterTcpConnect OBJECT-TYPE
        SYNTAX		TruthValue
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Used to specify whether a TCP packet matching
                         this filter should be accepted.  Pass only 
                         those matching TCP packets with either the
                         ACK bit or RST bit set.  Apply only if the IP 
                         Protocol is set to TCP."
	DEFVAL		{ false }
        ::= { rcIpFilterEntry 16 }

rcIpFilterIeeeVlanPriority OBJECT-TYPE
        SYNTAX		INTEGER (0..7)
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Used to specify the priority bits for explicit
                         IEEE VLAN tag for a packet matching this filter.
                         If this priority bit field is greater than the
                         priority field currently in the IEEE tag in the
                         Packet Header, this priority field will be loaded
                         into the Packet Header."
        DEFVAL          { 0 }
        ::= { rcIpFilterEntry 17 }

rcIpFilterUsePktLimit OBJECT-TYPE
        SYNTAX		TruthValue
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Used to specify whether the 'rcIpFilterPktLimit'
			field in this entry should be used when applying
			this filter." 
	DEFVAL		{ false }
        ::= { rcIpFilterEntry 18 }

rcIpFilterPktLimit OBJECT-TYPE
        SYNTAX		INTEGER (0..65535)
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"The maximum packet size limit to filter against."
	DEFVAL		{ 1500 }
        ::= { rcIpFilterEntry 19 }

rcIpFilterRowStatus OBJECT-TYPE
        SYNTAX		RowStatus
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpFilterEntry 20 }

rcIpFilterMode OBJECT-TYPE
        SYNTAX          INTEGER {
                            useDefaultAction(1),
                            forward(2),
                            drop(3)
                        }
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Used to specify the operation mode for this entry.
			'useDefaultAction' means use the setting specified
			in the 'rcIpFilterPortDefaultAction' variable.  

			'forward' means forward the packet if the packet 
			satisfies this policy.  

			'drop' means drop the packet if the packet satisfies 
			this policy.

			This variable setting has higher precedence than the
			setting in 'rcIpFilterPortDefaultAction'."
        DEFVAL          { useDefaultAction }
        ::= { rcIpFilterEntry 21 }

rcIpFilterIpTosRule OBJECT-TYPE
        SYNTAX          INTEGER {
			    none(0),
                            ipTosRule1(1),
                            ipTosRule2(2),
                            ipTosRule3(3)
                        }
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Used to specify the operation mode for this entry.
                        'none' means do not manupulate the Ip ToS byte.
			'ipTosRule1' means manipulate the Ip ToS byte 
			according to Quid/Gid Rule 1 which is defined in
                        rcIpTosRuleOrRule1.
			'ipTosRule2' means manipulate the Ip ToS byte 
			according to Quid/Gid Rule 2 which is defined in
			rcIpTosRuleOrRule2.
			'ipTosRule3' means manipulate the Ip ToS byte 
			according to Quid/Gid Rule 3 which is defined in
                        rcIpTosRuleOrRule3."
        DEFVAL          { none }
        ::= { rcIpFilterEntry 22 }

-- IP Filter Global List Table

rcIpFilterGlobalListTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF RcIpFilterGlobalListEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "A table used to store global filter list information.
			Each row in the table contains a set of individual
			filters that make up a particular filter list."
        ::= { rcIpFilter 21 }

rcIpFilterGlobalListEntry OBJECT-TYPE
        SYNTAX          RcIpFilterGlobalListEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Global filter list attributes."
        INDEX           { rcIpFilterGlobalListId } 
        ::= { rcIpFilterGlobalListTable 1 }

RcIpFilterGlobalListEntry ::= SEQUENCE {
		rcIpFilterGlobalListId INTEGER (1..100),
		rcIpFilterGlobalListName DisplayString (SIZE(0..15)),
		rcIpFilterGlobalListFilterIdListSize INTEGER (0..8),
		rcIpFilterGlobalListFilterIdList IdList(SIZE(16)),
		rcIpFilterGlobalListRowStatus RowStatus,
                rcIpFilterGlobalListMemberPorts PortSet
                }

rcIpFilterGlobalListId OBJECT-TYPE
        SYNTAX		INTEGER (1..100)
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"An unique value to identify a particular global
			filter list." 
        ::= { rcIpFilterGlobalListEntry 1 }

rcIpFilterGlobalListName OBJECT-TYPE
        SYNTAX		DisplayString (SIZE(0..15))	        	
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Name of this filter list."
        ::= { rcIpFilterGlobalListEntry 2 }

rcIpFilterGlobalListFilterIdListSize OBJECT-TYPE
        SYNTAX		INTEGER (0..8)
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"Used to indicate the number of filters are
			associated with this filter list."
        ::= { rcIpFilterGlobalListEntry 3 }

rcIpFilterGlobalListFilterIdList OBJECT-TYPE
        SYNTAX		IdList (SIZE(16))	
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Used to indicate zero or more filters that are
			associated with this filter list.  Each filter
			identifier is stored as two bytes in this array
			starting from offset zero.  Any unused bytes
			should be set to zero."
        ::= { rcIpFilterGlobalListEntry 4 }

rcIpFilterGlobalListRowStatus OBJECT-TYPE
        SYNTAX		RowStatus	
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpFilterGlobalListEntry 5 }

rcIpFilterGlobalListMemberPorts OBJECT-TYPE
        SYNTAX          PortSet
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Ports filter is used on."
        ::= { rcIpFilterGlobalListEntry 6 }


-- IP Filter Base Table

rcIpFilterBaseListTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF RcIpFilterBaseListEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "A table used to store base filter list information.
			Each row in the table contains a set of individual
			filters that make up a particular filter list."
        ::= { rcIpFilter 22 }

rcIpFilterBaseListEntry OBJECT-TYPE
        SYNTAX          RcIpFilterBaseListEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Base filter list attributes."
        INDEX           { rcIpFilterBaseListId } 
        ::= { rcIpFilterBaseListTable 1 }

RcIpFilterBaseListEntry ::= SEQUENCE {
		rcIpFilterBaseListId INTEGER (300..1000),
		rcIpFilterBaseListName DisplayString (SIZE(0..15)),
		rcIpFilterBaseListFilterIdListSize INTEGER (0..128),
		rcIpFilterBaseListFilterIdList IdList (SIZE(256)),
		rcIpFilterBaseListRowStatus RowStatus,
                rcIpFilterBaseListMemberPorts PortSet
                }

rcIpFilterBaseListId OBJECT-TYPE
        SYNTAX		INTEGER (300..1000)
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION     "An unique value to identify a particular base
                        filter list."
        ::= { rcIpFilterBaseListEntry 1 }

rcIpFilterBaseListName OBJECT-TYPE
        SYNTAX		DisplayString (SIZE(0..15))	        	
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Name of this filter list."
        ::= { rcIpFilterBaseListEntry 2 }

rcIpFilterBaseListFilterIdListSize OBJECT-TYPE
        SYNTAX		INTEGER (0..128)
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION     "Used to indicate the number of filters are
                        associated with this filter list."
        ::= { rcIpFilterBaseListEntry 3 }

rcIpFilterBaseListFilterIdList OBJECT-TYPE
        SYNTAX		IdList (SIZE(256))	
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION     "Used to indicate zero or more filters that are
                        associated with this filter list.  Each filter
                        identifier is stored as two bytes in this array
                        starting from offset zero.  Any unused bytes
                        should be set to zero."
        ::= { rcIpFilterBaseListEntry 4 }

rcIpFilterBaseListRowStatus OBJECT-TYPE
        SYNTAX		RowStatus	
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpFilterBaseListEntry 5 }

rcIpFilterBaseListMemberPorts OBJECT-TYPE
        SYNTAX          PortSet
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Ports filter is used on."
        ::= { rcIpFilterBaseListEntry 6 }
 

-- IP Filter Port Table

rcIpFilterPortTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF RcIpFilterPortEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "A table used to store port filtering information."
        ::= { rcIpFilter 23 }

rcIpFilterPortEntry OBJECT-TYPE
        SYNTAX          RcIpFilterPortEntry
        ACCESS          not-accessible
        STATUS          mandatory
        DESCRIPTION     "Port entry attributes."
        INDEX           { rcIpFilterPortIfIndex } 
        ::= { rcIpFilterPortTable 1 }

RcIpFilterPortEntry ::= SEQUENCE {
			rcIpFilterPortIfIndex InterfaceIndex,
			rcIpFilterPortFilterListSize INTEGER (0..128),
			rcIpFilterPortFilterList OCTET STRING (SIZE(256)),
			rcIpFilterPortMode INTEGER,
			rcIpFilterPortEnable TruthValue,
			rcIpFilterPortRowStatus RowStatus,
			rcIpFilterPortDefaultAction INTEGER,
                        rcIpFilterPortNumGlobalFilters INTEGER,
                        rcIpFilterPortNumBaseFilters INTEGER
	                }

rcIpFilterPortIfIndex OBJECT-TYPE
        SYNTAX		InterfaceIndex
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"IfIndex value of a port where filtering is
			applied."
        ::= { rcIpFilterPortEntry 1 }

rcIpFilterPortFilterListSize OBJECT-TYPE
        SYNTAX		INTEGER (0..128)
        ACCESS		read-only
        STATUS		mandatory
        DESCRIPTION	"Used to indicate the number of filter list(s)
			that are assigned to this port."
        ::= { rcIpFilterPortEntry 2 }

rcIpFilterPortFilterList OBJECT-TYPE
        SYNTAX		OCTET STRING (SIZE(256))	
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION     "Used to indicate zero or more filter lists that 
			are associated with this port.  Each filter list
                        identifier is stored as two bytes in this array
                        starting from offset zero.  Any unused bytes
                        should be set to zero."
        ::= { rcIpFilterPortEntry 3 }

rcIpFilterPortMode OBJECT-TYPE
        SYNTAX		INTEGER {
			    permit(1),
			    deny(2),
                            none(3)
			}	
        ACCESS		read-write
        STATUS		obsolete
        DESCRIPTION	"Used to indicate when filters applied to this
			port should be treated as 'permit' or 'deny'
			filters.
 
                        When filters are not enabled on the port the mode
                        is set to none. The port does not block any packet. 
                        Mode None cannot be used when PortEnable is true. 

			On a port configured as 'permit',  any packet
			that satisfies a filter is allowed to be 
			forwarded.

			On a port configured as 'deny', any packet that
			satisfies a filter is dropped."	
	DEFVAL		{ none }
        ::= { rcIpFilterPortEntry 4 }

rcIpFilterPortEnable OBJECT-TYPE
        SYNTAX		TruthValue	
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Used to indicate whether filtering is configured
			on this port."
	DEFVAL		{ false }
        ::= { rcIpFilterPortEntry 5 }

rcIpFilterPortRowStatus OBJECT-TYPE
        SYNTAX		RowStatus
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpFilterPortEntry 6 }

rcIpFilterPortDefaultAction OBJECT-TYPE
        SYNTAX          INTEGER {
                            forward(1),
                            drop(2),
                            none(3)
                        }
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the default action that should
			be performed when an IP filter applies to a
			particular port.   

                        When filters are not enabled on the port the action
                        is set to 'none' which means the port does not block 
			any packet.  'none' cannot be used when PortEnable is 
			true.
 
                        On a port configured as 'forward',  any packet
                        that satisfies a filter is allowed to be
                        forwarded.
 
                        On a port configured as 'drop', any packet that
                        satisfies a filter is dropped."
        DEFVAL          { none }
        ::= { rcIpFilterPortEntry 7 }

rcIpFilterPortNumGlobalFilters OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "# of global filters"
        ::= { rcIpFilterPortEntry 8 }
 
rcIpFilterPortNumBaseFilters OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "# of base filters"
        ::= { rcIpFilterPortEntry 9 }

-- IP Policy Address Table
 
rcIpPolicy OBJECT IDENTIFIER ::= { rcIp 11 }

rcIpPolicyAddrTableSize OBJECT-TYPE
        SYNTAX        INTEGER 
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the 
		      rcIpPolicyAddrTable."
        ::= { rcIpPolicy 1 }

rcIpPolicyAddrTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpPolicyAddrEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store different types list entries.
                      Each row in the table contains a list entry that is
                      used by a set of announce policies."
        ::= { rcIpPolicy 2 }
 
rcIpPolicyAddrEntry OBJECT-TYPE
        SYNTAX        RcIpPolicyAddrEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Route entry attributes."
        INDEX         {rcIpPolicyAddrIpAddr}
        ::= { rcIpPolicyAddrTable 1 }
 
RcIpPolicyAddrEntry ::= SEQUENCE {
                        rcIpPolicyAddrIpAddr IpAddress,
                        rcIpPolicyAddrId   INTEGER,
                        rcIpPolicyAddrAddrListIdListSize INTEGER (0..128),
                        rcIpPolicyAddrAddrListIdList OCTET STRING (SIZE(256)),
                        rcIpPolicyAddrRowStatus RowStatus
                        }


rcIpPolicyAddrIpAddr OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The network address for this type of list entry. This 
                      value is required for all types of lists."
        ::= { rcIpPolicyAddrEntry 1 }
 
rcIpPolicyAddrId OBJECT-TYPE
        SYNTAX	      INTEGER 
        ACCESS	      read-only
        STATUS	      mandatory
        DESCRIPTION   "Identifier of this entry. Used internally to identify
		      this entry."
        ::= { rcIpPolicyAddrEntry 2 }

rcIpPolicyAddrAddrListIdListSize OBJECT-TYPE
        SYNTAX	      INTEGER (0..128)
        ACCESS	      read-only
        STATUS	      mandatory
        DESCRIPTION   "Used to indicate the number of id(s) in the
		      rcIpPolicyAddrListIdList variable."
        ::= { rcIpPolicyAddrEntry 3 }

rcIpPolicyAddrAddrListIdList OBJECT-TYPE
        SYNTAX	      OCTET STRING (SIZE(256))	
        ACCESS	      read-only
        STATUS	      mandatory
        DESCRIPTION   "Used to indicate zero or more rcIpPolicyAddrListEntry(s)
		      that are referring to this entry.  Each list-id identifier 
                      is stored as two bytes in this array starting from 
                      offset zero.  Any unused bytes should be set to zero."
        ::= { rcIpPolicyAddrEntry 4 }

rcIpPolicyAddrRowStatus OBJECT-TYPE
        SYNTAX		RowStatus
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpPolicyAddrEntry 5 }


-- Ip Policy Network Table

rcIpPolicyNetTableSize OBJECT-TYPE
        SYNTAX        INTEGER 
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the 
		      rcIpPolicyNetTable."
        ::= { rcIpPolicy 3 }

rcIpPolicyNetTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpPolicyNetEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store different types list entries.
                      Each row in the table contains a list entry that is
                      used by a set of announce policies."
        ::= { rcIpPolicy 4 }
 
rcIpPolicyNetEntry OBJECT-TYPE
        SYNTAX        RcIpPolicyNetEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Route entry attributes."
        INDEX         {rcIpPolicyNetAddr, rcIpPolicyNetMask }
        ::= { rcIpPolicyNetTable 1 }
 
RcIpPolicyNetEntry ::= SEQUENCE {
                        rcIpPolicyNetAddr IpAddress,
                        rcIpPolicyNetMask IpAddress,
                        rcIpPolicyNetId   INTEGER,
                        rcIpPolicyNetNetListIdListSize INTEGER (0..128),
                        rcIpPolicyNetNetListIdList OCTET STRING (SIZE(256)),
                        rcIpPolicyNetRowStatus RowStatus
                        }

rcIpPolicyNetAddr OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The network address for this type of list entry. This 
                      value is required for all types of lists."
        ::= { rcIpPolicyNetEntry 1 }
 
rcIpPolicyNetMask OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The route mask for this type of list entry. This 
                      value is meaningful only if rcIpPolicyNetEntry 
                      is equal to exactNet(1), rangeNet(2), advertiseNet(3).
                      For other types it should have the value 0.0.0.0."
        ::= { rcIpPolicyNetEntry 2 }

rcIpPolicyNetId OBJECT-TYPE
        SYNTAX	      INTEGER 
        ACCESS	      read-only
        STATUS	      mandatory
        DESCRIPTION   "Used internally to recognize this entry."
        ::= { rcIpPolicyNetEntry 3 }

rcIpPolicyNetNetListIdListSize OBJECT-TYPE
        SYNTAX	      INTEGER (0..128)
        ACCESS	      read-only
        STATUS	      mandatory
        DESCRIPTION   "Used to indicate the number of id(s) in the 
		      rcIpPolicyNetListIdList variable."
        ::= { rcIpPolicyNetEntry 4 }

rcIpPolicyNetNetListIdList OBJECT-TYPE
        SYNTAX	      OCTET STRING (SIZE(256))	
        ACCESS	      read-only
        STATUS	      mandatory
        DESCRIPTION   "Used to indicate zero or more rcIpPolicyNetListEntry(s)  
                      that are referring to this entry.  Each list-id identifier
                      is stored as two bytes in this array starting from 
                      offset zero.  Any unused bytes should be set to zero."
        ::= { rcIpPolicyNetEntry 5 }

rcIpPolicyNetRowStatus OBJECT-TYPE
        SYNTAX		RowStatus
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpPolicyNetEntry 6 }


-- IP Policy Address List Table

rcIpPolicyAddrListTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      rcIpPolicyAddrListTable."
        ::= { rcIpPolicy 5 }
 
rcIpPolicyAddrListTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpPolicyAddrListEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to group rcIpPolicyAddrEntry(s) 
                      into a list."
        ::= { rcIpPolicy 6 }

rcIpPolicyAddrListEntry OBJECT-TYPE
        SYNTAX        RcIpPolicyAddrListEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Route entry attributes."
        INDEX         { rcIpPolicyAddrListId }
        ::= { rcIpPolicyAddrListTable 1 }
 
RcIpPolicyAddrListEntry ::= SEQUENCE {
                  rcIpPolicyAddrListId INTEGER (1..1000),
                  rcIpPolicyAddrListName DisplayString (SIZE(0..15)),
                  rcIpPolicyAddrListIdListSize INTEGER (0..128),
                  rcIpPolicyAddrListIdList OCTET STRING (SIZE(256)),
                  rcIpPolicyAddrListPolicyIdListSize INTEGER (0..128),
                  rcIpPolicyAddrListPolicyIdList OCTET STRING (SIZE(256)),
                  rcIpPolicyAddrListRowStatus RowStatus
                  }

rcIpPolicyAddrListId OBJECT-TYPE
        SYNTAX        INTEGER (1..1000)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A value that uniquely identifies this list of 
                       rcIpPolicyAddrListEntry."
        ::= { rcIpPolicyAddrListEntry 1 }
 
rcIpPolicyAddrListName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..15))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "An administratively-assigned name for this list."
        ::= { rcIpPolicyAddrListEntry 3 }
 
rcIpPolicyAddrListIdListSize OBJECT-TYPE
        SYNTAX        INTEGER (0..128)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of rcIpPolicyAddrNetEntry 
                      id(s) in the rcIpPolicyAddrListIdList variable."
        ::= { rcIpPolicyAddrListEntry 4 }
 
rcIpPolicyAddrListIdList OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(256))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more AddrListId  that
                      are associated to this list.  Each AddrList identifier
                      is stored as two bytes in this array starting from
                      offset zero.  Any unused bytes should be set to zero."
        ::= { rcIpPolicyAddrListEntry 5 }

rcIpPolicyAddrListPolicyIdListSize OBJECT-TYPE
        SYNTAX        INTEGER (0..128)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of policy id(s) in the 
                      Policy Id list. That are referring to this list."
        ::= { rcIpPolicyAddrListEntry 6 }

rcIpPolicyAddrListPolicyIdList OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(256))
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more policies  that
                      are referring to this entry.  Each policy identifier
                      is stored as two bytes in this array starting from
                      offset zero.  Any unused bytes should be set to zero."
        ::= { rcIpPolicyAddrListEntry 7 }


rcIpPolicyAddrListRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Row status of this entry."
        ::= { rcIpPolicyAddrListEntry 8 }
 

-- RIP Announce Policy Table

rcIpPolicyRipAnnounceTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      rcIpPolicyRipAnnounceTable."
        ::= { rcIpPolicy 7 }

rcIpPolicyRipAnnounceTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpPolicyRipAnnounceEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store set of announce policies 
		      configured for RIP routing protocol. The Number
                      of entries is given by rcIpPolicyNumRipPolicies."
        ::= { rcIpPolicy 8 }

rcIpPolicyRipAnnounceEntry OBJECT-TYPE
        SYNTAX        RcIpPolicyRipAnnounceEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing configuration information for a 
                      particular announce policy."
        INDEX         { rcIpPolicyRipAnnounceId }
        ::= { rcIpPolicyRipAnnounceTable 1 }

RcIpPolicyRipAnnounceEntry ::= SEQUENCE {
                rcIpPolicyRipAnnounceId INTEGER (1..1000),
                rcIpPolicyRipAnnounceName DisplayString (SIZE(0..15)),
                rcIpPolicyRipAnnounceEnable TruthValue,
		rcIpPolicyRipAnnounceExactNetListId INTEGER (0..1000),
		rcIpPolicyRipAnnounceRangeNetListId INTEGER (0..1000),
		rcIpPolicyRipAnnounceRipGatewayListId INTEGER (0..1000),
		rcIpPolicyRipAnnounceRipInterfaceListId INTEGER (0..1000),
		rcIpPolicyRipAnnounceOspfRouterListId INTEGER (0..1000),
		rcIpPolicyRipAnnounceAnnounceInterfaceListId INTEGER (0..1000),
                rcIpPolicyRipAnnouncePrecedence INTEGER,
                rcIpPolicyRipAnnounceRouteSource INTEGER,
		rcIpPolicyRipAnnounceAdvertiseNetListId INTEGER (0..1000),
                rcIpPolicyRipAnnounceAction INTEGER,
                rcIpPolicyRipAnnounceOspfRouteType INTEGER,
                rcIpPolicyRipAnnounceRipMetric INTEGER (0..15),
                rcIpPolicyRipAnnounceRowStatus RowStatus 
                }

rcIpPolicyRipAnnounceId OBJECT-TYPE
        SYNTAX        INTEGER (1..1000)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A value that uniquely identifies the policy
                      associated with this entry."
        ::= { rcIpPolicyRipAnnounceEntry 1 }

rcIpPolicyRipAnnounceName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..15))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "An administratively-assigned name for this policy."
        ::= { rcIpPolicyRipAnnounceEntry 2 }

rcIpPolicyRipAnnounceEnable OBJECT-TYPE
        SYNTAX        TruthValue 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "It indicates whether this policy is enabled or not.
                      The policy should be applied only if it is set to 'true'."
	DEFVAL        {true}
        ::= { rcIpPolicyRipAnnounceEntry 3 }

rcIpPolicyRipAnnounceExactNetListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of 'exact' type entries
                      that are configured for this policy.

 		      An entry with type 'exactNet' or 'rangeNet' represents
                      the network list.  This indicates which networks will
                      match a particular announce policy. 
 
                      An entry with a 'exact' type means to only match the
                      specific network advertisement (netaddr & mask).

                      An 'exact' entry with addr=0.0.0.0 and mask=0.0.0.0
                      means 'match the default route'.

                      If set to '0', this policy applies to all the routes."

        ::= { rcIpPolicyRipAnnounceEntry 4 }

rcIpPolicyRipAnnounceRangeNetListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more 'range' network entries  
                      that are associated with this policy.  

                      An entry with a 'range' type means to match any network
		      number that falls in the range indicated by the addr &
                      mask.

                      A 'range' entry with addr=0.0.0.0 and mask=0.0.0.0
                      means 'match any route'.

                      If set to '0', this policy applies to all the routes."

        ::= { rcIpPolicyRipAnnounceEntry 5 }

rcIpPolicyRipAnnounceRipGatewayListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to identify the RIP-gatewayList in the list 
                      that are associated with this policy. 

                      This field has meaning only for RIP sourced routes and 
                      if RIP is included as a RouteSource. 
                      The list contains one or more rip-routers (other side
                      of the interface) addresses that could send RIP updates 
                      to this router.  If a router 
                      address is included in this list, this policy applies to 
                      RIP advertisements from that router.
 
                      If set to '0', this policy applies to RIP updates
                      received from any rip routers/interfaces."
 
        ::= { rcIpPolicyRipAnnounceEntry 6 }

rcIpPolicyRipAnnounceRipInterfaceListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the 
                      ripInterfaceIdList that are configured for this policy.

                      This field has meaning only for RIP sourced routes and
                      if RIP is included as a RouteSource. The list contains 
                      one or more rip-interface addresses on this router.
                      If an interface address is incuded in this list, this
                      policy applies to RIP advertisements received on that
                      interface.

                      A value of '0' indicates thtat this policy applies to
                      RIP updates received on any rip-interface."

        ::= { rcIpPolicyRipAnnounceEntry 7 }

rcIpPolicyRipAnnounceOspfRouterListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000) 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the 
                      OspfRouteIds that are configured for this policy.

                      This field has meaning only for OSPF sourced routes and
                      if OSPF is included as a RouteSource. The list contains
                      one or more router IDs of OSPF routers. If a routerId 
                      is included in this list, this policy applies to
                      OSPF advertisements received from that router.

                      A value of '0' indicates that this policy applies to
                      any OPSF routes received from any router."

        ::= { rcIpPolicyRipAnnounceEntry 8 }

rcIpPolicyRipAnnounceAnnounceInterfaceListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the 
                      AnnounceInterfaceids that are configured for this policy.

                      The list contains one or more outbound interface 
                      addresses. If the outbound interface address in this
                      list, the policy applies to RIP updates/advertisements
                      sent through this  interface. 

                      A value of '0' indicates that this policy applies to
                      any outbound RIP interface on this router."

        ::= { rcIpPolicyRipAnnounceEntry 9 }

rcIpPolicyRipAnnouncePrecedence OBJECT-TYPE
        SYNTAX        INTEGER (0..65535) 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Is used while comparing this policy rule with other 
                      policy that a given route may match.  A rule with a 
                      higher precedence value will be chosen over one with 
                      a smaller value. In the case of a tie, the PolicyId is 
                      used (larger wins)."
        ::= { rcIpPolicyRipAnnounceEntry 10 }

rcIpPolicyRipAnnounceRouteSource OBJECT-TYPE
        SYNTAX        INTEGER {
			 direct(1),
			 static(2),
			 rip(4),
			 ospf(8),
			 any(15) 
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Is represented as bitset to indicate route sources. 
                      It can contain one or more route sources. If the route 
                      source is in this bit map, then a route from that source 
                      that meets the other criteria of this policy will match 
                      the policy."
        DEFVAL        { any }
        ::= { rcIpPolicyRipAnnounceEntry 11 }

rcIpPolicyRipAnnounceAdvertiseNetListId OBJECT-TYPE 
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      AdvertiseNetList that are configured for this policy.

                      This has meaning only if the Action is set to 'announce'.
                      It is useful to send or advertise networks that differ 
                      from actual network in the routing table. Also allows 
                      advertisement of an aggregate or default along with the 
                      actual network.  Aggregation is useful if a number of
                      routes in the table falls in a certain range. Can save
                      space by sending aggregate route instead of the individual
                      routes. 
    
                      Actual network/route is included in the update
                      only if there is a match or there there is an entry
                      (address & mask pair) 255.255.255.255/255.255.255.255   
                      in the list."

        ::= { rcIpPolicyRipAnnounceEntry 12 }

rcIpPolicyRipAnnounceAction OBJECT-TYPE
        SYNTAX        INTEGER {
			 announce(1),
			 ignore(2)
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "It indicates whether the route should be announced 
                      or not."
        DEFVAL  { ignore }
        ::= { rcIpPolicyRipAnnounceEntry 13 }

rcIpPolicyRipAnnounceOspfRouteType OBJECT-TYPE
        SYNTAX        INTEGER {
			 type1(1),
                         type2(2),
                         external(3),
                         internal(4),
                         any(5)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Ospf Route type. It applies to OSPF sourced routes only.
		      'type1' means to apply this policy to only type1 OSPF 
                      external routes. 'type2' means to apply this policy to 
                      only type2 OSPF external routes. 'internal' means 'match 
                      ospf specfic routes'. 'any' means apply this policy to 
                      all OSPF external routes."		
         DEFVAL  { any }
        ::= { rcIpPolicyRipAnnounceEntry 14 }

rcIpPolicyRipAnnounceRipMetric OBJECT-TYPE
        SYNTAX        INTEGER (0..15)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "RIP metric. The value is meaningful only if the action 
                      is set to 'announce'. This is optional export metric 
                      to use when advertising a route that matches this policy.
                      If set to zero, the routing table metric calculated for 
                      RIP is is used."
        DEFVAL        {0}
        ::= { rcIpPolicyRipAnnounceEntry 15 }

rcIpPolicyRipAnnounceRowStatus OBJECT-TYPE
        SYNTAX		RowStatus
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpPolicyRipAnnounceEntry 16 }

-- OSPF Announce policy table.

rcIpPolicyOspfAnnounceTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      rcIpPolicyOspfAnnounceTable."
        ::= { rcIpPolicy 9 }


rcIpPolicyOspfAnnounceTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpPolicyOspfAnnounceEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store set of announce policies 
		      configured for OSPF routing protocol. The Number
                      of entries is given by rcIpPolicyNumOspfPolicies."
        ::= { rcIpPolicy 10 }

rcIpPolicyOspfAnnounceEntry OBJECT-TYPE
        SYNTAX        RcIpPolicyOspfAnnounceEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing configuration information for a 
                      particular announce policy."
        INDEX         { rcIpPolicyOspfAnnounceId }
        ::= { rcIpPolicyOspfAnnounceTable 1 }

RcIpPolicyOspfAnnounceEntry ::= SEQUENCE {
                rcIpPolicyOspfAnnounceId INTEGER (2001..3000),
                rcIpPolicyOspfAnnounceName DisplayString (SIZE (0..15)),
                rcIpPolicyOspfAnnounceEnable TruthValue,
		rcIpPolicyOspfAnnounceExactNetListId INTEGER (0..1000),
		rcIpPolicyOspfAnnounceRangeNetListId INTEGER (0..1000),
		rcIpPolicyOspfAnnounceRipGatewayListId INTEGER (0..1000),
		rcIpPolicyOspfAnnounceRipInterfaceListId INTEGER (0..1000),
                rcIpPolicyOspfAnnouncePrecedence INTEGER,
                rcIpPolicyOspfAnnounceRouteSource INTEGER,
		rcIpPolicyOspfAnnounceAdvertiseNetListId INTEGER (0..1000),
                rcIpPolicyOspfAnnounceAction INTEGER,
                rcIpPolicyOspfAnnounceExtMetricType INTEGER,
                rcIpPolicyOspfAnnounceExtMetric INTEGER (0..65535),
                rcIpPolicyOspfAnnounceRowStatus RowStatus 
                }

rcIpPolicyOspfAnnounceId OBJECT-TYPE
        SYNTAX        INTEGER (2001..3000)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A value that uniquely identifies the policy
                      associated with this entry."
        ::= { rcIpPolicyOspfAnnounceEntry 1 }

rcIpPolicyOspfAnnounceName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..15))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "An administratively-assigned name for this policy."
        ::= { rcIpPolicyOspfAnnounceEntry 2 }

rcIpPolicyOspfAnnounceEnable OBJECT-TYPE
        SYNTAX        TruthValue 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "It indicates whether this policy is enabled or not.
                      The policy should be applied only if it is set to 
		      'true'."
	DEFVAL        {true}
        ::= { rcIpPolicyOspfAnnounceEntry 3 }

rcIpPolicyOspfAnnounceExactNetListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of 'exact' type entries
                      that are configured for this policy.
 
                      An entry with type 'exactNet' or 'rangeNet' represents
                      the network list.  This indicates which networks will
                      match a particular announce policy.
 
                      An entry with a 'exact' type means to only match the
                      specific network advertisement (netaddr & mask).
 
                      An 'exact' entry with addr=0.0.0.0 and mask=0.0.0.0
                      means 'match the default route'.
 
                      If set to '0', this policy applies to all the routes."
 
        ::= { rcIpPolicyOspfAnnounceEntry 4 }

rcIpPolicyOspfAnnounceRangeNetListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more 'range' network entries
                      that are associated with this policy.
 
                      An entry with a 'range' type means to match any network
                      number that falls in the range indicated by the addr &
                      mask.
 
                      A 'range' entry with addr=0.0.0.0 and mask=0.0.0.0
                      means 'match any route'.
 
                      If set to '0', this policy applies to all the routes."

        ::= { rcIpPolicyOspfAnnounceEntry 5 }

rcIpPolicyOspfAnnounceRipGatewayListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to identify the RIP-gatewayList in the list
                      that are associated with this policy.
 
                      This field has meaning only for RIP sourced routes and
                      if RIP is included as a RouteSource.
                      The list contains one or more rip-routers (other side
                      of the interface) addresses that could send RIP updates
                      to this router.  If a router
                      address is included in this list, this policy applies to
                      RIP advertisements from that router.
 
                      If set to '0', this policy applies to RIP updates
                      received from any rip routers/interfaces."

        ::= { rcIpPolicyOspfAnnounceEntry 6 }

rcIpPolicyOspfAnnounceRipInterfaceListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      ripInterfaceIdList that are configured for this policy.
 
                      This field has meaning only for RIP sourced routes and
                      if RIP is included as a RouteSource. The list contains
                      one or more rip-interface addresses on this router.
                      If an interface address is incuded in this list, this
                      policy applies to RIP advertisements received on that
                      interface.
 
                      A value of '0' indicates thtat this policy applies to
                      RIP updates received on any rip-interface."

        ::= { rcIpPolicyOspfAnnounceEntry 7 }


rcIpPolicyOspfAnnouncePrecedence OBJECT-TYPE
        SYNTAX        INTEGER (0..65535) 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Is used while comparing this policy rule with other 
                      policy that a given route may match.  A rule with a 
                      higher precedence value will be chosen over one with 
                      a smaller value. In the case of a tie, the PolicyId is 
                      used (larger wins)."
        ::= { rcIpPolicyOspfAnnounceEntry 8 }

rcIpPolicyOspfAnnounceRouteSource OBJECT-TYPE
        SYNTAX        INTEGER {
			 direct(1),
			 static(2),
			 rip(4),
			 any(7) 
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Is represented as bit map to indicate route sources. 
                      It can contain one or more route sources. If the route 
                      source is in this bit map, then a route from that source 
                      that meets the other criteria of this policy will match 
                      the policy."
        DEFVAL        { any }
        ::= { rcIpPolicyOspfAnnounceEntry 9 }

rcIpPolicyOspfAnnounceAdvertiseNetListId OBJECT-TYPE 
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      AdvertiseNetList that are configured for this policy.
 
                      This has meaning only if the Action is set to 'announce'.
                      It is useful to send or advertise networks that differ
                      from actual network in the routing table. Also allows
                      advertisement of an aggregate or default along with the
                      actual network.  Aggregation is useful if a number of
                      routes in the table falls in a certain range. Can save
                      space by sending aggregate route instead of the individual
                      routes.
 
                      Actual network/route is included in the update
                      only if there is a match or there there is an entry
                      (address & mask pair) 255.255.255.255/255.255.255.255
                      in the list."

        ::= { rcIpPolicyOspfAnnounceEntry 10 }

rcIpPolicyOspfAnnounceAction OBJECT-TYPE
        SYNTAX        INTEGER {
			 announce(1),
			 ignore(2)
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "It indicates whether the route should be announced 
                      or not."
         DEFVAL  { ignore }
        ::= { rcIpPolicyOspfAnnounceEntry 11 }

rcIpPolicyOspfAnnounceExtMetricType OBJECT-TYPE
        SYNTAX        INTEGER {
			 type1(1),
                         type2(2)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Ospf External metric type. It is used to indicate
		      what type of the external metric it is. 'type1' means to 
                      the cost is 'internal ospf cost + ExtMetric'. 
                      'type2' means the ospf-metric is equal to 'type2'."
         DEFVAL  { type2 }
        ::= { rcIpPolicyOspfAnnounceEntry 12 }

rcIpPolicyOspfAnnounceExtMetric OBJECT-TYPE
        SYNTAX        INTEGER (0..65535)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "OSPF External metric. The value is meaningful only if 
                      the action is set to 'announce'. This is optional export 
                      metric to use when advertising a route that matches this 
                      policy. Value '0' is used to indicate that route's actual
                      cost is used to announce."
        DEFVAL        { 0 }
        ::= { rcIpPolicyOspfAnnounceEntry 13 }

rcIpPolicyOspfAnnounceRowStatus OBJECT-TYPE
        SYNTAX		RowStatus
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpPolicyOspfAnnounceEntry 14 }
 
-- IP Accept Policy Groups

-- RIP Accept policy table.

rcIpPolicyRipAcceptTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      rcIpPolicyRipAcceptTable."
        ::= { rcIpPolicy 11 }

rcIpPolicyRipAcceptTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpPolicyRipAcceptEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store set of accept policies 
		      configured for RIP routing protocol. The Number
                      of entries is given by rcIpPolicyNumRipPolicies."
        ::= { rcIpPolicy 12 }

rcIpPolicyRipAcceptEntry OBJECT-TYPE
        SYNTAX        RcIpPolicyRipAcceptEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing configuration information for a 
                      particular accept policy."
        INDEX         { rcIpPolicyRipAcceptId }
        ::= { rcIpPolicyRipAcceptTable 1 }

RcIpPolicyRipAcceptEntry ::= SEQUENCE {
                rcIpPolicyRipAcceptId INTEGER (4001..5000),
                rcIpPolicyRipAcceptName DisplayString (SIZE(0..15)),
                rcIpPolicyRipAcceptEnable TruthValue,
		rcIpPolicyRipAcceptExactNetListId INTEGER (0..1000),
		rcIpPolicyRipAcceptRangeNetListId INTEGER (0..1000),
		rcIpPolicyRipAcceptRipGatewayListId INTEGER (0..1000),
		rcIpPolicyRipAcceptRipInterfaceListId INTEGER (0..1000),
                rcIpPolicyRipAcceptPrecedence INTEGER,
                rcIpPolicyRipAcceptAction INTEGER,
		rcIpPolicyRipAcceptInjectNetListId INTEGER (0..1000),
                rcIpPolicyRipAcceptApplyMask IpAddress,
                rcIpPolicyRipAcceptRowStatus RowStatus 
                }

rcIpPolicyRipAcceptId OBJECT-TYPE
        SYNTAX        INTEGER (4001..5000)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A value that uniquely identifies the policy
                      associated with this entry."
        ::= { rcIpPolicyRipAcceptEntry 1 }

rcIpPolicyRipAcceptName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..15))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "An administratively-assigned name for this policy."
        ::= { rcIpPolicyRipAcceptEntry 2 }

rcIpPolicyRipAcceptEnable OBJECT-TYPE
        SYNTAX        TruthValue 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "It indicates whether this policy is enabled or not.
                      The policy should be applied only if it is set to 'true'."
	DEFVAL        {true}
        ::= { rcIpPolicyRipAcceptEntry 3 }

rcIpPolicyRipAcceptExactNetListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of 'exact' type entries
                      that are configured for this policy.

 		      An entry with type 'exactNet' or 'rangeNet' represents
                      the network list.  This indicates which networks will
                      match a particular accept policy. 
 
                      An entry with a 'exact' type means to only match the
                      specific network advertisement (netaddr & mask).

                      An 'exact' entry with addr=0.0.0.0 and mask=0.0.0.0
                      means 'match the default route'."
        ::= { rcIpPolicyRipAcceptEntry 4 }

rcIpPolicyRipAcceptRangeNetListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more 'range' network entries  
                      that are associated with this policy.  

                      An entry with a 'range' type means to match any network
		      number that falls in the range indicated by the addr &
                      mask.

                      A 'range' entry with addr=0.0.0.0 and mask=0.0.0.0
                      means 'match any route'.

                      A null list means 'match any route'."
        ::= { rcIpPolicyRipAcceptEntry 5 }

rcIpPolicyRipAcceptRipGatewayListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to identify the RIP-gatewayList in the 
                      PolicyListTable that iares associated with this 
                      policy. The list contains the addresses of one or more 
                      routers that could send RIP updates to this router.
                      If a router address is included in this list, this
                      policy applies to RIP advertisements from that router.
 
                      If set to '0', this policy applies to RIP updates
                      from any router."

        ::= { rcIpPolicyRipAcceptEntry 6 }

rcIpPolicyRipAcceptRipInterfaceListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate ListId defined for RipInterfaceList
                      in the rcIpPolicyListTable that is assiciated 
                      with this policy. 
                      The list contains the addresses of one or more interfaces
                      on this router.  If an interface address is included in 
                      the list, this policy applies to RIP advertisements 
                      received on that interface.
 
                      If set to '0', this policy applies to RIP updates
                      received on any interface."

        ::= { rcIpPolicyRipAcceptEntry 7 }

rcIpPolicyRipAcceptPrecedence OBJECT-TYPE
        SYNTAX        INTEGER (0..65535) 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Is used while comparing this policy rule with other 
                      policy that a given route may match.  A rule with a 
                      higher precedence value will be chosen over one with 
                      a smaller value. In the case of a tie, the PolicyId is 
                      used (larger wins)."
        ::= { rcIpPolicyRipAcceptEntry 8 }

rcIpPolicyRipAcceptAction OBJECT-TYPE
        SYNTAX        INTEGER {
			 accept(1),
			 ignore(2)
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "It indicates whether the route should be acceptd 
                      or not."
         DEFVAL  { accept }
        ::= { rcIpPolicyRipAcceptEntry 9 }

rcIpPolicyRipAcceptInjectNetListId OBJECT-TYPE 
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the ListId of the InjectNetList
                      in the rcIpPolicyListTable entry that is assiciated
                      with for this policy. If teh action is 'accept' and if it
                      is desired to insert networks into the routing table that
                      differ from the actual advertised network. For instance,
                      if a number of networks in a certain range are learned
                      and an aggregate advertisement could be inserted instead
                      of the individual networks. 

                      Upon receiving a route that matches this policy, all
                      networks in this list will be considered for inclusion 
                      in the routing table. If the list is empty or if the
                      value of the ListId is '0' then the actual received
                      network is considered.

                      An encoding of 255.255.255.255/255.255.255.255 means
                      'match the actual received network.'. This allows
                      insertion of an aggregate or default along with the 
                      actual netowrk."
        ::= { rcIpPolicyRipAcceptEntry 10 }

rcIpPolicyRipAcceptApplyMask OBJECT-TYPE
        SYNTAX		IpAddress
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"If the 'action' is set to 'accept' and the actual
                        received network will be considered, this is an
                        optional IP address mask that will be applied to the 
                        network number from the RIP update.  This is used to 
                        override the interface's subnet mask in the presence 
                        of networks with variable length subnet masks."
        ::= { rcIpPolicyRipAcceptEntry 11 }

rcIpPolicyRipAcceptRowStatus OBJECT-TYPE
        SYNTAX		RowStatus
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpPolicyRipAcceptEntry 12 }

-- OSPF Accept policy table.
 
rcIpPolicyOspfAcceptTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      rcIpPolicyOspfAcceptTable."
        ::= { rcIpPolicy 13 }

rcIpPolicyOspfAcceptTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpPolicyOspfAcceptEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store set of accept policies 
		      configured for RIP routing protocol. The Number
                      of entries is given by rcIpPolicyNumRipPolicies."
        ::= { rcIpPolicy 14 }

rcIpPolicyOspfAcceptEntry OBJECT-TYPE
        SYNTAX        RcIpPolicyOspfAcceptEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing configuration information for a 
                      particular accept policy."
        INDEX         { rcIpPolicyOspfAcceptId }
        ::= { rcIpPolicyOspfAcceptTable 1 }

RcIpPolicyOspfAcceptEntry ::= SEQUENCE {
                rcIpPolicyOspfAcceptId INTEGER (6001..7000),
                rcIpPolicyOspfAcceptName DisplayString (SIZE(0..15)),
                rcIpPolicyOspfAcceptEnable TruthValue,
		rcIpPolicyOspfAcceptExactNetListId INTEGER (0..1000),
		rcIpPolicyOspfAcceptRangeNetListId INTEGER (0..1000),
                rcIpPolicyOspfAcceptPrecedence INTEGER,
                rcIpPolicyOspfAcceptAction INTEGER,
		rcIpPolicyOspfAcceptInjectNetListId INTEGER (0..1000),
                rcIpPolicyOspfAcceptExtType INTEGER,
                rcIpPolicyOspfAcceptRowStatus RowStatus 
                }

rcIpPolicyOspfAcceptId OBJECT-TYPE
        SYNTAX        INTEGER (6001..7000)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A value that uniquely identifies the policy
                      associated with this entry."
        ::= { rcIpPolicyOspfAcceptEntry 1 }

rcIpPolicyOspfAcceptName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..15))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "An administratively-assigned name for this policy."
        ::= { rcIpPolicyOspfAcceptEntry 2 }

rcIpPolicyOspfAcceptEnable OBJECT-TYPE
        SYNTAX        TruthValue 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "It indicates whether this policy is enabled or not.
                      The policy should be applied only if it is set to 'true'."
	DEFVAL        {true}
        ::= { rcIpPolicyOspfAcceptEntry 3 }

rcIpPolicyOspfAcceptExactNetListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of 'exact' type entries
                      that are configured for this policy.

 		      An entry with type 'exactNet' or 'rangeNet' represents
                      the network list.  This indicates which networks will
                      match a particular accept policy. 
 
                      An entry with a 'exact' type means to only match the
                      specific network advertisement (netaddr & mask).

                      An 'exact' entry with addr=0.0.0.0 and mask=0.0.0.0
                      means 'match the default route'."
        ::= { rcIpPolicyOspfAcceptEntry 4 }

rcIpPolicyOspfAcceptRangeNetListId OBJECT-TYPE
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more 'range' network entries  
                      that are associated with this policy.  

                      An entry with a 'range' type means to match any network
		      number that falls in the range indicated by the addr &
                      mask.

                      A 'range' entry with addr=0.0.0.0 and mask=0.0.0.0
                      means 'match any route'.

                      A null list means 'match any route'."
        ::= { rcIpPolicyOspfAcceptEntry 5 }

rcIpPolicyOspfAcceptPrecedence OBJECT-TYPE
        SYNTAX        INTEGER (0..65535) 
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Is used while comparing this policy rule with other 
                      policy that a given route may match.  A rule with a 
                      higher precedence value will be chosen over one with 
                      a smaller value. In the case of a tie, the PolicyId is 
                      used (larger wins)."
        ::= { rcIpPolicyOspfAcceptEntry 6 }

rcIpPolicyOspfAcceptAction OBJECT-TYPE
        SYNTAX        INTEGER {
			 accept(1),
			 ignore(2)
		      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "It indicates whether the route should be acceptd 
                      or not."
         DEFVAL  { accept }
        ::= { rcIpPolicyOspfAcceptEntry 7 }

rcIpPolicyOspfAcceptInjectNetListId OBJECT-TYPE 
        SYNTAX        INTEGER (0..1000)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the ListId of the InjectNetList
                      in the rcIpPolicyListTable entry that is assiciated
                      with for this policy. If teh action is 'accept' and if it
                      is desired to insert networks into the routing table that
                      differ from the actual advertised network. For instance,
                      if a number of networks in a certain range are learned
                      and an aggregate advertisement could be inserted instead
                      of the individual networks. 

                      Upon receiving a route that matches this policy, all
                      networks in this list will be considered for inclusion 
                      in the routing table. If the list is empty or if the
                      value of the ListId is '0' then the actual received
                      network is considered.

                      An encoding of 255.255.255.255/255.255.255.255 means
                      'match the actual received network.'. This allows
                      insertion of an aggregate or default along with the 
                      actual netowrk."
        ::= { rcIpPolicyOspfAcceptEntry 8 }

rcIpPolicyOspfAcceptExtType OBJECT-TYPE
        SYNTAX		INTEGER {
                           type1(1),
                           type2(2),
                           any(3)
                        }

        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION     "Used to indicate the ospf external type. This 
                        parameter describes which types of OSPF ASE routes
                        match this policy. 
                        'any' means 'match either ASE type 1 or 2'.	
                        'type1' means 'match any external type 1'.
                        'type2' means 'match any external type 2"
        ::= { rcIpPolicyOspfAcceptEntry 9 }

rcIpPolicyOspfAcceptRowStatus OBJECT-TYPE
        SYNTAX		RowStatus
        ACCESS		read-write
        STATUS		mandatory
        DESCRIPTION	"Row status of this entry."
        ::= { rcIpPolicyOspfAcceptEntry 10 }


-- IP Policy Network List Table

rcIpPolicyNetListTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      rcIpPolicyNetListTable."
        ::= { rcIpPolicy 15 }
 
rcIpPolicyNetListTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpPolicyNetListEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to group rcIpPolicyAddrEntry(s) 
                      into a list."
        ::= { rcIpPolicy 16 }

rcIpPolicyNetListEntry OBJECT-TYPE
        SYNTAX        RcIpPolicyNetListEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Route entry attributes."
        INDEX         { rcIpPolicyNetListId }
        ::= { rcIpPolicyNetListTable 1 }
 
RcIpPolicyNetListEntry ::= SEQUENCE {
                  rcIpPolicyNetListId INTEGER (1..1000),
                  rcIpPolicyNetListName DisplayString (SIZE(0..15)),
                  rcIpPolicyNetListIdListSize INTEGER (0..128),
                  rcIpPolicyNetListIdList OCTET STRING (SIZE(256)),
                  rcIpPolicyNetListPolicyIdListSize INTEGER (0..128),
                  rcIpPolicyNetListPolicyIdList OCTET STRING (SIZE(256)),
                  rcIpPolicyNetListRowStatus RowStatus
                  }

rcIpPolicyNetListId OBJECT-TYPE
        SYNTAX        INTEGER (1..1000)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A value that uniquely identifies this list of 
                       rcIpPolicyNetListEntry."
        ::= { rcIpPolicyNetListEntry 1 }
 
rcIpPolicyNetListName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..15))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "An administratively-assigned name for this list."
        ::= { rcIpPolicyNetListEntry 3 }
 
rcIpPolicyNetListIdListSize OBJECT-TYPE
        SYNTAX        INTEGER (0..128)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of rcIpPolicyNetEntry 
                      id(s) in the rcIpPolicyNetListIdList variable."
        ::= { rcIpPolicyNetListEntry 4 }
 
rcIpPolicyNetListIdList OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(256))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more NetListId  that
                      are associated to this list.  Each NetList identifier
                      is stored as two bytes in this array starting from
                      offset zero.  Any unused bytes should be set to zero."
        ::= { rcIpPolicyNetListEntry 5 }

rcIpPolicyNetListPolicyIdListSize OBJECT-TYPE
        SYNTAX        INTEGER (0..128)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of policy id(s) in the 
                      Policy Id list. That are referring to this list."
        ::= { rcIpPolicyNetListEntry 6 }

rcIpPolicyNetListPolicyIdList OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(256))
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more policies  that
                      are referring to this entry.  Each policy identifier
                      is stored as two bytes in this array starting from
                      offset zero.  Any unused bytes should be set to zero."
        ::= { rcIpPolicyNetListEntry 7 }

rcIpPolicyNetListRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Row status of this entry."
        ::= { rcIpPolicyNetListEntry 8 }

 
-- DVMRP Group Extension
 
rcIpDvmrp OBJECT IDENTIFIER ::= { rcIp 12 }
 
rcIpDvmrpGlobal   OBJECT IDENTIFIER       ::= { rcIpDvmrp 1 }

rcIpDvmrpGlobalEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "The enabled status of IP Multicast Dvmrp routing
                      on this router."
        ::= { rcIpDvmrpGlobal 1 }

rcIpDvmrpGlobalUpdateInterval OBJECT-TYPE
        SYNTAX         INTEGER (10..2000)
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION    "Route upd interval"
            DEFVAL         { 60 }
        ::= { rcIpDvmrpGlobal 2 }
 
rcIpDvmrpGlobalTriggeredUpdateInterval OBJECT-TYPE
        SYNTAX         INTEGER (5..1000)
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION    "Trigger upd interval"
            DEFVAL         { 5 }
        ::= { rcIpDvmrpGlobal 3 }
 
rcIpDvmrpGlobalLeafTimeOut OBJECT-TYPE
        SYNTAX         INTEGER (25..4000)
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION    "Hold down timer for leaf"
            DEFVAL         { 200 }
        ::= { rcIpDvmrpGlobal 4 }
 
rcIpDvmrpGlobalNbrTimeOut OBJECT-TYPE
        SYNTAX         INTEGER (35..8000)
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION    "Time to age out nbr"
            DEFVAL         { 140 }
        ::= { rcIpDvmrpGlobal 5 }
 
rcIpDvmrpGlobalNbrProbeInterval OBJECT-TYPE
        SYNTAX         INTEGER (5..30)
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION    "How often to send probe"
            DEFVAL         { 10 }
        ::= { rcIpDvmrpGlobal 6 }
 
-- rcIpDvmrpTable
 
rcIpDvmrpTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpDvmrpTableEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Dvmrp Interface extension table.  This table
                      augments the standard dvmrpInterfaceTable defined
                      in <draft-thaler-dvmrp-mib-09.txt>."
        ::= { rcIpDvmrp 2 }
 
rcIpDvmrpTableEntry OBJECT-TYPE
        SYNTAX        RcIpDvmrpTableEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing Proprietary DVMRP interface
                      information.  An entry is automatically created
                      in this table when an ip address is configured on
                      an interface."
        INDEX         { rcIpDvmrpTableIfIndex }
        ::= { rcIpDvmrpTable 1 }
 
RcIpDvmrpTableEntry ::=
        SEQUENCE {
                rcIpDvmrpTableIfIndex InterfaceIndex,
                rcIpDvmrpTableEnable TruthValue,
                rcIpDvmrpTableMetric INTEGER
        }
 
rcIpDvmrpTableIfIndex 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."
        ::= { rcIpDvmrpTableEntry 1 }
 
rcIpDvmrpTableEnable OBJECT-TYPE
        SYNTAX         TruthValue
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION
                "The administrative status of DVMRP in the router.  The
                value 'enabled' denotes that the DVMRP is enableed on
                the interface; 'disabled' disables it on the interface."
        ::= { rcIpDvmrpTableEntry 2 }

rcIpDvmrpTableMetric OBJECT-TYPE
        SYNTAX         INTEGER (1..31)
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION    "Dvmrp cost"
        ::= { rcIpDvmrpTableEntry 3 }

-- Ip UDP Protocol Table
 
rcIpUdp OBJECT IDENTIFIER ::= { rcIp 13 }

rcIpUdpProtocolTableSize OBJECT-TYPE
        SYNTAX        INTEGER 
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the 
		      rcIpUdpProtocolTable."
        ::= { rcIpUdp 1 }

rcIpUdpProtocolTable OBJECT-TYPE 
        SYNTAX          SEQUENCE OF RcIpUdpProtocolEntry
        ACCESS          not-accessible 
        STATUS          mandatory 
        DESCRIPTION     "list of UDP protocols. Used to determine whether to
                         forward the UDP broadcast packet or not."
    ::= { rcIpUdp 2 }

rcIpUdpProtocolEntry OBJECT-TYPE
        SYNTAX        	RcIpUdpProtocolEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"Used to include a particular UDP port in the table.  
		      	An entry in this table indicates that the box might do 
		      	forwarding of UDP broadcast packets if there is a 
                        matching entry for this packet in the 
                        rcIpUdpPortFwdTable."
        INDEX         	{ rcIpUdpProtocolPortNumber }
        ::= { rcIpUdpProtocolTable 1 }
 
RcIpUdpProtocolEntry ::=
        SEQUENCE {
                rcIpUdpProtocolPortNumber      INTEGER,
                rcIpUdpProtocolName    	       DisplayString,
                rcIpUdpProtocolRowStatus       RowStatus
        }
 
rcIpUdpProtocolPortNumber OBJECT-TYPE
        SYNTAX        	INTEGER (1..65535)
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"well-known UDP Port number. Pre-assigned port
                         number for this protocol. Port used by the
                         server process as its contact port. It cannot 
                         be BOOTP/DHCP port#s 67, 68."
        ::= { rcIpUdpProtocolEntry 1 }
 
rcIpUdpProtocolName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE(1..15))
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the name of the protocol 
		      	that is running on top of UDP protocol. 
                        cannot change the name once created. This 
                        should be set while creating the entry."  
        ::= { rcIpUdpProtocolEntry 2 }
 
rcIpUdpProtocolRowStatus OBJECT-TYPE
        SYNTAX        	RowStatus
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Rowstatus of this entry."
        ::= { rcIpUdpProtocolEntry 3 }


-- Ip Udp Port Forward Table

rcIpUdpPortFwdTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      rcIpUdpPortFwdTable."
        ::= { rcIpUdp 3 }
 
rcIpUdpPortFwdTable OBJECT-TYPE 
        SYNTAX	      	SEQUENCE OF RcIpUdpPortFwdEntry
        ACCESS        	not-accessible 
        STATUS        	mandatory 
        DESCRIPTION   	"Udp forward entry table."
    ::= { rcIpUdp 4 }

rcIpUdpPortFwdEntry OBJECT-TYPE
        SYNTAX        	RcIpUdpPortFwdEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"An entry is configured to specify forwarding policy
                         parameters."
        INDEX         	{ rcIpUdpPortFwdDestPort,
                          rcIpUdpPortFwdDestAddr}
        ::= { rcIpUdpPortFwdTable 1 }
 
RcIpUdpPortFwdEntry ::=
        SEQUENCE {
                rcIpUdpPortFwdDestPort      INTEGER,
                rcIpUdpPortFwdDestAddr      IpAddress,
                rcIpUdpPortFwdId            INTEGER,
                rcIpUdpPortFwdFwdListIdListSize INTEGER (0..32),
                rcIpUdpPortFwdFwdListIdList IdList(SIZE(16)),
                rcIpUdpPortFwdNumFwdPackets Counter,
                rcIpUdpPortFwdNumDropPacketsTtlExpired Counter,
                rcIpUdpPortFwdNumDropPacketsDestUnreach Counter,
                rcIpUdpPortFwdRowStatus     RowStatus
        }
 
rcIpUdpPortFwdDestPort OBJECT-TYPE
        SYNTAX        	INTEGER(1..65535)
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The well-known port number defined for UDP/TCP 
                        depending on the value of IpProtoType field in this
                        entry. This port number has to be defined in the
                        rcIpUdpProtoTable. In order to select this policy the 
                        destination port number has to match the DestPort 
                        value."
        ::= { rcIpUdpPortFwdEntry 1 }
 
rcIpUdpPortFwdDestAddr OBJECT-TYPE
        SYNTAX        	IpAddress
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Destination IP address. The IP addres to which the 
                        UDP/TCP broadcast should be forwarded. This IP address 
                        can be any IP server address or subnet broadcast 
                        address.  If the IP address is one of the routable 
                        interface's address on the router, the frame will be 
                        rebroadcast out as a limited broadcast. If the Ip 
                        address is that of a server then the received 
                        broadcast packet will be sent as a unicast packet to 
                        this address."
        ::= { rcIpUdpPortFwdEntry 2 }

rcIpUdpPortFwdId OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Identifier of this entry. Used internally to identify
                      this entry."
        ::= { rcIpUdpPortFwdEntry 3 }

rcIpUdpPortFwdFwdListIdListSize OBJECT-TYPE
        SYNTAX        INTEGER (0..32)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of id(s) in the
                      rcIpUdpPortFwdListId variable."
        ::= { rcIpUdpPortFwdEntry 4 }

rcIpUdpPortFwdFwdListIdList OBJECT-TYPE
        SYNTAX        IdList(SIZE(16))
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more rcIpUdpPortFwdListEntry(s)
                      that are referring to this entry.  Each list-id identifier
                      is stored as two bytes in this array starting from
                      offset zero.  Any unused bytes should be set to zero."
        ::= { rcIpUdpPortFwdEntry 5 }
 
rcIpUdpPortFwdNumFwdPackets OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of UDP/TCP broadcast packets forwarded
                        using this policy."
        ::= { rcIpUdpPortFwdEntry 6 }

rcIpUdpPortFwdNumDropPacketsTtlExpired OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of UDP/TCP broadcast packets dropped
                        because the TTL has expired."
        ::= { rcIpUdpPortFwdEntry 7 }

rcIpUdpPortFwdNumDropPacketsDestUnreach OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of UDP/TCP broadcast packets dropped
                        because the rcIpUdpPortFwdDestAddr specified in
                        this policy was unreachable."
        ::= { rcIpUdpPortFwdEntry 8 }

rcIpUdpPortFwdRowStatus OBJECT-TYPE
        SYNTAX        	RowStatus
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Row status of this entry."
        ::= { rcIpUdpPortFwdEntry 9 }

-- Udp Port Fwd List Table 

rcIpUdpPortFwdListTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      rcIpUdpPortFwdListTable."
        ::= { rcIpUdp 5 }

rcIpUdpPortFwdListTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpUdpPortFwdListEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to group rcIpUdpPortFwdEntry(s) 
                      into a list."
        ::= { rcIpUdp 6 }

rcIpUdpPortFwdListEntry OBJECT-TYPE
        SYNTAX        RcIpUdpPortFwdListEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Route entry attributes."
        INDEX         { rcIpUdpPortFwdListId }
        ::= { rcIpUdpPortFwdListTable 1 }
 
RcIpUdpPortFwdListEntry ::= SEQUENCE {
                  rcIpUdpPortFwdListId INTEGER (1..100),
                  rcIpUdpPortFwdListName DisplayString (SIZE(0..15)),
                  rcIpUdpPortFwdListFwdIdListSize INTEGER (0..16),
                  rcIpUdpPortFwdListFwdIdList OCTET STRING (SIZE(32)),
                  rcIpUdpPortFwdListRowStatus RowStatus
                  }

rcIpUdpPortFwdListId OBJECT-TYPE
        SYNTAX        INTEGER (1..100)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "A value that uniquely identifies this list of 
                       rcIpUdpPortFwdListEntry."
        ::= { rcIpUdpPortFwdListEntry 1 }
 
rcIpUdpPortFwdListName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..15))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "An administratively-assigned name for this list."
        ::= { rcIpUdpPortFwdListEntry 3 }
 
rcIpUdpPortFwdListFwdIdListSize OBJECT-TYPE
        SYNTAX        INTEGER (0..16)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of rcIpUdpPortFwdNetEntry 
                      id(s) in the rcIpUdpPortFwdListIdList variable."
        ::= { rcIpUdpPortFwdListEntry 4 }
 
rcIpUdpPortFwdListFwdIdList OBJECT-TYPE
        SYNTAX        OCTET STRING (SIZE(32))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate zero or more UdpPortFwd entries 
                      that are associated to this list.  Each entry identifier
                      is stored as two bytes in this array starting from
                      offset zero.  Any unused bytes should be set to zero."
        ::= { rcIpUdpPortFwdListEntry 5 }

rcIpUdpPortFwdListRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Row status of this entry."
        ::= { rcIpUdpPortFwdListEntry 6 }
 

-- Ip Config Broadcast Forwarding Table

rcIpUdpConfBroadcastIntfTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of entries in the
                      rcIpUdpBroadcastIntfTable."
        ::= { rcIpUdp 7 }
 
rcIpUdpConfBroadcastIntfTable OBJECT-TYPE 
        SYNTAX          SEQUENCE OF RcIpUdpConfBroadcastIntfEntry
        ACCESS          not-accessible 
        STATUS          mandatory 
        DESCRIPTION     "IP broadcast forward configuration table"
    ::= { rcIpUdp 8 }

rcIpUdpConfBroadcastIntfEntry OBJECT-TYPE
        SYNTAX        	RcIpUdpConfBroadcastIntfEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"Used to configure UDP broadcast forward on a 
                        particular interface."
        INDEX         	{ rcIpUdpConfBroadcastIntfLocalIfAddr }
        ::= { rcIpUdpConfBroadcastIntfTable 1 }
 
RcIpUdpConfBroadcastIntfEntry ::=
        SEQUENCE {
                rcIpUdpConfBroadcastIntfLocalIfAddr   	      IpAddress,
                rcIpUdpConfBroadcastIntfUdpPortFwdListId          INTEGER (0..100),
                rcIpUdpConfBroadcastIntfMaxTtl    	              INTEGER (1..16),
                rcIpUdpConfBroadcastIntfNumRxPkts                 Counter,
                rcIpUdpConfBroadcastIntfNumFwdPkts                Counter,
                rcIpUdpConfBroadcastIntfNumDropPktsMaxTtlExpired  Counter,
                rcIpUdpConfBroadcastIntfNumDropPktsDestUnreach    Counter,
                rcIpUdpConfBroadcastIntfNumDropPktsUnknownPort    Counter,
                rcIpUdpConfBroadcastIntfRowStatus 	              RowStatus
 
        }
 
rcIpUdpConfBroadcastIntfLocalIfAddr OBJECT-TYPE
        SYNTAX        	IpAddress 
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The ip address of the local interface that is
           	        partipating in the forwarding UDP broadcast packets."
        ::= { rcIpUdpConfBroadcastIntfEntry 1 }
 
rcIpUdpConfBroadcastIntfUdpPortFwdListId OBJECT-TYPE
        SYNTAX        INTEGER (0..100)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number UDP ports that this 
                      interface is configured to forward.

                      A value of '0' indicates that this interface will not
                      forward any UDP broadcast packets. This is a required
                      field to create an entry."
        ::= { rcIpUdpConfBroadcastIntfEntry 2 }

rcIpUdpConfBroadcastIntfMaxTtl OBJECT-TYPE
        SYNTAX        	INTEGER (1..16)
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the maximum number of hops an 
		      	IP broadcast packet can take from the source 
                        device to the destination device."
 	    DEFVAL        	{ 4 }
        ::= { rcIpUdpConfBroadcastIntfEntry 3 }
 
rcIpUdpConfBroadcastIntfNumRxPkts OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of UDP/TCP broadcast packets 
                        received by this local interface."
        ::= { rcIpUdpConfBroadcastIntfEntry 4 }

rcIpUdpConfBroadcastIntfNumFwdPkts OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of UDP/TCP broadcast packets 
                        forwarded."
        ::= { rcIpUdpConfBroadcastIntfEntry 5 }

rcIpUdpConfBroadcastIntfNumDropPktsMaxTtlExpired OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of UDP/TCP broadcast packets 
                        dropped because the TTL has expired."
        ::= { rcIpUdpConfBroadcastIntfEntry 6 }

rcIpUdpConfBroadcastIntfNumDropPktsDestUnreach OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of UDP broadcast packets 
                        dropped because the destination was unreachable."
        ::= { rcIpUdpConfBroadcastIntfEntry 7 }

rcIpUdpConfBroadcastIntfNumDropPktsUnknownPort OBJECT-TYPE
        SYNTAX        	Counter
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The total number of UDP/TCP broadcast packets 
                        dropped because the destination port/protocol 
                        specified has no matching forwarding policy." 
        ::= { rcIpUdpConfBroadcastIntfEntry 8 }

rcIpUdpConfBroadcastIntfRowStatus OBJECT-TYPE
        SYNTAX        	RowStatus
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Entry row status."
        ::= { rcIpUdpConfBroadcastIntfEntry 9 }

--IP ToS Rule
rcIpTosRule   OBJECT IDENTIFIER       ::= { rcIp 14}

rcIpTosRuleAndMask OBJECT-TYPE
        SYNTAX        INTEGER (0..255)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "And Mask. The Ip ToS byte in the Ip header
                       is logically ANDed with this value, and then logically
                       ORed with the one of the OrRules below."
        ::= { rcIpTosRule 1 }

rcIpTosRuleOrRule1 OBJECT-TYPE
        SYNTAX        INTEGER (0..255)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Quid/Gid Or rule #1. The Ip ToS byte in the Ip header
                       is logically ORed with this value."
        ::= { rcIpTosRule 2 }

rcIpTosRuleOrRule2 OBJECT-TYPE
        SYNTAX        INTEGER (0..255)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Quid/Gid Or rule #2. The Ip ToS byte in the Ip header
                       is logically ORed with this value."
        ::= { rcIpTosRule 3 }

rcIpTosRuleOrRule3 OBJECT-TYPE
        SYNTAX        INTEGER (0..255)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Quid/Gid Or rule #3. The Ip ToS byte in the Ip header
                       is logically ORed with this value."
        ::= { rcIpTosRule 4 }

--IP Static Route
rcIpStaticRoute OBJECT IDENTIFIER       ::= { rcIp 15}

rcIpStaticRouteTableSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "size of Ip Static Route Table."
        ::= { rcIpStaticRoute 1 }

rcIpStaticRouteTable OBJECT-TYPE 
        SYNTAX          SEQUENCE OF RcIpStaticRouteEntry
        ACCESS          not-accessible 
        STATUS          mandatory 
        DESCRIPTION     "IP static route table"
    ::= { rcIpStaticRoute 2 }

rcIpStaticRouteEntry OBJECT-TYPE
        SYNTAX        	RcIpStaticRouteEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"A static route to a particular destination."
        INDEX         	{ rcIpStaticRouteDest,
                          rcIpStaticRouteMask,
                          rcIpStaticRouteNextHop }
        ::= { rcIpStaticRouteTable 1 }
 
RcIpStaticRouteEntry ::=
        SEQUENCE {
                rcIpStaticRouteDest   	      IpAddress,
                rcIpStaticRouteMask   	      IpAddress,
                rcIpStaticRouteNextHop	      IpAddress,
                rcIpStaticRouteMetric         INTEGER (1..'FFFF'h),
                rcIpStaticRouteIfIndex        InterfaceIndex,
                rcIpStaticRoutePreference     INTEGER (1..16),
                rcIpStaticRouteEnable         TruthValue,
                rcIpStaticRouteStatus         INTEGER,
                rcIpStaticRouteRowStatus      RowStatus
 
        }
 
rcIpStaticRouteDest 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."
        ::= { rcIpStaticRouteEntry 1 }
 
rcIpStaticRouteMask 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."
        ::= { rcIpStaticRouteEntry 2 }
 
rcIpStaticRouteNextHop OBJECT-TYPE
        SYNTAX        	IpAddress 
        ACCESS        	read-only
        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)."
        ::= { rcIpStaticRouteEntry 3 }
 
rcIpStaticRouteMetric OBJECT-TYPE
        SYNTAX        INTEGER (1..'FFFF'h)
        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."
	DEFVAL        { 1 }
        ::= { rcIpStaticRouteEntry 4 }

rcIpStaticRouteIfIndex 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."
        ::= { rcIpStaticRouteEntry 5 }

rcIpStaticRoutePreference OBJECT-TYPE
        SYNTAX        INTEGER (1..16)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "route preference."
	DEFVAL        { 16 }
        ::= { rcIpStaticRouteEntry 6 }

rcIpStaticRouteEnable OBJECT-TYPE
        SYNTAX         TruthValue
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION    ""
	DEFVAL        {true}
        ::= { rcIpStaticRouteEntry 7 }

rcIpStaticRouteStatus OBJECT-TYPE
        SYNTAX        INTEGER {
		         inactive(0),
			 active(1)
		      }
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   ""
	DEFVAL        { active }
        ::= { rcIpStaticRouteEntry 8 }

rcIpStaticRouteRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Used to create/delete entries"
        ::= { rcIpStaticRouteEntry 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   "Entry containing Proprietary ARP information.  
                      An entry is automatically created in this table 
                      when an ip address is configured on an interface." 
        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."
	DEFVAL        { disable }
        ::= { 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."
	DEFVAL        { enable }
        ::= { 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   "Entry containing Proprietary RIP information.  
	  	      An entry is automatically created in this table 
                      when an ip address is configured on an interface."
        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."
	DEFVAL        { enable }
        ::= { 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."
	DEFVAL        { enable }
        ::= { 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."
	DEFVAL        { disable }
        ::= { 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 }
rcTestTypesExtLoopBack	OBJECT IDENTIFIER	::= { rcTestTypes 3 }


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..4094)
        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 }

-- rcStatMlt Group

rcStatMlt      OBJECT IDENTIFIER ::= { rcStat 6 }
 
rcStatMltIfExtnTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcStatMltIfExtnEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store Mlt interface
                      statistics."
        ::= { rcStatMlt 1 }
 
rcStatMltIfExtnEntry OBJECT-TYPE
        SYNTAX        RcStatMltIfExtnEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Mlt interface statistics"
        INDEX         { rcStatMltIfExtnMltId }
        ::= { rcStatMltIfExtnTable 1 }
 
RcStatMltIfExtnEntry ::= SEQUENCE {
                rcStatMltIfExtnMltId                  INTEGER,
                rcStatMltIfExtnIfInMulticastPkts      Counter32,
                rcStatMltIfExtnIfInBroadcastPkts      Counter32,
                rcStatMltIfExtnIfOutMulticastPkts     Counter32,
                rcStatMltIfExtnIfOutBroadcastPkts     Counter32,
                rcStatMltIfExtnIfHCInOctets           Counter64,
                rcStatMltIfExtnIfHCInUcastPkts        Counter64,
                rcStatMltIfExtnIfHCInMulticastPkt     Counter64,
                rcStatMltIfExtnIfHCInBroadcastPkt     Counter64,
                rcStatMltIfExtnIfHCOutOctets          Counter64,
                rcStatMltIfExtnIfHCOutUcastPkts       Counter64,
                rcStatMltIfExtnIfHCOutMulticast       Counter64,
                rcStatMltIfExtnIfHCOutBroadcast       Counter64
        }
 
rcStatMltIfExtnMltId OBJECT-TYPE
        SYNTAX        INTEGER (1..8)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Mlt Id"
        ::= { rcStatMltIfExtnEntry 1 }
 
rcStatMltIfExtnIfInMulticastPkts OBJECT-TYPE
        SYNTAX        Counter32
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "multi-pkts to upper"
        ::= { rcStatMltIfExtnEntry 2 }

rcStatMltIfExtnIfInBroadcastPkts OBJECT-TYPE
        SYNTAX        Counter32
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "broad-pkts to upper"
        ::= { rcStatMltIfExtnEntry 3 }
 
rcStatMltIfExtnIfOutMulticastPkts OBJECT-TYPE
        SYNTAX        Counter32
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "multi-pkts from upper"
        ::= { rcStatMltIfExtnEntry 4 }
 
rcStatMltIfExtnIfOutBroadcastPkts OBJECT-TYPE
        SYNTAX        Counter32
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "broad-pkts from upper"
        ::= { rcStatMltIfExtnEntry 5 }
 
rcStatMltIfExtnIfHCInOctets OBJECT-TYPE
        SYNTAX        Counter64
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "~ifInOctets"
        ::= { rcStatMltIfExtnEntry 6 }
 
rcStatMltIfExtnIfHCInUcastPkts OBJECT-TYPE
        SYNTAX        Counter64
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "~ifInUcastPkts"
        ::= { rcStatMltIfExtnEntry 7 }
 
rcStatMltIfExtnIfHCInMulticastPkt OBJECT-TYPE
        SYNTAX        Counter64
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "~ifInMulticastPkts"
        ::= { rcStatMltIfExtnEntry 8 }
 
rcStatMltIfExtnIfHCInBroadcastPkt OBJECT-TYPE
        SYNTAX        Counter64
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "~ifInBroadcastPkts"
        ::= { rcStatMltIfExtnEntry 9 }
 
rcStatMltIfExtnIfHCOutOctets OBJECT-TYPE
        SYNTAX        Counter64
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "~ifOutOctets"
        ::= { rcStatMltIfExtnEntry 10 }
 
rcStatMltIfExtnIfHCOutUcastPkts OBJECT-TYPE
        SYNTAX        Counter64
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "~ifOutUcastPkts"
        ::= { rcStatMltIfExtnEntry 11 }

rcStatMltIfExtnIfHCOutMulticast OBJECT-TYPE 
        SYNTAX        Counter64
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "~ifOutMulticastPkts"
        ::= { rcStatMltIfExtnEntry 12 }

rcStatMltIfExtnIfHCOutBroadcast OBJECT-TYPE 
        SYNTAX        Counter64
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "~ifOutBroadcastPkts"
        ::= { rcStatMltIfExtnEntry 13 }

-- Mlt Ether table

rcStatMltEtherTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcStatMltEtherEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store Mlt Ethernet
                      statistics."
        ::= { rcStatMlt 2 }
 
rcStatMltEtherEntry OBJECT-TYPE
        SYNTAX        RcStatMltEtherEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Mlt enternet statistics"
        INDEX         { rcStatMltEtherMltId }
        ::= { rcStatMltEtherTable 1 }
 
RcStatMltEtherEntry ::= SEQUENCE {
                rcStatMltEtherMltId              INTEGER,
                rcStatMltEtherAlignmentErrors    Counter,
                rcStatMltEtherFCSErrors          Counter,
                rcStatMltEtherSingleCollFrames   Counter,
                rcStatMltEtherMultipleCollFrames Counter,
                rcStatMltEtherSQETestError       Counter,
                rcStatMltEtherDeferredTransmiss  Counter,
                rcStatMltEtherLateCollisions     Counter,
                rcStatMltEtherExcessiveCollis    Counter,
                rcStatMltEtherIMacTransmitError  Counter,
                rcStatMltEtherCarrierSenseError  Counter,
                rcStatMltEtherFrameTooLong       Counter,
                rcStatMltEtherIMacReceiveError   Counter
        }
 
rcStatMltEtherMltId OBJECT-TYPE
        SYNTAX        INTEGER (1..8)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Mlt Id"
        ::= { rcStatMltEtherEntry 1 }
 
rcStatMltEtherAlignmentErrors OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "non-integral # of octets"
        ::= { rcStatMltEtherEntry 2 }

rcStatMltEtherFCSErrors OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "FCS error"
        ::= { rcStatMltEtherEntry 3 }
 
rcStatMltEtherSingleCollFrames OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "one collision"
        ::= { rcStatMltEtherEntry 4 }
 
rcStatMltEtherMultipleCollFrames OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "multiple collision"
        ::= { rcStatMltEtherEntry 5 }
 
rcStatMltEtherSQETestError OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "signal quality error"
        ::= { rcStatMltEtherEntry 6 }
 
rcStatMltEtherDeferredTransmiss OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "delay due to media busy"
        ::= { rcStatMltEtherEntry 7 }
 
rcStatMltEtherLateCollisions OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "detect after 64 octets"
        ::= { rcStatMltEtherEntry 8 }
 
rcStatMltEtherExcessiveCollis OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "excessive collisions"
        ::= { rcStatMltEtherEntry 9 }
 
rcStatMltEtherIMacTransmitError OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "internal MAC layer error"
        ::= { rcStatMltEtherEntry 10 }
 
rcStatMltEtherCarrierSenseError OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "CSE problem"
        ::= { rcStatMltEtherEntry 11 }

rcStatMltEtherFrameTooLong OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "> 1518 octets"
        ::= { rcStatMltEtherEntry 12 }

rcStatMltEtherIMacReceiveError OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "internal MAC layer error"
        ::= { rcStatMltEtherEntry 13 }


-- Mlt Ip table

rcStatMltIpTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcStatMltIpEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "A table used to store Mlt Ip statistics."
        ::= { rcStatMlt 3 }
 
rcStatMltIpEntry OBJECT-TYPE
        SYNTAX        RcStatMltIpEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Mlt enternet statistics"
        INDEX         { rcStatMltIpMltId }
        ::= { rcStatMltIpTable 1 }
 
RcStatMltIpEntry ::= SEQUENCE {
                rcStatMltIpMltId            INTEGER,
                rcStatMltIpInReceives       Counter,
                rcStatMltIpInHdrErrors      Counter,
                rcStatMltIpInAddrErrors     Counter,
                rcStatMltIpForwDatagrams    Counter,
                rcStatMltIpInUnknownProtos  Counter,
                rcStatMltIpInDiscards       Counter,
                rcStatMltIpInDelivers       Counter,
                rcStatMltIpOutRequest       Counter,
                rcStatMltIpOutDiscards      Counter,
                rcStatMltIpOutNoRoutes      Counter,
                rcStatMltIpReasmReqds       Counter,
                rcStatMltIpReasmOKs         Counter,
                rcStatMltIpReasmFails       Counter,
                rcStatMltIpFragOKs          Counter,
                rcStatMltIpFragFails        Counter,
                rcStatMltIpFragCreates      Counter,
                rcStatMltIpRoutingDiscards  Counter
        }
 
rcStatMltIpMltId OBJECT-TYPE
        SYNTAX        INTEGER (1..8)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Mlt Id"
        ::= { rcStatMltIpEntry 1 }
 
rcStatMltIpInReceives OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "all incoming packets"
        ::= { rcStatMltIpEntry 2 }

rcStatMltIpInHdrErrors OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "hdr errors detected"
        ::= { rcStatMltIpEntry 3 }
 
rcStatMltIpInAddrErrors OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "bad dest. ip addr"
        ::= { rcStatMltIpEntry 4 }
 
rcStatMltIpForwDatagrams OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "packets forwarded"
        ::= { rcStatMltIpEntry 5 }
 
rcStatMltIpInUnknownProtos OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "unsupported protocol"
        ::= { rcStatMltIpEntry 6 }
 
rcStatMltIpInDiscards OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "good, but no buffer"
        ::= { rcStatMltIpEntry 7 }
 
rcStatMltIpInDelivers OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "pkts delivered to upper"
        ::= { rcStatMltIpEntry 8 }
 
rcStatMltIpOutRequest OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "pkts received from upper"
        ::= { rcStatMltIpEntry 9 }
 
rcStatMltIpOutDiscards OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "good, but no buffer"
        ::= { rcStatMltIpEntry 10 }
 
rcStatMltIpOutNoRoutes OBJECT-TYPE
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "no route to destination"
        ::= { rcStatMltIpEntry 11 }

rcStatMltIpReasmReqds OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "fragments to reassem"
        ::= { rcStatMltIpEntry 12 }

rcStatMltIpReasmOKs OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "reassembled successfully"
        ::= { rcStatMltIpEntry 13 }

rcStatMltIpReasmFails OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "reassembly failures"
        ::= { rcStatMltIpEntry 14 }

rcStatMltIpFragOKs OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "fragment successfully"
        ::= { rcStatMltIpEntry 15 }

rcStatMltIpFragFails OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "fragment failure"
        ::= { rcStatMltIpEntry 16 }

rcStatMltIpFragCreates OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "pkts due to fragmenting"
        ::= { rcStatMltIpEntry 17 }

rcStatMltIpRoutingDiscards OBJECT-TYPE 
        SYNTAX        Counter
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Route entries removed"
        ::= { rcStatMltIpEntry 18 }

-- 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        PortSet
        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 }


rcStgNotAllowedPorts OBJECT-TYPE 
        SYNTAX        PortSet  
        ACCESS        read-only
        STATUS        mandatory 
        DESCRIPTION   "A bitfield used to identify which ports in 
                      the system that cannot be assigned to any STG
                      (i.e., which ports are single routable ports). 
 
                      The bitfield is 32 octets long representing 
                      ports 0 to 255 (inclusive)." 
        ::= { rcStg 6 } 


-- 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 }

-- The unknown mac discard config table

rcBridgeUnknownMacDiscardTable OBJECT-TYPE
	SYNTAX  	SEQUENCE OF RcBridgeUnknownMacDiscardEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"This table is used to configure
                        the 'unknown mac discard' feature."
	::= { rcBridge 7 }
 
rcBridgeUnknownMacDiscardEntry OBJECT-TYPE
	SYNTAX  	RcBridgeUnknownMacDiscardEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"A table containing information configuring
                        the 'unknown mac discard' feature."
	INDEX   { rcBridgeUnknownMacDiscardIfIndex }
        ::= { rcBridgeUnknownMacDiscardTable 1 }
 
RcBridgeUnknownMacDiscardEntry ::=
        SEQUENCE {
	    rcBridgeUnknownMacDiscardIfIndex                  InterfaceIndex,
	    rcBridgeUnknownMacDiscardAutoLearnEnable          TruthValue,
	    rcBridgeUnknownMacDiscardAutoLearnMode            INTEGER,
	    rcBridgeUnknownMacDiscardAutoLearnTableMode       INTEGER,
	    rcBridgeUnknownMacDiscardLogViolations            INTEGER,
	    rcBridgeUnknownMacDiscardSendTrap                 INTEGER,
	    rcBridgeUnknownMacDiscardDisablePort              INTEGER,
	    rcBridgeUnknownMacDiscardDefaultAutoLearnMonitor  INTEGER,
	    rcBridgeUnknownMacDiscardDefaultAutoLearnPriority INTEGER
        }

rcBridgeUnknownMacDiscardIfIndex OBJECT-TYPE
        SYNTAX  	InterfaceIndex
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"Port on which this MAC address is found."
        ::= { rcBridgeUnknownMacDiscardEntry 1 }
 
rcBridgeUnknownMacDiscardAutoLearnEnable OBJECT-TYPE  
        SYNTAX        	TruthValue  
        ACCESS        	read-write  
        STATUS        	mandatory  
        DESCRIPTION   	"enable auto-learning?"
        ::= { rcBridgeUnknownMacDiscardEntry 2 }

rcBridgeUnknownMacDiscardAutoLearnMode OBJECT-TYPE  
        SYNTAX        	INTEGER {
                               oneShot(1),
                               continuous(2)
                        }
        ACCESS        	read-write  
        STATUS        	mandatory  
        DESCRIPTION   	"enable auto-learning?"
        ::= { rcBridgeUnknownMacDiscardEntry 3 }

rcBridgeUnknownMacDiscardAutoLearnTableMode OBJECT-TYPE
        SYNTAX  	INTEGER {
		               unlock(1),
       		               lock(2)
       	         	}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	""
        ::= { rcBridgeUnknownMacDiscardEntry 4 }

rcBridgeUnknownMacDiscardLogViolations OBJECT-TYPE
        SYNTAX  	INTEGER {
		               disable(1),
       		               enable(2)
       	         	}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	""
        ::= { rcBridgeUnknownMacDiscardEntry 5 }

rcBridgeUnknownMacDiscardSendTrap OBJECT-TYPE
        SYNTAX  	INTEGER {
		               disable(1),
       		               enable(2)
       	         	}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	""
        ::= { rcBridgeUnknownMacDiscardEntry 6 }

rcBridgeUnknownMacDiscardDisablePort OBJECT-TYPE
        SYNTAX  	INTEGER {
		               disable(1),
       		               enable(2)
       	         	}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	""
        ::= { rcBridgeUnknownMacDiscardEntry 7 }

rcBridgeUnknownMacDiscardDefaultAutoLearnMonitor OBJECT-TYPE
        SYNTAX  	INTEGER {
			 	none(1),
			 	monitor(2)
			}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"monitor auto-learned mac address?"
        ::= { rcBridgeUnknownMacDiscardEntry 8 }

rcBridgeUnknownMacDiscardDefaultAutoLearnPriority OBJECT-TYPE
        SYNTAX  	INTEGER {
		               low(1),
       		               high(2)
       	         	}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	""
        ::= { rcBridgeUnknownMacDiscardEntry 9 }

-- The Manual Edit table

rcBridgeManualEditTable OBJECT-TYPE
	SYNTAX  	SEQUENCE OF RcBridgeManualEditEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"This table is used to specify what MAC addresses
                        can be learned on each port."
	::= { rcBridge 8 }
 
rcBridgeManualEditEntry OBJECT-TYPE
	SYNTAX  	RcBridgeManualEditEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"A table containing information learning
                        MAC addresses."
	INDEX   { rcBridgeManualEditAddress }
        ::= { rcBridgeManualEditTable 1 }
 
RcBridgeManualEditEntry ::=
        SEQUENCE {
	    rcBridgeManualEditAddress    MacAddress,
	    rcBridgeManualEditPorts      PortSet,
	    rcBridgeManualEditMonitor    TruthValue,
	    rcBridgeManualEditPriority   INTEGER,
	    rcBridgeManualEditStatus     INTEGER
        }

rcBridgeManualEditAddress OBJECT-TYPE
        SYNTAX  	MacAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"src mac addr."
        ::= { rcBridgeManualEditEntry 1 }
 
rcBridgeManualEditPorts OBJECT-TYPE  
        SYNTAX        	PortSet  
        ACCESS        	read-write  
        STATUS        	mandatory  
        DESCRIPTION   	"ports for this entry"
        ::= { rcBridgeManualEditEntry 2 }

rcBridgeManualEditMonitor OBJECT-TYPE  
        SYNTAX        	TruthValue
        ACCESS        	read-write  
        STATUS        	mandatory  
        DESCRIPTION   	"enable auto-learning?"
        ::= { rcBridgeManualEditEntry 3 }

rcBridgeManualEditPriority OBJECT-TYPE
        SYNTAX  	INTEGER {
		               low(1),
       		               high(2)
       	         	}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	""
        ::= { rcBridgeManualEditEntry 4 }

rcBridgeManualEditStatus OBJECT-TYPE
        SYNTAX  	INTEGER {
		               other(1),
		               invalid(2),
       		               active(3)
       	         	}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	""
        ::= { rcBridgeManualEditEntry 5 }

rcBridgeManualEditTblSize OBJECT-TYPE  
        SYNTAX        	INTEGER  
        ACCESS        	read-only  
        STATUS        	mandatory  
        DESCRIPTION   	"Used to indicate the number of entries in 
                       	the manual edit table."    
        ::= { rcBridge 9 }

-- The Auto Learn table

rcBridgeAutoLearnTable OBJECT-TYPE
	SYNTAX  	SEQUENCE OF RcBridgeAutoLearnEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	""
	::= { rcBridge 10 }
 
rcBridgeAutoLearnEntry OBJECT-TYPE
	SYNTAX  	RcBridgeAutoLearnEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"Entries in this table are created automatically
                        when the user explicitly does a lock operation on
                        the auto-learn-table (i.e., when 'AutoLearnTableMode'
                        is set to lock(2))."
	INDEX   { rcBridgeAutoLearnAddress }
        ::= { rcBridgeAutoLearnTable 1 }
 
RcBridgeAutoLearnEntry ::=
        SEQUENCE {
	    rcBridgeAutoLearnAddress    MacAddress,
	    rcBridgeAutoLearnPort       PortSet,
	    rcBridgeAutoLearnMonitor    TruthValue,
	    rcBridgeAutoLearnPriority   INTEGER,
	    rcBridgeAutoLearnAction     INTEGER
        }

rcBridgeAutoLearnAddress OBJECT-TYPE
        SYNTAX  	MacAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"src mac addr."
        ::= { rcBridgeAutoLearnEntry 1 }
 
rcBridgeAutoLearnPort OBJECT-TYPE  
        SYNTAX        	PortSet  
        ACCESS        	read-only  
        STATUS        	mandatory  
        DESCRIPTION   	"ports for this entry"
        ::= { rcBridgeAutoLearnEntry 2 }

rcBridgeAutoLearnMonitor OBJECT-TYPE  
        SYNTAX        	TruthValue
        ACCESS        	read-only  
        STATUS        	mandatory  
        DESCRIPTION   	"monitor this mac address?"
        ::= { rcBridgeAutoLearnEntry 3 }

rcBridgeAutoLearnPriority OBJECT-TYPE
        SYNTAX  	INTEGER {
		               low(1),
       		               high(2)
       	         	}
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	""
        ::= { rcBridgeAutoLearnEntry 4 }

rcBridgeAutoLearnAction OBJECT-TYPE
        SYNTAX  	INTEGER {
		               none(0),
		               convertToManualEdit(1)
       	         	}
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	""
        ::= { rcBridgeAutoLearnEntry 5 }


rcBridgeAutoLearnTblSize OBJECT-TYPE  
        SYNTAX        	INTEGER  
        ACCESS        	read-only  
        STATUS        	mandatory  
        DESCRIPTION   	"Used to indicate the number of entries in 
                       	the auto learn table."    
        ::= { rcBridge 11 }


-- rcBoot Group
rcBootFlashSwVersion OBJECT-TYPE
        SYNTAX        DisplayString
        ACCESS        read-only
        STATUS        obsolete
        DESCRIPTION   "BootFlashSwVersion indicates the software
                      version in the Flash."
        ::= { rcBoot 1 } 
 
rcBootPcmciaSwVersion OBJECT-TYPE
        SYNTAX        DisplayString
        ACCESS        read-only
        STATUS        obsolete
        DESCRIPTION   "BootPcmciaSwVersion indicate the software
                      version in the Pcmcia card."
        ::= { rcBoot 2 } 
 

rcBootLastBootSource OBJECT-TYPE
        SYNTAX        DisplayString
        ACCESS        read-only
        STATUS        obsolete
        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        	obsolete
        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        	obsolete
        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        	obsolete
        DESCRIPTION   	"BootTertiary indicates the third choice 
                        of boot source."
	DEFVAL 		{ net }
        ::= { rcBoot 6 } 
 

-- rcDevice Group
rcDeviceLastBootSource OBJECT-TYPE
        SYNTAX          DisplayString
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the source of the software
                         image the system was last booted with."
        ::= { rcDevice 1 } 
 
rcDevicePrimarySource OBJECT-TYPE
        SYNTAX          INTEGER {
                           flash(1),
                           pcmcia(2),
                           net(3),
                           skip(4)
                        }
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the primary choice to get
                         a system software image."
        ::= { rcDevice 2 } 
 
rcDevicePrimarySourceFileName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE(0..31))
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Used to indicate a file number, if applicable."
        ::= { rcDevice 3 } 

rcDeviceSecondarySource OBJECT-TYPE
        SYNTAX          INTEGER {
                           flash(1),
                           pcmcia(2),
                           net(3),
                           skip(4)
                        }
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the secondary choice to get
                         a system software image."
        ::= { rcDevice 4 } 
 
rcDeviceSecondarySourceFileName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE(0..31))
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Used to indicate a file name, if applicable."
        ::= { rcDevice 5 } 

rcDeviceTertiarySource OBJECT-TYPE
        SYNTAX          INTEGER {
                           flash(1),
                           pcmcia(2),
                           net(3),
                           skip(4)
                        }
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the tertiary choice to get
                         a system software image."
        ::= { rcDevice 6 } 
 
rcDeviceTertiarySourceFileName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE(0..31))
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Used to indicate a file name, if applicable."
        ::= { rcDevice 7 } 

rcDeviceConfigSource OBJECT-TYPE
        SYNTAX          INTEGER {
                           flash(1),
                           pcmcia(2),
			   nvram(5)
                        }
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the location to get a system 
			configuration file during system boot."
        ::= { rcDevice 8 } 
 
rcDeviceConfigSourceFileName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE(0..31))
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Used to indicate a file name, if applicable."
        ::= { rcDevice 9 } 

rcDeviceFlashBytesUsed OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of bytes used in the
                         system's configuration flash device."
        ::= { rcDevice 10 } 

rcDeviceFlashBytesFree OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of bytes available in
                         the system's configuration flash device."
        ::= { rcDevice 11 } 

rcDevicePcmciaBytesUsed OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of bytes used in the
                         system's PCMCIA device."
        ::= { rcDevice 12 } 

rcDevicePcmciaBytesFree OBJECT-TYPE
        SYNTAX          INTEGER
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of bytes available in 
                         the system's PCMCIA device."
        ::= { rcDevice 13 } 

rcDeviceAction OBJECT-TYPE
        SYNTAX          INTEGER {
			    none(1),
                            squeezeFlash(2),
                            squeezePcmcia(3),
                            formatFlash(4),
                            formatPcmcia(5),
                            recoverFlash(6), 
                            recoverPcmcia(7) 
                        }
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to specify a particular action to perform on
                         one of the system's device."
        ::= { rcDevice 14 } 
 
rcDeviceResult OBJECT-TYPE
        SYNTAX          INTEGER {
                            none(1),
                            inProgress(2),
                            success(3),
                            fail(4)
                        }
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the result of the last action
                         performed on one of the system's device."
        ::= { rcDevice 15 } 
 
rcDeviceFlashNumFiles OBJECT-TYPE
        SYNTAX          INTEGER (0..128)
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of files available in
                         the system's configuration flash device."
        ::= { rcDevice 16 }
 
rcDevicePcmciaNumFiles OBJECT-TYPE
        SYNTAX          INTEGER (0..128)
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Used to indicate the number of files available in
                         the system's PCMCIA device."
        ::= { rcDevice 17 }
 

-- The Device Flash Table

rcDeviceFlashTable OBJECT-TYPE
	SYNTAX  	SEQUENCE OF RcDeviceFlashEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"Flash table."
	::= { rcDevice 25 }
 
rcDeviceFlashEntry OBJECT-TYPE
	SYNTAX  	RcDeviceFlashEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"An entry in the system's flash table."
	INDEX   { rcDeviceFlashFileNum }
        ::= { rcDeviceFlashTable 1 }
 
RcDeviceFlashEntry ::=
        SEQUENCE {
	     rcDeviceFlashFileNum     INTEGER,
	     rcDeviceFlashFileName    DisplayString,
	     rcDeviceFlashFileVersion DisplayString,
	     rcDeviceFlashFileType    INTEGER,
	     rcDeviceFlashFileMode    INTEGER,
	     rcDeviceFlashFileSize    INTEGER,
	     rcDeviceFlashFileCrc     INTEGER,
	     rcDeviceFlashFileStatus  INTEGER,
	     rcDeviceFlashRowStatus   RowStatus
        }

rcDeviceFlashFileNum OBJECT-TYPE
        SYNTAX  	INTEGER (0..128)
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"Used to indicate a particular file in flash."
        ::= { rcDeviceFlashEntry 1 }
 
rcDeviceFlashFileName OBJECT-TYPE
        SYNTAX  	DisplayString
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"Used to indicate a flash file's name."
        ::= { rcDeviceFlashEntry 2 }
 
rcDeviceFlashFileVersion OBJECT-TYPE
        SYNTAX  	DisplayString
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"Used to indicate the flash file's version."
        ::= { rcDeviceFlashEntry 3 }
 
rcDeviceFlashFileType OBJECT-TYPE
        SYNTAX  	INTEGER {
                           config(1),
                           log(2),
                           trace(3),
                           executable(4)
                        }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the flash file's type."
        ::= { rcDeviceFlashEntry 4 }
 
rcDeviceFlashFileMode OBJECT-TYPE
        SYNTAX  	INTEGER {
                           compressed(1),
                           uncompressed(2)
                        }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the flash file's mode."
        ::= { rcDeviceFlashEntry 5 }
 
rcDeviceFlashFileSize OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the flash file's size."
        ::= { rcDeviceFlashEntry 6 }
 
rcDeviceFlashFileCrc OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the flash file's CRC."
        ::= { rcDeviceFlashEntry 7 }
 
rcDeviceFlashFileStatus OBJECT-TYPE
        SYNTAX  	INTEGER {
                           active(1),
                           deleted(2)
                        }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the flash file's status.
                         A file that has been marked for deletion, but  
                         who's space has not been reclaimed yet is marked
                         as 'deleted'."
        ::= { rcDeviceFlashEntry 8 }
 
rcDeviceFlashRowStatus OBJECT-TYPE
        SYNTAX  	RowStatus
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Row status."
        ::= { rcDeviceFlashEntry 9 }


-- The Device Pcmcia Table

rcDevicePcmciaTable OBJECT-TYPE
	SYNTAX  	SEQUENCE OF RcDevicePcmciaEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
	DESCRIPTION 	"PCMCIA table."
	::= { rcDevice 26 }
 
rcDevicePcmciaEntry OBJECT-TYPE
	SYNTAX  	RcDevicePcmciaEntry
	ACCESS  	not-accessible
	STATUS  	mandatory
        DESCRIPTION     "An entry in the system's PCMCIA table."
	INDEX   { rcDevicePcmciaFileNum }
        ::= { rcDevicePcmciaTable 1 }
 
RcDevicePcmciaEntry ::=
        SEQUENCE {
	     rcDevicePcmciaFileNum     INTEGER,
	     rcDevicePcmciaFileName    DisplayString,
	     rcDevicePcmciaFileVersion DisplayString,
	     rcDevicePcmciaFileType    INTEGER,
	     rcDevicePcmciaFileMode     INTEGER,
	     rcDevicePcmciaFileSize    INTEGER,
	     rcDevicePcmciaFileCrc     INTEGER,
	     rcDevicePcmciaFileStatus  INTEGER,
	     rcDevicePcmciaRowStatus   RowStatus
        }

rcDevicePcmciaFileNum OBJECT-TYPE
        SYNTAX  	INTEGER (0..128)
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate a particular file in PCMCIA."
        ::= { rcDevicePcmciaEntry 1 }
 
rcDevicePcmciaFileName OBJECT-TYPE
        SYNTAX  	DisplayString
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the PCMCIA file's name."
        ::= { rcDevicePcmciaEntry 2 }
 
rcDevicePcmciaFileVersion OBJECT-TYPE
        SYNTAX  	DisplayString
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the PCMCIA file's version."
        ::= { rcDevicePcmciaEntry 3 }
 
rcDevicePcmciaFileType OBJECT-TYPE
        SYNTAX  	INTEGER {
                           config(1),
                           log(2),
                           trace(3),
                           executable(4)
                        }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the PCMCIA file's type."
        ::= { rcDevicePcmciaEntry 4 }
 
rcDevicePcmciaFileMode OBJECT-TYPE
        SYNTAX  	INTEGER {
                           compressed(1),
                           uncompressed(2)
                        }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate a particular file in mode."
        ::= { rcDevicePcmciaEntry 5 }
 
rcDevicePcmciaFileSize OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the PCMCIA file's size."
        ::= { rcDevicePcmciaEntry 6 }
 
rcDevicePcmciaFileCrc OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the PCMCIA file's CRC."
        ::= { rcDevicePcmciaEntry 7 }
 
rcDevicePcmciaFileStatus OBJECT-TYPE
        SYNTAX  	INTEGER {
                           active(1),
                           deleted(2)
                        }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION     "Used to indicate the PCMCIA file's status.
                         A file that has been marked for deletion, but
                         who's space has not been reclaimed yet is marked
                         as 'deleted'."
        ::= { rcDevicePcmciaEntry 8 }
 
rcDevicePcmciaRowStatus OBJECT-TYPE
        SYNTAX  	RowStatus
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"Row status."
        ::= { rcDevicePcmciaEntry 9 }


-- Multi-Link Trunking Table

rcMltNumMlts OBJECT-TYPE
        SYNTAX        	INTEGER
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The number of MLTs currently defined in the switch."
        ::= { rcMlt 1 }

rcMltPotentialMembers OBJECT-TYPE
        SYNTAX        	PortSet
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The set of ports that are not members of any MLT."
        ::= { rcMlt 2 }

rcMltTable OBJECT-TYPE
        SYNTAX        	SEQUENCE OF RcMltEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"A list of Multi-Link Trunk entries. The number of 
                      	entries is given by rcMltNumMlts."
        ::= { rcMlt 10 }

rcMltEntry OBJECT-TYPE
        SYNTAX        	RcMltEntry
        ACCESS        	not-accessible
        STATUS        	mandatory
        DESCRIPTION   	"Entry containing configuration information for a 
                      	particular Multi-Link Trunk."
        INDEX         	{ rcMltId }
        ::= { rcMltTable 1 }

RcMltEntry ::= SEQUENCE {
                rcMltId	                    INTEGER,
                rcMltName                   DisplayString,
                rcMltPortMembers            PortSet,
		rcMltPortType               INTEGER,	
		rcMltNumVlanIds             INTEGER,
		rcMltVlanIds                IdList,
                rcMltRowStatus              RowStatus,
		rcMltEnable                 TruthValue,
		rcMltLoadBalance            TruthValue,
		rcMltDistributionAlgorithm  INTEGER,
		rcMltIfIndex		    InterfaceIndex
        }

rcMltId OBJECT-TYPE
        SYNTAX        	INTEGER (1..8)
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"A value that uniquely identifies the Multi-Link 
                      	Trunk associated with this entry."
        ::= { rcMltEntry 1 }

rcMltName OBJECT-TYPE
        SYNTAX        	DisplayString (SIZE (0..20))
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"An administratively-assigned name for this MLT."
        ::= { rcMltEntry 2 }

rcMltPortMembers OBJECT-TYPE
        SYNTAX        	PortSet
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"The set of ports that are members of this MLT." 
        ::= { rcMltEntry 3 }

rcMltPortType OBJECT-TYPE
        SYNTAX        	INTEGER {
                        	access(1),     -- access port type
                         	trunk(2)       -- trunk port type
                      	}
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"The type of MLT port: access(1) or trunk(2)."
		DEFVAL 			{ access }
        ::= { rcMltEntry 4 }
 
rcMltNumVlanIds OBJECT-TYPE
        SYNTAX        	INTEGER
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"Used to indicate the number of VLAN IDs that
                      	are stored in the rcMltVlanIds variable."
        ::= { rcMltEntry 5 }

rcMltVlanIds OBJECT-TYPE
        SYNTAX        	IdList (SIZE (250))
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"An array used to identify which VLANs this MLT 
                      	is associated with.  Each VLAN ID is stored as a 
		      	two octet value. The first octet in the pair holds
                      	bits 15-8 of the VLAN ID, while the second octet
                      	holds bits 7-0 of the VLAN ID."
        ::= { rcMltEntry 6 }

rcMltRowStatus OBJECT-TYPE
        SYNTAX        	RowStatus
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to create/delete entries in the rcMltTable."
        ::= { rcMltEntry 7 }

rcMltEnable OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Enable the entry."
		DEFVAL 			{ true }
        ::= { rcMltEntry 8 }

rcMltLoadBalance OBJECT-TYPE
        SYNTAX        	TruthValue
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Perform load balance?"
		DEFVAL			{ false }
        ::= { rcMltEntry 9 }

rcMltDistributionAlgorithm OBJECT-TYPE
        SYNTAX        	INTEGER {
                        	none(1)
                      	}
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"none(1), ...  It will be fill later"
		DEFVAL			{ none }
        ::= { rcMltEntry 10 }

rcMltIfIndex OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the 'logical' ifIndex assigned to
                      this MLT."
        ::= { rcMltEntry 11 }


-- 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 (1..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 (1..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name for the read-write web-server account."
        ::= { rcWeb 4 }
 
rcWebRWPassword OBJECT-TYPE 
        SYNTAX        DisplayString (SIZE (0..20)) 
        ACCESS        read-write 
        STATUS        mandatory 
        DESCRIPTION   "Password for the read-write web-server account." 
        ::= { rcWeb 5 } 

rcWebROUserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (1..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 }


-- rcCli related information

rcCliRWAUserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (1..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name for the read-write-all CLI account."
        ::= { rcCli 1 }

rcCliRWAPassword OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Password for the read-write-all CLI account."
        ::= { rcCli 2 }

rcCliRWUserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (1..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name for the read-write CLI account."
        ::= { rcCli 3 }
 
rcCliRWPassword OBJECT-TYPE 
        SYNTAX        DisplayString (SIZE (0..20)) 
        ACCESS        read-write 
        STATUS        mandatory 
        DESCRIPTION   "Password for the read-write CLI account." 
        ::= { rcCli 4 } 

rcCliRWL3UserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (1..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name for the read-write layer-3 CLI account."
        ::= { rcCli 5 }

rcCliRWL3Password OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Password for the read-write layer-3 CLI account."
        ::= { rcCli 6 }

rcCliRWL2UserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (1..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name for the read-write layer-2 CLI account."   
        ::= { rcCli 7 }  
 
rcCliRWL2Password OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Password for the read-write layer-2 CLI account."
        ::= { rcCli 8 }

rcCliROUserName OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (1..20))
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "User name for the read-only CLI account."
        ::= { rcCli 9 }
 
rcCliROPassword OBJECT-TYPE 
        SYNTAX        DisplayString (SIZE (0..20))
        ACCESS        read-write 
        STATUS        mandatory 
        DESCRIPTION   "Password for the read-only CLI account." 
        ::= { rcCli 10 } 

rcCliMaxTelnetSessions OBJECT-TYPE 
        SYNTAX        INTEGER (0..8)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the maximum number of telnet
		      sessions the system will support."
	DEFVAL	      { 8 }
	::= { rcCli 11 } 

rcCliMaxRloginSessions OBJECT-TYPE
        SYNTAX        INTEGER (0..8)
        ACCESS        read-write  
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the maximum number of rlogin
                      sessions the system will support."
	DEFVAL	      { 8 }
        ::= { rcCli 12 }

rcCliTimeout OBJECT-TYPE
        SYNTAX        INTEGER (30..65535)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the amount of idle time, in
     		      seconds to wait before timing out telnet and 
		      rlogin sessions."
	DEFVAL        { 900 }
        ::= { rcCli 13 }

rcCliNumAccessViolations OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Used to indicate the number of CLI access
		      violations detected by the system."
        ::= { rcCli 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),
			 invalidName(128),
                         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),
                         notInTestMode(153),
                         ospfInvalidAreaRangeMask(154),
                         ospfDuplicateEntry(155),
                         ospfRangeNotAllocated(156),
                         ospfAreaRangeNotFound(157),
                         testRunning(158),
			 nvramLimitExceeded(159),
			 flowAlreadyExist(160),
			 flowNotFound(161),
		 	 duplicateIpAddress(163),
		 	 conflictingIpAddress(164),
			 invalidRouteCost(165),
			 invalidNextHop(166),
			 duplicateRoute(167),
			 cannotFindRoute(168),
			 cannotDeleteLocalRoute(169),
			 badDhcpMinSec(170),
			 badDhcpMaxHop(171),
			 badDhcpMode(172),
			 badAgentAddress(173),
			 dhcpNotEnabled(174),
			 dhcpForwardNotFound(175),
			 dhcpDuplicateForward(176),
			 dhcpMaxForward(177),
			 dhcpBadEnable(178),
			 invalidDeviceFileNumber(179),
			 notExecutableDeviceFile(180),
			 deletedDeviceFile(181),
			 pcmciaNotPresent(182),
			 pcmciaWriteProtected(183),
			 discontiguousSubnetMask(184),
			 invalidOspfMetric(185),
			 ospfHostRouteNotFound(186),
			 invalidMltId(187),
			 invalidMltName(188),
			 onlyOnePortInMlt(189),
			 moreThan4PortsInMlt(190),
			 portsInDifferentQuid(191),
			 portAlreadyInAnotherMlt(192),
			 invalidVlan(193),
			 nonExistIpMcastAddriess(194),
			 invalidIpMulticastAddress(195),
			 portIsLocked(196),
			 accessRestriction(197),
                         invalidDeviceFileLength(198),
                         duplicateAccessPolicyId(199),
                         noDesiredAccessPolicyItem(200),
                         ipfFilterNonExist(201),
                         ipfInvalidVlanPriority(202),
                         ipfInvalidDestinationAddress(203),
                         ipfInvalidSourceAddress(204),
                         ipfFilterDuplicate(205),
                         ipfGlobalListDuplicate(206),
                         ipfGlobalListNonExist(207),
                         ipfBaseListDuplicate(208),
                         ipfBaseListNonExist(209),
                         ipfPortDuplicate(210),
                         ipfPortNonExist(211),
                         ipfListNonExist(212),
                         snmpSnoopDisabled(213),
                         invalidHostIpAddress(214),
                         snoopStaticGroupExist(215),
			 ripAnnouncePolicyNotFound(216),
			 duplicateRipAnnouncePolicy(217),
			 ospfAnnouncePolicyNotFound(218),
			 duplicateOspfAnnouncePolicy(219),
			 policyMatchNetEntryNotFound(220),
			 duplicatePolicyNetEntry(221),
			 policyAddrListEntryNotFound(222),
			 duplicatePolicyAddrListEntry(223),
			 policyAddrListIdNotFound(224),
			 policyExactNetListNotFound(225),
			 policyRangeNetListNotFound(226),
			 policyRipGatewayListNotFound(227),
			 policyRipInterfaceListNotFound(228),
			 policyOspfRtrIdListNotFound(229),
			 policyAnnounceInterfaceListNotFound(230),
			 policyAdvertiseNetListNotFound(231),
			 policyInjectNetListNotFound(232),
			 invalidPolicyListIdListSize(233),
			 policyAddrEntryNotFound(234),
			 duplicatePolicyAddrEntry(235),
			 disableThisPortFirst(236),
			 mutinettingNotSupported(237),
			 addingGlobalFilterToNonGlobalList(238),
			 addingNonGlobalFilterToGlobalList(239),
			 setFilteredPortMode(240),
			 setFilteredPortEnableValue(241),
			 invalidModeType(242),
                         duplicateRipAcceptPolicy(243),
                         ripAccepPolicyNotFound(244),
                         duplicateOspfAcceptPolicy(245),
                         ospfAccepPolicyNotFound(246),
                         invalidAccessPolicyName(247),
                         invalidAccessPolicyPolicyEnable(248),
                         invalidAccessPolicyMode(249),
                         invalidAccessPolicyService(250),
                         invalidAccessPolicyPrecedence(251),
                         invalidAccessPolicyNetAddress(252),
                         invalidAccessPolicyTrustedHostAddress(253),
                         invalidAccessPolicyTrustedHostUserName(254),
                         invalidAccessPolicyAccessLevel(255),
                         invalidAccessPolicyLogSetting(256),
                         invalidAccessPolicyPolicyId(257),
			 invalidAreaOptions(258),
			 cannotDeleteAreaIfCountIsNotZero(259),
			 ospfInterfaceNotFound(260),
			 ospfIfAreaIdConflictsWithConfiguredAreaRange(261),
                         applyingDuplicateGlobalFilterToPort(262),
                         differentMltPortTypes(263),
                         addPortToMltFailed(264),
                         removePortFromMltFailed(265),
                         mirrorPortInMlt(266),
                         invalidDhcpAlwaysBroadcast(267),
                         interfaceIsSetToTransmitRipV1(268),
                         ripInterfaceDoesnotExist(269),
                         interfaceIsNotRunningRip(270),
                         cannotCreateVirtLinksThroughStubArea(271),
			 invalidSyslogEnableSetting(272),
			 invalidSyslogHostIpAddr(274),
			 invalidSyslogHostUdpPort(275),
			 invalidSyslogHostFacility(276),
 			 invalidSyslogModuleId(277),
			 invalidSyslogSeverity(278),
			 invalidSyslogMapInfoSeverity(279),
			 invalidSyslogMapWarningSeverity(280),
			 invalidSyslogMapErrorSeverity(281),
			 invalidSyslogMapMfgSeverity(282),
			 invalidSyslogMapFatalSeverity(283),
			 invalidSyslogMapTraceMsgSetting(284),
			 invalidSyslogMapTrapMsgSetting(285),
			 invalidSyslogLogTraceMsgSetting(286),
			 invalidSyslogLogTrapMsgSetting(287),
			 invalidSyslogEntryEnableSetting(288),
			 invalidSyslogMaxHostSetting(289),
			 invalidSyslogHostId(290),
			 duplicateSyslogEntry(291),
			 syslogHostTableIsFull(292),
			 invalidHoldDownTime(294),
  			 incompatibleAruHardware(295),
  			 invalidVrid(296),
  			 duplicateVrrpEntry(297),
  			 noVrrpIpAddressSpecified(298),
  			 invalidVrrpControlValue(299),
			 invalidVrrpPriority(300),
			 invalidVrrpAdvertisementInterval(301),
			 maxNumOfVrrpsEntriesExceeded(302),
			 policyNetListEntryNotFound(303),
			 duplicatePolicyNetListEntry(304),
			 policyNetListIdNotFound(305),
                         filterOnAnEnabledPort(306),
                         listOnAnEnabledPort(307),
                         invalidIpFilterSrcOption(308),
                         invalidIpFilterDstOption(309),
                         invalidOspfAreaImportextOption(310),
                         invalidOspfInterfaceMd5KeyIdLength(311),
                         invalidOspfInterfaceMd5KeyLength(312),
                         invalidIPXNetworkNumber(313),
                         ipxCircuitAlreadyExists(314),
                         ipxCircuitDoesNotExist(315),
                         encapsulationIsNotAllowedOnSameSegment(316),
                         encapsulationDoesNotMatchProtocolBasedVLAN(317),
                         invalidDvmrpIfTblEnableValue(318),
                         invalidDvmrpIfTblMetricValue(319),
                         ipHostPartForSubnetAddrIsNonZero(320),
                         globalMulticastNotEnabled(321),
                         metricFieldIsCreatedButModified(322),
                         invalidIpMRouteInterfaceTblTtlValue(323),
                         invalidUdpPortNumber(324),
                         invalidUdpProtocolNameLength(325),
                         cannotModifyUdpProtocolName(326),
                         udpProtocolEntryDoesnotexists(327),
                         duplicateUdpProtocolEntry(328),
                         cannotDelUdpProtocolEntryFwdEntriesExists(329),
                         udpBroadcastIntfEntryDoesnotExists(330),
                         duplicateUdpBroadcastIntfEntry(331),
                         invalidUdpConfBroacastInterface(332),
                         updConfIntfEntryNotEnabledForUdpBcastForwarding(333),
                         udpPortFwdEntryDoesnotExists(334),
                         duplicateUdpPortFwdEntryDoesnotExists(335),
                         udpPortFwdEntryUdpPortInterfaceDoesnotExists(336),
                         udpPortFwdListEntryDoesnotExists(337),
                         duplicateUdpPortFwdListEntryDoesnotExists(338),
                         udpPortFwdListEntryPortFwdIdDoesnotExists(339),
                         udpPortFwdListEntryinvalidFwdIdListSize(340),
                         cannotDeleteUdpPortFwdListEntryInterfaceUsingThisList(341),
                         invalidIgmpSnoopDestAddress(342),
                         invalidIgmpSnoopHostAddress(343),
                         cannotDeleteDefaultUdpProtocolTblEntry(344),
                         rcSNMPStaticRouteNexthop(345),
                         dvmrpGlobInvalidUpdateInterval(346),
                         dvmrpGlobInvalidTriggerUpdateInterval(347),
                         dvmrpGlobInvalidLeafTimeout(348),
                         dvmrpGlobInvalidNbrTimeout(349),
                         dvmrpGlobInvalidNbrProbeInterval(350),
                         igmpIfInvalidQueryInterval(351),
                         igmpIfInvalidVersion(352),
                         igmpIfInvalidQueryMaxResponseTime(353),
                         igmpIfInvalidRobustness(354),
                         igmpIfInvalidLastMembQueryIntvl(355),
                         ipTosRuleInvalidAndMask(356),
                         ipTosRuleInvalidOrRule1(357),
                         ipTosRuleInvalidOrRule2(358),
                         ipTosRuleInvalidOrRule3(359),
                         igmpDeleteStaticPortNotValid(360),
                         igmpMaxEntriesAccTblExceeded(361),
                         igmpMaxHostMaskExceeded(362),
                         dvrmpOrIgmpAlreadyEnabled(363),
                         rcSnmpOspfInvalidAreaAggregateLsaType(364)


		      }
        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 }

rcLinkOscillation NOTIFICATION-TYPE
        OBJECTS          { rcPortIndex }
        STATUS             current
        DESCRIPTION   "A rcLinkOscillation trap signifies that the
                       SNMPv2 entity, acting in an agent role, has
                       detected an excessive number of link state
                       transitions on the specified port."
        ::= { rcTraps 8 }

-- Syslog Group
 
rcSyslogGlobal      OBJECT IDENTIFIER ::= { rcSyslog 1 }

rcSyslogGlobalEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable/disable sysLog."
	DEFVAL	      { true }
        ::= { rcSyslogGlobal 1 }

rcSyslogGlobalMaxHosts OBJECT-TYPE
        SYNTAX        INTEGER (0..10)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Maximun number of remote hosts considered 'active'
                       and able to receive messages from the Syslog service
                       on the router."
        DEFVAL        { 5 }
        ::= { rcSyslogGlobal 2 }

rcSyslogGlobalOperState OBJECT-TYPE
        SYNTAX        INTEGER {
                         active(1),
                         inactive(2),
                         emptyHostTbl(3),
                         allHostDisabled(4)
                      }
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "The operational state of the syslog service
                       on the router."
        DEFVAL        { active }
        ::= { rcSyslogGlobal 3 }

rcSyslogHostTbl OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcSyslogHostEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Table of remote host destinations for syslog."
        ::= { rcSyslog 2 }

rcSyslogHostEntry OBJECT-TYPE
        SYNTAX        RcSyslogHostEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing information for a particular
                       entry in rcSyslogHostTable."
        INDEX         { rcSyslogHostId }
        ::= { rcSyslogHostTbl 1 }

RcSyslogHostEntry ::= SEQUENCE {
                rcSyslogHostId                  INTEGER,
                rcSyslogHostIpAddr              IpAddress,
                rcSyslogHostUdpPort             INTEGER,
		rcSyslogHostFacility            INTEGER,	
		rcSyslogHostModuleId            INTEGER,
		rcSyslogHostModuleId2           INTEGER,
		rcSyslogHostSeverity            INTEGER,
		rcSyslogHostMapInfoSeverity     INTEGER,
		rcSyslogHostMapWarningSeverity  INTEGER,
		rcSyslogHostMapErrorSeverity    INTEGER,
		rcSyslogHostMapMfgSeverity      INTEGER,
		rcSyslogHostMapFatalSeverity    INTEGER,
		rcSyslogHostMapTraceMsg         INTEGER,
		rcSyslogHostMapTrapMsg          INTEGER,
		rcSyslogHostLogTraceMsgs        TruthValue,
		rcSyslogHostLogTrapMsgs         TruthValue,
		rcSyslogHostEnable              TruthValue,
                rcSyslogHostRowStatus           RowStatus
        }

rcSyslogHostId OBJECT-TYPE
        SYNTAX        INTEGER (1..10)
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "Host Id."
        ::= { rcSyslogHostEntry 1 }

rcSyslogHostIpAddr OBJECT-TYPE
        SYNTAX        IpAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Host Ip Address"
        ::= { rcSyslogHostEntry 2 }

rcSyslogHostUdpPort OBJECT-TYPE
        SYNTAX        INTEGER (514..530)
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the UDP port to use to send syslog 
                      messages to the host." 
        DEFVAL        { 514 }
        ::= { rcSyslogHostEntry 3 }

rcSyslogHostFacility OBJECT-TYPE
        SYNTAX        INTEGER {
                         local0(128),
                         local1(136),
                         local2(144),
                         local3(152),
                         local4(160),
                         local5(168),
                         local6(176),
                         local7(184)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the UNIX facility used in messages
 		      to the syslog host.  Default is LOCAL7."
        DEFVAL        { local7 }
        ::= { rcSyslogHostEntry 4 }
 
rcSyslogHostModuleId OBJECT-TYPE
        SYNTAX        INTEGER {
                         common         (1),      -- '00000001'H
                         snmp           (2),      -- '00000002'H
                         rmon           (4),      -- '00000004'H
                         portmgr        (8),      -- '00000008'H
                         chasmgr       (16),      -- '00000010'H
                         bridge        (32),      -- '00000020'H
                         ospf          (64),      -- '00000040'H
                         hwif         (128),      -- '00000080'H
                         sim          (256),      -- '00000100'H
                         cpp          (512),      -- '00000200'H
                         netdrv      (1024),      -- '00000400'H
                         vlanmgr     (2048),      -- '00000800'H
                         cli         (4096),      -- '00001000'H
                         main        (8192),      -- '00002000'H
                         p2ip       (16384),      -- '00004000'H
                         rcip       (32768),      -- '00008000'H
                         rompager   (65536),      -- '00010000'H
                         acif      (131072),      -- '00020000'H
                         gbip      (262144),      -- '00040000'H
                         wdt       (524288),      -- '00080000'H
                         tdp      (1048576),      -- '00100000'H
                         mandiag  (2097152),      -- '00200000'H
                         mantest  (4194304),      -- '00400000'H
                         igmp     (8388608),      -- '00800000'H
                         ipfil   (16777216),      -- '01000000'H
                         mlt     (33554432),      -- '02000000'H
                         ippolicy(67108864),      -- '04000000'H
                         ipmc   (134217728),      -- '08000000'H
                         syslog (268435456)       -- '10000000'H
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies for which modules/tasks syslog messages
		       should be sent.  Default is all modules/tasks."
        ::= { rcSyslogHostEntry 5 }

rcSyslogHostModuleId2 OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcSyslogHostEntry 6 }

rcSyslogHostSeverity OBJECT-TYPE
        SYNTAX        INTEGER {
                         info(1),
                         warning(2),
                         error(4),
                         mfg(8),
                         fatal(16)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the severity level for which syslog messages
		       should be sent for the modules specifies in 
                       'SyslogHostModule'."
        DEFVAL        { info }
        ::= { rcSyslogHostEntry 7 }

rcSyslogHostMapInfoSeverity OBJECT-TYPE
        SYNTAX        INTEGER {
                         emergency(1),
                         alert(2),
                         critical(3),
                         error(4),
                         warning(5),
                         notice(6),
                         info(7),
                         debug(8)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the syslog severity to use for Accelar
		       INFO messages.  Default is INFO."
        DEFVAL        { info }
        ::= { rcSyslogHostEntry 8 }

rcSyslogHostMapWarningSeverity OBJECT-TYPE
        SYNTAX        INTEGER {
                         emergency(1),
                         alert(2),
                         critical(3),
                         error(4),
                         warning(5),
                         notice(6),
                         info(7),
                         debug(8)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the syslog severity to use for Accelar
                       WARNING messages.  Default is WARNING.  Should be
                       <= INFO."
        DEFVAL        { warning }
        ::= { rcSyslogHostEntry 9 }

rcSyslogHostMapErrorSeverity OBJECT-TYPE
        SYNTAX        INTEGER {
                         emergency(1),
                         alert(2),
                         critical(3),
                         error(4),
                         warning(5),
                         notice(6),
                         info(7),
                         debug(8)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the syslog severity to use for Accelar
                       ERROR messages.  Default is ERROR.  Should be
		       <= WARNING."
        DEFVAL        { error }
        ::= { rcSyslogHostEntry 10 }

rcSyslogHostMapMfgSeverity OBJECT-TYPE
        SYNTAX        INTEGER {
                         emergency(1),
                         alert(2),
                         critical(3),
                         error(4),
                         warning(5),
                         notice(6),
                         info(7),
                         debug(8)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the syslog severity to use for Accelar
                       Manufactoring messages.  Dafault is ERROR."
        DEFVAL        { error }
        ::= { rcSyslogHostEntry 11 }

rcSyslogHostMapFatalSeverity OBJECT-TYPE
        SYNTAX        INTEGER {
                         emergency(1),
                         alert(2),
                         critical(3),
                         error(4),
                         warning(5),
                         notice(6),
                         info(7),
                         debug(8)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the syslog severity to use for Accelar
                       FATAL messages.  Default is EMERGENCY.  Should be
		       <= ERROR."
        DEFVAL        { emergency }
        ::= { rcSyslogHostEntry 12 }

rcSyslogHostMapTraceMsg OBJECT-TYPE
        SYNTAX        INTEGER {
                         emergency(1),
                         alert(2),
                         critical(3),
                         error(4),
                         warning(5),
                         notice(6),
                         info(7),
                         debug(8)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the syslog severity to use for syslog
		       trace messages.  Default is DEBUG."
        ::= { rcSyslogHostEntry 13 }

rcSyslogHostMapTrapMsg OBJECT-TYPE
        SYNTAX        INTEGER {
                         emergency(1),
                         alert(2),
                         critical(3),
                         error(4),
                         warning(5),
                         notice(6),
                         info(7),
                         debug(8)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specifies the UNIX severity code to use for syslog
		       messages for SNMP traps sent to the syslog host.
                       Default is INFO."
        ::= { rcSyslogHostEntry 14 }

rcSyslogHostLogTraceMsgs OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Indicate whether to activate the host to log the 
                       syslog trace messages."
        ::= { rcSyslogHostEntry 15 }

rcSyslogHostLogTrapMsgs OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Indicate whether to activate the host to log the
	               syslog messages for SNMP traps."
        ::= { rcSyslogHostEntry 16 }

rcSyslogHostEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable/Disable messages to be sent to syslog host."
        DEFVAL        { false }
        ::= { rcSyslogHostEntry 17 }

rcSyslogHostRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete entries in the rcSyslogTable."
        ::= { rcSyslogHostEntry 18 }


-- Diag Mirror by port Table

rcDiagMirrorByPortTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcDiagMirrorByPortEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Diag Mirror by port Table"
        ::= { rcDiag 1 }

rcDiagMirrorByPortEntry OBJECT-TYPE
        SYNTAX        RcDiagMirrorByPortEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing mirror by port infomation."
        INDEX         { rcDiagMirrorByPortId }
        ::= { rcDiagMirrorByPortTable 1 }

RcDiagMirrorByPortEntry ::= SEQUENCE {
                rcDiagMirrorByPortId            INTEGER,
                rcDiagMirrorByPortMirroredPort  InterfaceIndex,
                rcDiagMirrorByPortMirroringPort InterfaceIndex,
                rcDiagMirrorByPortMode          INTEGER,
                rcDiagMirrorByPortEnable        TruthValue,
                rcDiagMirrorByPortRowStatus     RowStatus
        }

rcDiagMirrorByPortId OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "entry id."
        ::= { rcDiagMirrorByPortEntry 1 }

rcDiagMirrorByPortMirroredPort OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "ingress port."
        ::= { rcDiagMirrorByPortEntry 2 }

rcDiagMirrorByPortMirroringPort OBJECT-TYPE
        SYNTAX        InterfaceIndex
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "egress port."
        ::= { rcDiagMirrorByPortEntry 3 }

rcDiagMirrorByPortMode OBJECT-TYPE
        SYNTAX        INTEGER {
                         tx(1),
                         rx(2),
                         both(3)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "mirror mode"
	DEFVAL	      { rx }
        ::= { rcDiagMirrorByPortEntry 4 }

rcDiagMirrorByPortEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable this entry."
	DEFVAL	      { true }
        ::= { rcDiagMirrorByPortEntry 5 }

rcDiagMirrorByPortRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete entries in the rcDiagMirrorByPortTable."
        ::= { rcDiagMirrorByPortEntry 6 }


-- Diag Port Conv Steering Table

rcDiagPortConvSteeringTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcDiagPortConvSteeringEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Diag Port Conv Steering Table"
        ::= { rcDiag 2 }

rcDiagPortConvSteeringEntry OBJECT-TYPE
        SYNTAX        RcDiagPortConvSteeringEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing infomation of Diag Port Conv Steering."
        INDEX         { rcDiagPortConvSteeringId }
        ::= { rcDiagPortConvSteeringTable 1 }

RcDiagPortConvSteeringEntry ::= SEQUENCE {
                rcDiagPortConvSteeringId           INTEGER,
                rcDiagPortConvSteeringPortOne      INTEGER,
                rcDiagPortConvSteeringPortTwo      INTEGER,
                rcDiagPortConvSteeringMode         INTEGER,
                rcDiagPortConvSteeringForwardPort  INTEGER,
                rcDiagPortConvSteeringEnable       TruthValue,
                rcDiagPortConvSteeringRowStatus    RowStatus
        }

rcDiagPortConvSteeringId OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "entry id."
        ::= { rcDiagPortConvSteeringEntry 1 }

rcDiagPortConvSteeringPortOne OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "ifIndex"
        ::= { rcDiagPortConvSteeringEntry 2 }

rcDiagPortConvSteeringPortTwo OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "ifIndex"
        ::= { rcDiagPortConvSteeringEntry 3 }

rcDiagPortConvSteeringMode OBJECT-TYPE
        SYNTAX        INTEGER {
                         oneToTwo(1),
                         twoToOne(2),
                         both(3)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcDiagPortConvSteeringEntry 4 }

rcDiagPortConvSteeringForwardPort OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "ifIndex"
        ::= { rcDiagPortConvSteeringEntry 5 }

rcDiagPortConvSteeringEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable this entry."
	DEFVAL	      { true }
        ::= { rcDiagPortConvSteeringEntry 6 }

rcDiagPortConvSteeringRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete entries in the rcDiagMirrorByPortTable."
        ::= { rcDiagPortConvSteeringEntry 7 }


-- Diag Mac Conv Steering Table

rcDiagMacConvSteeringTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcDiagMacConvSteeringEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Diag Mac Conv Steering Table"
        ::= { rcDiag 3 }

rcDiagMacConvSteeringEntry OBJECT-TYPE
        SYNTAX        RcDiagMacConvSteeringEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "Entry containing infomation of Diag Mac Conv Steering."
        INDEX         { rcDiagMacConvSteeringId }
        ::= { rcDiagMacConvSteeringTable 1 }

RcDiagMacConvSteeringEntry ::= SEQUENCE {
                rcDiagMacConvSteeringId          INTEGER,
                rcDiagMacConvSteeringSrcMac      MacAddress,
                rcDiagMacConvSteeringDstMac      MacAddress,
                rcDiagMacConvSteeringInPort      INTEGER,
                rcDiagMacConvSteeringForwardPort INTEGER,
                rcDiagMacConvSteeringEnable      TruthValue,
                rcDiagMacConvSteeringRowStatus   RowStatus
        }

rcDiagMacConvSteeringId OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "entry id."
        ::= { rcDiagMacConvSteeringEntry 1 }

rcDiagMacConvSteeringSrcMac OBJECT-TYPE
        SYNTAX        MacAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "source Mac"
        ::= { rcDiagMacConvSteeringEntry 2 }

rcDiagMacConvSteeringDstMac OBJECT-TYPE
        SYNTAX        MacAddress
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "dest Mac"
        ::= { rcDiagMacConvSteeringEntry 3 }

rcDiagMacConvSteeringInPort OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "ifIndex"
        ::= { rcDiagMacConvSteeringEntry 4 }

rcDiagMacConvSteeringForwardPort OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "ifIndex"
        ::= { rcDiagMacConvSteeringEntry 5 }

rcDiagMacConvSteeringEnable OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Enable this entry."
	DEFVAL	      { true }
        ::= { rcDiagMacConvSteeringEntry 6 }

rcDiagMacConvSteeringRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete entries in the rcDiagMirrorByPortTable."
        ::= { rcDiagMacConvSteeringEntry 7 }


rcDiagSaveConfig OBJECT-TYPE
        SYNTAX        TruthValue
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "save config info."
        ::= { rcDiag 10 }

rcDiagMirrorByPortTblSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "table size."
        ::= { rcDiag 11 }

rcDiagPortConvSteeringTblSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "table size."
        ::= { rcDiag 12 }

rcDiagMacConvSteeringTblSize OBJECT-TYPE
        SYNTAX        INTEGER
        ACCESS        read-only
        STATUS        mandatory
        DESCRIPTION   "table size."
        ::= { rcDiag 13 }

-- RCIPX
-- IPX 
-- IPX Routing Enable

rcIpxRoutingEnable OBJECT-TYPE
   	SYNTAX        TruthValue
  	ACCESS        read-write
  	STATUS        mandatory
	DESCRIPTION   "Global Ipx Routing control variable"
	DEFVAL { false }
	::= { rcIpx 1 }

-- IPX Address Table

rcIpxAddrTable OBJECT-TYPE
        SYNTAX        SEQUENCE OF RcIpxAddrEntry
        ACCESS        not-accessible
        STATUS        mandatory
        DESCRIPTION   "The table of addressing information relevant to
                      this entity's IPX addresses.  This table is used
                      for associating IfIndex and IPX network number."
	::= { rcIpx 2 }

rcIpxAddrEntry OBJECT-TYPE
	SYNTAX        RcIpxAddrEntry
	ACCESS 	      not-accessible
	STATUS 	      mandatory
	DESCRIPTION   "The addressing information for one of this
                      entity's IP addresses."
	INDEX         { rcIpxAddrVlanId, rcIpxAddrNetAddr, rcIpxAddrEncap }
	::= { rcIpxAddrTable 1 }

RcIpxAddrEntry ::=
    	SEQUENCE {
           	rcIpxAddrVlanId          INTEGER,
	        rcIpxAddrNetAddr         OCTET STRING (SIZE(4)),
            rcIpxAddrEncap           INTEGER,
           	rcIpxAddrEntryStatus RowStatus
    	}

rcIpxAddrVlanId OBJECT-TYPE
   	SYNTAX        INTEGER (1..4094)
  	ACCESS        read-write
  	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."
	::= { rcIpxAddrEntry 1 }

rcIpxAddrNetAddr       OBJECT-TYPE
        SYNTAX         OCTET STRING (SIZE(4))
        ACCESS         read-write
        STATUS         mandatory
        DESCRIPTION    "IPX Network address."
        ::= { rcIpxAddrEntry 2 }

rcIpxAddrEntryStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to create/delete entries in the rcIpxAddrEntry."
        ::= { rcIpxAddrEntry 4 }

rcIpxAddrEncap OBJECT-TYPE  
        SYNTAX        INTEGER {
                         none(0),
                         ethernetii(1),
                         snap(2),
                         llc(3),
                         raw(4)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Specify IPX encapsulation format.  It is relevent
                       if the VLAN is port based.  But it's always nice to have it."
        DEFVAL { none }
        ::= { rcIpxAddrEntry 3 }

-- RCIPX

END

