-- SECTION 1: Top Level Definitions


HP-SN-IP-MIB DEFINITIONS ::= BEGIN


-- Foundry SnRouter Group MIB Release 1.0.0
-- Revision 0 1/7/97

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

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


-- Imports

IMPORTS
        IpAddress, Counter, TimeTicks
                FROM RFC1155-SMI
        OBJECT-TYPE             
                FROM RFC-1212
        snIp, snRip, snDvmrp, snFsrp, snGblRt, snPim, snVrrp, snLoopbackIf
                FROM HP-SN-ROOT-MIB;

        -- textual conventions

         DisplayString ::= OCTET STRING

        --  RtrStatus Values

             RtrStatus ::= INTEGER { disabled(0), enabled (1) }

        --  Clear Status Values

             ClearStatus ::= INTEGER { normal(0), clear(1) }

        --  Row Creation/Deletion Values

             RowSts ::= INTEGER { other(1),
                                                valid(2),
                                                delete(3),
                                                create(4)
                                                }

        --  Port index

             PortIndex ::= INTEGER (1..3900)
                -- The port index.
                -- For FastIron/NetIron products, port index value is from 1 to 42
                -- For BigIron products, port index is an encoded number:
                -- The bit 0 to bit 7: port number.
                -- The bit 8 to bit 11: slot number.
                -- For virtual router interface, slot number is 15,
                -- port number is the virtual router port from 1 to 60.
                -- Therefore, port index value for BigIron is from 257 to 3900.

        --  Action 

                Action ::= INTEGER { deny(0), permit(1) }

          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.

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

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

          PortMask ::=
                  INTEGER
          -- This data type is used to model port bitmask.  The 
          -- maximum of ports are 32.  


-- SECTION 2: MIB 

-- Global Router MIB
-- This section contains global MIB object definitions applicable to the
-- switching router. These objects should be independent to any routing
-- protocol.

snGblRtGeneral              OBJECT IDENTIFIER ::= { snGblRt 1 }

snGblRtRouteOnly        OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "If this object is 'enabled', this switching router will only
                route packets. If this object is 'disabled', this switching
                router will first route packets. If route cannot perform,
                it will switch packets."
        ::= { snGblRtGeneral 1 }

-- Router IP MIB
-- This section contains IP specific router MIB object definitions.

-- IP general group

snRtIpGeneral               OBJECT IDENTIFIER ::= { snIp 1 }
                
snRtClearArpCache       OBJECT-TYPE
        SYNTAX  ClearStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "clear(1) will clear arp cache table."
        ::= { snRtIpGeneral 1 }

snRtClearIpCache                OBJECT-TYPE
        SYNTAX  ClearStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "clear(1) will clear ip route cache table."
        ::= { snRtIpGeneral 2 }

snRtClearIpRoute                OBJECT-TYPE
        SYNTAX  ClearStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "clear(1) will clear ip route table."
        ::= { snRtIpGeneral 3 }

snRtBootpServer                 OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  deprecated
        DESCRIPTION
                "IP address of bootp server to
                which bootp packet need to be relayed."
        ::= { snRtIpGeneral 4 }

snRtBootpRelayMax               OBJECT-TYPE
        SYNTAX  INTEGER (1..15)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Maximum number of hop the bootp packet 
                should travel."
        ::= { snRtIpGeneral 5 } 

snRtArpAge                      OBJECT-TYPE
        SYNTAX  INTEGER (0..240)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The time in minutes an ARP entry can
                be valid without relearning. 
                0 - Don't not age."
        ::= { snRtIpGeneral 6 }

snRtIpIrdpEnable                OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Perform router advertisement on this box."
        ::= { snRtIpGeneral 7 }

snRtIpLoadShare         OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "If more than one route available,
                use them to share load."
        ::= { snRtIpGeneral 8 }

snRtIpProxyArp          OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Enable/disable proxy arp function 
                in the box."
        ::= { snRtIpGeneral 9 }

snRtIpRarp                      OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Enable/disable RARP server."
        ::= { snRtIpGeneral 10 }

snRtIpTtl                       OBJECT-TYPE
        SYNTAX  INTEGER (1..255)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The time to live value to be used
                in IP header of IP packet generated
                by the box."
        ::= { snRtIpGeneral 11 }

snRtIpSetAllPortConfig          OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The value of this object is an index number of a
                snRtIpPortConfigTable row (i.e. snRtIpPortConfigPortIndex),
                which is the selected row to copy all of its read-writable
                data (i.e. snRtIpPortMtu and snRtIpPortEncap) to the rest
                of the rows in snRtIpPortConfigTable.
                Note: prior setting this object, all the intended data of
                the given row of the table must be set. Otherwise, the
                current data of the row will be used to set the entire ip
                interface configuration table. The previous setting will
                be overwritten by the new one."
        ::= { snRtIpGeneral 12 }

snRtIpFwdCacheMaxEntries        OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The maximum number of ip forwarding table entries."
        ::= { snRtIpGeneral 13 }

snRtIpFwdCacheCurEntries        OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The current number of ip forwarding table entries."
        ::= { snRtIpGeneral 14 }

snRtIpMaxStaticRouteEntries     OBJECT-TYPE
        SYNTAX  INTEGER 
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The maximum number of static route entries in the static route table."
        ::= { snRtIpGeneral 15 }

snRtIpDirBcastFwd               OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Enable/Disable directed broadcast forwarding."
    DEFVAL  { enabled }
        ::= { snRtIpGeneral 16 }

snRtIpLoadShareNumOfPaths       OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Number of routes are used to share load."
        ::= { snRtIpGeneral 17 }

snRtIpLoadShareMaxPaths OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Maximum number of routes can be configured to share load."
        ::= { snRtIpGeneral 18 }

snRtIpLoadShareMinPaths OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Minimum number of routes can be configured to share load."
        ::= { snRtIpGeneral 19 }

snRtIpProtocolRouterId OBJECT-TYPE
    SYNTAX   IpAddress
    ACCESS   read-write
    STATUS   mandatory
    DESCRIPTION
        "Router Id for all IP Protocols."
    ::= { snRtIpGeneral 20 }

snRtIpSourceRoute OBJECT-TYPE
    SYNTAX   RtrStatus
    ACCESS   read-write
    STATUS   mandatory
    DESCRIPTION
        "Enable/Disable source routing support, ability to drop the
        source routing packets."
    DEFVAL { enabled }
    ::= { snRtIpGeneral 21 }


-- IP static route table

snRtIpStaticRouteTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpStaticRouteEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP static/default route table."
        ::= { snIp 2 }

snRtIpStaticRouteEntry  OBJECT-TYPE
        SYNTAX  SnRtIpStaticRouteEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP static route table."
        INDEX   { snRtIpStaticRouteIndex }
        ::= { snRtIpStaticRouteTable 1 }

SnRtIpStaticRouteEntry ::= SEQUENCE {
        snRtIpStaticRouteIndex
                INTEGER,
        snRtIpStaticRouteDest
                IpAddress,
        snRtIpStaticRouteMask
                IpAddress,
        snRtIpStaticRouteNextHop
                IpAddress,
        snRtIpStaticRouteMetric
                INTEGER,
        snRtIpStaticRouteRowStatus
                RowSts,
        snRtIpStaticRouteDistance
                INTEGER
        }

snRtIpStaticRouteIndex  OBJECT-TYPE
        SYNTAX  INTEGER 
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for a static route entry."
        ::= { snRtIpStaticRouteEntry 1 }

snRtIpStaticRouteDest           OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Destination IP address.
                0.0.0.0 for default route."
        ::= { snRtIpStaticRouteEntry 2 }

snRtIpStaticRouteMask           OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Subnet mask associated with 
                the destination IP address.
                0.0.0.0 for default route mask."
        ::= { snRtIpStaticRouteEntry 3 }

snRtIpStaticRouteNextHop        OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "IP address of next hop router that
                is located on one of the directly
                attached IP subnet."
        ::= { snRtIpStaticRouteEntry 4 }

snRtIpStaticRouteMetric         OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The metrics to next hop router."
        ::= { snRtIpStaticRouteEntry 5 }

snRtIpStaticRouteRowStatus      OBJECT-TYPE
        SYNTAX  RowSts
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "To create or delete a static route
                entry."
        ::= { snRtIpStaticRouteEntry 6 }

snRtIpStaticRouteDistance               OBJECT-TYPE
        SYNTAX  INTEGER (1..255)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Administration distance."
        ::= { snRtIpStaticRouteEntry 7 }

-- ip filter table

snRtIpFilterTable       OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpFilterEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP filter table."
        ::= { snIp 3 }

snRtIpFilterEntry       OBJECT-TYPE
        SYNTAX  SnRtIpFilterEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP filter table."
        INDEX   { snRtIpFilterIndex }
        ::= { snRtIpFilterTable 1 }

SnRtIpFilterEntry ::= SEQUENCE {
        snRtIpFilterIndex
                INTEGER,
        snRtIpFilterAction              
                INTEGER,
        snRtIpFilterProtocol            
                INTEGER,
        snRtIpFilterSourceIp
                IpAddress,
        snRtIpFilterSourceMask
                IpAddress,
        snRtIpFilterDestIp
                IpAddress,
        snRtIpFilterDestMask
                IpAddress,
        snRtIpFilterOperator
                INTEGER,
        snRtIpFilterOperand
                INTEGER,
        snRtIpFilterRowStatus
                RowSts,
        snRtIpFilterEstablished
                RtrStatus,
        snRtIpFilterQosPriority
                INTEGER
        }

snRtIpFilterIndex       OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for a filter entry."
        ::= { snRtIpFilterEntry 1 }

snRtIpFilterAction      OBJECT-TYPE
        SYNTAX  INTEGER { deny(0), permit(1), qosEnabled(2) } 
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Action to take if the ip packet match
                with this filter."
        ::= { snRtIpFilterEntry 2 }

snRtIpFilterProtocol    OBJECT-TYPE
        SYNTAX  INTEGER (0..255)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Transport protocol. 0 means don't care"
        ::= { snRtIpFilterEntry 3 }

snRtIpFilterSourceIp    OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Source IP address."
        ::= { snRtIpFilterEntry 4 }

snRtIpFilterSourceMask  OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Source IP subnet mask."
        ::= { snRtIpFilterEntry 5 }

snRtIpFilterDestIp      OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Destination IP address."
        ::= { snRtIpFilterEntry 6 }

snRtIpFilterDestMask    OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Destination IP subnet mask."
        ::= { snRtIpFilterEntry 7 }

snRtIpFilterOperator    OBJECT-TYPE
        SYNTAX  INTEGER { greater(1), equal(2), less(3), notEqual(4) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Type of comparison to perform.
                for now, this only applys to tcp or udp
                to compare the port number"
        ::= { snRtIpFilterEntry 8 }

snRtIpFilterOperand     OBJECT-TYPE
        SYNTAX  INTEGER(0..65535)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "For now this only refers to transport 
                protocol port number. 0 means NA"
        ::= { snRtIpFilterEntry 9 }

snRtIpFilterRowStatus   OBJECT-TYPE
        SYNTAX  RowSts
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "To create or delete a filter
                entry."
        ::= { snRtIpFilterEntry 10 }

snRtIpFilterEstablished OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Enable/Disable the filtering of established TCP
                packets of which the ACK or RESET flag is on. This
                additional filter only applies to TCP transport
                protocol."
        ::= { snRtIpFilterEntry 11 }

snRtIpFilterQosPriority OBJECT-TYPE
        SYNTAX  INTEGER {
                level0(0),
                level1(1),
                level2(2),
                level3(3),
                level4(4),
                level5(5),
                level6(6),
                level7(7)
                }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The router L4 Qos Priority values are:
                 low(0)   -- low prority
                 high(1) -- high prority.
                 The Priority values are:
                level0(0), level1(1), level2(2), level3(3),
                level4(4), level5(5), level6(6), level7(7) "
        ::= { snRtIpFilterEntry 12 }

-- RARP table

snRtIpRarpTable         OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpRarpEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP RARP table."
        ::= { snIp 4 }

snRtIpRarpEntry         OBJECT-TYPE
        SYNTAX  SnRtIpRarpEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP Rarp table."
        INDEX   { snRtIpRarpIndex }
        ::= { snRtIpRarpTable 1 }

SnRtIpRarpEntry ::= SEQUENCE {
        snRtIpRarpIndex
                INTEGER,
        snRtIpRarpMac
                OCTET STRING,
        snRtIpRarpIp
                IpAddress,
        snRtIpRarpRowStatus
                RowSts
        }

snRtIpRarpIndex                 OBJECT-TYPE
        SYNTAX  INTEGER (1..16)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for a Rarp entry."
        ::= { snRtIpRarpEntry 1 }

snRtIpRarpMac           OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (6))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The Mac address for a Rarp entry."
        ::= { snRtIpRarpEntry 2 }

