--MibName=rcDhcpSnooping
-- *****************************************************************
-- switch-dhcpsnooping-mib.mib:  Raisecom DHCP Snooping MIB file
--
-- Dec 2006, dongxiaogang
--
-- Copyright (c) 1994-2006 by Raisecom Technology Co., Ltd.
-- All rights reserved.
--
-- *****************************************************************

-- *****************************************************************
-- Modi ReportFormat: <number>, <time>, <author>, <desc> 
-- 0220100326huochao,  changeing at:rcDhcpSnoopingBindLease OBJECT-TYPE  SYNTAX   Unsigned32    (complier error)       
--
-- 01, 20080701, wumingyu, add node rcDhcpSnoopingBindCurrentRows,
--                         rcDhcpSnoopingBindHistoryMaxRows and table
--                         rcDhcpSnoopingBindTable
--
-- *****************************************************************


DHCP-SNOOPING-MIB  DEFINITIONS ::= BEGIN

IMPORTS
    MODULE-IDENTITY,
    NOTIFICATION-TYPE,
    OBJECT-TYPE                         FROM SNMPv2-SMI

    MODULE-COMPLIANCE,
    NOTIFICATION-GROUP,
    OBJECT-GROUP                        FROM SNMPv2-CONF
    MacAddress                          FROM SNMPv2-TC

    EnableVar                           FROM SWITCH-TC

    iscomSwitch                         FROM RAISECOM-BASE-MIB    
    
    InetAddressIPv4,
    InetAddressIPv6                     FROM INET-ADDRESS-MIB;


    rcDhcpSnooping MODULE-IDENTITY
        LAST-UPDATED    "201012100000Z"
        ORGANIZATION    "Raisecom Technology Co., Ltd."
        CONTACT-INFO
                "Raisecom Systems

                Postal: No.617/619 Haitai Tower,
                229 Fourth North Loop Middle Road,
                Haidian District, Beijing, PRC

                Tel: +86-10-82884499

                E-mail: dongxiaogang@raisecom.com"
        DESCRIPTION
         "The MIB module is for configuration of DHCP Snooping
         feature. DHCP Snooping is a security mechanism which
         uses information gleaned from DHCP packets to provide
         per-port security capabilities."
        REVISION   "201012100000Z"
        DESCRIPTION
            "The initial revision of this MIB module."
        ::= { iscomSwitch 23 }

------------------------------------------------------------------------------
-- define groups in rcDhcpSnooping
------------------------------------------------------------------------------
    rcDhcpSnoopingMibObjects
        OBJECT IDENTIFIER ::= { rcDhcpSnooping 1 }

    rcDhcpSnoopingGroup
        OBJECT IDENTIFIER ::= { rcDhcpSnoopingMibObjects 1 }
    rcDhcp6SnoopingGroup
        OBJECT IDENTIFIER ::= { rcDhcpSnoopingMibObjects 2 }
    rcDhcp4SnoopingOptionGroup
        OBJECT IDENTIFIER ::= { rcDhcpSnoopingMibObjects 3 }   
    rcDhcp6SnoopingOptionGroup
        OBJECT IDENTIFIER ::= { rcDhcpSnoopingMibObjects 4 }
    rcDhcpSnoopingBindSaveGroup
        OBJECT IDENTIFIER ::= { rcDhcpSnoopingMibObjects 5 }        

------------------------------------------------------------------------------
-- begin rcDhcpSnoopingGroup--
-- rcDhcpSnoopingGroup scale MIB--
rcDhcpSnoopingEnable OBJECT-TYPE
        SYNTAX EnableVar
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The state of global dhcp snooping. It has two values,
            one is enable(1),which indicates that the system start dhcp snooping;
            the other is disable(2) that means dhcp snooping is invalid in this system."
        DEFVAL { disable }
        ::= { rcDhcpSnoopingGroup 1 }

------------------------------------------------
-- rcDhcpSnoopingGroup rcDhcpSnoopingPortTable--
------------------------------------------------
rcDhcpSnoopingPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF RcDhcpSnoopingPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table provides the mechanism to control DHCP Snooping per port."
        ::= { rcDhcpSnoopingGroup 2 }

rcDhcpSnoopingPortEntry OBJECT-TYPE
        SYNTAX RcDhcpSnoopingPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Table entry for switch dhcp snooping config based on port."
        INDEX { rcDhcpSnoopingPortIndex }
        ::= { rcDhcpSnoopingPortTable 1 }

RcDhcpSnoopingPortEntry ::= SEQUENCE
    {
        rcDhcpSnoopingPortIndex     INTEGER,
        rcDhcpSnoopingPortEnable    EnableVar,
        rcDhcpSnoopingPortTrust     INTEGER
    }

rcDhcpSnoopingPortIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An index that uniquely identifies a configuration about dhcp snooping."
        ::= { rcDhcpSnoopingPortEntry 1}

