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

QTECH-TIME-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        Integer32
                FROM SNMPv2-SMI
        DisplayString,
        RowStatus,
        DateAndTime
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP
                FROM SNMPv2-CONF
        qtechMgmt
                FROM QTECH-SMI;

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

                E-mail: service@qtech.com.cn"
        DESCRIPTION
                "This module defines qtech time mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { qtechMgmt 15}

qtechTimeMIBObjects OBJECT IDENTIFIER ::= { qtechTimeMIB 1 }

qtechClockDateAndTime OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "The current local date and time for the system.

        Setting this object is equivalent to setting an automated
        clock and calendar.  The value of the object will track the
        date and time from the value set.  Note that due to hardware
        limitations some systems may not be able to preserve such
        meaning across reboots of the system, as indicated by
        csyClockLostOnReboot.

        A constant value of all zeros and length 8 indicates the
        system is not aware of the present date and time."
    ::= { qtechTimeMIBObjects 1 }

qtechClockWeek OBJECT-TYPE
    SYNTAX      INTEGER(1..7)
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "This value indicate that which day currunt time of system indicate. e.g. 
         1 indicate Monday7 indicate Sunday"
    ::= { qtechTimeMIBObjects 2 }    
    

qtechTimeRangeMIBObjects OBJECT IDENTIFIER ::= { qtechTimeMIB 2}

--
-- Time/scheduling range filter table
--

qtechTimeRangeTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechTimeRangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines a table of filters which can be used to effectively
         enable or disable policies based on a valid time range."
    ::= { qtechTimeRangeMIBObjects 1}

qtechTimeRangeEntry OBJECT-TYPE
    SYNTAX      QtechTimeRangeEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row describing a given time range for which a policy may be
         filtered on to place the rule active or inactive."
    INDEX   { qtechTimeRangeName }
    ::= { qtechTimeRangeTable 1 }

QtechTimeRangeEntry ::= SEQUENCE {
    qtechTimeRangeName                 DisplayString,
    qtechTimeRangePeriodQtech          DateAndTime,
    qtechTimeRangePeriodEnd            DateAndTime,
    qtechTimeRangeRowStatus            RowStatus
}

