
-- *******************************************************************
-- FS-CAPWAP-DHCP-MIB.mib : FS WLAN DHCP MIB 
-- 
-- Nov 2009, chenfg1
--
-- Copyright (c) 2009 by FS.COM Inc..
-- All rights reserved.
-- *******************************************************************
--
FS-CAPWAP-DHCP-MIB DEFINITIONS ::= BEGIN

IMPORTS 
        MODULE-IDENTITY, 
        OBJECT-TYPE,
		Integer32,
	NOTIFICATION-TYPE,	
        Unsigned32,
        IpAddress
                FROM SNMPv2-SMI
        OBJECT-GROUP,
        MODULE-COMPLIANCE
                FROM SNMPv2-CONF
        TruthValue,
        RowStatus,
        DisplayString,
        MacAddress
                FROM SNMPv2-TC 
        fsMgmt
                FROM FS-SMI
        fsIfIndex 
                FROM FS-INTERFACE-MIB;

--********************************************************************
--*  MODULE IDENTITY
--********************************************************************

fsCapwapDhcpMIB    MODULE-IDENTITY
       LAST-UPDATED    "200911100000Z"
       ORGANIZATION    "FS.COM Inc.."
       CONTACT-INFO  
                " 
                Tel: 400-865-2852 

                E-mail: https://www.fs.com/live_chat_service_mail.html"

        DESCRIPTION             
                "This MIB is intended to be implemented on all those
                devices operating as Central controllers, that
                terminate the Light Weight Access Point Protocol
                tunnel from FS Light-weight CAPWAP Access Points.

                This MIB is used to show and configure Dynamic Host
		        Configuration Protocol (DHCP) related statistics.


                The relationship between CC and the CAPWAP APs
                can be depicted as follows:

        +......+     +......+     +......+           +......+
        +      +     +      +     +      +           +      +
        +  CC  +     +  CC  +     +  CC  +           +  CC  +
        +      +     +      +     +      +           +      +
        +......+     +......+     +......+           +......+
          ..            .             .                 .
          ..            .             .                 .
         .  .            .             .                 .
        .    .            .             .                 .
       .      .            .             .                 .
      .        .            .             .                 .
   +......+ +......+     +......+      +......+          +......+
   +      + +      +     +      +      +      +          +      +
   +  AP  + +  AP  +     +  AP  +      +  AP  +          +  AP  +
   +      + +      +     +      +      +      +          +      +
   +......+ +......+     +......+      +......+          +......+
              .              .             .                 .
            .  .              .             .                 .
           .    .              .             .                 .
          .      .              .             .                 .
         .        .              .             .                 .
      +......+ +......+     +......+      +......+          +......+
      +      + +      +     +      +      +      +          +      +
      +  MN  + +  MN  +     +  MN  +      +  MN  +          +  MN  +
      +      + +      +     +      +      +      +          +      +
      +......+ +......+     +......+      +......+          +......+


                The CAPWAP tunnel exists between the controller and
                the APs.  The MNs communicate with the APs through
                the protocol defined by the 802.11 standard.

                CAPWAP APs, upon bootup, discover and join one of the
                controllers and the controller pushes the configuration,
                that includes the WLAN parameters, to the CAPWAP APs.
                The APs then encapsulate all the 802.11 frames from
                wireless clients inside CAPWAP frames and forward
                the CAPWAP frames to the controller.

                                   GLOSSARY

                Access Point ( AP )

                An entity that contains an 802.11 medium access
                control ( MAC ) and physical layer ( PHY ) interface
                and provides access to the distribution services via
                the wireless medium for associated clients.  

                CAPWAP APs encapsulate all the 802.11 frames in
                CAPWAP frames and sends them to the controller to which
                it is logically connected.

                Central Controller ( CC )

                The central entity that terminates the CAPWAP protocol
                tunnel from the CAPWAP APs.  Throughout this MIB,
                this entity also referred to as 'controller'. 

                Light Weight Access Point Protocol ( CAPWAP ) 

                This is a generic protocol that defines the 
                communication between the Access Points and the
                Central Controller.

                Mobile Node ( MN )

                A roaming 802.11 wireless device in a wireless
                network associated with an access point. Mobile Node,
                Mobile Station(Ms) and client are used interchangeably. 
                
                REFERENCE
 
                [1] Wireless LAN Medium Access Control ( MAC ) and
                Physical Layer ( PHY ) Specifications.
  
                [2] Draft-obara-capwap-capwap-00.txt, IETF Light 
                Weight Access Point Protocol "
        
        REVISION      "200911100000Z"
        DESCRIPTION
                "Initial version of this MIB module. "
        ::= { fsMgmt 58 }

