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

QTECH-INTERFACE-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32,
        OBJECT-TYPE,
        Counter32,
        Counter64,
        Unsigned32,
        IpAddress
                FROM SNMPv2-SMI
        RowStatus, 
        DisplayString,
        PhysAddress,
        MacAddress
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        ConfigStatus,
        IfIndex
                FROM QTECH-TC
        EnabledStatus 
                FROM P-BRIDGE-MIB
        ifIndex
                FROM RFC1213-MIB
        Gauge,
        TimeTicks
                FROM RFC1155-SMI
        qtechMgmt
                FROM QTECH-SMI
        IANAifType
                FROM IANAifType-MIB
        VlanId
                FROM Q-BRIDGE-MIB
        InterfaceIndex
                FROM IF-MIB
       SnmpAdminString
                FROM SNMP-FRAMEWORK-MIB          -- RFC3411
       InetAddressType, InetAddress
                FROM INET-ADDRESS-MIB;           -- RFC4001

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

                E-mail: service@qtech.com.cn"
        DESCRIPTION
                "This module defines qtech interface mibs."
        REVISION      "201002010000Z"
        DESCRIPTION
                "Add a table about vlan."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { qtechMgmt 10}

qtechIfConfigMIBObjects OBJECT IDENTIFIER ::= { qtechInterfaceMIB 1 }


qtechIfTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechIfEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of interface basic configuration objects."
        ::= { qtechIfConfigMIBObjects 1 }
    
qtechIfEntry OBJECT-TYPE
        SYNTAX QtechIfEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains interface basic configurations."
        INDEX { qtechIfIndex }
        ::= { qtechIfTable 1 }

QtechIfEntry ::=
        SEQUENCE {
            qtechIfIndex IfIndex,
            qtechIfPortType INTEGER,
            qtechIfFlowControlAdminStatus INTEGER,
            qtechIfFlowControlOperStatus EnabledStatus,
            qtechIfAdminSpeed INTEGER,
            qtechIfAdminDuplex INTEGER,
            qtechIfOperSpeed INTEGER,
            qtechIfOperDuplex INTEGER,
            qtechIfManageStatus EnabledStatus,
            qtechIfIpBroadcast  IpAddress,            
            qtechIfLayer INTEGER,
            qtechIfMode  INTEGER,
            qtechIfCounterClear Integer32,
            qtechIfEntryStatus ConfigStatus,
            qtechIfMediumType INTEGER,          
	    qtechIfDownCounter Counter32,
            qtechIfInOctets Counter64,
            qtechIfOutOctets Counter64,
	    qtechIfBcastInhibit INTEGER,
            qtechIfNegotiation INTEGER,
            qtechIfPhysAddress MacAddress,
            qtechIfAdminSpeedRW INTEGER,
            qtechIfAdminDuplexRW INTEGER,
            qtechIfModeRW  INTEGER,
            qtechIfSpeed Gauge,
            qtechifAdminStatus INTEGER,
            qtechifOperStatus INTEGER,
            qtechIfInNUcastPkts Counter64,
            qtechIfOutNUcastPkts Counter64,
            qtechIfUpDownTimes Counter32,
            qtechifOperStatusw INTEGER,
            qtechifSpeedw Integer32,
            qtechifAdminStatusw INTEGER,
            qtechifAdminStatus_w INTEGER,
            qtechifOperStatus_w INTEGER,
            qtechifSpeed_w Integer32,
            qtechifMacAddress MacAddress,
            qtechifLastChange TimeTicks,
            qtechIfInPkts Counter64,
            qtechIfDiscard Counter64,
            qtechIfBandwidthUsage DisplayString,
            qtechIfInBitsRate Counter64,
            qtechIfInPktRate Counter64,
            qtechIfOutBitsRate Counter64,
            qtechIfOutPktRate Counter64
        }

qtechIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            " "
        ::= { qtechIfEntry 1 }

qtechIfPortType OBJECT-TYPE
        SYNTAX INTEGER {
            unknown(1),
            port10M100MBASETX(2),
            port100MBASEFXL(3),        
            port100MBASEFXS(4),
            port1000MBASESX(5),   
            port1000MBASELX(6),
            port1000MBASETX(7),
            portGBIC(8),
            port100MBASEFX(9),
            port1000MBASEFX(10),
            portSFP(11),
            port10GBASESR(12),
            port10GBASELR(13),
            port10GBASEER(14),
            port10GBASELX4(15),
            port10GBASESW(16),
            port10GBASELW(17),
            port10GBASEEW(18),
            port10GBASE(19),
            port40GBASEKR(20),
            port40GBASECR(21),
            port40GBASELR(22),
            port40GBASESR(23),
            port40GBASE(24),
            port100GBASECR(25),
            port100GBASESR(26),
            port100GBASELR(27),
            port100GBASEER(28),
            port100GBASE(29),
            port155MCPOS(50),
            port622MCPOS(51),
            port2G5CPOS(52),
            port10GCPOS(53),
            port155MPOS(54),
            port622MPOS(55),
            port2G5POS(56),
            port10GPOS(57),
            port155MATM(58),
            port622MATM(59),
            port2G5ATM(60),
            port10GATM(61),
            portE1ELC(62)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Port type of this port, list as above.
             port100MBASEFX indicates that port is port100MBASEFXL or port100MBASEFXS,
             and system doesn't distinguish.
             port1000MBASEFX indicates that port is port1000MBASEFLX or port1000MBASEFSX,
             and system doesn't distinguish.
             
             This attribute apply physical port"
        ::= { qtechIfEntry 2 }
           
qtechIfFlowControlAdminStatus OBJECT-TYPE
        SYNTAX INTEGER {
            enabled(1),
            disabled(2),
            autonego(3),
            unknown(4)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Flow control of a port management status.
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfEntry 3 }
    
qtechIfFlowControlOperStatus OBJECT-TYPE
        SYNTAX EnabledStatus
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Oper status: after the negotiation between two ports connetted 
            the flow contrl status.
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfEntry 4 }
                     
qtechIfAdminSpeed OBJECT-TYPE
        SYNTAX INTEGER {
            speed10Mb(1),
            speed100Mb(2),
            speed1000Mb(3),
            autonego(4),
            speed10Gb(5),
            unknown(6),
            speed40Gb(7),   
            speed100Gb(8)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "port speed settings.
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfEntry 5 }
        
qtechIfAdminDuplex OBJECT-TYPE
        SYNTAX INTEGER {
            full(1),
            half(2),
            autonego(3),
            unknown(4)
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "port duplex settings.
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfEntry 6 }        
    
qtechIfOperSpeed OBJECT-TYPE
        SYNTAX INTEGER {
            speed10Mb(1),
            speed100Mb(2),
            speed1000Mb(3),
            unknown(4),
            speed10Gb(5),
            speed40Gb(6),
            speed100Gb(7)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "After two port have negotiated the speed status,and this object 
            is the working speed status. while the port link status is down ,
            then the speed status is unknown(4).
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfEntry 7 }

qtechIfOperDuplex OBJECT-TYPE
        SYNTAX INTEGER {
            full(1),
            half(2),
            unknown(3)
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "After two port have negotiated the duplex status, and this object 
            is the working duplex status. while the port link status is down ,
            then the speed status is unknown(3).
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfEntry 8 }

qtechIfManageStatus OBJECT-TYPE
        SYNTAX EnabledStatus 
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION 
                "Management status of the interface."
        DEFVAL { enabled }
        ::={qtechIfEntry 9}

qtechIfIpBroadcast OBJECT-TYPE
    SYNTAX IpAddress
    MAX-ACCESS read-create
    STATUS current
    DESCRIPTION
        "Broadcast address of the interface. if broadcast address not configured on interface, return 0.0.0.0"
       ::= { qtechIfEntry 10 }
                      

qtechIfLayer OBJECT-TYPE
        SYNTAX  INTEGER {
                  layer-2(1), -- the interface is a interface of L2
                  layer-3(2)  -- the interface is a interface of L3
              }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
              ""
        ::= { qtechIfEntry 11 }
        
qtechIfMode OBJECT-TYPE
        SYNTAX  INTEGER {
            access(1), -- the mode of interface is access port
            trunk(2),  -- the mode of interface is trunk port
            dot1q-tunnel(3),   -- the mode of interface is 802.1q tunnel port
            hybrid(4), -- the mode of interface is hybrid port
            other(5), -- other mode 
            uplink(6), -- the mode of interface is uplink port
            host(7), -- the mode of interface is private-vlan host port
            promiscuous(8) -- the mode of interface is private-vlan promiscuous port
              }
        MAX-ACCESS  read-create
        STATUS  current
        DESCRIPTION
              "This value is meaning for only physical port and aggreate port"
        ::= { qtechIfEntry 12 }

qtechIfCounterClear OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Setting its to any value but 0, will clear counters of this interface. 
             Setting its value to 0 will cause no action of the agent. and when
             query will always return 0.            "
        ::= { qtechIfEntry 13 } 
        
qtechIfEntryStatus OBJECT-TYPE
        SYNTAX ConfigStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Status of this entry, set this object to valid will create a interface, 
             and set its value to invalid will delete the interface of this entry."
        ::= { qtechIfEntry 14 }
                       
