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

-- SECTION 1: Top Level Definitions


-- Imports

IMPORTS
	IpAddress, Counter, TimeTicks
		FROM RFC1155-SMI
	OBJECT-TYPE             
		FROM RFC-1212

	InterfaceIndex 
		FROM IF-MIB
		
	snIp, snRip, snDvmrp, snFsrp, snGblRt, snPim, snVrrp, snLoopbackIf
		FROM FOUNDRY-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
	-- The bits 0-7 = port number. 
	-- The bits 8-15 = slot number (slot for chassis only).
	-- ve port format         bits 16-24 = 0x01, bits 0-15 = ve number
	-- loopback port format bits 16-24 = 0x02, bits 0-15= lb number

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

	  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
-- this table was replaced by the snRtIpPortIfAddrTable,
-- of which the index was changed to ifIndex, not another
-- indexing method used by this table

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

snRtIpPortAddrEntry             OBJECT-TYPE
	SYNTAX  SnRtIpPortAddrEntry
	ACCESS  not-accessible
	STATUS  deprecated
	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  deprecated
	DESCRIPTION
		"The port index for port address entry."
	::= { snRtIpPortAddrEntry 1 }

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

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

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

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

-- ip interface access table
-- this table was replaced by the snRtIpPortIfAccessTable,
-- of which the index was changed to ifIndex, not another
-- indexing method used by this table

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

snRtIpPortAccessEntry           OBJECT-TYPE
	SYNTAX  SnRtIpPortAccessEntry
	ACCESS  not-accessible
	STATUS  deprecated
	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  deprecated
	DESCRIPTION
		"The port index for port access entry."
	::= { snRtIpPortAccessEntry 1 }

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

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

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

-- ip interface configuration table
-- this table was replaced by the snRtIpPortIfConfigTable,
-- of which the index was changed to ifIndex, not another
-- indexing method used by this table

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

snRtIpPortConfigEntry           OBJECT-TYPE
	SYNTAX  SnRtIpPortConfigEntry
	ACCESS  not-accessible
	STATUS  deprecated
	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  deprecated
	DESCRIPTION
		"The port index for port config entry."
	::= { snRtIpPortConfigEntry 1 }

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

snRtIpPortEncap                 OBJECT-TYPE
	SYNTAX  INTEGER { 
					 ethernet(1),
					 snap(2),
					 hdlc(3),
					 ppp(4)
					}
	ACCESS  read-write
	STATUS  deprecated
	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  deprecated
	DESCRIPTION
		"The metric."
    DEFVAL  { 1 }
	::= { snRtIpPortConfigEntry 4 }

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

-- ip interface address table, PortIndex is changed to ifIndex

snRtIpPortIfAddrTable             OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnRtIpPortIfAddrEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"IP port If address table."
	::= { snIp 18 }

snRtIpPortIfAddrEntry             OBJECT-TYPE
	SYNTAX  SnRtIpPortIfAddrEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry in the IP Port Address table."
	INDEX   { snRtIpPortIfAddrInterfaceIndex, snRtIpPortIfAddress }
	::= { snRtIpPortIfAddrTable 1 }

SnRtIpPortIfAddrEntry ::= SEQUENCE {
	snRtIpPortIfAddrInterfaceIndex
		InterfaceIndex,
	snRtIpPortIfAddress
		IpAddress,
	snRtIpPortIfSubnetMask
		IpAddress,
	snRtIpPortIfAddrType
		INTEGER,
	snRtIpPortIfRowStatus
		RowSts
	}


snRtIpPortIfAddrInterfaceIndex                 OBJECT-TYPE
	SYNTAX  InterfaceIndex
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The InterfaceIndex for port address entry."
	::= { snRtIpPortIfAddrEntry 1 }

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

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

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

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

-- ip interface access table, PortIndex is changed to ifIndex

snRtIpPortIfAccessTable           OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnRtIpPortIfAccessEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"IP port If access table."
	::= { snIp 19 }

snRtIpPortIfAccessEntry           OBJECT-TYPE
	SYNTAX  SnRtIpPortIfAccessEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry in the IP Port access table."
	INDEX   { snRtIpPortIfAccessInterfaceIndex, snRtIpPortIfAccessDirection }
	::= { snRtIpPortIfAccessTable 1 }

