   TIMER-CONTROL-MIB DEFINITIONS ::= BEGIN


   IMPORTS
              MODULE-IDENTITY, OBJECT-TYPE, Integer32
                      FROM SNMPv2-SMI
              RowStatus
                      FROM SNMPv2-TC
              MODULE-COMPLIANCE, OBJECT-GROUP
                      FROM SNMPv2-CONF
              SnmpAdminString
                      FROM SNMP-FRAMEWORK-MIB
              ng700smartswitch
                      FROM NETGEAR-REF-MIB;

      timerControl MODULE-IDENTITY


           LAST-UPDATED    "200912020000Z"  -- December 02, 2009
           ORGANIZATION    "Netgear"
           CONTACT-INFO
           " "

          DESCRIPTION
                "The MIB module for the Timer Control feature."


          REVISION    "200912020000Z"  -- December 02, 2009
          DESCRIPTION "Initial version, published as RFC yyyy."
   -- RFC Ed.: replace yyyy with actual RFC number & remove this notice

          ::= { ng700smartswitch 1025 }
   -- RFC Ed.: replace XXX with IANA-assigned number & remove this notice


TimeHoursMinutes ::= TEXTUAL-CONVENTION
            DISPLAY-HINT "1d:1d"
    STATUS   current
            DESCRIPTION
                "field  octets  contents                  range
                 -----  ------  --------                  -----
                   1       1    hour                      0..23
                   2       2    minutes                   0..59"
            SYNTAX      OCTET STRING (SIZE (2))