qtechIfMediumType OBJECT-TYPE
        SYNTAX INTEGER {
            unknown(0),
            copper(1),
            fiber(2)
         }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Port medium type of this port,fiber or copper."
        ::= { qtechIfEntry 15 }

qtechIfDownCounter OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The counters of linkdown times of the interface."
        ::= { qtechIfEntry 16 }

qtechIfInOctets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of octets received on the interface,
            including framing characters.
            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of ifCounterDiscontinuityTime."
    ::= { qtechIfEntry 17 }
 
qtechIfOutOctets OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of octets transmitted out of the
            interface, including framing characters.
            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of ifCounterDiscontinuityTime."
    ::= { qtechIfEntry 18 } 

qtechIfBcastInhibit OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The percentage of the broadcast storm restraint on the
            interface."
    ::= { qtechIfEntry 19 } 

qtechIfNegotiation OBJECT-TYPE
    SYNTAX INTEGER {
        disable(0),
        enable(1)
     }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "The negotiation status of the interface."
    ::= { qtechIfEntry 20 } 

qtechIfPhysAddress OBJECT-TYPE
    SYNTAX      MacAddress
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The interface's address at its protocol sub-layer.  For
            example, for an 802.x interface, this object normally
            contains a MAC address.  The interface's media-specific MIB
            must define the bit and byte ordering and the format of the
            value of this object.  For interfaces which do not have such
            an address (e.g., a serial line), this object should contain
            an octet string of zero length."
    ::= { qtechIfEntry 21 }

qtechIfAdminSpeedRW OBJECT-TYPE
        SYNTAX INTEGER {
            speed10Mb(1),
            speed100Mb(2),
            speed1000Mb(3),
            autonego(4),
            speed10Gb(5),
            unknown(6),
            speed40Gb(7),   
            speed100Gb(8)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "port speed settings.
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfEntry 22 }
        
qtechIfAdminDuplexRW OBJECT-TYPE
        SYNTAX INTEGER {
            full(1),
            half(2),
            autonego(3),
            unknown(4)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "port duplex settings.
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfEntry 23 }        

qtechIfModeRW OBJECT-TYPE
        SYNTAX  INTEGER {
            access(1), -- the mode of interface is access port
            trunk(2),  -- the mode of interface is trunk port
            dot1q-tunnel(3),   -- the mode of interface is 802.1q tunnel port
            hybrid(4), -- the mode of interface is hybrid port
            other(5), -- other mode 
            uplink(6), -- the mode of interface is uplink port
            host(7), -- the mode of interface is private-vlan host port
            promiscuous(8) -- the mode of interface is private-vlan promiscuous port
              }
        MAX-ACCESS  read-write
        STATUS  current
        DESCRIPTION
              "This value is meaning for only physical port and aggreate port"
        ::= { qtechIfEntry 24 }

  qtechIfSpeed OBJECT-TYPE
    SYNTAX      Gauge
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "An estimate of the interface's current bandwidth in units of 
        Mbits per second."
    ::= { qtechIfEntry 25 }  
    
 qtechifAdminStatus OBJECT-TYPE
    SYNTAX INTEGER {
        adminup(1),
        admindown(2),
        admintest(3)
        }
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
            "the interface  keeps the admin state ."
    ::= { qtechIfEntry 26 }  
      
 qtechifOperStatus OBJECT-TYPE
   SYNTAX INTEGER {
        up(1),
        down(2),
        test(3),
        unknow(4),
        dormant(5)      
        }
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "the interface  keeps the oper state ."
    ::= { qtechIfEntry 27}  
      
  qtechIfInNUcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The counter of receiving  packets contain BROADCAST and PACKET_MULTICAST ."
    ::= { qtechIfEntry 28 }    
         
  qtechIfOutNUcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The counter of sending  packets contain BROADCAST and PACKET_MULTICAST ."
    ::= { qtechIfEntry 29 }   
    
  qtechIfUpDownTimes OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The counters of linkup and linkdown times of the interface."
        ::= { qtechIfEntry 30 }     
        
  qtechifAdminStatusw OBJECT-TYPE
        SYNTAX INTEGER {
        up(0),
        admindown(1)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The desired state of the interface.  When a managed system initializes, all
        interfaces start with ifAdminStatus in the admindown(1)
        state.  As a result of either explicit management
        action or per configuration information retained by
        the managed system, ifAdminStatus is then changed to
        either the up(0)  states (or remains in
        the admindown(1) state)."
        ::= { qtechIfEntry 31 }  
        
  qtechifOperStatusw OBJECT-TYPE
        SYNTAX INTEGER {
        up(0),
        down(1),
        admindown(2)
          }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The current operational state of the interface.  
        If qtechApIfAdminStatus is admindown(2) then
        qtechApIfOperStatus should be admindown(2).  If qtechApIfAdminStatus is
        changed to up(0) then qtechApIfOperStatus should change to
        up(0) . it should remain in the down(1) state if
        and only if there is a fault that prevents it from
        going to the up(0) state; "
        ::= { qtechIfEntry 32 }  
        
  qtechifSpeedw OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "An estimate of the interface's current bandwidth in units of
        Mbits per second."
        ::= { qtechIfEntry 33 }

   qtechifMacAddress OBJECT-TYPE
        SYNTAX MacAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The interface's address at its protocol sub-layer.
        For example, for an 802.x interface, this object
        normally contains a MAC address.  The interface's
        media-specific MIB must define the bit and byte
        ordering and the format of the value of this object.
        For interfaces which do not have such an address
        (e.g., a serial line), this object should contain an
        octet string of zero length."
        ::= { qtechIfEntry 34 }   
        
     qtechifLastChange OBJECT-TYPE
        SYNTAX TimeTicks
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The length of the time that comes current state ."
        ::= { qtechIfEntry 35 }

     qtechIfInPkts OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
          "The number of packets received on this interface,
           including framing characters.

          Discontinuities in the value of this counter can occur at
          re-initialization of the management system, and at other
          times as indicated by the value of
           ifCounterDiscontinuityTime."
         ::= { qtechIfEntry 36 }   

     qtechIfDiscard OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "The number of bound packets which were chosen to be
         discarded even though no errors. One possible reason for
         discarding such a packet could be to free up buffer space.
        
         Discontinuities in the value of this counter can occur
         at re-initialization of the management system, and at
         other times as indicated by the value of
         ifCounterDiscontinuityTime."
         ::= { qtechIfEntry 37 }   

     qtechIfBandwidthUsage OBJECT-TYPE
        SYNTAX      DisplayString
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "Current bandwidth utilization of interface."
         ::= { qtechIfEntry 38 }   

     qtechIfInBitsRate OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "The average input packet-rate over a period of time(configuration by interface command 'load-interval') 
          in bits per second on this interface."
         ::= { qtechIfEntry 39 }   

     qtechIfInPktRate OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "The average input packet-rate over a period of time(configuration by interface command 'load-interval') 
          in packets per second on this interface."
         ::= { qtechIfEntry 40 }   

     qtechIfOutBitsRate OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "The average output packet-rate over a period of time(configuration by interface command 'load-interval') 
          in bits per second on this interface."
         ::= { qtechIfEntry 41 }   

     qtechIfOutPktRate OBJECT-TYPE
        SYNTAX      Counter64
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
         "The average output packet-rate over a period of time(configuration by interface command 'load-interval') 
          in packets per second on this interface."
         ::= { qtechIfEntry 42 }   

qtechIfIpTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF QtechIfIpEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "A list of interface ip configuration entries."
       ::= { qtechIfConfigMIBObjects 2}

qtechIfIpEntry OBJECT-TYPE
       SYNTAX      QtechIfIpEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
               "An entry containing configuration information applicable
               to a Layer3 interface."
       INDEX   { qtechIfIpIfIndex, qtechIfIpId, qtechIfIp}
       ::= { qtechIfIpTable 1 }

QtechIfIpEntry ::=
       SEQUENCE {
          qtechIfIpIfIndex         IfIndex,
          qtechIfIpId              INTEGER,
          qtechIfIp                IpAddress,
          qtechIfIpMask            IpAddress,
          qtechIfIpEntryStatus     RowStatus
        }
qtechIfIpIfIndex OBJECT-TYPE
       SYNTAX      IfIndex
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "A unique value, for each Layer3 interface."
       ::= { qtechIfIpEntry 1 }       
       
qtechIfIpId OBJECT-TYPE
       SYNTAX      INTEGER{
                       primary(1),    -- primary ip address of Layer3 interface
                       secondary(2)   -- secondary ip address of Layer3 interface
                   }
       MAX-ACCESS  read-only
       STATUS      current
       DESCRIPTION
               "Type of interface ip address."
       ::= { qtechIfIpEntry 2 }              

qtechIfIp OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Ip address of the interface qtechIfIndex refer to."
        ::= { qtechIfIpEntry 3 }       
        
qtechIfIpMask OBJECT-TYPE
        SYNTAX IpAddress
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "Ip mask of the interface ip address."
        ::= { qtechIfIpEntry 4 }       
            
qtechIfIpEntryStatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "entry status of this entry. and the means in this enviraments can
            reffer to the text-convention definition of the RowStatus."
        ::= { qtechIfIpEntry 5 } 


qtechIfStatusTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechIfStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of interface status. Status information include some error state and
             result of examining to the interface,etc."
        ::= { qtechIfConfigMIBObjects 3 }
    
qtechIfStatusEntry OBJECT-TYPE
        SYNTAX QtechIfStatusEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entry contains interface status information."
        INDEX { qtechIfStatusIndex }
        ::= { qtechIfStatusTable 1 }

QtechIfStatusEntry ::=
        SEQUENCE {
            qtechIfStatusIndex IfIndex,
            qtechIfStatusLoopBackExamine Integer32,
            qtechIfErrorStatus           INTEGER,
            qtechIfLineDetect            Integer32
        }

qtechIfStatusIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            " "
        ::= { qtechIfStatusEntry 1 }

qtechIfStatusLoopBackExamine OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting its to any value but 0, will Checking whether this port or aggreate can
              receive and send packets normally, It indicates that port or aggreate is normal
              if opertion is success. 
                  Setting its value to 0 will cause no action of the agent. and when
             query will always return 0.
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfStatusEntry  2 } 
        
