-- *******************************************************************
-- FS-WLAN-QOS-EXTRA-MIB.mib : FS WLAN QOS MIB 
-- 
-- Oct 2009, HUANGTAO
--
-- Copyright (c) 2009 by FS.COM Inc..
-- All rights reserved.
-- *******************************************************************


FS-WLAN-QOS-EXTRA-MIB  DEFINITIONS ::= BEGIN

	IMPORTS	  
	          MODULE-IDENTITY,
	          OBJECT-TYPE
               FROM SNMPv2-SMI
													
            TruthValue
               FROM SNMPv2-TC
            
            MODULE-COMPLIANCE,
            OBJECT-GROUP
               FROM SNMPv2-CONF       
             
            fsApCfgRadioId,
            fsApgWlanId, 
            fsStaMacAddr,
            fsApMacAddr
               FROM FS-AC-MGMT-MIB


            fsMgmt 
               FROM FS-SMI;

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

fsWlanQosExtraMib MODULE-IDENTITY
            LAST-UPDATED    "200909080000Z"
            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 Cisco Light-weight LWAPP Access Points.

                Information provided by this MIB is used to study
                the quality of service in the voice and video traffic
                on the WLAN.

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

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


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

                LWAPP APs, upon bootup, discover and join one of the
                controllers and the controller pushes the configuration,
                that includes the WLAN parameters, to the LWAPP APs.
                The APs then encapsulate all the 802.11 frames from
                wireless clients inside LWAPP frames and forward
                the LWAPP 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.  

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

                Gratuitous Probe Response (GPR)

                The Gratuitous Probe Response feature aids in conserving
                battery power of WLAN-enabled cell phones by providing
                a high rate packet on the order of tens of milliseconds
                such that these kind of phones can wake up and wait at
                predefined intervals, to reduce battery power.  The 
                GPR packet is transmitted from the AP at a predefined
                time interval.
                 

                Light Weight Access Point Protocol ( LWAPP )

                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 
                and client are used interchangeably. 

                TU

                A measurement of time in units of 1024 microseconds.

                User Priority ( UP )

                Specifies a the priority rules in QOS for handling user 
                priority.

                EDCA
                
                As defined in 802.11e standard, Enhanced distributed
                channel access(EDCA) parameter set element is used 
                by the AP to establish policy, to change policy when
                accepting new clients, or to adapt to changes in 
                offered load. 

                REFERENCE
 
                [1] Wireless LAN Medium Access Control ( MAC ) and
                Physical Layer ( PHY ) Specifications
  
                [2] Draft-obara-capwap-lwapp-00.txt, IETF Light 
                Weight Access Point Protocol "
                
                
                REVISION        "200909080000Z" 
                DESCRIPTION
                        "Initial version of this MIB module."
        ::= { fsMgmt 60 }


--********************************************************************
--*  SubMODULE IDENTITY
--********************************************************************


fsWlanDeviceWMMObjects OBJECT IDENTIFIER 
        ::= { fsWlanQosExtraMib    1 }

fsWlanDeviceEDCAObjects OBJECT IDENTIFIER
        ::= { fsWlanQosExtraMib    2 }
        
fsWlanDevicePrivMappingObjects OBJECT IDENTIFIER
        ::= { fsWlanQosExtraMib   3 }

fsWlanDeviceRatelimitObjects OBJECT IDENTIFIER
        ::= { fsWlanQosExtraMib    4 }
		
fsWlanQosMIBConform OBJECT IDENTIFIER 
		::= { fsWlanQosExtraMib 5 }



	
--*************************************************
--fsWlanDeviceWMMObjects Config
--*************************************************

fsWMMStatusTable OBJECT-TYPE 
            SYNTAX          SEQUENCE OF FSWMMStatusEntry
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION 
                " wmm status for each wlan"
            
        ::= { fsWlanDeviceWMMObjects  1 }

fsWMMStatusEntry OBJECT-TYPE
			SYNTAX			FSWMMStatusEntry
			MAX-ACCESS		not-accessible
			STATUS			current
			DESCRIPTION		
				" "
			INDEX   {
                    fsApgWlanId
                }
		::= { fsWMMStatusTable 1 }

FSWMMStatusEntry ::= 
        SEQUENCE {
            fsWMMStatus            TruthValue,
            fsAPSDStatus           TruthValue,
            fsSMPSStatus           TruthValue                
        }

