-- SWL3MGMT MIB Ver 0.02                           2002/07/30
--
-- 
-- Modified swL3IpFdbInfoTable  
-- Modified swL3IpDomainMgmt to swL3IpCtrlMgmt
--   By Tommy Wang
--
-- SWL3MGMT MIB Ver 0.01                           2000/07/05

SWL3MGMT-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        Counter32,MODULE-IDENTITY,OBJECT-TYPE,IpAddress,
        NOTIFICATION-TYPE
                                                  FROM SNMPv2-SMI
        PhysAddress,DisplayString,RowStatus,MacAddress,TruthValue,TimeStamp
                                                  FROM SNMPv2-TC
        privateMgmt     	                      FROM SWPRIMGMT-MIB
        TOSType, Metric, AreaID                   FROM OSPF-MIB
        ifIndex                                   FROM IF-MIB;

    swL3MgmtMIB MODULE-IDENTITY
	    LAST-UPDATED "0007150000Z"
	    ORGANIZATION "enterprise, Inc."
	    CONTACT-INFO
	        "   Customer Service

		    Postal: 

		       Tel: 

		    E-mail: "
	    DESCRIPTION
		    "The Structure of Layer 3 Network Management Information for the
		    proprietary enterprise."
        ::= { privateMgmt 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 }
    
    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 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 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 DVMRP protocol is enabled or disabled."
        ::= { swL3DevCtrl 3 }
        

    swL3DevCtrlVRRPState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object indicates VRRP protocol is enabled or disabled."
        ::= { swL3DevCtrl 4 }
        
    swL3DevCtrlVRRPPingVirtualAddrState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This object let host can ping the virtual ip address or not. 
            Default is disabled(2)."
        ::= { swL3DevCtrl 5 }


-- ********************************************************************
--  swL3IpCtrlMgmt        OBJECT IDENTIFIER ::= { swL3IpMgmt 1 }
-- ********************************************************************

    swL3IpCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3IpCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table contain 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  { swL3IpCtrlInterfaceName }
        ::= { swL3IpCtrlTable 1 }

    SwL3IpCtrlEntry ::= 
        SEQUENCE {
            swL3IpCtrlInterfaceName
                DisplayString,
            swL3IpCtrlIfIndex
                INTEGER,
            swL3IpCtrlIpAddr
                IpAddress,
            swL3IpCtrlIpSubnetMask
                IpAddress,
            swL3IpCtrlVlanName
                DisplayString,
            swL3IpCtrlMode
                INTEGER,
            swL3IpCtrlState
                RowStatus,
            swL3IpCtrlOperState
                INTEGER    
        }
        
    swL3IpCtrlInterfaceName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..12))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "This object indicates the name of the IP interface."
        ::= { 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 }
        
    swL3IpCtrlIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The IP address of the interface. This object only can take the
            value of the unicast IP address."
        ::= { swL3IpCtrlEntry 3 }
        
    swL3IpCtrlIpSubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "The IP net mask for this interface."
        ::= { swL3IpCtrlEntry 4 }

    swL3IpCtrlVlanName OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (0..32))
        MAX-ACCESS  read-write
        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-write
        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 by manual.
            bootp(3) -  the IP address will be set automatically from BOOTP
                server.
            dhcp(4) - the IP address will be set automatically from DHCP
                server."
        ::= { swL3IpCtrlEntry 6 }

    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 the objects 
            in this table."
        ::= { swL3IpCtrlEntry 7 }
        
    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 8 }

-- ********************************************************************
--  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 in determining 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
--            "The object indicates the IP routing domain index, and should 
--            be associated with one of swL3IpDomainStatsIndex."
--        ::= { swL3IpFdbInfoEntry 1 }

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

    swL3IpFdbInfoIpSubnetMask OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "A IP net mask for this interface.for which 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 port on which
            packet having a IP address equal to the value of the 
            corresponding instance of swL3IpFdbInfoIpAddr has been seen. A 
            value of '0' indicates that the port number has not been learned
            but that 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 information for the device to filter packets
            with specific IP address (either as the DA and/or as the SA). 
            The IP address can be a unicast address or multicast address. 
            This table has higher priority than both static FDB table and 
            IGMP table. It means that if a IP address appears on this table
            also appears on the static FDB table, the device will use the
            information provide by 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 the used socket