qtechTimeRangeName OBJECT-TYPE
    SYNTAX      DisplayString(SIZE (1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "An administratively assigned name for this time range.
         This value is unique for every entry
         When this string be used as an index,Value of a sub-identifier equal 
         ASCII value of corresponding character(first sub-identifier corresponds
         first character of string). The number of sub-identifiers of this string
         must be 32,If length of string is less than 32 the sub-identifier(0x0) 
         will be filled in tail."
    ::= { qtechTimeRangeEntry 1 }


qtechTimeRangePeriodQtech OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The qteching time period for this filter.  In addition to a
         normal DateAndTime string, this object may be set to the
         OCTET STRING value THISANDPRIOR which indicates that the
         filter is valid from any time before now up until (at least)
         now."
    DEFVAL { '0000010100000000'H }
    ::= { qtechTimeRangeEntry 2 }

qtechTimeRangePeriodEnd OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The ending time period for this filter.  In addition to a
         normal DateAndTime string, this object may be set to the
         OCTET STRING value THISANDFUTURE which indicates that the
         filter is valid without an ending date and/or time."
    DEFVAL { '9999123123595909'H }
    ::= { qtechTimeRangeEntry 3 }

qtechTimeRangeRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the conceptual status of this row."
    ::= { qtechTimeRangeEntry 4 }


--
-- Time range periodic filter table
--

qtechTimeRangePeriodicTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF QtechTimeRangePeriodicEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Defines a table of periodic time filters in the time-range."
    ::= { qtechTimeRangeMIBObjects 2 }

qtechTimeRangePeriodicEntry OBJECT-TYPE
    SYNTAX      QtechTimeRangePeriodicEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A row describing a given periodic time limit for the time-range."
    INDEX   { qtechTimeRangePeriodicTRName }
    ::= { qtechTimeRangePeriodicTable 1 }

QtechTimeRangePeriodicEntry ::= SEQUENCE {
    qtechTimeRangePeriodicTRName               DisplayString,
    qtechTimeRangePeriodicIndex                Integer32,
    qtechTimeRangePeriodicType                 INTEGER, 
    qtechTimeRangePeriodicQtechWeekDay            OCTET STRING,
    qtechTimeRangePeriodicEndWeekDay           INTEGER,
    qtechTimeRangePeriodicTimeOfDayQtech          DateAndTime,
    qtechTimeRangePeriodicTimeOfDayEnd         DateAndTime,
    qtechTimeRangePeriodicRowStatus            RowStatus
}

qtechTimeRangePeriodicTRName OBJECT-TYPE
    SYNTAX      DisplayString (SIZE(1..32))
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Time-range name which this periodic time filter belong to.
         This value is unique for every entry
         When this string be used as an index,Value of a sub-identifier equal 
         ASCII value of corresponding character(first sub-identifier corresponds
         first character of string). The number of sub-identifiers of this string
         must be 32,If length of string is less than 32 the sub-identifier(0x0) 
         will be filled in tail."
    ::= { qtechTimeRangePeriodicEntry 1 }

qtechTimeRangePeriodicIndex OBJECT-TYPE
        SYNTAX Integer32(1..65535)
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
               "Object which specifies a unique entry in the qtechTimeRangePeriodicTable. 
                A management station wishing to initiate a entry operation should use a
                pseudo-random value for this object when creating
                or modifying an instance of a entry.
                
                The RowStatus semantics of the entry object will prevent access conflicts."
        ::= { qtechTimeRangePeriodicEntry 2 }
        
qtechTimeRangePeriodicType OBJECT-TYPE
        SYNTAX INTEGER{
              fixed-segment(1),   -- Fixed time period, defined by the entry, which is in one or several days. 
              unfixed-segment(2)  -- Unfixed time period, defined by the entry, which is one or several days in a week. 
        }
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
               "Type defined by the time period in the entry." 
        ::= { qtechTimeRangePeriodicEntry 3 }        

qtechTimeRangePeriodicQtechWeekDay OBJECT-TYPE
    SYNTAX      OCTET STRING (SIZE(1))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
         "The start day in a week of the time period. Every bit in this byte stands for one day in 
          a week. The lowest bit(the 1st bit from the right) stands for monday. One by one to the left 
          Tuesday, wednesday,thursday, friday,saturday, sunday are. The highest bit(the 1st bit from the left)
          always be 0. 1 means the day represented by the bit is included."
    DEFVAL {'fe'H}
    ::= { qtechTimeRangePeriodicEntry 4 }

qtechTimeRangePeriodicEndWeekDay OBJECT-TYPE
    SYNTAX      INTEGER{
                       monday(1), tuesday(2), wednesday(3),
                       thursday(4), friday(5), saturday(6),
                       sunday(7)                            
                }
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The end day in a week of the time period. When qtechTimeRangePeriodicType is 'fixed-segment',
         this field is insignificant."
    ::= { qtechTimeRangePeriodicEntry 5 }
    
qtechTimeRangePeriodicTimeOfDayQtech OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The start time of the time period. In fact, only time in DateAndTime is meaningful."
    ::= { qtechTimeRangePeriodicEntry 6 }

qtechTimeRangePeriodicTimeOfDayEnd OBJECT-TYPE
    SYNTAX      DateAndTime
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The end time of the time period. In fact, only time in DateAndTime is meaningful."
     ::= { qtechTimeRangePeriodicEntry 7 }

qtechTimeRangePeriodicRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object indicates the conceptual status of this row"
    ::= { qtechTimeRangePeriodicEntry 8 }

qtechTimeMIBConformance OBJECT IDENTIFIER ::= { qtechTimeMIB 3 }
qtechTimeMIBCompliances OBJECT IDENTIFIER ::= { qtechTimeMIBConformance 1 }
qtechTimeMIBGroups      OBJECT IDENTIFIER ::= { qtechTimeMIBConformance 2 }


-- compliance statements

qtechTimeMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the Qtech Time MIB"
        MODULE  -- this module
                GROUP qtechTimeMIBGroup
                DESCRIPTION
                  "This group is mandatory for device which support RTC."                  
                GROUP qtechTimeRangeMIBGroup
                DESCRIPTION
                  "This group is mandatory for device which support RTC or NTP/SNTP."                
                
        ::= { qtechTimeMIBCompliances 1 }
                
-- units of conformance

qtechTimeMIBGroup OBJECT-GROUP
        OBJECTS {
               qtechClockDateAndTime, 
               qtechClockWeek
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing time information."
        ::= { qtechTimeMIBGroups 1 } 
        
qtechTimeRangeMIBGroup OBJECT-GROUP
        OBJECTS {
          qtechTimeRangePeriodicIndex          ,
          qtechTimeRangePeriodicType           ,
          qtechTimeRangePeriodicQtechWeekDay   ,
          qtechTimeRangePeriodicEndWeekDay     ,
          qtechTimeRangePeriodicTimeOfDayQtech ,
          qtechTimeRangePeriodicTimeOfDayEnd   ,
          qtechTimeRangePeriodicRowStatus       
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing time-range function."
        ::= { qtechTimeMIBGroups 2 }        
  
END
