-- *****************************************************************
-- QTECH-AAA-MIB.mib:  Qtech AAA MIB file
--
-- March 2002, Wuzg
--
-- Copyright (c) 2002 by Qtech Networks Co.,Ltd.
-- All rights reserved.
-- 
-- *****************************************************************
--

QTECH-AAA-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Counter32,
        Unsigned32,
        Integer32,
        IpAddress
                FROM SNMPv2-SMI
        InetAddressType, 
        InetAddress
                FROM INET-ADDRESS-MIB
        Counter
                FROM RFC1155-SMI
        TruthValue,
        DisplayString,
        RowStatus,
        MacAddress
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        ConfigStatus,
        IfIndex
                FROM QTECH-TC
        EnabledStatus 
                FROM P-BRIDGE-MIB       
        radiusAuthServerAddress,
        radiusAuthClientServerPortNumber
            FROM RADIUS-AUTH-CLIENT-MIB
        radiusAccServerAddress, 
        radiusAccClientServerPortNumber
            FROM RADIUS-ACC-CLIENT-MIB
        qtechMgmt
                FROM QTECH-SMI;

qtechAAAMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "Qtech Networks Co.,Ltd."
        CONTACT-INFO
                " 
                Tel: 4008-111-000 

                E-mail: service@qtech.com.cn"
        DESCRIPTION
                "This module defines qtech AAA(802.1x) mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { qtechMgmt 19}

qtechAAAMIBObjects OBJECT IDENTIFIER ::= { qtechAAAMIB 1 }

qtechDot1xAuthObjects OBJECT IDENTIFIER ::= { qtechAAAMIBObjects 1 }
qtechAAAServerObjects OBJECT IDENTIFIER ::=    { qtechAAAMIBObjects 2 }
qtechAuthUserObjects OBJECT IDENTIFIER ::=  { qtechAAAMIBObjects 3 }
qtechAuthModeObjects OBJECT IDENTIFIER ::=  { qtechAAAMIBObjects 4 }
qtechClientProbeObjects OBJECT IDENTIFIER ::=  { qtechAAAMIBObjects 5 }

--     
-- qtechDot1xAuth Groupfor 802.1x global settings.
--
qtechDot1xAuthStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The enable(1)/disable(2) control used by the  
            802.1x global settings."
        DEFVAL { disabled }
        ::= { qtechDot1xAuthObjects 1 }

qtechDot1xAuthObjectsQuietPeriod OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The value, in seconds, of the quietPeriod constant
             currently in use by the Authenticator PAE state
             machine."
        DEFVAL { 60 }
        ::= { qtechDot1xAuthObjects 2 } 

qtechDot1xAuthObjectsTxPeriod OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The value, in seconds, of the txPeriod constant
             currently in use by the Authenticator PAE state
             machine."
        DEFVAL { 30 }
        ::= { qtechDot1xAuthObjects 3 } 

qtechDot1xAuthObjectsSuppTimeout OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The value, in seconds, of the suppTimeout constant
             currently in use by the Backend Authentication state
             machine."
        DEFVAL { 30 }
        ::= { qtechDot1xAuthObjects 4 } 

qtechDot1xAuthObjectsServerTimeout OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
        "The value, in seconds, of the serverTimeout constant
         currently in use by the Backend Authentication state
         machine."
        DEFVAL { 30 }
    ::= { qtechDot1xAuthObjects 5 }

qtechDot1xAuthObjectsMaxReq OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The value of the maxReq constant currently in use by
             the Backend Authentication state machine."
        DEFVAL { 2 }
        ::= { qtechDot1xAuthObjects 6 } 

qtechDot1xAuthObjectsReAuthPeriod OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The value, in seconds, of the reAuthPeriod constant
             currently in use by the Reauthentication Timer state
             machine."
        DEFVAL { 3600 }
        ::= { qtechDot1xAuthObjects 7 } 

qtechDot1xAuthObjectsMaxReauth OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The value of the reAuthMax constant currently in use by
             the Authenticator PAE state machine."
        DEFVAL { 2 }
        ::= { qtechDot1xAuthObjects 8 } 
        
qtechDot1xAuthObjectsReAuthEnable OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The enable(1)/disable(2) control used by the Reauthentication
             Timer state machine."
        DEFVAL { 2 }
        ::= { qtechDot1xAuthObjects 9 } 
        
qtechDot1xAuthObjectsConfigTable OBJECT-TYPE
         SYNTAX SEQUENCE OF QtechDot1xAuthConfigEntry
         MAX-ACCESS not-accessible
         STATUS current
         DESCRIPTION
           "A table that contains the configuration objects for the
              Authenticator PAE associated with each MAC address.
              An entry appears in this table for each MAC address that 
              may authenticate access to itself."
          ::= { qtechDot1xAuthObjects 10 }
        
qtechDot1xAuthObjectsConfigEntry OBJECT-TYPE
        SYNTAX QtechDot1xAuthConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
         "The configuration information for an Authenticator
              PAE."
       INDEX { qtechDot1xAuthObjectsConfigFdbId,qtechDot1xAuthObjectsConfigAddr }
       ::= { qtechDot1xAuthObjectsConfigTable 1 }

QtechDot1xAuthConfigEntry ::=
        SEQUENCE {
        qtechDot1xAuthObjectsConfigFdbId
                 Unsigned32,
        qtechDot1xAuthObjectsConfigAddr
                 MacAddress,
         qtechDot1xAuthObjectsPaeState
                 INTEGER,
         qtechDot1xAuthObjectsBackendAuthState
                 INTEGER,
         qtechDot1xAuthObjectsAuthControlledPortStatus
                 INTEGER,
        qtechDot1xAuthObjectsKeyTxEnabled
                 TruthValue,        
  qtechDot1xAuthObjectsIfIndex
     IfIndex
         }
qtechDot1xAuthObjectsConfigFdbId OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The VID of vlan which the address blongs to."
    ::= { qtechDot1xAuthObjectsConfigEntry 1 }
    
qtechDot1xAuthObjectsConfigAddr OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The MAC address associated with this configurations."
        ::= { qtechDot1xAuthObjectsConfigEntry 2 }

qtechDot1xAuthObjectsPaeState OBJECT-TYPE
        SYNTAX INTEGER {
               initialize(1),
               disconnected(2),
               connecting(3),
               authenticating(4),
               authenticated(5),
               aborting(6),
               held(7),
               forceAuth(8),
               forceUnauth(9)
               }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current value of the Authenticator PAE state
             machine."
        ::= { qtechDot1xAuthObjectsConfigEntry 3 }

qtechDot1xAuthObjectsBackendAuthState OBJECT-TYPE
        SYNTAX INTEGER {
               request(1),
               response(2),
               success(3),
               fail(4),
               timeout(5),
               idle(6),
               initialize(7)
               }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current state of the Backend Authentication
             state machine."
        ::= { qtechDot1xAuthObjectsConfigEntry 4 }

qtechDot1xAuthObjectsAuthControlledPortStatus OBJECT-TYPE
        SYNTAX INTEGER {
               authorized(1),
               unauthorized(2)
               }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current value of the controlled Port
             status parameter for the Port."
        ::= { qtechDot1xAuthObjectsConfigEntry 5 }

qtechDot1xAuthObjectsKeyTxEnabled OBJECT-TYPE
        SYNTAX TruthValue
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The value of the keyTransmissionEnabled constant
             currently in use by the Authenticator PAE state
             machine."
        ::= { qtechDot1xAuthObjectsConfigEntry 6 }
                
qtechDot1xAuthObjectsIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The interface index associated with this configurations"
        ::= { qtechDot1xAuthObjectsConfigEntry 7 }
        
                
qtechDot1xAuthObjectsStatsTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechDot1xAuthStatsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "A table that contains the statistics objects for the
             Authenticator PAE associated with each MAC address.
             An entry appears in this table for each MAC address 
             that may authenticate access to itself."
        ::= { qtechDot1xAuthObjects 11 }

qtechDot1xAuthStatsEntry OBJECT-TYPE
        SYNTAX QtechDot1xAuthStatsEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "The statistics information for an Authenticator PAE."
        INDEX { qtechDot1xAuthObjectsStatsFdbId,qtechDot1xAuthObjectsStatsAddr }
        ::= { qtechDot1xAuthObjectsStatsTable 1 }

QtechDot1xAuthStatsEntry ::=
        SEQUENCE {
        qtechDot1xAuthObjectsStatsFdbId
                Unsigned32,
        qtechDot1xAuthObjectsStatsAddr
                MacAddress,
        qtechDot1xAuthObjectsEapolFramesRx
                Counter32,
        qtechDot1xAuthObjectsEapolFramesTx
                Counter32,
        qtechDot1xAuthObjectsEapolQtechFramesRx
                Counter32,
        qtechDot1xAuthObjectsEapolLogoffFramesRx
                Counter32,
        qtechDot1xAuthObjectsEapolRespIdFramesRx
                Counter32,
        qtechDot1xAuthObjectsEapolRespFramesRx
                Counter32,
        qtechDot1xAuthObjectsEapolReqIdFramesTx
                Counter32,
        qtechDot1xAuthObjectsEapolReqFramesTx
                Counter32,
        qtechDot1xAuthObjectsInvalidEapolFramesRx
                Counter32,
        qtechDot1xAuthObjectsEapLengthErrorFramesRx
                Counter32,
        qtechDot1xAuthObjectsLastEapolFrameVersion
                Unsigned32,
        qtechDot1xAuthObjectsLastEapolFrameSource
                MacAddress
            }