fsWMMStatus OBJECT-TYPE 
            SYNTAX          TruthValue 
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION     
                " the wmm enable WMM or disable WMM
                    "
            DEFVAL          {1}
        ::= { fsWMMStatusEntry 1 }



fsAPSDStatus OBJECT-TYPE
            SYNTAX          TruthValue
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION     
                "display APSD-Support is enable or disable
                    "
            DEFVAL          {1}
        ::= { fsWMMStatusEntry 2 }


fsSMPSStatus OBJECT-TYPE
            SYNTAX          TruthValue
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                "display the AP's smps-support status
                    "
            DEFVAL          {1}
        ::= { fsWMMStatusEntry 3 }


--********************************************************************
--*    EDCA Param set  
--********************************************************************

  
 -- **********************************************************************

 --      SMT EDCA Config TABLE

 -- **********************************************************************

 fsdot11EDCATable OBJECT-TYPE

          SYNTAX SEQUENCE OF FSdot11EDCAEntry

          MAX-ACCESS not-accessible

          STATUS current

          DESCRIPTION

               "Conceptual table for EDCA default parameter values at a non-AP

               STA. This table shall contain the four entries of the EDCA

               parameters corresponding to four possible ACs. Index 1 corresponds

               to AC_BK, index 2 to AC_BE, index 3 to AC_VI, and index 4 to AC_VO."

         REFERENCE "IEEE 802.11-2007, 9.1.3.1"

      ::= { fsWlanDeviceEDCAObjects 1 }

 fsdot11EDCAEntry OBJECT-TYPE

         SYNTAX FSdot11EDCAEntry

         MAX-ACCESS not-accessible

         STATUS current

         DESCRIPTION

           "An Entry (conceptual row) in the EDCA Table.

           ifIndex - Each IEEE 802.11 interface is represented by an ifEntry.

           Interface tables in this MIB module are indexed by ifIndex."
	INDEX {
         fsApMacAddr,
         fsApCfgRadioId,
         fsdot11EDCATableIndex
    }

     ::= { fsdot11EDCATable 1 }

 FSdot11EDCAEntry ::=

         SEQUENCE {  fsdot11EDCATableIndex        INTEGER,

                     fsdot11EDCATableCWmin        INTEGER,

                     fsdot11EDCATableCWmax        INTEGER,

                     fsdot11EDCATableAIFSN        INTEGER,

                     fsdot11EDCATableTXOPLimit    INTEGER,

                     fsdot11EDCATableMSDULifetime INTEGER,

                     fsdot11EDCATableMandatory    TruthValue }

  
 fsdot11EDCATableIndex OBJECT-TYPE

         SYNTAX INTEGER (1..4)

         MAX-ACCESS not-accessible

         STATUS current

         DESCRIPTION

             "The auxiliary variable used to identify instances of the columnar

              objects in the EDCA Table. The value of this variable is

              1) 1, if the value of the AC is AC_BK.

              2) 2, if the value of the AC is AC_BE.

              3) 3, if the value of the AC is AC_VI.

              4) 4, if the value of the AC is AC_VO."

     ::= { fsdot11EDCAEntry 1 }

 fsdot11EDCATableCWmin OBJECT-TYPE

         SYNTAX INTEGER (0..255)

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

              "This attribute shall specify the value of the minimum size of the

              window that shall be used by a STA for a particular AC for

              generating a random number for the backoff. The value of this

              attribute shall be such that it could always be expressed in the

              form of 2X - 1, where X is an integer. The default value for this

              attribute is

              1) aCWmin, if fsdot11EDCATableIndex is 1 or 2.

              2) (aCWmin+1)/2 - 1, if fsdot11EDCATableIndex is 3.

              3) (aCWmin+1)/4 - 1, if fsdot11EDCATableIndex is 4."

     ::= { fsdot11EDCAEntry 2 }

 fsdot11EDCATableCWmax OBJECT-TYPE

         SYNTAX INTEGER (0..65535)

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

              "This attribute shall specify the value of the maximum size of the

              window that shall be used by a STA for a particular AC for

              generating a random number for the backoff. The value of this

              attribute shall be such that it could always be expressed in the

              form of 2X - 1, where X is an integer. The default value for this

              attribute is

              1) aCWmax, if fsdot11EDCATableIndex is 1 or 2.

              2) aCWmin, if fsdot11EDCATableIndex is 3.

              3) (aCWmin+1)/2 - 1, if fsdot11EDCATableIndex is 4."

     ::= { fsdot11EDCAEntry 3 }

 fsdot11EDCATableAIFSN OBJECT-TYPE

         SYNTAX INTEGER (2..15)

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

              "This attribute shall specify the number of slots, after a SIFS

              duration, that the STA, for a particular AC, shall sense the

              medium idle either before transmitting or executing a backoff. The

              default value for this attribute is

              1) 7, if fsdot11EDCATableIndex is 1,

              2) 3, if fsdot11EDCATableIndex is 2

              3) 2, otherwise."

     ::= { fsdot11EDCAEntry 4 }

 fsdot11EDCATableTXOPLimit OBJECT-TYPE

         SYNTAX INTEGER (0..65535)

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

              "This attribute shall specify the maximum number of microseconds of

              an EDCA TXOP for a given AC at a non-AP STA. The default value for

              this attribute is

              1) 0 for all PHYs, if fsdot11EDCATableIndex is 1 or 2; this

              implies that the sender can send one MSDU in an EDCA TXOP,

              2) 3008 microseconds for Clause 17 and Clause 19 PHY and 6016

              microseconds for Clause 18 PHY, if fsdot11EDCATableIndex is 3,

              3) 1504 microseconds for Clause 17 and Clause 19 PHY and 3264

              microseconds for Clause 18 PHY, if fsdot11EDCATableIndex is 4."

     ::= { fsdot11EDCAEntry 5 }

 fsdot11EDCATableMSDULifetime OBJECT-TYPE

         SYNTAX INTEGER (0..500)

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

              "This attribute shall specify (in TUs) the maximum duration an

              MSDU, for a given AC, would be retained by the MAC before it is

              discarded. The default value for this parameter shall be 500."

     ::= { fsdot11EDCAEntry 6 }

 fsdot11EDCATableMandatory OBJECT-TYPE

         SYNTAX TruthValue

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

             "This attribute, when TRUE, indicates that admission control is

              mandatory for the given AC. When False, this attribute indicates

              that the admission control is not mandatory for the given AC. The

              default value for this parameter shall be FALSE."

     ::= { fsdot11EDCAEntry 7 }

 -- **********************************************************************

 --      End of SMT EDCA Config TABLE

 -- **********************************************************************

  
 -- **********************************************************************

 --      SMT AP EDCA Config TABLE

 -- **********************************************************************

 fsdot11QAPEDCATable OBJECT-TYPE

          SYNTAX SEQUENCE OF FSdot11QAPEDCAEntry

          MAX-ACCESS not-accessible

          STATUS current

          DESCRIPTION

               "Conceptual table for EDCA default parameter values at the AP.

               This table shall contain the four entries of the EDCA parameters

               corresponding to four possible ACs. Index 1 corresponds to AC_BK,

               index 2 to AC_BE, index 3 to AC_VI, and index 4 to AC_VO."

         REFERENCE "IEEE 802.11-2007, 9.9.1"

      ::= { fsWlanDeviceEDCAObjects 2}

 fsdot11QAPEDCAEntry OBJECT-TYPE

          SYNTAX FSdot11QAPEDCAEntry

          MAX-ACCESS not-accessible

          STATUS current

          DESCRIPTION

              "An Entry (conceptual row) in the EDCA Table.

              ifIndex - Each IEEE 802.11 interface is represented by an

              ifEntry. Interface tables in this MIB module are indexed

              by ifIndex."

      INDEX {
         fsApMacAddr,
         fsApCfgRadioId,
         fsdot11QAPEDCATableIndex
      }

      ::= { fsdot11QAPEDCATable 1 }

 FSdot11QAPEDCAEntry ::=

          SEQUENCE {  fsdot11QAPEDCATableIndex            INTEGER,

                      fsdot11QAPEDCATableCWmin            INTEGER,

                      fsdot11QAPEDCATableCWmax            INTEGER,

                      fsdot11QAPEDCATableAIFSN            INTEGER,

                      fsdot11QAPEDCATableTXOPLimit        INTEGER,

                      fsdot11QAPEDCATableMSDULifetime     INTEGER,

                      fsdot11QAPEDCATableMandatory        TruthValue }

  
 fsdot11QAPEDCATableIndex OBJECT-TYPE

          SYNTAX INTEGER (1..4)

          MAX-ACCESS not-accessible

          STATUS current

          DESCRIPTION

               "The auxiliary variable used to identify instances of the columnar

               objects in the EDCA Table. The value of this variable is

                1) 1, if the value of the AC is AC_BK.

                2) 2, if the value of the AC is AC_BE.

                3) 3, if the value of the AC is AC_VI.

                4) 4, if the value of the AC is AC_VO."

     ::= { fsdot11QAPEDCAEntry 1 }

 fsdot11QAPEDCATableCWmin OBJECT-TYPE

         SYNTAX INTEGER (0..255)

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

              "This attribute shall specify the value of the minimum size of the

              window that shall be used by an AP for a particular AC for

              generating a random number for the backoff. The value of this

              attribute shall be such that it could always be expressed in the

              form of 2X - 1, where X is an integer. The default value for this

              attribute is

              1) aCWmin, if fsdot11QAPEDCATableIndex is 1 or 2.

              2) (aCWmin+1)/2 - 1, if fsdot11QAPEDCATableIndex is 3.

              3) (aCWmin+1)/4 - 1, if fsdot11QAPEDCATableIndex is 4."

     ::= { fsdot11QAPEDCAEntry 2 }

 fsdot11QAPEDCATableCWmax OBJECT-TYPE

         SYNTAX INTEGER (0..65535)

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

              "This attribute shall specify the value of the maximum size of the

              window that shall be used by an AP for a particular AC for

              generating a random number for the backoff. The value of this

              attribute shall be such that it could always be expressed in the

              form of 2X - 1, where X is an integer. The default value for this

              attribute is

              1) aCWmax, if fsdot11QAPEDCATableIndex is 1.

              2) 4*(aCWmin+1) - 1, if fsdot11QAPEDCATableIndex is 2.

              3) aCWmin, if fsdot11QAPEDCATableIndex is 3.

              4) (aCWmin+1)/2 - 1, if fsdot11QAPEDCATableIndex is 4."

     ::= { fsdot11QAPEDCAEntry 3 }

 fsdot11QAPEDCATableAIFSN OBJECT-TYPE

         SYNTAX INTEGER (1..15)

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

              "This attribute shall specify the number of slots, after a SIFS

              duration, that the AP, for a particular AC, shall sense the

              medium idle either before transmitting or executing a backoff. The

              default value for this attribute is

              1) 7, if fsdot11QAPEDCATableIndex is 1,

              2) 3, if fsdot11QAPEDCATableIndex is 2

              3) 1, otherwise."

     ::= { fsdot11QAPEDCAEntry 4 }

 fsdot11QAPEDCATableTXOPLimit OBJECT-TYPE

         SYNTAX INTEGER (0..65535)

         MAX-ACCESS read-write

         STATUS current

         DESCRIPTION

              "This attribute shall specify the maximum number of microseconds of

              an EDCA TXOP for a given AC at the AP. The default value for

              this attribute is

              1) 0 for all PHYs, if fsdot11QAPEDCATableIndex is 1 or 2; this

              implies that the sender can send one MSDU in an EDCA TXOP,

              2) 3008 microseconds for Clause 17 and Clause 19 PHY and 6016

              microseconds for Clause 18 PHY, if fsdot11QAPEDCATableIndex is 3,

              3) 1504 microseconds for Clause 17 and Clause 19 PHY and 3264

               microseconds for Clause 18 PHY, if fsdot11QAPEDCATableIndex is 4."

      ::= { fsdot11QAPEDCAEntry 5 }

 fsdot11QAPEDCATableMSDULifetime OBJECT-TYPE

          SYNTAX INTEGER (0..500)

          MAX-ACCESS read-write

          STATUS current

          DESCRIPTION

               "This attribute shall specify (in TUs) the maximum duration an

               MSDU, for a given AC, would be retained by the MAC at the AP before

               it is discarded. The default value for this parameter shall be

               500."

      ::= { fsdot11QAPEDCAEntry 6 }

 fsdot11QAPEDCATableMandatory OBJECT-TYPE

          SYNTAX TruthValue

          MAX-ACCESS read-write

          STATUS current

          DESCRIPTION

               "This attribute, when TRUE, indicates that admission control is

               mandatory for the given AC. When False, this attribute indicates

               that the admission control is not mandatory for the given AC. The

               default value for this parameter shall be FALSE."

      ::= { fsdot11QAPEDCAEntry 7 }

 -- **********************************************************************

 --      End of SMT AP EDCA Config TABLE

 -- **********************************************************************

 