snRtIpRarpIp            OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The IP address for a Rarp entry."
        ::= { snRtIpRarpEntry 3 }

snRtIpRarpRowStatus     OBJECT-TYPE
        SYNTAX  RowSts
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "To create or delete a Rarp
                entry."
        ::= { snRtIpRarpEntry 4 }

-- Static ARP table

snRtStaticArpTable              OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtStaticArpEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP static arp table."
        ::= { snIp 5 }

snRtStaticArpEntry              OBJECT-TYPE
        SYNTAX  SnRtStaticArpEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP static arp table."
        INDEX   { snRtStaticArpIndex }
        ::= { snRtStaticArpTable 1 }

SnRtStaticArpEntry ::= SEQUENCE {
        snRtStaticArpIndex
                INTEGER,
        snRtStaticArpIp
                IpAddress,
        snRtStaticArpMac
                OCTET STRING,
        snRtStaticArpPort
                PortIndex,
        snRtStaticArpRowStatus
                RowSts
        }

snRtStaticArpIndex              OBJECT-TYPE
        SYNTAX  INTEGER (1..16)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for a static arp entry."
        ::= { snRtStaticArpEntry 1 }

snRtStaticArpIp                 OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The IP address for a static arp entry."
        ::= { snRtStaticArpEntry 2 }

snRtStaticArpMac                OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (6))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The Mac address for a static arp entry."
        ::= { snRtStaticArpEntry 3 }

snRtStaticArpPort               OBJECT-TYPE
        SYNTAX  PortIndex
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The port index for a static arp entry."
        ::= { snRtStaticArpEntry 4 }

snRtStaticArpRowStatus  OBJECT-TYPE
        SYNTAX  RowSts
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "To create or delete a Static Arp
                entry."
        ::= { snRtStaticArpEntry 5 }

-- ip interface address table

snRtIpPortAddrTable             OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpPortAddrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP port address table."
        ::= { snIp 6 }

snRtIpPortAddrEntry             OBJECT-TYPE
        SYNTAX  SnRtIpPortAddrEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP Port Address table."
        INDEX   { snRtIpPortAddrPortIndex, snRtIpPortAddress }
        ::= { snRtIpPortAddrTable 1 }

SnRtIpPortAddrEntry ::= SEQUENCE {
        snRtIpPortAddrPortIndex
                PortIndex,
        snRtIpPortAddress
                IpAddress,
        snRtIpPortSubnetMask
                IpAddress,
        snRtIpPortAddrType
                INTEGER,
        snRtIpPortRowStatus
                RowSts
        }


snRtIpPortAddrPortIndex                 OBJECT-TYPE
        SYNTAX  PortIndex
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The port index for port address entry."
        ::= { snRtIpPortAddrEntry 1 }

snRtIpPortAddress               OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The port IP address."
        ::= { snRtIpPortAddrEntry 2 }

snRtIpPortSubnetMask            OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The port IP address subnet mask."
        ::= { snRtIpPortAddrEntry 3 }