rcDhcpSnoopingPortEnable OBJECT-TYPE
        SYNTAX EnableVar
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The state of dhcp snooping about specified port.
            It also has two values,one is enabled(1),which indicates that the port
            start dhcp snooping; the other is disable(2) that means dhcp snooping
            is invalid on the port.The default value is enable(1)."
        ::= { rcDhcpSnoopingPortEntry 2 }

rcDhcpSnoopingPortTrust OBJECT-TYPE
        SYNTAX      INTEGER{trusted(1), untrusted(2)}
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Trust state of port.It has two values,one is trusted(1),the other is untrusted(2).
            The default value is untrusted(2)."
        ::= { rcDhcpSnoopingPortEntry 3}

rcDhcpSnoopingBindCurrentRows OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Current rows of binding table."
        DEFVAL { 0 }
        ::= { rcDhcpSnoopingGroup 3 }

rcDhcpSnoopingBindHistoryMaxRows OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "History max rows of binding table."
        DEFVAL { 0 }
        ::= { rcDhcpSnoopingGroup 4 }   
        

------------------------------------------------
-- rcDhcpSnoopingGroup rcDhcpSnoopingBindTable--
------------------------------------------------
rcDhcpSnoopingBindTable OBJECT-TYPE
        SYNTAX SEQUENCE OF RcDhcpSnoopingBindEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table records dhcp snooping bindings."
        ::= { rcDhcpSnoopingGroup 5 }

rcDhcpSnoopingBindEntry OBJECT-TYPE
        SYNTAX RcDhcpSnoopingBindEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Table entry for dhcp snooping binding."
        INDEX { rcDhcpSnoopingBindIp }
        ::= { rcDhcpSnoopingBindTable 1 }

RcDhcpSnoopingBindEntry ::= SEQUENCE
    {
        rcDhcpSnoopingBindIp    InetAddressIPv4,
        rcDhcpSnoopingBindMac   MacAddress,
        rcDhcpSnoopingBindLease Unsigned32,
        rcDhcpSnoopingBindVlan  INTEGER(1..4094),
        rcDhcpSnoopingBindPort  INTEGER
    }

rcDhcpSnoopingBindIp OBJECT-TYPE
        SYNTAX InetAddressIPv4
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Binding IP address, the index of this table"
        ::= { rcDhcpSnoopingBindEntry 1}

rcDhcpSnoopingBindMac OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Binding MAC address."
        ::= { rcDhcpSnoopingBindEntry 2 }

rcDhcpSnoopingBindLease OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Binding lease remaining time(sec)."
        ::= { rcDhcpSnoopingBindEntry 3}

rcDhcpSnoopingBindVlan OBJECT-TYPE
        SYNTAX      INTEGER (1..4094)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Binding vlan."
        ::= { rcDhcpSnoopingBindEntry 4}

rcDhcpSnoopingBindPort OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Binding port."
        ::= { rcDhcpSnoopingBindEntry 5}

-- end rcDhcpSnoopingGroup--      


------------------------------------------------------------------------------
-- begin rcDhcp6SnoopingGroup --
-- rcDhcp6SnoopingGroup scale MIB--
-----------------------------------
rcDhcp6SnoopingEnable OBJECT-TYPE
        SYNTAX EnableVar
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The state of global dhcp snooping. It has two values,
            one is enable(1),which indicates that the system start dhcp snooping;
            the other is disable(2) that means dhcp snooping is invalid in this system."
        DEFVAL { disable }
        ::= { rcDhcp6SnoopingGroup 1 }

------------------------------------------------
-- rcDhcp6SnoopingGroup rcDhcp6SnoopingPortTable--
------------------------------------------------
rcDhcp6SnoopingPortTable OBJECT-TYPE
        SYNTAX SEQUENCE OF RcDhcp6SnoopingPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table provides the mechanism to control DHCP Snooping per port."
        ::= { rcDhcp6SnoopingGroup 2 }

rcDhcp6SnoopingPortEntry OBJECT-TYPE
        SYNTAX RcDhcp6SnoopingPortEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Table entry for switch dhcp snooping config based on port."
        INDEX { rcDhcp6SnoopingPortIndex }
        ::= { rcDhcp6SnoopingPortTable 1 }

RcDhcp6SnoopingPortEntry ::= SEQUENCE
    {
        rcDhcp6SnoopingPortIndex     INTEGER,
        rcDhcp6SnoopingPortEnable    EnableVar,
        rcDhcp6SnoopingPortTrust     INTEGER
    }

rcDhcp6SnoopingPortIndex OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "An index that uniquely identifies a configuration about dhcp snooping."
        ::= { rcDhcp6SnoopingPortEntry 1}

rcDhcp6SnoopingPortEnable OBJECT-TYPE
        SYNTAX EnableVar
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The state of dhcp snooping about specified port.
            It also has two values,one is enabled(1),which indicates that the port
            start dhcp snooping; the other is disable(2) that means dhcp snooping
            is invalid on the port.The default value is enable(1)."
        ::= { rcDhcp6SnoopingPortEntry 2 }