fsCapwapDhcpMIBTrap    OBJECT IDENTIFIER 
    ::= { fsCapwapDhcpMIB 0 }

fsCapwapDhcpMIBObjects OBJECT IDENTIFIER 
    ::= { fsCapwapDhcpMIB 1 }

fsCapwapDhcpGlobalConfig OBJECT IDENTIFIER
	::= { fsCapwapDhcpMIBObjects 1 }

fsCapwapDhcpShowStats OBJECT IDENTIFIER
	::= { fsCapwapDhcpMIBObjects 2 }
	
fsCapwapDhcpServerConfig OBJECT IDENTIFIER
	::= { fsCapwapDhcpMIBObjects 3 }
	
fsCapwapDhcpRelayConfig OBJECT IDENTIFIER
	::= { fsCapwapDhcpMIBObjects 4 }
	
	
--*************************************************
--DHCP Global Config
--*************************************************

fsLDhcpClearAllStats    OBJECT-TYPE
	SYNTAX	                TruthValue
	MAX-ACCESS              read-write
	STATUS	                current
	DESCRIPTION
	"This attribute when set to true, clears
	all the statistics of the DHCP server."
	::= { fsCapwapDhcpGlobalConfig  1 }
	
fsLDhcpStartService    OBJECT-TYPE
	SYNTAX	                INTEGER {
                            enable(1),
                            disable(0)
                            }
	MAX-ACCESS              read-write
	STATUS	                current
	DESCRIPTION
	"this attribute when set to true, start DHCP
	service."
	::= { fsCapwapDhcpGlobalConfig  2 }
	
fsDhcpClientMacAddress  OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS accessible-for-notify
        STATUS  current
        DESCRIPTION
            "This trap is sent when the dhcp client failed to request address"
        ::= { fsCapwapDhcpGlobalConfig 3 }

fsLDhcpStartTIService OBJECT-TYPE
	SYNTAX INTEGER {
                enable(1),
                disable(0)
            }
	MAX-ACCESS read-write
	STATUS current
	DESCRIPTION
	"this attribute when set to true, start DHCP
	 terminal identify service."
	::= { fsCapwapDhcpGlobalConfig  4 }

fsDhcpServerTlvNum OBJECT-TYPE
        SYNTAX    INTEGER
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
                  "Dhcp Server info TLV number"
        ::= { fsCapwapDhcpGlobalConfig 5 }

fsDhcpServerTlv OBJECT-TYPE
        SYNTAX    DisplayString
        MAX-ACCESS  accessible-for-notify
        STATUS      current
        DESCRIPTION
              "Dhcp Server info TLV strings"
        ::= { fsCapwapDhcpGlobalConfig 6 }

--********************************************************
--DHCP stats group
--********************************************************
			
fsLDhcpDiscoverPkts     OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                   "packets"
	MAX-ACCESS              read-only
	STATUS                  current   
	DESCRIPTION
    "This object represents the number of DHCP discover
	Packets sent by the controller."
	::= { fsCapwapDhcpShowStats  1 }