snRtIpPortAddrType              OBJECT-TYPE
        SYNTAX  INTEGER { primary(1), secondary(2) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The port IP address type."
    DEFVAL  { primary }
        ::= { snRtIpPortAddrEntry 4 }

snRtIpPortRowStatus     OBJECT-TYPE
        SYNTAX  RowSts
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "To create or delete a port address
                entry."
        ::= { snRtIpPortAddrEntry 5 }

-- ip interface access table

snRtIpPortAccessTable           OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpPortAccessEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP port access table."
        ::= { snIp 7 }

snRtIpPortAccessEntry           OBJECT-TYPE
        SYNTAX  SnRtIpPortAccessEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP Port access table."
        INDEX   { snRtIpPortAccessPortIndex, snRtIpPortAccessDirection }
        ::= { snRtIpPortAccessTable 1 }

SnRtIpPortAccessEntry ::= SEQUENCE {
        snRtIpPortAccessPortIndex
                PortIndex,
        snRtIpPortAccessDirection
                INTEGER,
        snRtIpPortAccessFilters
                OCTET STRING,
        snRtIpPortAccessRowStatus
                RowSts
        }

snRtIpPortAccessPortIndex               OBJECT-TYPE
        SYNTAX  PortIndex
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The port index for port access entry."
        ::= { snRtIpPortAccessEntry 1 }

snRtIpPortAccessDirection               OBJECT-TYPE
        SYNTAX  INTEGER { in(1), out(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The incoming or outgoing check
                for port access."
        ::= { snRtIpPortAccessEntry 2 }

snRtIpPortAccessFilters                 OBJECT-TYPE
        SYNTAX  OCTET STRING
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "1st octet correspond to 1st  filter 
                number and so on."
        ::= { snRtIpPortAccessEntry 3 }

snRtIpPortAccessRowStatus       OBJECT-TYPE
        SYNTAX  RowSts
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "To create or delete a port access
                entry."
        ::= { snRtIpPortAccessEntry 4 }

-- ip interface configuration table

snRtIpPortConfigTable           OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpPortConfigEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP port Config table."
        ::= { snIp 8 }

snRtIpPortConfigEntry           OBJECT-TYPE
        SYNTAX  SnRtIpPortConfigEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP Port Config table."
        INDEX   { snRtIpPortConfigPortIndex }
        ::= { snRtIpPortConfigTable 1 }

SnRtIpPortConfigEntry ::= SEQUENCE {
        snRtIpPortConfigPortIndex
                PortIndex,
        snRtIpPortMtu
                INTEGER,
        snRtIpPortEncap
                INTEGER,
        snRtIpPortMetric
                INTEGER,
        snRtIpPortDirBcastFwd
                RtrStatus
        }

snRtIpPortConfigPortIndex       OBJECT-TYPE
        SYNTAX  PortIndex
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The port index for port config entry."
        ::= { snRtIpPortConfigEntry 1 }

snRtIpPortMtu                   OBJECT-TYPE
        SYNTAX  INTEGER (576..4470)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The maximun transfer unit."
        ::= { snRtIpPortConfigEntry 2 }

snRtIpPortEncap                 OBJECT-TYPE
        SYNTAX  INTEGER { 
                                         ethernet(1), 
                                         snap(2),
                                         hdlc(3),
                                         ppp(4)
                                        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Data link encapsulation to be used
                on the IP frame transmitted on the
                port."
        ::= { snRtIpPortConfigEntry 3 }

snRtIpPortMetric                OBJECT-TYPE
        SYNTAX  INTEGER (1..15)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The metric."
    DEFVAL  { 1 }
        ::= { snRtIpPortConfigEntry 4 }

snRtIpPortDirBcastFwd           OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Enable/Disable directed broadcast forwarding on the port."
    DEFVAL  { enabled }
        ::= { snRtIpPortConfigEntry 5 }



-- Broadcast forwarding group

snRtBcastFwd                OBJECT IDENTIFIER ::= { snIp 9 }
snRtBcastFwdGeneral         OBJECT IDENTIFIER ::= { snRtBcastFwd 1 }
snRtUdpBcastFwdPort         OBJECT IDENTIFIER ::= { snRtBcastFwd 2 }
snRtUdpHelper               OBJECT IDENTIFIER ::= { snRtBcastFwd 3 }

-- General UDP broadcast forwarding group

snRtUdpBcastFwdEnable         OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Enable or disable UDP broadcast forwarding service.
                When UDP broadcast forwarding is enabled, default
                entries are added to the UDP broadcast forwarding
                port table. When it is disabled, UDP broadcast
                forwarding port table is flushed to empty."
    DEFVAL     { enabled }
        ::= { snRtBcastFwdGeneral 1 }

-- UDP broadcast forwarding port table

snRtUdpBcastFwdPortTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtUdpBcastFwdPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "This table contains a list of UDP port numbers
                for which forwarding UDP broadcast is enabled."
        ::= { snRtUdpBcastFwdPort 1 }

snRtUdpBcastFwdPortEntry  OBJECT-TYPE
        SYNTAX  SnRtUdpBcastFwdPortEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry of the UDP broadcast forwarding
                port table."
        INDEX   { snRtUdpBcastFwdPortIndex }
        ::= { snRtUdpBcastFwdPortTable 1 }

SnRtUdpBcastFwdPortEntry ::= SEQUENCE {
        snRtUdpBcastFwdPortIndex
                INTEGER,
        snRtUdpBcastFwdPortNumber
                INTEGER,
        snRtUdpBcastFwdPortRowStatus
                RowSts
        }

snRtUdpBcastFwdPortIndex      OBJECT-TYPE
        SYNTAX  INTEGER (1..20)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for a UDP broadcast forwarding
                port entry."
        ::= { snRtUdpBcastFwdPortEntry 1 }

snRtUdpBcastFwdPortNumber     OBJECT-TYPE
        SYNTAX  INTEGER (1..65535)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "UDP port number for which UDP broadcast forwarding
                is enabled."
        ::= { snRtUdpBcastFwdPortEntry 2 }

snRtUdpBcastFwdPortRowStatus  OBJECT-TYPE
        SYNTAX  RowSts
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "To create or delete a UDP broadcast forwarding
                port entry."
        ::= { snRtUdpBcastFwdPortEntry 3 }

-- UDP helper table

snRtUdpHelperTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtUdpHelperEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "UDP helper table."
        ::= { snRtUdpHelper 1 }

snRtUdpHelperEntry  OBJECT-TYPE
        SYNTAX  SnRtUdpHelperEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry of the UDP helper table."
        INDEX   { snRtUdpHelperPortIndex, snRtUdpHelperIndex }
        ::= { snRtUdpHelperTable 1 }

SnRtUdpHelperEntry ::= SEQUENCE {
        snRtUdpHelperPortIndex
                PortIndex,
        snRtUdpHelperIndex
                INTEGER,
        snRtUdpHelperAddr
                IpAddress,
        snRtUdpHelperRowStatus
                RowSts
        }

snRtUdpHelperPortIndex  OBJECT-TYPE
        SYNTAX  PortIndex
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The port index for a UDP helper entry."
        ::= { snRtUdpHelperEntry 1 }

snRtUdpHelperIndex      OBJECT-TYPE
        SYNTAX  INTEGER (1..4)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for a UDP helper entry."
        ::= { snRtUdpHelperEntry 2 }

snRtUdpHelperAddr       OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The UDP helper address. This is the address that
                UDP packets will be forwarded. It can be a helper
                address or a subnet broadcast address. But it
                cannot be 255.255.255.255 or 0.0.0.0."
        ::= { snRtUdpHelperEntry 3 }

snRtUdpHelperRowStatus  OBJECT-TYPE
        SYNTAX  RowSts
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "To create or delete a UDP helper entry."
        ::= { snRtUdpHelperEntry 4 }

-- Trace route group
-- This group uses the following method to detect routes used to reach
-- a destination address. The originating router sends a probe packet
-- (a UDP packet) to the destination address with TTL of 1. The first
-- router that receives this packet decrements the TTL, then drops the
-- packet and returns a ICMP packet to the originator. The originating
-- router records the route in snRtIpTraceRouteResultTable. The ori-
-- ginating router sends a probe packet (a UDP packet) to the des-
-- tination address with TTL of 2. The second router that receives
-- this packet decrements the TTL, then drops the packet and returns
-- a ICMP packet to the originator. The originating router records the
-- route in snRtIpTraceRouteResultTable. This procedure is repeated
-- until the destination is reached, or the maximum TTL is reached.

snRtIpTraceRoute            OBJECT IDENTIFIER ::= { snIp 10 }
snRtIpTraceRouteGeneral     OBJECT IDENTIFIER ::= { snRtIpTraceRoute 1 }
snRtIpTraceRouteResult      OBJECT IDENTIFIER ::= { snRtIpTraceRoute 2 }

-- General trace route group

snRtIpTraceRouteTargetAddr  OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Target IP address of which trace route is performed."
        ::= { snRtIpTraceRouteGeneral 1 }

snRtIpTraceRouteMinTtl      OBJECT-TYPE
        SYNTAX  INTEGER (1..255)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Minimum TTL value carried in the first probe packet."
    DEFVAL { 1 }
        ::= { snRtIpTraceRouteGeneral 2 }

snRtIpTraceRouteMaxTtl      OBJECT-TYPE
        SYNTAX  INTEGER (1..255)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Maximum TTL value carried in the last probe packet."
    DEFVAL { 30 }
        ::= { snRtIpTraceRouteGeneral 3 }

snRtIpTraceRouteTimeOut     OBJECT-TYPE
        SYNTAX  INTEGER (1..120)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Time out period (in seconds) to wait for the response
                from the probe packet (i,e, the ICMP packet)."
    DEFVAL { 2 }
        ::= { snRtIpTraceRouteGeneral 4 }

snRtIpTraceRouteControl     OBJECT-TYPE
        SYNTAX  INTEGER {
                                start(1),
                                abort(2),
                                success(3),
                                failure(4),
                                inProgress(5)
                        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Only 'start' and 'abort' are writable values; 'success',
                'failure' and 'inProgress' are readeable (or returned)
                values.
                
                Writing 'start' to this object to initiate the trace route
                operation. snRtIpTraceRouteDestAddr must have been init-
                ialized before 'start' is writen.

                This object will return 'inProgress' after trace route
                operation has started. During the 'inProgress' state,
                writing 'abort' to this object will stop the current
                trace route operation.

                If the destination address is reached, this object
                returned 'success'. snRtIpTraceRouteResultTable
                contains the routes (and the target address) to
                reach the destination address. If the destination
                address does not reach, timeout, or ending TTL
                reached, 'failure' is returned."
        ::= { snRtIpTraceRouteGeneral 5 }

-- Trace route result table

snRtIpTraceRouteResultTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpTraceRouteResultEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "Trace route result table."
        ::= { snRtIpTraceRouteResult 1 }

snRtIpTraceRouteResultEntry  OBJECT-TYPE
        SYNTAX  SnRtIpTraceRouteResultEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry of the trace route result table."
        INDEX   { snRtIpTraceRouteResultIndex }
        ::= { snRtIpTraceRouteResultTable 1 }

SnRtIpTraceRouteResultEntry ::= SEQUENCE {
        snRtIpTraceRouteResultIndex
                INTEGER,
        snRtIpTraceRouteResultAddr
                IpAddress,
        snRtIpTraceRouteResultRoundTripTime1
                TimeTicks,
        snRtIpTraceRouteResultRoundTripTime2
                TimeTicks
        }

snRtIpTraceRouteResultIndex          OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for a trace route result entry."
        ::= { snRtIpTraceRouteResultEntry 1 }

snRtIpTraceRouteResultAddr           OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The router or the target address of which forms
                part of the route to reach the destination address."
        ::= { snRtIpTraceRouteResultEntry 2 }

snRtIpTraceRouteResultRoundTripTime1 OBJECT-TYPE
        SYNTAX  TimeTicks
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The round trip time between the first probe packet
                transmitted and the reponse ICMP packet received."
        ::= { snRtIpTraceRouteResultEntry 3 }

snRtIpTraceRouteResultRoundTripTime2 OBJECT-TYPE
        SYNTAX  TimeTicks
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The round trip time between the second probe packet
                transmitted and the reponse ICMP packet received."
        ::= { snRtIpTraceRouteResultEntry 4 }

-- IP forwarding cache table

snRtIpFwdCacheTable  OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpFwdCacheEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP forwarding cache table."
        ::= { snIp 11 }

snRtIpFwdCacheEntry  OBJECT-TYPE
        SYNTAX  SnRtIpFwdCacheEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP forwarding cache table."
        INDEX   { snRtIpFwdCacheIndex }
        ::= { snRtIpFwdCacheTable 1 }

SnRtIpFwdCacheEntry ::= SEQUENCE {
        snRtIpFwdCacheIndex
                INTEGER,
        snRtIpFwdCacheIp
                IpAddress,
        snRtIpFwdCacheMac
                OCTET STRING,
        snRtIpFwdCacheNextHopIp
                IpAddress,
        snRtIpFwdCacheOutgoingPort
                INTEGER,
        snRtIpFwdCacheType
                INTEGER,
        snRtIpFwdCacheAction
                INTEGER,
        snRtIpFwdCacheFragCheck
                INTEGER,
        snRtIpFwdCacheSnapHdr
                INTEGER,
        snRtIpFwdCacheVLanId
                INTEGER
        }

snRtIpFwdCacheIndex         OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for a ip forwarding cache table entry."
        ::= { snRtIpFwdCacheEntry 1 }

snRtIpFwdCacheIp            OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The IP address of a station."
        ::= { snRtIpFwdCacheEntry 2 }

snRtIpFwdCacheMac           OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE (6))
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The Mac address of an IP station."
        ::= { snRtIpFwdCacheEntry 3 }

snRtIpFwdCacheNextHopIp     OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The next hop router IP address."
        ::= { snRtIpFwdCacheEntry 4 }

snRtIpFwdCacheOutgoingPort  OBJECT-TYPE
        SYNTAX  INTEGER (0..3900)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The outgoing port of which packets will forward to.
                Return port value of zero to indicate no outgoing port
                associated to this entry. Non-zero value has the
                following meanings:
                The bit 0 to bit 7: port number.
                The bit 8 to bit 11: slot number.
                For virtual router interface, slot number is 15,
                port number is the virtual router port from 1 to 60."
        ::= { snRtIpFwdCacheEntry 5 }

snRtIpFwdCacheType          OBJECT-TYPE
        SYNTAX  INTEGER { dynamic(1), permanent(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The 'dynamic' or 'permanent' type for a ip forwarding
                cache table entry."
        ::= { snRtIpFwdCacheEntry 6 }

snRtIpFwdCacheAction        OBJECT-TYPE
        SYNTAX  INTEGER {
                        other(1),
                        forward(2),
                        forUs(3),
                        waitForArp(4),
                        complexFilter(5),
                        icmpDeny(6),
                        dropPacket(7)
                        }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The action to take."
        ::= { snRtIpFwdCacheEntry 7 }

snRtIpFwdCacheFragCheck     OBJECT-TYPE
        SYNTAX  INTEGER { disabled(0), enabled(1) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Check for fragmentation."
        ::= { snRtIpFwdCacheEntry 8 }

snRtIpFwdCacheSnapHdr       OBJECT-TYPE
        SYNTAX  INTEGER { disabled(0), enabled(1) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Apply SNAP encapsulation."
        ::= { snRtIpFwdCacheEntry 9 }

snRtIpFwdCacheVLanId        OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The VLAN ID for a ip forwarding cache table entry.
                Return VLAN ID value of zero to indicate no VLAN
                associated to this entry."
        ::= { snRtIpFwdCacheEntry 10 }


-- SECTION 2: MIB 

-- Router IP RIP MIB

snRtIpRipGeneral                        OBJECT IDENTIFIER ::= { snRip 1 }

-- IP RIP general group

snRtIpRipEnable                 OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Enable/disable ip rip routing."
        ::= { snRtIpRipGeneral 1 }

snRtIpRipUpdateTime             OBJECT-TYPE
        SYNTAX  INTEGER (1..1000)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Ip rip update interval in seconds."
        ::= { snRtIpRipGeneral 2 }

snRtIpRipRedisEnable            OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Enable/disable redistribution to rip."
        ::= { snRtIpRipGeneral 3 }

snRtIpRipRedisDefMetric         OBJECT-TYPE
        SYNTAX  INTEGER (1..15)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Default metric to be used when redistribute route to rip."
        ::= { snRtIpRipGeneral 4 }

snRtIpRipSetAllPortConfig       OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The value of this object is an index number of a
                snRtIpRipPortConfigTable row (i.e. snRtIpRipPortConfigPortIndex),
                which is the selected row to copy all of its read-writable data
                (i.e. snRtIpRipPortVersion and snRtIpRipPortPoisonReverse) to the
                rest of the rows in snRtIpRipPortConfigTable.
                Note: prior setting this object, all the intended data of the
                given row of the table must be set. Otherwise, the current data
                of the row will be used to set the entire ip rip port configuration
                table. The previous setting will be overwritten by the new one."
        ::= { snRtIpRipGeneral 5 }

snRtIpRipGblFiltList            OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE(1..64))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "An ip rip global filter list, of which each octet contains a
                filter ID number that forms a group of filters. A valid entry
                in the snRtIpRipRouteFilterTable with the corresponding filter
                ID number (i.e. snRtIpRipRouteFilterId) must have been created
                before a filter list is initialized."
        ::= { snRtIpRipGeneral 6 }

snRtIpRipFiltOnAllPort          OBJECT-TYPE
        SYNTAX  INTEGER {
            valid(1),
            deleteAllInBound(2),
            deleteAllOutBound(3),
            addAllInBound(4),
            addAllOutBound(5)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Apply the ip rip global filter list snRtIpRipGblFiltList to
                all interfaces. This object is used to add all rip filter
                lists and delete all rip filter lists to/from all interfaces.
                Prior to sending this command, snRtIpRipGblFiltList must have
                been set to a proper filter list.

                The values that can be written are:
                deleteAllInBound(2)...delete all in-bound filter lists from all ports.
                deleteAllOutBound(3)..delete all out-bound filter lists from all ports.
                addAllInBound(4)......add all in-bound filter lists to all ports.
                addAllOutBound(5).....add all out-bound filter lists to all ports.

                If set operation failed, then a SET with value of (2) or (3)
                returns error code 'GenError'. If succeed, entries in the
                filter list are deleted immediately.

                The following values can be returned on reads:
                valid(1)....set operation is done and is valid."
        ::= { snRtIpRipGeneral 7 }

snRtIpRipDistance         OBJECT-TYPE
        SYNTAX  INTEGER (1..255)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Administration distance."
        ::= { snRtIpRipGeneral 8 }

-- IP RIP port configuration table

snRtIpRipPortConfigTable        OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpRipPortConfigEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP Rip port Config table."
        ::= { snRip 2 }

snRtIpRipPortConfigEntry        OBJECT-TYPE
        SYNTAX  SnRtIpRipPortConfigEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP Rip Port Config table."
        INDEX   { snRtIpRipPortConfigPortIndex }
        ::= { snRtIpRipPortConfigTable 1 }

SnRtIpRipPortConfigEntry ::= SEQUENCE {
        snRtIpRipPortConfigPortIndex
                PortIndex,
        snRtIpRipPortVersion
                INTEGER,
        snRtIpRipPortPoisonReverse
                RtrStatus,
        snRtIpRipPortLearnDefault
                INTEGER
        }

snRtIpRipPortConfigPortIndex    OBJECT-TYPE
        SYNTAX  PortIndex
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The port index for ip rip port config entry."
        ::= { snRtIpRipPortConfigEntry 1 }

snRtIpRipPortVersion            OBJECT-TYPE
        SYNTAX  INTEGER { disabled(0), v1Only(1), v2Only(2), v1CompatibleV2(3) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The ip rip version on this port."
        ::= { snRtIpRipPortConfigEntry 2 }

snRtIpRipPortPoisonReverse      OBJECT-TYPE
        SYNTAX  RtrStatus
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Enable/disable poison reverse."
        ::= { snRtIpRipPortConfigEntry 3 }

snRtIpRipPortLearnDefault          OBJECT-TYPE
        SYNTAX  INTEGER {
                disabled(0),             
                enabled(1)
        }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Apply the RIP router protocol learn-default option to the
                interface.  The values that can be written are:
                disabled(0)...deleted the learn default option.
                enabled(1)....enabled the learn default option."
        ::= { snRtIpRipPortConfigEntry 4 }

-- redistribution table

snRtIpRipRedisTable             OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpRipRedisEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "IP Rip Redistribution table."
        ::= { snRip 3 }

snRtIpRipRedisEntry             OBJECT-TYPE
        SYNTAX  SnRtIpRipRedisEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the IP Rip Redistribution table."
        INDEX   { snRtIpRipRedisIndex }
        ::= { snRtIpRipRedisTable 1 }

SnRtIpRipRedisEntry ::= SEQUENCE {
        snRtIpRipRedisIndex
                INTEGER,        
        snRtIpRipRedisAction
                Action,
        snRtIpRipRedisProtocol
                INTEGER,
        snRtIpRipRedisIp
                IpAddress,
        snRtIpRipRedisMask
                IpAddress,
        snRtIpRipRedisMatchMetric
                Metric,
        snRtIpRipRedisSetMetric
                INTEGER,
        snRtIpRipRedisRowStatus
                RowSts
        }
                        
snRtIpRipRedisIndex             OBJECT-TYPE
        SYNTAX  INTEGER (1..64)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The table index for a IP Rip Redistribution entry."
        ::= { snRtIpRipRedisEntry 1 }

snRtIpRipRedisAction            OBJECT-TYPE
        SYNTAX  Action
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The action to take when match this 
                IP Rip Redistribution entry."
        ::= { snRtIpRipRedisEntry 2 }

snRtIpRipRedisProtocol          OBJECT-TYPE
        SYNTAX  INTEGER { other(1), all(2), static(3), ospf(4), bgp(5) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The protocol to be distributed. other(1) cannot be 
                 used for SNMP-SET." 
        ::= { snRtIpRipRedisEntry 3 }

snRtIpRipRedisIp        OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The ip address of the ip route to be distributed.
                0.0.0.0 - all routes" 
        ::= { snRtIpRipRedisEntry 4 }

                
snRtIpRipRedisMask              OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The ip subnet mask of the ip route to be distributed." 
        ::= { snRtIpRipRedisEntry 5 }

snRtIpRipRedisMatchMetric       OBJECT-TYPE
        SYNTAX  Metric
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The metric of the route to be matched
                to determine the redistribution.
                0 - any metric value" 
        ::= { snRtIpRipRedisEntry 6 }

snRtIpRipRedisSetMetric         OBJECT-TYPE
        SYNTAX  INTEGER (0..15)
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The new metric of the route to be advertised.
                0 - use the default metric." 
        ::= { snRtIpRipRedisEntry 7 }

snRtIpRipRedisRowStatus         OBJECT-TYPE
        SYNTAX  RowSts
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "To create or delete a Redistribution entry."
        ::= { snRtIpRipRedisEntry 8 }

-- IP RIP route filter table

snRtIpRipRouteFilterTable         OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpRipRouteFilterEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "ip rip route filter table."
        ::= { snRip 4 }

snRtIpRipRouteFilterEntry         OBJECT-TYPE
        SYNTAX  SnRtIpRipRouteFilterEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry of the ip rip route filter table."
        INDEX   { snRtIpRipRouteFilterId }
        ::= { snRtIpRipRouteFilterTable 1 }

SnRtIpRipRouteFilterEntry ::= SEQUENCE {
        snRtIpRipRouteFilterId
                INTEGER,
        snRtIpRipRouteFilterAction
                Action,
        snRtIpRipRouteFilterIpAddr
                IpAddress,
        snRtIpRipRouteFilterSubnetMask
                IpAddress,
        snRtIpRipRouteFilterRowStatus
                INTEGER
        }

snRtIpRipRouteFilterId         OBJECT-TYPE
        SYNTAX  INTEGER (1..64)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The filter ID to identify a filter entry."
        ::= { snRtIpRipRouteFilterEntry 1 }

snRtIpRipRouteFilterAction         OBJECT-TYPE
        SYNTAX  Action 
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Action to take if the ip rip packet matched
                with this filter."
        ::= { snRtIpRipRouteFilterEntry 2 }

snRtIpRipRouteFilterIpAddr     OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Route IP address to compare with any route IP addresses
                in a ip rip packet. IP address 0.0.0.0 always compare
                equals to any route IP addresses in any ip rip packets."
        ::= { snRtIpRipRouteFilterEntry 3 }

snRtIpRipRouteFilterSubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Subnet mask to apply to the route IP address in a ip rip
                packet, the result is compared to snRtIpRipRouteFilterIpAddr.
                If snRtIpRipRouteFilterIpAddr is 0.0.0.0, this subnet mask
                value is ignored."
        ::= { snRtIpRipRouteFilterEntry 4 }

snRtIpRipRouteFilterRowStatus  OBJECT-TYPE
        SYNTAX  INTEGER {
            invalid(1),
            valid(2),
            delete(3),
            create(4),
            modify(5)
        }
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
                "This object is used to create and
                delete row in the table and control
                if they are used. The values
                that can be written are:
                delete(3)...deletes the row
                create(4)...creates a new row
                modify(5)...modifies an exsisting row

                If the row exists, then a SET with
                value of create(4) returns error
                'badValue'. Deleted rows go away
                immediately. The following values
                can be returned on reads:
                invalid(1)...Setting it to 'invalid' has the effect of
                             rendering it inoperative.
                valid(2).....the row exists and is valid"
        ::= { snRtIpRipRouteFilterEntry 5 }

-- IP RIP neighbor filter table

snRtIpRipNbrFilterTable      OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpRipNbrFilterEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "ip rip neighbor filter table."
        ::= { snRip 5 }

snRtIpRipNbrFilterEntry      OBJECT-TYPE
        SYNTAX  SnRtIpRipNbrFilterEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry of the ip rip neighbor filter table."
        INDEX   { snRtIpRipNbrFilterId }
        ::= { snRtIpRipNbrFilterTable 1 }

SnRtIpRipNbrFilterEntry ::= SEQUENCE {
        snRtIpRipNbrFilterId
                INTEGER,
        snRtIpRipNbrFilterAction
                Action,
        snRtIpRipNbrFilterSourceIp
                IpAddress,
        snRtIpRipNbrFilterRowStatus
                INTEGER
        }

snRtIpRipNbrFilterId         OBJECT-TYPE
        SYNTAX  INTEGER (1..64)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The filter ID to identify a filter entry."
        ::= { snRtIpRipNbrFilterEntry 1 }

snRtIpRipNbrFilterAction         OBJECT-TYPE
        SYNTAX  Action 
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Action to take if the ip rip packet source IP
                address compares equal to the source IP address
                in this filter."
        ::= { snRtIpRipNbrFilterEntry 2 }

snRtIpRipNbrFilterSourceIp   OBJECT-TYPE
        SYNTAX  IpAddress
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Source IP address to compare with the source IP
                address in a ip rip packet. IP address 0.0.0.0
                always compares equal to any source IP addresses
                in any ip rip packets."
        ::= { snRtIpRipNbrFilterEntry 3 }

snRtIpRipNbrFilterRowStatus  OBJECT-TYPE
        SYNTAX  INTEGER {
            invalid(1),
            valid(2),
            delete(3),
            create(4),
            modify(5)
        }
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
                "This object is used to create and
                delete row in the table and control
                if they are used. The values
                that can be written are:
                delete(3)...deletes the row
                create(4)...creates a new row
                modify(5)...modifies an exsisting row

                If the row exists, then a SET with
                value of create(4) returns error
                'badValue'. Deleted rows go away
                immediately. The following values
                can be returned on reads:
                invalid(1)...Setting it to 'invalid' has the effect of
                             rendering it inoperative.
                valid(2).....the row exists and is valid"
        ::= { snRtIpRipNbrFilterEntry 4 }

-- IP RIP port access table

snRtIpRipPortAccessTable             OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnRtIpRipPortAccessEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "ip interface rip access table."
        ::= { snRip 6 }

snRtIpRipPortAccessEntry             OBJECT-TYPE
        SYNTAX  SnRtIpRipPortAccessEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry of the ip interface rip access table."
        INDEX   { snRtIpRipPortAccessPort, snRtIpRipPortAccessDir }
        ::= { snRtIpRipPortAccessTable 1 }

SnRtIpRipPortAccessEntry ::= SEQUENCE {
        snRtIpRipPortAccessPort
                PortIndex,
        snRtIpRipPortAccessDir
                INTEGER,
        snRtIpRipPortAccessFilterList
                OCTET STRING,
        snRtIpRipPortAccessRowStatus
                INTEGER
        }

snRtIpRipPortAccessPort      OBJECT-TYPE
        SYNTAX  PortIndex
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The ip interface to which the rip filter applies."
        ::= { snRtIpRipPortAccessEntry 1 }

snRtIpRipPortAccessDir       OBJECT-TYPE
        SYNTAX  INTEGER { in(1), out(2) }
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The access direction of incoming packet filter
                or outgoing packet filter."
        ::= { snRtIpRipPortAccessEntry 2 }

snRtIpRipPortAccessFilterList  OBJECT-TYPE
        SYNTAX  OCTET STRING (SIZE(1..64))
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "An ip rip filter list, of which each octet contains
                a filter ID number that forms a group of filters. A
                valid entry in the snRtIpRipRouteFilterTable with the
                corresponding filter ID number (i.e. snRtIpRipRouteFilterId)
                must have been created before a filter list is initialized."
        ::= { snRtIpRipPortAccessEntry 3 }

snRtIpRipPortAccessRowStatus   OBJECT-TYPE
        SYNTAX   INTEGER {
            invalid(1),
            valid(2),
            delete(3),
            create(4),
            modify(5)
        }
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
                "This object is used to create and
                delete row in the table and control
                if they are used. The values
                that can be written are:
                delete(3)...deletes the row
                create(4)...creates a new row
                modify(5)...modifies an exsisting row

                If the row exists, then a SET with
                value of create(4) returns error
                'badValue'. Deleted rows go away
                immediately. The following values
                can be returned on reads:
                invalid(1)...Setting it to 'invalid' has the effect of
                             rendering it inoperative.
                valid(2).....the row exists and is valid"
        ::= { snRtIpRipPortAccessEntry 4 }

-- DVMRP MIB

snDvmrpMIBObjects OBJECT IDENTIFIER ::= { snDvmrp 1 }

snDvmrpVersion OBJECT-TYPE
    SYNTAX     DisplayString (SIZE(0..255))
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The router's DVMRP version information."
    ::= { snDvmrpMIBObjects 1 }

snDvmrpEnable OBJECT-TYPE
    SYNTAX     RtrStatus
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "Enable or disable DVMRP on this router."
    DEFVAL     { disabled }
    ::= { snDvmrpMIBObjects 2 }

snDvmrpGenerationId OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The generation identifier for the routing process.  This is
            used by neighboring routers to detect whether pruning
            information should be resent."
    ::= { snDvmrpMIBObjects 3 }

snDvmrpProbeInterval OBJECT-TYPE
    SYNTAX     INTEGER (5..30)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the time interval at which the router sends out
            probe messages to discover neighbour routers. Value is
            in number of seconds. snDvmrpEnable must be 'enabled'
            before this object is writen."
    DEFVAL     { 10 }
    ::= { snDvmrpMIBObjects 4 }

snDvmrpReportInterval OBJECT-TYPE
    SYNTAX     INTEGER (10..2000)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the time interval at which the router sends out
            full report messages. Value is in number of seconds.
            snDvmrpEnable must be 'enabled' before this object is
            writen."
    DEFVAL     { 60 }
    ::= { snDvmrpMIBObjects 5 }

snDvmrpTriggerInterval OBJECT-TYPE
    SYNTAX     INTEGER (5..30)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the time interval at which triggered updates are
            sent out. Value is in number of seconds. snDvmrpEnable must
            be 'enabled' before this object is writen."
    DEFVAL     { 5 }
    ::= { snDvmrpMIBObjects 6 }

snDvmrpNeighborRouterTimeout OBJECT-TYPE
    SYNTAX     INTEGER (60..8000)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the time interval after which the neighbour router
            is considered down. Value is in number of seconds. snDvmrpEnable
            must be 'enabled' before this object is writen."
    DEFVAL     { 180 }
    ::= { snDvmrpMIBObjects 7 }

snDvmrpRouteExpireTime OBJECT-TYPE
    SYNTAX     INTEGER (20..4000)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the time interval after which the route expires
            and becomes unreachable. Value is in number of seconds.
            snDvmrpEnable must be 'enabled' before this object is writen."
    DEFVAL     { 200 }
    ::= { snDvmrpMIBObjects 8 }

snDvmrpRouteDiscardTime OBJECT-TYPE
    SYNTAX     INTEGER (40..8000)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the time interval after which a route is discarded
            from the route table. Value is in number of seconds.
            snDvmrpEnable must be 'enabled' before this object is writen."
    DEFVAL     { 340 }
    ::= { snDvmrpMIBObjects 9 }

snDvmrpPruneAge OBJECT-TYPE
    SYNTAX     INTEGER (20..3600)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the duration of time for which the prune state
            is stored. Value is in number of seconds. snDvmrpEnable
            must be 'enabled' before this object is writen."
    DEFVAL     { 180 }
    ::= { snDvmrpMIBObjects 10 }

snDvmrpGraftRetransmitTime OBJECT-TYPE
    SYNTAX     INTEGER (5..3600)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the time interval after which a graft message will
            be retransmitted if graft acknowledge message has not been
            received. Value is in number of seconds. snDvmrpEnable must
            be 'enabled' before this object is writen."
    DEFVAL     { 10 }
    ::= { snDvmrpMIBObjects 11 }

snDvmrpDefaultRoute OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the IP address of a router that is connected to one
            of the directly attached subnet. If a multicast route is not
            present on the local router, this default route will be used
            for multicast forwarding. snDvmrpEnable must be 'enabled'
            before this object is writen."
    ::= { snDvmrpMIBObjects 12 }

-- The DVMRP Virtual Interface Table

snDvmrpVInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnDvmrpVInterfaceEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The (conceptual) table listing the router's DVMRP virtual
            interfaces. snDvmrpEnable must be 'enabled' before this
            table is read or writen."
    ::= { snDvmrpMIBObjects 13 }

snDvmrpVInterfaceEntry OBJECT-TYPE
    SYNTAX     SnDvmrpVInterfaceEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the snDvmrpVInterfaceTable.
            This row augments ipMRouteInterfaceEntry in the IP
            Multicast MIB, where the threshold object resides."
    INDEX      { snDvmrpVInterfaceVifIndex }
    ::= { snDvmrpVInterfaceTable 1 }

SnDvmrpVInterfaceEntry ::= SEQUENCE {
    snDvmrpVInterfaceVifIndex              INTEGER,
    snDvmrpVInterfaceType                  INTEGER,
    snDvmrpVInterfaceOperState             INTEGER,
    snDvmrpVInterfaceLocalAddress          IpAddress,
    snDvmrpVInterfaceRemoteAddress         IpAddress,
    snDvmrpVInterfaceRemoteSubnetMask      IpAddress,
    snDvmrpVInterfaceMetric                INTEGER,
    snDvmrpVInterfaceTtlThreshold          INTEGER,
    snDvmrpVInterfaceAdvertiseLocal        RtrStatus,
    snDvmrpVInterfaceEncapsulation         RtrStatus,
    snDvmrpVInterfaceStatus                INTEGER }

snDvmrpVInterfaceVifIndex OBJECT-TYPE
    SYNTAX     INTEGER (1..48)
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The ifIndex value of this DVMRP virtual interface."
    ::= { snDvmrpVInterfaceEntry 1 }

snDvmrpVInterfaceType OBJECT-TYPE
    SYNTAX     INTEGER { tunnel(1), querier(2), subnet(3) }
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The type of this DVMRP virtual interface, whether it uses
            a tunnel, a physical interface for which we are a querier,
            or a physical interface for which we are not a querier.
                        For write operation, this object can only accept tunnel(1)
                        to configure a tunnel interface or subnet(3) to configure
                        a physical interface."
    ::= { snDvmrpVInterfaceEntry 2 }

snDvmrpVInterfaceOperState OBJECT-TYPE
    SYNTAX     INTEGER { up(1), down(2) }
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The current operational state of this DVMRP virtual
            interface."
    ::= { snDvmrpVInterfaceEntry 3 }

snDvmrpVInterfaceLocalAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The IP address of the local end of this DVMRP virtual
            interface."
    ::= { snDvmrpVInterfaceEntry 4 }

snDvmrpVInterfaceRemoteAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The IP address of the remote end of this DVMRP virtual
            interface.  For a tunnel, this is the IP address of the
            neighboring router.  For a subnet, this is the subnet
            address."
    ::= { snDvmrpVInterfaceEntry 5 }

snDvmrpVInterfaceRemoteSubnetMask OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The subnet mask for a directly connected subnet.  For
            a tunnel, this should be 0.0.0.0."
    ::= { snDvmrpVInterfaceEntry 6 }

snDvmrpVInterfaceMetric OBJECT-TYPE
    SYNTAX     INTEGER (1..31)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The distance metric for this DVMRP virtual interface which
            is used to calculate distance vectors."
    DEFVAL     { 1 }
    ::= { snDvmrpVInterfaceEntry 7 }

snDvmrpVInterfaceTtlThreshold OBJECT-TYPE
    SYNTAX     INTEGER (1..254)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the minimum time-to-live value to forward the packets
            out of this virtual interface."
    DEFVAL     { 1 }
    ::= { snDvmrpVInterfaceEntry 8 }

snDvmrpVInterfaceAdvertiseLocal OBJECT-TYPE
    SYNTAX     RtrStatus
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "Enable or disable the advertising of this local route."
    DEFVAL     { enabled }
    ::= { snDvmrpVInterfaceEntry 9 }

snDvmrpVInterfaceEncapsulation OBJECT-TYPE
    SYNTAX     RtrStatus
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "Enable or disable the encapsulation of the DVMRP control
            packets when using IPINIP encapsulation."
    DEFVAL     { disabled }
    ::= { snDvmrpVInterfaceEntry 10 }


snDvmrpVInterfaceStatus OBJECT-TYPE
    SYNTAX     INTEGER {
                    invalid(1),
                    valid(2),
                    delete(3),
                    create(4),
                    modify(5)
               }
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
                        "This object is used to create and
                     delete row in the table and control
                         if they are used. The values
                     that can be written are:
                     delete(3)...deletes the row
                     create(4)...creates a new row
                     modify(5)...modifies an exsisting row

                     If the row exists, then a SET with
                     value of create(4) returns error
                     'badValue'. Deleted rows go away
                     immediately. The following values
                     can be returned on reads:
                     invalid(1)...Setting it to 'invalid' has the effect of
                          rendering it inoperative.
                     valid(2)....Setting it to 'valid' has the effect of
                         changing the row to operative."
    ::= { snDvmrpVInterfaceEntry 11 }


-- The DVMRP Neighbor Table

snDvmrpNeighborTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnDvmrpNeighborEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The (conceptual) table listing the router's DVMRP
            neighbors, as discovered by receiving Neighbor Probe
            messages. snDvmrpEnable must be 'enabled' before this
            table is read."
    ::= { snDvmrpMIBObjects 14 }

snDvmrpNeighborEntry OBJECT-TYPE
    SYNTAX     SnDvmrpNeighborEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the snDvmrpNeighborTable."
    INDEX      { snDvmrpNeighborEntryIndex }
    ::= { snDvmrpNeighborTable 1 }

SnDvmrpNeighborEntry ::= SEQUENCE {
    snDvmrpNeighborEntryIndex      INTEGER,
    snDvmrpNeighborVifIndex        INTEGER,
    snDvmrpNeighborAddress         IpAddress,
    snDvmrpNeighborUpTime          TimeTicks,
    snDvmrpNeighborExpiryTime      TimeTicks,
    snDvmrpNeighborGenerationId    INTEGER,
    snDvmrpNeighborMajorVersion    INTEGER,
    snDvmrpNeighborMinorVersion    INTEGER,
    snDvmrpNeighborCapabilities    INTEGER }

snDvmrpNeighborEntryIndex OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The table entry index."
    ::= { snDvmrpNeighborEntry 1 }

snDvmrpNeighborVifIndex OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The value of VifIndex for the virtual interface used to
            reach this DVMRP neighbor."
    ::= { snDvmrpNeighborEntry 2 }

snDvmrpNeighborAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The IP address of the DVMRP neighbor for which this entry
            contains information."
    ::= { snDvmrpNeighborEntry 3 }

snDvmrpNeighborUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The time since this DVMRP neighbor (last) became a neighbor
            of the local router."
    ::= { snDvmrpNeighborEntry 4 }

snDvmrpNeighborExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The minimum time remaining before this DVMRP neighbor will
            be aged out."
    ::= { snDvmrpNeighborEntry 5 }

snDvmrpNeighborGenerationId OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The neighboring router's generation identifier."
    ::= { snDvmrpNeighborEntry 6 }

snDvmrpNeighborMajorVersion OBJECT-TYPE
    SYNTAX     INTEGER (0..255)
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The neighboring router's major DVMRP version number."
    ::= { snDvmrpNeighborEntry 7 }

snDvmrpNeighborMinorVersion OBJECT-TYPE
    SYNTAX     INTEGER (0..255)
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The neighboring router's minor DVMRP version number."
    ::= { snDvmrpNeighborEntry 8 }

snDvmrpNeighborCapabilities OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "This object describes the neighboring router's
             capabilities.  The following shows the position
             of each bit:

             bit position  meaning
             -----------   ------
                 3         mtrace bit
                 2         generationID bit
                 1         prune bit
                 0         leaf bit

             The leaf bit indicates that the neighbor has only
             one interface with neighbors.  The prune bit indicates
             that the neighbor supports pruning.  The generationID bit
             indicates that the neighbor sends its generationID in Probe
             messages.  The mtrace bit indicates that the neighbor can
             handle mtrace requests."
    ::= { snDvmrpNeighborEntry 9 }


-- The DVMRP Route Table

snDvmrpRouteTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnDvmrpRouteEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The routing table used by DVMRP in place of the unicast
            routing table. snDvmrpEnable must be 'enabled' before this
            table is read."
    ::= { snDvmrpMIBObjects 15 }

snDvmrpRouteEntry OBJECT-TYPE
    SYNTAX     SnDvmrpRouteEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) containing the multicast routing
            information used by DVMRP in place of the unicast routing
            information."
    INDEX      { snDvmrpRouteEntryIndex }
    ::= { snDvmrpRouteTable 1 }

SnDvmrpRouteEntry ::= SEQUENCE {
    snDvmrpRouteEntryIndex         INTEGER,
    snDvmrpRouteSource             IpAddress,
    snDvmrpRouteSourceMask         IpAddress,
    snDvmrpRouteUpstreamNeighbor   IpAddress,
    snDvmrpRouteVifIndex           INTEGER,
    snDvmrpRouteMetric             INTEGER,
    snDvmrpRouteExpiryTime         TimeTicks }

snDvmrpRouteEntryIndex OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The table entry index."
    ::= { snDvmrpRouteEntry 1 }

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

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

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

snDvmrpRouteVifIndex OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The value of snDvmrpVInterfaceVifIndex for the virtual
            interface on which IP datagrams sent by these sources are
            received."
    ::= { snDvmrpRouteEntry 5 }

snDvmrpRouteMetric OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The distance in hops to the source subnet."
    ::= { snDvmrpRouteEntry 6 }

snDvmrpRouteExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    ACCESS     read-only                          
    STATUS     mandatory
    DESCRIPTION
            "The minimum amount of time remaining before this entry will
            be aged out."
    ::= { snDvmrpRouteEntry 7 }

-- The DVMRP Routing Next Hop Table

snDvmrpRouteNextHopTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnDvmrpRouteNextHopEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The (conceptual) table containing information on the next
            hops on outgoing interfaces for routing IP multicast
            datagrams. snDvmrpEnable must be 'enabled' before this
            table is read."
    ::= { snDvmrpMIBObjects 16 }

snDvmrpRouteNextHopEntry OBJECT-TYPE
    SYNTAX     SnDvmrpRouteNextHopEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the list of next hops on
            outgoing interfaces to which IP multicast datagrams from
            particular sources are routed."
    INDEX      { snDvmrpRouteNextHopSource, snDvmrpRouteNextHopSourceMask,
                 snDvmrpRouteNextHopVifIndex }
    ::= { snDvmrpRouteNextHopTable 1 }

SnDvmrpRouteNextHopEntry ::= SEQUENCE {
    snDvmrpRouteNextHopSource             IpAddress,
    snDvmrpRouteNextHopSourceMask         IpAddress,
    snDvmrpRouteNextHopVifIndex           INTEGER,
    snDvmrpRouteNextHopType               INTEGER }

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

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

snDvmrpRouteNextHopVifIndex OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The snDvmrpVInterfaceVifIndex value of the virtual interface
            for the outgoing interface for this next hop."
    ::= { snDvmrpRouteNextHopEntry 3 }

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

-- The DVMRP Virtual Interface Statistics Table

snDvmrpVIfStatTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnDvmrpVIfStatEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The (conceptual) table listing the router's DVMRP virtual interface
            statistical counters. snDvmrpEnable must be 'enabled' before this
            table is read."
    ::= { snDvmrpMIBObjects 17 }

snDvmrpVIfStatEntry OBJECT-TYPE
    SYNTAX     SnDvmrpVIfStatEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the snDvmrpVIfStatTable."
    INDEX      { snDvmrpVIfStatVifIndex }
    ::= { snDvmrpVIfStatTable 1 }

SnDvmrpVIfStatEntry ::= SEQUENCE {
    snDvmrpVIfStatVifIndex              INTEGER,
    snDvmrpVIfStatInPkts                Counter,
    snDvmrpVIfStatOutPkts               Counter,
    snDvmrpVIfStatInOctets              Counter,
    snDvmrpVIfStatOutOctets             Counter,
    snDvmrpVIfStatInProbePkts           Counter,
    snDvmrpVIfStatOutProbePkts          Counter,
    snDvmrpVIfStatDiscardProbePkts      Counter,
    snDvmrpVIfStatInRtUpdatePkts        Counter,
    snDvmrpVIfStatOutRtUpdatePkts       Counter,
    snDvmrpVIfStatDiscardRtUpdatePkts   Counter,
    snDvmrpVIfStatInGraftPkts           Counter,
    snDvmrpVIfStatOutGraftPkts          Counter,
    snDvmrpVIfStatDiscardGraftPkts      Counter,
    snDvmrpVIfStatInGraftAckPkts        Counter,
    snDvmrpVIfStatOutGraftAckPkts       Counter,
    snDvmrpVIfStatDiscardGraftAckPkts   Counter,
    snDvmrpVIfStatInPrunePkts           Counter,
    snDvmrpVIfStatOutPrunePkts          Counter,
    snDvmrpVIfStatDiscardPrunePkts      Counter }

snDvmrpVIfStatVifIndex OBJECT-TYPE
    SYNTAX     INTEGER (1..65535)
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The ifIndex value of this DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 1 }

snDvmrpVIfStatInPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of packets that have arrived on the DVMRP
            virtual interface."
    ::= { snDvmrpVIfStatEntry 2 }

snDvmrpVIfStatOutPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of packets that have been sent on the DVMRP
            virtual interface."
    ::= { snDvmrpVIfStatEntry 3 }

snDvmrpVIfStatInOctets OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of octets that have arrived on the DVMRP
            virtual interface."
    ::= { snDvmrpVIfStatEntry 4 }

snDvmrpVIfStatOutOctets OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of octets that have been sent on the DVMRP
            virtual interface."
    ::= { snDvmrpVIfStatEntry 5 }

snDvmrpVIfStatInProbePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of probe packets that have arrived
            on the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 6 }

snDvmrpVIfStatOutProbePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of probe packets that have been sent
            on the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 7 }

snDvmrpVIfStatDiscardProbePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of probe packets that have been discarded
            by the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 8 }

snDvmrpVIfStatInRtUpdatePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of route update packets that have arrived
            on the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 9 }

snDvmrpVIfStatOutRtUpdatePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of route update packets that have been sent
            on the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 10 }

snDvmrpVIfStatDiscardRtUpdatePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of route update packets that have been
            discarded by the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 11 }

snDvmrpVIfStatInGraftPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft packets that have arrived
            on the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 12 }

snDvmrpVIfStatOutGraftPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft packets that have been sent
            on the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 13 }

snDvmrpVIfStatDiscardGraftPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft packets that have been discarded
            by the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 14 }

snDvmrpVIfStatInGraftAckPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft acknowledge packets that have arrived
            on the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 15 }

snDvmrpVIfStatOutGraftAckPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft acknowledge packets that have been
            sent on the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 16 }

snDvmrpVIfStatDiscardGraftAckPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft acknowledge packets that have been
            discarded by the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 17 }

snDvmrpVIfStatInPrunePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of prune packets that have arrived on the DVMRP
            virtual interface."
    ::= { snDvmrpVIfStatEntry 18 }

snDvmrpVIfStatOutPrunePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of prune packets that have been sent on the DVMRP
            virtual interface."
    ::= { snDvmrpVIfStatEntry 19 }

snDvmrpVIfStatDiscardPrunePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of prune packets that have been discarded
            by the DVMRP virtual interface."
    ::= { snDvmrpVIfStatEntry 20 }


-- FSRP MIB

snFsrpGlobal    OBJECT IDENTIFIER ::= { snFsrp 1 }
snFsrpIntf              OBJECT IDENTIFIER ::= { snFsrp 2 }

--  Section 1:  FSRP Global Variables

snFsrpGroupOperMode OBJECT-TYPE
        SYNTAX  INTEGER {
                disabled(0),             
                enabled(1)
                }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The FSRP is configured on this system
                 either enabled or disabled and the
                 default is disabled mode.
                 disabled(0)..........disable FSRP   
                 enabled(1)...........activate FSRP"
        ::= { snFsrpGlobal 1 }

