START-MIB DEFINITIONS ::= BEGIN

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

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



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

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

END
          RFC1213-MIB DEFINITIONS ::= BEGIN

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

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


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

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

          -- textual conventions

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

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


          -- groups in MIB-II

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

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

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

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

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

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

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

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

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

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

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


          -- the System group

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

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

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

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

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

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

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

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

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

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

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

          -- the Interfaces group

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

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


          -- the Interfaces table

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- the Address Translation group

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

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

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

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

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

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

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

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

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

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


          -- the IP group

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          -- the IP address table

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

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

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

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

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

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

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

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

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

          -- the IP routing table

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- the IP Address Translation table

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

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

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

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

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

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

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

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

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


          -- additional IP objects

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


          -- the ICMP group

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- the TCP group

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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


          -- the TCP Connection table

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

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

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

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

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

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

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

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

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

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

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

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


          -- additional TCP objects

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

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


          -- the UDP group

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

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

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

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

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


          -- the UDP Listener table

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

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

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

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

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

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


          -- the EGP group

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

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

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

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

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


          -- the EGP Neighbor table

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- additional EGP objects

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

          -- the Transmission group

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

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

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


          -- the SNMP group

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

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

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

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

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

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

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

          -- { snmp 7 } is not used

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          -- { snmp 23 } is not used

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

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

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

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

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

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

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

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

          END
     RFC1253-MIB DEFINITIONS ::= BEGIN

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

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

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

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

             AreaID ::= IpAddress

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

             RouterID ::= IpAddress

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

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

     --  Boolean Values

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

     --  Status Values

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

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

     --  Time Durations measured in seconds

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

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

             InterfaceIndex ::= INTEGER

     --  Potential Priorities for the Designated Router Election

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

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

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

     --  The remaining values are left for future definition.

             TOSType ::= INTEGER (0..31)

     --  OSPF General Variables

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

     ospfGeneralGroup OBJECT IDENTIFIER ::= { ospf 1 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


     --  OSPF Area Default Metric Table

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

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

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

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

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

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

         ::= { ospfStubAreaEntry 2 }

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

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


     --  OSPF Link State Database

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

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

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

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

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

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

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

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

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

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

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

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

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


     --  Address Range Table

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

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

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

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

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

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

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

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


     --  OSPF Host Table

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

     ospfIfAuthKey OBJECT-TYPE
         SYNTAX   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"
         ::= { ospfIfEntry 16 }


     --  OSPF Interface Metric Table

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

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

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

     --      Metric = 10^8 / ifSpeed

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

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

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

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

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

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

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

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

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

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

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

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


     --  OSPF Virtual Interface Table

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


     --  OSPF Neighbor Table

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


     --  OSPF Virtual Neighbor Table

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

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

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

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

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

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

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

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

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

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

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

     END
          RFC1271-MIB DEFINITIONS ::= BEGIN

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

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


          --  Remote Network Monitoring MIB

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


              -- textual conventions

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


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

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


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


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

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

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

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

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

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

                  The statistics in this group reflect all packets
                  on the local network segment attached to the
                  identified interface.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- The History Group

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

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

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

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

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

          historyControlDataSource OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "This object identifies the source of the data for
                  which historical data was collected and
                  placed in a media-specific table on behalf of this
                  historyControlEntry.  This source can be any
                  interface on this device.  In order to identify
                  a particular interface, this object shall identify
                  the instance of the ifIndex object, defined
                  in [4,6], for the desired interface.  For example,
                  if an entry were to receive data from interface #1,
                  this object would be set to ifIndex.1.

                  The statistics in this group reflect all packets
                  on the local network segment attached to the
                  identified interface.

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

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

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

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

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

                  There will be times when the actual number of
                  buckets associated with this entry is less than
                  the value of this object.  In this case, at the
                  end of each sampling interval, a new bucket will
                  be added to the media-specific table.

                  When the number of buckets reaches the value of
                  this object and a new bucket is to be added to the
                  media-specific table, the oldest bucket associated
                  with this historyControlEntry shall be deleted by
                  the agent so that the new bucket can be added.

                  When the value of this object changes to a value less
                  than the current value, entries are deleted
                  from the media-specific table associated with this
                  historyControlEntry.  Enough of the oldest of these
                  entries shall be deleted by the agent so that their
                  number remains less than or equal to the new value of
                  this object.

                  When the value of this object changes to a value
                  greater than the current value, the number of
                  associated media-specific entries may be allowed
                  to grow."
              ::= { historyControlEntry 4 }

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

                  Because the counters in a bucket may overflow at their
                  maximum value with no indication, a prudent manager
                  will take into account the possibility of overflow
                  in any of the associated counters.  It is important
                  to consider the minimum time in which any counter
                  could overflow on a particular media type and set
                  the historyControlInterval object to a value less
                  than this interval.  This is typically most
                  important for the 'octets' counter in any
                  media-specific table.  For example, on an Ethernet
                  network, the etherHistoryOctets counter could overflow
                  in about one hour at the Ethernet's maximum
                  utilization.

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

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

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

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


          -- Ether History table

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

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

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

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

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

          etherHistoryIntervalStart OBJECT-TYPE
              SYNTAX TimeTicks
              ACCESS read-only
              STATUS mandatory
              DESCRIPTION
                  "The value of sysUpTime at the start of the interval
                  over which this sample was measured.  If the probe
                  keeps track of the time of day, it should start
                  the first sample of the history at a time such that
                  when the next hour of the day begins, a sample is
                  started at that instant.  Note that following this
                  rule may require the probe to delay collecting the
                  first sample of the history, as each sample must be
                  of the same interval.  Also note that the sample which
                  is currently being collected is not accessible in this
                  table until the end of its interval."
              ::= { etherHistoryEntry 3 }

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

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

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

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

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

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

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

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

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

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

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

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


          -- The Alarm Group

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

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

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

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

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

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

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

          alarmVariable OBJECT-TYPE
              SYNTAX OBJECT IDENTIFIER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The object identifier of the particular variable to
                  be sampled.  Only variables that resolve to an ASN.1
                  primitive type of INTEGER (INTEGER, Counter, Gauge,
                  or TimeTicks) may be sampled.

                  Because SNMP access control is articulated entirely
                  in terms of the contents of MIB views, no access
                  control mechanism exists that can restrict the value of
                  this object to identify only those objects that exist
                  in a particular MIB view.  Because there is thus no
                  acceptable means of restricting the read access that
                  could be obtained through the alarm mechanism, the
                  probe must only grant write access to this object in
                  those views that have read access to all objects on
                  the probe.

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

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

          alarmSampleType OBJECT-TYPE
              SYNTAX INTEGER {
                  absoluteValue(1),
                  deltaValue(2)
              }
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The method of sampling the selected variable and
                  calculating the value to be compared against the
                  thresholds.  If the value of this object is
                  absoluteValue(1), the value of the selected variable
                  will be compared directly with the thresholds at the
                  end of the sampling interval.  If the value of this
                  object is deltaValue(2), the value of the selected
                  variable at the last sample will be subtracted from
                  the current value, and the difference compared with
                  the thresholds.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- The Host Group

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

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

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

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

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

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


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

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

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

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

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

                  The statistics in this group reflect all packets
                  on the local network segment attached to the
                  identified interface.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- host Time Table

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- The Host Top "N" Group

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

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

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

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

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

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

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

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

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

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

          hostTopNTimeRemaining OBJECT-TYPE
              SYNTAX INTEGER
              ACCESS read-write
              STATUS mandatory
              DESCRIPTION
                  "The number of seconds left in the report currently
                  being collected.  When this object is modified by
                  the management station, a new collection is started,
                  possibly aborting a currently running report.  The
                  new value is used as the requested duration of this
                  report, which is loaded into the associated
                  hostTopNDuration object.

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

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

                  When the associated hostTopNTimeRemaining object is
                  set, this object shall be set by the probe to the
                  same value and shall not be modified until the next
                  time the hostTopNTimeRemaining is set.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- The Matrix Group

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

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

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

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

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

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

                  The statistics in this group reflect all packets
                  on the local network segment attached to the
                  identified interface.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- Traffic matrix tables from destination to source

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

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

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

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

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

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

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

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

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


          -- The Filter Group

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  The following two rules are then applied to every
                  packet:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- The Packet Capture Group

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

                  When the value of this object changes to a value less
                  than the current value, entries are deleted from
                  the captureBufferTable associated with this
                  bufferControlEntry.  Enough of the
                  oldest of these captureBufferEntries shall be
                  deleted by the agent so that the number of octets
                  used remains less than or equal to the new value of
                  this object.

                  When the value of this object changes to a value greater
                  than the current value, the number of associated
                  captureBufferEntries may be allowed to grow."
              ::= { bufferControlEntry 9 }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


          -- The Event Group

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

          END
	RFC1271-TRAPS

	DEFINITIONS ::= BEGIN

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

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

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

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

   RFC1389-MIB DEFINITIONS ::= BEGIN

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

   --  RIP-2 Management Information Base

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

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

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

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


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

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

   rip2GlobalGroup OBJECT IDENTIFIER ::= { rip2 1 }


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


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


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

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

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

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


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

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


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


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


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

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


   -- The RIP Interface Configuration Table.


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

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


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

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


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


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


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

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

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


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


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


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

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


   --  Peer Table

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

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

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

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


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


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


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


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


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


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


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


   END
          BRIDGE-MIB DEFINITIONS ::= BEGIN

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

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

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


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

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

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

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


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

          dot1dBase     OBJECT IDENTIFIER ::= { dot1dBridge 1 }

          dot1dStp      OBJECT IDENTIFIER ::= { dot1dBridge 2 }

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

          dot1dTp       OBJECT IDENTIFIER ::= { dot1dBridge 4 }

          dot1dStatic   OBJECT IDENTIFIER ::= { dot1dBridge 5 }


          -- the dot1dBase group

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

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

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

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

          -- The Generic Bridge Port Table

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

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


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

          dot1dBasePort OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port for which this entry
                      contains bridge management information."
              ::= { dot1dBasePortEntry 1 }

          dot1dBasePortIfIndex OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The value of the instance of the ifIndex object,
                      defined in MIB-II, for the interface corresponding
                      to this port."
              ::= { dot1dBasePortEntry 2 }

          dot1dBasePortCircuit OBJECT-TYPE
              SYNTAX  OBJECT IDENTIFIER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "For a port which (potentially) has the same value
                      of dot1dBasePortIfIndex as another port on the
                      same bridge, this object contains the name of an
                      object instance unique to this port.  For example,
                      in the case where multiple ports correspond one-
                      to-one with multiple X.25 virtual circuits, this
                      value might identify an (e.g., the first) object
                      instance associated with the X.25 virtual circuit
                      corresponding to this port.

                      For a port which has a unique value of
                      dot1dBasePortIfIndex, this object can have the
                      value { 0 0 }."
              ::= { dot1dBasePortEntry 3 }

          dot1dBasePortDelayExceededDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames discarded by this port due
                      to excessive transit delay through the bridge.  It
                      is incremented by both transparent and source
                      route bridges."
              REFERENCE
                       "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dBasePortEntry 4 }

          dot1dBasePortMtuExceededDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames discarded by this port due
                      to an excessive size.  It is incremented by both
                      transparent and source route bridges."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dBasePortEntry 5 }


          -- the dot1dStp group

          -- Implementation of the dot1dStp group is optional.  It is
          -- implemented by those bridges that support the Spanning Tree
          -- Protocol.


          dot1dStpProtocolSpecification OBJECT-TYPE
              SYNTAX  INTEGER {
                          unknown(1),
                          decLb100(2),
                          ieee8021d(3)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "An indication of what version of the Spanning
                      Tree Protocol is being run.  The value
                      'decLb100(2)' indicates the DEC LANbridge 100
                      Spanning Tree protocol.  IEEE 802.1d
                      implementations will return 'ieee8021d(3)'.  If
                      future versions of the IEEE Spanning Tree Protocol
                      are released that are incompatible with the
                      current version a new value will be defined."
              ::= { dot1dStp 1 }

          dot1dStpPriority OBJECT-TYPE
              SYNTAX  INTEGER (0..65535)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value of the write-able portion of the Bridge
                      ID, i.e., the first two octets of the (8 octet
                      long) Bridge ID.  The other (last) 6 octets of the
                      Bridge ID are given by the value of
                      dot1dBaseBridgeAddress."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.7"
              ::= { dot1dStp 2 }

          dot1dStpTimeSinceTopologyChange OBJECT-TYPE
              SYNTAX  TimeTicks
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The time (in hundredths of a second) since the
                      last time a topology change was detected by the
                      bridge entity."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.8.1.1.3"
              ::= { dot1dStp 3 }

          dot1dStpTopChanges OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of topology changes detected by
                      this bridge since the management entity was last
                      reset or initialized."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.8.1.1.3"
              ::= { dot1dStp 4 }

          dot1dStpDesignatedRoot OBJECT-TYPE
              SYNTAX  BridgeId
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The bridge identifier of the root of the spanning
                      tree as determined by the Spanning Tree Protocol
                      as executed by this node.  This value is used as
                      the Root Identifier parameter in all Configuration
                      Bridge PDUs originated by this node."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.1"
              ::= { dot1dStp 5 }

          dot1dStpRootCost OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The cost of the path to the root as seen from
                      this bridge."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.2"
              ::= { dot1dStp 6 }

          dot1dStpRootPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port which offers the
                      lowest cost path from this bridge to the root
                      bridge."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.3"
              ::= { dot1dStp 7 }

          dot1dStpMaxAge OBJECT-TYPE
              SYNTAX  Timeout
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The maximum age of Spanning Tree Protocol
                      information learned from the network on any port
                      before it is discarded, in units of hundredths of
                      a second.  This is the actual value that this
                      bridge is currently using."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.4"
              ::= { dot1dStp 8 }

          dot1dStpHelloTime OBJECT-TYPE
              SYNTAX  Timeout
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The amount of time between the transmission of
                      Configuration bridge PDUs by this node on any port
                      when it is the root of the spanning tree or trying
                      to become so, in units of hundredths of a second.
                      This is the actual value that this bridge is
                      currently using."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.5"
              ::= { dot1dStp 9 }

          dot1dStpHoldTime OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This time value determines the interval length
                      during which no more than two Configuration bridge
                      PDUs shall be transmitted by this node, in units
                      of hundredths of a second."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.14"
              ::= { dot1dStp 10 }

          dot1dStpForwardDelay OBJECT-TYPE
              SYNTAX  Timeout
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "This time value, measured in units of hundredths
                      of a second, controls how fast a port changes its
                      spanning state when moving towards the Forwarding
                      state.  The value determines how long the port
                      stays in each of the Listening and Learning
                      states, which precede the Forwarding state.  This
                      value is also used, when a topology change has
                      been detected and is underway, to age all dynamic
                      entries in the Forwarding Database.  [Note that
                      this value is the one that this bridge is
                      currently using, in contrast to
                      dot1dStpBridgeForwardDelay which is the value that
                      this bridge and all others would start using
                      if/when this bridge were to become the root.]"
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.6"
              ::= { dot1dStp 11 }

          dot1dStpBridgeMaxAge OBJECT-TYPE
              SYNTAX  Timeout (600..4000)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value that all bridges use for MaxAge when
                      this bridge is acting as the root.  Note that
                      802.1D-1990 specifies that the range for this
                      parameter is related to the value of
                      dot1dStpBridgeHelloTime. The granularity of this
                      timer is specified by 802.1D-1990 to be 1 second.
                      An agent may return a badValue error if a set is
                      attempted to a value which is not a whole number
                      of seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.8"
              ::= { dot1dStp 12 }

          dot1dStpBridgeHelloTime OBJECT-TYPE
              SYNTAX  Timeout (100..1000)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value that all bridges use for HelloTime when
                      this bridge is acting as the root.  The
                      granularity of this timer is specified by 802.1D-
                      1990 to be 1 second.  An agent may return a
                      badValue error if a set is attempted to a value
                      which is not a whole number of seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.9"
              ::= { dot1dStp 13 }

          dot1dStpBridgeForwardDelay OBJECT-TYPE
              SYNTAX  Timeout (400..3000)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value that all bridges use for ForwardDelay
                      when this bridge is acting as the root.  Note that
                      802.1D-1990 specifies that the range for this
                      parameter is related to the value of
                      dot1dStpBridgeMaxAge.  The granularity of this
                      timer is specified by 802.1D-1990 to be 1 second.
                      An agent may return a badValue error if a set is
                      attempted to a value which is not a whole number
                      of seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.3.10"
              ::= { dot1dStp 14 }
          -- The Spanning Tree Port Table

          dot1dStpPortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Dot1dStpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains port-specific information
                      for the Spanning Tree Protocol."
              ::= { dot1dStp 15 }

          dot1dStpPortEntry OBJECT-TYPE
              SYNTAX  Dot1dStpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of information maintained by every port
                      about the Spanning Tree Protocol state for that
                      port."
              INDEX   { dot1dStpPort }
              ::= { dot1dStpPortTable 1 }

          Dot1dStpPortEntry ::=
              SEQUENCE {
                  dot1dStpPort
                      INTEGER,
                  dot1dStpPortPriority
                      INTEGER,
                  dot1dStpPortState
                      INTEGER,
                  dot1dStpPortEnable
                      INTEGER,
                  dot1dStpPortPathCost
                      INTEGER,
                  dot1dStpPortDesignatedRoot
                      BridgeId,
                  dot1dStpPortDesignatedCost
                      INTEGER,
                  dot1dStpPortDesignatedBridge
                      BridgeId,
                  dot1dStpPortDesignatedPort
                      OCTET STRING,
                  dot1dStpPortForwardTransitions
                      Counter
              }

          dot1dStpPort OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port for which this entry
                      contains Spanning Tree Protocol management
                      information."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.8.2.1.2"
              ::= { dot1dStpPortEntry 1 }

          dot1dStpPortPriority OBJECT-TYPE
              SYNTAX  INTEGER (0..255)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The value of the priority field which is
                      contained in the first (in network byte order)
                      octet of the (2 octet long) Port ID.  The other
                      octet of the Port ID is given by the value of
                      dot1dStpPort."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.1"
              ::= { dot1dStpPortEntry 2 }

          dot1dStpPortState OBJECT-TYPE
              SYNTAX  INTEGER {
                          disabled(1),
                          blocking(2),
                          listening(3),
                          learning(4),
                          forwarding(5),
                          broken(6)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port's current state as defined by
                      application of the Spanning Tree Protocol.  This
                      state controls what action a port takes on
                      reception of a frame.  If the bridge has detected
                      a port that is malfunctioning it will place that
                      port into the broken(6) state.  For ports which
                      are disabled (see dot1dStpPortEnable), this object
                      will have a value of disabled(1)."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.2"
              ::= { dot1dStpPortEntry 3 }

          dot1dStpPortEnable OBJECT-TYPE
              SYNTAX  INTEGER {
                          enabled(1),
                          disabled(2)
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The enabled/disabled status of the port."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.2"
              ::= { dot1dStpPortEntry 4 }

          dot1dStpPortPathCost OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The contribution of this port to the path cost of
                      paths towards the spanning tree root which include
                      this port.  802.1D-1990 recommends that the
                      default value of this parameter be in inverse
                      proportion to the speed of the attached LAN."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.3"
              ::= { dot1dStpPortEntry 5 }

          dot1dStpPortDesignatedRoot OBJECT-TYPE
              SYNTAX  BridgeId
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The unique Bridge Identifier of the Bridge
                      recorded as the Root in the Configuration BPDUs
                      transmitted by the Designated Bridge for the
                      segment to which the port is attached."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.4"
              ::= { dot1dStpPortEntry 6 }

          dot1dStpPortDesignatedCost OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The path cost of the Designated Port of the
                      segment connected to this port.  This value is
                      compared to the Root Path Cost field in received
                      bridge PDUs."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.5"
              ::= { dot1dStpPortEntry 7 }

          dot1dStpPortDesignatedBridge OBJECT-TYPE
              SYNTAX  BridgeId
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The Bridge Identifier of the bridge which this
                      port considers to be the Designated Bridge for
                      this port's segment."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.6"
              ::= { dot1dStpPortEntry 8 }

          dot1dStpPortDesignatedPort OBJECT-TYPE
              SYNTAX  OCTET STRING (SIZE (2))
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The Port Identifier of the port on the Designated
                      Bridge for this port's segment."
              REFERENCE
                      "IEEE 802.1D-1990: Section 4.5.5.7"
              ::= { dot1dStpPortEntry 9 }

          dot1dStpPortForwardTransitions OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of times this port has transitioned
                      from the Learning state to the Forwarding state."
              ::= { dot1dStpPortEntry 10 }


          -- the dot1dTp group

          -- Implementation of the dot1dTp group is optional.  It is
          -- implemented by those bridges that support the transparent
          -- bridging mode.  A transparent or SRT bridge will implement
          -- this group.


          dot1dTpLearnedEntryDiscards OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The total number of Forwarding Database entries,
                      which have been or would have been learnt, but
                      have been discarded due to a lack of space to
                      store them in the Forwarding Database.  If this
                      counter is increasing, it indicates that the
                      Forwarding Database is regularly becoming full (a
                      condition which has unpleasant performance effects
                      on the subnetwork).  If this counter has a
                      significant value but is not presently increasing,
                      it indicates that the problem has been occurring
                      but is not persistent."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.1.1.3"
              ::= { dot1dTp 1 }

          dot1dTpAgingTime OBJECT-TYPE
              SYNTAX   INTEGER (10..1000000)
              ACCESS   read-write
              STATUS   mandatory
              DESCRIPTION
                      "The timeout period in seconds for aging out
                      dynamically learned forwarding information.
                      802.1D-1990 recommends a default of 300 seconds."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.1.1.3"
              ::= { dot1dTp 2 }


          --  The Forwarding Database for Transparent Bridges

          dot1dTpFdbTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Dot1dTpFdbEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains information about unicast
                      entries for which the bridge has forwarding and/or
                      filtering information.  This information is used
                      by the transparent bridging function in
                      determining how to propagate a received frame."
              ::= { dot1dTp 3 }

          dot1dTpFdbEntry OBJECT-TYPE
              SYNTAX  Dot1dTpFdbEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Information about a specific unicast MAC address
                      for which the bridge has some forwarding and/or
                      filtering information."
              INDEX   { dot1dTpFdbAddress }
              ::= { dot1dTpFdbTable 1 }

          Dot1dTpFdbEntry ::=
              SEQUENCE {
                  dot1dTpFdbAddress
                      MacAddress,
                  dot1dTpFdbPort
                      INTEGER,
                  dot1dTpFdbStatus
                      INTEGER
              }

          dot1dTpFdbAddress OBJECT-TYPE
              SYNTAX  MacAddress
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "A unicast MAC address for which the bridge has
                      forwarding and/or filtering information."
              REFERENCE
                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
              ::= { dot1dTpFdbEntry 1 }

          dot1dTpFdbPort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "Either the value '0', or the port number of the
                      port on which a frame having a source address
                      equal to the value of the corresponding instance
                      of dot1dTpFdbAddress has been seen.  A value of
                      '0' indicates that the port number has not been
                      learned but that the bridge does have some
                      forwarding/filtering information about this
                      address (e.g. in the dot1dStaticTable).
                      Implementors are encouraged to assign the port
                      value to this object whenever it is learned even
                      for addresses for which the corresponding value of
                      dot1dTpFdbStatus is not learned(3)."
              ::= { dot1dTpFdbEntry 2 }

          dot1dTpFdbStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),
                          invalid(2),
                          learned(3),
                          self(4),
                          mgmt(5)
                      }
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The status of this entry.  The meanings of the
                      values are:

                        other(1)   : none of the following.  This would
                                     include the case where some other
                                     MIB object (not the corresponding
                                     instance of dot1dTpFdbPort, nor an
                                     entry in the dot1dStaticTable) is
                                     being used to determine if and how
                                     frames addressed to the value of
                                     the corresponding instance of
                                     dot1dTpFdbAddress are being
                                     forwarded.

                        invalid(2) : this entry is not longer valid
                                     (e.g., it was learned but has since
                                     aged-out), but has not yet been
                                     flushed from the table.

                        learned(3) : the value of the corresponding
                                     instance of dot1dTpFdbPort was
                                     learned, and is being used.

                        self(4)    : the value of the corresponding
                                     instance of dot1dTpFdbAddress
                                     represents one of the bridge's
                                     addresses.  The corresponding
                                     instance of dot1dTpFdbPort
                                     indicates which of the bridge's
                                     ports has this address.

                        mgmt(5)    : the value of the corresponding
                                     instance of dot1dTpFdbAddress is
                                     also the value of an existing
                                     instance of dot1dStaticAddress."
              ::= { dot1dTpFdbEntry 3 }
          --  Port Table for Transparent Bridges

          dot1dTpPortTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Dot1dTpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table that contains information about every
                      port that is associated with this transparent
                      bridge."
              ::= { dot1dTp 4 }

          dot1dTpPortEntry OBJECT-TYPE
              SYNTAX  Dot1dTpPortEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A list of information for each port of a
                      transparent bridge."
              INDEX   { dot1dTpPort }
              ::= { dot1dTpPortTable 1 }

          Dot1dTpPortEntry ::=
              SEQUENCE {
                  dot1dTpPort
                      INTEGER,
                  dot1dTpPortMaxInfo
                      INTEGER,
                  dot1dTpPortInFrames
                      Counter,
                  dot1dTpPortOutFrames
                      Counter,
                  dot1dTpPortInDiscards
                      Counter
              }

          dot1dTpPort OBJECT-TYPE
              SYNTAX  INTEGER (1..65535)
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The port number of the port for which this entry
                      contains Transparent bridging management
                      information."
              ::= { dot1dTpPortEntry 1 }

          -- It would be nice if we could use ifMtu as the size of the
          -- largest INFO field, but we can't because ifMtu is defined
          -- to be the size that the (inter-)network layer can use which
          -- can differ from the MAC layer (especially if several layers
          -- of encapsulation are used).

          dot1dTpPortMaxInfo OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The maximum size of the INFO (non-MAC) field that
                      this port will receive or transmit."
              ::= { dot1dTpPortEntry 2 }

          dot1dTpPortInFrames OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames that have been received by
                      this port from its segment. Note that a frame
                      received on the interface corresponding to this
                      port is only counted by this object if and only if
                      it is for a protocol being processed by the local
                      bridging function, including bridge management
                      frames."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dTpPortEntry 3 }

          dot1dTpPortOutFrames OBJECT-TYPE
              SYNTAX  Counter
              ACCESS  read-only
              STATUS  mandatory
              DESCRIPTION
                      "The number of frames that have been transmitted
                      by this port to its segment.  Note that a frame
                      transmitted on the interface corresponding to this
                      port is only counted by this object if and only if
                      it is for a protocol being processed by the local
                      bridging function, including bridge management
                      frames."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dTpPortEntry 4 }

          dot1dTpPortInDiscards OBJECT-TYPE
              SYNTAX   Counter
              ACCESS   read-only
              STATUS   mandatory
              DESCRIPTION
                      "Count of valid frames received which were
                      discarded (i.e., filtered) by the Forwarding
                      Process."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.6.1.1.3"
              ::= { dot1dTpPortEntry 5 }


          -- The Static (Destination-Address Filtering) Database

          -- Implementation of this group is optional.


          dot1dStaticTable OBJECT-TYPE
              SYNTAX  SEQUENCE OF Dot1dStaticEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "A table containing filtering information
                      configured into the bridge by (local or network)
                      management specifying the set of ports to which
                      frames received from specific ports and containing
                      specific destination addresses are allowed to be
                      forwarded.  The value of zero in this table as the
                      port number from which frames with a specific
                      destination address are received, is used to
                      specify all ports for which there is no specific
                      entry in this table for that particular
                      destination address.  Entries are valid for
                      unicast and for group/broadcast addresses."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.2"
              ::= { dot1dStatic 1 }

          dot1dStaticEntry OBJECT-TYPE
              SYNTAX  Dot1dStaticEntry
              ACCESS  not-accessible
              STATUS  mandatory
              DESCRIPTION
                      "Filtering information configured into the bridge
                      by (local or network) management specifying the
                      set of ports to which frames received from a
                      specific port and containing a specific
                      destination address are allowed to be forwarded."
              REFERENCE
                      "IEEE 802.1D-1990: Section 6.7.2"
              INDEX   { dot1dStaticAddress, dot1dStaticReceivePort }
              ::= { dot1dStaticTable 1 }

          Dot1dStaticEntry ::=
              SEQUENCE {
                  dot1dStaticAddress
                      MacAddress,
                  dot1dStaticReceivePort
                      INTEGER,
                  dot1dStaticAllowedToGoTo
                      OCTET STRING,
                  dot1dStaticStatus
                      INTEGER
              }

          dot1dStaticAddress OBJECT-TYPE
              SYNTAX  MacAddress
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The destination MAC address in a frame to which
                      this entry's filtering information applies.  This
                      object can take the value of a unicast address, a
                      group address or the broadcast address."
              REFERENCE
                      "IEEE 802.1D-1990: Section 3.9.1, 3.9.2"
              ::= { dot1dStaticEntry 1 }

          dot1dStaticReceivePort OBJECT-TYPE
              SYNTAX  INTEGER
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "Either the value '0', or the port number of the
                      port from which a frame must be received in order
                      for this entry's filtering information to apply.
                      A value of zero indicates that this entry applies
                      on all ports of the bridge for which there is no
                      other applicable entry."
              ::= { dot1dStaticEntry 2 }

          dot1dStaticAllowedToGoTo OBJECT-TYPE
              SYNTAX  OCTET STRING
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "The set of ports to which frames received from a
                      specific port and destined for a specific MAC
                      address, are allowed to be forwarded.  Each octet
                      within the value of this object specifies a set of
                      eight ports, with the first octet specifying ports
                      1 through 8, the second octet specifying ports 9
                      through 16, etc.  Within each octet, the most
                      significant bit represents the lowest numbered
                      port, and the least significant bit represents the
                      highest numbered port.  Thus, each port of the
                      bridge is represented by a single bit within the
                      value of this object.  If that bit has a value of
                      '1' then that port is included in the set of
                      ports; the port is not included if its bit has a
                      value of '0'.  (Note that the setting of the bit
                      corresponding to the port from which a frame is
                      received is irrelevant.)  The default value of
                      this object is a string of ones of appropriate
                      length."
              ::= { dot1dStaticEntry 3 }

          dot1dStaticStatus OBJECT-TYPE
              SYNTAX  INTEGER {
                          other(1),
                          invalid(2),
                          permanent(3),
                          deleteOnReset(4),
                          deleteOnTimeout(5)
                      }
              ACCESS  read-write
              STATUS  mandatory
              DESCRIPTION
                      "This object indicates the status of this entry.
                      The default value is permanent(3).

                           other(1) - this entry is currently in use but
                                the conditions under which it will
                                remain so are different from each of the
                                following values.
                           invalid(2) - writing this value to the object
                                removes the corresponding entry.
                           permanent(3) - this entry is currently in use
                                and will remain so after the next reset
                                of the bridge.
                           deleteOnReset(4) - this entry is currently in
                                use and will remain so until the next
                                reset of the bridge.
                           deleteOnTimeout(5) - this entry is currently
                                in use and will remain so until it is
                                aged out."
              ::= { dot1dStaticEntry 4 }


          -- Traps for use by Bridges

          -- Traps for the Spanning Tree Protocol

          newRoot TRAP-TYPE
              ENTERPRISE  dot1dBridge
              DESCRIPTION
                      "The newRoot trap indicates that the sending agent
                      has become the new root of the Spanning Tree; the
                      trap is sent by a bridge soon after its election
                      as the new root, e.g., upon expiration of the
                      Topology Change Timer immediately subsequent to
                      its election.  Implementation of this trap is
                      optional."
              ::= 1

          topologyChange TRAP-TYPE
              ENTERPRISE  dot1dBridge
              DESCRIPTION
                      "A topologyChange trap is sent by a bridge when
                      any of its configured ports transitions from the
                      Learning state to the Forwarding state, or from
                      the Forwarding state to the Blocking state.  The
                      trap is not sent if a newRoot trap is sent for the
                      same transition.  Implementation of this trap is
                      optional."
              ::= 2

          END

   IANAifType-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY                     FROM SNMPv2-SMI
       TEXTUAL-CONVENTION                  FROM SNMPv2-TC
       mib-2                		   FROM RFC1213-MIB;

   ianaifType MODULE-IDENTITY
       LAST-UPDATED "9311082155Z"
       ORGANIZATION "IANA"
       CONTACT-INFO

                  "        Internet Assigned Numbers Authority

                   Postal: USC/Information Sciences Institute
                           4676 Admiralty Way, Marina del Rey, CA 90292

                   Tel:    +1  310 822 1511
                   E-Mail: iana@isi.edu"
       DESCRIPTION
               "The MIB module which defines the IANAifType textual
               convention, and thus the enumerated values of the
               ifType object defined in MIB-II's ifTable."
       ::= { mib-2 30 }


   IANAifType ::= TEXTUAL-CONVENTION
       STATUS       current
       DESCRIPTION
               "This data type is used as the syntax of the ifType
               object in the (updated) definition of MIB-II's
               ifTable.
               The definition of this textual convention with the
               addition of newly assigned values is published
               periodically by the IANA, in either the Assigned
               Numbers RFC, or some derivative of it specific to
               Internet Network Management number assignments.  (The
               latest arrangements can be obtained by contacting the
               IANA.)

               Requests for new values should be made to IANA via
               email (iana@isi.edu).

               The relationship between the assignment of ifType
               values and of OIDs to particular media-specific MIBs
               is solely the purview of IANA and is subject to change
               without notice.  Quite often, a media-specific MIB's
               OID-subtree assignment within MIB-II's 'transmission'
               subtree will be the same as its ifType value.
               However, in some circumstances this will not be the
               case, and implementors must not pre-assume any
               specific relationship between ifType values and
               transmission subtree OIDs."
       SYNTAX  INTEGER {
                   other(1),          -- none of the following
                   regular1822(2),
                   hdh1822(3),
                   ddnX25(4),
                   rfc877x25(5),
                   ethernetCsmacd(6),
                   iso88023Csmacd(7),
                   iso88024TokenBus(8),
                   iso88025TokenRing(9),
                   iso88026Man(10),
                   starLan(11),
                   proteon10Mbit(12),
                   proteon80Mbit(13),
                   hyperchannel(14),
                   fddi(15),
                   lapb(16),
                   sdlc(17),
                   ds1(18),           -- DS1/E1 (RFC 1406)
                   e1(19),            -- obsolete
                   basicISDN(20),
                   primaryISDN(21),
                   propPointToPointSerial(22), -- proprietary serial
                   ppp(23),
                   softwareLoopback(24),
                   eon(25),            -- CLNP over IP (RFC 1070)
                   ethernet3Mbit(26),
                   nsip(27),           -- XNS over IP
                   slip(28),           -- generic SLIP
                   ultra(29),          -- ULTRA technologies
                   ds3(30),            -- T-3
                   sip(31),            -- SMDS
                   frameRelay(32),    -- DTE only
                   rs232(33),
                   para(34),           -- parallel-port
                   arcnet(35),         -- arcnet
                   arcnetPlus(36),     -- arcnet plus
                   atm(37),            -- ATM cells
                   miox25(38),
                   sonet(39),          -- SONET or SDH
                   x25ple(40),
                   iso88022llc(41),
                   localTalk(42),
                   smdsDxi(43),
                   frameRelayService(44),  -- Frame relay DCE
                   v35(45),
                   hssi(46),
                   hippi(47),
                   modem(48),          -- Generic modem
                   aal5(49),           -- AAL5 over ATM
                   sonetPath(50),
                   sonetVT(51),
                   smdsIcip(52),       -- SMDS InterCarrier Interface
                   propVirtual(53),    -- proprietary virtual/internal
                   propMultiplexor(54) -- proprietary multiplexing
               }

   END

   IF-MIB DEFINITIONS ::= BEGIN

   IMPORTS
       MODULE-IDENTITY, OBJECT-TYPE, Counter32, Gauge32,
       Integer32, TimeTicks, Counter64,
       NOTIFICATION-TYPE                        FROM SNMPv2-SMI
       TEXTUAL-CONVENTION, DisplayString,
       PhysAddress, TruthValue, RowStatus,
       AutonomousType, TestAndIncr              FROM SNMPv2-TC
       MODULE-COMPLIANCE, OBJECT-GROUP          FROM SNMPv2-CONF

-- RCC HACK - BEGIN
--       snmpTraps                                FROM SNMPv2-MIB
-- RCC HACK - END

       IANAifType                               FROM IANAifType-MIB
       mib-2, interfaces                        FROM RFC1213-MIB;
   ifMIB MODULE-IDENTITY
       LAST-UPDATED "9311082155Z"
       ORGANIZATION "IETF Interfaces MIB Working Group"
       CONTACT-INFO

                  "        Keith McCloghrie

                   Postal: Hughes LAN Systems
                           1225 Charleston Road, Mountain View, CA 94043

                   Tel:    +1 415 966 7934
                   E-Mail: kzm@hls.com


                           Frank Kastenholz

                   Postal: FTP Software
                           2 High Street, North Andover, MA 01845

                   Tel:    +1 508 685 4000
                   E-Mail: kasten@ftp.com"
       DESCRIPTION
               "The MIB module to describe generic objects for
               network interface sub-layers.  This MIB is an updated
               version of MIB-II's ifTable, and incorporates the
               extensions defined in RFC 1229."
       ::= { mib-2 31 }

-- RCC HACK - BEGIN
--
-- Additions to resolve some SNMP V2 dependencies so we don't
-- have to pull-in a lot of mib modules.
--
internet	OBJECT IDENTIFIER ::= { iso org(3) dod(6) 1 }
snmpV2		OBJECT IDENTIFIER ::= { internet 6 }
snmpModules	OBJECT IDENTIFIER ::= { snmpV2 3 }
snmpMIB		OBJECT IDENTIFIER ::= { snmpModules 1 }
snmpMIBObjects	OBJECT IDENTIFIER ::= { snmpMIB 1 }
snmpTraps	OBJECT IDENTIFIER ::= { snmpMIBObjects 5 }
-- RCC HACK - END 

   ifMIBObjects OBJECT IDENTIFIER ::= { ifMIB 1 }


-- RCC HACK - BEGIN
--
-- Modification to resolve conflict with "OwnerString" definition
-- in rfc1271.mib.  In rfc1271.mib "OwnerString" is defined as
-- "DisplayString" whereas in this file, it is define as OCTET
-- STRING.
--
   OwnerString ::= DisplayString
-- RCC HACK - END 

   -- OwnerString has the same semantics as used in RFC 1271
   --
   -- OwnerString ::= TEXTUAL-CONVENTION
   --     DISPLAY-HINT "255a"
   --     STATUS       current
   --     DESCRIPTION
   --             "This data type is used to model an administratively
   --             assigned name of the owner of a resource.  This
   --             information is taken from the NVT ASCII character set.
   --             It is suggested that this name contain one or more of
   --             the following: ASCII form of the manager station's
   --             transport address, management station name (e.g.,
   --             domain name), network management personnel's name,
   --             location, or phone number.  In some cases the agent
   --             itself will be the owner of an entry.  In these cases,
   --             this string shall be set to a string starting with
   --             'agent'."
   --     SYNTAX       OCTET STRING (SIZE(0..255))

   -- InterfaceIndex contains the semantics of ifIndex and
   -- should be used for any objects defined on other mib
   -- modules that need these semantics.

   InterfaceIndex ::= TEXTUAL-CONVENTION
       DISPLAY-HINT "d"
       STATUS       current
       DESCRIPTION
               "A unique value, greater than zero, for each interface
               or interface sub-layer in the managed system.  It is
               recommended that values are assigned contiguously
               starting from 1.  The value for each interface sub-
               layer must remain constant at least from one re-
               initialization of the entity's network management
               system to the next re-initialization."
       SYNTAX       Integer32

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


   -- the Interfaces table

   -- The Interfaces table contains information on the entity's
   -- interfaces.  Each sub-layer below the internetwork-layer
   -- of a network interface is considered to be an interface.

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

   ifEntry OBJECT-TYPE
       SYNTAX      IfEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing management information applicable
               to a particular interface."
       INDEX   { ifIndex }
       ::= { ifTable 1 }

   IfEntry ::=
       SEQUENCE {
           ifIndex                 InterfaceIndex,
           ifDescr                 DisplayString,
           ifType                  IANAifType,
           ifMtu                   Integer32,
           ifSpeed                 Gauge32,
           ifPhysAddress           PhysAddress,
           ifAdminStatus           INTEGER,
           ifOperStatus            INTEGER,
           ifLastChange            TimeTicks,
           ifInOctets              Counter32,
           ifInUcastPkts           Counter32,
           ifInNUcastPkts          Counter32,  -- deprecated
           ifInDiscards            Counter32,
           ifInErrors              Counter32,
           ifInUnknownProtos       Counter32,
           ifOutOctets             Counter32,
           ifOutUcastPkts          Counter32,
           ifOutNUcastPkts         Counter32,  -- deprecated
           ifOutDiscards           Counter32,
           ifOutErrors             Counter32,
           ifOutQLen               Gauge32,    -- deprecated
           ifSpecific              OBJECT IDENTIFIER -- deprecated
       }


   ifIndex OBJECT-TYPE
       SYNTAX      InterfaceIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A unique value, greater than zero, for each
               interface.  It is recommended that values are assigned
               contiguously starting from 1.  The value for each
               interface sub-layer must remain constant at least from
               one re-initialization of the entity's network
               management system to the next re-initialization."
       ::= { ifEntry 1 }

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

   ifType OBJECT-TYPE
       SYNTAX      IANAifType
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The type of interface.  Additional values for ifType
               are assigned by the Internet Assigned Numbers
               Authority (IANA), through updating the syntax of the
               IANAifType textual convention."
       ::= { ifEntry 3 }

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

   ifSpeed OBJECT-TYPE
       SYNTAX      Gauge32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "An estimate of the interface's current bandwidth in
               bits per second.  For interfaces which do not vary in
               bandwidth or for those where no accurate estimation
               can be made, this object should contain the nominal
               bandwidth.  If the bandwidth of the interface is
               greater than the maximum value reportable by this
               object then this object should report its maximum
               value (4,294,967,295) and ifHighSpeed must be used to
               report the interace's speed.  For a sub-layer which
               has no concept of bandwidth, this object should be
               zero."
       ::= { ifEntry 5 }

   ifPhysAddress OBJECT-TYPE
       SYNTAX      PhysAddress
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The interface's address at its protocol sub-layer.
               The interface's media-specific MIB must define the bit
               and byte ordering and format of the value contained by
               this object.  For interfaces which do not have such an
               address (e.g., a serial line), this object should
               contain an octet string of zero length."
       ::= { ifEntry 6 }

   ifAdminStatus OBJECT-TYPE
       SYNTAX  INTEGER {
                   up(1),       -- ready to pass packets
                   down(2),
                   testing(3)   -- in some test mode
               }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "The desired state of the interface.  The testing(3)
               state indicates that no operational packets can be
               passed.  When a managed system initializes, all
               interfaces start with ifAdminStatus in the down(2)
               state.  As a result of either explicit management
               action or per configuration information retained by
               the managed system, ifAdminStatus is then changed to
               either the up(1) or testing(3) states (or remains in
               the down(2) state)."
       ::= { ifEntry 7 }

   ifOperStatus OBJECT-TYPE
       SYNTAX  INTEGER {
                   up(1),       -- ready to pass packets
                   down(2),
                   testing(3),  -- in some test mode
                   unknown(4),  -- status can not be determined
                                -- for some reason.
                   dormant(5)
               }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The current operational state of the interface.  The
               testing(3) state indicates that no operational packets
               can be passed.  If ifAdminStatus is down(2) then
               ifOperStatus should be down(2).  If ifAdminStatus is
               changed to up(1) then ifOperStatus should change to
               up(1) if the interface is ready to transmit and
               receive network traffic; it should change to
               dormant(5) if the interface is waiting for external
               actions (such as a serial line waiting for an
               incomming connection); it should remain in the down(2)
               state if and only if there is a fault that prevents if
               from going to the up(1) state."
       ::= { ifEntry 8 }

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

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

   ifInUcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were not addressed to a
               multicast or broadcast address at this sub-layer."
       ::= { ifEntry 11 }

   ifInNUcastPkts OBJECT-TYPE
       SYNTAX  Counter32
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               multicast or broadcast address at this sub-layer.
               This object is deprecated in favour of
               ifInMulticastPkts and ifInBroadcastPkts."
       ::= { ifEntry 12 }

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

   ifInErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "For packet-oriented interfaces, the number of inbound
               packets that contained errors preventing them from
               being deliverable to a higher-layer protocol.  For
               character-oriented or fixed-length interfaces, the
               number of inbound transmission units that contained
               errors preventing them from being deliverable to a
               higher-layer protocol."
       ::= { ifEntry 14 }

   ifInUnknownProtos OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "For packet-oriented interfaces, the number of packets
               received via the interface which were discarded
               because of an unknown or unsupported protocol.  For
               character-oriented or fixed-length interfaces which
               support protocol multiplexing the number of
               transmission units received via the interface which
               were discarded because of an unknown or unsupported
               protocol.  For any interface which does not support
               protocol multiplexing, this counter will always be 0."
       ::= { ifEntry 15 }

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

   ifOutUcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION

               "The total number of packets that higher-level
               protocols requested be transmitted, and which were not
               addressed to a multicast or broadcast address at this
               sub-layer, including those that were discarded or not
               sent."
       ::= { ifEntry 17 }

   ifOutNUcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a multicast or broadcast address at this
               sub-layer, including those that were discarded or not
               sent.

               This object is deprecated in favour of
               ifOutMulticastPkts and ifOutBroadcastPkts."
       ::= { ifEntry 18 }

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

   ifOutErrors OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "For packet-oriented interfaces, the number of
               outbound packets that could not be transmitted because
               of errors.  For character-oriented or fixed-length
               interfaces, the number of outbound transmission units
               that could not be transmitted because of errors."
       ::= { ifEntry 20 }

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

   ifSpecific OBJECT-TYPE
       SYNTAX      OBJECT IDENTIFIER
       MAX-ACCESS  read-only
       STATUS      deprecated
       DESCRIPTION
               "A reference to MIB definitions specific to the
               particular media being used to realize the interface.
               It is recommended that this value point to an instance
               of a MIB object in the media-specific MIB, i.e., that
               this object have the semantics associated with the
               InstancePointer textual convention defined in RFC
               1443.  In fact, it is recommended that the media-
               specific MIB specify what value ifSpecific should/can
               take for values of ifType.  If no MIB definitions
               specific to the particular media are available, the
               value should be set to the OBJECT IDENTIFIER { 0 0 }."
       ::= { ifEntry 22 }


   --
   --   Extension to the interface table
   --
   -- This table replaces the ifExtnsTable table.
   --

   ifXTable        OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfXEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of interface entries.  The number of entries
               is given by the value of ifNumber.  This table
               contains additional objects for the interface table."
       ::= { ifMIBObjects 1 }

   ifXEntry        OBJECT-TYPE
       SYNTAX      IfXEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing additional management information
               applicable to a particular interface."
       AUGMENTS    { ifEntry }
       ::= { ifXTable 1 }

   IfXEntry ::=
       SEQUENCE {
           ifName                  DisplayString,
           ifInMulticastPkts       Counter32,
           ifInBroadcastPkts       Counter32,
           ifOutMulticastPkts      Counter32,
           ifOutBroadcastPkts      Counter32,
           ifHCInOctets            Counter64,
           ifHCInUcastPkts         Counter64,
           ifHCInMulticastPkts     Counter64,
           ifHCInBroadcastPkts     Counter64,
           ifHCOutOctets           Counter64,
           ifHCOutUcastPkts        Counter64,
           ifHCOutMulticastPkts    Counter64,
           ifHCOutBroadcastPkts    Counter64,
           ifLinkUpDownTrapEnable  INTEGER,
           ifHighSpeed             Gauge32,
           ifPromiscuousMode       TruthValue,
           ifConnectorPresent      TruthValue
       }


   ifName OBJECT-TYPE
       SYNTAX      DisplayString
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The textual name of the interface.  The value of this
               object should be the name of the interface as assigned
               by the local device and should be suitable for use in
               commands entered at the device's `console'.  This
               might be a text name, such as `le0' or a simple port
               number, such as `1', depending on the interface naming
               syntax of the device.  If several entries in the
               ifTable together represent a single interface as named
               by the device, then each will have the same value of
               ifName.  If there is no local name, or this object is
               otherwise not applicable, then this object contains a
               0-length string."
       ::= { ifXEntry 1 }

   ifInMulticastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               multicast address at this sub-layer.  For a MAC layer
               protocol, this includes both Group and Functional
               addresses."
       ::= { ifXEntry 2 }

   ifInBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               broadcast address at this sub-layer."
       ::= { ifXEntry 3 }

   ifOutMulticastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a multicast address at this sub-layer,
               including those that were discarded or not sent.  For
               a MAC layer protocol, this includes both Group and
               Functional addresses."
       ::= { ifXEntry 4 }

   ifOutBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a broadcast address at this sub-layer,
               including those that were discarded or not sent."
       ::= { ifXEntry 5 }

   --
   -- High Capacity Counter objects.  These objects are all

   -- 64 bit versions of the "basic" ifTable counters.  These
   -- objects all have the same basic semantics as their 32-bit
   -- counterparts, however, their syntax has been extended
   -- to 64 bits.
   --

   ifHCInOctets OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of octets received on the interface,
               including framing characters.  This object is a 64-bit
               version of ifInOctets."
       ::= { ifXEntry 6 }

   ifHCInUcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were not addressed to a
               multicast or broadcast address at this sub-layer.
               This object is a 64-bit version of ifInUcastPkts."
       ::= { ifXEntry 7 }

   ifHCInMulticastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               multicast address at this sub-layer.  For a MAC layer
               protocol, this includes both Group and Functional
               addresses.  This object is a 64-bit version of
               ifInMulticastPkts."
       ::= { ifXEntry 8 }

   ifHCInBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The number of packets, delivered by this sub-layer to
               a higher (sub-)layer, which were addressed to a
               broadcast address at this sub-layer.  This object is a
               64-bit version of ifInBroadcastPkts."
       ::= { ifXEntry 9 }

   ifHCOutOctets OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of octets transmitted out of the
               interface, including framing characters.  This object
               is a 64-bit version of ifOutOctets."
       ::= { ifXEntry 10 }

   ifHCOutUcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were not
               addressed to a multicast or broadcast address at this
               sub-layer, including those that were discarded or not
               sent.  This object is a 64-bit version of
               ifOutUcastPkts."
       ::= { ifXEntry 11 }

   ifHCOutMulticastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a multicast address at this sub-layer,
               including those that were discarded or not sent.  For
               a MAC layer protocol, this includes both Group and
               Functional addresses.  This object is a 64-bit version
               of ifOutMulticastPkts."
       ::= { ifXEntry 12 }

   ifHCOutBroadcastPkts OBJECT-TYPE
       SYNTAX      Counter64
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "The total number of packets that higher-level
               protocols requested be transmitted, and which were
               addressed to a broadcast address at this sub-layer,
               including those that were discarded or not sent.  This
               object is a 64-bit version of ifOutBroadcastPkts."
       ::= { ifXEntry 13 }

   ifLinkUpDownTrapEnable  OBJECT-TYPE
       SYNTAX      INTEGER { enabled(1), disabled(2) }
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "Indicates whether linkUp/linkDown traps should be
               generated for this interface.

               By default, this object should have the value
               enabled(1) for interfaces which do not operate on
               'top' of any other interface (as defined in the
               ifStackTable), and disabled(2) otherwise."
       ::= { ifXEntry 14 }

   ifHighSpeed OBJECT-TYPE
       SYNTAX      Gauge32
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "An estimate of the interface's current bandwidth in
               units of 1,000,000 bits per second.  If this object
               reports a value of `n' then the speed of the interface
               is somewhere in the range of `n-500,000' to
               `n+499,999'.  For interfaces which do not vary in
               bandwidth or for those where no accurate estimation
               can be made, this object should contain the nominal
               bandwidth.  For a sub-layer which has no concept of
               bandwidth, this object should be zero."
       ::= { ifXEntry 15 }

   ifPromiscuousMode  OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "This object has a value of false(2) if this interface
               only accepts packets/frames that are addressed to this
               station.  This object has a value of true(1) when the
               station accepts all packets/frames transmitted on the
               media.  The value true(1) is only legal on certain
               types of media.  If legal, setting this object to a
               value of true(1) may require the interface to be reset
               before becoming effective.

               The value of ifPromiscuousMode does not affect the
               reception of broadcast and multicast packets/frames by
               the interface."
       ::= { ifXEntry 16 }

   ifConnectorPresent   OBJECT-TYPE
       SYNTAX      TruthValue
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "This object has the value 'true(1)' if the interface
               sublayer has a physical connector and the value
               'false(2)' otherwise."
       ::= { ifXEntry 17 }


   --           The Interface Stack Group
   --
   -- Implementation of this group is mandatory for all systems
   --

   ifStackTable  OBJECT-TYPE
        SYNTAX        SEQUENCE OF IfStackEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "The table containing information on the relationships
               between the multiple sub-layers of network interfaces.
               In particular, it contains information on which sub-
               layers run 'on top of' which other sub-layers.  Each
               sub-layer corresponds to a conceptual row in the
               ifTable."
        ::= { ifMIBObjects 2 }


   ifStackEntry  OBJECT-TYPE
        SYNTAX        IfStackEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "Information on a particular relationship between two
               sub-layers, specifying that one sub-layer runs on
               'top' of the other sub-layer.  Each sub-layer
               corresponds to a conceptual row in the ifTable."
        INDEX { ifStackHigherLayer, ifStackLowerLayer }
        ::= { ifStackTable 1 }


   IfStackEntry ::=
       SEQUENCE {
           ifStackHigherLayer  Integer32,
           ifStackLowerLayer   Integer32,
           ifStackStatus       RowStatus
        }


   ifStackHigherLayer  OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "The value of ifIndex corresponding to the higher
               sub-layer of the relationship, i.e., the sub-layer
               which runs on 'top' of the sub-layer identified by the
               corresponding instance of ifStackLowerLayer.  If there
               is no higher sub-layer (below the internetwork layer),
               then this object has the value 0."
        ::= { ifStackEntry 1 }


   ifStackLowerLayer  OBJECT-TYPE
        SYNTAX        Integer32
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
               "The value of ifIndex corresponding to the lower sub-
               layer of the relationship, i.e., the sub-layer which
               runs 'below' the sub-layer identified by the
               corresponding instance of ifStackHigherLayer.  If
               there is no lower sub-layer, then this object has the
               value 0."
        ::= { ifStackEntry 2 }


   ifStackStatus  OBJECT-TYPE
       SYNTAX         RowStatus
       MAX-ACCESS     read-write
       STATUS         current
       DESCRIPTION
               "The status of the relationship between two sub-
               layers.

               Changing the value of this object from 'active' to
               'notInService' or 'destroy' will likely have
               consequences up and down the interface stack.  Thus,
               write access to this object is likely to be
               inappropriate for some types of interfaces, and many
               implementations will choose not to support write-
               access for any type of interface."
       ::= { ifStackEntry 3 }


   --
   --    The Interface Test Table
   --
   -- This group of objects is optional.  However, a media-specific
   -- MIB may make implementation of this group mandatory.
   --
   -- This table replaces the ifExtnsTestTable
   --

   ifTestTable   OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfTestEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "This table contains one entry per interface.  It
               defines objects which allow a network manager to
               instruct an agent to test an interface for various
               faults.  Tests for an interface are defined in the
               media-specific MIB for that interface.  After invoking
               a test, the object ifTestResult can be read to
               determine the outcome.  If an agent can not perform
               the test, ifTestResult is set to so indicate.  The
               object ifTestCode can be used to provide further
               test-specific or interface-specific (or even
               enterprise-specific) information concerning the
               outcome of the test.  Only one test can be in progress
               on each interface at any one time.  If one test is in
               progress when another test is invoked, the second test
               is rejected.  Some agents may reject a test when a
               prior test is active on another interface.
               Before starting a test, a manager-station must first
               obtain 'ownership' of the entry in the ifTestTable for
               the interface to be tested.  This is accomplished with
               the ifTestId and ifTestStatus objects as follows:

            try_again:
                get (ifTestId, ifTestStatus)
                while (ifTestStatus != notInUse)
                    /*
                     * Loop while a test is running or some other
                     * manager is configuring a test.
                     */
                    short delay
                    get (ifTestId, ifTestStatus)
                }

                /*
                 * Is not being used right now -- let's compete
                 * to see who gets it.
                 */
                lock_value = ifTestId

                if ( set(ifTestId = lock_value, ifTestStatus = inUse,
                         ifTestOwner = 'my-IP-address') == FAILURE)
                    /*
                     * Another manager got the ifTestEntry -- go
                     * try again
                     */
                    goto try_again;

                /*
                 * I have the lock
                 */
                set up any test parameters.

                /*
                 * This starts the test
                 */
                set(ifTestType = test_to_run);

                wait for test completion by polling ifTestResult

                when test completes, agent sets ifTestResult
                     agent also sets ifTestStatus = 'notInUse'

                retrieve any additional test results, and ifTestId

                if (ifTestId == lock_value+1) results are valid
              A manager station first retrieves the value of the
              appropriate ifTestId and ifTestStatus objects,
              periodically repeating the retrieval if necessary,
              until the value of ifTestStatus is 'notInUse'.  The
              manager station then tries to set the same ifTestId
              object to the value it just retrieved, the same
              ifTestStatus object to 'inUse', and the corresponding
              ifTestOwner object to a value indicating itself.  If
              the set operation succeeds then the manager has
              obtained ownership of the ifTestEntry, and the value of
              the ifTestId object is incremented by the agent (per
              the semantics of TestAndIncr).  Failure of the set
              operation indicates that some other manager has
              obtained ownership of the ifTestEntry.

              Once ownership is obtained, any test parameters can be
              setup, and then the test is initiated by setting
              ifTestType.  On completion of the test, the agent sets
              ifTestStatus to 'notInUse'.  Once this occurs, the
              manager can retrieve the results.  In the (rare) event
              that the invocation of tests by two network managers
              were to overlap, then there would be a possibility that
              the first test's results might be overwritten by the
              second test's results prior to the first results being
              read.  This unlikely circumstance can be detected by a
              network manager retrieving ifTestId at the same time as
              retrieving the test results, and ensuring that the
              results are for the desired request.

              If ifTestType is not set within an abnormally long
              period of time after ownership is obtained, the agent
              should time-out the manager, and reset the value of the
              ifTestStatus object back to 'notInUse'.  It is
              suggested that this time-out period be 5 minutes.

              In general, a management station must not retransmit a
              request to invoke a test for which it does not receive
              a response; instead, it properly inspects an agent's
              MIB to determine if the invocation was successful.
              Only if the invocation was unsuccessful, is the
              invocation request retransmitted.

              Some tests may require the interface to be taken off-
              line in order to execute them, or may even require the
              agent to reboot after completion of the test.  In these
              circumstances, communication with the management
              station invoking the test may be lost until after
              completion of the test.  An agent is not required to
              support such tests.  However, if such tests are
              supported, then the agent should make every effort to
              transmit a response to the request which invoked the
              test prior to losing communication.  When the agent is
              restored to normal service, the results of the test are
              properly made available in the appropriate objects.
              Note that this requires that the ifIndex value assigned
              to an interface must be unchanged even if the test
              causes a reboot.  An agent must reject any test for
              which it cannot, perhaps due to resource constraints,
              make available at least the minimum amount of
              information after that test completes."
       ::= { ifMIBObjects 3 }

   ifTestEntry OBJECT-TYPE
       SYNTAX       IfTestEntry
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
               "An entry containing objects for invoking tests on an
               interface."
       AUGMENTS  { ifEntry }
       ::= { ifTestTable 1 }

   IfTestEntry ::=
       SEQUENCE {
           ifTestId           TestAndIncr,
           ifTestStatus       INTEGER,
           ifTestType         AutonomousType,
           ifTestResult       INTEGER,
           ifTestCode         OBJECT IDENTIFIER,
           ifTestOwner        OwnerString
       }

   ifTestId         OBJECT-TYPE
       SYNTAX       TestAndIncr
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
               "This object identifies the current invocation of the
               interface's test."
       ::= { ifTestEntry 1 }

   ifTestStatus     OBJECT-TYPE
       SYNTAX       INTEGER { notInUse(1), inUse(2) }
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
               "This object indicates whether or not some manager
               currently has the necessary 'ownership' required to
               invoke a test on this interface.  A write to this
               object is only successful when it changes its value
               from 'notInUse(1)' to 'inUse(2)'.  After completion of
               a test, the agent resets the value back to
               'notInUse(1)'."
       ::= { ifTestEntry 2 }

   ifTestType       OBJECT-TYPE
       SYNTAX       AutonomousType
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
               "A control variable used to start and stop operator-
               initiated interface tests.  Most OBJECT IDENTIFIER
               values assigned to tests are defined elsewhere, in
               association with specific types of interface.
               However, this document assigns a value for a full-
               duplex loopback test, and defines the special meanings
               of the subject identifier:

                   noTest  OBJECT IDENTIFIER ::= { 0 0 }

               When the value noTest is written to this object, no
               action is taken unless a test is in progress, in which
               case the test is aborted.  Writing any other value to
               this object is only valid when no test is currently in
               progress, in which case the indicated test is
               initiated.

               When read, this object always returns the most recent
               value that ifTestType was set to.  If it has not been
               set since the last initialization of the network
               management subsystem on the agent, a value of noTest
               is returned."
       ::= { ifTestEntry 3 }

   ifTestResult  OBJECT-TYPE
       SYNTAX       INTEGER {
                        none(1),          -- no test yet requested
                        success(2),
                        inProgress(3),
                        notSupported(4),
                        unAbleToRun(5),   -- due to state of system
                        aborted(6),
                        failed(7)
                    }
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
               "This object contains the result of the most recently
               requested test, or the value none(1) if no tests have
               been requested since the last reset.  Note that this
               facility provides no provision for saving the results
               of one test when starting another, as could be
               required if used by multiple managers concurrently."
       ::= { ifTestEntry 4 }

   ifTestCode  OBJECT-TYPE
       SYNTAX       OBJECT IDENTIFIER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
               "This object contains a code which contains more
               specific information on the test result, for example
               an error-code after a failed test.  Error codes and
               other values this object may take are specific to the
               type of interface and/or test.  The value may have the
               semantics of either the AutonomousType or
               InstancePointer textual conventions as defined in RFC
               1443.  The identifier:

                   testCodeUnknown  OBJECT IDENTIFIER ::= { 0 0 }

               is defined for use if no additional result code is
               available."
       ::= { ifTestEntry 5 }

   ifTestOwner      OBJECT-TYPE
       SYNTAX       OwnerString
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
               "The entity which currently has the 'ownership'
               required to invoke a test on this interface."
       ::= { ifTestEntry 6 }


   --   Generic Receive Address Table
   --
   -- This group of objects is mandatory for all types of
   -- interfaces which can receive packets/frames addressed to
   -- more than one address.
   --
   -- This table replaces the ifExtnsRcvAddr table.  The main
   -- difference is that this table makes use of the RowStatus
   -- textual convention, while ifExtnsRcvAddr did not.

   ifRcvAddressTable  OBJECT-TYPE
       SYNTAX      SEQUENCE OF IfRcvAddressEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "This table contains an entry for each address
               (broadcast, multicast, or uni-cast) for which the
               system will receive packets/frames on a particular
               interface, except as follows:

               - for an interface operating in promiscuous mode,
               entries are only required for those addresses for
               which the system would receive frames were it not
               operating in promiscuous mode.

               - for 802.5 functional addresses, only one entry is
               required, for the address which has the functional
               address bit ANDed with the bit mask of all functional
               addresses for which the interface will accept frames."
       ::= { ifMIBObjects 4 }

   ifRcvAddressEntry  OBJECT-TYPE
       SYNTAX      IfRcvAddressEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of objects identifying an address for which
               the system will accept packets/frames on the
               particular interface identified by the index value
               ifIndex."
       INDEX  { ifIndex, ifRcvAddressAddress }
       ::= { ifRcvAddressTable 1 }

   IfRcvAddressEntry ::=
       SEQUENCE {
           ifRcvAddressAddress   PhysAddress,
           ifRcvAddressStatus    RowStatus,
           ifRcvAddressType      INTEGER
       }

   ifRcvAddressAddress OBJECT-TYPE
       SYNTAX      PhysAddress
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
               "An address for which the system will accept
               packets/frames on this entry's interface."
       ::= { ifRcvAddressEntry 1 }

   ifRcvAddressStatus OBJECT-TYPE
       SYNTAX      RowStatus
       MAX-ACCESS  read-write
       STATUS      current
       DESCRIPTION
               "This object is used to create and delete rows in the
               ifRcvAddressTable."

       ::= { ifRcvAddressEntry 2 }

   ifRcvAddressType OBJECT-TYPE
       SYNTAX      INTEGER {
                       other(1),
                       volatile(2),
                       nonVolatile(3)
                   }

       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
               "This object has the value nonVolatile(3) for those
               entries in the table which are valid and will not be
               deleted by the next restart of the managed system.
               Entries having the value volatile(2) are valid and
               exist, but have not been saved, so that will not exist
               after the next restart of the managed system.  Entries
               having the value other(1) are valid and exist but are
               not classified as to whether they will continue to
               exist after the next restart."

       DEFVAL  { volatile }

       ::= { ifRcvAddressEntry 3 }


   -- definition of interface-related traps.

   linkDown NOTIFICATION-TYPE
       OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
       STATUS  current
       DESCRIPTION
               "A linkDown trap signifies that the SNMPv2 entity,
               acting in an agent role, has detected that the
               ifOperStatus object for one of its communication links
               is about to transition into the down state."
       ::= { snmpTraps 3 }

   linkUp NOTIFICATION-TYPE
       OBJECTS { ifIndex, ifAdminStatus, ifOperStatus }
       STATUS  current
       DESCRIPTION
               "A linkUp trap signifies that the SNMPv2 entity,
               acting in an agent role, has detected that the
               ifOperStatus object for one of its communication links
               has transitioned out of the down state."
       ::= { snmpTraps 4 }


   -- conformance information

   ifConformance OBJECT IDENTIFIER ::= { ifMIB 2 }

   ifGroups      OBJECT IDENTIFIER ::= { ifConformance 1 }
   ifCompliances OBJECT IDENTIFIER ::= { ifConformance 2 }


   -- compliance statements

   ifCompliance MODULE-COMPLIANCE
       STATUS  current
       DESCRIPTION
               "The compliance statement for SNMPv2 entities which
               have network interfaces."

       MODULE  -- this module
           MANDATORY-GROUPS { ifGeneralGroup, ifStackGroup }

           GROUP       ifFixedLengthGroup
           DESCRIPTION
               "This group is mandatory for all network interfaces
               which are character-oriented or transmit data in
               fixed-length transmission units."

           GROUP       ifHCFixedLengthGroup
           DESCRIPTION
               "This group is mandatory only for those network
               interfaces which are character-oriented or transmit
               data in fixed-length transmission units, and for which
               the value of the corresponding instance of ifSpeed is
               greater than 20,000,000 bits/second."

           GROUP       ifPacketGroup
           DESCRIPTION
               "This group is mandatory for all network interfaces
               which are packet-oriented."

           GROUP       ifHCPacketGroup
           DESCRIPTION
               "This group is mandatory only for those network
               interfaces which are packet-oriented and for which the
               value of the corresponding instance of ifSpeed is
               greater than 650,000,000 bits/second."
           GROUP       ifTestGroup
           DESCRIPTION
               "This group is optional.  Media-specific MIBs which
               require interface tests are strongly encouraged to use
               this group for invoking tests and reporting results.
               A medium specific MIB which has mandatory tests may
               make implementation of this group mandatory."

           GROUP       ifRcvAddressGroup
           DESCRIPTION
               "The applicability of this group MUST be defined by
               the media-specific MIBs.  Media-specific MIBs must
               define the exact meaning, use, and semantics of the
               addresses in this group."

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

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

           OBJECT      ifStackStatus
           SYNTAX      INTEGER { active(1) } -- subset of RowStatus
           MIN-ACCESS  read-only
           DESCRIPTION
               "Write access is not required, and only one of the six
               enumerated values for the RowStatus textual convention
               need be supported, specifically: active(1)."

           OBJECT       ifAdminStatus
           SYNTAX       INTEGER { up(1), down(2) }
           MIN-ACCESS   read-only
           DESCRIPTION
               "Write access is not required, nor is support for the
               value testing(3)."
       ::= { ifCompliances 1 }


   -- units of conformance

   ifGeneralGroup    OBJECT-GROUP
       OBJECTS { ifDescr, ifType, ifSpeed, ifPhysAddress,
                 ifAdminStatus, ifOperStatus, ifLastChange,
                 ifLinkUpDownTrapEnable, ifConnectorPresent,
                 ifHighSpeed, ifName }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               applicable to all network interfaces."
       ::= { ifGroups 1 }

   -- the following five groups are mutually exclusive; at most
   -- one of these groups is implemented for any interface

   ifFixedLengthGroup    OBJECT-GROUP
       OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to non-high speed, character-oriented or
               fixed-length-transmission network interfaces.  (Non-
               high speed interfaces transmit and receive at speeds
               less than or equal to 20,000,000 bits/second.)"
       ::= { ifGroups 2 }

   ifHCFixedLengthGroup    OBJECT-GROUP
       OBJECTS { ifHCInOctets, ifHCOutOctets,
                 ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to high speed (greater than 20,000,000
               bits/second) character-oriented or fixed-length-
               transmission network interfaces."
       ::= { ifGroups 3 }

   ifPacketGroup    OBJECT-GROUP
       OBJECTS { ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors,
                 ifMtu, ifInUcastPkts, ifInMulticastPkts,
                 ifInBroadcastPkts, ifInDiscards,
                 ifOutUcastPkts, ifOutMulticastPkts,
                 ifOutBroadcastPkts, ifOutDiscards,
                 ifPromiscuousMode }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to non-high speed, packet-oriented network
               interfaces.  (Non-high speed interfaces transmit and
               receive at speeds less than or equal to 20,000,000
               bits/second.)"
       ::= { ifGroups 4 }

   ifHCPacketGroup    OBJECT-GROUP
       OBJECTS { ifHCInOctets, ifHCOutOctets,
                 ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors,
                 ifMtu, ifInUcastPkts, ifInMulticastPkts,
                 ifInBroadcastPkts, ifInDiscards,
                 ifOutUcastPkts, ifOutMulticastPkts,
                 ifOutBroadcastPkts, ifOutDiscards,
                 ifPromiscuousMode }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to high speed (greater than 20,000,000
               bits/second but less than or equal to 650,000,000
               bits/second) packet-oriented network interfaces."
       ::= { ifGroups 5 }

   ifVHCPacketGroup    OBJECT-GROUP
       OBJECTS { ifHCInUcastPkts, ifHCInMulticastPkts,
                 ifHCInBroadcastPkts, ifHCOutUcastPkts,
                 ifHCOutMulticastPkts, ifHCOutBroadcastPkts,
                 ifHCInOctets, ifHCOutOctets,
                 ifInOctets, ifOutOctets, ifInUnknownProtos,
                 ifInErrors, ifOutErrors,
                 ifMtu, ifInUcastPkts, ifInMulticastPkts,
                 ifInBroadcastPkts, ifInDiscards,
                 ifOutUcastPkts, ifOutMulticastPkts,
                 ifOutBroadcastPkts, ifOutDiscards,
                 ifPromiscuousMode }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information
               specific to higher speed (greater than 650,000,000
               bits/second) packet-oriented network interfaces."
       ::= { ifGroups 6 }

   ifRcvAddressGroup    OBJECT-GROUP
       OBJECTS { ifRcvAddressStatus, ifRcvAddressType }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information on the
               multiple addresses which an interface receives."
       ::= { ifGroups 7 }

   ifTestGroup    OBJECT-GROUP
       OBJECTS { ifTestId, ifTestStatus, ifTestType,
                 ifTestResult, ifTestCode, ifTestOwner }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing the ability to
               invoke tests on an interface."
       ::= { ifGroups 8 }

   ifStackGroup    OBJECT-GROUP
       OBJECTS { ifStackStatus }
       STATUS  current
       DESCRIPTION
               "A collection of objects providing information on the
               layering of MIB-II interfaces."
       ::= { ifGroups 9 }

   END
   EtherLike-MIB DEFINITIONS ::= BEGIN

      IMPORTS
          Counter                FROM RFC1155-SMI
          ifIndex, transmission  FROM RFC1213-MIB
          OBJECT-TYPE            FROM RFC-1212;

       -- This MIB module uses the extended OBJECT-TYPE macro as
       -- defined in RFC-1212.

      dot3    OBJECT IDENTIFIER ::= { transmission 7 }

      -- the Ethernet-like Statistics group

       dot3StatsTable  OBJECT-TYPE
            SYNTAX     SEQUENCE OF Dot3StatsEntry
            ACCESS     not-accessible
            STATUS     mandatory
            DESCRIPTION
             "Statistics for a collection of ethernet-like
             interfaces attached to a particular system."
            ::= { dot3 2 }


       dot3StatsEntry   OBJECT-TYPE
            SYNTAX      Dot3StatsEntry
            ACCESS      not-accessible
            STATUS      mandatory
            DESCRIPTION
              "Statistics for a particular interface to an
              ethernet-like medium."
            INDEX     { dot3StatsIndex }
            ::= { dot3StatsTable 1 }

       Dot3StatsEntry ::= SEQUENCE {
            dot3StatsIndex                      INTEGER,
            dot3StatsAlignmentErrors            Counter,
            dot3StatsFCSErrors                  Counter,
            dot3StatsSingleCollisionFrames      Counter,
            dot3StatsMultipleCollisionFrames    Counter,
            dot3StatsSQETestErrors              Counter,
            dot3StatsDeferredTransmissions      Counter,
            dot3StatsLateCollisions             Counter,
            dot3StatsExcessiveCollisions        Counter,
            dot3StatsInternalMacTransmitErrors  Counter,
            dot3StatsCarrierSenseErrors         Counter,
            dot3StatsFrameTooLongs              Counter,
            dot3StatsInternalMacReceiveErrors   Counter,
            dot3StatsEtherChipSet               OBJECT IDENTIFIER
       }

       dot3StatsIndex   OBJECT-TYPE
            SYNTAX      INTEGER
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
              "An index value that uniquely identifies an
              interface to an ethernet-like medium.  The
              interface identified by a particular value of
              this index is the same interface as identified
              by the same value of ifIndex."
            ::= { dot3StatsEntry 1 }

       dot3StatsAlignmentErrors   OBJECT-TYPE
            SYNTAX     Counter
            ACCESS     read-only
            STATUS     mandatory
            DESCRIPTION
             "A count of frames received on a particular
             interface that are not an integral number of
             octets in length and do not pass the FCS check.

             The count represented by an instance of this
             object is incremented when the alignmentError
             status is returned by the MAC service to the
             LLC (or other MAC user). Received frames for
             which multiple error conditions obtain are,
             according to the conventions of IEEE 802.3
             Layer Management, counted exclusively according
             to the error status presented to the LLC."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 2 }

       dot3StatsFCSErrors   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "A count of frames received on a particular
            interface that are an integral number of octets
            in length but do not pass the FCS check.

            The count represented by an instance of this
            object is incremented when the frameCheckError
            status is returned by the MAC service to the
            LLC (or other MAC user). Received frames for
            which multiple error conditions obtain are,
            according to the conventions of IEEE 802.3
            Layer Management, counted exclusively according
            to the error status presented to the LLC."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 3 }

       dot3StatsSingleCollisionFrames   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "A count of successfully transmitted frames on
            a particular interface for which transmission
            is inhibited by exactly one collision.

            A frame that is counted by an instance of this
            object is also counted by the corresponding
            instance of either the ifOutUcastPkts,
            ifOutMulticastPkts, or ifOutBroadcastPkts,
            and is not counted by the corresponding
            instance of the dot3StatsMultipleCollisionFrames
            object."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 4 }

       dot3StatsMultipleCollisionFrames   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "A count of successfully transmitted frames on
            a particular interface for which transmission
             is inhibited by more than one collision.

            A frame that is counted by an instance of this
            object is also counted by the corresponding
            instance of either the ifOutUcastPkts,
            ifOutMulticastPkts, or ifOutBroadcastPkts,
            and is not counted by the corresponding
            instance of the dot3StatsSingleCollisionFrames
            object."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 5 }

       dot3StatsSQETestErrors   OBJECT-TYPE
            SYNTAX     Counter
            ACCESS     read-only
            STATUS     mandatory
            DESCRIPTION
            "A count of times that the SQE TEST ERROR
            message is generated by the PLS sublayer for a
            particular interface. The SQE TEST ERROR
            message is defined in section 7.2.2.2.4 of
            ANSI/IEEE 802.3-1985 and its generation is
            described in section 7.2.4.6 of the same
            document."
            REFERENCE
            "ANSI/IEEE Std 802.3-1985 Carrier Sense
            Multiple Access with Collision Detection Access
            Method and Physical Layer Specifications"
            ::= { dot3StatsEntry 6 }

       dot3StatsDeferredTransmissions   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "A count of frames for which the first
            transmission attempt on a particular interface
            is delayed because the medium is busy.

            The count represented by an instance of this
            object does not include frames involved in
            collisions."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 7 }

       dot3StatsLateCollisions   OBJECT-TYPE
            SYNTAX      Counter
            ACCESS      read-only
            STATUS      mandatory
            DESCRIPTION
            "The number of times that a collision is
            detected on a particular interface later than
            512 bit-times into the transmission of a
            packet.

            Five hundred and twelve bit-times corresponds
            to 51.2 microseconds on a 10 Mbit/s system. A
            (late) collision included in a count
            represented by an instance of this object is
            also considered as a (generic) collision for
            purposes of other collision-related
            statistics."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 8 }

       dot3StatsExcessiveCollisions   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of frames for which transmission on a
            particular interface fails due to excessive
            collisions."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 9 }


       dot3StatsInternalMacTransmitErrors   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of frames for which transmission on a
            particular interface fails due to an internal
            MAC sublayer transmit error. A frame is only
            counted by an instance of this object if it is
            not counted by the corresponding instance of
            either the dot3StatsLateCollisions object, the
            dot3StatsExcessiveCollisions object, or the
            dot3StatsCarrierSenseErrors object.

            The precise meaning of the count represented by
            an instance of this object is implementation-
            specific.  In particular, an instance of this
            object may represent a count of transmission
            errors on a particular interface that are not
            otherwise counted."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 10 }

       dot3StatsCarrierSenseErrors   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "The number of times that the carrier sense
            condition was lost or never asserted when
            attempting to transmit a frame on a particular
            interface.

            The count represented by an instance of this
            object is incremented at most once per
            transmission attempt, even if the carrier sense
            condition fluctuates during a transmission
            attempt."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 11 }

       -- { dot3StatsEntry 12 } is not assigned

       dot3StatsFrameTooLongs   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of frames received on a particular
            interface that exceed the maximum permitted
            frame size.

            The count represented by an instance of this
            object is incremented when the frameTooLong
            status is returned by the MAC service to the
            LLC (or other MAC user). Received frames for
            which multiple error conditions obtain are,
            according to the conventions of IEEE 802.3
            Layer Management, counted exclusively according
            to the error status presented to the LLC."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 13 }

       -- { dot3StatsEntry 14 } is not assigned

       -- { dot3StatsEntry 15 } is not assigned

       dot3StatsInternalMacReceiveErrors   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of frames for which reception on a
            particular interface fails due to an internal
            MAC sublayer receive error. A frame is only
            counted by an instance of this object if it is
            not counted by the corresponding instance of
            either the dot3StatsFrameTooLongs object, the
            dot3StatsAlignmentErrors object, or the
            dot3StatsFCSErrors object.

            The precise meaning of the count represented by
            an instance of this object is implementation-
            specific.  In particular, an instance of this
            object may represent a count of receive errors
            on a particular interface that are not
            otherwise counted."
            REFERENCE
            "IEEE 802.3 Layer Management"
            ::= { dot3StatsEntry 16 }

       dot3StatsEtherChipSet   OBJECT-TYPE
            SYNTAX        OBJECT IDENTIFIER
            ACCESS        read-only
            STATUS        mandatory
            DESCRIPTION
            "This object contains an OBJECT IDENTIFIER
            which identifies the chipset used to
            realize the interface. Ethernet-like
            interfaces are typically built out of
            several different chips. The MIB implementor
            is presented with a decision of which chip
            to identify via this object. The implementor
            should identify the chip which is usually
            called the Medium Access Control chip.
            If no such chip is easily identifiable,
            the implementor should identify the chip
            which actually gathers the transmit
            and receive statistics and error
            indications. This would allow a
            manager station to correlate the
            statistics and the chip generating
            them, giving it the ability to take
            into account any known anomalies
            in the chip."
            ::= { dot3StatsEntry 17 }

       -- the Ethernet-like Collision Statistics group

       -- Implementation of this group is optional; it is appropriate
       -- for all systems which have the necessary metering

       dot3CollTable  OBJECT-TYPE
            SYNTAX    SEQUENCE OF Dot3CollEntry
            ACCESS    not-accessible
            STATUS    mandatory
            DESCRIPTION
            "A collection of collision histograms for a
            particular set of interfaces."
            ::= { dot3 5 }


       dot3CollEntry  OBJECT-TYPE
            SYNTAX    Dot3CollEntry
            ACCESS    not-accessible
            STATUS    mandatory
            DESCRIPTION
            "A cell in the histogram of per-frame
            collisions for a particular interface.  An
            instance of this object represents the
            frequency of individual MAC frames for which
            the transmission (successful or otherwise) on a
            particular interface is accompanied by a
            particular number of media collisions."
            INDEX     { ifIndex, dot3CollCount }
            ::= { dot3CollTable 1 }

       Dot3CollEntry ::= SEQUENCE {
            dot3CollCount        INTEGER,
            dot3CollFrequencies  Counter
       }

       -- { dot3CollEntry 1 } is no longer in use

       dot3CollCount  OBJECT-TYPE
            SYNTAX    INTEGER (1..16)
            ACCESS    not-accessible
            STATUS    mandatory
            DESCRIPTION
            "The number of per-frame media collisions for
            which a particular collision histogram cell
            represents the frequency on a particular
            interface."
            ::= { dot3CollEntry 2 }


       dot3CollFrequencies   OBJECT-TYPE
            SYNTAX    Counter
            ACCESS    read-only
            STATUS    mandatory
            DESCRIPTION
            "A count of individual MAC frames for which the
            transmission (successful or otherwise) on a
            particular interface occurs after the
            frame has experienced exactly the number
            of collisions in the associated
            dot3CollCount object.

            For example, a frame which is transmitted
            on interface 77 after experiencing
            exactly 4 collisions would be indicated
            by incrementing only dot3CollFrequencies.77.4.
            No other instance of dot3CollFrequencies would
            be incremented in this example."
            ::= { dot3CollEntry 3 }

       --  802.3 Tests

       dot3Tests   OBJECT IDENTIFIER ::= { dot3 6 }

       dot3Errors  OBJECT IDENTIFIER ::= { dot3 7 }


       --  TDR Test

       -- The Time-Domain Reflectometry (TDR) test is specific
       -- to ethernet-like interfaces with the exception of
       -- 10BaseT and 10BaseF. The TDR value may be useful
       -- in determining the approximate distance to a cable fault.
       -- It is advisable to repeat this test to check for a
       -- consistent resulting TDR value, to verify that there
       -- is a fault.

       dot3TestTdr OBJECT IDENTIFIER ::= { dot3Tests 1 }

       -- A TDR test returns as its result the time interval,
       -- measured in 10 MHz ticks or 100 nsec units, between
       -- the start of TDR test transmission and the subsequent
       -- detection of a collision or deassertion of carrier.  On
       -- successful completion of a TDR test, the result is
       -- stored as the value of the appropriate instance of the
       -- MIB object dot3TestTdrValue, and the OBJECT IDENTIFIER
       -- of that instanceis stored in the corresponding instance
       -- of ifExtnsTestCode (thereby indicating where the
       -- result has been stored).


       -- Loopback Test

       -- Another test is the full-duplex loopback test.
       -- This test configures the MAC chip and executes
       -- an internal loopback test of memory, data paths,
       -- and the MAC chip logic.  This loopback test can
       -- only be executed if the interface is offline.
       -- Once the test has completed, the MAC chip should
       -- be reinitialized for network operation, but it
       -- should remain offline.

       dot3TestLoopBack OBJECT IDENTIFIER ::= { dot3Tests 2 }

       -- If an error occurs during a test, the object
       -- ifTestResult (defined in RFC1573) will be set
       -- to failed(7).  The following two OBJECT
       -- IDENTIFIERs may be used to provided more
       -- information as values for ifTestCode.

                -- couldn't initialize MAC chip for test
       dot3ErrorInitError     OBJECT IDENTIFIER ::= { dot3Errors 1 }

                -- expected data not received (or not
                -- received correctly) in loopback test
       dot3ErrorLoopbackError OBJECT IDENTIFIER ::= { dot3Errors 2 }

       -- RFC1573 does away with the interface chipset object.
       -- The following OBJECT IDENTIFIER definitions are
       -- retained for purposes of backwards compatibility
       -- with pre-RFC1573 systems.
       --  802.3 Hardware Chipsets

       -- The object ifExtnsChipSet is provided in RFC1229 to
       -- identify the MAC hardware used to communcate on an
       -- interface.  The following hardware chipsets are
       -- provided for 802.3:

       dot3ChipSets          OBJECT IDENTIFIER ::= { dot3 8 }
       dot3ChipSetAMD        OBJECT IDENTIFIER ::= { dot3ChipSets 1 }
       dot3ChipSetAMD7990    OBJECT IDENTIFIER ::= { dot3ChipSetAMD 1 }
       dot3ChipSetAMD79900   OBJECT IDENTIFIER ::= { dot3ChipSetAMD 2 }
       dot3ChipSetAMD79C940  OBJECT IDENTIFIER ::= { dot3ChipSetAMD 3 }

       dot3ChipSetIntel      OBJECT IDENTIFIER ::= { dot3ChipSets 2 }
       dot3ChipSetIntel82586 OBJECT IDENTIFIER ::= { dot3ChipSetIntel 1 }
       dot3ChipSetIntel82596 OBJECT IDENTIFIER ::= { dot3ChipSetIntel 2 }

       dot3ChipSetSeeq       OBJECT IDENTIFIER ::= { dot3ChipSets 3 }
       dot3ChipSetSeeq8003   OBJECT IDENTIFIER ::= { dot3ChipSetSeeq 1 }

       dot3ChipSetNational      OBJECT IDENTIFIER ::= { dot3ChipSets 4 }
       dot3ChipSetNational8390  OBJECT IDENTIFIER ::=
                                  { dot3ChipSetNational 1 }
       dot3ChipSetNationalSonic OBJECT IDENTIFIER ::=
                                  { dot3ChipSetNational 2 }

       dot3ChipSetFujitsu       OBJECT IDENTIFIER ::= { dot3ChipSets 5 }
       dot3ChipSetFujitsu86950  OBJECT IDENTIFIER ::=
                                  { dot3ChipSetFujitsu 1 }

       dot3ChipSetDigital       OBJECT IDENTIFIER ::= { dot3ChipSets 6 }
       dot3ChipSetDigitalDC21040  OBJECT IDENTIFIER ::=
                                  { dot3ChipSetDigital 1 }

       -- For those chipsets not represented above, OBJECT IDENTIFIER
       -- assignment is required in other documentation, e.g., assignment
       -- within that part of the registration tree delegated to
       -- individual enterprises (see RFC1155).

   END
OSPF-TRAP-MIB DEFINITIONS ::= BEGIN

    -- RCC Changes
    -- Renamed ospfVirtIfAreaId to ospfVirtIfAreaID (defined in rfc1253)
    -- Renamed opsfLsdbLsid to ospfLsdbLSID (defined in rfc1253) 
    -- Changed MODULE-IDENTITY to OBJECT-TYPE
    -- 6/5/97 removed ospfSetTrap variable. We will include it later.

    IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, IpAddress
                FROM SNMPv2-SMI
            MODULE-COMPLIANCE, OBJECT-GROUP
                FROM SNMPv2-CONF
            ospfRouterId, ospfIfIpAddress, ospfAddressLessIf, ospfIfState,
            ospfVirtIfAreaID, ospfVirtIfNeighbor, ospfVirtIfState,
            ospfNbrIpAddr, ospfNbrAddressLessIndex, ospfNbrRtrId,
            ospfNbrState, ospfVirtNbrArea, ospfVirtNbrRtrId, 
            ospfVirtNbrState, ospf
                FROM RFC1253-MIB;

    ospfTrap MODULE-IDENTITY
           LAST-UPDATED "9501201225Z" -- Fri Jan 20 12:25:50 PST 1995
           ORGANIZATION "IETF OSPF Working Group"
           CONTACT-INFO
           "                      Fred Baker
           Postal:                Cisco Systems
                                  519 Lado Drive
                                  Santa Barbara, California 93111
           Tel:                   +1 805 681 0115
           E-Mail:                fred@cisco.com
 
                                  Rob Coltun
           Postal:                RainbowBridge Communications
           Tel:                   (301) 340-9416
           E-Mail:                rcoltun@rainbow-bridge.com"
       DESCRIPTION
          "The MIB module to describe traps for  the  OSPF
          Version 2 Protocol."
      ::= { ospf 16 }

--    ospfTrap OBJECT IDENTIFIER ::= { ospf 16 }

-- Trap Support Objects

--         The following are support objects for the OSPF traps.

ospfTrapControl OBJECT IDENTIFIER ::= { ospfTrap 1 }
ospfTraps OBJECT IDENTIFIER ::= { ospfTrap 2 }


    ospfConfigErrorType OBJECT-TYPE
        SYNTAX   INTEGER   {
                    badVersion (1),
                    areaMismatch (2),
                    unknownNbmaNbr (3), -- Router is Dr eligible
                    unknownVirtualNbr (4),
                    authTypeMismatch(5),
                    authFailure (6),
                    netMaskMismatch (7),
                    helloIntervalMismatch (8),
                    deadIntervalMismatch (9),
                    optionMismatch (10) }
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "Potential types  of  configuration  conflicts.
           Used  by the ospfConfigError and ospfConfigVir-
           tError traps."
   ::= { ospfTrapControl 2 }


    ospfPacketType OBJECT-TYPE
        SYNTAX   INTEGER   {
                    hello (1),
                    dbDescript (2),
                    lsReq (3),
                    lsUpdate (4),
                    lsAck (5) }
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "OSPF packet types."
   ::= { ospfTrapControl 3 }


    ospfPacketSrc OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The IP address of an inbound packet that  can-
           not be identified by a neighbor instance."
       ::= { ospfTrapControl 4 }


-- Traps


    ospfVirtIfStateChange NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtIfAreaID,
                    ospfVirtIfNeighbor,
                    ospfVirtIfState  -- The new state
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfStateChange trap signifies that there
           has  been a change in the state of an OSPF vir-
           tual interface.
           This trap should be generated when  the  inter-
           face  state  regresses  (e.g., goes from Point-
           to-Point to Down) or progresses to  a  terminal
           state (i.e., Point-to-Point)."
   ::= { ospfTraps 1 }


    ospfNbrStateChange NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfNbrIpAddr,
                    ospfNbrAddressLessIndex,
                    ospfNbrRtrId,
                    ospfNbrState  -- The new state
                  }
        STATUS             current
        DESCRIPTION
           "An  ospfNbrStateChange  trap  signifies   that
           there  has been a change in the state of a non-
           virtual OSPF neighbor.   This  trap  should  be
           generated  when  the  neighbor  state regresses
           (e.g., goes from Attempt or Full  to  1-Way  or
           Down)  or progresses to a terminal state (e.g.,
           2-Way or Full).  When an  neighbor  transitions
           from  or  to Full on non-broadcast multi-access
           and broadcast networks, the trap should be gen-
           erated  by the designated router.  A designated
           router transitioning to Down will be  noted  by
           ospfIfStateChange."
   ::= { ospfTraps 2 }


    ospfVirtNbrStateChange NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtNbrArea,
                    ospfVirtNbrRtrId,
                    ospfVirtNbrState  -- The new state
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfStateChange trap signifies that there
           has  been a change in the state of an OSPF vir-
           tual neighbor.  This trap should  be  generated
           when  the  neighbor state regresses (e.g., goes
           from Attempt or  Full  to  1-Way  or  Down)  or
           progresses to a terminal state (e.g., Full)."
   ::= { ospfTraps 3 }

    ospfIfConfigError NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    ospfPacketSrc,  -- The source IP address
                    ospfConfigErrorType, -- Type of error
                    ospfPacketType
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfConfigError  trap  signifies  that  a
           packet  has  been received on a non-virtual in-
           terface  from  a  router  whose   configuration
           parameters  conflict  with this router's confi-
           guration parameters.  Note that the  event  op-
           tionMismatch  should  cause  a  trap only if it
           prevents an adjacency from forming."
                  ::= { ospfTraps 4 }


    ospfVirtIfConfigError NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtIfAreaID,
                    ospfVirtIfNeighbor,
                    ospfConfigErrorType, -- Type of error
                    ospfPacketType
                  }
        STATUS             current
        DESCRIPTION
           "An ospfConfigError trap signifies that a pack-
           et  has  been  received  on a virtual interface
           from a router  whose  configuration  parameters
           conflict   with   this  router's  configuration
           parameters.  Note that the event optionMismatch
           should  cause a trap only if it prevents an ad-
           jacency from forming."
   ::= { ospfTraps 5 }


    ospfIfAuthFailure NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    ospfPacketSrc,  -- The source IP address
                    ospfConfigErrorType, -- authTypeMismatch or
                                         -- authFailure
                    ospfPacketType
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfAuthFailure  trap  signifies  that  a
           packet  has  been received on a non-virtual in-
           terface from a router whose authentication  key
           or  authentication  type  conflicts  with  this
           router's authentication key  or  authentication
           type."
   ::= { ospfTraps 6 }


    ospfVirtIfAuthFailure NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfVirtIfAreaID,
                    ospfVirtIfNeighbor,
                    ospfConfigErrorType, -- authTypeMismatch or
                                         -- authFailure
                    ospfPacketType
                  }
        STATUS             current
        DESCRIPTION
           "An ospfVirtIfAuthFailure trap signifies that a
           packet has been received on a virtual interface
           from a router whose authentication key  or  au-
           thentication  type conflicts with this router's
           authentication key or authentication type."
   ::= { ospfTraps 7 }

    ospfIfStateChange NOTIFICATION-TYPE
        OBJECTS {
                    ospfRouterId, -- The originator of the trap
                    ospfIfIpAddress,
                    ospfAddressLessIf,
                    ospfIfState   -- The new state
                  }
        STATUS             current
        DESCRIPTION
           "An ospfIfStateChange trap signifies that there
           has been a change in the state of a non-virtual
           OSPF interface. This trap should  be  generated
           when  the interface state regresses (e.g., goes
           from Dr to Down) or progresses  to  a  terminal
           state  (i.e.,  Point-to-Point, DR Other, Dr, or
           Backup)."
   ::= { ospfTraps 16 }


-- conformance information

ospfTrapConformance OBJECT IDENTIFIER ::= { ospfTrap 3 }

ospfTrapGroups      OBJECT IDENTIFIER ::= { ospfTrapConformance 1 }
ospfTrapCompliances OBJECT IDENTIFIER ::= { ospfTrapConformance 2 }

-- compliance statements

    ospfTrapCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
           "The compliance statement "
       MODULE  -- this module
       MANDATORY-GROUPS { ospfTrapControlGroup }


        GROUP       ospfTrapControlGroup
        DESCRIPTION
           "This group is optional but recommended for all
           OSPF systems"
       ::= { ospfTrapCompliances 1 }


-- units of conformance

    ospfTrapControlGroup    OBJECT-GROUP
        OBJECTS {
                           ospfConfigErrorType,
                           ospfPacketType,
                           ospfPacketSrc
        }
        STATUS  current
        DESCRIPTION
           "These objects are required  to  control  traps
           from OSPF systems."
       ::= { ospfTrapGroups 1 }


END
-- 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
	}
-- 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                       
}

igmpInterfaceIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The interface for which IGMP is enabled."
    ::= { igmpInterfaceEntry 1 }

igmpInterfaceQueryInterval OBJECT-TYPE
    SYNTAX     Integer32
    UNITS      "seconds"
    MAX-ACCESS read-create
    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-create
    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-create
    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-create
    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-create
    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-create
    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 }                                        

--
--  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,
    igmpCacheLastReporter       IpAddress,
    igmpCacheUpTime             TimeTicks,
    igmpCacheExpiryTime         TimeTicks,
    igmpCacheStatus             RowStatus,
    igmpCacheVersion1HostTimer  Integer32                                
}

igmpCacheAddress OBJECT-TYPE
    SYNTAX     IpAddress
    MAX-ACCESS not-accessible
    STATUS     current
    DESCRIPTION
            "The IP multicast group address for which this entry
            contains information."
    ::= { igmpCacheEntry 1 }

igmpCacheIfIndex OBJECT-TYPE
    SYNTAX     Integer32
    MAX-ACCESS not-accessible
    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-create
    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
   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
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.
--       v112 : 09/29/98 - Added new items to rcIpFilter group.
--


-- 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; 


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 }


-- 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) 
                      }
        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
        }

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 } 


-- 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 }
        ::= { rcVlanIgmpSnoopAccessTable 1 }
 
RcVlanIgmpSnoopAccessEntry ::= SEQUENCE {
            rcVlanIgmpSnoopAccessVlanId        INTEGER,
            rcVlanIgmpSnoopAccessGrpAddr       IpAddress,
            rcVlanIgmpSnoopAccessHostAddr      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 }

rcVlanIgmpSnoopAccessMode OBJECT-TYPE
        SYNTAX        INTEGER {
                          permit(1),
                          deny(2)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopAccessEntry 4 }

rcVlanIgmpSnoopAccessRowStatus OBJECT-TYPE
        SYNTAX        RowStatus
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   ""
        ::= { rcVlanIgmpSnoopAccessEntry 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)
        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
	}

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 }


-- 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),
				aruMixed(3)
			}
        ACCESS        	read-only
        STATUS        	mandatory
        DESCRIPTION   	"The ARU mode the chassis is operating in."
        ::= { rcChassis 12 }


-- 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
        }

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 }
 

-- 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
        }
 
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 }

 
-- 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 }


rcIpConfIgmp   OBJECT IDENTIFIER       ::= { rcIpConf 5 }

rcIpConfIgmpAdminStatus OBJECT-TYPE
        SYNTAX       INTEGER {
                         up(1),
                         down(2)
                      }
        ACCESS        read-write
        STATUS        mandatory
        DESCRIPTION   "Used to set the administrative status of the
                       IGMP feature"
        DEFVAL        { down }
        ::= { rcIpConfIgmp 1 }

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
}

rcIpConfIgmpIfIndex OBJECT-TYPE
        SYNTAX          INTEGER (0..65535)
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "An unique value to identify a physical 
                        interface or a logical interface (VLAN)."
        ::= { rcIpConfIgmpEntry 1 }

rcIpConfIgmpQueryInterval OBJECT-TYPE
         SYNTAX     INTEGER
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "The frequency at which IGMP Host-Query packets are
                     transmitted on this interface."
         DEFVAL     { 125 }
         ::= { rcIpConfIgmpEntry 2 }
 
rcIpConfIgmpVersion OBJECT-TYPE
         SYNTAX     INTEGER { version1(1), version2(2) }
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "The version of IGMP which is running on this
                     interface. This object can be used to configure a
                     router capable of running either value.  For IGMP
                     to function correctly, all routers on a LAN must
                     be configured to run the same version of IGMP on
                     that LAN."
         DEFVAL     { version2 }
         ::= { rcIpConfIgmpEntry 3 }
 
rcIpConfIgmpQueryMaxResponseTime OBJECT-TYPE
         SYNTAX     INTEGER
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "The maximum query response time advertised in
                     IGMPv2 queries on this interface.  Smaller values
                     allow a router to prune groups faster."
         DEFVAL     { 10 }
         ::= { rcIpConfIgmpEntry 4 }
 
rcIpConfIgmpQuerierPresentTimeout OBJECT-TYPE
         SYNTAX     INTEGER
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "A timeout interval.  If no IGMPv2 queries are
                     heard on this interface within this timeout
                     interval, the local router will take over the
                     Querier on the IP subnet to which this interface
                     is attached."
         DEFVAL     { 255 }
 
         ::= { rcIpConfIgmpEntry 5 }
 
rcIpConfIgmpLeaveEnabled OBJECT-TYPE
         SYNTAX     TruthValue
         ACCESS     read-write
         STATUS     mandatory
         DESCRIPTION "An indication of whether the processing of IGMPv2
                      Leave messages is enabled on this interface."
         DEFVAL    { true }
         ::= { rcIpConfIgmpEntry 6 }
 
rcIpConfIgmpRowStatus OBJECT-TYPE
        SYNTAX          RowStatus
        ACCESS          read-write
        STATUS          mandatory
        DESCRIPTION     "Status of entry."
        ::= { rcIpConfIgmpEntry 7 }

rcIgmpGroupTable OBJECT-TYPE
        SYNTAX     SEQUENCE OF RcIgmpGroupEntry
        ACCESS     not-accessible
        STATUS     mandatory
        DESCRIPTION "The (conceptual) table listing the multicast 
                    groups configured in the device."
    ::= { rcIp 6 }
 
rcIgmpGroupEntry OBJECT-TYPE
        SYNTAX     RcIgmpGroupEntry
        ACCESS     not-accessible
        STATUS     mandatory
        DESCRIPTION "An entry (conceptual row) representing an
                    Igmp group."
        INDEX      { rcIgmpGroupIpAddress, rcIgmpGroupInPort,
                     rcIgmpGroupMembers }
        ::= { rcIgmpGroupTable 1 }
 
RcIgmpGroupEntry ::= SEQUENCE {
        rcIgmpGroupIpAddress         IpAddress,
        rcIgmpGroupInPort            INTEGER,
        rcIgmpGroupMembers           IpAddress,
        rcIgmpGroupExpiration        INTEGER 
}

rcIgmpGroupIpAddress OBJECT-TYPE
        SYNTAX          IpAddress 
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "Multicast group Address (Class D) that others
                         want to join. A group address can be the same 
                         for many incoming ports."
        ::= { rcIgmpGroupEntry 1 }

rcIgmpGroupInPort OBJECT-TYPE
        SYNTAX          INTEGER (0..65535)
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "An unique value to identify a physical
                        interface or a logical interface (VLAN),
                        which has received Group reports from various
                        sources."
        ::= { rcIgmpGroupEntry 2 }

rcIgmpGroupMembers OBJECT-TYPE
        SYNTAX          IpAddress 
        ACCESS          read-only
        STATUS          mandatory
        DESCRIPTION     "IP Address of a source that has sent group 
                         report wishing to join this group."
        ::= { rcIgmpGroupEntry 3 }
 
 
rcIgmpGroupExpiration OBJECT-TYPE
         SYNTAX     INTEGER
         ACCESS     read-only
         STATUS     mandatory
         DESCRIPTION "Time left before the group report expired on this
                      port. Only one of this variable port. This 
                      variable is updated upon receiving a group report."
         ::= { rcIgmpGroupEntry 4 }

-- IP Route Table

rcIpRouteTable OBJECT-TYPE 
        SYNTAX          SEQUENCE OF RcIpRouteEntry
        ACCESS          not-accessible 
        STATUS          mandatory 
        DESCRIPTION     "This entity's IP Routing table."
    ::= { rcIp 7 }

rcIpRouteEntry OBJECT-TYPE
	SYNTAX  	RcIpRouteEntry
        ACCESS  	not-accessible
        STATUS  	mandatory
        DESCRIPTION	"A route to a particular destination."
        INDEX   { rcIpRouteDest, rcIpRouteMask }
    ::= { rcIpRouteTable 1 }

RcIpRouteEntry ::=
	SEQUENCE {
        	rcIpRouteDest IpAddress,
                rcIpRouteMask IpAddress,
                rcIpRouteNextHop IpAddress,
                rcIpRouteMetric  INTEGER,
                rcIpRouteIfIndex InterfaceIndex,
                rcIpRouteType INTEGER,
                rcIpRouteProto INTEGER,
                rcIpRouteAge INTEGER,
		rcIpRouteRowStatus RowStatus
              }

rcIpRouteDest OBJECT-TYPE
        SYNTAX  	IpAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The destination IP address of this route.  An
                      	entry with a value of 0.0.0.0 is considered a
                      	default route.  Multiple routes to a single
                      	destination can appear in the table, but access to
                      	such multiple entries is dependent on the table-
                      	access mechanisms defined by the network
                      	management protocol in use."
    ::= { rcIpRouteEntry 1 }

rcIpRouteMask OBJECT-TYPE
        SYNTAX  	IpAddress
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION	"Indicate the mask to be logical-ANDed with the
                      	destination address before being compared to the
                      	value in the rcIpRouteDest field.  For those systems
                      	that do not support arbitrary subnet masks, an
                      	agent constructs the value of the rcIpRouteMask by
                      	determining whether the value of the correspondent
                      	rcIpRouteDest field belong to a class-A, B, or C
                      	network, and then using one of:

                           mask           network
                           255.0.0.0      class-A
                           255.255.0.0    class-B
                           255.255.255.0  class-C

                      	If the value of the rcIpRouteDest is 0.0.0.0 (a
                      	default route), then the mask value is also
                      	0.0.0.0.  It should be noted that all IP routing
                      	subsystems implicitly use this mechanism."
    ::= { rcIpRouteEntry 2 }

rcIpRouteNextHop OBJECT-TYPE
        SYNTAX  	IpAddress
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The IP address of the next hop of this route.
                      	(In the case of a route bound to an interface
                      	which is realized via a broadcast media, the value
                      	of this field is the agent's IP address on that
                      	interface)."
    ::= { rcIpRouteEntry 3 }

rcIpRouteMetric OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-write
        STATUS  	mandatory
        DESCRIPTION 	"The primary routing metric for this route.  The
                      	semantics of this metric are determined by the
                      	routing-protocol specified in the route's
                      	rcIpRouteProto value.  If this metric is not used,
                      	its value should be set to -1."
    ::= { rcIpRouteEntry 4 }

rcIpRouteIfIndex OBJECT-TYPE
        SYNTAX  	InterfaceIndex
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The index value which uniquely identifies the
                      	local interface through which the next hop of this
                      	route should be reached.  The interface identified
                      	by a particular value of this index is the same
                      	interface as identified by the same value of
                      	ifIndex."
    ::= { rcIpRouteEntry 5 }

rcIpRouteType OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),        -- none of the following
                    direct(3),       -- connected (sub-)network

                                     -- route to a non-local
                    indirect(4)      -- host/network/sub-network
               }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION 	"The type of route.  Note that the values
                      	direct(3) and indirect(4) refer to the notion of
                      	direct and indirect routing in the IP
                      	architecture."
    ::= { rcIpRouteEntry 6 }

rcIpRouteProto OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),       -- none of the following

                                    -- non-protocol information,
                                    -- e.g., manually configured
                    local(2),       -- entries

                                    -- set via a network
                    netmgmt(3),     -- management protocol

                                    -- obtained via ICMP,
                    icmp(4),        -- e.g., Redirect

                                    -- the remaining values are
                                    -- all gateway routing
                                    -- protocols
                    egp(5),
                    ggp(6),
                    hello(7),
                    rip(8),
                    is-is(9),
                    es-is(10),
                    ciscoIgrp(11),
                    bbnSpfIgp(12),
                    ospf(13),
                    bgp(14)
                }
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION	"The routing mechanism via which this route was
                      	learned.  Inclusion of values for gateway routing
                      	protocols is not intended to imply that hosts
                      	should support those protocols."
    ::= { rcIpRouteEntry 7 }

rcIpRouteAge OBJECT-TYPE
        SYNTAX  	INTEGER
        ACCESS  	read-only
        STATUS  	mandatory
        DESCRIPTION	"The number of seconds since this route was last
                      	updated or otherwise determined to be correct.
                      	Note that no semantics of `too old' can be implied
                      	except through knowledge of the routing protocol
                      	by which the route was learned."
    ::= { rcIpRouteEntry 8 }

rcIpRouteRowStatus OBJECT-TYPE
        SYNTAX        	RowStatus
        ACCESS        	read-write
        STATUS        	mandatory
        DESCRIPTION   	"Used to create/delete entries"
    ::= { rcIpRouteEntry 9 }


-- 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..4000),
		rcIpFilterName DisplayString (SIZE (0..15)),
		rcIpFilterProtocolType INTEGER,
		rcIpFilterSrcPort INTEGER (0..65535),
		rcIpFilterSrcOption INTEGER,
		rcIpFilterDstPort INTEGER (0..65535),
		rcIpFilterDstOption INTEGER,
		rcIpFilterTcpConnect TruthValue,
		rcIpFilterMirror TruthValue,
		rcIpFilterHighPriority TruthValue,
		rcIpFilterCopyToCpu TruthValue,
		rcIpFilterIeeeVlanPriority INTEGER,
		rcIpFilterUsePktLimit TruthValue,
		rcIpFilterPktLimit INTEGER,
		rcIpFilterRowStatus RowStatus,
                rcIpFilterMode 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..4000)
        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 }

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 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 }

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 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 }


-- 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  { ignore }
        ::= { 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  { ignore }
        ::= { 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 }
 


-- 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 }

-- 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 }


-- 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)
		      }
        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),
                         snmp           (2),
                         rmon           (4),
                         portmgr        (8),
                         chasmgr       (16),
                         bridge        (32),
                         ospf          (64),
                         hwif         (128),
                         sim          (256),
                         cpp          (512),
                         netdrv      (1024),
                         vlanmgr     (2048),
                         cli         (4096),
                         main        (8192),
                         p2ip       (16384),
                         rcip       (32768),
                         rompager   (65536),
                         acif      (131072),
                         gbip      (262144),
                         wdt       (524288),
                         tdp      (1048576),
                         mandiag  (2097152),
                         mantest  (4194304),
                         igmp     (8388608),
                         ipfil   (16777216),
                         mlt     (33554432),
                         ippolicy(67108864),
                         ipmc   (134217728),
                         syslog (268435456)
                      }
        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 }

END