fsLDhcpRequestPkts      OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                   "packets"
	MAX-ACCESS              read-only
	STATUS                  current   
	DESCRIPTION
	"This object represents the number of DHCP request
	packets sent by the controller."
	::= { fsCapwapDhcpShowStats  2 }

fsLDhcpDeclinePkts      OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                   "packets"
	MAX-ACCESS              read-only
	STATUS                  current  
	DESCRIPTION
    "This object represents the number of DHCP decline
	Packets received by the controller."
	::= { fsCapwapDhcpShowStats  3 }

fsLDhcpInformPkts       OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                   "packets"
	MAX-ACCESS              read-only
	STATUS                  current   
	DESCRIPTION
	"This object represents the number of DHCP 
	inform packets."
	::= { fsCapwapDhcpShowStats  4 }

fsLDhcpReleasePkts      OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                   "packets"
	MAX-ACCESS              read-only
	STATUS                  current   
	DESCRIPTION
    "This object represents the number of DHCP 
	release packets."
    ::= { fsCapwapDhcpShowStats  5 }

fsLDhcpReplyPkts        OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                   "packets"
	MAX-ACCESS              read-only
	STATUS                  current   
	DESCRIPTION
	"This object represents the number of DHCP reply
	Packets received by the controller."
	::= { fsCapwapDhcpShowStats  6 }

fsLDhcpOfferPkts        OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                   "packets"
	MAX-ACCESS              read-only
	STATUS                  current   
	DESCRIPTION
    "This object represents the number of DHCP 
	offer packets."
    ::= { fsCapwapDhcpShowStats  7 }

fsLDhcpAckPkts          OBJECT-TYPE
    SYNTAX                  Unsigned32
  	UNITS                   "packets"
  	MAX-ACCESS              read-only
  	STATUS                  current   
  	DESCRIPTION
    "This object represents the number of Ack  packets"
    ::= { fsCapwapDhcpShowStats  8 }

fsLDhcpNakPkts          OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                   "packets"
	MAX-ACCESS              read-only
	STATUS                  current   
	DESCRIPTION
    "This object represents the number of Nak packets"
	::= { fsCapwapDhcpShowStats  9 }


fsLDhcpReqTimes          OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                     "packets"
	MAX-ACCESS              read-only
	STATUS                  current   
	DESCRIPTION
             "This object represents the number of request packets"
	::= { fsCapwapDhcpShowStats  10 }

fsLDhcpReqSucTimes           OBJECT-TYPE
	SYNTAX                  Unsigned32
	UNITS                   "packets"
	MAX-ACCESS              read-only
	STATUS                  current   
	DESCRIPTION
             "This object represents the number of Success Reqeust packets"
	::= { fsCapwapDhcpShowStats  11 }	