DateYearMonthDay ::= TEXTUAL-CONVENTION
            DISPLAY-HINT "2d-1d-1d"
            STATUS   current
            DESCRIPTION
                "field  octets  contents                  range
                 -----  ------  --------                  -----
                   1      1-2   year                      0..65536
                   2       3    month                     1..12
                   3       4    day                       1..31"
            SYNTAX      OCTET STRING (SIZE (4))


   timerCtrlObjects   OBJECT IDENTIFIER ::= { timerControl 1 }

   timerCtrlModeGroup OBJECT IDENTIFIER ::= { timerCtrlObjects 1 }

    timerCtrlGlobalMode OBJECT-TYPE
      SYNTAX      INTEGER {
                  enable(1),
                  disable(2)
                  }
      MAX-ACCESS read-write
      STATUS     current
      DESCRIPTION
       "Enable/disable Timer Control globally"
      DEFVAL { disable }
    ::= { timerCtrlModeGroup 1 }

     timerCtrlSchdlTable OBJECT-TYPE
          SYNTAX      SEQUENCE OF TimerCtrlSchdlEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "A table of objects that display and control the Time Control
               characteristics. Values of all read-write objects in 
               this table are persistent at restart/reboot."
          ::= { timerCtrlObjects 2 }

      timerCtrlSchdlEntry OBJECT-TYPE
          SYNTAX      TimerCtrlSchdlEntry
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
                  "A set of objects that display and control the 
                   Time Control characteristics."
          INDEX    { timerCtrlSchdlIndex }
          ::= { timerCtrlSchdlTable 1 }


      TimerCtrlSchdlEntry ::= SEQUENCE {
          timerCtrlSchdlIndex
             Integer32,
          timerCtrlSchdlName
             SnmpAdminString,
          timerCtrlSchdlRecurring
              INTEGER,
          timerCtrlSchdlMonthFreq
              INTEGER,
          timerCtrlSchdlWeekDay
              BITS,
          timerCtrlSchdlMonthDayAcc
              Integer32,
          timerCtrlSchdlTimeStart
              TimeHoursMinutes,
          timerCtrlSchdlTimeStop
              TimeHoursMinutes,
          timerCtrlSchdlDateStart
              DateYearMonthDay,
          timerCtrlSchdlDateStop
              DateYearMonthDay,
          timerCtrlSchdlRowStatus
              RowStatus
     }

        timerCtrlSchdlIndex OBJECT-TYPE
          SYNTAX      Integer32 (0..100)
          MAX-ACCESS  not-accessible
          STATUS      current
          DESCRIPTION
              "The value of this object uniquely identifies this
               Timer Control scheduler entry."
          ::= { timerCtrlSchdlEntry 1 }

        timerCtrlSchdlName OBJECT-TYPE
          SYNTAX      SnmpAdminString (SIZE(0..128))
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION
              "The name of current scheduler entry"
          ::= { timerCtrlSchdlEntry 2 }

        timerCtrlSchdlRecurring OBJECT-TYPE
          SYNTAX INTEGER {
                         invalid(0),
                         daily(1),
                         weekly(2),
                         monthly(3),
                         yearly(4)
                      }
          MAX-ACCESS read-create
          STATUS current
          DESCRIPTION
              "Recurring for the current scheduler entry."
          ::= { timerCtrlSchdlEntry 3 }

        timerCtrlSchdlMonthFreq OBJECT-TYPE
          SYNTAX   INTEGER {
                           january(0),
                           february(1),
                           march(2),
                           april(3),
                           may(4),
                           june(5),
                           july(6),
                           august(7),
                           september(8),
                           october(9),
                           november(10),
                           december(11)
                       }
           MAX-ACCESS  read-create
           STATUS      current
           DESCRIPTION
               "If the recurring is set to yearly(4) value indicates 
                month on which the scheduled action should take place. 
                Else value indicates number of how frequently timer will work"
           ::= { timerCtrlSchdlEntry 4 }

        timerCtrlSchdlWeekDay OBJECT-TYPE
          SYNTAX      BITS {
                          sunday(0),
                          monday(1),
                          tuesday(2),
                          wednesday(3),
                          thursday(4),
                          friday(5),
                          saturday(6)
                      }
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION
              "The set of weekdays on which the scheduled action should
               take place. Setting multiple bits will include several
               weekdays in the set of possible weekdays for this schedule."
             ::= { timerCtrlSchdlEntry 5 }

        timerCtrlSchdlMonthDayAcc OBJECT-TYPE
          SYNTAX      Integer32 (0..37)
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION
              "Value that indicates the day of month on which the scheduled 
               action should take place.
               Values that more than 31 used for occurance set/get:
               32: first
               33: second
               34: third
               35: fourth
               36: last"
          ::= { timerCtrlSchdlEntry 6 }

       timerCtrlSchdlTimeStart OBJECT-TYPE
            SYNTAX      TimeHoursMinutes
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "Value indicates the time when action should start.
                 field  octets  contents                  range
                 -----  ------  --------                  -----
                   1       1    hour                      0..23
                   2       2    minutes                   0..59"
            ::= { timerCtrlSchdlEntry 7 }

       timerCtrlSchdlTimeStop OBJECT-TYPE
            SYNTAX      TimeHoursMinutes
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "Value indicates the time when action should stop.
                 field  octets  contents                  range
                 -----  ------  --------                  -----
                   1       1    hour                      0..23
                   2       2    minutes                   0..59"
            ::= { timerCtrlSchdlEntry 8 }

       timerCtrlSchdlDateStart OBJECT-TYPE
            SYNTAX      DateYearMonthDay
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "Value indicates the date when scheduler should start.
                 field  octets  contents                  range
                 -----  ------  --------                  -----
                   1      1-2   year                      0..65536
                   2       3    month                     1..12
                   3       4    day                       1..31"
            ::= { timerCtrlSchdlEntry 9 }

       timerCtrlSchdlDateStop OBJECT-TYPE
            SYNTAX      DateYearMonthDay
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "Value indicates the date when scheduler should stop.
                 field  octets  contents                  range
                 -----  ------  --------                  -----
                   1      1-2   year                      0..65536
                   2       3    month                     1..12
                   3       4    day                       1..31"
            ::= { timerCtrlSchdlEntry 10 }

        timerCtrlSchdlRowStatus OBJECT-TYPE
          SYNTAX      RowStatus
          MAX-ACCESS  read-create
          STATUS      current
          DESCRIPTION
              "The row status of this conceptual row in the table.

         active
            - The server is available for use in SNTP client operations.
              Other writable leaves in this table MAY be modified while
              the row is in the active state.

         notInService
            - The entry is fully configured but is not available for
              use in SNTP client operations.  The agent MAY transition
              a row from the active to notInService upon
              receipt of a kiss of death packet from the server.

         createAndGo
            - This is the preferred mechanism for creating conceptual
              rows in this table.  This value can never be read as
              the row will always transition immediately to either active
              or notInService.

         destroy
            - This will remove the conceptual row from the table and
              make it unavailable for SNTP client operations. "
          ::= { timerCtrlSchdlEntry 11 }


   timerCtrlGroup OBJECT-GROUP
       OBJECTS {
          timerCtrlGlobalMode,
          timerCtrlSchdlName,
          timerCtrlSchdlRecurring,
          timerCtrlSchdlMonthFreq,
          timerCtrlSchdlWeekDay,
          timerCtrlSchdlMonthDayAcc,
          timerCtrlSchdlTimeStart,
          timerCtrlSchdlTimeStop,
          timerCtrlSchdlDateStart,
          timerCtrlSchdlDateStop,
          timerCtrlSchdlRowStatus
       }
       STATUS      current
       DESCRIPTION
           "A collection of objects providing device level control of
            an SNTP client on FASTPATH enabled devices."
       ::= { timerCtrlObjects 3 }

   END