qtechIfErrorStatus OBJECT-TYPE
        SYNTAX INTEGER {
            no-error(1),               -- port is enabled normal
            err-disable-bpduguard(2),  -- port is disabled by port receive BPDU packet when port
                                       -- enable BPDU guard             
            err-disable-ptsecurity(3)  -- port is disabled by port security is violatd
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Port's error status information"
        ::= { qtechIfStatusEntry 3 }
           
           
qtechIfLineDetect OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "When reading this object, system detects the quality of line connecting the port.
             Detect whether the line is broken or short circuit or not. 
             
             The meaning of the obtained value:
             Return value=N*10000000+M
             N stands for the line state (0: perfect; 1: break; 2: short circuit)
             M stands for the location of the break or short circuit in the line(distance from the switch port, in metre)
             If the line is perfect, the value is zero."
        ::= { qtechIfStatusEntry  4 }
           
qtechGlobalIfDisableRecovery OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Setting its to any value but 0, the interfaces  which is shutted down by
             some error happened will recovery from disabled status . 
                  Setting its value to 0 will cause no action of the agent. and when
             query will always return 0.
            
            This attribute apply physical port and aggreate port"
        ::= { qtechIfConfigMIBObjects  4 } 
                               
--
-- portType Choose
--
qtechPortTypeChooseTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechPortTypeChooseEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Table of entrance to choose port type." 
        ::= { qtechIfConfigMIBObjects 5 }
    
qtechPortTypeChooseEntry OBJECT-TYPE
        SYNTAX QtechPortTypeChooseEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Entrance to choose port type."  
        INDEX { qtechPortTypeChooseIndex }
        ::= { qtechPortTypeChooseTable 1 }

QtechPortTypeChooseEntry ::=
        SEQUENCE {
            qtechPortTypeChooseIndex IfIndex,
            qtechPortTypeChooseType INTEGER
        }

qtechPortTypeChooseIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The logic port number." 
        ::= { qtechPortTypeChooseEntry 1 }

qtechPortTypeChooseType OBJECT-TYPE
        SYNTAX INTEGER {
    fiber(1),       --priority of fiber port
          copper(2)       --priority of copper port
        }
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The chosen port type. This object is used to choose one of the multiple physical ports of different types,
            when the same logical port is correspondent with them.
            Apply this attribute to the physical port only." 
        ::= { qtechPortTypeChooseEntry 2 }

--
-- mtu
--
qtechIfMTUTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechIfMTUEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Access table of MTU on interface." 
        ::= { qtechIfConfigMIBObjects 6 }
    
qtechIfMTUEntry OBJECT-TYPE
        SYNTAX QtechIfMTUEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Interfac MTU access." 
        INDEX { qtechIfMTUIndex }
        ::= { qtechIfMTUTable 1 }

QtechIfMTUEntry ::=
        SEQUENCE {
            qtechIfMTUIndex IfIndex,
            qtechIfMTU Integer32
        }

qtechIfMTUIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Interface number"
        ::= { qtechIfMTUEntry 1 }

qtechIfMTU OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Interface MTU."
        ::= { qtechIfMTUEntry 2 }
--
-- Available Bandwidth
--
qtechIfAvailableBWTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechIfAvailableBWEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Access table of Available Bandwidth on interface." 
        ::= { qtechIfConfigMIBObjects 7 }
    
qtechIfAvailableBWEntry OBJECT-TYPE
        SYNTAX QtechIfAvailableBWEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Interfac available bandwidth access." 
        INDEX { qtechIfAvailableBWIfIndex }
        ::= { qtechIfAvailableBWTable 1 }

QtechIfAvailableBWEntry ::=
        SEQUENCE {
            qtechIfAvailableBWIfIndex IfIndex,
            qtechIfAvailableBWIfBW Gauge
        }

qtechIfAvailableBWIfIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Interface number"
        ::= { qtechIfAvailableBWEntry 1 }

qtechIfAvailableBWIfBW OBJECT-TYPE
        SYNTAX Gauge
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Interface available bandwidth(bit)."
        ::= { qtechIfAvailableBWEntry 2 }
        
--
-- Creat Interface Vlan
--
qtechIfSVICreatTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechIfSVICreatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Access table of Available Bandwidth on interface." 
        ::= { qtechIfConfigMIBObjects 8 }
    
qtechIfSVICreatEntry OBJECT-TYPE
        SYNTAX QtechIfSVICreatEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Interfac available bandwidth access." 
        INDEX { qtechIfSVICreatVlanNum }
        ::= { qtechIfSVICreatTable 1 }

QtechIfSVICreatEntry ::=
        SEQUENCE {
            qtechIfSVICreatVlanNum Integer32,
            qtechIfHandleSVI       INTEGER
        }

qtechIfSVICreatVlanNum OBJECT-TYPE
        SYNTAX Integer32(1..4094)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Interface Vlan number"
        ::= { qtechIfSVICreatEntry 1 }

qtechIfHandleSVI OBJECT-TYPE
        SYNTAX INTEGER{create(0), delete(1)}
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "0 creat,1 delete."
        ::= { qtechIfSVICreatEntry 2 }

--
-- Get Physical Interface Number
--
qtechIfPhyIntNum OBJECT-TYPE
    SYNTAX      INTEGER
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of physical interfaces (regardless of their
            current state) present on this system."
    ::= { qtechIfConfigMIBObjects 9 }        


--
-- Get Interface LinkUP Times
--
qtechIfLinkUPTimesTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechIfLinkUPTimesEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Access table of Available Bandwidth on interface." 
        ::= { qtechIfConfigMIBObjects 10 }
    
qtechIfLinkUPTimesEntry OBJECT-TYPE
        SYNTAX QtechIfLinkUPTimesEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Interfac available bandwidth access." 
        INDEX { qtechInterfaceIndex }
        ::= { qtechIfLinkUPTimesTable 1 }

QtechIfLinkUPTimesEntry ::=
        SEQUENCE {
            qtechInterfaceIndex   Integer32,
            qtechIfLinkUPTimes    INTEGER
        }

qtechInterfaceIndex OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Interface Index"
        ::= { qtechIfLinkUPTimesEntry 1 }

qtechIfLinkUPTimes OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Vlaues Of Linkup Times."
        ::= { qtechIfLinkUPTimesEntry 2 }
        
--
-- Interface encapsulation dot1q VLAN
--
qtechIfEncapsulationTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechIfEncapsulationEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Access table of Encapsulation dot1q VLAN on interface." 
        ::= { qtechIfConfigMIBObjects 11 }
    
qtechIfEncapsulationEntry OBJECT-TYPE
        SYNTAX QtechIfEncapsulationEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Interfac encapsulation dot1q VLAN access." 
        INDEX { qtechIfEncapsulationIndex }
        ::= { qtechIfEncapsulationTable 1 }

QtechIfEncapsulationEntry ::=
        SEQUENCE {
            qtechIfEncapsulationIndex  IfIndex,
            qtechIfEncapsulationVlan   VlanId
        }

qtechIfEncapsulationIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "A unique value for each interface.  Its value
             ranges between 1 and the value of ifNumber.  The
             value for each interface must remain constant at
             least from one re-initialization of the entity's
             network management system to the next re-
             initialization."
        ::= { qtechIfEncapsulationEntry 1 }

qtechIfEncapsulationVlan OBJECT-TYPE
        SYNTAX VlanId
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The value indicate the VID of the dot1q vlan encapsulation. 
             The value 0 means de-encapsulation."
        ::= { qtechIfEncapsulationEntry 2 }

--
-- Get ap interface number
--
qtechApIfNumberTable OBJECT-TYPE
        SYNTAX SEQUENCE OF QtechApIfNumberEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Access table of ap interface number." 
        ::= { qtechIfConfigMIBObjects 12 }
    
qtechApIfNumberEntry OBJECT-TYPE
        SYNTAX QtechApIfNumberEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Interfac number of ap." 
        INDEX { qtechApPhyAddress }
        ::= { qtechApIfNumberTable 1 }

QtechApIfNumberEntry ::=
        SEQUENCE {
            qtechApPhyAddress   PhysAddress,
            qtechApIfNumber     INTEGER,
            qtechApIfPhyIntNum  INTEGER
        }

qtechApPhyAddress OBJECT-TYPE
    SYNTAX PhysAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The ap's address at its protocol sub-layer.
        The ap's media-specific MIB must define the bit and byte
        ordering and the format of the value of this object.
        For interfaces which do not have such an address
        (e.g., a serial line), this object should contain an
        octet string of zero length."
    ::= { qtechApIfNumberEntry 1 }

qtechApIfNumber OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Vlaues Of interface number."
    ::= { qtechApIfNumberEntry 2 }
        
qtechApIfPhyIntNum OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Vlaues Of physical interface number."
    ::= { qtechApIfNumberEntry 3 }

--
--qtechApIfTable
--
qtechApIfTable OBJECT-TYPE
    SYNTAX SEQUENCE OF QtechApIfEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "A list of qtechAp interface entries.  The number of entries
        is given by the value of qtechApIfNumber."
    ::= { qtechIfConfigMIBObjects 13 }

qtechApIfEntry OBJECT-TYPE
    SYNTAX QtechApIfEntry
    MAX-ACCESS not-accessible
    STATUS current
    DESCRIPTION
        "An entry containing management information qtechApplicable
        to a particular interface."
    INDEX { 
           qtechApPhysAddress, 
           qtechApIfIndex 
    }
    ::= { qtechApIfTable 1 }

QtechApIfEntry ::= SEQUENCE {
    qtechApPhysAddress  PhysAddress,
    qtechApIfIndex IfIndex,
    qtechApIfDescr DisplayString,
    qtechApIfType IANAifType,
    qtechApIfMtu INTEGER,
    qtechApIfSpeed Gauge,
    qtechApIfPhysAddress PhysAddress,
    qtechApIfAdminStatus INTEGER,
    qtechApIfOperStatus INTEGER,
    qtechApIfLastChange TimeTicks,
    qtechApIfInOctets Counter64,
    qtechApIfInUcastPkts Counter64,
    qtechApIfInNUcastPkts Counter64,
    qtechApIfInDiscards Counter32,
    qtechApIfInErrors Counter32,
    qtechApIfInUnknownProtos Counter32,
    qtechApIfOutOctets Counter64,
    qtechApIfOutUcastPkts Counter64,
    qtechApIfOutNUcastPkts Counter64,
    qtechApIfOutDiscards Counter32,
    qtechApIfOutErrors Counter32,
    qtechApIfOutQLen Gauge,
    qtechApIfLinkUPTimes INTEGER,
    qtechApIfInDataOctets Counter64,
    qtechApIfOutDataOctets Counter64,
    qtechApIfMgmtUploadOctets Counter32,
    qtechApIfMgmtDownloadOctets Counter32,  
    qtechApIfSpeed_w Integer32,
    qtechApIfMtu_w Integer32,
    qtechApIfPhysAddress_w MacAddress,     
    qtechApIfInUcastPkts_w Counter32,
    qtechApIfInNUcastPkts_w Counter32,
    qtechApIfOutUcastPkts_w Counter32,
    qtechApIfOutNUcastPkts_w Counter32,
    qtechApIfLinkUPTimes_w Counter32,
    qtechApIfSpeedw Integer32,
    qtechApIfMtuw Integer32,
    qtechApIfPhysAddressw MacAddress,
    qtechApIfInUcastPktsw Counter32,
    qtechApIfInNUcastPktsw Counter32,
    qtechApIfOutUcastPktsw Counter32,
    qtechApIfOutNUcastPktsw Counter32,
    qtechApIfLinkUPTimesw Counter32,
    qtechApIfInPkts Counter64
    }

qtechApPhysAddress OBJECT-TYPE
    SYNTAX PhysAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The ap's address at its protocol sub-layer.
        The ap's media-specific MIB must define the bit and byte
        ordering and the format of the value of this object.
        For interfaces which do not have such an address
        (e.g., a serial line), this object should contain an
        octet string of zero length."
    ::= { qtechApIfEntry 1 }

qtechApIfIndex OBJECT-TYPE
    SYNTAX IfIndex
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "A unique value, greater than zero, for each
        interface.  It is recommended that values are assigned
        contiguously starting from 1.  The value for each
        interface sub-layer must remain constant at least from
        one re-initialization of the entity's network
        management system to the next re-initialization."
    ::= { qtechApIfEntry 2 }

qtechApIfDescr OBJECT-TYPE
    SYNTAX DisplayString(SIZE(0..255))
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "A textual string containing information about the
        interface.  This string should include the name of the
        manufacturer, the product name and the version of the
        interface hardware/software."
    ::= { qtechApIfEntry 3 }

qtechApIfType OBJECT-TYPE
    SYNTAX IANAifType
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The type of interface.  Additional values for ifType
        are assigned by the Internet Assigned Numbers
        Authority (IANA), through updating the syntax of the
        IANAifType textual convention."
    ::= { qtechApIfEntry 4 }

qtechApIfMtu OBJECT-TYPE
    SYNTAX INTEGER
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The size of the largest packet which can be
        sent/received on the interface, specified in octets.
        For interfaces that are used for transmitting network
        datagrams, this is the size of the largest network
        datagram that can be sent on the interface."
    ::= { qtechApIfEntry 5 }

qtechApIfSpeed OBJECT-TYPE
    SYNTAX Gauge
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "An estimate of the interface's current bandwidth in units of
        Mbits per second.  For interfaces which do not vary in
        bandwidth or for those where no accurate estimation
        can be made, this object should contain the nominal
        bandwidth.For a sub-layer which
        has no concept of bandwidth, this object should be
        zero."
    ::= { qtechApIfEntry 6 }

qtechApIfPhysAddress OBJECT-TYPE
    SYNTAX PhysAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The interface's address at its protocol sub-layer.
        For example, for an 802.x interface, this object
        normally contains a MAC address.  The interface's
        media-specific MIB must define the bit and byte
        ordering and the format of the value of this object.
        For interfaces which do not have such an address
        (e.g., a serial line), this object should contain an
        octet string of zero length."
    ::= { qtechApIfEntry 7 }

qtechApIfAdminStatus OBJECT-TYPE
    SYNTAX INTEGER {
        up(1),
        admindown(2),
        testing(3)
        }
    MAX-ACCESS read-write
    STATUS current
    DESCRIPTION
        "The desired state of the interface.  The testing(3)
        state indicates that no operational packets can be
        passed.  When a managed system initializes, all
        interfaces start with ifAdminStatus in the admindown(2)
        state.  As a result of either explicit management
        action or per configuration information retained by
        the managed system, ifAdminStatus is then changed to
        either the up(1) or testing(3) states (or remains in
        the admindown(2) state)."
    ::= { qtechApIfEntry 8 }

qtechApIfOperStatus OBJECT-TYPE
    SYNTAX INTEGER {
        up(1),
        down(2),
        admindown(3),
        unknown(4),
        dormant(5),
        notPresent(6),
        lowerLayerDown(7)
        }
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The current operational state of the interface.  
        If qtechApIfAdminStatus is admindown(2) then
        qtechApIfOperStatus should be admindown(3).  If qtechApIfAdminStatus is
        changed to up(1) then qtechApIfOperStatus should change to
        up(1) if the interface is ready to transmit and
        receive network traffic; it should change to
        dormant(5) if the interface is waiting for external
        actions (such as a serial line waiting for an incoming
        connection); it should remain in the down(2) state if
        and only if there is a fault that prevents it from
        going to the up(1) state; it should remain in the
        notPresent(6) state if the interface has missing
        (typically, hardware) components."
    ::= { qtechApIfEntry 9 }

qtechApIfLastChange OBJECT-TYPE
    SYNTAX TimeTicks
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The value of sysUpTime at the time the interface
        entered its current operational state.  If the current
        state was entered prior to the last re-initialization
        of the local network management subsystem, then this
        object contains a zero value."
    ::= { qtechApIfEntry 10 }

qtechApIfInOctets OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The total number of octets received on the interface,
        including framing characters.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 11 }