--********************************************************
--fsWlanDeviceEDCAObjects Config
--********************************************************
fsWlanEDCATable OBJECT-TYPE
            SYNTAX          SEQUENCE OF FSEDCAStatusEntry
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION
                "some wmm access catagery's attribution doesn't appeared in stadard MIBS
                so , we add it here
                "    
        ::= { fsWlanDeviceEDCAObjects 3 }

fsEDCAStatusEntry	OBJECT-TYPE
			SYNTAX		FSEDCAStatusEntry
			MAX-ACCESS	not-accessible
			STATUS		current
			DESCRIPTION
				" "
      INDEX {
         fsApMacAddr,
         fsApCfgRadioId,
         fsdot11QAPEDCATableIndex
      }
		::= { fsWlanEDCATable 1 }

FSEDCAStatusEntry ::= 
        SEQUENCE {
            fsQAPEDCAqueuedepth          INTEGER,
            fsQAPEDCAcacPolicy           INTEGER,
            fsQAPEDCAcacParam            INTEGER
        }

fsQAPEDCAqueuedepth OBJECT-TYPE
            SYNTAX          INTEGER  (1..512)
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION     
                "software queue depth for each wmm access catagery"
            DEFVAL      {512}
        ::= { fsEDCAStatusEntry 1 }
        