--********************************************************
--DHCP Server config 
--********************************************************
    fsDhcpScopeTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF FSDhcpScopeEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table listing the Scopes defined on the
                      switch's DHCP Server."
         ::= { fsCapwapDhcpServerConfig 1 }

    fsDhcpScopeEntry OBJECT-TYPE
         SYNTAX      FSDhcpScopeEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Switch's DHCP Server Scope entry."
         INDEX       { fsDhcpScopeIndex }
         ::= { fsDhcpScopeTable 1 }

    FSDhcpScopeEntry ::= SEQUENCE {
             fsDhcpScopeIndex                        Unsigned32,
             fsDhcpScopeName                         DisplayString,
             fsDhcpScopeLeaseTime                    Integer32,
             fsDhcpScopeNetwork                      IpAddress,
             fsDhcpScopeNetmask                      IpAddress,
	         fsDhcpScopePoolStartAddress             IpAddress,
             fsDhcpScopePoolEndAddress               IpAddress,
             fsDhcpScopeDefaultRouterAddress1        IpAddress,
             fsDhcpScopeDefaultRouterAddress2        IpAddress,
             fsDhcpScopeDefaultRouterAddress3        IpAddress,
             fsDhcpScopeDnsDomainName                DisplayString,
             fsDhcpScopeDnsServerAddress1            IpAddress,
             fsDhcpScopeDnsServerAddress2            IpAddress,
             fsDhcpScopeDnsServerAddress3            IpAddress,
             fsDhcpScopeNetbiosNameServerAddress1    IpAddress,
             fsDhcpScopeNetbiosNameServerAddress2    IpAddress,
             fsDhcpScopeNetbiosNameServerAddress3    IpAddress,
	         fsDhcpScopeState                        INTEGER,
             fsDhcpScopeRowStatus                    RowStatus,
             fsDhcpIPPoolUsage                       Integer32,
             fsDhcpoption43                          IpAddress,
             fsDhcpoption138                         IpAddress,
             fsDhcpReqtimes                          Unsigned32,
             fsDhcpReqSuctimes                       Unsigned32,
             fsDhcpTotalIPNum                        Integer32,		
             fsDhcpCurrentUsedIPNum                  Integer32,
             fsDhcpOffertimes                        Unsigned32,
             fsDhcpAcktimes                          Unsigned32
             }

    fsDhcpScopeIndex OBJECT-TYPE
         SYNTAX      Unsigned32(1..15)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "DHCP Scope Identifier Index."
         ::= { fsDhcpScopeEntry 1 }

    fsDhcpScopeName OBJECT-TYPE
         SYNTAX      DisplayString(SIZE(1..64))
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "DHCP Scope Name."
         ::= { fsDhcpScopeEntry 2 }

    fsDhcpScopeLeaseTime OBJECT-TYPE
         SYNTAX      Integer32(120..8640000)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "DHCP Scope Lease time in seconds."
         ::= { fsDhcpScopeEntry 3 }

    fsDhcpScopeNetwork OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of the DHCP Scope Network. This is
                     the address which is used to determine the DHCP
                     scope a remote Switch is attaching to."
         ::= { fsDhcpScopeEntry 4 }

    fsDhcpScopeNetmask OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The DHCP Scope Netmask. This the subnet mask for
                      the address pool."
         ::= { fsDhcpScopeEntry 5 }
		 
    fsDhcpScopePoolStartAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The DHCP Scope address pool start IP address."
         ::= { fsDhcpScopeEntry 6 }

    fsDhcpScopePoolEndAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "The DHCP Scope address pool end IP address."
         ::= { fsDhcpScopeEntry 7 }

    fsDhcpScopeDefaultRouterAddress1 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of the DHCP Scope's default Router
                     1."
         ::= { fsDhcpScopeEntry 8 }

    fsDhcpScopeDefaultRouterAddress2 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of the DHCP Scope's default Router
                     2."
         ::= { fsDhcpScopeEntry 9 }

    fsDhcpScopeDefaultRouterAddress3 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of the DHCP Scope's default Router
                     3."
         ::= { fsDhcpScopeEntry 10 }

    fsDhcpScopeDnsDomainName OBJECT-TYPE
         SYNTAX      DisplayString(SIZE(0..64))
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "DNS Domain name for the DHCP Scope."
         ::= { fsDhcpScopeEntry 11 }

    fsDhcpScopeDnsServerAddress1 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of the DHCP Scope's DNS Server 1."
         ::= { fsDhcpScopeEntry 12 }

    fsDhcpScopeDnsServerAddress2 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of the DHCP Scope's DNS Server 2."
         ::= { fsDhcpScopeEntry 13 }

    fsDhcpScopeDnsServerAddress3 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of the DHCP Scope's DNS Server 3."
         ::= { fsDhcpScopeEntry 14 }

    fsDhcpScopeNetbiosNameServerAddress1 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of DHCP Scope's Netbios Name Server
                     1."
         ::= { fsDhcpScopeEntry 15 }

    fsDhcpScopeNetbiosNameServerAddress2 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of DHCP Scope's Netbios Name Server
                     2."
         ::= { fsDhcpScopeEntry 16 }

    fsDhcpScopeNetbiosNameServerAddress3 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of DHCP Scope's Netbios Name Server
                     3."
         ::= { fsDhcpScopeEntry 17 }
		
    fsDhcpScopeState OBJECT-TYPE
         SYNTAX      INTEGER {
                     disable(0),
                     enable(1)
                     }
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                      "DHCP Scope's State."
         ::= { fsDhcpScopeEntry 18 }

    fsDhcpScopeRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "Dhcp Scope entry row status."
         ::= { fsDhcpScopeEntry 19 }

    fsDhcpIPPoolUsage OBJECT-TYPE
         SYNTAX      Integer32(0..100)
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "DHCP pool use rate."
         ::= { fsDhcpScopeEntry 20 }

    fsDhcpoption43 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "use DHCP option43 to set ac ipaddress."
         ::= { fsDhcpScopeEntry 21 }

    fsDhcpoption138 OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "use DHCP option138 to set ac ipaddress."
         ::= { fsDhcpScopeEntry 22 }         
 
    fsDhcpReqtimes OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "use DHCP pool reqest times."
         ::= { fsDhcpScopeEntry 23 }       

    fsDhcpReqSuctimes OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "use DHCP pool request successful times."
         ::= { fsDhcpScopeEntry 24 }     
    fsDhcpTotalIPNum	OBJECT-TYPE
    		 SYNTAX		Integer32
    		 MAX-ACCESS	read-only
    		 STATUS		current
    		 DESCRIPTION
				"total IP address amount of DHCP pool. "  	
    		 ::= { fsDhcpScopeEntry 25 }
    fsDhcpCurrentUsedIPNum	OBJECT-TYPE
    		 SYNTAX		Integer32
    		 MAX-ACCESS	read-only
    		 STATUS		current
    		 DESCRIPTION  
				"current used IP amount of DHCP pool."	
    		 ::= { fsDhcpScopeEntry 26 } 

    fsDhcpOffertimes OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "DHCP pool offer times."
         ::= { fsDhcpScopeEntry 27 }   

    fsDhcpAcktimes OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "DHCP pool ack times."
         ::= { fsDhcpScopeEntry 28 }   