qtechDot1xAuthObjectsStatsFdbId OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The VID of vlan which the address blongs to."
        ::= { qtechDot1xAuthStatsEntry 1 }

qtechDot1xAuthObjectsStatsAddr OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The MAC address associated with this states."
        ::= { qtechDot1xAuthStatsEntry 2 }

qtechDot1xAuthObjectsEapolFramesRx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of valid EAPOL frames of any type
             that have been received by this Authenticator."
        ::= { qtechDot1xAuthStatsEntry 3 }

qtechDot1xAuthObjectsEapolFramesTx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of EAPOL frames of any type
             that have been transmitted by this Authenticator."
        ::= { qtechDot1xAuthStatsEntry 4 }

qtechDot1xAuthObjectsEapolQtechFramesRx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of EAPOL Qtech frames that have
             been received by this Authenticator."
        ::= { qtechDot1xAuthStatsEntry 5 }

qtechDot1xAuthObjectsEapolLogoffFramesRx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of EAPOL Logoff frames that have
             been received by this Authenticator."
        ::= { qtechDot1xAuthStatsEntry 6 }

qtechDot1xAuthObjectsEapolRespIdFramesRx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of EAP Resp/Id frames that have
             been received by this Authenticator."
        ::= { qtechDot1xAuthStatsEntry 7 }

qtechDot1xAuthObjectsEapolRespFramesRx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The number of valid EAP Response frames
             (other than Resp/Id frames) that have been
             received by this Authenticator."
        ::= { qtechDot1xAuthStatsEntry 8 }

qtechDot1xAuthObjectsEapolReqIdFramesTx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        "The number of EAP Req/Id frames that have been
        transmitted by this Authenticator."
    ::= { qtechDot1xAuthStatsEntry 9 }

qtechDot1xAuthObjectsEapolReqFramesTx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        "The number of EAP Request frames
         (other than Rq/Id frames) that have been
         transmitted by this Authenticator."
    ::= { qtechDot1xAuthStatsEntry 10 }

qtechDot1xAuthObjectsInvalidEapolFramesRx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        "The number of EAPOL frames that have been
         received by this Authenticator in which the
         frame type is not recognized."
    ::= { qtechDot1xAuthStatsEntry 11 }

qtechDot1xAuthObjectsEapLengthErrorFramesRx OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        "The number of EAPOL frames that have been received
         by this Authenticator in which the Packet Body
        Length field is invalid."
    ::= { qtechDot1xAuthStatsEntry 12 }

qtechDot1xAuthObjectsLastEapolFrameVersion OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        "The protocol version number carried in the
         most recently received EAPOL frame."
    ::= { qtechDot1xAuthStatsEntry 13 }

qtechDot1xAuthObjectsLastEapolFrameSource OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        "The source MAC address carried in the
         most recently received EAPOL frame."
    ::= { qtechDot1xAuthStatsEntry 14 }
    
qtechDot1xCurrentUserNumber OBJECT-TYPE
        SYNTAX Counter
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION 
             "Numbers of users who attached to the system ,regardless of their state."
        ::= { qtechDot1xAuthObjects 12 }      

qtechDot1xCurrentAuthenticatedUserNumber OBJECT-TYPE
        SYNTAX Counter
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION 
                "Numbers of user who attached to the system and their current state is
                 authorized"
        ::= { qtechDot1xAuthObjects 13 }           

qtechDot1xAccountStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The enable(1)/disable(2) control used by the  
             accounting function."
        DEFVAL { 2 }
        ::= { qtechDot1xAuthObjects 14 }

qtechAuthIfTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF QtechAuthIfEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The table of the authenticated status of interface."
        ::= { qtechDot1xAuthObjects 15 }

qtechAuthIfEntry OBJECT-TYPE
        SYNTAX  QtechAuthIfEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The entry of MAC address which can be authenticated."
        INDEX   { qtechAuthIf}
        ::= { qtechAuthIfTable 1 }

QtechAuthIfEntry ::=
        SEQUENCE {
        qtechAuthIf
                IfIndex,           
        qtechAuthIfStatus
                EnabledStatus
        }
qtechAuthIf OBJECT-TYPE
        SYNTAX  IfIndex
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The port number of the port/trunk to which frames received from a
              specific port/trunk and destined for a specific MAC address."
        ::= { qtechAuthIfEntry 1 }

qtechAuthIfStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The authentication status of a port, can be opened by setting its
            value to Enabled(1), or closed by setting its value to Disabled(2)."
        DEFVAL { 2 }
        ::= { qtechAuthIfEntry 2 }