snFsrpIfStateChangeTrap OBJECT-TYPE
        SYNTAX  INTEGER { disabled(0), enabled(1) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Indicates whether the SNMP agent process is
                permitted to generate FSRP interface state change
                traps."
    DEFVAL { enabled }
        ::= { snFsrpGlobal 2 }


--  Section 2: FSRP Interface Configuration Table

--      The FSRP (Foundry Standby Routing Protocol) Interface Table augments 
--              the ifTable with FSRP specific information.


     snFsrpIfTable OBJECT-TYPE
         SYNTAX   SEQUENCE OF SnFsrpIfEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The FSRP Interface Table describes the interfaces from
            the viewpoint of FSRP."
         ::= { snFsrpIntf 1 }

     snFsrpIfEntry OBJECT-TYPE
         SYNTAX   SnFsrpIfEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The FSRP Interface Entry describes one interface from
            the viewpoint of FSRP."
         INDEX { snFsrpIfPort, snFsrpIfIpAddress }
         ::= { snFsrpIfTable 1 }

     SnFsrpIfEntry ::=
         SEQUENCE {
             snFsrpIfPort
                             INTEGER,
             snFsrpIfIpAddress
                 IpAddress,
             snFsrpIfVirRtrIpAddr
                 IpAddress,
             snFsrpIfOtherRtrIpAddr
                 IpAddress,
             snFsrpIfPreferLevel
                 INTEGER,
             snFsrpIfTrackPortMask
                 PortMask,
                         snFsrpIfRowStatus 
                                 INTEGER,
                         snFsrpIfState
                                 INTEGER,
                         snFsrpIfKeepAliveTime 
                                 INTEGER,
                         snFsrpIfRouterDeadTime 
                                 INTEGER,
             snFsrpIfChassisTrackPortMask
                 OCTET STRING
         }


    snFsrpIfPort OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The physical router port of this FSRP interface."
         ::= { snFsrpIfEntry 1 }

     snFsrpIfIpAddress OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The IP Address of the physical router port of this
            interface."
         ::= { snFsrpIfEntry 2 }

     snFsrpIfVirRtrIpAddr OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The IP Address of the Virtual Router for the interface.
            The Virtual Router IP address need to be configured on 
            the interface before Redundant Router Function can operate
            on the interface.  This address has to be same on all the
            routers that going to participate in the Redundant Router
            Function on a given subnet."
         ::= { snFsrpIfEntry 3 }

     snFsrpIfOtherRtrIpAddr OBJECT-TYPE
         SYNTAX   IpAddress
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The IP Address of the Other Router on this ip subnet
            that operates FSRP and to whom the Keep Alive message
            need to be sent by this router.  This object must be
            configured for FSRP to work correctly"
         ::= { snFsrpIfEntry 4 }

     snFsrpIfPreferLevel OBJECT-TYPE
         SYNTAX   INTEGER (1..255)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The higher the number the higher the priority is.
            This parameter decides which router should becomes
            the Active Router for the interface.  A Router with
            higher priority selected to becomes the Active Router."
         DEFVAL { 100 }
         ::= { snFsrpIfEntry 5 }

     snFsrpIfTrackPortMask OBJECT-TYPE
         SYNTAX   PortMask
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the identity of the physical port 
                        whose state is to be monitored.  Each bit is a port of
                        the system. Default value is 0.  If this object is configured
                        then the Preference Level of this interface will be adjusted
                        dynamically depending on the state of the Track Port.
            The interface's Preference Level is reduced by value of 
            Preference Level parameter when the Track Port states first
            changes from UP to DOWN.  When the Track Port next comes up
            the interface's Preference Level is increased by the amount
            specified by the Preference Level.
            The Standalone router FSRP Track port membership (Not used for Chassis Product)"
         DEFVAL { 0 }
         ::= { snFsrpIfEntry 6 }

     snFsrpIfRowStatus OBJECT-TYPE
             SYNTAX   INTEGER {
                                        invalid(1),
                                        valid(2),
                                        delete(3),
                                        create(4),
                                        modify(5)
                                  }
                 ACCESS   read-write
             STATUS   mandatory
                 DESCRIPTION
                        "This object is used to create and
                     delete row in the table and control
                         if they are used. The values
                     that can be written are:
                     delete(3)...deletes the row
                     create(4)...creates a new row
                     modify(5)...modifies an exsisting row

                     If the row exists, then a SET with
                     value of create(4) returns error
                     'badValue'. Deleted rows go away
                     immediately. The following values
                     can be returned on reads:
                     noSuch(0)...no such row
                     invalid(1)...Setting it to 'invalid' has the effect of
                          rendering it inoperative..
                     valid(2)....the row exists and is valid"
             ::= { snFsrpIfEntry 7 }

     snFsrpIfState OBJECT-TYPE
             SYNTAX   INTEGER {
                                        init(0),
                                        negotiating(1),
                                        standby(2),
                                        active(3)
                                  }
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the FSRP Router's interface state as:
            init(0)...initialization state.
            negotiating(1)...negotiating state.
            standby(2)...standby state.
            active(3)...active state." 
         ::= { snFsrpIfEntry 8 }

     snFsrpIfKeepAliveTime OBJECT-TYPE
             SYNTAX   INTEGER (1..120)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The heart-beat is from 1 to 120 seconds." 
         DEFVAL { 3 }
         ::= { snFsrpIfEntry 9 }

     snFsrpIfRouterDeadTime OBJECT-TYPE
             SYNTAX   INTEGER (3..255)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The hold time of the Fsrp router is from 3 to 255 seconds." 
         DEFVAL { 9 }
         ::= { snFsrpIfEntry 10 }

     snFsrpIfChassisTrackPortMask OBJECT-TYPE
                 SYNTAX  OCTET STRING (SIZE(32))
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the identity of the physical port 
                        whose state is to be monitored.  Each bit is a port of
                        the system. Default value is 0.  If this object is configured
                        then the Preference Level of this interface will be adjusted
                        dynamically depending on the state of the Track Port.
            The interface's Preference Level is reduced by value of 
            Preference Level parameter when the Track Port states first
            changes from UP to DOWN.  When the Track Port next comes up
            the interface's Preference Level is increased by the amount
            specified by the Preference Level.
            The Chassis router FSRP Track port membership"
         ::= { snFsrpIfEntry 11 }

-- PIM MIB

snPimMIBObjects OBJECT IDENTIFIER ::= { snPim 1 }

snPimEnable OBJECT-TYPE
    SYNTAX     RtrStatus
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "Enable or disable PIM on this router."
    DEFVAL     { disabled }
    ::= { snPimMIBObjects 1 }

snPimNeighborRouterTimeout OBJECT-TYPE
    SYNTAX     INTEGER (60..8000)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the time interval after which the neighbour router
            is considered down. Value is in number of seconds. snPimEnable
            must be 'enabled' before this object is writen."
    DEFVAL     { 180 }
    ::= { snPimMIBObjects 2 }

snPimHelloTime OBJECT-TYPE
    SYNTAX     INTEGER (10..3600)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the interval at which hello message is sent out
            an interface to the neighbouring router. This is used to
            detect the presence or abscense of a neighbouring router.
            Value is in number of seconds. snPimEnable must be 'enabled'
            before this object is writen."
    DEFVAL     { 60 }
    ::= { snPimMIBObjects 3 }

snPimPruneTime OBJECT-TYPE
    SYNTAX     INTEGER (10..3600)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the duration of time for which the prune state
            is stored. Value is in number of seconds. snPimEnable
            must be 'enabled' before this object is writen."
    DEFVAL     { 60 }
    ::= { snPimMIBObjects 4 }

snPimGraftRetransmitTime OBJECT-TYPE
    SYNTAX     INTEGER (10..3600)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the time interval after which a graft message will
            be retransmitted if graft acknowledge message has not been
            received. Value is in number of seconds. snPimEnable must
            be 'enabled' before this object is writen."
    DEFVAL     { 180 }
    ::= { snPimMIBObjects 5 }

snPimInactivityTime OBJECT-TYPE
    SYNTAX     INTEGER (10..3600)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the interval after which the forwarding entry is
            deleted. When a packet is received for a group entry, this
            time is reset. This is used to only keep the forwarding
            entries for the active sessions. Value is in number of
            seconds. snPimEnable must be 'enabled' before this object
            is writen."
    DEFVAL     { 180 }
    ::= { snPimMIBObjects 6 }

-- The PIM Virtual Interface Table

snPimVInterfaceTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnPimVInterfaceEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The (conceptual) table listing the router's PIM virtual
            interfaces. snPimEnable must be 'enabled' before this
            table is read or writen."
    ::= { snPimMIBObjects 7 }

snPimVInterfaceEntry OBJECT-TYPE
    SYNTAX     SnPimVInterfaceEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the snPimVInterfaceTable."
    INDEX      { snPimVInterfaceVifIndex }
    ::= { snPimVInterfaceTable 1 }

SnPimVInterfaceEntry ::= SEQUENCE {
    snPimVInterfaceVifIndex              INTEGER,
    snPimVInterfaceType                  INTEGER,
    snPimVInterfaceLocalAddress          IpAddress,
    snPimVInterfaceLocalSubnetMask       IpAddress,
    snPimVInterfaceRemoteAddress         IpAddress,
    snPimVInterfaceDR                    IpAddress,
    snPimVInterfaceTtlThreshold          INTEGER,
    snPimVInterfaceStatus                INTEGER }

snPimVInterfaceVifIndex OBJECT-TYPE
    SYNTAX     INTEGER (1..48)
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The ifIndex value of this PIM virtual interface."
    ::= { snPimVInterfaceEntry 1 }

snPimVInterfaceType OBJECT-TYPE
    SYNTAX     INTEGER { tunnel(1), subnet(2) }
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The type of PIM virtual interface, whether it uses
            a tunnel or a physical interface."
    ::= { snPimVInterfaceEntry 2 }

snPimVInterfaceLocalAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The IP address of the local end of this PIM virtual
            interface."
    ::= { snPimVInterfaceEntry 3 }

snPimVInterfaceLocalSubnetMask OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The network mask for the IP address of the PIM
            virtual interface. For a tunnel, this should be
            0.0.0.0."
    ::= { snPimVInterfaceEntry 4 }

snPimVInterfaceRemoteAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The IP address of the remote end of this PIM virtual
            interface."
    ::= { snPimVInterfaceEntry 5 }

snPimVInterfaceDR OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The Designated Router on this PIM virtual interface.
            For point-to-point interfaces, this object has the
            value 0.0.0.0."
    ::= { snPimVInterfaceEntry 6 }

snPimVInterfaceTtlThreshold OBJECT-TYPE
    SYNTAX     INTEGER (1..31)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "This is the minimum time-to-live value to forward the packets
            out of this interface."
    DEFVAL     { 1 }
    ::= { snPimVInterfaceEntry 7 }

snPimVInterfaceStatus OBJECT-TYPE
    SYNTAX     INTEGER {
                    invalid(1),
                    valid(2),
                    delete(3),
                    create(4),
                    modify(5)
               }
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
                        "This object is used to create and
                     delete row in the table and control
                         if they are used. The values
                     that can be written are:
                     delete(3)...deletes the row
                     create(4)...creates a new row
                     modify(5)...modifies an exsisting row

                     If the row exists, then a SET with
                     value of create(4) returns error
                     'badValue'. Deleted rows go away
                     immediately. The following values
                     can be returned on reads:
                     invalid(1)...Setting it to 'invalid' has the effect of
                          rendering it inoperative.
                     valid(2)....Setting it to 'valid' has the effect of
                         changing the row to operative."
    ::= { snPimVInterfaceEntry 8 }

-- The PIM Neighbor Table

snPimNeighborTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnPimNeighborEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The (conceptual) table listing the router's PIM
            neighbors. snPimEnable must be 'enabled' before this
            table is read."
    ::= { snPimMIBObjects 8 }

snPimNeighborEntry OBJECT-TYPE
    SYNTAX     SnPimNeighborEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the snPimNeighborTable."
    INDEX      { snPimNeighborEntryIndex }
    ::= { snPimNeighborTable 1 }

SnPimNeighborEntry ::= SEQUENCE {
    snPimNeighborEntryIndex      INTEGER,
    snPimNeighborVifIndex        INTEGER,
    snPimNeighborAddress         IpAddress,
    snPimNeighborUpTime          TimeTicks,
    snPimNeighborExpiryTime      TimeTicks }

snPimNeighborEntryIndex OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The table entry index."
    ::= { snPimNeighborEntry 1 }

snPimNeighborVifIndex OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The value of VifIndex for the virtual interface used to
            reach this PIM neighbor."
    ::= { snPimNeighborEntry 2 }

snPimNeighborAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The IP address of the PIM neighbor for which this entry
            contains information."
    ::= { snPimNeighborEntry 3 }

snPimNeighborUpTime OBJECT-TYPE
    SYNTAX     TimeTicks
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The time since this PIM neighbor (last) became a neighbor
            of the local router."
    ::= { snPimNeighborEntry 4 }

snPimNeighborExpiryTime OBJECT-TYPE
    SYNTAX     TimeTicks
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The minimum time remaining before this PIM neighbor will
            be aged out."
    ::= { snPimNeighborEntry 5 }

-- The PIM Virtual Interface Statistics Table

snPimVIfStatTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnPimVIfStatEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The (conceptual) table listing the router's PIM virtual
            interface statistical counters. snPimEnable must be
            'enabled' before this table is read."
    ::= { snPimMIBObjects 9 }

snPimVIfStatEntry OBJECT-TYPE
    SYNTAX     SnPimVIfStatEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the snPimVIfStatTable."
    INDEX      { snPimVIfStatVifIndex }
    ::= { snPimVIfStatTable 1 }

SnPimVIfStatEntry ::= SEQUENCE {
    snPimVIfStatVifIndex              INTEGER,
    snPimVIfStatInJoinPkts            Counter,
    snPimVIfStatOutJoinPkts           Counter,
    snPimVIfStatDiscardJoinPkts       Counter,
    snPimVIfStatInPrunePkts           Counter,
    snPimVIfStatOutPrunePkts          Counter,
    snPimVIfStatDiscardPrunePkts      Counter,
    snPimVIfStatInAssertPkts          Counter,
    snPimVIfStatOutAssertPkts         Counter,
    snPimVIfStatDiscardAssertPkts     Counter,
    snPimVIfStatInHelloPkts           Counter,
    snPimVIfStatOutHelloPkts          Counter,
    snPimVIfStatDiscardHelloPkts      Counter,
    snPimVIfStatInGraftPkts           Counter,
    snPimVIfStatOutGraftPkts          Counter,
    snPimVIfStatDiscardGraftPkts      Counter,
    snPimVIfStatInGraftAckPkts        Counter,
    snPimVIfStatOutGraftAckPkts       Counter,
    snPimVIfStatDiscardGraftAckPkts   Counter }

snPimVIfStatVifIndex OBJECT-TYPE
    SYNTAX     INTEGER (1..32)
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The ifIndex value of this PIM virtual interface."
    ::= { snPimVIfStatEntry 1 }

snPimVIfStatInJoinPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of join packets that have arrived
            on the PIM virtual interface."
    ::= { snPimVIfStatEntry 2 }

snPimVIfStatOutJoinPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of join packets that have been sent
            on the PIM virtual interface."
    ::= { snPimVIfStatEntry 3 }

snPimVIfStatDiscardJoinPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of join packets that have been discarded
            by the PIM virtual interface."
    ::= { snPimVIfStatEntry 4 }

snPimVIfStatInPrunePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of prune packets that have arrived on the PIM
            virtual interface."
    ::= { snPimVIfStatEntry 5 }

snPimVIfStatOutPrunePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of prune packets that have been sent on the PIM
            virtual interface."
    ::= { snPimVIfStatEntry 6 }

snPimVIfStatDiscardPrunePkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of prune packets that have been discarded
            by the PIM virtual interface."
    ::= { snPimVIfStatEntry 7 }

snPimVIfStatInAssertPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of assert packets that have arrived
            on the PIM virtual interface."
    ::= { snPimVIfStatEntry 8 }

snPimVIfStatOutAssertPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of assert packets that have been sent
            on the PIM virtual interface."
    ::= { snPimVIfStatEntry 9 }

snPimVIfStatDiscardAssertPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of assert packets that have been
            discarded by the PIM virtual interface."
    ::= { snPimVIfStatEntry 10 }

snPimVIfStatInHelloPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of hello packets that have arrived on the PIM
            virtual interface."
    ::= { snPimVIfStatEntry 11 }

snPimVIfStatOutHelloPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of hello packets that have been sent on the PIM
            virtual interface."
    ::= { snPimVIfStatEntry 12 }

snPimVIfStatDiscardHelloPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of hello packets that have been discarded
            by the PIM virtual interface."
    ::= { snPimVIfStatEntry 13 }

snPimVIfStatInGraftPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft packets that have arrived
            on the PIM virtual interface."
    ::= { snPimVIfStatEntry 14 }

snPimVIfStatOutGraftPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft packets that have been sent
            on the PIM virtual interface."
    ::= { snPimVIfStatEntry 15 }

snPimVIfStatDiscardGraftPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft packets that have been discarded
            by the PIM virtual interface."
    ::= { snPimVIfStatEntry 16 }

snPimVIfStatInGraftAckPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft acknowledge packets that have arrived
            on the PIM virtual interface."
    ::= { snPimVIfStatEntry 17 }

snPimVIfStatOutGraftAckPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft acknowledge packets that have been
            sent on the PIM virtual interface."
    ::= { snPimVIfStatEntry 18 }

snPimVIfStatDiscardGraftAckPkts OBJECT-TYPE
    SYNTAX     Counter
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The number of graft acknowledge packets that have been
            discarded by the PIM virtual interface."
    ::= { snPimVIfStatEntry 19 }


-- VRRP MIB

snVrrpGlobal    OBJECT IDENTIFIER ::= { snVrrp 1 }
snVrrpIntf              OBJECT IDENTIFIER ::= { snVrrp 2 }
snVrrpVirRtr    OBJECT IDENTIFIER ::= { snVrrp 3 }

--  Section 1:  VRRP Global Variables

snVrrpGroupOperMode OBJECT-TYPE
        SYNTAX  INTEGER {
                disabled(0),             
                enabled(1)
                }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The VRRP is configured on this system
                 either enabled or disabled and the
                 default is disabled mode.
                 disabled(0)..........disable VRRP   
                 enabled(1)...........activate VRRP"
        ::= { snVrrpGlobal 1 }

snVrrpIfStateChangeTrap OBJECT-TYPE
        SYNTAX  INTEGER { disabled(0), enabled(1) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Indicates whether the SNMP agent process is
                permitted to generate VRRP interface state change
                traps."
    DEFVAL { enabled }
        ::= { snVrrpGlobal 2 }

snVrrpIfMaxNumVridPerIntf OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Indicates the maximum number of VRID per interface."
        ::= { snVrrpGlobal 3 }

snVrrpIfMaxNumVridPerSystem OBJECT-TYPE
        SYNTAX  INTEGER
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "Indicates the maximum number of VRID per system."
        ::= { snVrrpGlobal 4 }

snVrrpClearVrrpStat OBJECT-TYPE
        SYNTAX  INTEGER { normal(0), clear(1) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "Clear VRRP statistics command."
        ::= { snVrrpGlobal 5 }


--  Section 2:  VRRP Interface Table

snVrrpIfTable OBJECT-TYPE
    SYNTAX   SEQUENCE OF SnVrrpIfEntry
    ACCESS   not-accessible
    STATUS   mandatory
    DESCRIPTION
       "The VRRP Interface Table describes the interfaces from
        the viewpoint of VRRP."
    ::= { snVrrpIntf 1 }

     snVrrpIfEntry OBJECT-TYPE
         SYNTAX   SnVrrpIfEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The VRRP Interface Entry describes one interface from
            the viewpoint of VRRP."
         INDEX { snVrrpIfPort }
         ::= { snVrrpIfTable 1 }

     SnVrrpIfEntry ::=
         SEQUENCE {
             snVrrpIfPort
                             INTEGER,
             snVrrpIfAuthType
                             INTEGER,
                         snVrrpIfAuthPassword
                             OCTET STRING,
             snVrrpIfRxHeaderErrCnts
                             Counter,
             snVrrpIfRxAuthTypeErrCnts
                             Counter,
             snVrrpIfRxAuthPwdMismatchErrCnts
                             Counter,
             snVrrpIfRxVridErrCnts
                             Counter
         }


    snVrrpIfPort OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The IP port of this VRRP interface."
         ::= { snVrrpIfEntry 1 }

    snVrrpIfAuthType OBJECT-TYPE
         SYNTAX   INTEGER { 
                                        noAuth(0), 
                                        simpleTextPasswd(1), 
                                                ipAuthHeader(2)
                                                }
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The authentication type of this interface."
         ::= { snVrrpIfEntry 2 }

    snVrrpIfAuthPassword OBJECT-TYPE
                 SYNTAX   OCTET STRING (SIZE (0..8))
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The simple text password is allowed if only if 
            the snVrrpIfAuthType type is simpleTextPasswd(1)."
         ::= { snVrrpIfEntry 3 }

    snVrrpIfRxHeaderErrCnts OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received Header error counts in this interface."
         ::= { snVrrpIfEntry 4 }

    snVrrpIfRxAuthTypeErrCnts OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received authentication type error counts in this interface."
         ::= { snVrrpIfEntry 5 }

    snVrrpIfRxAuthPwdMismatchErrCnts OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received authentication password mismatched error counts in this interface."
         ::= { snVrrpIfEntry 6 }

    snVrrpIfRxVridErrCnts OBJECT-TYPE
         SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received unfound VRID error counts in this interface."
         ::= { snVrrpIfEntry 7 }


--  Section 3: VRRP Virtual Router Configuration Table

--      The VRRP (Virtual Router Redundancy Protocol) Virtual Router Table augments 
--              with VRRP specific information.


snVrrpVirRtrTable OBJECT-TYPE
    SYNTAX   SEQUENCE OF SnVrrpVirRtrEntry
    ACCESS   not-accessible
    STATUS   mandatory
    DESCRIPTION
       "The VRRP virtual router Entry describes one virtual router from
        the viewpoint of VRRP."
    ::= { snVrrpVirRtr 1 }

     snVrrpVirRtrEntry OBJECT-TYPE
         SYNTAX   SnVrrpVirRtrEntry
         ACCESS   not-accessible
         STATUS   mandatory
         DESCRIPTION
            "The VRRP virtual router Entry describes one virtual router from
            the viewpoint of VRRP."
         INDEX { snVrrpVirRtrPort, snVrrpVirRtrId }
         ::= { snVrrpVirRtrTable 1 }

     SnVrrpVirRtrEntry ::=
         SEQUENCE {
             snVrrpVirRtrPort
                             INTEGER,
             snVrrpVirRtrId
                             INTEGER,
             snVrrpVirRtrOwnership
                             INTEGER,
             snVrrpVirRtrCfgPriority
                 INTEGER,
             snVrrpVirRtrTrackPriority
                 INTEGER,
             snVrrpVirRtrCurrPriority
                 INTEGER,
                         snVrrpVirRtrHelloInt 
                                 INTEGER,
                         snVrrpVirRtrDeadInt 
                                 INTEGER,
                         snVrrpVirRtrPreemptMode 
                                 INTEGER,
                         snVrrpVirRtrState
                                 INTEGER,
                         snVrrpVirRtrActivate 
                                 INTEGER,
             snVrrpVirRtrIpAddrMask
                 OCTET STRING,
             snVrrpVirRtrTrackPortMask
                 OCTET STRING,
             snVrrpVirRtrTrackVifMask
                 OCTET STRING,
                         snVrrpVirRtrRowStatus 
                                 INTEGER,
                         snVrrpVirRtrRxArpPktDropCnts 
                                 Counter,
                         snVrrpVirRtrRxIpPktDropCnts 
                                 Counter,
                         snVrrpVirRtrRxPortMismatchCnts 
                                 Counter,
                         snVrrpVirRtrRxNumOfIpMismatchCnts 
                                 Counter,
                         snVrrpVirRtrRxIpMismatchCnts 
                                 Counter,
                         snVrrpVirRtrRxHelloIntMismatchCnts 
                                 Counter,
                         snVrrpVirRtrRxPriorityZeroFromMasterCnts 
                                 Counter,
                         snVrrpVirRtrRxHigherPriorityCnts 
                                 Counter,
                         snVrrpVirRtrTransToMasterStateCnts 
                                 Counter,
                         snVrrpVirRtrTransToBackupStateCnts 
                                 Counter,
                         snVrrpVirRtrCurrDeadInt 
                                 INTEGER
         }


    snVrrpVirRtrPort OBJECT-TYPE
         SYNTAX   INTEGER
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The IP port of this VRRP interface."
         ::= { snVrrpVirRtrEntry 1 }

    snVrrpVirRtrId OBJECT-TYPE
         SYNTAX   INTEGER (1..255)
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "One of the virtual router ID of this VRRP interface."
         ::= { snVrrpVirRtrEntry 2 }

    snVrrpVirRtrOwnership OBJECT-TYPE
             SYNTAX   INTEGER {
                                        incomplete(0),
                                        owner(1),
                                        backup(2)
                                        }
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The ownership of this VRRP router interface 
            can be set either owner(1) or backup(2).  
            VirRtr SNMP-GET returns incomplete(0), it means 
            no IP address has assigned to this VRRP router interface."
         ::= { snVrrpVirRtrEntry 3 }

     snVrrpVirRtrCfgPriority OBJECT-TYPE
         SYNTAX   INTEGER (3..254)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The higher the number the higher the priority is.
            This parameter decides which backup router should becomes
            the Active Router for the interface.  A backup Router with
            higher priority selected to becomes the Active Router.
            Therefore, this Object can be set if only if snVrrpVirRtrOwnership
            is set to backup(2)."
         DEFVAL { 100 }
         ::= { snVrrpVirRtrEntry 4 }

     snVrrpVirRtrTrackPriority OBJECT-TYPE
         SYNTAX   INTEGER (1..254)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The higher the number the higher the priority is.
            after this object is configured, the snVrrpVirRtrCurrPriority 
            of this interface will be adjusted dynamically with this
                        track priority when the Track Port states first
            changes from UP to DOWN."
         ::= { snVrrpVirRtrEntry 5 }

     snVrrpVirRtrCurrPriority OBJECT-TYPE
         SYNTAX   INTEGER (1..254)
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The higher the number the higher the priority is.
            This object will be adjusted dynamically with the
                        track priority when the Track Port states first
            changes from UP to DOWN."
         ::= { snVrrpVirRtrEntry 6 }

     snVrrpVirRtrHelloInt OBJECT-TYPE
         SYNTAX   INTEGER (1..84)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "Time interval between advertisements (seconds)."
         DEFVAL { 1 }
         ::= { snVrrpVirRtrEntry 7 }

     snVrrpVirRtrDeadInt OBJECT-TYPE
         SYNTAX   INTEGER (0..84)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "Dead interval (seconds)."
         DEFVAL { 0 }
         ::= { snVrrpVirRtrEntry 8 }

     snVrrpVirRtrPreemptMode OBJECT-TYPE
         SYNTAX   INTEGER { disabled(0), enabled(1) }
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This mode controls whether a higher priority Backup router
            preempts a lower priority Master.  The mode with enabled(1)
            allow preemption and disabled(0) prohibit preemption."
         DEFVAL { enabled }
         ::= { snVrrpVirRtrEntry 9 }

         snVrrpVirRtrState OBJECT-TYPE
             SYNTAX   INTEGER {
                                        init(0),
                                        master(1),
                                        backup(2)
                                  }
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the VRRP Router's interface state as:
            init(0)...initialization state.
            master(1)...master state.
            backup(2)...backup state."
         ::= { snVrrpVirRtrEntry 10 }

         snVrrpVirRtrActivate OBJECT-TYPE
             SYNTAX   INTEGER {
                                        disabled(0),
                                        enabled(1)
                                  }
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the VRRP Router's activate command as:
            disabled(0)...deactivate this VRRP Router.
            enabled(1)....activate this VRRP Router."
         ::= { snVrrpVirRtrEntry 11 }

    snVrrpVirRtrIpAddrMask OBJECT-TYPE
                 SYNTAX  OCTET STRING (SIZE(64))
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "The numbers of IP Addresses of this virtual router of this interface."
         ::= { snVrrpVirRtrEntry 12 }

     snVrrpVirRtrTrackPortMask OBJECT-TYPE
                 SYNTAX  OCTET STRING (SIZE(4..32))
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the identity of the physical port
                        whose state is to be monitored.  Each bit is a port of
                        the system. Default value is 0.  VirRtr this object is configured
                        then the Preference Level of this interface will be adjusted
                        dynamically depending on the state of the Track Port.
            The interface's Preference Level is reduced by value of 
            Preference Level parameter when the Track Port states first
            changes from UP to DOWN.  When the Track Port next comes up
            the interface's Preference Level is increased by the amount
            specified by the Preference Level.
            The Chassis/Stackable router VRRP Track port membership.
            The size of the OCTET STRING for Chassis is 32.
            The size of the OCTET STRING for Stackable is 4."
         ::= { snVrrpVirRtrEntry 13 }

     snVrrpVirRtrTrackVifMask OBJECT-TYPE
                 SYNTAX  OCTET STRING (SIZE(4..8))
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the identity of the virtual interface 
            whose state is to be monitored.  Each bit is a port of
                        the system. Default value is 0.  VirRtr this object is configured
                        then the Preference Level of this interface will be adjusted
                        dynamically depending on the state of the Track Port.
            The interface's Preference Level is reduced by value of 
            Preference Level parameter when the Track Port states first
            changes from UP to DOWN.  When the Track Port next comes up
            the interface's Preference Level is increased by the amount
            specified by the Preference Level.
            The Chassis/Stackable router VRRP Track port membership
            The size of the OCTET STRING for Chassis is 8.
            The size of the OCTET STRING for Stackable is 4."
         ::= { snVrrpVirRtrEntry 14 }

     snVrrpVirRtrRowStatus OBJECT-TYPE
             SYNTAX   INTEGER {
                                        invalid(1),
                                        valid(2),
                                        delete(3),
                                        create(4),
                                        modify(5)
                                  }
                 ACCESS   read-write
             STATUS   mandatory
                 DESCRIPTION
                        "This object is used to create and
                     delete row in the table and control
                         if they are used. The values
                     that can be written are:
                     delete(3)...deletes the row
                     create(4)...creates a new row
                     modify(5)...modifies an existing row

                     VirRtr the row exists, then a SET with
                     value of create(4) returns error
                     'badValue'. Deleted rows go away
                     immediately. The following values
                     can be returned on reads:
                     noSuch(0)...no such row
                     invalid(1)...Setting it to 'invalid' has the effect of
                          rendering it inoperative..
                     valid(2)....the row exists and is valid"
             ::= { snVrrpVirRtrEntry 15 }

         snVrrpVirRtrRxArpPktDropCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received VRRP ARP Packet Drop Counts."
         ::= { snVrrpVirRtrEntry 16 }

         snVrrpVirRtrRxIpPktDropCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received VRRP IP Packet Drop Counts."
         ::= { snVrrpVirRtrEntry 17 }

         snVrrpVirRtrRxPortMismatchCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received VRRP Port mismatching Counts."
         ::= { snVrrpVirRtrEntry 18 }

         snVrrpVirRtrRxNumOfIpMismatchCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received VRRP Number of IP Addresses mismatching Counts."
         ::= { snVrrpVirRtrEntry 19 }

         snVrrpVirRtrRxIpMismatchCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "The received VRRP IP Address mismatching Counts."
         ::= { snVrrpVirRtrEntry 20 }

         snVrrpVirRtrRxHelloIntMismatchCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
                        "The counts of the virtual router interface with hello interval mismatch counts."
         ::= { snVrrpVirRtrEntry 21 }

         snVrrpVirRtrRxPriorityZeroFromMasterCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
                        "The counts of the virtual router interface with Priority zero from the master."
         ::= { snVrrpVirRtrEntry 22 }

         snVrrpVirRtrRxHigherPriorityCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
                        "The counts of the virtual router interface with higher Priority."
         ::= { snVrrpVirRtrEntry 23 }

         snVrrpVirRtrTransToMasterStateCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
                        "The counts of the virtual router interface transition to master state."
         ::= { snVrrpVirRtrEntry 24 }

         snVrrpVirRtrTransToBackupStateCnts OBJECT-TYPE
             SYNTAX   Counter
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
                        "The counts of the virtual router interface transition to backup state."
         ::= { snVrrpVirRtrEntry 25 }

     snVrrpVirRtrCurrDeadInt OBJECT-TYPE
         SYNTAX   INTEGER 
         ACCESS   read-only
         STATUS   mandatory
         DESCRIPTION
            "Current Dead interval (in 100 milliseconds)."
         ::= { snVrrpVirRtrEntry 26 }

-- Loopback Interface configuration table

snLoopbackIntfConfigTable           OBJECT-TYPE
        SYNTAX  SEQUENCE OF SnLoopbackIntfConfigEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "Loopback Interface Config table."
        ::= { snLoopbackIf 1 }

snLoopbackIntfConfigEntry           OBJECT-TYPE
        SYNTAX  SnLoopbackIntfConfigEntry
        ACCESS  not-accessible
        STATUS  mandatory
        DESCRIPTION
                "An entry in the Loopback Interface Config table."
        INDEX   { snLoopbackIntfConfigPortIndex }
        ::= { snLoopbackIntfConfigTable 1 }

SnLoopbackIntfConfigEntry ::= SEQUENCE {
        snLoopbackIntfConfigPortIndex
                INTEGER,
        snLoopbackIntfMode              
                INTEGER,
        snLoopbackIntfRowStatus
                INTEGER
        }

snLoopbackIntfConfigPortIndex       OBJECT-TYPE
        SYNTAX  INTEGER (1..8)
        ACCESS  read-only
        STATUS  mandatory
        DESCRIPTION
                "The port index for Loopback Interface config entry."
        ::= { snLoopbackIntfConfigEntry 1 }

snLoopbackIntfMode                   OBJECT-TYPE
    SYNTAX  INTEGER { disabled(0), enabled(1) }
        ACCESS  read-write
        STATUS  mandatory
        DESCRIPTION
                "The Loopback Interface mode."
        ::= { snLoopbackIntfConfigEntry 2 }

snLoopbackIntfRowStatus                         OBJECT-TYPE
        SYNTAX   INTEGER {
            invalid(1),
            valid(2),
            delete(3),
            create(4),
            modify(5)
        }
        ACCESS   read-write
        STATUS   mandatory
        DESCRIPTION
        "This object is used to create and
         delete row in the table and control
         if they are used. The values
         that can be written are:
         delete(3)...deletes the row
         create(4)...creates a new row
         modify(5)...modifies an exsisting row

         If the row exists, then a SET with
         value of create(4) returns error
         'badValue'. Deleted rows go away
         immediately. The following values
         can be returned on reads:
         noSuch(0)...no such row
         invalid(1)...Setting it to 'invalid' has the effect of
                      rendering it inoperative..
         valid(2)....the row exists and is valid"
        ::= { snLoopbackIntfConfigEntry 3 }

END