--*******************************************************************
--DHCP Server Config :  external DHCP Server IP Address on VLAN
--*******************************************************************
    fsDhcpServerIpVlanTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF FSDhcpServerIpVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table of DHCP server IP Allocation situation."
         ::= { fsCapwapDhcpServerConfig 2 }
               
    fsDhcpServerIpVlanEntry OBJECT-TYPE
         SYNTAX      FSDhcpServerIpVlanEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "DHCP server ip address table entry."
         INDEX       { fsDhcpServerIpVlanIndex }
         ::= { fsDhcpServerIpVlanTable 1 }
         
    FSDhcpServerIpVlanEntry ::= SEQUENCE {
             fsDhcpServerIpVlanIndex              Unsigned32,
             fsDhcpServerIpVlanOnlineUserNum      Unsigned32
             }

    fsDhcpServerIpVlanIndex OBJECT-TYPE
         SYNTAX      Unsigned32(1..4094)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Global DHCP server Vlan index."
         ::= { fsDhcpServerIpVlanEntry 1 }

    fsDhcpServerIpVlanOnlineUserNum OBJECT-TYPE
         SYNTAX      Unsigned32
         MAX-ACCESS  read-only
         STATUS      current
         DESCRIPTION
                     "The Number of Online User"
         ::= { fsDhcpServerIpVlanEntry 2 }