qtechApIfInUcastPkts OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of packets, delivered by this sub-layer to
        a higher (sub-)layer, which were not addressed to a
        multicast or broadcast address at this sub-layer.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 12 }

qtechApIfInNUcastPkts OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS deprecated
    DESCRIPTION
        "The number of packets, delivered by this sub-layer to
        a higher (sub-)layer, which were addressed to a
        multicast or broadcast address at this sub-layer.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime.
        
        This object is deprecated in favour of
        qtechApIfInMulticastPkts and qtechApIfInBroadcastPkts."
    ::= { qtechApIfEntry 13 }

qtechApIfInDiscards OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of inbound packets which were chosen to be
        discarded even though no errors had been detected to
        prevent their being deliverable to a higher-layer
        protocol.  One possible reason for discarding such a
        packet could be to free up buffer space.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 14 }

qtechApIfInErrors OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "For packet-oriented interfaces, the number of inbound
        packets that contained errors preventing them from
        being deliverable to a higher-layer protocol.  For
        character-oriented or fixed-length interfaces, the
        number of inbound transmission units that contained
        errors preventing them from being deliverable to a
        higher-layer protocol.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 15 }

qtechApIfInUnknownProtos OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "For packet-oriented interfaces, the number of packets
        received via the interface which were discarded
        because of an unknown or unsupported protocol.  For
        character-oriented or fixed-length interfaces that
        support protocol multiplexing the number of
        transmission units received via the interface which
        were discarded because of an unknown or unsupported
        protocol.  For any interface that does not support
        protocol multiplexing, this counter will always be 0.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 16 }