fsQAPEDCAcacPolicy OBJECT-TYPE
            SYNTAX          INTEGER {nocac(0), usernum-based(1), channelutilization-based(2)}
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                "now  only have two kind of CAC policy , usernum-based (1) and channelutilization-based {2} "

            DEFVAL          {0}
        ::= { fsEDCAStatusEntry 2}

fsQAPEDCAcacParam OBJECT-TYPE
            SYNTAX          INTEGER  (0..100)
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION     
                "cac param used to determine whether the sta is allowed to be in the high access catagery "
            DEFVAL          {20} -- Used by usernum-based cac policy
        ::= { fsEDCAStatusEntry 3}


--********************************************************
--fsWlanDevicePrivMappingObjects config
--********************************************************

fsWlanDevicePrivMappingWlanDefaultObjects OBJECT IDENTIFIER ::= { fsWlanDevicePrivMappingObjects 1 }
        
fsWlanDevicePrivMappingAPDefaultObjects OBJECT IDENTIFIER ::= { fsWlanDevicePrivMappingObjects 2 }

fsWlanDevicePrivMappingTableObjects OBJECT IDENTIFIER ::= { fsWlanDevicePrivMappingObjects 3 } 

--********************************************************
--WLAN default WMM AC Config
--********************************************************

fsWlanDefaultACTable OBJECT-TYPE
            SYNTAX              SEQUENCE OF FSWlanDefaultACEntry
            MAX-ACCESS          not-accessible
            STATUS              current
            DESCRIPTION         
                " this  table used by non-wmm sta, 
                we map the pkt from non-wmm sta to the default WMM access catagery "
            
        ::= { fsWlanDevicePrivMappingWlanDefaultObjects 1 }


