-- -----------------------------------------------------------------------------
-- MODIFICTION HISTORY:
-- -----------------------------------------------------------------------------
-- Version, Date, Author
-- Description:
--  [New Object]
--  [Modification]
-- Notes: (Requested by who and which project)
--
-- Version 0.03, 2008/05/22, Shan Lu
-- [Modifycation]
--   To add the objects "swL3TraceRoutePKTToCPUState".
-- Note: Requested by D-Link, DES3800
--
-- Version 0.02, 2008/04/15, Elvis Tsai
-- [Modifycation]
--  To add the objects for ospf default info originate
--      "swL3OspfDefaultInfoOriginateState"
--      "swL3OspfDefaultInfoOriginateAlways"
--      "swL3OspfDefaultInfoOriginateMettype"
--      "swL3OspfDefaultInfoOriginateMetric".
-- Note: Requested by D-Link, DES3800
--
-- Version 0.01, 2008/02/14, Ronald
--  [Modification]
--    To add the objects "swL3DevCtrlOSPFECMPState".
-- Notes: Requested by D-Link, DES3800
-- -----------------------------------------------------------------------------

DES3828-SWL3MGMT-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        Counter32,MODULE-IDENTITY,OBJECT-TYPE,IpAddress,
        NOTIFICATION-TYPE, Integer32, Unsigned32
                                                  FROM SNMPv2-SMI
        PhysAddress,TruthValue,DisplayString,RowStatus
        							              FROM SNMPv2-TC
        des3828   	           			          FROM SW3800PRIMGMT-MIB
        TOSType, Metric, AreaID, RouterID,UpToMaxAge,
        HelloRange, PositiveInteger, Status, DesignatedRouterPriority
        										  FROM OSPF-MIB
    	InterfaceIndex                   		  FROM IF-MIB;

    swL3MgmtMIB MODULE-IDENTITY
	    LAST-UPDATED "0805220000Z"
	    ORGANIZATION "D-Link Corp."
	    CONTACT-INFO
	        "http://support.dlink.com"
	    DESCRIPTION
		    "The Structure of Layer 3 Network Management Information for the
		    proprietary enterprise."
        ::= { des3828 3 }

    NodeAddress             ::= OCTET STRING (SIZE(6))
    NetAddress              ::= OCTET STRING (SIZE(4))

    swL3DevMgmt             OBJECT IDENTIFIER ::= { swL3MgmtMIB 1 }
    swL3IpMgmt              OBJECT IDENTIFIER ::= { swL3MgmtMIB 2 }
    swL3RelayMgmt           OBJECT IDENTIFIER ::= { swL3MgmtMIB 3 }
--    swL3RoutePreference	    OBJECT IDENTIFIER ::= { swL3MgmtMIB 9 }
    swL3IpCtrlMgmt          OBJECT IDENTIFIER ::= { swL3IpMgmt 1 }
    swL3IpFdbMgmt           OBJECT IDENTIFIER ::= { swL3IpMgmt 2 }
--    swL3IpFilterMgmt        OBJECT IDENTIFIER ::= { swL3IpMgmt 3 }

    swL3RelayBootpMgmt      OBJECT IDENTIFIER ::= { swL3RelayMgmt 1 }
    swL3RelayDnsMgmt        OBJECT IDENTIFIER ::= { swL3RelayMgmt 2 }

-- ********************************************************************
--  swL3DevMgmt             OBJECT IDENTIFIER ::= { swL3MgmtMIB 1 }
-- ********************************************************************

    swL3DevCtrl             OBJECT IDENTIFIER ::= { swL3DevMgmt 1 }

    swL3DevCtrlRIPState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the Routing Information Protocol (RIP)
            version 2 function is enabled or disabled."
        ::= { swL3DevCtrl 1 }

    swL3DevCtrlOSPFState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the OSPF protocol is enabled or disabled."
        ::= { swL3DevCtrl 2 }

    swL3DevCtrlDVMRPState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the DVMRP protocol is enabled or disabled."
        ::= { swL3DevCtrl 3 }


    swL3DevCtrlPIMState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the PIM protocol is enabled or disabled."
        ::= { swL3DevCtrl 4 }

     swL3DevCtrlVRRPState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the VRRP protocol is enabled or disabled."
        ::= { swL3DevCtrl 5 }

--    swL3DevCtrARPStormState OBJECT-TYPE
--        SYNTAX  INTEGER {
--               other(1),
--               disabled(2),
--               enabled(3)
--               }
--        MAX-ACCESS  read-write
--        STATUS  current
--        DESCRIPTION
--            " "
--        ::= { swL3DevCtrl 6 }

--    swL3DevCtrARPStormThreshold OBJECT-TYPE
--        SYNTAX  INTEGER (8..1024)
--        MAX-ACCESS  read-write
--        STATUS  current
--        DESCRIPTION
--            " "
--        ::= { swL3DevCtrl 7 }

    swL3DevCtrlOSPFECMPState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the ECMP for OSPF protocol is enabled or disabled."
        ::= { swL3DevCtrl 8 }
-- ********************************************************************
--  swL3IpCtrlMgmt        OBJECT IDENTIFIER ::= { swL3IpMgmt 1 }
-- ********************************************************************

    swL3IpCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3IpCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table contains the IP interface information."
        ::= { swL3IpCtrlMgmt 1 }

    swL3IpCtrlEntry OBJECT-TYPE
        SYNTAX  SwL3IpCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information about a specific IP interface."
        INDEX  { swL3IpCtrlIpAddr }
        ::= { swL3IpCtrlTable 1 }

    SwL3IpCtrlEntry ::=
        SEQUENCE {
            swL3IpCtrlIpAddr
                IpAddress,
            swL3IpCtrlIfIndex
                INTEGER,
            swL3IpCtrlInterfaceName
                DisplayString,
            swL3IpCtrlIpSubnetMask
                IpAddress,
            swL3IpCtrlVlanName
                DisplayString,
            swL3IpCtrlMode
                INTEGER,
            swL3IpCtrlSecondary
                TruthValue,
            swL3IpCtrlState
                RowStatus,
            swL3IpCtrlOperState
                INTEGER,
            swL3IpCtrlProxyARPState
                INTEGER
        }

    swL3IpCtrlIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The IP address of the interface. This object can only contain the
            value of the unicast IP address."
        ::= { swL3IpCtrlEntry 1 }

    swL3IpCtrlIfIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object uniquely identifies the IP interface number in the
            swL3IpCtrlTable."
        ::= { swL3IpCtrlEntry 2 }

    swL3IpCtrlInterfaceName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (1..12))
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the name of the IP interface."
        ::= { swL3IpCtrlEntry 3 }

    swL3IpCtrlIpSubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "The IP net mask for this interface."
        ::= { swL3IpCtrlEntry 4 }

    swL3IpCtrlVlanName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..32))
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the IP control entry's VLAN name. The
            VLAN name in each entry must be unique in the IP Control Table."
        ::= { swL3IpCtrlEntry 5 }

    swL3IpCtrlMode OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                manual(2),
                bootp(3),
                dhcp(4)
                }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the IP operation mode.

            other (1) - This entry is currently in use but the conditions
                under which it will remain so are different from each of the
                following values.
            manual (2) - The IP address will be set manually.
            bootp (3) -  The IP address will be set automatically from the BOOTP
                server.
            dhcp (4) - The IP address will be set automatically from the DHCP
                server."
        ::= { swL3IpCtrlEntry 6 }

    swL3IpCtrlSecondary OBJECT-TYPE
        SYNTAX  TruthValue
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "When this is true (1) the IP address is the secondary IP. When
            false (2), the IP address is the primary IP."
        ::= { swL3IpCtrlEntry 7 }

    swL3IpCtrlState OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This variable displays the status of the entry. The status used
            for creating, modifying, and deleting instances of objects is
            in this table."
        ::= { swL3IpCtrlEntry 8 }

    swL3IpCtrlOperState OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    up(2),
                    down(3)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The current operational state of the IP interface."
        ::= { swL3IpCtrlEntry 9 }

    swL3IpCtrlProxyARPState OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    disabled(2),
                    enabled(3)
                }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates if the Proxy ARP function is enabled or
            disabled."
        ::= { swL3IpCtrlEntry 10 }