--            number should be greater than or equal to"
--        ::= { swL3IpFilterAddrCtrlEntry 2 }

--    swL3IpFilterAddrIpSktLE OBJECT-TYPE
--        SYNTAX  INTEGER
--        MAX-ACCESS  read-write
--        STATUS  current
--        DESCRIPTION
--            "This object indicates a socket number which the used socket
--            number should be less than or equal to"
--        ::= { 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) - recieved frames's destination address are 
                currently used to be filtered as it meets with the IP 
                address entry of the table.
            src-addr(3) - recieved frames's source address are currently 
                used to be filtered as it meets with the IP address entry of
                the table.
            dst-src-addr(4) - recieved frames's destination address or 
                source address are currently used to be filtered as it meets
                with the IP address entry of the table.
            invalid(5) - writing this value to the object, and then the
                corresponding entry will be removed from the table."
        ::= { swL3IpFilterAddrCtrlEntry 2 }


    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."
        INDEX {
            swL3IpStaticRouteDest,
            swL3IpStaticRouteMask,
            swL3IpStaticRouteNextHop
            }
        ::= { swL3IpStaticRouteTable 1 }
    
    SwL3IpStaticRouteEntry ::=
        SEQUENCE {
            swL3IpStaticRouteDest
                IpAddress,
            swL3IpStaticRouteMask
                IpAddress,
            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 may not take a Multicast (Class  D)
           address value.
    
           Any assignment (implicit or  otherwise)  of  an
           instance  of  this  object to a value 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
           "Indicate the mask 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  reference to the IP 
           Address Class.
    
           Any assignment (implicit or  otherwise)  of  an
           instance  of  this  object to a 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 }
        
    swL3IpStaticRouteNextHop OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS read-only
        STATUS   current
        DESCRIPTION
           "On remote routes, the address of the next sys-
           tem en route; Otherwise, 0.0.0.0."
        ::= { swL3IpStaticRouteEntry 3 }
    
    swL3IpStaticRouteMetric OBJECT-TYPE
        SYNTAX   INTEGER (1..65535)
        MAX-ACCESS read-create
        STATUS   current
        DESCRIPTION
            "The routing  metric  for  this  route."
        ::= { swL3IpStaticRouteEntry 4 }
    
    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) - writing this value to the object, and then the
                corresponding entry will be removed from the table.
            valid(3) - this entry is reside in the table."
        ::= { swL3IpStaticRouteEntry 5 }
        
        
    swL3IpArpTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF SwL3IpArpEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
            "The ARP table used for mapping from IP addresses to physical 
            addresses."
        ::= { swL3IpMgmt 6 }

    swL3IpArpEntry OBJECT-TYPE
        SYNTAX   SwL3IpArpEntry
        MAX-ACCESS not-accessible
        STATUS   current
        DESCRIPTION
            "Each entry contains one IpAddress to `physical' address 
            equivalence."
        INDEX { swL3IpArpIfIndex, swL3IpArpNetAddress }
        ::= { swL3IpArpTable 1 }
    
    SwL3IpArpEntry ::=
        SEQUENCE {
            swL3IpArpIfIndex
                INTEGER,
            swL3IpArpNetAddress
                IpAddress,
            swL3IpArpPhysAddress
                MacAddress,
            swL3IpArpType
                INTEGER,
            swL3IpArpDynamicAgingTime
                INTEGER
        }
    
    swL3IpArpIfIndex OBJECT-TYPE
        SYNTAX   INTEGER
        MAX-ACCESS read-only
        STATUS   current
        DESCRIPTION
           "The interface on which this entry's equivalence is effective.
           The interface identified by a particular value of this index is
           the same interface as identified by the same value of ifIndex."
        ::= { swL3IpArpEntry 1 }
    
    swL3IpArpNetAddress OBJECT-TYPE
        SYNTAX   IpAddress
        MAX-ACCESS read-only
        STATUS   current
        DESCRIPTION
           "The IpAddress corresponding to the media-dependent `physical'
           address."
        ::= { swL3IpArpEntry 2 }
        
    swL3IpArpPhysAddress OBJECT-TYPE
        SYNTAX   MacAddress
        MAX-ACCESS read-create
        STATUS   current
        DESCRIPTION
           "The media-dependent `physical' address."
        ::= { swL3IpArpEntry 3 }
    
    swL3IpArpType OBJECT-TYPE
        SYNTAX   INTEGER {
                    other(1),        -- none of the following
                    invalid(2),      -- an invalidated mapping
                    dynamic(3),
                    static(4),
                    local(5),
                    local-broadcast(6)
                }
        MAX-ACCESS read-create
        STATUS   current
        DESCRIPTION
            "The type of mapping.

            Setting this object to the value invalid(2) has the effect of
            invalidating the corresponding entry in the swL3IpArpTable.
            That is, it effectively dissasociates the interface identified
            with said entry from the mapping identified with said entry. It
            is an implementation-specific matter as to whether the agent
            removes an invalidated entry from the table.  Accordingly, 
            management stations must be prepared to receive tabular 
            information from agents that corresponds to entries not
            currently in use.  Proper interpretation of such entries 
            requires examination of the relevant swL3IpArpType object."
        ::= { swL3IpArpEntry 4 }
    
    swL3IpArpDynamicAgingTime OBJECT-TYPE
        SYNTAX   INTEGER (0..65535)
        MAX-ACCESS read-only
        STATUS   current
        DESCRIPTION
           "The timeout period in seconds for aging out dynamically learned
           arp information. If the swL3IpArpType is not dynamic(3), this
           object will display zero."
        ::= { swL3IpArpEntry 5 }
        
        
    swL3IpArpReqRateLimitState OBJECT-TYPE
        SYNTAX  INTEGER {
               other(1),
               disabled(2),
               enabled(3)
               }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "To enable limit ARP requests trapped to CPU or disabled."
        ::= { swL3IpMgmt 7 }
        
    swL3IpArpReqRateLimitValue OBJECT-TYPE
        SYNTAX  INTEGER (10..100)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "To configure how much frames per second that ARP request
            limit. This value will be usefull only when 
            swL3IpArpReqRateLimitState is enabled."
        DEFVAL  { 50 }
        ::= { swL3IpMgmt 8 }