rcDhcp6SnoopingPortTrust OBJECT-TYPE
        SYNTAX      INTEGER{trusted(1), untrusted(2)}
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Trust state of port.It has two values,one is trusted(1),the other is untrusted(2).
            The default value is untrusted(2)."
        ::= { rcDhcp6SnoopingPortEntry 3}
   
   
------------------------------------------------
-- rcDhcp6SnoopingGroup scale MIB--
------------------------------------------------
   
rcDhcp6SnoopingBindCurrentRows OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Current rows of binding table."
        DEFVAL { 0 }
        ::= { rcDhcp6SnoopingGroup 3 }

rcDhcp6SnoopingBindHistoryMaxRows OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "History max rows of binding table."
        DEFVAL { 0 }
        ::= { rcDhcp6SnoopingGroup 4 }

------------------------------------------------
-- rcDhcp6SnoopingGroup rcDhcp6SnoopingBindTable--
------------------------------------------------
rcDhcp6SnoopingBindTable OBJECT-TYPE
        SYNTAX SEQUENCE OF RcDhcp6SnoopingBindEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table records dhcp snooping bindings."
        ::= { rcDhcp6SnoopingGroup 5 }

rcDhcp6SnoopingBindEntry OBJECT-TYPE
        SYNTAX RcDhcp6SnoopingBindEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Table entry for dhcp snooping binding."
        INDEX { rcDhcp6SnoopingBindIp }
        ::= { rcDhcp6SnoopingBindTable 1 }

RcDhcp6SnoopingBindEntry ::= SEQUENCE
    {
        rcDhcp6SnoopingBindIp    InetAddressIPv6,
        rcDhcp6SnoopingBindMac   MacAddress,
        rcDhcp6SnoopingBindLease Unsigned32,
        rcDhcp6SnoopingBindVlan  INTEGER,
        rcDhcp6SnoopingBindPort  INTEGER
    }

rcDhcp6SnoopingBindIp OBJECT-TYPE
        SYNTAX InetAddressIPv6
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Binding IP address, the index of this table"
        ::= { rcDhcp6SnoopingBindEntry 1}

rcDhcp6SnoopingBindMac OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Binding MAC address."
        ::= { rcDhcp6SnoopingBindEntry 2 }

rcDhcp6SnoopingBindLease OBJECT-TYPE
        SYNTAX      Unsigned32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Binding lease remaining time(sec)."
        ::= { rcDhcp6SnoopingBindEntry 3}

rcDhcp6SnoopingBindVlan OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Binding vlan."
        ::= { rcDhcp6SnoopingBindEntry 4}

rcDhcp6SnoopingBindPort OBJECT-TYPE
        SYNTAX      INTEGER
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Binding port."
        ::= { rcDhcp6SnoopingBindEntry 5}

-- end rcDhcp6SnoopingGroup--



---------------------------------------------------
-- begin rcDhcp4SnoopingOptionGroup--
-- rcDhcp4SnoopingOptionGroup scale MIB--
---------------------------------------------------


rcDhcpSnoopingOptionList OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(32))
        MAX-ACCESS read-write
        STATUS current 
        DESCRIPTION
            "The enable state list of dhcp snooping V4 cumstom option supporting. 
            It has in total 256 bit, each one indicates a state of one option"
        ::= { rcDhcp4SnoopingOptionGroup 1 }   
 
-- end rcDhcp4SnoopingOptionGroup--
------------------------------------------------------------------------------
   
   
   
---------------------------------------------------
-- begin rcDhcp6SnoopingOptionGroup--            
-- rcDhcp6SnoopingOptionGroup scale MIB--
---------------------------------------------------

rcDhcp6SnoopingOptionList OBJECT-TYPE
        SYNTAX OCTET STRING (SIZE(32))
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The enable state list of dhcp snooping V6 cumstom option supporting. 
            It has in total 256 bit, each one indicates a state of one option"
        ::= { rcDhcp6SnoopingOptionGroup 1 }
 
-- end rcDhcp6SnoopingOptionGroup--
------------------------------------------------------------------------------



---------------------------------------------------
-- begin rcDhcpSnoopingBindSaveGroup--
-- rcDhcpSnoopingBindSaveGroup scale MIB--

rcDhcpSnoopingBindSaveEnable OBJECT-TYPE
        SYNTAX EnableVar
        MAX-ACCESS read-write
        STATUS current 
        DESCRIPTION
            "The state of dhcp snooping bind auto save.It has two values, 
            one is enable(1),which indicates that the dhcp snooping bind 
            auto save is enable; the other is disable(2) that means dhcp 
            snooping bind auto save is disable. The default value is disable(1)."
        DEFVAL { disable }
        ::= { rcDhcpSnoopingBindSaveGroup 1 } 
          
rcDhcpSnoopingBindSaveWriteDelay OBJECT-TYPE
        SYNTAX      INTEGER		(60..2147483647)
        MAX-ACCESS read-write
        STATUS current 
        DESCRIPTION
            "The time interval of dhcp snooping bind auto save."
        DEFVAL { 300 }
        ::= { rcDhcpSnoopingBindSaveGroup 2 }
         
-- end rcDhcpSnoopingBindSaveGroup--
 
END