fsWlanDefaultACEntry OBJECT-TYPE
			SYNTAX				FSWlanDefaultACEntry
			MAX-ACCESS			not-accessible
			STATUS				current
			DESCRIPTION
				" "
			INDEX    {
                    fsApgWlanId
                     }
		::= { fsWlanDefaultACTable 1}

FSWlanDefaultACEntry ::= 
        SEQUENCE {
            fsWlanDefualtACnum          INTEGER,
            fsWlanMaxstadot1ptag        INTEGER
        }

fsWlanDefualtACnum  OBJECT-TYPE
            SYNTAX          INTEGER
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION 
                " this defines the ap's default WMM AC ,used for non-wmm sta
                    "
        ::= { fsWlanDefaultACEntry 1 }

fsWlanMaxstadot1ptag  OBJECT-TYPE
            SYNTAX          INTEGER
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " max 802.11e tags a sta in the wlan can use, 
                 all pkt have tag larger than this value will fall in the default AC
                    "
        ::= { fsWlanDefaultACEntry 2 }


--********************************************************
-- AP defualt WMM_AC-DSCP, WMM_AC-802DOT1P mapping pairs config
--********************************************************


fsPrivMappingAPstatusTable OBJECT-TYPE
            SYNTAX          SEQUENCE OF FSAPdefaultStatusMappingEntry
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION     
                " when use CAPWAP, we must map pkt belong to certain WMM-AC to a Certian DSCP priv/802.1p pri
                 and as we must encap the pkt ,we must support two kind of mappings - trunnel and inner,
                 you can get the concept in RFC 5416
                    "
        ::= { fsWlanDevicePrivMappingAPDefaultObjects 1 }