qtechApIfOutOctets OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The total number of octets transmitted out of the
        interface, including framing characters.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 17 }

qtechApIfOutUcastPkts OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The total number of packets that higher-level
        protocols requested be transmitted, and which were not
        addressed to a multicast or broadcast address at this
        sub-layer, including those that were discarded or not
        sent.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 18 }

qtechApIfOutNUcastPkts OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS deprecated
    DESCRIPTION
        "The total number of packets that higher-level
        protocols requested be transmitted, and which were
        addressed to a multicast or broadcast address at this
        sub-layer, including those that were discarded or not
        sent.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime.   
        This object is deprecated in favour of
        ifOutMulticastPkts and qtechApIfOutBroadcastPkts."
    ::= { qtechApIfEntry 19 }
    
qtechApIfOutDiscards OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of outbound packets which were chosen to
        be discarded even though no errors had been detected
        to prevent their being transmitted.  One possible
        reason for discarding such a packet could be to free
        up buffer space.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 20 }
    
qtechApIfOutErrors OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "For packet-oriented interfaces, the number of
        outbound packets that could not be transmitted because
        of errors.  For character-oriented or fixed-length
        interfaces, the number of outbound transmission units
        that could not be transmitted because of errors.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 21 }

qtechApIfOutQLen OBJECT-TYPE
    SYNTAX Gauge
    MAX-ACCESS read-only
    STATUS deprecated
    DESCRIPTION
        "The length of the output packet queue (in packets)."
    ::= { qtechApIfEntry 22 }

    
qtechApIfLinkUPTimes OBJECT-TYPE
        SYNTAX INTEGER
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Vlaues Of Linkup Times."
    ::= { qtechApIfEntry 23 }
       
qtechApIfInDataOctets OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The data octets received on the interface,
        including framing characters.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 24 }

qtechApIfOutDataOctets OBJECT-TYPE
    SYNTAX Counter64
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The data octets transmitted out of the
        interface, including framing characters.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 25 }
    
qtechApIfMgmtUploadOctets OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The upload octets received on the mgmt interface,
        including framing characters.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 26 }

qtechApIfMgmtDownloadOctets OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The download octets transmitted out of the
        mgmt interface, including framing characters.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 27 }

qtechApIfSpeedw OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "An estimate of the interface's current bandwidth in units of
        Mbits per second.  For interfaces which do not vary in
        bandwidth or for those where no accurate estimation
        can be made, this object should contain the nominal
        bandwidth. For a sub-layer which
        has no concept of bandwidth, this object should be
        zero."
    ::= { qtechApIfEntry 28 }

qtechApIfMtuw OBJECT-TYPE
    SYNTAX Integer32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The size of the largest packet which can be
        sent/received on the interface, specified in octets.
        For interfaces that are used for transmitting network
        datagrams, this is the size of the largest network
        datagram that can be sent on the interface."
    ::= { qtechApIfEntry 29 }
        
qtechApIfPhysAddressw OBJECT-TYPE
    SYNTAX MacAddress
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The interface's address at its protocol sub-layer.
        For example, for an 802.x interface, this object
        normally contains a MAC address.  The interface's
        media-specific MIB must define the bit and byte
        ordering and the format of the value of this object.
        For interfaces which do not have such an address
        (e.g., a serial line), this object should contain an
        octet string of zero length."
    ::= { qtechApIfEntry 30 }

qtechApIfInUcastPktsw OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The number of packets, delivered by this sub-layer to
        a higher (sub-)layer, which were not addressed to a
        multicast or broadcast address at this sub-layer.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 31 }

qtechApIfInNUcastPktsw OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS deprecated
    DESCRIPTION
        "The number of packets, delivered by this sub-layer to
        a higher (sub-)layer, which were addressed to a
        multicast or broadcast address at this sub-layer.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime.
        
        This object is deprecated in favour of
        qtechApIfInMulticastPkts and qtechApIfInBroadcastPkts."
    ::= { qtechApIfEntry 32 }

qtechApIfOutUcastPktsw OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "The total number of packets that higher-level
        protocols requested be transmitted, and which were not
        addressed to a multicast or broadcast address at this
        sub-layer, including those that were discarded or not
        sent.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 33 }

qtechApIfOutNUcastPktsw OBJECT-TYPE
    SYNTAX Counter32
    MAX-ACCESS read-only
    STATUS deprecated
    DESCRIPTION
        "The total number of packets that higher-level
        protocols requested be transmitted, and which were
        addressed to a multicast or broadcast address at this
        sub-layer, including those that were discarded or not
        sent.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime.   
        This object is deprecated in favour of
        ifOutMulticastPkts and qtechApIfOutBroadcastPkts."
    ::= { qtechApIfEntry 34 }

qtechApIfLinkUPTimesw OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "The counters of linkup and linkdown times of the interface."
    ::= { qtechApIfEntry 35 }
        
qtechApIfInPkts OBJECT-TYPE
        SYNTAX Counter64
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
        "The total number of packets received on the interface,
         including framing characters.
        
        Discontinuities in the value of this counter can occur
        at re-initialization of the management system, and at
        other times as indicated by the value of
        ifCounterDiscontinuityTime."
    ::= { qtechApIfEntry 36 }
        
qtechIfLinkTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechIfLinkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "A list of interface entries.  The number of entries is
            given by the value of ifNumber."
    ::= { qtechIfConfigMIBObjects 14 }

qtechIfLinkEntry OBJECT-TYPE
    SYNTAX      QtechIfLinkEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
            "An entry containing management information applicable to a
            particular interface."
    INDEX   { qtechIfLinkIndex }
    ::= { qtechIfLinkTable 1 }

QtechIfLinkEntry ::=
    SEQUENCE {
        qtechIfLinkIndex                   IfIndex,
        qtechIfUplinkInOctets              Counter32,
        qtechIfUplinkInUcastPkts           Counter32,
        qtechIfUplinkInNUcastPkts          Counter32,
        qtechIfUplinkInDiscards            Counter32,
        qtechIfUplinkInErrors              Counter32,
        qtechIfUplinkOutOctets             Counter32,
        qtechIfUplinkOutUcastPkts          Counter32,
        qtechIfUplinkOutNUcastPkts         Counter32,
        qtechIfUplinkOutDiscards           Counter32,
        qtechIfUplinkOutErrors             Counter32,
        qtechIfDownlinkInOctets            Counter32,
        qtechIfDownlinkInUcastPkts         Counter32,
        qtechIfDownlinkInNUcastPkts        Counter32,
        qtechIfDownlinkInDiscards          Counter32,
        qtechIfDownlinkInErrors            Counter32,
        qtechIfDownlinkOutOctets           Counter32,
        qtechIfDownlinkOutUcastPkts        Counter32,
        qtechIfDownlinkOutNUcastPkts       Counter32,
        qtechIfDownlinkOutDiscards         Counter32,
        qtechIfDownlinkOutErrors           Counter32,
        qtechIfUplinkInBcastPkts           Counter64,
        qtechIfUplinkOutBcastPkts          Counter64,
        qtechIfDownlinkInBcastPkts         Counter64,
        qtechIfDownlinkOutBcastPkts        Counter64
    }

qtechIfLinkIndex OBJECT-TYPE
    SYNTAX      IfIndex
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "A unique value, greater than zero, for each interface.  It
            is recommended that values are assigned contiguously
            starting from 1.  The value for each interface sub-layer
            must remain constant at least from one re-initialization of
            the entity's network management system to the next re-
            initialization."
    ::= { qtechIfLinkEntry 1 }

qtechIfUplinkInOctets OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of octets received on the interface,
            including framing characters.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 2 }

qtechIfUplinkInUcastPkts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of packets, delivered by this sub-layer to a
            higher (sub-)layer, which were not addressed to a multicast
            or broadcast address at this sub-layer.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 3 }

qtechIfUplinkInNUcastPkts OBJECT-TYPE
    SYNTAX  Counter32
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of packets, delivered by this sub-layer to a
            higher (sub-)layer, which were addressed to a multicast or
            broadcast address at this sub-layer.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime.

            This object is deprecated in favour of ifInMulticastPkts and
            ifInBroadcastPkts."
    ::= { qtechIfLinkEntry 4 }

qtechIfUplinkInDiscards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of inbound packets which were chosen to be
            discarded even though no errors had been detected to prevent
            their being deliverable to a higher-layer protocol.  One
            possible reason for discarding such a packet could be to
            free up buffer space.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 5 }

qtechIfUplinkInErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "For packet-oriented interfaces, the number of inbound
            packets that contained errors preventing them from being
            deliverable to a higher-layer protocol.  For character-
            oriented or fixed-length interfaces, the number of inbound
            transmission units that contained errors preventing them
            from being deliverable to a higher-layer protocol.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 6 }

qtechIfUplinkOutOctets OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of octets transmitted out of the
            interface, including framing characters.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 7 }

qtechIfUplinkOutUcastPkts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of packets that higher-level protocols
            requested be transmitted, and which were not addressed to a
            multicast or broadcast address at this sub-layer, including
            those that were discarded or not sent.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 8 }

qtechIfUplinkOutNUcastPkts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The total number of packets that higher-level protocols
            requested be transmitted, and which were addressed to a
            multicast or broadcast address at this sub-layer, including
            those that were discarded or not sent.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime.

            This object is deprecated in favour of ifOutMulticastPkts
            and ifOutBroadcastPkts."
    ::= { qtechIfLinkEntry 9 }