qtechAuthenticationMode OBJECT-TYPE
        SYNTAX  INTEGER {
                eap(1),       
                chap(2),
                pap(3)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Mode used for authentication"
        ::= { qtechDot1xAuthObjects 16 }        

qtechDot1xAccountUpdateStatus OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Account Update Status"
        ::= { qtechDot1xAuthObjects 17 }  

qtechDot1xAcctInterimInterval OBJECT-TYPE
        SYNTAX  Unsigned32 (60..65535)
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Account Interim Interval"
        ::= { qtechDot1xAuthObjects 18 }               
       
qtechDot1xEapolTagEnabled OBJECT-TYPE
        SYNTAX  EnabledStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Eapol Tag Enabled"
        ::= { qtechDot1xAuthObjects 19 }            

qtechDot1xIfUserMaxTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF QtechDot1xIfUserMaxEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The table of the max dot1x user number on authenticated interface."
        ::= { qtechDot1xAuthObjects 20 }

qtechDot1xIfUserMaxEntry OBJECT-TYPE
        SYNTAX  QtechDot1xIfUserMaxEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The entry of max dot1x user number on authenticated interface."
        INDEX   { qtechDot1xIfUserMaxIndex}
        ::= { qtechDot1xIfUserMaxTable 1 }

QtechDot1xIfUserMaxEntry ::=
        SEQUENCE {
        qtechDot1xIfUserMaxIndex
                IfIndex,           
        qtechDot1xIfUserMaxNum
                Unsigned32
        }
qtechDot1xIfUserMaxIndex OBJECT-TYPE
        SYNTAX  IfIndex
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The interface index which dot1x authentication is enabled."
        ::= { qtechDot1xIfUserMaxEntry 1 }

qtechDot1xIfUserMaxNum OBJECT-TYPE
        SYNTAX Unsigned32 (1..4000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The max dot1x user num on the interface, this is valid only 
            when dot1x authentication is enable on that interface.
            Number 0 indicates no user number limits enabled on the interface."
        ::= { qtechDot1xIfUserMaxEntry 2 }

qtechDot1xPseudoSrcmac OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "Enable(1)/disable(2) use pseudo mac as the source mac of 802.1x
            authentication frame."
        DEFVAL { enabled }
        ::= { qtechDot1xAuthObjects 21 } 

qtechDot1xUserMIB OBJECT IDENTIFIER ::= { qtechDot1xAuthObjects 22 }

qtechDot1xUserTrapsObjects OBJECT IDENTIFIER ::= { qtechDot1xUserMIB 1 }
qtechDot1xUserTraps OBJECT IDENTIFIER ::= { qtechDot1xUserMIB 2 }

qtechDot1xUserMac OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "802.1X user's MAC address."
        ::= { qtechDot1xUserTrapsObjects 1 }

qtechDot1xUserName OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "802.1X user's name"
        ::= { qtechDot1xUserTrapsObjects 2 }

qtechDot1xUserIp OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "802.1X user's IPv4 address."
        ::= { qtechDot1xUserTrapsObjects 3 }

qtechDot1xUserIpv6 OBJECT-TYPE
        SYNTAX InetAddress
        MAX-ACCESS accessible-for-notify
        STATUS current  
        DESCRIPTION
            "802.1x user's IPv6 address."
        ::= { qtechDot1xUserTrapsObjects 4 }

qtechDot1xUserWlanId OBJECT-TYPE
        SYNTAX INTEGER (1..4095)
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The wlan id that 802.1X user associated with."
        ::= { qtechDot1xUserTrapsObjects 5 }

qtechDot1xUserVlanId OBJECT-TYPE
        SYNTAX INTEGER (1..4094)
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The vlan id that 801.1X user belongs to."
        ::= { qtechDot1xUserTrapsObjects 6 }

qtechDot1xUserSsid OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The SSID that 802.1X user associated with."
        ::= { qtechDot1xUserTrapsObjects 7 }

qtechDot1xUserApMac OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The MAC address of the AP that 802.1X user associated with."
        ::= { qtechDot1xUserTrapsObjects 8 }

qtechDot1xUserTerminalType OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "802.1X user's terminal type."
        ::= { qtechDot1xUserTrapsObjects 9 }

qtechDot1xUserOperType OBJECT-TYPE
        SYNTAX INTEGER {
            online(1),
            offline(2),
            authenfail(3)
        }
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Operation type of 802.1X user's trap."
        ::= { qtechDot1xUserTrapsObjects 10 }

qtechDot1xUserTerminateCause OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Terminate cause of 802.1X user."
        ::= { qtechDot1xUserTrapsObjects 11 }

qtechDot1xUserReplyMessage OBJECT-TYPE
        SYNTAX DisplayString
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "Message of authentication failure of a 802.1X user."
        ::= { qtechDot1xUserTrapsObjects 12 }
        
qtechDot1xUserIfIndex OBJECT-TYPE
        SYNTAX INTEGER (1..4095)
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
            "The interface id that 802.1X user belongs to."
        ::= { qtechDot1xUserTrapsObjects 13 }

qtechDot1xUserMgmtTrap NOTIFICATION-TYPE
        OBJECTS {
            qtechDot1xUserMac,
            qtechDot1xUserName,
            qtechDot1xUserIp,
            qtechDot1xUserIpv6,
            qtechDot1xUserWlanId,
            qtechDot1xUserVlanId,
            qtechDot1xUserSsid,
            qtechDot1xUserApMac,
            qtechDot1xUserTerminalType,
            qtechDot1xUserOperType,
            qtechDot1xUserTerminateCause,
            qtechDot1xUserReplyMessage,
            qtechDot1xUserIfIndex
        }
        STATUS current
        DESCRIPTION
            "802.1X wireless user online/offline trap."
        ::= { qtechDot1xUserTraps 1 }

qtechDot1xWiredUserTrap NOTIFICATION-TYPE
        OBJECTS {
            qtechDot1xUserMac,
            qtechDot1xUserName,
            qtechDot1xUserIfIndex,
            qtechDot1xUserVlanId,
            qtechDot1xUserIp,
            qtechDot1xUserIpv6,
            qtechDot1xUserOperType,
            qtechDot1xUserTerminateCause
        }
        STATUS current
        DESCRIPTION
            "802.1X wired user online/offline/authentication trap."
        ::= { qtechDot1xUserTraps 2 }

--**********************************************************************
-- about dot1x online user table info 
--**********************************************************************    
qtechDot1xOnlineUserTable OBJECT-TYPE
    SYNTAX SEQUENCE OF QtechDot1xOnlineUserEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
            "Detail information of dot1x online user."
        ::= { qtechDot1xUserMIB 3 }

qtechDot1xOnlineUserEntry OBJECT-TYPE
    SYNTAX QtechDot1xOnlineUserEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "The entry of qtechDot1xOnlineUserTable."
    INDEX { qtechDot1xOnlineUserID }
    ::= { qtechDot1xOnlineUserTable 1 }

QtechDot1xOnlineUserEntry ::=  
    SEQUENCE {
        qtechDot1xOnlineUserID                 INTEGER,
        qtechDot1xOnlineUserName               DisplayString,
        qtechDot1xOnlineUserMacAddr            MacAddress,
        qtechDot1xOnlineUserIfIndex            INTEGER,
        qtechDot1xOnlineUserVlanId             INTEGER,
        qtechDot1xOnlineUserIp                 IpAddress,
        qtechDot1xOnlineUserIpv6               InetAddress
    }

qtechDot1xOnlineUserID OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The ID of Dot1xOnlineuser that is uniqueness."
    ::= {qtechDot1xOnlineUserEntry 1 }

qtechDot1xOnlineUserName OBJECT-TYPE
    SYNTAX DisplayString
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Name of dot1x online user."
    ::= {qtechDot1xOnlineUserEntry 2}

qtechDot1xOnlineUserMacAddr OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Mac address of dot1x online user."
    ::= {qtechDot1xOnlineUserEntry 3}

qtechDot1xOnlineUserIfIndex OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Interface index of dot1x online user."
    ::= {qtechDot1xOnlineUserEntry 4}

qtechDot1xOnlineUserVlanId OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Vlan id of dot1x online user."
    ::= {qtechDot1xOnlineUserEntry 5}
    
qtechDot1xOnlineUserIp OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Ipv4 address of dot1x online user."
    ::= {qtechDot1xOnlineUserEntry 6}
    
qtechDot1xOnlineUserIpv6 OBJECT-TYPE
    SYNTAX InetAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Ipv6 address of dot1x online user."
    ::= {qtechDot1xOnlineUserEntry 7}

qtechDot1xAbnormalOfflineUserCount OBJECT-TYPE
        SYNTAX  Counter64
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The number of offline users with abnormal terminate-cause"
        ::= { qtechDot1xAuthObjects 23 }

qtechDot1xTotalAuthUserCount OBJECT-TYPE
        SYNTAX  Counter64
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The totaol number of users who send authentication request"
        ::= { qtechDot1xAuthObjects 24 }

qtechDot1xAuthSuccUserCount OBJECT-TYPE
        SYNTAX  Counter64
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The number of users who pass authentication"
        ::= { qtechDot1xAuthObjects 25 }
        
qtechDot1xAuthFailUserCount OBJECT-TYPE
        SYNTAX  Counter64
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The number of users who authenticate fail"
        ::= { qtechDot1xAuthObjects 26 }

--     
-- qtechAAAServer Group.
--
        
--      ::= { qtechAAAServerObjects 1 }     this OID is obsolete

qtechAAAServerAuthPort OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION 
            "UDP port used for authentication in the global 
            configuration.
            For RADIUS only, default value is 1812."
        DEFVAL  { 1812 }
        ::= { qtechAAAServerObjects 2 }

qtechAAAServerAcctPort OBJECT-TYPE
        SYNTAX      INTEGER (0..65535)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION 
            "UDP port used for accounting service in the global
            configuration.
            For RADIUS only, default value is 1813."
        DEFVAL  { 1813 }
        ::= { qtechAAAServerObjects 3 } 

qtechAAAServerRadiusKeyStr OBJECT-TYPE
        SYNTAX      DisplayString (SIZE (0..255))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The server key to be used with all RADIUS server.
            Retrieving the  value of this object via SNMP will
            return an empty string  for security reasons."
        DEFVAL { "" }
        ::= { qtechAAAServerObjects 4 }        

--      ::= { qtechAAAServerObjects 5 }     this OID is obsolete

--      ::= { qtechAAAServerObjects 6 }     this OID is obsolete

--      ::= { qtechAAAServerObjects 7 }     this OID is obsolete

qtechAAAServerTacplusKeyStr OBJECT-TYPE
        SYNTAX      DisplayString (SIZE (0..255))
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "The server key to be used with all TACACS+ server.
            Retrieving the  value of this object via SNMP will return 
            an empty string  for security reasons."
        DEFVAL { "" }
        ::= { qtechAAAServerObjects 8 }
      
--     
-- qtechAAAServerConfigTable
--        
qtechAAAServerConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAAAServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current configurations for each
            AAA server, allows existing servers to be removed
            and new ones to be created."
        ::= { qtechAAAServerObjects 9 }

qtechAAAServerConfigEntry OBJECT-TYPE
        SYNTAX      QtechAAAServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of AAA server configuration identified by its 
            protocol and its index."
        INDEX { qtechAAAServerConfigProtocol,
                qtechAAAServerConfigIndex }
        ::= { qtechAAAServerConfigTable 1}

QtechAAAServerConfigEntry ::=
        SEQUENCE {
            qtechAAAServerConfigProtocol        INTEGER,
            qtechAAAServerConfigIndex           Unsigned32,
            qtechAAAServerConfigAddressType     InetAddressType,
            qtechAAAServerConfigAddress         InetAddress,
            qtechAAAServerConfigAuthPort        INTEGER,
            qtechAAAServerConfigAcctPort        INTEGER,
            qtechAAAServerConfigKeyStr          DisplayString,
            qtechAAAServerConfigRowStatus       RowStatus
        }

qtechAAAServerConfigProtocol OBJECT-TYPE
        SYNTAX      INTEGER {
                    radius(1),   -- RADIUS
                    tacplus(2)   -- TACACS+
                    }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The variable denotes the protocol used by the managed 
            device with the AAA server corresponding to this entry
            in the table."
       ::= { qtechAAAServerConfigEntry 1 }

qtechAAAServerConfigIndex OBJECT-TYPE
       SYNTAX       Unsigned32 (1..4294967295)
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "A number uniquely identifying each server. 
           If the qtechAAAServerConfigIndex value for row creation is 
           already in use by an existing entry, snmp set to the
           qtechAAAServerConfigIndex value will fail.
           Upon reload, casIndex values may be changed."
       ::= { qtechAAAServerConfigEntry 2 }

qtechAAAServerConfigAddressType OBJECT-TYPE 
       SYNTAX       InetAddressType 
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
           "The type of address format used for the 
           qtechAAAServerConfigAddress object." 
       ::= { qtechAAAServerConfigEntry 3 } 

qtechAAAServerConfigAddress OBJECT-TYPE 
       SYNTAX       InetAddress 
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
             "The IP address of the server." 
       ::= { qtechAAAServerConfigEntry 4 } 

qtechAAAServerConfigAuthPort OBJECT-TYPE
       SYNTAX      INTEGER (0..65535)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
             "UDP/TCP port used for authentication in the server.
             For RADIUS, default value is 1812.
             For TACACS+, default value is 49."
       ::= { qtechAAAServerConfigEntry 5 }

qtechAAAServerConfigAcctPort OBJECT-TYPE
       SYNTAX       INTEGER (0..65535)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
             "UDP/TCP port used for accounting service in the server.
             For RADIUS, default value is 1813.
             For TACACS+, the value of qtechAAAServerConfigAcctPort is
             ignored, qtechAAAServerConfigAuthPort will be used instead."
       ::= { qtechAAAServerConfigEntry 6 }

qtechAAAServerConfigKeyStr OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (0..255))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The server key to be used with this server.
           Retrieving the value of this object via SNMP will return an
           empty string for security reasons."
       DEFVAL { "" }
       ::= { qtechAAAServerConfigEntry 7 }

qtechAAAServerConfigRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAAAServerConfigEntry 8 }
        