fsAPdefaultStatusMappingEntry		OBJECT-TYPE
			SYNTAX				FSAPdefaultStatusMappingEntry
			MAX-ACCESS			not-accessible
			STATUS				current
			DESCRIPTION
				" "
            INDEX   {
                   fsApMacAddr
                   }
		::= { fsPrivMappingAPstatusTable 1 }

FSAPdefaultStatusMappingEntry ::= 
        SEQUENCE {
            fsdot1pmappingstatus        INTEGER,
            fsdscpmappingstatus         INTEGER
        }

fsdot1pmappingstatus OBJECT-TYPE
            SYNTAX          INTEGER
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION     
                "How to set the pkt's 802.1p tag  "
            DEFVAL { 0 }
        ::= { fsAPdefaultStatusMappingEntry  1 }

fsdscpmappingstatus OBJECT-TYPE
            SYNTAX          INTEGER 
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " how to set the pkt's dscp tag
                    "            
            DEFVAL {0}
        ::= { fsAPdefaultStatusMappingEntry 2 }

		
fsPrivMappingAPDefaultTable OBJECT-TYPE
            SYNTAX          SEQUENCE OF FSPrivMappingAPDefaultEntry
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION     
                " when use CAPWAP, we must map pkt belong to certain WMM-AC to a Certian DSCP priv/802.1p pri
                 and as we must encap the pkt ,we must support two kind of mappings - trunnel and inner,
                 you can get the concept in RFC 5416
                    "
        ::= { fsWlanDevicePrivMappingAPDefaultObjects 2 }

fsPrivMappingAPDefaultEntry		OBJECT-TYPE
			SYNTAX			FSPrivMappingAPDefaultEntry
			MAX-ACCESS		not-accessible
			STATUS			current
			DESCRIPTION
				" " 
			INDEX   {
                   fsApMacAddr,
                   fsdot11QAPEDCATableIndex 
                    }
		::= { fsPrivMappingAPDefaultTable 1 }

FSPrivMappingAPDefaultEntry ::= 
            SEQUENCE  {
                fsAPdefaultDSCPTag      INTEGER,
                fsAPdefaultDot1pTag     INTEGER
            }

fsAPdefaultDSCPTag OBJECT-TYPE
            SYNTAX          INTEGER (0..63)
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION     
                " DEFAULT dscp tag for certain AC"
        ::= { fsPrivMappingAPDefaultEntry 1 }

fsAPdefaultDot1pTag OBJECT-TYPE
            SYNTAX          INTEGER
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION     
                " default DOT1P TAG VALUE FOR CERTAIN ac"
        ::= { fsPrivMappingAPDefaultEntry 2 }

--********************************************************
-- mapping tables config
-- svp pkt mapping config
--********************************************************
fsSVPMappingTable           OBJECT-TYPE
            SYNTAX               SEQUENCE  OF FSSVPMappingEntry
            MAX-ACCESS           not-accessible
            STATUS               current
            DESCRIPTION
                " dot11radio-SVP-pkt --> WMM-AC:pkt"
        ::= { fsWlanDevicePrivMappingTableObjects 1 }

fsSVPMappingEntry   OBJECT-TYPE
            SYNTAX              FSSVPMappingEntry
            MAX-ACCESS          not-accessible
            STATUS              current
            DESCRIPTION
                "   svp mapping info
                "
            INDEX   {
                    fsApgWlanId
                }
        ::= { fsSVPMappingTable 1}



FSSVPMappingEntry   ::= 
            SEQUENCE {               
                 fsSVPmappingStatus      INTEGER,
                 fsSVPmappingAC          INTEGER 
            }

fsSVPmappingStatus      OBJECT-TYPE
            SYNTAX          INTEGER {enable(0), disable(1)}            
            MAX-ACCESS      read-write            
            STATUS          current            
            DESCRIPTION               
             " enable or disable the svp mapping "        
        ::= { fsSVPMappingEntry 1 }