-- ********************************************************************
--  swL3VirtualIpCtrlMgmt        OBJECT IDENTIFIER ::= { swL3IpMgmt 2 }
-- ********************************************************************

    swL3VirtualIpCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3VirtualIpCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table contains the virtual IP interface information."
        ::= { swL3IpCtrlMgmt 2 }

    swL3VirtualIpCtrlEntry OBJECT-TYPE
        SYNTAX  SwL3VirtualIpCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information about a specific virtual IP interface."
        INDEX  { swL3VirtualIpCtrlInterfaceName }
        ::= { swL3VirtualIpCtrlTable 1 }

    SwL3VirtualIpCtrlEntry ::=
        SEQUENCE {
            swL3VirtualIpCtrlInterfaceName
                DisplayString,
            swL3VirtualIpCtrlIfIndex
                INTEGER,
            swL3VirtualIpCtrlIpAddr
                IpAddress,
            swL3VirtualIpCtrlIpSubnetMask
                IpAddress,
            swL3VirtualIpCtrlOperState
                INTEGER,
            swL3VirtualIpCtrlState
                RowStatus
        }

    swL3VirtualIpCtrlInterfaceName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (1..12))
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This object indicates the name of the virtual IP interface."
        ::= { swL3VirtualIpCtrlEntry 1 }

    swL3VirtualIpCtrlIfIndex OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object uniquely identifies the virtual IP interface number in the
            swL3VirtualIpCtrlEntry."
        ::= { swL3VirtualIpCtrlEntry 2 }

    swL3VirtualIpCtrlIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "The virtual IP address of the interface. This object can only take the
            value of the unicast IP address."
        ::= { swL3VirtualIpCtrlEntry 3 }

    swL3VirtualIpCtrlIpSubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The net mask for this interface."
        ::= { swL3VirtualIpCtrlEntry 4 }

    swL3VirtualIpCtrlOperState OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    up(2),
                    down(3)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The current operational state of the virtual IP interface."
        ::= { swL3VirtualIpCtrlEntry 5 }

    swL3VirtualIpCtrlState OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This variable displays the status of the entry. The status used
            for creating, modifying, and deleting instances of the objects
            in this table."
        ::= { swL3VirtualIpCtrlEntry 9 }

-- ********************************************************************
--  swL3IpFdbMgmt           OBJECT IDENTIFIER ::= { swL3IpMgmt 2 }
-- ********************************************************************

    swL3IpFdbInfoTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3IpFdbInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A table that contains forwarding and/or filtering information.
            This information is used by the switch to determine how to
            propagate the received IP packets."
        ::= { swL3IpFdbMgmt 1 }

    swL3IpFdbInfoEntry OBJECT-TYPE
        SYNTAX  SwL3IpFdbInfoEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "Information about a specific IP address for which the bridge
            has some forwarding and/or filtering information."
        INDEX  { swL3IpFdbInfoIpAddr }
        ::= { swL3IpFdbInfoTable 1 }

    SwL3IpFdbInfoEntry ::=
        SEQUENCE {
--            swL3IpFdbInfoRdIndex
--                INTEGER,
            swL3IpFdbInfoIpAddr
                IpAddress,
            swL3IpFdbInfoIpSubnetMask
                IpAddress,
            swL3IpFdbInfoPort
                INTEGER,
            swL3IpFdbInfoType
                INTEGER
        }