--     
-- qtechAuthAddress Group.
--        
qtechAuthAddrTable OBJECT-TYPE
  SYNTAX  SEQUENCE OF QtechAuthAddrEntry
  MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The table of MAC address which can be authenticated."
        ::= { qtechAuthUserObjects 1 }

qtechAuthAddrEntry OBJECT-TYPE
        SYNTAX  QtechAuthAddrEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The entry of MAC address which can be authenticated."
        INDEX   { qtechAuthPort,qtechAuthMacAddress}
        ::= { qtechAuthAddrTable 1 }

QtechAuthAddrEntry ::=
        SEQUENCE {
        qtechAuthPort
                IfIndex,           
        qtechAuthMacAddress
                MacAddress,
        qtechAuthAddrStatus
                INTEGER
        }
qtechAuthPort OBJECT-TYPE
        SYNTAX  IfIndex
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The port number of the port/trunk to which frames received from a
              specific port/trunk and destined for a specific MAC address."
        ::= { qtechAuthAddrEntry 1 }
        
qtechAuthMacAddress OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The MAC address which can be authenticated."
        ::= { qtechAuthAddrEntry 2 }

qtechAuthAddrStatus OBJECT-TYPE
        SYNTAX  INTEGER {
                valid(1),
                invalid(2)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "valid(1) - this entry is currently in use .
            invalid(2) - writing this value to the object
            removes the corresponding entry."
        ::= { qtechAuthAddrEntry 3 }    


--
-- qtech authentication user information
--        
qtechAuthUserTable OBJECT-TYPE
        SYNTAX  SEQUENCE OF QtechAuthUserEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The table of authentication User Info."
        ::= { qtechAuthUserObjects 2 }

qtechAuthUserEntry OBJECT-TYPE
        SYNTAX  QtechAuthUserEntry
        MAX-ACCESS  not-accessible
        STATUS  current
        DESCRIPTION
            "The entry of authentication User Info table."
        INDEX   { qtechAuthUserFdbId,qtechAuthUserMacAddress}
        ::= { qtechAuthUserTable 1 }

QtechAuthUserEntry ::=
    SEQUENCE {
            qtechAuthUserFdbId  Unsigned32,
            qtechAuthUserMacAddress  MacAddress,            
            qtechAuthUserName  DisplayString,
            qtechAuthUserSessionId DisplayString,
            qtechAuthUserIpAddr IpAddress,
            qtechAuthUserPort   INTEGER,                        
            qtechAuthUserStatus ConfigStatus
            }
        
qtechAuthUserFdbId OBJECT-TYPE
        SYNTAX       Unsigned32
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The VID of vlan which the address blongs to."    
        ::= { qtechAuthUserEntry 1 }

qtechAuthUserMacAddress OBJECT-TYPE
        SYNTAX  MacAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            " The MAC Address of authentication User ."
          ::= { qtechAuthUserEntry 2 }
                    
qtechAuthUserName OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            "The Name of authentication User."
           ::= { qtechAuthUserEntry 3 }

qtechAuthUserSessionId OBJECT-TYPE
        SYNTAX  DisplayString
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            " The Session Id of authentication User ."
         ::= { qtechAuthUserEntry 4 }

qtechAuthUserIpAddr OBJECT-TYPE
        SYNTAX  IpAddress
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            " The IP Address of authentication User ."
         ::= { qtechAuthUserEntry 5 }
         
qtechAuthUserPort OBJECT-TYPE
        SYNTAX  INTEGER 
        MAX-ACCESS  read-only
        STATUS  current
        DESCRIPTION
            " The interface of authentication User ."
        ::= { qtechAuthUserEntry 6 }
         
qtechAuthUserStatus OBJECT-TYPE
        SYNTAX  ConfigStatus
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "Setting this object to 'invalid' will close a authenticated user,
             set its value to valid will cause no action of agent,
             when query always return value valid." 
         ::= { qtechAuthUserEntry 7 }


--
-- qtech vpn authentication user information
--        
qtechAuthUserForVPNDel OBJECT-TYPE
        SYNTAX  DisplayString (SIZE (1..255))
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "VPN user's name. Setting this object will delete a authenticated user and this user is unauthenticated.
            The set string is the username.
             
             Reading this object always return null string."
        ::= { qtechAuthUserObjects 3 }


-- authorization mode objects

qtechIpAuthorizationMode OBJECT-TYPE
        SYNTAX  INTEGER {
                disable(1),       
                dhcpServer(2),
                radiusServer(3),
                supplicant(4)
                }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
            "disable(1)    - don't limit ip address of user
             dhcpServer(2) - limit ip address of user, only ip address assigned by the dhcp
                             server is legit.
             radiusServer(3) - limit ip address of user, only ip address assigned by the radius
                              server is legit.
             supplicant(4) - mac+ip+port indicates different users (get the IP adress through supplicant)"
        ::= { qtechAuthModeObjects 1 }    
---
---Client probe
---
qtechClientProbeEnabledStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The status of client probe function."
        ::= { qtechClientProbeObjects 1 }

qtechClientProbeHelloInterval OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The interval that client send hello packets."
        ::= { qtechClientProbeObjects 2 }
        
qtechClientProbeAliveInteval OBJECT-TYPE
        SYNTAX Unsigned32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "When switch does not receive any legal hello packets from client 
            in this interval,it will send RADIUS-Account-Stop to RADIUS server
            to stop this connection.The value of the objects must be more than 
            qtechClientProbeHelloInterval"
        ::= { qtechClientProbeObjects 3 }   



qtechAAAConfigObjects     OBJECT IDENTIFIER ::=  { qtechAAAMIBObjects 6 }
qtechAuthenConfigObjects  OBJECT IDENTIFIER ::=  { qtechAAAConfigObjects 1 }
qtechAuthorConfigObjects  OBJECT IDENTIFIER ::=  { qtechAAAConfigObjects 2 }
qtechAcctConfigObjects    OBJECT IDENTIFIER ::=  { qtechAAAConfigObjects 3 }

--     
-- Authentication configurations parameters.
--
--     
-- qtechAuthenMethodListTable
--        
qtechAuthenMethodListTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAuthenMethodListEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current configurations for each authentication
            method-list, allows existing method-lists to be removed and new
            ones to be created."
        ::= { qtechAuthenConfigObjects 1 }

qtechAuthenMethodListEntry OBJECT-TYPE
        SYNTAX      QtechAuthenMethodListEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of authentication method-list configuration identified
            by its type and its name."
        INDEX { qtechAuthenMethodListType,
                qtechAuthenMethodListName }
        ::= { qtechAuthenMethodListTable 1}

QtechAuthenMethodListEntry ::=
        SEQUENCE {
            qtechAuthenMethodListType        INTEGER,
            qtechAuthenMethodListName        DisplayString,
            qtechAuthenMethodListString      DisplayString,
            qtechAuthenMethodListRowStatus   RowStatus
        }

qtechAuthenMethodListType OBJECT-TYPE
        SYNTAX      INTEGER {
                    login(1),   -- for logins.
                    ppp(2),     -- for ppp.
                    dot1x(3),   -- for IEEE 802.1x.
                    enable(4),  -- for enable.
                    web(5),     -- for inter portal.
                    cmweb(6),   -- for cmweb.
                    mt(7)       -- for mt.
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The variable denotes the authentication method-list used by 
            the managed device with the AAA user corresponding to this entry
            in the table."
       ::= { qtechAuthenMethodListEntry 1 }

qtechAuthenMethodListName OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (1..63))
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
           "A human readable string representing the name of authentication
            method-list."
       ::= { qtechAuthenMethodListEntry 2 }

qtechAuthenMethodListString OBJECT-TYPE 
       SYNTAX       DisplayString (SIZE (1..255))
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
           "A human readable string representing the corresponding
            value of of authentication method-list. 
            ie: group radius group tacacs+ local none
            " 
       ::= { qtechAuthenMethodListEntry 3 } 

qtechAuthenMethodListRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAuthenMethodListEntry 4 }