fsSVPmappingAC          OBJECT-TYPE            
            SYNTAX          INTEGER {wmmvo(1), wmmvi(2), wmmbe(3), wmmbk(4)}            
            MAX-ACCESS      read-write            
            STATUS          current            
            DESCRIPTION                
            " MAPPING AC"        
        ::= { fsSVPMappingEntry 2 }

--********************************************************
--  fsWlanDeviceRatelimitObjects
--  wlan-based info config
--  ap-based info config
--  mac-baesd info config
--********************************************************


fsWlanRatelimitTable OBJECT-TYPE
            SYNTAX          SEQUENCE OF FSWlanRatelimitEntry
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION
                " WLAN-based ratelimit"
        ::= { fsWlanDeviceRatelimitObjects 1 } 
		
fsWlanRatelimitEntry	OBJECT-TYPE
             SYNTAX             FSWlanRatelimitEntry
             MAX-ACCESS         not-accessible
             STATUS             current
             DESCRIPTION 
                       " "
             INDEX { fsApgWlanId, fsWlanRateLimitDirect }
		::= { fsWlanRatelimitTable  1 }

		

FSWlanRatelimitEntry ::= 
            SEQUENCE {
                fsWlanRateLimitDirect           INTEGER,
                fsWlanRatelimitStatus           INTEGER,
                fsWlanAverageRate               INTEGER,
                fsWlanBurstRate                 INTEGER
            }

fsWlanRateLimitDirect OBJECT-TYPE
            SYNTAX          INTEGER (0..1)
            MAX-ACCESS      read-only
            STATUS          current
            DESCRIPTION 
                " direction of the ratelimited stream
                "
        ::= { fsWlanRatelimitEntry 1 }

fsWlanRatelimitStatus OBJECT-TYPE
            SYNTAX          INTEGER (0..1)
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " enable | diable the ratelimit "
        ::= { fsWlanRatelimitEntry 2 }


fsWlanAverageRate OBJECT-TYPE
            SYNTAX          INTEGER 
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " average rate of the limited stream "
        ::= { fsWlanRatelimitEntry 3 }

fsWlanBurstRate OBJECT-TYPE
            SYNTAX          INTEGER
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " burst rate of the limited stream "
        ::= { fsWlanRatelimitEntry 4 }
			

fsAPRatelimitTable  OBJECT-TYPE
            SYNTAX          SEQUENCE OF FSAPRatelimitEntry
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION
                " ap-based ratelimit"
        ::= { fsWlanDeviceRatelimitObjects 2 } 
		
fsAPRatelimitEntry	OBJECT-TYPE
			SYNTAX			FSAPRatelimitEntry
			MAX-ACCESS		not-accessible
			STATUS			current
			DESCRIPTION 
				" "
            INDEX   {
                    fsApMacAddr,
                    fsAPRateLimitDirect
                    }
		::= { fsAPRatelimitTable  1 }		
		
		
FSAPRatelimitEntry ::= 
            SEQUENCE {
                fsAPRateLimitDirect             INTEGER,
                fsAPRatelimitStatus             INTEGER,
                fsAPAverageRate                 INTEGER,
                fsAPBurstRate                   INTEGER
            }		
		

fsAPRateLimitDirect OBJECT-TYPE
            SYNTAX          INTEGER (0..1)
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION 
                " direction of the ratelimited stream
                "
        ::= { fsAPRatelimitEntry 1 }

fsAPRatelimitStatus OBJECT-TYPE
            SYNTAX          INTEGER (0..1)
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " enable | diable the ratelimit "
        ::= { fsAPRatelimitEntry 2 }


fsAPAverageRate OBJECT-TYPE
            SYNTAX          INTEGER 
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " average rate of the limited stream "
        ::= { fsAPRatelimitEntry 3 }

fsAPBurstRate OBJECT-TYPE
            SYNTAX          INTEGER
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " burst rate of the limited stream "
        ::= { fsAPRatelimitEntry 4 }
	
		

fsUserRatelimitTable  OBJECT-TYPE
            SYNTAX          SEQUENCE OF FSUserRatelimitEntry
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION
                " MAC-based ratelimit"
        ::= { fsWlanDeviceRatelimitObjects 3 } 
		
fsUserRatelimitEntry	OBJECT-TYPE
            SYNTAX          FSUserRatelimitEntry
			MAX-ACCESS		not-accessible
			STATUS			current
			DESCRIPTION 
				" "
            INDEX   {
                    fsStaMacAddr,
                    fsUserRateLimitDirect,
                    fsApgWlanId
                    }
		::= { fsUserRatelimitTable  1 }

		