SnRtIpPortIfAccessEntry ::= SEQUENCE {
	snRtIpPortIfAccessInterfaceIndex
		InterfaceIndex,
	snRtIpPortIfAccessDirection
		INTEGER,
	snRtIpPortIfAccessFilters
		OCTET STRING,
	snRtIpPortIfAccessRowStatus
		RowSts
	}

snRtIpPortIfAccessInterfaceIndex               OBJECT-TYPE
	SYNTAX  InterfaceIndex
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The InterfaceIndex for port access entry."
	::= { snRtIpPortIfAccessEntry 1 }

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

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

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

-- ip interface configuration table, PortIndex is changed to ifIndex

snRtIpPortIfConfigTable           OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnRtIpPortIfConfigEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"IP port If Config table."
	::= { snIp 20 }

snRtIpPortIfConfigEntry           OBJECT-TYPE
	SYNTAX  SnRtIpPortIfConfigEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry in the IP Port Config table."
	INDEX   { snRtIpPortIfConfigInterfaceIndex }
	::= { snRtIpPortIfConfigTable 1 }

SnRtIpPortIfConfigEntry ::= SEQUENCE {
	snRtIpPortIfConfigInterfaceIndex
		InterfaceIndex,
	snRtIpPortIfMtu
		INTEGER,
	snRtIpPortIfEncap
		INTEGER,
	snRtIpPortIfMetric
		INTEGER,
	snRtIpPortIfDirBcastFwd
		RtrStatus
	}

snRtIpPortIfConfigInterfaceIndex      OBJECT-TYPE
	SYNTAX  InterfaceIndex
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The If index for port config entry."
	::= { snRtIpPortIfConfigEntry 1 }

snRtIpPortIfMtu                   OBJECT-TYPE
	SYNTAX  INTEGER
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"The maximun transfer unit.
		Ethernet MTU Range: 46 to 1500
		POS       MTU Range: 60 to 4470
		ATM       MTU Range: 1500 to 9180
		ATM SubIf MTU Range: 1500 to 9180
		For jumbo support, MTU range could be higher."
	::= { snRtIpPortIfConfigEntry 2 }

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

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

snRtIpPortIfDirBcastFwd           OBJECT-TYPE
	SYNTAX  RtrStatus
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Enable/Disable directed broadcast forwarding on the port."
    DEFVAL  { enabled }
	::= { snRtIpPortIfConfigEntry 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 (0..255)
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Minimum TTL value carried in the first probe packet.
		Value 0 cannot be used for SET operations. This value
		is returned if traceroute is not running within the system."
    DEFVAL { 1 }
	::= { snRtIpTraceRouteGeneral 2 }

snRtIpTraceRouteMaxTtl      OBJECT-TYPE
	SYNTAX  INTEGER (0..255)
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Maximum TTL value carried in the last probe packet.
		Value 0 cannot be used for SET operations. This value
		is returned if traceroute is not running within the system."
    DEFVAL { 30 }
	::= { snRtIpTraceRouteGeneral 3 }

snRtIpTraceRouteTimeOut     OBJECT-TYPE
	SYNTAX  INTEGER (0..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).
		Value 0 cannot be used for SET operations. This value
		is returned if traceroute is not running within the system."
    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 }


-- Ip AS-Path Access List table

snIpAsPathAccessListTable       OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnIpAsPathAccessListEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"Ip As-Path Access List table."
	::= { snIp 12 }

snIpAsPathAccessListEntry       OBJECT-TYPE
	SYNTAX  SnIpAsPathAccessListEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry in the Ip As-Path Access List table."
	INDEX   { snIpAsPathAccessListIndex,  snIpAsPathAccessListSequence}
	::= { snIpAsPathAccessListTable 1 }

SnIpAsPathAccessListEntry ::= SEQUENCE {
	snIpAsPathAccessListIndex
		INTEGER,
	snIpAsPathAccessListSequence
		INTEGER,
	snIpAsPathAccessListAction              
		INTEGER,
	snIpAsPathAccessListRegExpression
		OCTET STRING,
	snIpAsPathAccessListRowStatus
		INTEGER
	}

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