--*******************************************************************
--DHCP Relay Config :  external DHCP Server Address 
--*******************************************************************
    fsDhcpGlobalServerAddrTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF FSDhcpGlobalServerAddrEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table listing the global external DHCP server 
                     address configed for DHCP relay."
         ::= { fsCapwapDhcpRelayConfig 1 }
               
    fsDhcpGlobalServerAddrEntry OBJECT-TYPE
         SYNTAX      FSDhcpGlobalServerAddrEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Global DHCP server address entry configed for DHCP 
                     relay. Upto 20 entries may be added."
         INDEX       { fsDhcpGlobalServerIndex }
         ::= { fsDhcpGlobalServerAddrTable 1 }
         
    FSDhcpGlobalServerAddrEntry ::= SEQUENCE {
             fsDhcpGlobalServerIndex      Integer32,
             fsDhcpGlobalServerAddress    IpAddress,
             fsDhcpGlobalServerRowStatus  RowStatus
             }

    fsDhcpGlobalServerIndex OBJECT-TYPE
         SYNTAX      Integer32(1..20)
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Global DHCP server index."
         ::= { fsDhcpGlobalServerAddrEntry 1 }

    fsDhcpGlobalServerAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of the Global DHCP server"
         ::= { fsDhcpGlobalServerAddrEntry 2 }

    fsDhcpGlobalServerRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "This is the status column for this row and used
                      to create and delete specific instances of rows
                      in this table. "
         ::= { fsDhcpGlobalServerAddrEntry 3 }


--*******************************************************************
--DHCP Relay Config :  external DHCP Server Address on interface
--*******************************************************************

    fsDhcpIntfServerAddrTable OBJECT-TYPE
         SYNTAX      SEQUENCE OF FSDhcpIntfServerAddrEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "A table listing the  external DHCP server address 
                     on interface configed for DHCP relay."
         ::= { fsCapwapDhcpRelayConfig 2 }
   
    fsDhcpIntfServerAddrEntry OBJECT-TYPE
         SYNTAX      FSDhcpIntfServerAddrEntry
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Extern DHCP server address entry configed on interface 
                 for DHCP relay. Upto 20 entries may be added on a interface."
         INDEX       { fsIfIndex, fsDhcpIntfServerIndex}
         ::= { fsDhcpIntfServerAddrTable 1 }
         
    FSDhcpIntfServerAddrEntry ::= SEQUENCE {
             fsDhcpIntfServerIndex      Integer32,
             fsDhcpIntfServerAddress    IpAddress,
             fsDhcpIntfServerRowStatus  RowStatus
             }

    fsDhcpIntfServerIndex OBJECT-TYPE
         SYNTAX      Integer32 (1..20) 
         MAX-ACCESS  not-accessible
         STATUS      current
         DESCRIPTION
                     "Interface DHCP server index."
         ::= { fsDhcpIntfServerAddrEntry 1 }

    fsDhcpIntfServerAddress OBJECT-TYPE
         SYNTAX      IpAddress
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "IP Address of the Global DHCP server"
         ::= { fsDhcpIntfServerAddrEntry 2 }

    fsDhcpIntfServerRowStatus OBJECT-TYPE
         SYNTAX      RowStatus
         MAX-ACCESS  read-create
         STATUS      current
         DESCRIPTION
                     "This is the status column for this row and used
                      to create and delete specific instances of rows
                      in this table. "
         ::= { fsDhcpIntfServerAddrEntry 3 }


--*******************************************************************
-- DHCP trap
--*******************************************************************
     fsDhcpAddressExhaustTrap       NOTIFICATION-TYPE
        OBJECTS {
             fsDhcpScopeName
        }
        STATUS  current
        DESCRIPTION
            "This trap is sent when the dhcp pool is full"
        ::= { fsCapwapDhcpMIBTrap 1 }

     fsDhcpAddressExhaustRecovTrap  NOTIFICATION-TYPE
        OBJECTS {
             fsDhcpScopeName
        }
        STATUS  current
        DESCRIPTION
            "This trap is sent when the dhcp pool recover from full"
        ::= { fsCapwapDhcpMIBTrap 2 }
        
    fsDhcpClientFailTrap  NOTIFICATION-TYPE
        OBJECTS {
             fsDhcpClientMacAddress
        }
        STATUS  current
        DESCRIPTION
            "This trap is sent when the dhcp client failed to request address"
        ::= { fsCapwapDhcpMIBTrap 3 }

    fsDhcpServerInfoTrap NOTIFICATION-TYPE
        OBJECTS    {
            fsDhcpServerTlvNum,
            fsDhcpServerTlv
        }
        STATUS     current
        DESCRIPTION
            "DHCP Server Offline info Trap."
        ::= { fsCapwapDhcpMIBTrap 4 }