FSUserRatelimitEntry ::=
            SEQUENCE {
                fsUserRateLimitDirect           INTEGER,
                fsUserRatelimitStatus           INTEGER,
                fsUserAverageRate               INTEGER,
                fsUserBurstRate                 INTEGER
            }


fsUserRateLimitDirect OBJECT-TYPE
            SYNTAX          INTEGER (0..1)
            MAX-ACCESS      not-accessible
            STATUS          current
            DESCRIPTION 
                " direction of the ratelimited stream
                "
        ::= { fsUserRatelimitEntry 1 }

fsUserRatelimitStatus OBJECT-TYPE
            SYNTAX          INTEGER (0..1)
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " enable | diable the ratelimit "
        ::= { fsUserRatelimitEntry 2 }


fsUserAverageRate OBJECT-TYPE
            SYNTAX          INTEGER 
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " average rate of the limited stream "
        ::= { fsUserRatelimitEntry 3 }

fsUserBurstRate OBJECT-TYPE
            SYNTAX          INTEGER
            MAX-ACCESS      read-write
            STATUS          current
            DESCRIPTION
                " burst rate of the limited stream "
        ::= { fsUserRatelimitEntry 4 }
		
		

		
		

--********************************************************************
--*    Compliance statements  
--********************************************************************

fsWlanQosMIBCompliances  OBJECT IDENTIFIER  ::= { fsWlanQosMIBConform 1 }
fsWlanQosMIBGroups  OBJECT IDENTIFIER  ::= { fsWlanQosMIBConform 2 }
		
fsWlanQosMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Qos module of FS Ac Manager"
        MODULE
                MANDATORY-GROUPS {                
                fsWlanQosWMMEDCAConfigGroup,
                fsWlanQosRatelimitConfigGroup,
                fsWlanQosPriMappingonfigGroup
        }
        ::= { fsWlanQosMIBCompliances 1 }
        

--********************************************************************
--*    Units of conformance  
--********************************************************************
fsWlanQosWMMEDCAConfigGroup OBJECT-GROUP
        OBJECTS {
		        fsWMMStatus ,
            fsAPSDStatus,
            fsSMPSStatus,   
			      fsQAPEDCAqueuedepth,
            fsQAPEDCAcacPolicy,
            fsQAPEDCAcacParam,
			      fsWlanDefualtACnum,
            fsWlanMaxstadot1ptag,
			      fsdot1pmappingstatus,
            fsdscpmappingstatus,
			      fsAPdefaultDSCPTag,
            fsAPdefaultDot1pTag,
			fsdot11EDCATableCWmin,
			fsdot11EDCATableCWmax,
			fsdot11EDCATableAIFSN,
			fsdot11EDCATableTXOPLimit,
			fsdot11EDCATableMSDULifetime,
			fsdot11EDCATableMandatory,
			fsdot11QAPEDCATableCWmin,
			fsdot11QAPEDCATableCWmax,
			fsdot11QAPEDCATableAIFSN,
			fsdot11QAPEDCATableTXOPLimit,
			fsdot11QAPEDCATableMSDULifetime,
			fsdot11QAPEDCATableMandatory			  
        }
        STATUS     current
        DESCRIPTION
                "This collection of objects represents the 
                WMM quality-of-service parameters  networks. " 
        ::= { fsWlanQosMIBGroups 1 }

fsWlanQosRatelimitConfigGroup OBJECT-GROUP
        OBJECTS  {
			      fsWlanRateLimitDirect,
            fsWlanRatelimitStatus,
            fsWlanAverageRate,
            fsWlanBurstRate,
            fsAPRatelimitStatus,
            fsAPAverageRate,
            fsAPBurstRate,
            fsUserRatelimitStatus,
            fsUserAverageRate,
            fsUserBurstRate
        }
        STATUS     current
        DESCRIPTION
                "This collection of objects represents the 
                 ratelimit parameters 802.11 networks. " 
        ::= { fsWlanQosMIBGroups 2 }

fsWlanQosPriMappingonfigGroup OBJECT-GROUP
        OBJECTS {
					fsSVPmappingStatus,
					fsSVPmappingAC
                }
        STATUS     current
        DESCRIPTION
                "This collection of objects represents the 
                pri-mapping parameters 802.11 networks. " 
        ::= { fsWlanQosMIBGroups 3 }
		
		
END