qtechIfUplinkOutDiscards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of outbound packets which were chosen to be
            discarded even though no errors had been detected to prevent
            their being transmitted.  One possible reason for discarding
            such a packet could be to free up buffer space.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 10 }

qtechIfUplinkOutErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "For packet-oriented interfaces, the number of outbound
            packets that could not be transmitted because of errors.
            For character-oriented or fixed-length interfaces, the
            number of outbound transmission units that could not be
            transmitted because of errors.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 11 }

qtechIfDownlinkInOctets OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of octets received on the interface,
            including framing characters.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 12 }

qtechIfDownlinkInUcastPkts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of packets, delivered by this sub-layer to a
            higher (sub-)layer, which were not addressed to a multicast
            or broadcast address at this sub-layer.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 13 }

qtechIfDownlinkInNUcastPkts OBJECT-TYPE
    SYNTAX  Counter32
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The number of packets, delivered by this sub-layer to a
            higher (sub-)layer, which were addressed to a multicast or
            broadcast address at this sub-layer.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime.

            This object is deprecated in favour of ifInMulticastPkts and
            ifInBroadcastPkts."
    ::= { qtechIfLinkEntry 14 }

qtechIfDownlinkInDiscards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of inbound packets which were chosen to be
            discarded even though no errors had been detected to prevent
            their being deliverable to a higher-layer protocol.  One
            possible reason for discarding such a packet could be to
            free up buffer space.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 15 }

qtechIfDownlinkInErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "For packet-oriented interfaces, the number of inbound
            packets that contained errors preventing them from being
            deliverable to a higher-layer protocol.  For character-
            oriented or fixed-length interfaces, the number of inbound
            transmission units that contained errors preventing them
            from being deliverable to a higher-layer protocol.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 16 }

qtechIfDownlinkOutOctets OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of octets transmitted out of the
            interface, including framing characters.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 17 }

qtechIfDownlinkOutUcastPkts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The total number of packets that higher-level protocols
            requested be transmitted, and which were not addressed to a
            multicast or broadcast address at this sub-layer, including
            those that were discarded or not sent.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 18 }

qtechIfDownlinkOutNUcastPkts OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      deprecated
    DESCRIPTION
            "The total number of packets that higher-level protocols
            requested be transmitted, and which were addressed to a
            multicast or broadcast address at this sub-layer, including
            those that were discarded or not sent.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime.

            This object is deprecated in favour of ifOutMulticastPkts
            and ifOutBroadcastPkts."
    ::= { qtechIfLinkEntry 19 }

qtechIfDownlinkOutDiscards OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of outbound packets which were chosen to be
            discarded even though no errors had been detected to prevent
            their being transmitted.  One possible reason for discarding
            such a packet could be to free up buffer space.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 20 }

qtechIfDownlinkOutErrors OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "For packet-oriented interfaces, the number of outbound
            packets that could not be transmitted because of errors.
            For character-oriented or fixed-length interfaces, the
            number of outbound transmission units that could not be
            transmitted because of errors.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 21 }

qtechIfUplinkInBcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
              "The number of upbound and inbound packets, delivered by this 
            sub-layer to a higher (sub-)layer, which were addressed to a 
            broadcast address at this sub-layer.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 22 }

qtechIfUplinkOutBcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of upbound and outbound packets, delivered by this 
            sub-layer to a higher (sub-)layer, which were addressed to a 
            broadcast address at this sub-layer.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 23 }
	
qtechIfDownlinkInBcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of downbound and inbound packets, delivered by this 
            sub-layer to a higher (sub-)layer, which were addressed to a 
            broadcast address at this sub-layer.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 24 }
	
qtechIfDownlinkOutBcastPkts OBJECT-TYPE
    SYNTAX      Counter64
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
            "The number of downbound and outbound packets, delivered by this 
            sub-layer to a higher (sub-)layer, which were addressed to a 
            broadcast address at this sub-layer.

            Discontinuities in the value of this counter can occur at
            re-initialization of the management system, and at other
            times as indicated by the value of
            ifCounterDiscontinuityTime."
    ::= { qtechIfLinkEntry 25 }

-- interface traffic statistics, added by Yin Xiaojie, March 2013

qtechIfTrafficStatisticsObjects     OBJECT IDENTIFIER ::= { qtechIfConfigMIBObjects 15 }
qtechIfLinkTrafficStatistics        OBJECT IDENTIFIER ::= { qtechIfTrafficStatisticsObjects 1 }
qtechIfLinkQosStatistics            OBJECT IDENTIFIER ::= { qtechIfTrafficStatisticsObjects 2 }
qtechIfDeviceTrafficStatistics      OBJECT IDENTIFIER ::= { qtechIfTrafficStatisticsObjects 3 }
	
-- units of LinkTrafficStatistics
       qtechIfLinkTrafficTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF QtechIfLinkTrafficEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A table of link traffic statistics, including interface rate and bandwidth utilization."
       ::= { qtechIfLinkTrafficStatistics 1 }

       qtechIfLinkTrafficEntry OBJECT-TYPE
       SYNTAX      QtechIfLinkTrafficEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "The link traffic statistics entry."
       INDEX { qtechIfLinkTrafficIndex }
       ::= { qtechIfLinkTrafficTable 1 }

       QtechIfLinkTrafficEntry ::=
       SEQUENCE {
           qtechIfLinkTrafficIndex         Unsigned32,
           qtechIfLinkAvgRate              Counter32,
           qtechIfLinkPeakRate             Counter32,
           qtechIfLinkAvgBWUtilization     INTEGER,
           qtechIfLinkPeakBWUtilization    INTEGER
       }
       
       qtechIfLinkTrafficIndex OBJECT-TYPE
       SYNTAX        Unsigned32 
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
           "The link traffic interface index."
       ::= { qtechIfLinkTrafficEntry 1 }
       
       qtechIfLinkAvgRate OBJECT-TYPE
       SYNTAX        Counter32 
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
           "An estimate of the interface's average bandwidth in units of bits per second." 
       DEFVAL { 0 }
       ::= { qtechIfLinkTrafficEntry 2 }
		
       qtechIfLinkPeakRate OBJECT-TYPE
       SYNTAX        Counter32
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
           "An estimate of the interface's current peak bandwidth in units of bits per second."
       DEFVAL { 0 }
       ::= { qtechIfLinkTrafficEntry 3 }

       qtechIfLinkAvgBWUtilization OBJECT-TYPE
       SYNTAX       INTEGER 
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
           "An estimate of the interface's average bandwidth Utilization." 
       DEFVAL { 0 }
       ::= { qtechIfLinkTrafficEntry 4 }
        
       qtechIfLinkPeakBWUtilization OBJECT-TYPE
       SYNTAX       INTEGER 
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
           "An estimate of the interface's current peak bandwidth Utilization." 
       DEFVAL { 0 }
       ::= { qtechIfLinkTrafficEntry 5 }
        