--     
-- Authorization configurations parameters.
--
--     
-- qtechAuthorMethodListTable
--        
qtechAuthorMethodListTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAuthorMethodListEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current configurations for each authorization
            method-list, allows existing method-lists to be removed and new
            ones to be created."
        ::= { qtechAuthorConfigObjects 1 }

qtechAuthorMethodListEntry OBJECT-TYPE
        SYNTAX      QtechAuthorMethodListEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of authorization method-list configuration identified
            by its type and its name."
        INDEX { qtechAuthorMethodListType,
                qtechAuthorMethodListName,
                qtechAuthorMethodListCmdLevel }
        ::= { qtechAuthorMethodListTable 1}

QtechAuthorMethodListEntry ::=
        SEQUENCE {
            qtechAuthorMethodListType        INTEGER,
            qtechAuthorMethodListName        DisplayString,
            qtechAuthorMethodListCmdLevel    INTEGER,           
            qtechAuthorMethodListString      DisplayString,
            qtechAuthorMethodListRowStatus   RowStatus
        }

qtechAuthorMethodListType OBJECT-TYPE
        SYNTAX      INTEGER {
                    exec(1),      -- for starting an exec (shell).
                    command(2),   -- for exec (shell) commands.
                    network(3)    -- for network services.
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The variable denotes the authorization method-list used by 
            the managed device with the AAA user corresponding to this entry
            in the table."
       ::= { qtechAuthorMethodListEntry 1 }

qtechAuthorMethodListName OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (1..63))
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
           "A human readable string representing the name of authorization
            method-list."
       ::= { qtechAuthorMethodListEntry 2 }

qtechAuthorMethodListCmdLevel OBJECT-TYPE
       SYNTAX       INTEGER (0..15)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
           "The variable denotes the command level when the value of 
           qtechAuthorMethodListType is command(2). Otherwise, the value
           must be zero."
       ::= { qtechAuthorMethodListEntry 3 }

qtechAuthorMethodListString OBJECT-TYPE 
       SYNTAX       DisplayString (SIZE (1..255))
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
           "A human readable string representing the corresponding
            value of of authentication method-list. 
            ie: group radius group tacacs+ none
            " 
       ::= { qtechAuthorMethodListEntry 4 } 

qtechAuthorMethodListRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAuthorMethodListEntry 5 }

--     
-- Accounting configurations parameters.
--
--     
-- qtechAuthorMethodListTable
--        
qtechAcctMethodListTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAcctMethodListEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current configurations for each accounting
            method-list, allows existing method-lists to be removed and new
            ones to be created."
        ::= { qtechAcctConfigObjects 1 }

qtechAcctMethodListEntry OBJECT-TYPE
        SYNTAX      QtechAcctMethodListEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of accounting method-list configuration identified
            by its type and its name."
        INDEX { qtechAcctMethodListType,
                qtechAcctMethodListName,
                qtechAcctMethodListCmdLevel }
        ::= { qtechAcctMethodListTable 1}

QtechAcctMethodListEntry ::=
        SEQUENCE {
            qtechAcctMethodListType        INTEGER,
            qtechAcctMethodListName        DisplayString,
            qtechAcctMethodListMode        INTEGER,
            qtechAcctMethodListCmdLevel    INTEGER,        
            qtechAcctMethodListString      DisplayString,
            qtechAcctMethodListRowStatus   RowStatus
        }

qtechAcctMethodListType OBJECT-TYPE
        SYNTAX      INTEGER {
                    exec(1),      -- for starting an exec (shell).
                    command(2),   -- for exec (shell) commands.
                    network(3)    -- for network services.
                    }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The variable denotes the accounting method-list used by 
            the managed device with the AAA user corresponding to this entry
            in the table."
       ::= { qtechAcctMethodListEntry 1 }

qtechAcctMethodListName OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (1..63))
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
           "A human readable string representing the name of accounting
            method-list."
       ::= { qtechAcctMethodListEntry 2 }

qtechAcctMethodListMode OBJECT-TYPE
        SYNTAX      INTEGER {
                    start-stop(1),   -- record start and stop without waiting.
                    stop-only(2)     -- record stop when service terminates.
                    }
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "Set record start and stop without waiting or record stop when 
           service terminates."
       ::= { qtechAcctMethodListEntry 3 }

qtechAcctMethodListCmdLevel OBJECT-TYPE
       SYNTAX       INTEGER (0..15)
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
           "The variable denotes the command level when the value of 
           qtechAcctMethodListType is command(2). Otherwise, the value
           must be zero."
       ::= { qtechAcctMethodListEntry 4 }

qtechAcctMethodListString OBJECT-TYPE 
       SYNTAX       DisplayString (SIZE (1..255))
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
           "A human readable string representing the corresponding
            value of of authentication method-list. 
            ie: group radius group tacacs+ none
            " 
       ::= { qtechAcctMethodListEntry 5 } 

qtechAcctMethodListRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAcctMethodListEntry 6 }


--     
-- qtechAAAServerGroupTable
--        
qtechAAARadiusGroupTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAAARadiusGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current group configurations for each
            RADIUS server group, allows existing groups to be removed
            and new ones to be created."
        ::= { qtechAAAServerObjects 10 }

qtechAAARadiusGroupEntry OBJECT-TYPE
        SYNTAX      QtechAAARadiusGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of RADIUS server group configuration identified
            by its protocol and its name."
        INDEX { qtechAAARadiusGroupName }
        ::= { qtechAAARadiusGroupTable 1}

QtechAAARadiusGroupEntry ::=
        SEQUENCE {
            qtechAAARadiusGroupName            DisplayString,
            qtechAAARadiusGroupVrf             DisplayString,
            qtechAAARadiusGroupRowStatus       RowStatus
        }

qtechAAARadiusGroupName OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (1..63))
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
           "A human readable string representing the name of RADIUS server
            group."
       ::= { qtechAAARadiusGroupEntry 1 }

qtechAAARadiusGroupVrf OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (0..31))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The VPN Routing Forwarding to use with the servers."
       DEFVAL { "" }
       ::= { qtechAAARadiusGroupEntry 2 }

qtechAAARadiusGroupRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAAARadiusGroupEntry 3 }

--     
-- qtechAAARadiusGroupServerTable
--        
qtechAAARadiusGroupServerTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAAARadiusGroupServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current configurations for each
            AAA server, allows existing servers to be removed
            and new ones to be created."
        ::= { qtechAAAServerObjects 11 }

qtechAAARadiusGroupServerEntry OBJECT-TYPE
        SYNTAX      QtechAAARadiusGroupServerEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of AAA server configuration identified by its 
            protocol and its index."
        INDEX { qtechAAARadiusGroupName,
                qtechAAARadiusGroupServerIndex }
        ::= { qtechAAARadiusGroupServerTable 1}

QtechAAARadiusGroupServerEntry ::=
        SEQUENCE {
            qtechAAARadiusGroupServerIndex           Unsigned32,
            qtechAAARadiusGroupServerAddressType     InetAddressType,
            qtechAAARadiusGroupServerAddress         InetAddress,
            qtechAAARadiusGroupServerAuthPort        INTEGER,
            qtechAAARadiusGroupServerAcctPort        INTEGER,
            qtechAAARadiusGroupServerRowStatus       RowStatus
        }

qtechAAARadiusGroupServerIndex OBJECT-TYPE
       SYNTAX       Unsigned32 (1..4294967295)
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "A number uniquely identifying each RADIUS server. If the
           qtechAAARadiusGroupServerIndex value for row creation is already
           in use by an existing entry, snmp set to the 
           qtechAAARadiusGroupServerIndex value will fail.
           Upon reload, casIndex values may be changed."
       ::= { qtechAAARadiusGroupServerEntry 1 }

qtechAAARadiusGroupServerAddressType OBJECT-TYPE 
       SYNTAX       InetAddressType 
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
           "The type of address format used for the 
           qtechAAARadiusGroupServerAddress object." 
       ::= { qtechAAARadiusGroupServerEntry 2 } 

qtechAAARadiusGroupServerAddress OBJECT-TYPE 
       SYNTAX       InetAddress 
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
             "The IP address of the RADIUS server." 
       ::= { qtechAAARadiusGroupServerEntry 3 } 

qtechAAARadiusGroupServerAuthPort OBJECT-TYPE
       SYNTAX      INTEGER (0..65535)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
             "UDP port used for authentication in the RADIUS server."
       DEFVAL { 1812 }          
       ::= { qtechAAARadiusGroupServerEntry 4 }

qtechAAARadiusGroupServerAcctPort OBJECT-TYPE
       SYNTAX       INTEGER (0..65535)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
             "UDP port used for accounting service in the RADIUS server."
       DEFVAL { 1813 }          
       ::= { qtechAAARadiusGroupServerEntry 5 }

qtechAAARadiusGroupServerRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAAARadiusGroupServerEntry 6 }

qtechAAAServerTotalOnlineCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "All RADIUS Access-Accept packets received."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 12 }
        
qtechAAAServerAbnormalOffline OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of offline users with abnormal terminate-cause."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 13 }