--    swL3IpFdbInfoRdIndex OBJECT-TYPE
--        SYNTAX  INTEGER(0..65535)
--        MAX-ACCESS  read-only
--        STATUS  current
--        DESCRIPTION
--            "This object indicates the IP routing domain index and should
--            be associated with one of the swL3IpDomainStatsIndex."
--        ::= { swL3IpFdbInfoEntry 1 }

    swL3IpFdbInfoIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "An IP address for which the switch has forwarding and/or filtering
            information."
        ::= { swL3IpFdbInfoEntry 1 }

    swL3IpFdbInfoIpSubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "An IP net mask for this interface for which the switch has
            forwarding and/or filtering information."
        ::= { swL3IpFdbInfoEntry 2 }

    swL3IpFdbInfoPort OBJECT-TYPE
        SYNTAX  INTEGER(0..65535)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Either the value '0', or the port number of the packet that has an
            IP address equal to the value of the corresponding instance of
	    swL3IpFdbInfoIpAddr that has been seen. A value of '0' indicates that the
	    port number has not been learned, but that the switch does have some
	    forwarding/filtering information about this address."
        ::= { swL3IpFdbInfoEntry 3 }

    swL3IpFdbInfoType OBJECT-TYPE
        SYNTAX  INTEGER {
                other(1),
                static(2),
                dynamic(3)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The status of this entry."
        ::= { swL3IpFdbInfoEntry 4 }

-- ********************************************************************
--  swL3IpFilterMgmt        OBJECT IDENTIFIER ::= { swL3IpMgmt 3 }
-- ********************************************************************

--    swL3IpFilterAddrConfig  OBJECT IDENTIFIER ::= { swL3IpFilterMgmt 1 }

--    swL3IpFilterAddrMaxSupportedEntries OBJECT-TYPE
--        SYNTAX  INTEGER(0..65535)
--        MAX-ACCESS  read-only
--        STATUS  current
--        DESCRIPTION
--            "Maximum number of entries in the IP address filtering table
--            (swL3IpFilterAddrCtrlTable) ."
--        ::= { swL3IpFilterAddrConfig 1 }

--    swL3IpFilterAddrCurrentTotalEntries OBJECT-TYPE
--        SYNTAX  INTEGER(0..65535)
--        MAX-ACCESS  read-only
--        STATUS  current
--        DESCRIPTION
--            "Current applied number of entries in the IP address filtering
--            table. If the swL3IpFilterAddrCtrlState = dst-src-addr, then it
--            means there are two entries in swL3IpFilterAddrCtrlTable."
--        ::= { swL3IpFilterAddrConfig 2 }

--    swL3IpFilterAddrCtrlTable OBJECT-TYPE
--        SYNTAX  SEQUENCE OF SwL3IpFilterAddrCtrlEntry
--        MAX-ACCESS  not-accessible
--        STATUS  current
--        DESCRIPTION
--            "This table defines the information for the device to filter packets
--            with specific IP addresses (either as the DA and/or as the SA).
--            The IP address can be either a unicast address or a multicast address.
--            This table has a higher priority then both the static FDB table and
--            the IGMP table. It means that if an IP address appears in this table
--            it will also appear on the static FDB table, the device will use the
--            information provided in this table to process the packet."
--        ::= { swL3IpFilterAddrConfig 3 }

--    swL3IpFilterAddrCtrlEntry OBJECT-TYPE
--        SYNTAX  SwL3IpFilterAddrCtrlEntry
--        MAX-ACCESS  not-accessible
--        STATUS  current
--        DESCRIPTION
--            "A list of information about a specific unicast/multicast IP
--            address for which the switch has filtering information."
--        INDEX  { swL3IpFilterAddrIpAddr }
--        ::= { swL3IpFilterAddrCtrlTable 1 }

--    SwL3IpFilterAddrCtrlEntry ::=
--        SEQUENCE {
--            swL3IpFilterAddrIpAddr
--                IpAddress,
--            swL3IpFilterAddrIpSktGE
--                INTEGER,
--            swL3IpFilterAddrIpSktLE
--                INTEGER,
--            swL3IpFilterAddrCtrlState
--                INTEGER
--        }

--    swL3IpFilterAddrIpAddr OBJECT-TYPE
--        SYNTAX  IpAddress
--        MAX-ACCESS  read-only
--        STATUS  current
--        DESCRIPTION
--            "This object indicates a unicast/multicast IP address for which
--            the switch has filtering information. But if the
--            swL3IpFilterAddrCtrlState = src-addr, then the object can not be
--            a multicast IP address (Class D IP address)."
--        ::= { swL3IpFilterAddrCtrlEntry 1 }

--    swL3IpFilterAddrIpSktGE OBJECT-TYPE
--        SYNTAX  INTEGER
--        MAX-ACCESS  read-write
--        STATUS  current
--        DESCRIPTION
--            "This object indicates a socket number which should be greater than
--	       or equal to the used socket number"
--        ::= { swL3IpFilterAddrCtrlEntry 2 }

--    swL3IpFilterAddrIpSktLE OBJECT-TYPE
--        SYNTAX  INTEGER
--        MAX-ACCESS  read-write
--        STATUS  current
--        DESCRIPTION
--            "This object indicates a socket number which should be less than
--	       or equal to the used socket number"
--        ::= { swL3IpFilterAddrCtrlEntry 3 }

--    swL3IpFilterAddrCtrlState OBJECT-TYPE
--        SYNTAX  INTEGER {
--               other(1),
--               dst-addr(2),
--               src-addr(3),
--               dst-src-addr(4),
--               invalid(5)
--               }
--        MAX-ACCESS  read-write
--        STATUS  current
--        DESCRIPTION
--            "This object indicates the status of this entry.

--            other (1) - This entry is currently in use but the conditions
--                under which it will remain so are different from each of the
--                following values.
--            dst-addr (2) - Received frames's destination addresses are
--                currently filtered when they match with an IP
--                address entry of the table.
--            src-addr (3) - Received frames's source addresses are currently
--                filtered when they match with an IP address entry of
--                the table.
--            dst-src-addr (4) - Received frames's destination addresses or
--                source addresses are currently filtered when they match
--                with the IP address of an entry on the table.
--            invalid (5) V If this value is written to the object, the
--                corresponding entry will be removed from the table."
--        ::= { swL3IpFilterAddrCtrlEntry 2 }

-- ********************************************************************
--  swL3IpArpAgingTime        OBJECT IDENTIFIER ::= { swL3IpMgmt 4 }
-- ********************************************************************

    swL3IpArpAgingTime OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The timeout period in minutes for aging out dynamically learned
            ARP information."
        ::= { swL3IpMgmt 4 }


    swL3IpStaticRouteTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF SwL3IpStaticRouteEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
        "This entity's IP static routing table."
        ::= { swL3IpMgmt 5 }

    swL3IpStaticRouteEntry OBJECT-TYPE
        SYNTAX   SwL3IpStaticRouteEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
           "A particular route to a particular  destination, under a particular policy.
           Once an entry is built, it shouldn't be modified. That is, it just supports a
	   create or delete action."
        INDEX {
            swL3IpStaticRouteDest,
            swL3IpStaticRouteMask,
            swL3IpStaticRouteBkupState
            }
        ::= { swL3IpStaticRouteTable 1 }

    SwL3IpStaticRouteEntry ::=
        SEQUENCE {
            swL3IpStaticRouteDest
                IpAddress,
            swL3IpStaticRouteMask
                IpAddress,
            swL3IpStaticRouteBkupState
            	INTEGER,
            swL3IpStaticRouteNextHop
                IpAddress,
            swL3IpStaticRouteMetric
                INTEGER,
            swL3IpStaticRouteStatus
                INTEGER
        }

    swL3IpStaticRouteDest OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS read-only
        STATUS   current
        DESCRIPTION
           "The destination IP address of this route.

           This object will not take a Multicast (Class  D)
           address value.

           Any assignment (implicit or otherwise) of an
           instance of this object with a value of x must
           be rejected if the bitwise logical-AND of x with
           the value of the corresponding instance of the
           swL3IpStaticRouteMask object is not equal to x."
        ::= { swL3IpStaticRouteEntry 1 }

    swL3IpStaticRouteMask OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS read-only
        STATUS   current
        DESCRIPTION
           "Indicates that the mask is to be logical-ANDed with
	   the destination address before being compared to
           the value in the swL3IpStaticRouteDest field.
           For those systems that do not support arbitrary
           subnet masks, an agent constructs the value  of
           the swL3IpStaticRouteMask by referring to the IP
           Address Class.

           Any assignment (implicit or otherwise) of an
           instance of this object to the value x must be
           rejected if the bitwise logical-AND of  x  with
           the value of the corresponding instance of the
           swL3IpStaticRouteDest object is not equal to
           swL3IpStaticRouteDest."
        ::= { swL3IpStaticRouteEntry 2 }

    swL3IpStaticRouteBkupState OBJECT-TYPE
        SYNTAX   INTEGER {
                    primary(1),
                    backup(2)
                }
        MAX-ACCESS read-only
        STATUS   current
        DESCRIPTION
            "The routing state for this route. The value should be
            primary (1) or backup (2)."
        ::= { swL3IpStaticRouteEntry 3 }

    swL3IpStaticRouteNextHop OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS read-create
        STATUS   current
        DESCRIPTION
           "On remote routes, the address of the next system
            route; Otherwise, 0.0.0.0."
        ::= { swL3IpStaticRouteEntry 4 }

    swL3IpStaticRouteMetric OBJECT-TYPE
        SYNTAX   INTEGER (1..65535)
        MAX-ACCESS read-create
        STATUS   current
        DESCRIPTION
            "The routing metric for this route."
        ::= { swL3IpStaticRouteEntry 5 }

    swL3IpStaticRouteStatus OBJECT-TYPE
        SYNTAX   INTEGER {
                    other(1),
                    invalid(2),
                    valid(3)
                }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the status of this entry.

            other (1) - This entry is currently in use but the conditions
                under which it will remain so are different from each of
                the following values.
            invalid (2) V If this value is written to the object, the
                corresponding entry will be removed from the table.
            Valid (3) - This entry will reside in the table."
        ::= { swL3IpStaticRouteEntry 6 }

-- ********************************************************************
--  swL3RelayBootpMgmt      OBJECT IDENTIFIER ::= { swL3RelayMgmt 1 }
-- ********************************************************************

    swL3RelayBootpState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the BOOTP Relay function is enabled
            or disabled."
        ::= { swL3RelayBootpMgmt 1 }

    swL3RelayBootpHopCount OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the maximum number of router hops that
            the BOOTP packets can cross."
        ::= { swL3RelayBootpMgmt 2 }

    swL3RelayBootpTimeThreshold OBJECT-TYPE
        SYNTAX  INTEGER (0..65535)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the minimum time in seconds within which
            the switch must relay the BOOTP request. If this time is
            exceeded, the switch will drop the BOOTP packet."
        ::= { swL3RelayBootpMgmt 3 }

    swL3RelayBootpOption82State OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the DHCP relay agent information
            option 82 function is enabled or disabled."
        ::= { swL3RelayBootpMgmt 4 }

    swL3RelayBootpOption82Check OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the checking mechanism of DHCP
            relay agent information option 82 is enabled or disabled."
        ::= { swL3RelayBootpMgmt 5 }

    swL3RelayBootpOption82Policy OBJECT-TYPE
        SYNTAX  INTEGER {
               replace(1),
               drop(2),
               keep(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the reforwarding policy of DHCP relay agent
            information option 82.

            replace (1) - Replace the existing option 82 field in messages.
            drop (2) - Discard messages with the existing option 82 field.
            keep (3) - Retain the existing option 82 field in messages."
        ::= { swL3RelayBootpMgmt 6 }

    swL3RelayBootpCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3RelayBootpCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table specifies the IP address as a destination to forward
            (relay) BOOTP packets to."
        ::= { swL3RelayBootpMgmt 7 }

    swL3RelayBootpCtrlEntry OBJECT-TYPE
        SYNTAX  SwL3RelayBootpCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information that specifies the IP address of a destination
            to forward (relay) BOOTP packets to."
        INDEX  { swL3RelayBootpCtrlInterfaceName,  swL3RelayBootpCtrlServer}
        ::= { swL3RelayBootpCtrlTable 1 }

    SwL3RelayBootpCtrlEntry ::=
        SEQUENCE {
            swL3RelayBootpCtrlInterfaceName
                DisplayString,
            swL3RelayBootpCtrlServer
                IpAddress,
            swL3RelayBootpCtrlState
                INTEGER
        }

    swL3RelayBootpCtrlInterfaceName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE(0..12))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The name of the IP interface."
        ::= { swL3RelayBootpCtrlEntry 1 }

    swL3RelayBootpCtrlServer OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
            "The BOOTP server IP address."
        ::= { swL3RelayBootpCtrlEntry 2 }

    swL3RelayBootpCtrlState OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    invalid(2),
                    valid(3)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the status of this entry.

            other (1) - This entry is currently in use but the conditions
                under which it will remain so are different from each of
                the following values.
            invalid (2) V If this value is written to the object, the
                corresponding entry will be removed from the table.
            valid (3) - This entry will reside in the table."
        ::= { swL3RelayBootpCtrlEntry 3 }


-- ********************************************************************
--  swL3RelayDnsMgmt        OBJECT IDENTIFIER ::= { swL3RelayMgmt 2 }
-- ********************************************************************

    swL3RelayDnsState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the DNS Relay function is enabled
            or disabled."
        ::= { swL3RelayDnsMgmt 1 }

    swL3RelayDnsPrimaryServer OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the address of the primary DNS server."
        ::= { swL3RelayDnsMgmt 2 }

    swL3RelayDnsSecondaryServer OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the address of the secondary DNS server."
        ::= { swL3RelayDnsMgmt 3 }

    swL3RelayDnsCacheState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the DNS Relay cache is enabled or
            disabled."
        ::= { swL3RelayDnsMgmt 4 }

    swL3RelayDnsStaticTableState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates if the DNS Relay static table is
            enabled or disabled."
        ::= { swL3RelayDnsMgmt 5 }

    swL3RelayDnsCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3RelayDnsCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table display the current DNS relay static table."
        ::= { swL3RelayDnsMgmt 6 }

    swL3RelayDnsCtrlEntry OBJECT-TYPE
        SYNTAX  SwL3RelayDnsCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information displaying the current DNS relay
            static table."
        INDEX  { swL3RelayDnsCtrlDomainName,  swL3RelayDnsCtrlIpAddr}
        ::= { swL3RelayDnsCtrlTable 1 }

    SwL3RelayDnsCtrlEntry ::=
        SEQUENCE {
            swL3RelayDnsCtrlDomainName
                DisplayString,
            swL3RelayDnsCtrlIpAddr
                IpAddress,
            swL3RelayDnsCtrlState
                INTEGER
        }

    swL3RelayDnsCtrlDomainName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE(1..32))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The domain name of this entry."
        ::= { swL3RelayDnsCtrlEntry 1 }

    swL3RelayDnsCtrlIpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
            "The IP address of this entry."
        ::= { swL3RelayDnsCtrlEntry 2 }

    swL3RelayDnsCtrlState OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    invalid(2),
                    valid(3)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates the status of this entry.

            other (1) - This entry is currently in use but the conditions
                under which it will remain so are different from each of
                the following values.
            invalid (2) V If this value is written to the object, the
                corresponding entry will be removed from the table.
            valid (3) - This entry will reside in the table."
        ::= { swL3RelayDnsCtrlEntry 3 }


-- ********************************************************************
--  swL3Md5Table            OBJECT IDENTIFIER ::= { swL3MgmtMIB 4 }
-- ********************************************************************

    swL3Md5Table OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3Md5Entry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table display the current MD5 key table."
        ::= { swL3MgmtMIB 4 }

    swL3Md5Entry OBJECT-TYPE
        SYNTAX  SwL3Md5Entry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information displaying the current MD5 key table."
        INDEX  { swL3Md5KeyId}
        ::= { swL3Md5Table 1 }

    SwL3Md5Entry ::=
        SEQUENCE {
            swL3Md5KeyId
                INTEGER,
            swL3Md5Key
                DisplayString,
            swL3Md5RowStatus
                RowStatus
        }

    swL3Md5KeyId OBJECT-TYPE
        SYNTAX  INTEGER (1..255)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The MD5 key ID."
        ::= { swL3Md5Entry 1 }

    swL3Md5Key OBJECT-TYPE
        SYNTAX DisplayString (SIZE(1..16))
        MAX-ACCESS  read-create
        STATUS current
        DESCRIPTION
            "An MD5 password of up to 16 bytes."
        ::= { swL3Md5Entry 2 }

    swL3Md5RowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the status of this entry."
        ::= { swL3Md5Entry 3 }


-- ********************************************************************
--  swL3RouteRedistriTable          OBJECT IDENTIFIER ::= { swL3MgmtMIB 5 }
-- ********************************************************************

    swL3RouteRedistriTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3RouteRedistriEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "Route redistribution allows routers on the network that are
            running different routing protocols to exchange routing
            information. This is accomplished by comparing the routes stored
            in the various routers routing tables and assigning appropriate
            metrics. This information is then exchanged among the various
            routers according to the individual routers current routing
            protocol."
        ::= { swL3MgmtMIB 5 }

    swL3RouteRedistriEntry OBJECT-TYPE
        SYNTAX  SwL3RouteRedistriEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information displaying the route redistribution table."
        INDEX  { swL3RouteRedistriSrcProtocol, swL3RouteRedistriDstProtocol}
        ::= { swL3RouteRedistriTable 1 }

    SwL3RouteRedistriEntry ::=
        SEQUENCE {
            swL3RouteRedistriSrcProtocol
                INTEGER,
            swL3RouteRedistriDstProtocol
                INTEGER,
            swL3RouteRedistriType
                INTEGER,
            swL3RouteRedistriMetric
                INTEGER,
            swL3RouteRedistriRowStatus
                RowStatus
        }

    swL3RouteRedistriSrcProtocol OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    rip(2),
                    ospf(3),
                    static(4),
                    local(5)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Allows the selection of the protocol for the source device."
        ::= { swL3RouteRedistriEntry 1 }

    swL3RouteRedistriDstProtocol OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    rip(2),
                    ospf(3)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Allows the selection of the protocol for the destination device."
        ::= { swL3RouteRedistriEntry 2 }

    swL3RouteRedistriType OBJECT-TYPE
        SYNTAX  INTEGER {
                    other(1),
                    all(2),
                    type-1(3),
                    type-2(4),
                    internal(5),
                    external(6),
                    inter-E1(7),
                    inter-E2(8),
                    extType1(9),
                    extType2(10)
                }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "Allows the selection of one of the methods for calculating
            the metric value."
        ::= { swL3RouteRedistriEntry 3 }

    swL3RouteRedistriMetric OBJECT-TYPE
        SYNTAX  INTEGER (0..16777214)
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "Allows the entry of an OSPF interface cost. This is analogous
            to a Hop Count in the RIP routing protocol. The value '0'
            indicates the default value."
        ::= { swL3RouteRedistriEntry 4 }

    swL3RouteRedistriRowStatus OBJECT-TYPE
        SYNTAX  RowStatus
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
            "This object indicates the status of this entry."
        ::= { swL3RouteRedistriEntry 5 }


-- ********************************************************************
--  swL3OspfHostTable          OBJECT IDENTIFIER ::= { swL3MgmtMIB 6 }
-- ********************************************************************

    swL3OspfHostTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3OspfHostEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The list of hosts and their metrics that the router will
            advertise as host routes."
        ::= { swL3MgmtMIB 6 }

    swL3OspfHostEntry OBJECT-TYPE
        SYNTAX   SwL3OspfHostEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
            "A metric to be advertised, for a given type of service, when a
            given host is reachable."
        INDEX { swL3OspfHostIpAddress, swL3OspfHostTOS }
        ::= { swL3OspfHostTable 1 }

    SwL3OspfHostEntry ::=
        SEQUENCE {
            swL3OspfHostIpAddress
                IpAddress,
            swL3OspfHostTOS
                TOSType,
            swL3OspfHostMetric
                Metric,
            swL3OspfHostAreaID
                AreaID,
            swL3OspfHostStatus
                RowStatus
        }

    swL3OspfHostIpAddress OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
            "The IP address of the host."
        ::= { swL3OspfHostEntry 1 }

    swL3OspfHostTOS OBJECT-TYPE
        SYNTAX   TOSType
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
            "The Type of Service for the route being configured."
        ::= { swL3OspfHostEntry 2 }

    swL3OspfHostMetric OBJECT-TYPE
        SYNTAX   Metric
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The metric to be advertised."
        ::= { swL3OspfHostEntry 3 }

    swL3OspfHostAreaID OBJECT-TYPE
        SYNTAX   AreaID
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The area of the host entry to be found within. By default, this is the
           area that a subsuming OSPF interface is in, or 0.0.0.0"
        ::= { swL3OspfHostEntry 4 }

    swL3OspfHostStatus OBJECT-TYPE
        SYNTAX   RowStatus
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "This variable displays the status of the entry. Setting it to
           'invalid' has the effect of rendering it inoperative. The internal
           effect (row removal) is implementation dependent."
        ::= { swL3OspfHostEntry 5 }

-- ********************************************************************
--  swL3ospfVirtIfTable          OBJECT IDENTIFIER ::= { swL3MgmtMIB 7 }
-- ********************************************************************
--  OSPF Virtual Interface Table(from rfc1850,modify by Scott Sung)

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

    swL3ospfVirtIfTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF SwL3OspfVirtIfEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "Information about this router's virtual inter-
           faces."
       REFERENCE
          "OSPF Version  2,  Appendix  C.4   Virtual  link
          parameters"
      ::= { swL3MgmtMIB 7 }

    swL3ospfVirtIfEntry OBJECT-TYPE
        SYNTAX   SwL3OspfVirtIfEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "Information about a single virtual interface."
       INDEX { swL3ospfVirtIfAreaId, swL3ospfVirtIfNeighbor }
       ::= { swL3ospfVirtIfTable 1 }

SwL3OspfVirtIfEntry ::=
    SEQUENCE {
        swL3ospfVirtIfAreaId
            AreaID,
        swL3ospfVirtIfNeighbor
            RouterID,
        swL3ospfVirtIfTransitDelay
            UpToMaxAge,
        swL3ospfVirtIfRetransInterval
            UpToMaxAge,
        swL3ospfVirtIfHelloInterval
            HelloRange,
        swL3ospfVirtIfRtrDeadInterval
            PositiveInteger,
        swL3ospfVirtIfState
            INTEGER,
        swL3ospfVirtIfEvents
            Counter32,
        swL3ospfVirtIfAuthType
            INTEGER,
        swL3ospfVirtIfAuthKey
            OCTET STRING,
        swL3ospfVirtIfAuthKeyID
        	INTEGER,
        swL3ospfVirtIfStatus
            RowStatus
              }

    swL3ospfVirtIfAreaId OBJECT-TYPE
        SYNTAX   AreaID
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The transit area that the virtual link
           traverses. By definition, this is not 0.0.0.0"
       ::= { swL3ospfVirtIfEntry 1 }

    swL3ospfVirtIfNeighbor OBJECT-TYPE
        SYNTAX   RouterID
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The router ID of the virtual neighbor."
       ::= { swL3ospfVirtIfEntry 2 }

    swL3ospfVirtIfTransitDelay OBJECT-TYPE
        SYNTAX   UpToMaxAge
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The estimated number of seconds it takes to
           transmit a link-state update packet over this
           interface."
       DEFVAL { 1 }
       ::= { swL3ospfVirtIfEntry 3 }

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

    swL3ospfVirtIfHelloInterval OBJECT-TYPE
        SYNTAX   HelloRange
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The length of time, in seconds, between the
           hello packets that the router sends on the
           interface. This value must be the same  for
           the virtual neighbor."
       DEFVAL { 10 }
       ::= { swL3ospfVirtIfEntry 5 }

    swL3ospfVirtIfRtrDeadInterval OBJECT-TYPE
        SYNTAX   PositiveInteger
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The number of seconds that a router's hello
           packets have not been seen before it's neigh-
           bors declare the router down. This should be
           some multiple of the hello interval. This
           value must be the same for the  virtual  neigh-
           bor."
       DEFVAL { 60 }
       ::= { swL3ospfVirtIfEntry 6 }

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

    swL3ospfVirtIfEvents OBJECT-TYPE
        SYNTAX   Counter32
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The number of state changes or error events on
           this virtual link"
       ::= { swL3ospfVirtIfEntry 8 }

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

    swL3ospfVirtIfAuthKey OBJECT-TYPE
        SYNTAX   OCTET STRING (SIZE(0..256))
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "If authentication type is simplePassword, the
           device will left adjust and zero fill to 8 oc-
           tets.

           Note that unauthenticated interfaces need no
           authentication key, and simple password authen-
           tication cannot use a key of more than 8 oc-
           tets. Larger keys are useful only with authen-
           tication mechanisms not specified in this docu-
           ment."
       REFERENCE
          "OSPF Version 2, Section 9  The  Interface  Data
          Structure"
      DEFVAL   { '0000000000000000'H }    -- 0.0.0.0.0.0.0.0
      ::= { swL3ospfVirtIfEntry 10 }

    swL3ospfVirtIfAuthKeyID OBJECT-TYPE
        SYNTAX   INTEGER (0..255)
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The MD5 key ID."
       ::= { swL3ospfVirtIfEntry 11 }

    swL3ospfVirtIfStatus OBJECT-TYPE
        SYNTAX   RowStatus
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "This variable displays the status of the en-
           try. Setting it to 'invalid' has the effect of
           rendering it inoperative. The internal effect
           (row removal) is implementation dependent."
       ::= { swL3ospfVirtIfEntry 12 }

--  OSPF Interface Table

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

    swL3ospfIfTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF SwL3OspfIfEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "The OSPF Interface Table describes the inter-
           faces from the viewpoint of OSPF."
       REFERENCE
          "OSPF Version 2, Appendix C.3  Router  interface
          parameters"
      ::= { swL3MgmtMIB 8 }

    swL3ospfIfEntry OBJECT-TYPE
        SYNTAX   SwL3OspfIfEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
           "The OSPF interface entry describes one inter-
           face from the viewpoint of OSPF."
       INDEX { swL3ospfIfIpAddress, swL3ospfAddressLessIf }
       ::= { swL3ospfIfTable 1 }

SwL3OspfIfEntry ::=
    SEQUENCE {
        swL3ospfIfIpAddress
            IpAddress,
        swL3ospfAddressLessIf
            Integer32,
        swL3ospfIfAreaId
            AreaID,
        swL3ospfIfType
            INTEGER,
        swL3ospfIfAdminStat
            Status,
        swL3ospfIfRtrPriority
            DesignatedRouterPriority,
        swL3ospfIfTransitDelay
            UpToMaxAge,
        swL3ospfIfRetransInterval
            UpToMaxAge,
        swL3ospfIfHelloInterval
            HelloRange,
        swL3ospfIfRtrDeadInterval
            PositiveInteger,
        swL3ospfIfPollInterval
            PositiveInteger,
        swL3ospfIfState
            INTEGER,
        swL3ospfIfDesignatedRouter
            IpAddress,
        swL3ospfIfBackupDesignatedRouter
            IpAddress,
        swL3ospfIfEvents
            Counter32,
        swL3ospfIfMulticastForwarding
            INTEGER,
        swL3ospfIfDemand
            TruthValue,
        swL3ospfIfAuthType
            INTEGER,
        swL3ospfIfAuthKey
            OCTET STRING,
        swL3ospfIfAuthKeyID
        	INTEGER,
        swL3ospfIfStatus
            RowStatus
              }

    swL3ospfIfIpAddress OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The IP address of this OSPF interface."
       ::= { swL3ospfIfEntry 1 }

    swL3ospfAddressLessIf OBJECT-TYPE
        SYNTAX   Integer32
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "For the purpose of easing the instancing of
           addressed and addressless interfaces; This
           variable takes the value 0 on  interfaces  with
           IP addresses and  the corresponding value of
           ifIndex for interfaces having no IP address."
       ::= { swL3ospfIfEntry 2 }

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

    swL3ospfIfType OBJECT-TYPE
        SYNTAX   INTEGER    {
                    broadcast (1),
                    nbma (2),
                    pointToPoint (3),
                    pointToMultipoint (5)
                  }
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The OSPF interface type.

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

    swL3ospfIfAdminStat OBJECT-TYPE
        SYNTAX   Status
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The OSPF interface's administrative status.
           The value formed on the interface, and the in-
           terface will be advertised as an internal route
           to some areas. The value 'disabled' denotes
           that the interface is external to OSPF."
       DEFVAL { enabled }
       ::= { swL3ospfIfEntry 5 }

    swL3ospfIfRtrPriority OBJECT-TYPE
        SYNTAX   DesignatedRouterPriority
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The priority of this interface. Used in
           multi-access  networks, this field is used by
           the designated router election algorithm. The
           value 0 signifies that the router is not eligi-
           ble to become the designated router on this
           particular network. In the event of a tie in
           this value, routers will use their router ID as
           a tie breaker."
       DEFVAL { 1 }
       ::= { swL3ospfIfEntry 6 }

    swL3ospfIfTransitDelay OBJECT-TYPE
        SYNTAX   UpToMaxAge
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The estimated number of seconds it takes to
           transmit a link state update packet over this
           interface."
       DEFVAL { 1 }
       ::= { swL3ospfIfEntry 7 }

    swL3ospfIfRetransInterval OBJECT-TYPE
        SYNTAX   UpToMaxAge
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The number of seconds between link-state ad-
           vertisement retransmissions, for adjacencies
           belonging to this interface. This value is
           also used when retransmitting database descrip-
           tion and link-state request packets."
       DEFVAL { 5 }
       ::= { swL3ospfIfEntry 8 }

    swL3ospfIfHelloInterval OBJECT-TYPE
        SYNTAX   HelloRange
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The length of time, in seconds, between the
           hello packets that the router sends on the in-
           terface. This value must be the same for all
           routers attached to a common network."
       DEFVAL { 10 }
       ::= { swL3ospfIfEntry 9 }

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

    swL3ospfIfPollInterval OBJECT-TYPE
        SYNTAX   PositiveInteger
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The larger time interval, in seconds, between
           the hello packets sent to an inactive non-
           broadcast multi-access neighbor."
       DEFVAL { 120 }
       ::= { swL3ospfIfEntry 11 }

    swL3ospfIfState OBJECT-TYPE
        SYNTAX   INTEGER    {
                    down (1),
                    loopback (2),
                    waiting (3),
                    pointToPoint (4),
                    designatedRouter (5),
                    backupDesignatedRouter (6),
                    otherDesignatedRouter (7)
                  }
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The OSPF interface state."
       DEFVAL { down }
       ::= { swL3ospfIfEntry 12 }

    swL3ospfIfDesignatedRouter OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The IP address of the designated router."
       DEFVAL   { '00000000'H }    -- 0.0.0.0
       ::= { swL3ospfIfEntry 13 }

    swL3ospfIfBackupDesignatedRouter OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The IP address of the backup designated
           router."
       DEFVAL   { '00000000'H }    -- 0.0.0.0
       ::= { swL3ospfIfEntry 14 }

    swL3ospfIfEvents OBJECT-TYPE
        SYNTAX   Counter32
        MAX-ACCESS   read-only
        STATUS   current
        DESCRIPTION
           "The number of times this OSPF interface has
           changed its state, or when an error has occurred."
       ::= { swL3ospfIfEntry 15 }

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

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

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

    swL3ospfIfAuthKey OBJECT-TYPE
        SYNTAX   OCTET STRING (SIZE (0..256))
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The Authentication Key. If the Area's Author-
           ization Type is simplePassword, and the key
           length is shorter than 8 octets, the agent will
           left adjust and zero fill to 8 octets.

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

           When read, ospfIfAuthKey will always return a
           zero length Octet String."
       REFERENCE
          "OSPF Version 2, Section 9  The  Interface  Data
          Structure"
      DEFVAL   { '0000000000000000'H }    -- 0.0.0.0.0.0.0.0
      ::= { swL3ospfIfEntry 19 }

    swL3ospfIfAuthKeyID OBJECT-TYPE
        SYNTAX   INTEGER (0..255)
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "The MD5 key ID."
       ::= { swL3ospfIfEntry 20 }

    swL3ospfIfStatus OBJECT-TYPE
        SYNTAX   RowStatus
        MAX-ACCESS   read-create
        STATUS   current
        DESCRIPTION
           "This variable displays the status of the entry.
           Setting it to 'invalid' has the effect of
           rendering it inoperative. The internal effect
           (row removal) is implementation dependent."
       ::= { swL3ospfIfEntry 21 }

-- *******************************************************************
 swL3RoutePreference	    OBJECT IDENTIFIER ::= { swL3MgmtMIB 9 }
-- *******************************************************************

	swL3RoutePreferenceRIP OBJECT-TYPE
        SYNTAX  INTEGER (1..999)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Used to configure the RIP route preference."
        ::= { swL3RoutePreference 1 }

	swL3RoutePreferenceOSPFIntra OBJECT-TYPE
        SYNTAX  INTEGER (1..999)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Used to configure the OSPF intra route preference."
        ::= { swL3RoutePreference 2 }

	swL3RoutePreferenceStatic OBJECT-TYPE
        SYNTAX  INTEGER (1..999)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Used to configure the static route preference."
        ::= { swL3RoutePreference 3 }

    swL3RoutePreferenceLocal OBJECT-TYPE
        SYNTAX  INTEGER (0..999)
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Used to read the local route preference."
        ::= { swL3RoutePreference 4 }

	swL3RoutePreferenceOSPFInter OBJECT-TYPE
        SYNTAX  INTEGER (1..999)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Used to configure the OSPF inter route preference."
        ::= { swL3RoutePreference 5 }

    swL3RoutePreferenceOSPFExtT1 OBJECT-TYPE
        SYNTAX  INTEGER (1..999)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Used to configure the OSPF ExtT1 route preference."
        ::= { swL3RoutePreference 6 }

    swL3RoutePreferenceOSPFExtT2 OBJECT-TYPE
        SYNTAX  INTEGER (1..999)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Used to configure the OSPF ExtT2 route preference."
        ::= { swL3RoutePreference 7 }


-- ********************************************************************
swL3PimMgmt	OBJECT IDENTIFIER ::= { swL3MgmtMIB 11 }
swL3PimCbsrInfoMgmt	OBJECT IDENTIFIER ::= { swL3PimMgmt 1 }

	swL3pimCbsrBootStrapPeriod OBJECT-TYPE
	    SYNTAX     Integer32 (1..255)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "At the elected BSR, this is the interval between originating bootstrap
	            messages, and should be equal to 60 seconds."
	    ::= { swL3PimCbsrInfoMgmt 1 }

	swL3pimCbsrHashMaskLen OBJECT-TYPE
	    SYNTAX     Integer32 (0..255)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "The length (in bits) of the mask to use in the hash function.
	            For IPv4 we recommend a value of 30. For IPv6 we recommand a value of 126."
	    ::= { swL3PimCbsrInfoMgmt 2 }

	swL3pimCbsrTable OBJECT-TYPE
	    SYNTAX     SEQUENCE OF SwL3pimCbsrEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The PIM CBSR Table contains the CBSR related information, like
	            interface and priority."
	    ::= { swL3PimCbsrInfoMgmt 3 }

	swL3pimCbsrEntry OBJECT-TYPE
	    SYNTAX     SwL3pimCbsrEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "An entry in the PIM CBSR Table."
	    INDEX      { swL3pimCbsrInterface }
	    ::= { swL3pimCbsrTable 1 }

	SwL3pimCbsrEntry ::= SEQUENCE {
	    swL3pimCbsrInterface	InterfaceIndex,
	    swL3pimCbsrPriority		Integer32
	}

	swL3pimCbsrInterface	OBJECT-TYPE
	    SYNTAX     InterfaceIndex
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The ifIndex value of this PIM interface."
	    ::= { swL3pimCbsrEntry 1 }

	swL3pimCbsrPriority OBJECT-TYPE
	    SYNTAX     Integer32 (-1..255)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "The preference value for the local interface as a candidate
	            bootstrap router. The value of -1 is used to indicate that
	            the local interface is not a candidate BSR interface."
	    DEFVAL     { 0 }
	    ::= { swL3pimCbsrEntry 2 }



	swL3pimCandidateRPMgmt OBJECT IDENTIFIER ::= { swL3PimMgmt 2 }
	swL3pimCandidateRPHoldtime OBJECT-TYPE
	    SYNTAX     Integer32 (0..255)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "For C-RPs, this is the holdtime specified in the C-RP-Adv message,
                    and is used by the BSR to time out RPs. This should be set to 2.5 *
	            [C-RP-Adv-Period]. Default: 150 seconds."
	    ::= { swL3pimCandidateRPMgmt 1 }

	swL3pimCandidateRPPriority OBJECT-TYPE
	    SYNTAX     Integer32 (0..255)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "The 'priority' of the included RP, for the corresponding Encoded-Group
	            Address (if any). The highest priority is '0' (i.e. the lower the value of the
	            'Priority' field, the higher the priority). This field is stored at the BSR
	            upon receipt, along with the RP address and corresponding Encoded-Group Address."
	    ::= { swL3pimCandidateRPMgmt 2 }

	swL3pimCandidateRPWildcardPrefixCnt OBJECT-TYPE
	    SYNTAX     Integer32 (0..1)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "The number of encoded group addresses included in the message; indicating
	            the group prefixes for which the C-RP is advertising. A Prefix-Cnt of '0'
	            implies a prefix of 224.0.0.0 with a mask length of 4; i.e. all multicast
	            groups. If the C-RP is not configured with Group-prefix information, the
	            C-RP puts a default value of '0' in this field."
	    ::= { swL3pimCandidateRPMgmt 3 }

	swL3pimSptMgmt OBJECT IDENTIFIER ::= { swL3PimMgmt 3 }
	swL3pimLastHopSptThreshold OBJECT-TYPE
	    SYNTAX     DisplayString(SIZE(1..8))
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "Specifies a last hop router threshold."
	    ::= { swL3pimSptMgmt 1 }

	swL3pimRPSptThreshold OBJECT-TYPE
	    SYNTAX     DisplayString(SIZE(1..8))
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "Specifies an RP threshold."
	    ::= { swL3pimSptMgmt 2 }

	swL3pimRegChksumIncDataTable OBJECT-TYPE
	    SYNTAX     SEQUENCE OF SwL3pimRegChksumIncDataEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The PIM Register Checksum Including Data Table contains the PIM
	            register checksum including data information, like RP address and
	            state."
	    ::= { swL3PimMgmt 4 }

	swL3pimRegChksumIncDataEntry OBJECT-TYPE
	    SYNTAX     SwL3pimRegChksumIncDataEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "An entry in the PIM Register Checksum Including the Data Table."
	    INDEX      { swL3SwL3pimRegChksumIncDataRpAddr }
	    ::= { swL3pimRegChksumIncDataTable 1 }

	SwL3pimRegChksumIncDataEntry ::= SEQUENCE {
	    swL3SwL3pimRegChksumIncDataRpAddr	IpAddress,
	    swL3SwL3pimRegChksumIncDataState	RowStatus
	}

	swL3SwL3pimRegChksumIncDataRpAddr	OBJECT-TYPE
	    SYNTAX     IpAddress
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "Specifies the RP address."
	    ::= { swL3pimRegChksumIncDataEntry 1 }

	swL3SwL3pimRegChksumIncDataState OBJECT-TYPE
	    SYNTAX     RowStatus
	    MAX-ACCESS read-create
	    STATUS     current
	    DESCRIPTION
	            "The state of register checksum including the data for RPs."
	    ::= { swL3pimRegChksumIncDataEntry 2 }

	swL3PimInfoMgmt	OBJECT IDENTIFIER ::= { swL3PimMgmt 5 }
	swL3pimRegisterProbeTime OBJECT-TYPE
	    SYNTAX     Integer32 (1..127)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "When null registers are used, this is the time between sending a null
	            register and the register-suppression-timer expiring unless it is restarted
	            by receiving a register-stop. Thus, a null register would be sent when the
	            register-suppression-timer reaches this value. Default: 5 seconds."
	    ::= { swL3PimInfoMgmt 1 }

	swL3pimRegisterSuppressionTime OBJECT-TYPE
	    SYNTAX     Integer32 (3..255)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "This is the mean interval between receiving a register-stop and allowing
	            registers to be sent again. A lower value means more frequent register bursts
	            at RP, while a higher value means longer join latency for the new receiver.
	            Default: 60 seconds."
	    ::= { swL3PimInfoMgmt 2 }

	swL3pimInfoTable OBJECT-TYPE
	    SYNTAX     SEQUENCE OF SwL3pimInfoEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The PIM Information Table contains PIM related information, like
	            DR priority."
	    ::= { swL3PimInfoMgmt 3 }

	swL3pimInfoEntry OBJECT-TYPE
	    SYNTAX     SwL3pimInfoEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "An entry in the PIM Information Table."
	    INDEX      { swL3pimInterface }
	    ::= { swL3pimInfoTable 1 }

	SwL3pimInfoEntry ::= SEQUENCE {
	    swL3pimInterface	InterfaceIndex,
	    swL3pimDRPriority		Unsigned32
	}

	swL3pimInterface	OBJECT-TYPE
	    SYNTAX     InterfaceIndex
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The ifIndex value of this PIM interface."
	    ::= { swL3pimInfoEntry 1 }

	swL3pimDRPriority OBJECT-TYPE
	    SYNTAX     Unsigned32 (0..4294967294)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "The DR Priority is a 32-bit unsigned number and the numerically larger
	            priority is always prefered. A router's idea of the current DR on an interface
	            can change when a PIM hello message is received, when a neighbor times out,
	            or when a router's own DR priority changes."
--	    DEFVAL     { 0 }
	    ::= { swL3pimInfoEntry 2 }

-- The PIM Static-RP Table

	swL3pimStaticRPTable OBJECT-TYPE
	    SYNTAX     SEQUENCE OF SwL3pimStaticRPEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The PIM Static RP Table contains the PIM static RP related information,
	            like group address, group mask, RP address and RP row status."
	    ::= { swL3PimMgmt 6 }

	swL3pimStaticRPEntry OBJECT-TYPE
	    SYNTAX     SwL3pimStaticRPEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "An entry in the PIM Static RP Table."
	    INDEX      { swL3pimStaticRPGroupAddress,
	                 swL3pimStaticRPGroupMask,
	                 swL3pimStaticRPAddress }
	    ::= { swL3pimStaticRPTable 1 }

	SwL3pimStaticRPEntry ::= SEQUENCE {
	    swL3pimStaticRPGroupAddress    IpAddress,
	    swL3pimStaticRPGroupMask       IpAddress,
	    swL3pimStaticRPAddress         IpAddress,
	    swL3pimStaticRPRowStatus       RowStatus
	}

	swL3pimStaticRPGroupAddress OBJECT-TYPE
	    SYNTAX     IpAddress
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The IP multicast group address which, when combined with
	            swL3pimStaticRPGroupMask, identifies a group prefix for which
	            the local router will advertise itself as a static RP."
	    ::= { swL3pimStaticRPEntry 1 }

	swL3pimStaticRPGroupMask OBJECT-TYPE
	    SYNTAX     IpAddress
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The multicast group address mask which, when combined with
	            swL3pimStaticRPGroupAddress, identifies a group prefix for which
	            the local router will advertise itself as a static RP."
	    ::= { swL3pimStaticRPEntry 2 }

	swL3pimStaticRPAddress OBJECT-TYPE
	    SYNTAX     IpAddress
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The (unicast) address of the interface which will be
            	    advertised as a static RP."
	    ::= { swL3pimStaticRPEntry 3 }

	swL3pimStaticRPRowStatus OBJECT-TYPE
	    SYNTAX     RowStatus
	    MAX-ACCESS read-create
	    STATUS     current
	    DESCRIPTION
	            "The status of this row. New entries may be
            	    created or old entries deleted from this table."
	    ::= { swL3pimStaticRPEntry 4 }

-- The PIM Active-RP Table

	swL3pimActiveRPTable OBJECT-TYPE
	    SYNTAX     SEQUENCE OF SwL3pimActiveRPEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The PIM Active RP Table contains the PIM active RP
	            related information, like group address, RP address."
	    ::= { swL3PimMgmt 7 }


	swL3pimActiveRPEntry OBJECT-TYPE
	    SYNTAX     SwL3pimActiveRPEntry
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "An entry (conceptual row) in the swL3pimActiveRPTable."
	    INDEX      { swL3pimActiveRPGroupAddress }
	    ::= { swL3pimActiveRPTable 1 }

	SwL3pimActiveRPEntry ::= SEQUENCE {
	    swL3pimActiveRPGroupAddress    IpAddress,
	    swL3pimActiveRPSourceIPAddress IpAddress,
	    swL3pimActiveRPSourceIPMask    IpAddress,
	    swL3pimActiveRPAddress         IpAddress
	}

	swL3pimActiveRPGroupAddress OBJECT-TYPE
	    SYNTAX     IpAddress
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The IP multicast group address for which this entry contains
	             information about the Active-RP."
	    ::= { swL3pimActiveRPEntry 1 }

	swL3pimActiveRPSourceIPAddress OBJECT-TYPE
	    SYNTAX     IpAddress
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The IP address for which this entry contains information about the
	             source of multicast data."
	    ::= { swL3pimActiveRPEntry 2 }

	swL3pimActiveRPSourceIPMask OBJECT-TYPE
	    SYNTAX     IpAddress
	    MAX-ACCESS not-accessible
	    STATUS     current
	    DESCRIPTION
	            "The IP mask for which this entry contains information about
	             the source of multicast data."
	    ::= { swL3pimActiveRPEntry 3 }

	swL3pimActiveRPAddress OBJECT-TYPE
	    SYNTAX     IpAddress
	    MAX-ACCESS read-only
	    STATUS     current
	    DESCRIPTION
	            "The IP address of the Active-RP."
	    ::= { swL3pimActiveRPEntry 4 }

-- ********************************************************************
--  swL3OspfDefaultInfoOriginate          OBJECT IDENTIFIER ::= { swL3MgmtMIB 12 }
-- ********************************************************************
    swL3OspfDefaultInfoOriginate          OBJECT IDENTIFIER ::= { swL3MgmtMIB 12 }

	swL3OspfDefaultInfoOriginateState OBJECT-TYPE
	    SYNTAX     Status
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "This object indicates if the Default Info Originate is
	             enabled or disabled."
	    ::= { swL3OspfDefaultInfoOriginate 1 }

	swL3OspfDefaultInfoOriginateAlways OBJECT-TYPE
	    SYNTAX     Status
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "This object indicates if the always parameter is
	             enabled or disabled.
	             If 'swL3OspfDefaultInfoOriginateState' is disabled, this
	             object returns to the default setting."
	    ::= { swL3OspfDefaultInfoOriginate 2 }

	swL3OspfDefaultInfoOriginateMettype OBJECT-TYPE
	    SYNTAX     INTEGER {
                type1(1),
                type2(2)
                }
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "This object indicates the type of AS external route.
	             If 'swL3OspfDefaultInfoOriginateState' is disabled, this
	             object returns to the default setting."
	    ::= { swL3OspfDefaultInfoOriginate 3 }

	swL3OspfDefaultInfoOriginateMetric OBJECT-TYPE
	    SYNTAX     INTEGER (0..16777214)
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "This object indicates the cost of a default route to
	             be advertised in OSPF. The range is 0 to 16777214."
	    ::= { swL3OspfDefaultInfoOriginate 4 }

-- ********************************************************************
--  swL3TraceRouteMgmt                    OBJECT IDENTIFIER ::= { swL3MgmtMIB 13 }
-- ********************************************************************
    swL3TraceRouteMgmt                    OBJECT IDENTIFIER ::= { swL3MgmtMIB 13 }
    swL3TraceRouteCtrl                    OBJECT IDENTIFIER ::= { swL3TraceRouteMgmt 1 }

	swL3TraceRoutePKTToCPUState OBJECT-TYPE
            SYNTAX  INTEGER {
                   other(1),
                   disabled(2),
                   enabled(3)
                   }
	    MAX-ACCESS read-write
	    STATUS     current
	    DESCRIPTION
	            "This object indicates to control whether to capture 
	             IP packet with zero TTL to CPU."
	    ::= { swL3TraceRouteCtrl 1 }

END