-- units of LinkQosStatistics

        qtechLinkQosCtlTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechLinkQosCtlEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The results of these operations are stored in the qtechLinkQosResultsTable"
        ::= { qtechIfLinkQosStatistics 1 }

        qtechLinkQosCtlEntry OBJECT-TYPE
        SYNTAX      QtechLinkQosCtlEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Defines an entry in the qtechLinkQosCtlTable.  The first index
           element, qtechLinkQosCtlOwnerIndex, is of type SnmpAdminString,
           a textual convention that allows for use of the SNMPv3
           View-Based Access Control Model (RFC 3415, VACM)
           and that allows a management application to identify its
           entries.  The second index, qtechLinkQosCtlTestName (also an
           SnmpAdminString), enables the same management
           application to have multiple outstanding requests."
        INDEX {
                 qtechLinkQosCtlOwnerIndex,
                 qtechLinkQosCtlTestName
              }
        ::= { qtechLinkQosCtlTable 1 }

        QtechLinkQosCtlEntry ::=
        SEQUENCE {
            qtechLinkQosCtlOwnerIndex             SnmpAdminString,
            qtechLinkQosCtlTestName               SnmpAdminString,
            qtechLinkQosCtlTargetAddressType      InetAddressType,
            qtechLinkQosCtlTargetAddress          InetAddress, 
            qtechLinkQosCtlAdminStatus            INTEGER,
            qtechLinkQosCtlRowStatus              RowStatus
        }

        qtechLinkQosCtlOwnerIndex OBJECT-TYPE
        SYNTAX      SnmpAdminString (SIZE(0..32))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
           "To facilitate the provisioning of access control by a
          security administrator using the View-Based Access
          Control Model (RFC 2575, VACM) for tables in which
          multiple users may need to create or
          modify entries independently, the initial index is used
          as an 'owner index'.  Such an initial index has a syntax
          of SnmpAdminString and can thus be trivially mapped to a
          securityName or groupName defined in VACM, in
          accordance with a security policy."
        ::= { qtechLinkQosCtlEntry 1 }
       
        qtechLinkQosCtlTestName OBJECT-TYPE
        SYNTAX      SnmpAdminString (SIZE(0..32))
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The name of the ping-based test.  This is locally unique, 
            within the scope of a qtechLinkQosCtlOwnerIndex."
        ::= { qtechLinkQosCtlEntry 2 }

        qtechLinkQosCtlTargetAddressType OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Specifies the type of host address to be used at a remote
            host for performing a ping-based operation."
        DEFVAL { unknown }
        ::= { qtechLinkQosCtlEntry 3 }

        qtechLinkQosCtlTargetAddress OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Specifies the host address to be used at a remote host for
            performing a ping-based operation.  The host address type is
            determined by the value of the corresponding
            qtechLinkQosCtlTargetAddressType."
        DEFVAL { ''H }
        ::= { qtechLinkQosCtlEntry 4 }

        qtechLinkQosCtlAdminStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                             enabled(1), -- test should be started
                             disabled(2) -- test should be stopped
                           }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
           "Reflects the desired state that a qtechLinkQosCtlEntry should be
           in:
              enabled(1)  - Attempt to activate the test as defined by
                            this qtechLinkQosCtlEntry.
              disabled(2) - Deactivate the test as defined by this
                            qtechLinkQosCtlEntry.

           Refer to the corresponding qtechLinkQosResultsOperStatus to
           determine the operational state of the test defined by
           this entry."
        DEFVAL { disabled }
        ::= { qtechLinkQosCtlEntry 5 }

        qtechLinkQosCtlRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "This variable is used to create, modify, and/or
             delete a row in this table."
        REFERENCE
            "See definition of RowStatus in RFC 2579, 'Textual
            Conventions for SMIv2.'"
        ::= { qtechLinkQosCtlEntry 6 }

   -- Results Table
        qtechLinkQosResultsTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF QtechLinkQosResultsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The results of these operations are stored in the qtechLinkQosResultsTable."
        ::= { qtechIfLinkQosStatistics 2 }

        qtechLinkQosResultsEntry OBJECT-TYPE
        SYNTAX      QtechLinkQosResultsEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Defines an entry in the qtechLinkQosResultsTable.  The
            qtechLinkQosResultsTable has the same indexing as the
            qtechLinkQosCtlTable so that a qtechLinkQosResultsEntry
            corresponds to the qtechLinkQosCtlEntry that caused it to
            be created."
        INDEX {
                 qtechLinkQosCtlOwnerIndex,
                 qtechLinkQosCtlTestName
              }
        ::= { qtechLinkQosResultsTable 1 }

        QtechLinkQosResultsEntry ::=
        SEQUENCE {
           qtechLinkQosResultsOperStatus          INTEGER,
           qtechLinkQosResultsIpTargetAddressType InetAddressType,
           qtechLinkQosResultsIpTargetAddress     InetAddress,
           qtechLinkQosResultsMaxRtt              Unsigned32,
           qtechLinkQosResultsMinRtt              Unsigned32,
           qtechLinkQosResultsAverageRtt          Unsigned32,
           qtechLinkQosResultsDelayJitter         Unsigned32,
           qtechLinkQosResultsPktsLossRate        Unsigned32,
           qtechLinkQosResultsNetworkAF           Unsigned32
        }

        qtechLinkQosResultsOperStatus OBJECT-TYPE
        SYNTAX      INTEGER {
                             enabled(1),   -- test is in progress
                             disabled(2),  -- test has stopped
                             completed(3)  -- test is completed
                           }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Reflects the operational state of a qtechLinkQosCtlEntry:
              enabled(1)    - Test is active.
              disabled(2)   - Test has stopped.
              completed(3)  - Test is completed."
        ::= { qtechLinkQosResultsEntry 1 }

        qtechLinkQosResultsIpTargetAddressType OBJECT-TYPE
        SYNTAX      InetAddressType
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object indicates the type of address stored in the 
            corresponding qtechLinkQosResultsIpTargetAddress object."
        DEFVAL { unknown }
        ::= { qtechLinkQosResultsEntry 2 }

        qtechLinkQosResultsIpTargetAddress OBJECT-TYPE
        SYNTAX      InetAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object reports the IP address associated with a 
            qtechLinkQosCtlTargetAddress value when the destination
            address is specified as a DNS name.  The value of this 
            object should be a zero-length octet string when a DNS 
            name is not specified or when a specified DNS name fails
            to resolve.

            The address type (InetAddressType) that relates to
            this object is specified by the corresponding value
            of qtechLinkQosResultsIpTargetAddressType."
        DEFVAL { ''H }
        ::= { qtechLinkQosResultsEntry 3 }

        qtechLinkQosResultsMaxRtt OBJECT-TYPE
        SYNTAX      Unsigned32
        UNITS       "milliseconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The maximum packet round-trip-time (RTT) that received. A value
            of 0 for this object implies that no RTT has been received."
        ::= { qtechLinkQosResultsEntry 4 }

        qtechLinkQosResultsMinRtt OBJECT-TYPE
        SYNTAX      Unsigned32
        UNITS       "milliseconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The minimum packet round-trip-time (RTT) that received. A value
            of 0 for this object implies that no RTT has been received."
        ::= { qtechLinkQosResultsEntry 5 }

        qtechLinkQosResultsAverageRtt OBJECT-TYPE
        SYNTAX      Unsigned32
        UNITS       "milliseconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The current average packet round-trip-time (RTT)."
        ::= { qtechLinkQosResultsEntry 6 }

        qtechLinkQosResultsDelayJitter OBJECT-TYPE
        SYNTAX      Unsigned32
        UNITS       "milliseconds"
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "This object contains the sum of the squares for all ping
            responses received.  Its purpose is to enable standard
            deviation calculation. The estimate value of the delay jitter."
        ::= { qtechLinkQosResultsEntry 7 } 
       
        qtechLinkQosResultsPktsLossRate OBJECT-TYPE
        SYNTAX      Unsigned32     
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The packets loss rate of the link."
        ::= { qtechLinkQosResultsEntry 8 }

        qtechLinkQosResultsNetworkAF  OBJECT-TYPE
        SYNTAX       Unsigned32 
        MAX-ACCESS   read-only
        STATUS       current
        DESCRIPTION
            "The network availability factor." 
        ::= { qtechLinkQosResultsEntry 9 }
        
-- units of DeviceTrafficStatistics
       qtechIfDeviceTrafficTable OBJECT-TYPE
       SYNTAX      SEQUENCE OF QtechIfDeviceTrafficEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "A table of device traffic statistics."
       ::= { qtechIfDeviceTrafficStatistics 1 }

       qtechIfDeviceTrafficEntry OBJECT-TYPE
       SYNTAX      QtechIfDeviceTrafficEntry
       MAX-ACCESS  not-accessible
       STATUS      current
       DESCRIPTION
           "Device traffic statistics entry"
       INDEX { qtechIfDeviceTrafficIndex }
       ::= { qtechIfDeviceTrafficTable 1 }

       QtechIfDeviceTrafficEntry ::=
       SEQUENCE {
           qtechIfDeviceTrafficIndex       Unsigned32,
           qtechIfFC                       INTEGER,
           qtechIfFCTransRate              Counter32,
           qtechIfFCTransPktsNum           Counter64,
           qtechIfFCDiscardRate            Counter32,
           qtechIfFCDiscardPktsNum         Counter64,
           qtechIfFCPktsLossRate           INTEGER,
           qtechIfFCBandwidthRate          Counter32,
           qtechIfFCBandwidthPercentage    INTEGER,
           qtechIfDeviceFCGathers          INTEGER,
           qtechIfFullMeshFCGathers        INTEGER,
           qtechIfClassBasedGathers        INTEGER,
           qtechIfNodeBasedGathers         INTEGER,
           qtechIfNodeClassBasedGathers    INTEGER,
           qtechIfNodeFCBasedGathers       INTEGER,
           qtechIfNodeDeviceFCBasedGathers INTEGER
       }
       
       qtechIfDeviceTrafficIndex OBJECT-TYPE
       SYNTAX        Unsigned32 
       MAX-ACCESS    read-only
       STATUS        current
       DESCRIPTION
           "The device traffic interface index."
       ::= { qtechIfDeviceTrafficEntry 1 }

       qtechIfFC OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   
           "The FC type. 
            2--BASE_X_10
            4--BASE_X_100
            6--BASE_X_1000
            8--BASE_X_10000
            9--BASE_ERROR"
       ::= { qtechIfDeviceTrafficEntry 2 }
        
       qtechIfFCTransRate OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "The transmission rate of the FC."
       ::= { qtechIfDeviceTrafficEntry 3 }
        
       qtechIfFCTransPktsNum OBJECT-TYPE
       SYNTAX       Counter64
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "The transmission packets number of the FC."
       ::= { qtechIfDeviceTrafficEntry 4 } 
        
       qtechIfFCDiscardRate OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "The discard rate of the FC."
       ::= { qtechIfDeviceTrafficEntry 5 }
        
       qtechIfFCDiscardPktsNum OBJECT-TYPE
       SYNTAX       Counter64
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "The discard packets number of the FC."
       ::= { qtechIfDeviceTrafficEntry 6 }
        
       qtechIfFCPktsLossRate OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "The packets loss rate of the FC."
       ::= { qtechIfDeviceTrafficEntry 7 } 
        
       qtechIfFCBandwidthRate OBJECT-TYPE
       SYNTAX       Counter32
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "The bandwidth rate of the FC."
       ::= { qtechIfDeviceTrafficEntry 8 }
        
       qtechIfFCBandwidthPercentage OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "The bandwidth percentage of the FC."
       ::= { qtechIfDeviceTrafficEntry 9 }        
        
       qtechIfDeviceFCGathers OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "Gathers of the device FC."
       ::= { qtechIfDeviceTrafficEntry 10 }
        
       qtechIfFullMeshFCGathers OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "Gathers of the whole network FC."
       ::= { qtechIfDeviceTrafficEntry 11 }
        
       qtechIfClassBasedGathers OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "Class-based Gathers."
       ::= { qtechIfDeviceTrafficEntry 12 } 
        
       qtechIfNodeBasedGathers OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "Node-based Gathers."
       ::= { qtechIfDeviceTrafficEntry 13 }
        
       qtechIfNodeClassBasedGathers OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "Node&class-based Gathers."
       ::= { qtechIfDeviceTrafficEntry 14 }
        
       qtechIfNodeFCBasedGathers OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "Node&FC-based Gathers."
       ::= { qtechIfDeviceTrafficEntry 15 }
        
       qtechIfNodeDeviceFCBasedGathers OBJECT-TYPE
       SYNTAX       INTEGER
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION   "Node&device&FC-based Gathers."
       ::= { qtechIfDeviceTrafficEntry 16 }