qtechAAAServerRadiusAuthReqCount OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of radius authention request send from device."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 14 }

qtechAAAServerRadiusAuthRespCount OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of radius authen response send from server."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 15 }

qtechAAAServerRadiusAuthSuccessCount OBJECT-TYPE
        SYNTAX      Counter32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of radius authen success response send from server."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 16 }     

qtechAAAServerCurrOnlineUserCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of user online."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 17 }
        
--     
-- qtechAAAMasterAuthenServerConfigTable
--        
qtechAAAMasterAuthenServerConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAAAMasterAuthenServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current configurations for 
            AAA Master authentication server, allows existing servers to be removed
            and new ones to be created."
        ::= { qtechAAAServerObjects 18 }

qtechAAAMasterAuthenServerConfigEntry OBJECT-TYPE
        SYNTAX      QtechAAAMasterAuthenServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
             "The table of AAA Master authentication server configuration identified by its group name and its index."
        INDEX { qtechAAAMasterAuthenServerConfigGrpName,
                qtechAAAMasterAuthenServerConfigSrvIndex}
        ::= { qtechAAAMasterAuthenServerConfigTable 1}

QtechAAAMasterAuthenServerConfigEntry ::=
        SEQUENCE {
            qtechAAAMasterAuthenServerConfigGrpName         DisplayString,
            qtechAAAMasterAuthenServerConfigSrvIndex        Unsigned32,
            qtechAAAMasterAuthenServerConfigAddress         IpAddress,
            qtechAAAMasterAuthenServerConfigAuthPort        INTEGER,
            qtechAAAMasterAuthenServerConfigAcctPort        INTEGER,
            qtechAAAMasterAuthenServerConfigKeyStr          DisplayString,
            qtechAAAMasterAuthenServerConfigRowStatus       RowStatus
        }

qtechAAAMasterAuthenServerConfigGrpName OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (1..63))
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
            "The variable denotes the group name it belong to."
       ::= { qtechAAAMasterAuthenServerConfigEntry 1 }

qtechAAAMasterAuthenServerConfigSrvIndex OBJECT-TYPE
       SYNTAX       Unsigned32 (1..4294967295)
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "A number uniquely identifying each server. 
           If the qtechAAAMasterAuthenServerConfigSrvIndex value for row creation is 
           already in use by an existing entry, snmp set to the
           qtechAAAMasterAuthenServerConfigSrvIndex value will fail.
           Upon reload, casIndex values may be changed."
       ::= { qtechAAAMasterAuthenServerConfigEntry 2 }
       
qtechAAAMasterAuthenServerConfigAddress OBJECT-TYPE 
       SYNTAX       IpAddress 
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
             "The IP address of the server." 
       ::= { qtechAAAMasterAuthenServerConfigEntry 3 } 

qtechAAAMasterAuthenServerConfigAuthPort OBJECT-TYPE
       SYNTAX      INTEGER (0..65535)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
             "UDP/TCP port used for authentication in the server.
             For RADIUS, default value is 1812."
       ::= { qtechAAAMasterAuthenServerConfigEntry 4 }

qtechAAAMasterAuthenServerConfigAcctPort OBJECT-TYPE
       SYNTAX       INTEGER (0..65535)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
             "UDP/TCP port used for accounting service in the server.
             For RADIUS, default value is 1813."
       ::= { qtechAAAMasterAuthenServerConfigEntry 5 }

qtechAAAMasterAuthenServerConfigKeyStr OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (0..255))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The server key to be used with this server.
           Retrieving the value of this object via SNMP will return an
           empty string for security reasons."
       DEFVAL { "" }
       ::= { qtechAAAMasterAuthenServerConfigEntry 6 }

qtechAAAMasterAuthenServerConfigRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAAAMasterAuthenServerConfigEntry 7 }

--     
-- qtechAAABackAuthenServerConfigTable
--        
qtechAAABackAuthenServerConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAAABackAuthenServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current configurations for 
            AAA Back Authentication server, allows existing servers to be removed
            and new ones to be created."
        ::= { qtechAAAServerObjects 19 }

qtechAAABackAuthenServerConfigEntry OBJECT-TYPE
        SYNTAX      QtechAAABackAuthenServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of AAA Back Authentication server configuration identified by its group name and its index."
        INDEX { qtechAAABackAuthenServerConfigGrpName,
                qtechAAABackAuthenServerConfigSrvIndex }
        ::= { qtechAAABackAuthenServerConfigTable 1}

QtechAAABackAuthenServerConfigEntry ::=
        SEQUENCE {
            qtechAAABackAuthenServerConfigGrpName         DisplayString,
            qtechAAABackAuthenServerConfigSrvIndex        Unsigned32,
            qtechAAABackAuthenServerConfigAddress         IpAddress,
            qtechAAABackAuthenServerConfigAuthPort        INTEGER,
            qtechAAABackAuthenServerConfigAcctPort        INTEGER,
            qtechAAABackAuthenServerConfigKeyStr          DisplayString,
            qtechAAABackAuthenServerConfigRowStatus       RowStatus
        }

qtechAAABackAuthenServerConfigGrpName OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (1..63))
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
            "The variable denotes the group name the server belong to."
       ::= { qtechAAABackAuthenServerConfigEntry 1 }

qtechAAABackAuthenServerConfigSrvIndex OBJECT-TYPE
       SYNTAX       Unsigned32 (1..4294967295)
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "A number uniquely identifying each server. 
           If the qtechAAABackAuthenServerConfigSrvIndex value for row creation is 
           already in use by an existing entry, snmp set to the
           qtechAAABackAuthenServerConfigSrvIndex value will fail.
           Upon reload, casIndex values may be changed."
       ::= { qtechAAABackAuthenServerConfigEntry 2 }
       
qtechAAABackAuthenServerConfigAddress OBJECT-TYPE 
       SYNTAX       IpAddress 
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
             "The IP address of the server." 
       ::= { qtechAAABackAuthenServerConfigEntry 3 } 

qtechAAABackAuthenServerConfigAuthPort OBJECT-TYPE
       SYNTAX      INTEGER (0..65535)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
             "UDP/TCP port used for authentication in the server.
             For RADIUS, default value is 1812."
       ::= { qtechAAABackAuthenServerConfigEntry 4 }

qtechAAABackAuthenServerConfigAcctPort OBJECT-TYPE
       SYNTAX       INTEGER (0..65535)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
             "UDP/TCP port used for accounting service in the server.
             For RADIUS, default value is 1813."
       ::= { qtechAAABackAuthenServerConfigEntry 5 }

qtechAAABackAuthenServerConfigKeyStr OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (0..255))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The server key to be used with this server.
           Retrieving the value of this object via SNMP will return an
           empty string for security reasons."
       DEFVAL { "" }
       ::= { qtechAAABackAuthenServerConfigEntry 6 }

qtechAAABackAuthenServerConfigRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAAABackAuthenServerConfigEntry 7 }

--     
-- qtechAAAMasterAcctServerConfigTable
--        
qtechAAAMasterAcctServerConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAAAMasterAcctServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current configurations for 
            AAA Master Accounting server, allows existing servers to be removed
            and new ones to be created."
        ::= { qtechAAAServerObjects 20 }

qtechAAAMasterAcctServerConfigEntry OBJECT-TYPE
        SYNTAX      QtechAAAMasterAcctServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of AAA Master Accounting server configuration identified by its 
            group name and its index."
        INDEX { qtechAAAMasterAcctServerConfigGrpName, 
                qtechAAAMasterAcctServerConfigSrvIndex}
        ::= { qtechAAAMasterAcctServerConfigTable 1}

QtechAAAMasterAcctServerConfigEntry ::=
        SEQUENCE {
            qtechAAAMasterAcctServerConfigGrpName         DisplayString,
            qtechAAAMasterAcctServerConfigSrvIndex        Unsigned32,
            qtechAAAMasterAcctServerConfigAddress         IpAddress,
            qtechAAAMasterAcctServerConfigAuthPort        INTEGER,
            qtechAAAMasterAcctServerConfigAcctPort        INTEGER,
            qtechAAAMasterAcctServerConfigKeyStr          DisplayString,
            qtechAAAMasterAcctServerConfigRowStatus       RowStatus
        }

qtechAAAMasterAcctServerConfigGrpName OBJECT-TYPE
        SYNTAX       DisplayString (SIZE (1..63))
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "The variable denotes the group name it belong to.."
            ::= { qtechAAAMasterAcctServerConfigEntry 1 }
            
qtechAAAMasterAcctServerConfigSrvIndex OBJECT-TYPE
       SYNTAX       Unsigned32 (1..4294967295)
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "A number uniquely identifying each server. 
           If the qtechAAAMasterAcctServerConfigSrvIndex value for row creation is 
           already in use by an existing entry, snmp set to the
           qtechAAAMasterAcctServerConfigSrvIndex value will fail.
           Upon reload, casIndex values may be changed."
       ::= { qtechAAAMasterAcctServerConfigEntry 2 }