snIpAsPathAccessListSequence       OBJECT-TYPE
	SYNTAX  INTEGER
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The table sequence index for a filter entry."
	::= { snIpAsPathAccessListEntry 2 }

snIpAsPathAccessListAction      OBJECT-TYPE
	SYNTAX  INTEGER { deny(0), permit(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Action to take if the bgp address match
		with this filter."
	::= { snIpAsPathAccessListEntry 3 }

snIpAsPathAccessListRegExpression    OBJECT-TYPE
	SYNTAX  OCTET STRING (SIZE(0..256))
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Autonomous system in the filter using a regular expression.
		Each character of the regular expression string is represented
		by one octet."
	::= { snIpAsPathAccessListEntry 4 }

snIpAsPathAccessListRowStatus   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"
	::= { snIpAsPathAccessListEntry 5 }


-- Ip Community List table

snIpCommunityListTable       OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnIpCommunityListEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"Ip Community List table."
	::= { snIp 13 }

snIpCommunityListEntry       OBJECT-TYPE
	SYNTAX  SnIpCommunityListEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry in the Ip Community List table."
	INDEX   { snIpCommunityListIndex,  snIpCommunityListSequence}
	::= { snIpCommunityListTable 1 }

SnIpCommunityListEntry ::= SEQUENCE {
	snIpCommunityListIndex
		INTEGER,
	snIpCommunityListSequence
		INTEGER,
	snIpCommunityListAction              
		INTEGER,
	snIpCommunityListCommNum
		OCTET STRING,
	snIpCommunityListInternet
		INTEGER,
	snIpCommunityListNoAdvertise
		INTEGER,
	snIpCommunityListNoExport
		INTEGER,
	snIpCommunityListRowStatus
		INTEGER,
	snIpCommunityListLocalAs
		INTEGER
	}

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

snIpCommunityListSequence       OBJECT-TYPE
	SYNTAX  INTEGER
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The table sequence index for a filter entry."
	::= { snIpCommunityListEntry 2 }

snIpCommunityListAction      OBJECT-TYPE
	SYNTAX  INTEGER { deny(0), permit(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Action to take if the bgp address match
		with this filter."
	::= { snIpCommunityListEntry 3 }

snIpCommunityListCommNum    OBJECT-TYPE
	SYNTAX  OCTET STRING (SIZE(0..80))
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"A number from 1 to 0xFFFFFFFF. There are 20 of them.  
		This integer number is represented by 4 OCTETs."
	::= { snIpCommunityListEntry 4 }

snIpCommunityListInternet OBJECT-TYPE
	SYNTAX  INTEGER { disabled(0), enabled(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Disabled/Enabled the Internet Community."
	::= { snIpCommunityListEntry 5 }

snIpCommunityListNoAdvertise OBJECT-TYPE
	SYNTAX  INTEGER { false(0), true(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Do not advertise this route to any peer (internal or external)."
	::= { snIpCommunityListEntry 6 }

snIpCommunityListNoExport OBJECT-TYPE
	SYNTAX  INTEGER { false(0), true(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Do not advertise this route to an EBGP peer."
	::= { snIpCommunityListEntry 7 }

snIpCommunityListRowStatus   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"
	::= { snIpCommunityListEntry 8 }

snIpCommunityListLocalAs OBJECT-TYPE
	SYNTAX  INTEGER { false(0), true(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Send this route to peers in other sub-autonomous systems within
		the local confederation. Do not advertise this route to an 
		external system."
	::= { snIpCommunityListEntry 9 }


-- Ip Prefix List table

snIpPrefixListTable       OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnIpPrefixListEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"Ip Prefix List table."
	::= { snIp 14 }

snIpPrefixListEntry       OBJECT-TYPE
	SYNTAX  SnIpPrefixListEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry in the Ip As-Path Access List table."
	INDEX   { snIpPrefixListName,  snIpPrefixListSequence}
	::= { snIpPrefixListTable 1 }

SnIpPrefixListEntry ::= SEQUENCE {
	snIpPrefixListName
		OCTET STRING,
	snIpPrefixListSequence
		INTEGER,
	snIpPrefixListDesc
		OCTET STRING,
	snIpPrefixListAction              
		INTEGER,
	snIpPrefixListAddr
		IpAddress,
	snIpPrefixListMask
		IpAddress, 
	snIpPrefixListGeValue
		INTEGER,
	snIpPrefixListLeValue
		INTEGER,
	snIpPrefixListRowStatus
		INTEGER
	}

snIpPrefixListName    OBJECT-TYPE
	SYNTAX  OCTET STRING (SIZE(0..32))
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
        "An octet string of the ip prefix list name, each character of the name
         is represented by one octet."
	::= { snIpPrefixListEntry 1 }

snIpPrefixListSequence       OBJECT-TYPE
	SYNTAX  INTEGER
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The table sequence index for a filter entry."
	::= { snIpPrefixListEntry 2 }

snIpPrefixListDesc    OBJECT-TYPE
	SYNTAX  OCTET STRING (SIZE(0..80))
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
        "An octet string of the ip prefix list description, each character of the name
         is represented by one octet."
	::= { snIpPrefixListEntry 3 }

snIpPrefixListAction      OBJECT-TYPE
	SYNTAX  INTEGER { deny(0), permit(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Action to take if the ip prefix match
		with this filter."
	::= { snIpPrefixListEntry 4 }

snIpPrefixListAddr    OBJECT-TYPE
	SYNTAX  IpAddress
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Prefix IP address."
	::= { snIpPrefixListEntry 5 }

snIpPrefixListMask    OBJECT-TYPE
	SYNTAX  IpAddress
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Prefix IP mask."
	::= { snIpPrefixListEntry 6 }

snIpPrefixListGeValue OBJECT-TYPE
         SYNTAX   INTEGER (0..32)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "Greater than value."
	::= { snIpPrefixListEntry 7 }

snIpPrefixListLeValue OBJECT-TYPE
         SYNTAX   INTEGER (0..32)
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "Less than value."
	::= { snIpPrefixListEntry 8 }

snIpPrefixListRowStatus   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"
	::= { snIpPrefixListEntry 9 }


-- ################################ new 2 tables ###################################
-- Ip AS-Path Access List table

snIpAsPathAccessListStringTable       OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnIpAsPathAccessListStringEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"Ip As-Path Access List table, string version."
	::= { snIp 16 }

snIpAsPathAccessListStringEntry       OBJECT-TYPE
	SYNTAX  SnIpAsPathAccessListStringEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry in the Ip As-Path Access List table."
	INDEX   { snIpAsPathAccessListStringName,  snIpAsPathAccessListStringSequence}
	::= { snIpAsPathAccessListStringTable 1 }

SnIpAsPathAccessListStringEntry ::= SEQUENCE {
	snIpAsPathAccessListStringName
		DisplayString,
	snIpAsPathAccessListStringSequence
		INTEGER,
	snIpAsPathAccessListStringAction              
		INTEGER,
	snIpAsPathAccessListStringRegExpression
		DisplayString,
	snIpAsPathAccessListStringRowStatus
		INTEGER
	}

snIpAsPathAccessListStringName      OBJECT-TYPE
	SYNTAX  DisplayString (SIZE(0..32))
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The table index for a filter entry, string version."
	::= { snIpAsPathAccessListStringEntry 1 }

snIpAsPathAccessListStringSequence       OBJECT-TYPE
	SYNTAX  INTEGER
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The table sequence index for a filter entry."
	::= { snIpAsPathAccessListStringEntry 2 }

snIpAsPathAccessListStringAction      OBJECT-TYPE
	SYNTAX  INTEGER { deny(0), permit(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Action to take if the bgp address match
		with this filter."
	::= { snIpAsPathAccessListStringEntry 3 }

snIpAsPathAccessListStringRegExpression    OBJECT-TYPE
	SYNTAX  DisplayString (SIZE(0..256))
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Autonomous system in the filter using a regular expression.
		Each character of the regular expression string is represented
		by one octet."
	::= { snIpAsPathAccessListStringEntry 4 }

snIpAsPathAccessListStringRowStatus   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"
	::= { snIpAsPathAccessListStringEntry 5 }


-- Ip Community ListString table

snIpCommunityListStringTable       OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnIpCommunityListStringEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"Ip Community ListString table, string version."
	::= { snIp 17 }

snIpCommunityListStringEntry       OBJECT-TYPE
	SYNTAX  SnIpCommunityListStringEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry in the Ip Community ListString table."
	INDEX   { snIpCommunityListStringName,  snIpCommunityListStringSequence}
	::= { snIpCommunityListStringTable 1 }

SnIpCommunityListStringEntry ::= SEQUENCE {
	snIpCommunityListStringName
		DisplayString,
	snIpCommunityListStringSequence
		INTEGER,
	snIpCommunityListStringAction              
		INTEGER,
	snIpCommunityListStringCommNum
		OCTET STRING,
	snIpCommunityListStringInternet
		INTEGER,
	snIpCommunityListStringNoAdvertise
		INTEGER,
	snIpCommunityListStringNoExport
		INTEGER,
	snIpCommunityListStringRowStatus
		INTEGER,
	snIpCommunityListStringLocalAs
		INTEGER
	}

snIpCommunityListStringName       OBJECT-TYPE
	SYNTAX  DisplayString (SIZE(0..32))
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The table index for a filter entry."
	::= { snIpCommunityListStringEntry 1 }

snIpCommunityListStringSequence       OBJECT-TYPE
	SYNTAX  INTEGER
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The table sequence index for a filter entry."
	::= { snIpCommunityListStringEntry 2 }

snIpCommunityListStringAction      OBJECT-TYPE
	SYNTAX  INTEGER { deny(0), permit(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Action to take if the bgp address match
		with this filter."
	::= { snIpCommunityListStringEntry 3 }

snIpCommunityListStringCommNum    OBJECT-TYPE
	SYNTAX  OCTET STRING (SIZE(0..80))
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"A number from 1 to 0xFFFFFFFF. There are 20 of them.  
		This integer number is represented by 4 OCTETs."
	::= { snIpCommunityListStringEntry 4 }

snIpCommunityListStringInternet OBJECT-TYPE
	SYNTAX  INTEGER { disabled(0), enabled(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Disabled/Enabled the Internet Community."
	::= { snIpCommunityListStringEntry 5 }

snIpCommunityListStringNoAdvertise OBJECT-TYPE
	SYNTAX  INTEGER { false(0), true(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Do not advertise this route to any peer (internal or external)."
	::= { snIpCommunityListStringEntry 6 }

snIpCommunityListStringNoExport OBJECT-TYPE
	SYNTAX  INTEGER { false(0), true(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Do not advertise this route to an EBGP peer."
	::= { snIpCommunityListStringEntry 7 }

snIpCommunityListStringRowStatus   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"
	::= { snIpCommunityListStringEntry 8 }

snIpCommunityListStringLocalAs OBJECT-TYPE
	SYNTAX  INTEGER { false(0), true(1) } 
	ACCESS  read-write
	STATUS  mandatory
	DESCRIPTION
		"Send this route to peers in other sub-autonomous systems within
		the local confederation. Do not advertise this route to an 
		external system."
	::= { snIpCommunityListStringEntry 9 }




-- 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..21845)
	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(0..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.
		NULL string will be returned if there are  no entries of this kind."
	::= { 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
-- this table was replaced by the snRtIpRipPortIfConfigTable,
-- of which the index was changed to ifIndex, not another
-- indexing method used by this table

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

snRtIpRipPortConfigEntry        OBJECT-TYPE
	SYNTAX  SnRtIpRipPortConfigEntry
	ACCESS  not-accessible
	STATUS  deprecated
	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  deprecated
	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  deprecated
	DESCRIPTION
		"The ip rip version on this port."
	::= { snRtIpRipPortConfigEntry 2 }

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

snRtIpRipPortLearnDefault          OBJECT-TYPE
	SYNTAX	INTEGER {
		disabled(0),             
		enabled(1)
	}
	ACCESS	read-write
	STATUS  deprecated
	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), isis(6) }
	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
-- this table was replaced by the snRtIpRipPortIfAccessTable,
-- of which the index was changed to ifIndex, not another
-- indexing method used by this table

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

snRtIpRipPortAccessEntry	     OBJECT-TYPE
	SYNTAX	SnRtIpRipPortAccessEntry
	ACCESS  not-accessible
	STATUS  deprecated
	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  deprecated
	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  deprecated
	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  deprecated
	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  deprecated
	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 }

-- IP RIP port configuration table, PortIndex is changed to ifIndex

snRtIpRipPortIfConfigTable        OBJECT-TYPE
	SYNTAX  SEQUENCE OF SnRtIpRipPortIfConfigEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"IP Rip port If Config table."
	::= { snRip 7 }

snRtIpRipPortIfConfigEntry        OBJECT-TYPE
	SYNTAX  SnRtIpRipPortIfConfigEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry in the IP Rip Port If Config table."
	INDEX   { snRtIpRipPortIfConfigInterfaceIndex }
	::= { snRtIpRipPortIfConfigTable 1 }

SnRtIpRipPortIfConfigEntry ::= SEQUENCE {
	snRtIpRipPortIfConfigInterfaceIndex
		InterfaceIndex,
	snRtIpRipPortIfVersion
		INTEGER,
	snRtIpRipPortIfPoisonReverse
		RtrStatus,
	snRtIpRipPortIfLearnDefault
		INTEGER
	}

snRtIpRipPortIfConfigInterfaceIndex    OBJECT-TYPE
	SYNTAX  InterfaceIndex
	ACCESS  read-only
	STATUS  mandatory
	DESCRIPTION
		"The If index for ip rip port config entry."
	::= { snRtIpRipPortIfConfigEntry 1 }

snRtIpRipPortIfVersion            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."
	::= { snRtIpRipPortIfConfigEntry 2 }

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

snRtIpRipPortIfLearnDefault          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."
	::= { snRtIpRipPortIfConfigEntry 4 }

-- IP RIP port access table, PortIndex is changed to ifIndex

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

snRtIpRipPortIfAccessEntry	     OBJECT-TYPE
	SYNTAX	SnRtIpRipPortIfAccessEntry
	ACCESS  not-accessible
	STATUS  mandatory
	DESCRIPTION
		"An entry of the ip interface rip access table."
	INDEX	{ snRtIpRipPortIfAccessPort, snRtIpRipPortIfAccessDir }
	::= { snRtIpRipPortIfAccessTable 1 }

SnRtIpRipPortIfAccessEntry ::= SEQUENCE {
	snRtIpRipPortIfAccessPort
		InterfaceIndex,
	snRtIpRipPortIfAccessDir
		INTEGER,
	snRtIpRipPortIfAccessFilterList
		OCTET STRING,
	snRtIpRipPortIfAccessRowStatus
		INTEGER
	}

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

snRtIpRipPortIfAccessDir	     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."
	::= { snRtIpRipPortIfAccessEntry 2 }

snRtIpRipPortIfAccessFilterList  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."
	::= { snRtIpRipPortIfAccessEntry 3 }

snRtIpRipPortIfAccessRowStatus   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"
	::= { snRtIpRipPortIfAccessEntry 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,
             snFsrpIfTrackPortList
                 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   deprecated
         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   deprecated
         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.
            (It was obsoleted after release 07100, replaced by snFsrpIfTrackPortList)"
         ::= { snFsrpIfEntry 11 }

     snFsrpIfTrackPortList OBJECT-TYPE
		 SYNTAX  OCTET STRING
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the identity of the physical port 
			whose state is to be monitored.  Each port index is a
			16-bit integer in big endian order. 8-bit is the slot
			number, the other 8-bit is the port number. Default value
			is 0 length octet string.  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 router FSRP physical track port membership."
         ::= { snFsrpIfEntry 12 }

-- PIM MIB

snPimMIBObjects OBJECT IDENTIFIER ::= { snPim 1 }
snPimSMMIBObjects OBJECT IDENTIFIER ::= { snPim 2 }

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

snPimVInterfaceMode OBJECT-TYPE
    SYNTAX     INTEGER { dense(1), sparse(2) }
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The configured mode of this PIM interface."
    DEFVAL     { dense }
    ::= { snPimVInterfaceEntry 9 }

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


-- PIM-SM MIB

snPimJoinPruneInterval OBJECT-TYPE
    SYNTAX     INTEGER (10..3600)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The default interval in seconds at which periodic 
			PIM-SM Join/Prune messages are to be sent. snPimEnable must 
            be 'enabled' before this table is read or writen."
    ::= { snPimSMMIBObjects 1 }

-- PIM Candidate-BSR Table

snPimCandidateBSRTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnPimCandidateBSR
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "Candidate Bootstrap Router information."
    ::= { snPimSMMIBObjects 2 }

snPimCandidateBSREntry OBJECT-TYPE
    SYNTAX     SnPimCandidateBSR
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the snPimCandidateBSRTable."
    INDEX      { snPimCandidateBSRPortID }
    ::= { snPimCandidateBSRTable 1 }

SnPimCandidateBSR ::= SEQUENCE {
    snPimCandidateBSRPortID        INTEGER,
    snPimCandidateBSRIPAddress     IpAddress,
    snPimCandidateBSRHashMaskLen   INTEGER,
    snPimCandidateBSRPreference    INTEGER
}

snPimCandidateBSRPortID OBJECT-TYPE
    SYNTAX     INTEGER
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The IP address of the PIM interface.
         The bit 0 to bit 7: port number. 
         The bit 8 to bit 11: slot number."
    ::= { snPimCandidateBSREntry 1 }

snPimCandidateBSRIPAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The (unicast) address of the Candidate BSR."
    ::= { snPimCandidateBSREntry 2 }

snPimCandidateBSRHashMaskLen OBJECT-TYPE
    SYNTAX     INTEGER (1..32)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The hash mask value for this router as a candidate
            bootstrap router."
    ::= { snPimCandidateBSREntry 3 }

snPimCandidateBSRPreference OBJECT-TYPE
    SYNTAX     INTEGER (0..255)
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The preference value for this router as a candidate
            bootstrap router."
    DEFVAL     { 100 }
    ::= { snPimCandidateBSREntry 4 }



-- The PIM RP-Set Table

snPimRPSetTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnPimRPSetEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The (conceptual) table listing PIM information for
            candidate Rendezvous Points (RPs) for IP multicast groups.
            When the local router is the BSR, this information is
            obtained from received Candidate-RP-Advertisements.  When
            the local router is not the BSR, this information is
            obtained from received RP-Set messages.
             snPimEnable must be 'enabled' before this
            table is read or writen."
    ::= { snPimSMMIBObjects 3 }

snPimRPSetEntry OBJECT-TYPE
    SYNTAX     SnPimRPSetEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the snPimRPSetTable."
    INDEX    { snPimRPSetGroupAddress, snPimRPSetMask, snPimRPSetIPAddress }
    ::= { snPimRPSetTable 1 }

SnPimRPSetEntry ::= SEQUENCE {
    snPimRPSetGroupAddress    IpAddress,
    snPimRPSetMask            IpAddress,
    snPimRPSetIPAddress       IpAddress,
    snPimRPSetHoldTime        INTEGER
}

snPimRPSetGroupAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The IP multicast group address which, when combined with
            snPimRPSetGroupMask, gives the group prefix for which this
            entry contains information about the Candidate-RP."
    ::= { snPimRPSetEntry 1 }

snPimRPSetMask OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The multicast group address mask which, when combined with
            snPimRPSetGroupAddress, gives the group prefix for which this
            entry contains information about the Candidate-RP."
    ::= { snPimRPSetEntry 2 }

snPimRPSetIPAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The IP address of the Candidate-RP."
    ::= { snPimRPSetEntry 3 }

snPimRPSetHoldTime OBJECT-TYPE
    SYNTAX     INTEGER (0..255)
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The holdtime, in seconds, of a Candidate-RP.  If the 
            local router is not the BSR, this value is 0."
    ::= { snPimRPSetEntry 4 }


-- The PIM Candidate-RP Table

snPimCandidateRPTable OBJECT-TYPE
    SYNTAX     SEQUENCE OF SnPimCandidateRPEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "The (conceptual) table listing the IP multicast groups for
            which the local router is to advertise itself as a
            Candidate-RP. If this table is empty, then the local router
            will advertise itself as a Candidate-RP for all groups
             snPimEnable must be 'enabled' before this
            table is read or writen."
    ::= { snPimSMMIBObjects 4 }

snPimCandidateRPEntry OBJECT-TYPE
    SYNTAX     SnPimCandidateRPEntry
    ACCESS     not-accessible
    STATUS     mandatory
    DESCRIPTION
            "An entry (conceptual row) in the snPimCandidateRPTable."
    INDEX      { snPimCandidateRPGroupAddress,
                 snPimCandidateRPMask }
    ::= { snPimCandidateRPTable 1 }

SnPimCandidateRPEntry ::= SEQUENCE {
    snPimCandidateRPGroupAddress    IpAddress,
    snPimCandidateRPMask            IpAddress,
    snPimCandidateRPIPAddress       IpAddress,
    snPimCandidateRPRowStatus       INTEGER
}

snPimCandidateRPGroupAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The IP multicast group address which, when combined with
            snPimCandidateRPGroupMask, identifies a group prefix for which
            the local router will advertise itself as a Candidate-RP."
    ::= { snPimCandidateRPEntry 1 }

snPimCandidateRPMask OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-only
    STATUS     mandatory
    DESCRIPTION
            "The multicast group address mask which, when combined with
            snPimCandidateRPGroupMask, identifies a group prefix for which
            the local router will advertise itself as a Candidate-RP."
    ::= { snPimCandidateRPEntry 2 }

snPimCandidateRPIPAddress OBJECT-TYPE
    SYNTAX     IpAddress
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The (unicast) address of the interface which will be
            advertised as a Candidate-RP."
    ::= { snPimCandidateRPEntry 3 }

snPimCandidateRPRowStatus OBJECT-TYPE
	SYNTAX	INTEGER {
		noSuch(0),
		other(1),
		valid(2),
		delete(3),
		create(4),
		modify(5)
		}
    ACCESS     read-write
    STATUS     mandatory
    DESCRIPTION
            "The status of this row, by which new entries may be
            created, or old entries deleted from this table.
              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
              other(1)....some other case
              valid(2)....the row exists and is valid"			
    ::= { snPimCandidateRPEntry 4 }

-- 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,
             snVrrpVirRtrTrackPortList
                 OCTET STRING,
             snVrrpVirRtrTrackVifPortList
                 OCTET STRING
         }


    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   deprecated
         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.
            (It was obsoleted after release 07100, replaced by snVrrpVirRtrTrackPortList)"
         ::= { snVrrpVirRtrEntry 13 }

     snVrrpVirRtrTrackVifMask OBJECT-TYPE
		 SYNTAX  OCTET STRING (SIZE(4..512))
         ACCESS   read-write
         STATUS   deprecated
         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.
            (It was obsoleted after release 07100, replaced by snVrrpVirRtrTrackVifPortList)"
         ::= { 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 }

     snVrrpVirRtrTrackPortList OBJECT-TYPE
		 SYNTAX  OCTET STRING
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the identity of the physical port
			whose state is to be monitored.  Each port index is a
			16-bit integer in big endian order. 8-bit is the slot
			number, the other 8-bit is the port number. Default value
			is 0 length octet string.  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 router VRRP physical track port membership."
         ::= { snVrrpVirRtrEntry 27 }

     snVrrpVirRtrTrackVifPortList OBJECT-TYPE
		 SYNTAX  OCTET STRING
         ACCESS   read-write
         STATUS   mandatory
         DESCRIPTION
            "This object specifies the identity of the virtual interface 
            whose state is to be monitored.  Each port index is a
			16-bit integer in big endian order.  Default value
			is 0 length octet string.  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 router VRRP virtual port track membership."
         ::= { snVrrpVirRtrEntry 28 }

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