-- Notification
qtechInterfaceTraps      OBJECT IDENTIFIER ::= { qtechInterfaceMIB 2 }
                                 
lineDetectStatus OBJECT-TYPE
        SYNTAX INTEGER{
            ok(1),       --line has restored to normal state 
            open(2),     --a break in the line 
            short(3)     --short circuit in the line             
        }
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
          "The type of storm of interface"
        ::= { qtechInterfaceTraps 1 }
        
lineDetectPosition OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS accessible-for-notify
        STATUS current
        DESCRIPTION
          "Location where the break or short circuit in the line happens
           (Distance from the switch port, in metre.)" 
        ::= { qtechInterfaceTraps 2 }        
        
lineQualityDetect NOTIFICATION-TYPE
    OBJECTS {ifIndex, lineDetectStatus,lineDetectPosition}
    STATUS  current
    DESCRIPTION
            "The notification of discovering a break or short circuit in the line,
             or restoring the line to the normal state." 
    ::= { qtechInterfaceTraps 3 }        
                                     
qtechInterfaceMIBConformance OBJECT IDENTIFIER ::= { qtechInterfaceMIB 3 }
qtechInterfaceMIBCompliances OBJECT IDENTIFIER ::= { qtechInterfaceMIBConformance 1 }
qtechInterfaceMIBGroups      OBJECT IDENTIFIER ::= { qtechInterfaceMIBConformance 2 }


-- compliance statements

qtechInterfaceMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Qtech Interface MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { qtechInterfaceMIBGroup
                 }

    GROUP qtechPortTypeChooseMibGroup
    DESCRIPTION  
                     "This group is mandatory when system supports optional port type."  

                GROUP qtechIfMTUMibGroup
    DESCRIPTION  
                     "This group is mandatory when system supports MTU setting."  

        GROUP qtechIfLineDetectGroup
    DESCRIPTION  
                     "This group is mandatory when system supports line quality detection."                  
                     
        GROUP qtechIfAvailableBWMibGroup
        DESCRIPTION  
                     "This group is mandatory when system supports available bandwidth getting."                   
        ::= { qtechInterfaceMIBCompliances 1 }
                
-- units of conformance

qtechInterfaceMIBGroup OBJECT-GROUP
        OBJECTS {
            qtechIfIndex,
            qtechIfPortType,
            qtechIfFlowControlAdminStatus,
            qtechIfFlowControlOperStatus,
            qtechIfAdminSpeed,
            qtechIfAdminDuplex,
            qtechIfOperSpeed,
            qtechIfOperDuplex,
            qtechIfManageStatus,
            qtechIfIpBroadcast,
            qtechIfLayer,
            qtechIfMode,
            qtechIfCounterClear,
            qtechIfEntryStatus,
            qtechIfMediumType,
            qtechIfDownCounter,
            qtechIfInOctets,
            qtechIfOutOctets,
            qtechIfBcastInhibit,
            qtechIfNegotiation,
            qtechIfPhysAddress,
            qtechIfAdminSpeedRW,
            qtechIfAdminDuplexRW,
            qtechIfModeRW,
            qtechIfSpeed,
            qtechifAdminStatus,
            qtechifOperStatus,
            qtechIfInNUcastPkts,
            qtechIfOutNUcastPkts,
            qtechIfUpDownTimes,
            qtechifAdminStatusw,
            qtechifOperStatusw, 
            qtechifSpeedw,    
            qtechifMacAddress, 
            qtechifLastChange,
            qtechIfInPkts,
            qtechIfDiscard,
            qtechIfBandwidthUsage,
            qtechIfInBitsRate,
            qtechIfInPktRate,
            qtechIfOutBitsRate,
            qtechIfOutPktRate,
            qtechIfIpIfIndex,
            qtechIfIpId,
            qtechIfIp,
            qtechIfIpMask,
            qtechIfIpEntryStatus,
            qtechIfStatusIndex,
            qtechIfStatusLoopBackExamine,
            qtechIfErrorStatus,
            qtechGlobalIfDisableRecovery,
            qtechIfSVICreatVlanNum,
            qtechIfHandleSVI,
            qtechIfEncapsulationIndex,
            qtechIfEncapsulationVlan,
            qtechApPhyAddress,
            qtechApIfNumber,
            qtechApIfPhyIntNum,
            qtechApPhysAddress,
            qtechApIfIndex,
            qtechApIfDescr,
            qtechApIfType,
            qtechApIfMtu,
            qtechApIfSpeed,
            qtechApIfPhysAddress,
            qtechApIfAdminStatus,
            qtechApIfOperStatus,
            qtechApIfLastChange,
            qtechApIfInOctets,
            qtechApIfInUcastPkts,
            qtechApIfInNUcastPkts,
            qtechApIfInDiscards,
            qtechApIfInErrors,
            qtechApIfInUnknownProtos,
            qtechApIfOutOctets,
            qtechApIfOutUcastPkts,
            qtechApIfOutNUcastPkts,
            qtechApIfOutDiscards,
            qtechApIfOutErrors,
            qtechApIfOutQLen,
            qtechApIfLinkUPTimes,
            qtechApIfInDataOctets,
            qtechApIfOutDataOctets,
            qtechApIfMgmtUploadOctets,
            qtechApIfMgmtDownloadOctets,
            qtechApIfSpeedw,
            qtechApIfMtuw,
            qtechApIfPhysAddressw,     
            qtechApIfInUcastPktsw,
   	    qtechApIfInNUcastPktsw,
   	    qtechApIfOutUcastPktsw,
            qtechApIfOutNUcastPktsw,
            qtechApIfLinkUPTimesw,
            qtechApIfInPkts,
            qtechIfLinkIndex,
            qtechIfUplinkInOctets,
            qtechIfUplinkInUcastPkts,
            qtechIfUplinkInNUcastPkts,
            qtechIfUplinkInDiscards,
            qtechIfUplinkInErrors,
            qtechIfUplinkOutOctets,
            qtechIfUplinkOutUcastPkts,
            qtechIfUplinkOutNUcastPkts,
            qtechIfUplinkOutDiscards,
            qtechIfUplinkOutErrors,
            qtechIfDownlinkInOctets,
            qtechIfDownlinkInUcastPkts,
            qtechIfDownlinkInNUcastPkts,
            qtechIfDownlinkInDiscards,
            qtechIfDownlinkInErrors,
            qtechIfDownlinkOutOctets,
            qtechIfDownlinkOutUcastPkts,
            qtechIfDownlinkOutNUcastPkts,
            qtechIfDownlinkOutDiscards,
            qtechIfDownlinkOutErrors,
            qtechIfUplinkInBcastPkts,
            qtechIfUplinkOutBcastPkts,
            qtechIfDownlinkInBcastPkts,
            qtechIfDownlinkOutBcastPkts
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing interface basic configure ."
        ::= { qtechInterfaceMIBGroups 1 }         
                
qtechPortTypeChooseMibGroup OBJECT-GROUP
        OBJECTS {
            qtechPortTypeChooseIndex,
            qtechPortTypeChooseType
        }
        STATUS  current
        DESCRIPTION
                "Information collection of choosing port type." 
        ::= { qtechInterfaceMIBGroups 2 }         
                

qtechIfMTUMibGroup OBJECT-GROUP
        OBJECTS {
            qtechIfMTUIndex,
            qtechIfMTU
        }
        STATUS  current
        DESCRIPTION
                "Interface MTU information collection." 
        ::= { qtechInterfaceMIBGroups 3 }         
                
qtechIfLineDetectGroup OBJECT-GROUP
        OBJECTS {
            qtechIfLineDetect
        }
        STATUS  current
        DESCRIPTION
                "Information collection of line quality detection." 
        ::= { qtechInterfaceMIBGroups 4 }           
                
qtechIfAvailableBWMibGroup OBJECT-GROUP
        OBJECTS {
            qtechIfAvailableBWIfIndex,
            qtechIfAvailableBWIfBW
        }
        STATUS  current
        DESCRIPTION
                "Interface available bandwidth information collection." 
        ::= { qtechInterfaceMIBGroups 5 }     

END