qtechAAAMasterAcctServerConfigAddress OBJECT-TYPE 
       SYNTAX       IpAddress 
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
             "The IP address of the server." 
       ::= { qtechAAAMasterAcctServerConfigEntry 3 } 

qtechAAAMasterAcctServerConfigAuthPort OBJECT-TYPE
       SYNTAX      INTEGER (0..65535)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
             "UDP/TCP port used for authentication in the server.
             For RADIUS, default value is 1812."
       ::= { qtechAAAMasterAcctServerConfigEntry 4 }

qtechAAAMasterAcctServerConfigAcctPort OBJECT-TYPE
       SYNTAX       INTEGER (0..65535)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
             "UDP/TCP port used for accounting service in the server.
             For RADIUS, default value is 1813."
       ::= { qtechAAAMasterAcctServerConfigEntry 5 }

qtechAAAMasterAcctServerConfigKeyStr OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (0..255))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The server key to be used with this server.
           Retrieving the value of this object via SNMP will return an
           empty string for security reasons."
       DEFVAL { "" }
       ::= { qtechAAAMasterAcctServerConfigEntry 6 }

qtechAAAMasterAcctServerConfigRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAAAMasterAcctServerConfigEntry 7 }

--     
-- qtechAAABackAcctServerConfigTable
--        
qtechAAABackAcctServerConfigTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAAABackAcctServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current configurations for 
            AAA Back Accounting server, allows existing servers to be removed
            and new ones to be created."
        ::= { qtechAAAServerObjects 21 }

qtechAAABackAcctServerConfigEntry OBJECT-TYPE
        SYNTAX      QtechAAABackAcctServerConfigEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of AAA Back Accounting server configuration identified by its 
            group name and its index."
        INDEX { qtechAAABackAcctServerConfigGrpName,
                qtechAAABackAcctServerConfigSrvIndex }
        ::= { qtechAAABackAcctServerConfigTable 1}

QtechAAABackAcctServerConfigEntry ::=
        SEQUENCE {
            qtechAAABackAcctServerConfigGrpName         DisplayString,
            qtechAAABackAcctServerConfigSrvIndex        Unsigned32,
            qtechAAABackAcctServerConfigAddress         IpAddress,
            qtechAAABackAcctServerConfigAuthPort        INTEGER,
            qtechAAABackAcctServerConfigAcctPort        INTEGER,
            qtechAAABackAcctServerConfigKeyStr          DisplayString,
            qtechAAABackAcctServerConfigRowStatus       RowStatus
        }

qtechAAABackAcctServerConfigGrpName OBJECT-TYPE
        SYNTAX       DisplayString (SIZE (1..63))
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "The variable denotes the group name the server belong to."
        ::= { qtechAAABackAcctServerConfigEntry 1 }

qtechAAABackAcctServerConfigSrvIndex OBJECT-TYPE
       SYNTAX       Unsigned32 (1..4294967295)
       MAX-ACCESS   not-accessible
       STATUS       current
       DESCRIPTION
           "A number uniquely identifying each server. 
           If the qtechAAABackAcctServerConfigSrvIndex value for row creation is 
           already in use by an existing entry, snmp set to the
           qtechAAABackAcctServerConfigSrvIndex value will fail.
           Upon reload, casIndex values may be changed."
       ::= { qtechAAABackAcctServerConfigEntry 2 }

qtechAAABackAcctServerConfigAddress OBJECT-TYPE 
       SYNTAX       IpAddress 
       MAX-ACCESS   read-create 
       STATUS       current 
       DESCRIPTION 
             "The IP address of the server." 
       ::= { qtechAAABackAcctServerConfigEntry 3 } 

qtechAAABackAcctServerConfigAuthPort OBJECT-TYPE
       SYNTAX      INTEGER (0..65535)
       MAX-ACCESS  read-create
       STATUS      current
       DESCRIPTION
             "UDP/TCP port used for authentication in the server.
             For RADIUS, default value is 1812."
       ::= { qtechAAABackAcctServerConfigEntry 4 }

qtechAAABackAcctServerConfigAcctPort OBJECT-TYPE
       SYNTAX       INTEGER (0..65535)
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
             "UDP/TCP port used for accounting service in the server.
             For RADIUS, default value is 1813."
       ::= { qtechAAABackAcctServerConfigEntry 5 }

qtechAAABackAcctServerConfigKeyStr OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (0..255))
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The server key to be used with this server.
           Retrieving the value of this object via SNMP will return an
           empty string for security reasons."
       DEFVAL { "" }
       ::= { qtechAAABackAcctServerConfigEntry 6 }

qtechAAABackAcctServerConfigRowStatus OBJECT-TYPE
       SYNTAX       RowStatus
       MAX-ACCESS   read-create
       STATUS       current
       DESCRIPTION
           "The status of this table entry.  Once the entry status is
           set to active, the associated entry cannot be modified except
           destroyed by setting this object to destroy(6)."
       ::= { qtechAAABackAcctServerConfigEntry 7 } 
       
qtechAAAServerTotalAuthUserCount OBJECT-TYPE
        SYNTAX      Unsigned32 (0..4294967295)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The total number of users who send authentication request."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 22 }  
        
 qtechAAAServerAuthSuccUserCount OBJECT-TYPE
        SYNTAX      Unsigned32 (0..4294967295)
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of users who pass authentication."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 23 }

qtechAAAServerDot1xOnlineUserCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of dot1x user online."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 24 }

qtechAAAServerMacOnlineUserCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of mac user online."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 25 }

qtechAAAServerWebOnlineUserCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The number of web user online."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 26 }

qtechAAAServerTatalOnlineUserCount OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The tatal number of user online."
        DEFVAL { 0 }
        ::= { qtechAAAServerObjects 27 }

--
-- qtechAAAServerIfOnlineUserTable
--
qtechAAAServerIfOnlineUserTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechAAAServerIfOnlineUserEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "This table shows current dot1x mac and web user online on 
            the interface." 
        ::= { qtechAAAServerObjects 28 } 

qtechAAAServerIfOnlineUserEntry OBJECT-TYPE
        SYNTAX      QtechAAAServerIfOnlineUserEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The table of AAA Server If Online User identified by if 
            index."
        INDEX { qtechAAAServerIfOnlineUserIfIndex}
        ::= { qtechAAAServerIfOnlineUserTable 1 }
QtechAAAServerIfOnlineUserEntry ::=
        SEQUENCE {
            qtechAAAServerIfOnlineUserIfIndex                Unsigned32,
            qtechAAAServerIfOnlineUserDot1xCount             Unsigned32,
            qtechAAAServerIfOnlineUserWebCount               Unsigned32,
            qtechAAAServerIfOnlineUserMacCount               Unsigned32,
            qtechAAAServerIfOnlineUserTotalCount             Unsigned32
        }

qtechAAAServerIfOnlineUserIfIndex OBJECT-TYPE
        SYNTAX       Unsigned32 (1..4294967295)
        MAX-ACCESS   not-accessible
        STATUS       current
        DESCRIPTION
            "The variable denotes the interface index the user on."
        ::= { qtechAAAServerIfOnlineUserEntry 1 }

qtechAAAServerIfOnlineUserDot1xCount OBJECT-TYPE
        SYNTAX       Unsigned32 (1..4294967295)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Dot1x user online count on this interface."
        ::= { qtechAAAServerIfOnlineUserEntry 2 }

qtechAAAServerIfOnlineUserWebCount OBJECT-TYPE
        SYNTAX       Unsigned32 (1..4294967295)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Web user online count on this interface."
        ::= { qtechAAAServerIfOnlineUserEntry 3 }

qtechAAAServerIfOnlineUserMacCount OBJECT-TYPE
        SYNTAX       Unsigned32 (1..4294967295)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Mac user online count on this interface."
        ::= { qtechAAAServerIfOnlineUserEntry 4 }

qtechAAAServerIfOnlineUserTotalCount OBJECT-TYPE
        SYNTAX       Unsigned32 (1..4294967295)
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "Web mac and 1x total online count on this interface."
        ::= { qtechAAAServerIfOnlineUserEntry 5 }

--     
-- AAA user apply parameters.
--
qtechAAAUserApplyObjects  OBJECT IDENTIFIER ::=  { qtechAAAMIBObjects 7 }
qtechAAADo1xApplyObjects  OBJECT IDENTIFIER ::=  { qtechAAAUserApplyObjects 1 }

--     
-- AAA dot1x apply settings.
--
qtechDot1xAuthenMethodList OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (1..63))
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
           "A human readable string representing the name of 802.1x
           authentication method-list."
       DEFVAL { "" }
       ::= { qtechAAADo1xApplyObjects 1 }

qtechDot1xAuthorMethodList OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (1..63))
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
           "A human readable string representing the name of 802.1x
           authorization method-list."
       DEFVAL { "" }
       ::= { qtechAAADo1xApplyObjects 2 } 

qtechDot1xAcctMethodList OBJECT-TYPE
       SYNTAX       DisplayString (SIZE (1..63))
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
           "A human readable string representing the name of 802.1x
           accounting method-list."
       DEFVAL { "" }
       ::= { qtechAAADo1xApplyObjects 3 } 