-- ********************************************************************
--  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 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 }
    
    swL3RelayBootpCtrlTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3RelayBootpCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "This table specifys the IP address as a destination to forward
            (relay) BOOTP packets to."
        ::= { swL3RelayBootpMgmt 4 }

    swL3RelayBootpCtrlEntry OBJECT-TYPE
        SYNTAX  SwL3RelayBootpCtrlEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "A list of information specifies the IP address as 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) - writing this value to the object, and then the
                corresponding entry will be removed from the table.
            valid(3) - this entry is 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 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 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 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 display 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(0..255))
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The domain name of the entry."
        ::= { swL3RelayDnsCtrlEntry 1 }
        
    swL3RelayDnsCtrlIpAddr OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS  read-only
        STATUS current
        DESCRIPTION
            "The IP address of the 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) - writing this value to the object, and then the
                corresponding entry will be removed from the table.
            valid(3) - this entry is 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 display the current MD5 key table."
        INDEX  { swL3Md5KeyId}
        ::= { swL3Md5Table 1 }

    SwL3Md5Entry ::= 
        SEQUENCE {
            swL3Md5KeyId
                INTEGER,
            swL3Md5Key
                DisplayString,
            swL3Md5State
                INTEGER    
        }

    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-write
        STATUS current
        DESCRIPTION
            "An MD5 password of up to 16 bytes."
        ::= { swL3Md5Entry 2 }

    swL3Md5State 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) - writing this value to the object, and then the
                corresponding entry will be removed from the table.
            valid(3) - this entry is reside in the table."
        ::= { 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 vairous routers routing tables and assinging 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 display the route redistribution table."
        INDEX  { swL3RouteRedistriSrcProtocol, swL3RouteRedistriDstProtocol}
        ::= { swL3RouteRedistriTable 1 }

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

    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 of 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 of 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-write
        STATUS  current
        DESCRIPTION
            "Allows the selection of one of the methods for calcalculating 
            the metric value."
        ::= { swL3RouteRedistriEntry 3 }
        
    swL3RouteRedistriMetric OBJECT-TYPE
        SYNTAX  INTEGER (0..16777214)
        MAX-ACCESS  read-write
        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 default value."
        ::= { swL3RouteRedistriEntry 4 }

    swL3RouteRedistriState 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) - writing this value to the object, and then the
                corresponding entry will be removed from the table.
            valid(3) - this entry is reside in the table."
        ::= { 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,
            swL3OspfHostStatus
                RowStatus,
            swL3OspfHostAreaID
                AreaID
        }

    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 of the route being configured."
        ::= { swL3OspfHostEntry 2 }

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

    swL3OspfHostStatus OBJECT-TYPE
        SYNTAX   RowStatus
        MAX-ACCESS   read-write
        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 4 }

    swL3OspfHostAreaID OBJECT-TYPE
        SYNTAX   AreaID
        MAX-ACCESS   read-write
        STATUS   current
        DESCRIPTION
           "The Area the Host Entry is to be found within. By default, the 
           area that a subsuming OSPF interface is in, or 0.0.0.0"
        ::= { swL3OspfHostEntry 5 }
     