fsCapwapDhcpMIBConformance OBJECT IDENTIFIER ::= { fsCapwapDhcpMIB 2 }
fsCapwapDhcpMIBCompliances OBJECT IDENTIFIER ::= { fsCapwapDhcpMIBConformance 1 }
fsCapwapDhcpMIBGroups      OBJECT IDENTIFIER ::= { fsCapwapDhcpMIBConformance 2 }


-- compliance statements

fsCapwapDhcpMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the FS Capwap Dhcp MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { fsCapwapDhcpMIBGroup,
				        fsCapwapDhcpServerConfigGroup,
				        fsCapwapDhcpRelayGlobalConfigGroup,
				        fsCapwapDhcpRelayIntfConfigGroup
                }
        ::= { fsCapwapDhcpMIBCompliances 1 }
                
-- units of conformance

fsCapwapDhcpMIBGroup OBJECT-GROUP
        OBJECTS {
              fsLDhcpClearAllStats,
	        fsLDhcpStartService,
              fsLDhcpDiscoverPkts,
              fsLDhcpRequestPkts,
              fsLDhcpDeclinePkts,
              fsLDhcpInformPkts,
              fsLDhcpReleasePkts,
              fsLDhcpReplyPkts,
              fsLDhcpOfferPkts,
              fsLDhcpAckPkts,
              fsLDhcpNakPkts,
              fsLDhcpReqTimes,
              fsLDhcpReqSucTimes
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing capwap dhcp information and
                opertion to a FS agent."
        ::= { fsCapwapDhcpMIBGroups 1 } 
		
fsCapwapDhcpServerConfigGroup OBJECT-GROUP
        OBJECTS {
             fsDhcpScopeName,
             fsDhcpScopeLeaseTime,
             fsDhcpScopeNetwork,
             fsDhcpScopeNetmask,
             fsDhcpScopeDefaultRouterAddress1,
             fsDhcpScopeDefaultRouterAddress2,
             fsDhcpScopeDefaultRouterAddress3,
             fsDhcpScopeDnsDomainName,
             fsDhcpScopeDnsServerAddress1,
             fsDhcpScopeDnsServerAddress2,
             fsDhcpScopeDnsServerAddress3,
             fsDhcpScopeNetbiosNameServerAddress1,
             fsDhcpScopeNetbiosNameServerAddress2,
             fsDhcpScopeNetbiosNameServerAddress3,
	      fsDhcpScopeState,
             fsDhcpScopeRowStatus,
             fsDhcpIPPoolUsage,
             fsDhcpoption43,
             fsDhcpoption138
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing capwap dhcp server config information."
        ::= { fsCapwapDhcpMIBGroups 2 } 


fsCapwapDhcpRelayGlobalConfigGroup OBJECT-GROUP
        OBJECTS {
             fsDhcpGlobalServerAddress,
             fsDhcpGlobalServerRowStatus
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing capwap dhcp relay config information."
        ::= { fsCapwapDhcpMIBGroups 3 } 
        
fsCapwapDhcpRelayIntfConfigGroup OBJECT-GROUP
        OBJECTS {
             fsDhcpIntfServerAddress,
             fsDhcpIntfServerRowStatus
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing capwap dhcp relay config information."
        ::= { fsCapwapDhcpMIBGroups 4 } 

END