---
---AS Server IP configure 
---

qtechRdASObjects OBJECT IDENTIFIER ::=  { qtechAAAMIBObjects 8 }

qtechRdASipInetAddreType OBJECT-TYPE
        SYNTAX InetAddressType
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The type of address format used for the 
             qtechRdASipInetAddreType object." 
        ::= { qtechRdASObjects 1 }   

qtechRdASipInsetAddres OBJECT-TYPE
        SYNTAX InetAddress
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION 
            "The IP address of the AS server." 
        ::= { qtechRdASObjects 2 }   


---
---Radius Auth and Acc Traps
---
-- All trap definitions should be placed under this object.
qtechRadiusServerTrap OBJECT IDENTIFIER ::= { qtechAAAMIB 0 }

qtechRadiusAuthServerDownTrap NOTIFICATION-TYPE
   OBJECTS { 
            radiusAuthServerAddress,
          radiusAuthClientServerPortNumber }
   STATUS      current
   DESCRIPTION
        "This trap is generated when the Authentication Radius server
       doesn't respond client's requests for specified times."
   ::= { qtechRadiusServerTrap 1 }

qtechRadiusAccServerDownTrap NOTIFICATION-TYPE
   OBJECTS { 
            radiusAccServerAddress,
        radiusAccClientServerPortNumber }
   STATUS      current
   DESCRIPTION
        "This trap is generated when the Accounting Radius server
         doesn't respond client's requests for specified times."
   ::= { qtechRadiusServerTrap 2 }

qtechRadiusAuthServerRecoverTrap NOTIFICATION-TYPE
   OBJECTS { 
            radiusAuthServerAddress,
          radiusAuthClientServerPortNumber }
   STATUS      current
   DESCRIPTION
        "This trap is generated when the Authentication Radius server
       recover from the down status."
   ::= { qtechRadiusServerTrap 3 }

qtechRadiusAccServerRecoverTrap NOTIFICATION-TYPE
   OBJECTS { 
            radiusAccServerAddress,
        radiusAccClientServerPortNumber }
   STATUS      current
   DESCRIPTION
        "This trap is generated when the Accounting Radius server
         recover from the down status."
   ::= { qtechRadiusServerTrap 4 }

qtechAAAMIBConformance OBJECT IDENTIFIER ::= { qtechAAAMIB 2 }
qtechAAAMIBCompliances OBJECT IDENTIFIER ::= { qtechAAAMIBConformance 1 }
qtechAAAMIBGroups      OBJECT IDENTIFIER ::= { qtechAAAMIBConformance 2 }


-- compliance statements

qtechAAAMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Qtech AAA MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { 
                        qtechDot1xAuthMIBGroup,
                        qtechAAAServerMIBGroup,
                        qtechAuthAddrMIBGroup,
                        qtechAuthModeMIBGroup,
                        qtechAAAConfigMIBGroup,
                        qtechAAAUserApplyMIBGroup,
                        qtechRdASGroup
                 }
                 GROUP      qtechClientProbeGroup
                 DESCRIPTION
                     "This group is mandatory only for those system which support client 
                      probe function."          
 
         ::= { qtechAAAMIBCompliances 1 }
                
-- units of conformance

qtechDot1xAuthMIBGroup OBJECT-GROUP
        OBJECTS {
           qtechDot1xAuthStatus,
           qtechDot1xAuthObjectsQuietPeriod,
           qtechDot1xAuthObjectsTxPeriod,
           qtechDot1xAuthObjectsSuppTimeout,
           qtechDot1xAuthObjectsServerTimeout,
           qtechDot1xAuthObjectsMaxReq,
           qtechDot1xAuthObjectsReAuthPeriod,
           qtechDot1xAuthObjectsReAuthEnable,
           qtechDot1xAuthObjectsConfigFdbId,
           qtechDot1xAuthObjectsConfigAddr,
           qtechDot1xAuthObjectsPaeState,
           qtechDot1xAuthObjectsBackendAuthState,
           qtechDot1xAuthObjectsAuthControlledPortStatus,
           qtechDot1xAuthObjectsKeyTxEnabled,           
           qtechDot1xAuthObjectsIfIndex, 
           qtechDot1xAuthObjectsStatsFdbId,
           qtechDot1xAuthObjectsStatsAddr,
           qtechDot1xAuthObjectsEapolFramesRx,
           qtechDot1xAuthObjectsEapolFramesTx,
           qtechDot1xAuthObjectsEapolQtechFramesRx,
           qtechDot1xAuthObjectsEapolLogoffFramesRx,
           qtechDot1xAuthObjectsEapolRespIdFramesRx,
           qtechDot1xAuthObjectsEapolRespFramesRx,
           qtechDot1xAuthObjectsEapolReqIdFramesTx,
           qtechDot1xAuthObjectsEapolReqFramesTx,
           qtechDot1xAuthObjectsInvalidEapolFramesRx,
           qtechDot1xAuthObjectsEapLengthErrorFramesRx,
           qtechDot1xAuthObjectsLastEapolFrameVersion,
           qtechDot1xAuthObjectsLastEapolFrameSource,
           qtechDot1xCurrentUserNumber,
           qtechDot1xCurrentAuthenticatedUserNumber,
           qtechDot1xAuthObjectsMaxReauth,
           qtechAuthIf,           
           qtechAuthIfStatus,
           qtechAuthenticationMode,
           qtechDot1xPseudoSrcmac,
           qtechDot1xAbnormalOfflineUserCount,
           qtechDot1xTotalAuthUserCount,
           qtechDot1xAuthSuccUserCount,
           qtechDot1xAuthFailUserCount
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing dot1x  authentication managment."
        ::= { qtechAAAMIBGroups 1 }

        
qtechAAAServerMIBGroup OBJECT-GROUP
        OBJECTS {
           qtechAAAServerAuthPort,
           qtechAAAServerAcctPort,
           qtechAAAServerRadiusKeyStr,
           qtechAAAServerTacplusKeyStr,
           qtechAAAServerConfigAddressType,
           qtechAAAServerConfigAddress,
           qtechAAAServerConfigAuthPort,
           qtechAAAServerConfigAcctPort,
           qtechAAAServerConfigKeyStr,
           qtechAAAServerConfigRowStatus
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing AAA server managment."
        ::= { qtechAAAMIBGroups 2 }

qtechAuthAddrMIBGroup OBJECT-GROUP
        OBJECTS {
            qtechAuthMacAddress,
            qtechAuthPort,   
            qtechAuthAddrStatus,
            qtechAuthUserFdbId,
            qtechAuthUserMacAddress,            
            qtechAuthUserName,
            qtechAuthUserSessionId,
            qtechAuthUserIpAddr,
            qtechAuthUserPort, 
            qtechAuthUserStatus
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing  address permitted authentication managment."
        ::= { qtechAAAMIBGroups 3 } 

qtechAuthModeMIBGroup OBJECT-GROUP
        OBJECTS {
                qtechIpAuthorizationMode                
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing  authentication mode managment."
        ::= { qtechAAAMIBGroups 4 }  
        
qtechClientProbeGroup OBJECT-GROUP
        OBJECTS {
                qtechClientProbeEnabledStatus,
                qtechClientProbeHelloInterval,
                qtechClientProbeAliveInteval                
                }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing  client probe management."
        ::= { qtechAAAMIBGroups 5 }  

qtechAAAConfigMIBGroup OBJECT-GROUP
        OBJECTS {
            qtechAuthenMethodListType,
            qtechAuthenMethodListName,
            qtechAuthenMethodListString,
            qtechAuthenMethodListRowStatus,
            qtechAuthorMethodListType,
            qtechAuthorMethodListName,
            qtechAuthorMethodListCmdLevel,
            qtechAuthorMethodListString,
            qtechAuthorMethodListRowStatus,
            qtechAcctMethodListType,
            qtechAcctMethodListName,
            qtechAcctMethodListMode,
            qtechAcctMethodListCmdLevel,
            qtechAcctMethodListString,
            qtechAcctMethodListRowStatus,
            qtechAAARadiusGroupName,
            qtechAAARadiusGroupVrf,
            qtechAAARadiusGroupRowStatus,
            qtechAAARadiusGroupServerAddressType,
            qtechAAARadiusGroupServerAddress,
            qtechAAARadiusGroupServerAuthPort,
            qtechAAARadiusGroupServerAcctPort,
            qtechAAARadiusGroupServerRowStatus
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing AAA configuration managment."
        ::= { qtechAAAMIBGroups 6 }
                
qtechAAAUserApplyMIBGroup OBJECT-GROUP
        OBJECTS {
            qtechDot1xAuthenMethodList,
            qtechDot1xAuthorMethodList,
            qtechDot1xAcctMethodList
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing AAA user apply managment."
        ::= { qtechAAAMIBGroups 7 }        

qtechRdASGroup OBJECT-GROUP
        OBJECTS {
                qtechRdASipInetAddreType,
                qtechRdASipInsetAddres              
                }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing Radius AS management."
        ::= { qtechAAAMIBGroups 8 }          
                
END