-- ********************************************************************
--  swL3VrrpMgmt            OBJECT IDENTIFIER ::= { swL3MgmtMIB 7 }
-- ********************************************************************
    
    swL3VrrpMgmt            OBJECT IDENTIFIER ::= { swL3MgmtMIB 7 }
    
    swL3VrrpOperTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF SwL3VrrpOperEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
            "Operations table for a VRRP router which consists of a
            sequence (i.e., one or more conceptual rows) of
            'swL3VrrpOperEntry' items."
         ::= { swL3VrrpMgmt 1 }

    swL3VrrpOperEntry OBJECT-TYPE
        SYNTAX   SwL3VrrpOperEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
            "An entry in the swL3VrrpOperTable containing the operational
            characteristics of a virtual router. On a VRRP router,
            a given virtual router is identified by a combination
            of the IF index and VRID."
            INDEX    { ifIndex, swL3VrrpOperVrId }
        ::= { swL3VrrpOperTable 1 }
    
    SwL3VrrpOperEntry ::=
        SEQUENCE {
            swL3VrrpOperVrId
                INTEGER,
            swL3VrrpOperCriticalIpAddr
                IpAddress,
            swL3VrrpOperCriticalIpState
                INTEGER,
            swL3VrrpOperHoldDownTimer
                INTEGER
    }
    
    swL3VrrpOperVrId OBJECT-TYPE
        SYNTAX       INTEGER (1..255)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "This object contains the Virtual Router Identifier (VRID)."
        ::= { swL3VrrpOperEntry 1 }
        
    swL3VrrpOperCriticalIpAddr OBJECT-TYPE
        SYNTAX       IpAddress
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "To make sure the ip interface connected by this virtual router
            is alive or not."
        ::= { swL3VrrpOperEntry 2 }
    
    swL3VrrpOperCriticalIpState OBJECT-TYPE
        SYNTAX   INTEGER {
                other(1),
                disabled(2),
                enabled(3)
            }
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "To enable or disable the feature of critical IP."
        ::= { swL3VrrpOperEntry 3 }
    
    swL3VrrpOperHoldDownTimer OBJECT-TYPE
        SYNTAX      INTEGER (0..21600)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "When VRRP is started, it need to spend this period of time to 
            let the routing would be leared as well. The unit of this object
            is second."
        DEFVAL    { 0 }
        ::= { swL3VrrpOperEntry 4 }
           
-- ********************************************************************
--  swL3RoutePrefTable          OBJECT IDENTIFIER ::= { swL3MgmtMIB 8 }
-- ********************************************************************
    
    swL3RoutePrefTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF SwL3RoutePrefEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "IP Route Pref table."
        ::= { swL3MgmtMIB 8 }

    swL3RoutePrefEntry OBJECT-TYPE
        SYNTAX  SwL3RoutePrefEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "An entry of Ip Route Pref Table."
        INDEX  { swL3RoutePrefProtocol }
        ::= { swL3RoutePrefTable 1 }

    SwL3RoutePrefEntry ::= 
        SEQUENCE {
            swL3RoutePrefProtocol
                INTEGER,
            swL3RoutePrefValue
                INTEGER  
        }

    swL3RoutePrefProtocol OBJECT-TYPE
        SYNTAX  INTEGER {
                    isis(1),
                    rip(2),
                    ospfIntra(3),
                    static(4),
                    local(5),
                    bgp(6),
                    staticLow(7),
                    ospfInter(8),
                    ospfExternal(9),
                    ospfExternal1(10),
                    ospfExternal2(11),
                    ospfNssa1(12),
                    ospfNssa2(13)
                }
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "Protocol"
        ::= { swL3RoutePrefEntry 1 }        

    swL3RoutePrefValue OBJECT-TYPE
        SYNTAX  INTEGER (0..999)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "This value is a preference value for the given protocol."
        ::= { swL3RoutePrefEntry 2 }
        
        
-- ********************************************************************
--  swL3DvmrpInterfaceTable            OBJECT IDENTIFIER ::= { swL3MgmtMIB 9 }
-- ********************************************************************
        
    swL3DvmrpInterfaceTable OBJECT-TYPE
        SYNTAX   SEQUENCE OF SwL3DvmrpInterfaceEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
            "The (conceptual) table listing the router's multicast-
            capable interfaces."
         ::= { swL3MgmtMIB 9 }

    swL3DvmrpInterfaceEntry OBJECT-TYPE
        SYNTAX   SwL3DvmrpInterfaceEntry
        MAX-ACCESS   not-accessible
        STATUS   current
        DESCRIPTION
            "An entry (conceptual row) in the swL3DvmrpInterfaceTable."
        INDEX    { swL3DvmrpInterfaceIfIndex }
        ::= { swL3DvmrpInterfaceTable 1 }
    
    SwL3DvmrpInterfaceEntry ::=
        SEQUENCE {
            swL3DvmrpInterfaceIfIndex
                INTEGER,
            swL3DvmrpInterfaceNeighborTimeout
                INTEGER,
            swL3DvmrpInterfaceProbe
                INTEGER
    }
    
    swL3DvmrpInterfaceIfIndex OBJECT-TYPE
        SYNTAX       INTEGER (0..65535)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "The ifIndex value of the interface for which DVMRP is
            enabled."
        ::= { swL3DvmrpInterfaceEntry 1 }
        
    swL3DvmrpInterfaceNeighborTimeout OBJECT-TYPE
        SYNTAX       INTEGER (1..65535)
        MAX-ACCESS   read-write
        STATUS       current
        DESCRIPTION
            "The time period for DVMRP will hold Neithbor Router reports
            before issuing poison route messages. The unit is second."
        DEFVAL    { 35 }
        ::= { swL3DvmrpInterfaceEntry 2 }
    
    swL3DvmrpInterfaceProbe OBJECT-TYPE
        SYNTAX   INTEGER (1..65535)
        MAX-ACCESS read-write
        STATUS     current
        DESCRIPTION
            "DVMRP defines an extension to IGMP that allows routers to 
            query other routers to determine if a multicast group is 
            present on an given router subnetwork or not.  This is referred
            to as a 'probe'. The unit is second."
        DEFVAL    { 10 }
        ::= { swL3DvmrpInterfaceEntry 3 }  
        
        
END
