
ZTE-AN-OTDR-MIB DEFINITIONS ::= BEGIN

    IMPORTS
        MODULE-IDENTITY                       FROM SNMPv2-SMI
        NOTIFICATION-TYPE                     FROM SNMPv2-SMI
        OBJECT-TYPE                           FROM SNMPv2-SMI
        Integer32                             FROM SNMPv2-SMI
        DisplayString                         FROM SNMPv2-TC
        DateAndTime                           FROM SNMPv2-TC
        RowStatus                             FROM SNMPv2-TC
        InetAddressType                       FROM INET-ADDRESS-MIB
        InetAddress                           FROM INET-ADDRESS-MIB
        zxAnOfd                               FROM ZTE-AN-OFD-SMI;

    zxAnOtdrMib MODULE-IDENTITY
        LAST-UPDATED    "201303051200Z"
        ORGANIZATION    "ZTE Corporation"
        CONTACT-INFO    "Li Yuan     ZTE Corporation
                         Mail: li.yuan@zte.com.cn
                         Tel : +86-021-68897208"
        DESCRIPTION     "The MIB module for the management of OTDR equipment."
        REVISION        "201303051200Z"
        DESCRIPTION     "Initial version of this MIB module."
        ::= { zxAnOfd 5 }

-------------------------------------------------------------------------------

-- Following management objects  are defined.
-- 1.  OTDR Global Objects
--  1.1 OTDR Capacity Global Objects
--  1.2 OTDR Environment Global Objects
--   1.2.1 OTDR Environment Control Card Global Objects
--   1.2.2 OTDR Environment Fan Global Objects
--   1.2.3 OTDR Environment APD Global Objects

-- 2. OTDR Objects
--  2.1 OTDR Interface Objects
--   2.1.1 OTDR Test Parameter Profile Table
--   2.1.2 OTDR Interface Table

--  2.2 OTDR Fast Test Objects
--   2.2.1 OTDR Fast Test Configuraton Objects
--    2.2.1.1 OTDR Fast Test Action Objects
--    2.2.1.2 OTDR Fast Test Interface Table
--   2.2.2 OTDR Fast Test Status Objects
--    2.2.2.1 OTDR Fast Test Status Global Table
--    2.2.2.2 OTDR Fast Test Interface Status Table
--   2.2.3 OTDR Fast Test File FTP Objects
--    2.2.3.1 OTDR File FTP Objects
--    2.2.3.2 OTDR File FTP Uploading Status Table

--  2.3 OTDR Routine Test Objects
--   2.3.1 OTDR Routine Task Interface Table
--   2.3.2 OTDR Routine Task Table
--   2.3.3 OTDR Routine Task Interface Status Table

--  2.4 OTDR FTP Server Objects
--   2.4.1 OTDR FTP Server Table

-- Following notification objects are defined.
-- 3. OTDR Notifications
--  3.1 OTDR Routine Task Finished
--  3.2 OTDR Environment Traps
--   3.2.1  OTDR Environment Control Card High Temperature Alarm
--   3.2.2  OTDR Environment Control Card High Temperature Alarm Cleared
--   3.2.3  OTDR Environment Control Card Low Temperature Alarm
--   3.2.4  OTDR Environment Control Card Low Temperature Alarm Cleared
--   3.2.5  OTDR Environment Fan Failure Alarm
--   3.2.6  OTDR Environment Fan Failure Cleared
--   3.2.7  OTDR Environment APD High Temperature Alarm
--   3.2.8  OTDR Environment APD High Temperature Alarm Cleared
--   3.2.9  OTDR Environment APD Low Temperature Alarm
--   3.2.10 OTDR Environment APD Low Temperature Alarm Cleared
-------------------------------------------------------------------------------

zxAnOtdrGlobalObjects      OBJECT IDENTIFIER ::= { zxAnOtdrMib 1 }
zxAnOtdrObjects            OBJECT IDENTIFIER ::= { zxAnOtdrMib 2 }
zxAnOtdrNotifications      OBJECT IDENTIFIER ::= { zxAnOtdrMib 3 }

zxAnOtdrIfObjects          OBJECT IDENTIFIER ::= { zxAnOtdrObjects 1 }
zxAnOtdrFastTestObjects    OBJECT IDENTIFIER ::= { zxAnOtdrObjects 2 }
zxAnOtdrRoutineTestObjects OBJECT IDENTIFIER ::= { zxAnOtdrObjects 3 }
zxAnOtdrFtpServerObjects   OBJECT IDENTIFIER ::= { zxAnOtdrObjects 4 }

zxAnOtdrEnvTraps           OBJECT IDENTIFIER ::= { zxAnOtdrNotifications 50 }

-------------------------------------------------------------------------------

-- 1. OTDR Global Objects -----------------------------------------------------
-------------------------------------------------------------------------------
-- 1.1 OTDR Capacity Global Objects 
-------------------------------------------------------------------------------

    zxAnOtdrCapacityGlobalObjects    OBJECT IDENTIFIER 
        ::= { zxAnOtdrGlobalObjects 1 }

    zxAnOtdrWaveLengthList    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE ( 0 .. 255  ) ) 
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     
            "The wave length supported by OTDR. The value divided by '|'. 
             The unit of wave length is nm."
        ::= { zxAnOtdrCapacityGlobalObjects 1 }

    zxAnOtdrTestPulseWidthList    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE ( 0 .. 255  ) ) 
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     
            "The pulse width supported by OTDR. The value divided by '|'. 
             The unit of pulse width is ns. "
        ::= { zxAnOtdrCapacityGlobalObjects 2 }
        
    zxAnOtdrTotalPorts    OBJECT-TYPE
        SYNTAX          Integer32  (1 .. 256)
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     "The total port number of OTDR."
        ::= { zxAnOtdrCapacityGlobalObjects 3 }

-------------------------------------------------------------------------------
--  1.2 OTDR Environment Global Objects
-------------------------------------------------------------------------------        
-- 1.2.1 OTDR Environment Control Card Global Objects 
-------------------------------------------------------------------------------    

    zxAnOtdrEnvGlobalObjects            OBJECT IDENTIFIER 
                                        ::= { zxAnOtdrGlobalObjects 2 }
   
    zxAnOtdrEnvCtrlCardGlobalObjects    OBJECT IDENTIFIER 
                                        ::= { zxAnOtdrEnvGlobalObjects 1 } 
          
    zxAnOtdrCtrlCardCurrentTemp OBJECT-TYPE
       SYNTAX       Integer32
       UNITS        "Centigrade"
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
            "The current control card temperature of OTDR equipment. "
       ::= { zxAnOtdrEnvCtrlCardGlobalObjects 1 }

    zxAnOtdrCtrlCardTempHighThresh OBJECT-TYPE
       SYNTAX       Integer32    (75..95)
       UNITS        "Centigrade"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
            "The high threshold of the control card temperature, the
             zxAnOtdrEnvCtrlCardHighTempAlm trap should be generated when 
             zxAnOtdrCtrlCardCurrentTemp is higher than it. 
             Otherwise, zxAnOtdrEnvCtrlCardHighTempClr trap should be generated
             when zxAnOtdrCtrlCardCurrentTemp is lower than it."
       DEFVAL { 95 } 
       ::= { zxAnOtdrEnvCtrlCardGlobalObjects 2 }
       
    zxAnOtdrCtrlCardTempLowThresh OBJECT-TYPE
       SYNTAX       Integer32    (-45..-25)
       UNITS        "Centigrade"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
            "The low threshold of the control card temperature, the
             zxAnOtdrEnvCtrlCardLowTempAlm trap should be generated when 
             zxAnOtdrCtrlCardCurrentTemp is lower than it. 
             Otherwise, zxAnOtdrEnvCtrlCardLowTempClr trap should be generated
             when zxAnOtdrCtrlCardCurrentTemp is higher than it."
       DEFVAL { -45 }
       ::= { zxAnOtdrEnvCtrlCardGlobalObjects 3 } 

-------------------------------------------------------------------------------
--   1.2.2 OTDR Environment Fan Global Objects
-------------------------------------------------------------------------------
    zxAnOtdrEnvFanGlobalObjects    OBJECT IDENTIFIER 
                                   ::= { zxAnOtdrEnvGlobalObjects 2 } 

    zxAnOtdrEnvFanStatus  OBJECT-TYPE 
        SYNTAX          INTEGER {
                normal(1),
                abnormal(2)
        }
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     
            "The fan status. When zxAnOtdrEnvFanStatus 
             is abnormal, zxAnOtdrEnvFanFailureAlm trap should be sent 
             to manager. If zxAnOtdrEnvFanStatus is normal,
             zxAnOtdrEnvFanFailureClr trap should be sent."

        ::=  {  zxAnOtdrEnvFanGlobalObjects  1  }   

    zxAnOtdrEnvFanOperStatus   OBJECT-TYPE 
        SYNTAX          INTEGER {
                up(1),
                down(2)
        }
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     
            "The operational status of fan."
        ::=  {  zxAnOtdrEnvFanGlobalObjects  2  } 
        
-------------------------------------------------------------------------------
--   1.2.3 OTDR Environment APD Global Objects 
-------------------------------------------------------------------------------
    zxAnOtdrEnvApdGlobalObjects    OBJECT IDENTIFIER 
                                   ::= { zxAnOtdrEnvGlobalObjects 3 } 
          
    zxAnOtdrEnvApdCurrentTemp OBJECT-TYPE
       SYNTAX       Integer32 
       UNITS        "Centigrade"
       MAX-ACCESS   read-only
       STATUS       current
       DESCRIPTION
           "The current temperature of APD. "
       ::= { zxAnOtdrEnvApdGlobalObjects 1 }

    zxAnOtdrEnvApdTempHighThresh OBJECT-TYPE
       SYNTAX       Integer32    (60..100)
       UNITS        "Centigrade"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
           "The high threshold of the APD temperature, the
            zxAnOtdrEnvApdHighTempAlm trap should be generated when 
            zxAnOtdrEnvApdCurrentTemp is higher than it. 
            Otherwise, zxAnOtdrEnvApdHighTempClr trap should be generated
            when zxAnOtdrEnvApdCurrentTemp is lower than it."
       DEFVAL { 60 } 
       ::= { zxAnOtdrEnvApdGlobalObjects 2 }
       
    zxAnOtdrEnvApdTempLowThresh OBJECT-TYPE
       SYNTAX       Integer32    (-55..-20)
       UNITS        "Centigrade"
       MAX-ACCESS   read-write
       STATUS       current
       DESCRIPTION
           "The low threshold of the APD temperature, the
            zxAnOtdrEnvApdLowTempAlm trap should be generated when 
            zxAnOtdrEnvApdCurrentTemp is lower than it. 
            Otherwise, zxAnOtdrEnvApdLowTempClr trap should be generated
            when zxAnOtdrEnvApdCurrentTemp higher than it."
       DEFVAL { -20 }
       ::= { zxAnOtdrEnvApdGlobalObjects 3 } 

-- 2. OTDR Objects ------------------------------------------------------------
-- 2.1 OTDR Interface Objects -------------------------------------------------
-------------------------------------------------------------------------------
-- 2.1.1 OTDR Test Parameter Profile Table
-------------------------------------------------------------------------------

    zxAnOtdrTestParamPrfTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF ZxAnOtdrTestParamPrfEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     
            "This table includes OTDR test parameter Profile information."
        ::= {zxAnOtdrIfObjects 2 } 

    zxAnOtdrTestParamPrfEntry    OBJECT-TYPE 
        SYNTAX          ZxAnOtdrTestParamPrfEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     
            "OTDR test parameter profile entry."
        INDEX   { zxAnOtdrTestParamPrfName }
        ::= { zxAnOtdrTestParamPrfTable 1 }

    ZxAnOtdrTestParamPrfEntry  ::=  SEQUENCE {
        zxAnOtdrTestParamPrfName                 DisplayString,
        zxAnOtdrTestParamPrfMode                 INTEGER,
        zxAnOtdrTestParamPrfWaveLength           Integer32,
        zxAnOtdrTestParamPrfDistance             Integer32,
        zxAnOtdrTestParamPrfFiberIor             Integer32,
        zxAnOtdrTestParamPrfPulseWidth           Integer32,
        zxAnOtdrTestParamPrfDuration             Integer32,
        zxAnOtdrTestParamPrfSeqCode              INTEGER,
        zxAnOtdrTestParamPrfSeqCodeLen           Integer32,
        zxAnOtdrTestParamPrfCodeWidth            Integer32,
        zxAnOtdrTestParamPrfTimes                Integer32,
        zxAnOtdrTestParamPrfInterval             Integer32,
        zxAnOtdrTestParamPrfRowStatus            RowStatus
        }

    zxAnOtdrTestParamPrfName    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE (1..32) )
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     
            "OTDR test parameter profile name."
        ::= { zxAnOtdrTestParamPrfEntry 1 }

    zxAnOtdrTestParamPrfMode    OBJECT-TYPE
        SYNTAX          INTEGER{
            pulseMethod(1),
            periodicSequenceMethod(2),
            nonperiodicSequenceMethod(3)
        }
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test mode.
            
             When the mode is pulseMethod, 
             zxAnOtdrTestParamPrfWaveLength, zxAnOtdrTestParamPrfDistance, 
             zxAnOtdrTestParamPrfFiberIor, zxAnOtdrTestParamPrfPulseWidth, 
             zxAnOtdrTestParamPrfDuration are valid.
             
             When the mode is periodicSequenceMethod,
             zxAnOtdrTestParamPrfWaveLength, zxAnOtdrTestParamPrfDistance, 
             zxAnOtdrTestParamPrfFiberIor, zxAnOtdrTestParamPrfSequenceCode, 
             zxAnOtdrTestParamPrfSeqCodeLen, zxAnOtdrTestParamPrfCodeWidth, 
             zxAnOtdrTestParamPrfTimes are valid.
            
             When the mode is nonperiodicSequenceMethod, 
             zxAnOtdrTestParamPrfWaveLength, zxAnOtdrTestParamPrfDistance,
             zxAnOtdrTestParamPrfFiberIor, zxAnOtdrTestParamPrfInterval 
             are valid."      
        ::= {zxAnOtdrTestParamPrfEntry 2 } 
        
    zxAnOtdrTestParamPrfWaveLength    OBJECT-TYPE
        SYNTAX          Integer32  (1625..1650)
        UNITS           "nm" 
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test wave length."
        ::= { zxAnOtdrTestParamPrfEntry 3 }

    zxAnOtdrTestParamPrfDistance    OBJECT-TYPE
        SYNTAX          Integer32  (1..60000)
        UNITS           "meter" 
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test distance."
        ::= { zxAnOtdrTestParamPrfEntry 4 }

    zxAnOtdrTestParamPrfFiberIor    OBJECT-TYPE
        SYNTAX          Integer32  (1400000..1500000)
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test fiber IOR. The range is from 1.4*(10^6) to 1.5*(10^6)."
        ::= { zxAnOtdrTestParamPrfEntry 5 }

    zxAnOtdrTestParamPrfPulseWidth    OBJECT-TYPE
        SYNTAX          Integer32  (0 | 5..20000)
        UNITS           "ns" 
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test pulse width. '0' means not configured."
        ::= { zxAnOtdrTestParamPrfEntry 6 }

    zxAnOtdrTestParamPrfDuration    OBJECT-TYPE
        SYNTAX          Integer32  (0 | 1..3600)
        UNITS           "seconds" 
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test duration. '0' means not configured"
        ::= { zxAnOtdrTestParamPrfEntry 7 }

    zxAnOtdrTestParamPrfSeqCode    OBJECT-TYPE
        SYNTAX          INTEGER{
            complementaryCode(1),
            pseudoRandomCode(2),
            notConfigured(255)
        }
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test sequence code. '255' means not configured."      
        ::= {zxAnOtdrTestParamPrfEntry 8 } 

    zxAnOtdrTestParamPrfSeqCodeLen    OBJECT-TYPE
        SYNTAX          Integer32  (0 | 1..32000)
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test sequence code length. 
             '0' means not configured."
        ::= { zxAnOtdrTestParamPrfEntry 9 }

    zxAnOtdrTestParamPrfCodeWidth    OBJECT-TYPE
        SYNTAX          Integer32  (0 | 50..60)
        UNITS           "ns" 
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test code width. '0' means not configured."
        ::= { zxAnOtdrTestParamPrfEntry 10 }

    zxAnOtdrTestParamPrfTimes    OBJECT-TYPE
        SYNTAX          Integer32  (0 | 1..100)
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test average times. '0' means not configured."
        ::= { zxAnOtdrTestParamPrfEntry 11 }

    zxAnOtdrTestParamPrfInterval    OBJECT-TYPE
        SYNTAX          Integer32  (0 | 1..100)
        UNITS           "us"
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "OTDR test interval. '0' means not configured."
        ::= { zxAnOtdrTestParamPrfEntry 12 }

    zxAnOtdrTestParamPrfRowStatus    OBJECT-TYPE
        SYNTAX          RowStatus 
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "The status of this conceptual row.
            
             The supported actions of this conceptual row only include:
             'createAndGo' and 'destroy'.
            
             To create a row in this table, a manager must set this object to 
             createAndGo(4), and must comply with the multi-variables binding 
             rule described in zxAnOtdrTestParamPrfEntry.
            
             To delete a row in this table, a manager must set this object to 
             destroy(6). 
            
             To get this object, the agent always returns active(1)."
        ::= {zxAnOtdrTestParamPrfEntry 50 }

-------------------------------------------------------------------------------
-- 2.1.2 OTDR Interface Table 
-------------------------------------------------------------------------------

    zxAnOtdrIfTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF ZxAnOtdrIfEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "This table includes OTDR test interface information."
        ::= {zxAnOtdrIfObjects 3} 

    zxAnOtdrIfEntry    OBJECT-TYPE 
        SYNTAX          ZxAnOtdrIfEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR interface entry." 
        INDEX   { zxAnOtdrIfRack, zxAnOtdrIfShelf, zxAnOtdrIfSlot, 
        zxAnOtdrIfPort }
        ::= { zxAnOtdrIfTable 1 }

    ZxAnOtdrIfEntry  ::=  SEQUENCE {
        zxAnOtdrIfRack                    Integer32,
        zxAnOtdrIfShelf                   Integer32,
        zxAnOtdrIfSlot                    Integer32,
        zxAnOtdrIfPort                    Integer32,
        zxAnOtdrIfAlias                   DisplayString,
        zxAnOtdrIfFastTestParamPrf        DisplayString,
        zxAnOtdrIfRoutineTestParamPrf     DisplayString  
        }

    zxAnOtdrIfRack    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR rack No.."
        ::= { zxAnOtdrIfEntry 1 }

    zxAnOtdrIfShelf    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     
            "OTDR shelf No.."
        ::= { zxAnOtdrIfEntry 2 }

    zxAnOtdrIfSlot    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     
            "OTDR slot No.."
        ::= { zxAnOtdrIfEntry 3 }

    zxAnOtdrIfPort    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     
            "OTDR port No.."
        ::= { zxAnOtdrIfEntry 4 }
        
    zxAnOtdrIfAlias    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE ( 0.. 32  )  ) 
        MAX-ACCESS      read-write
        STATUS          current 
        DESCRIPTION     "OTDR interface alias."
        ::= { zxAnOtdrIfEntry 5 }

    zxAnOtdrIfFastTestParamPrf    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE (0..32) )
        MAX-ACCESS      read-write 
        STATUS          current 
        DESCRIPTION     "OTDR fast test parameter profile name."
        ::= { zxAnOtdrIfEntry 6 }

    zxAnOtdrIfRoutineTestParamPrf    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE (0..32) )
        MAX-ACCESS      read-write 
        STATUS          current 
        DESCRIPTION     "OTDR routine test parameter profile name."
        ::= { zxAnOtdrIfEntry 7 } 

-- 2.2 OTDR Fast Test Objects -------------------------------------------------
-- 2.2.1 OTDR Fast Test Configuraton Objects ----------------------------------
-------------------------------------------------------------------------------
-- 2.2.1.1 OTDR Fast Test Action Objects
-------------------------------------------------------------------------------
    zxAnOtdrFastTestConfObjects  
        OBJECT IDENTIFIER ::= { zxAnOtdrFastTestObjects 1 }
    zxAnOtdrFastTestStatusObjects
        OBJECT IDENTIFIER ::= { zxAnOtdrFastTestObjects 2 }
    zxAnOtdrFastTestFileFtpObjects    
        OBJECT IDENTIFIER ::= { zxAnOtdrFastTestObjects 3 }
    zxAnOtdrFastTestActionObjects   OBJECT IDENTIFIER 
        ::= { zxAnOtdrFastTestConfObjects 1 }

    zxAnOtdrFastTestSn    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE ( 1.. 128  ) ) 
        MAX-ACCESS      read-write 
        STATUS          current 
        DESCRIPTION     "OTDR fast test serial number."
        ::= { zxAnOtdrFastTestActionObjects 1 }

    zxAnOtdrFastTestAction    OBJECT-TYPE
        SYNTAX          INTEGER {
            start (1),
            stop (2)
        } 
        MAX-ACCESS      read-write 
        STATUS          current 
        DESCRIPTION     "OTDR fast test action."
        ::= { zxAnOtdrFastTestActionObjects 2 }
        
-------------------------------------------------------------------------------
-- 2.2.1.2 OTDR Fast Test Interface Table 
-------------------------------------------------------------------------------
    
    zxAnOtdrFastTestIfTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF ZxAnOtdrFastTestIfEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR fast test interface table."
        ::= {zxAnOtdrFastTestConfObjects 2} 

    zxAnOtdrFastTestIfEntry    OBJECT-TYPE 
        SYNTAX          ZxAnOtdrFastTestIfEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR fast test interface entry."
        INDEX   { zxAnOtdrFastTestIfSn, zxAnOtdrFastTestIfRack,
        zxAnOtdrFastTestIfShelf, zxAnOtdrFastTestIfSlot, zxAnOtdrFastTestIfPort}
        ::= { zxAnOtdrFastTestIfTable 1 }

    ZxAnOtdrFastTestIfEntry  ::=  SEQUENCE {
        zxAnOtdrFastTestIfSn          DisplayString,
        zxAnOtdrFastTestIfRack        Integer32,
        zxAnOtdrFastTestIfShelf       Integer32,
        zxAnOtdrFastTestIfSlot        Integer32,
        zxAnOtdrFastTestIfPort        Integer32,
        zxAnOtdrFastTestIfRowStatus   RowStatus
        }

    zxAnOtdrFastTestIfSn    OBJECT-TYPE
        SYNTAX           DisplayString  ( SIZE ( 1.. 128  ) ) 
        MAX-ACCESS       not-accessible 
        STATUS           current 
        DESCRIPTION      "OTDR fast test serial number."
        ::= { zxAnOtdrFastTestIfEntry 1 }

     zxAnOtdrFastTestIfRack    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible
        STATUS          current 
        DESCRIPTION     
            "OTDR rack No.. If set 255 means select all racks in NE."
        ::= { zxAnOtdrFastTestIfEntry 2 }

    zxAnOtdrFastTestIfShelf    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible
        STATUS          current 
        DESCRIPTION     
            "OTDR shelf No.. If set 255 means select all shelfs in rack."
        ::= { zxAnOtdrFastTestIfEntry 3 }

    zxAnOtdrFastTestIfSlot    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible
        STATUS          current 
        DESCRIPTION     
            "OTDR slot No.. If set 255 means select all slots in shelf."
        ::= { zxAnOtdrFastTestIfEntry 4 }

    zxAnOtdrFastTestIfPort    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible
        STATUS          current 
        DESCRIPTION     
            "OTDR port No.. If set 255 means select all ports in slot."
        ::= { zxAnOtdrFastTestIfEntry 5 }

    zxAnOtdrFastTestIfRowStatus    OBJECT-TYPE
        SYNTAX          RowStatus 
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "The status of this conceptual row.
            
            The supported actions of this conceptual row only include:
            'createAndGo' and 'destroy'.
            
            To create a row in this table, a manager must set this object to 
            createAndGo(4), and must comply with the multi-variables binding 
            rule described in zxAnOtdrFastTestIfEntry.
            
            To delete a row in this table, a manager must set this object to 
            destroy(6). 
            
            To get this object, the agent always returns active(1)."
        ::= {zxAnOtdrFastTestIfEntry 50 }
        
-- 2.2.2 OTDR Fast Test Status Objects ----------------------------------------
-------------------------------------------------------------------------------
-- 2.2.2.1 OTDR Fast Test Status Global Table
-------------------------------------------------------------------------------

    zxAnOtdrFastTestStatusGlbObjects    OBJECT IDENTIFIER 
        ::= { zxAnOtdrFastTestStatusObjects 1 }

    zxAnOtdrFastTestCurrentPort    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE ( 0.. 32  ) )
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     
            "Current fast testing port index such as '1-1-3-2'.
             Return empty string means no port is being tested."
        ::= { zxAnOtdrFastTestStatusGlbObjects 1 }

    zxAnOtdrFastTestWaitTestPorts    OBJECT-TYPE
        SYNTAX          Integer32  (0..255)
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     
            "Current fast test waiting test port number. 
             Return 0 measns no port waiting test."
        ::= { zxAnOtdrFastTestStatusGlbObjects 2 }

-------------------------------------------------------------------------------
-- 2.2.2.2 OTDR Fast Test Interface Status Table 
-------------------------------------------------------------------------------

    zxAnOtdrFastTestIfStatusTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF ZxAnOtdrFastTestIfStatusEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR fast test port status table."
        ::= {zxAnOtdrFastTestStatusObjects 2} 

    zxAnOtdrFastTestIfStatusEntry    OBJECT-TYPE 
        SYNTAX          ZxAnOtdrFastTestIfStatusEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR fast test interface status entry."
        INDEX   { zxAnOtdrFastTestIfSn,zxAnOtdrFastTestIfRack,
        zxAnOtdrFastTestIfShelf, zxAnOtdrFastTestIfSlot, 
        zxAnOtdrFastTestIfPort}
        ::= { zxAnOtdrFastTestIfStatusTable 1 }

    ZxAnOtdrFastTestIfStatusEntry  ::=  SEQUENCE {      
        zxAnOtdrFastTestIfStatus            INTEGER,
        zxAnOtdrFastTestIfFailedReason      INTEGER,
        zxAnOtdrFastTestIfResultFile        DisplayString   
        }

    zxAnOtdrFastTestIfStatus    OBJECT-TYPE
        SYNTAX          INTEGER{
            notStarted(1),
            inProgress(2),
            success(3),
            failed(4),
            stopped(5)
        }
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     "The result status of OTDR fast test."
        ::= { zxAnOtdrFastTestIfStatusEntry 1 }
        
    zxAnOtdrFastTestIfFailedReason    OBJECT-TYPE
        SYNTAX          INTEGER {
            noError(1),
            otherErrors(255)
        }
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     "The OTDR fast test failed reason."
        ::= { zxAnOtdrFastTestIfStatusEntry 2 } 
        
    zxAnOtdrFastTestIfResultFile    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE ( 0.. 32  ) ) 
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     
            "Fast test result file name.
             NE returns file name such as '1-1-5-1_20120505143302.csv' when the 
             fast test sucess. 
             NE returns empty string when the fast test failed."
        ::= { zxAnOtdrFastTestIfStatusEntry 3 }
        
-- 2.2.3 OTDR Fast Test File FTP Objects --------------------------------------
-------------------------------------------------------------------------------
-- 2.2.3.1 OTDR File FTP Objects 
-------------------------------------------------------------------------------
    zxAnOtdrFileFtpObjects OBJECT IDENTIFIER 
        ::= {zxAnOtdrFastTestFileFtpObjects 1}
 
    zxAnOtdrFileFtpIpAddressType    OBJECT-TYPE
        SYNTAX          InetAddressType
        MAX-ACCESS      read-write 
        STATUS          current 
        DESCRIPTION     "IP address type of the FTP server."
        DEFVAL  { ipv4 }
        ::=  {  zxAnOtdrFileFtpObjects  1  }

    zxAnOtdrFileFtpIpAddress    OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "IP address of the FTP server."
        ::=  {  zxAnOtdrFileFtpObjects  2  } 

    zxAnOtdrFileFtpProtocolType    OBJECT-TYPE
        SYNTAX          INTEGER {
            ftp(1),
            sftp(2)
        }
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     
            "Protocol type of the FTP server.
            ftp(1):    File Transfer Protocol.   
            sftp(2):   Ssh File Transfer Protocol.
            "
        DEFVAL  { ftp }
        ::=  {  zxAnOtdrFileFtpObjects  3 }

    zxAnOtdrFileFtpUserName    OBJECT-TYPE 
        SYNTAX          DisplayString  ( SIZE ( 1 .. 32  ) ) 
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "User name of the FTP server."
        ::=  {  zxAnOtdrFileFtpObjects  4  }

    zxAnOtdrFileFtpUserPwd    OBJECT-TYPE 
        SYNTAX          DisplayString  ( SIZE ( 1 .. 32  ) ) 
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "User password of the FTP server."
        ::=  {  zxAnOtdrFileFtpObjects  5  }

    zxAnOtdrFileFtpPath    OBJECT-TYPE 
        SYNTAX          DisplayString  ( SIZE ( 1 .. 255  ) ) 
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "File path which starts from the root directory."
        ::=  {  zxAnOtdrFileFtpObjects  6 }

    zxAnOtdrFileFtpFileName    OBJECT-TYPE 
        SYNTAX          DisplayString  ( SIZE ( 1 .. 32  ) ) 
        MAX-ACCESS      read-write
        STATUS          current
        DESCRIPTION     "The FTP file name."
        ::=  {  zxAnOtdrFileFtpObjects  7 }

-------------------------------------------------------------------------------
-- 2.2.3.2 OTDR File FTP Uploading Status Table 
-------------------------------------------------------------------------------
        
    zxAnOtdrFileFtpUploadStatusTable    OBJECT-TYPE
        SYNTAX          SEQUENCE  OF  ZxAnOtdrFileFtpUploadStatusEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "OTDR file FTP status table."
        ::=  { zxAnOtdrFastTestFileFtpObjects  2 }

    zxAnOtdrFileFtpUploadStatusEntry    OBJECT-TYPE
        SYNTAX          ZxAnOtdrFileFtpUploadStatusEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "File FTP status entry."
        INDEX   { zxAnOtdrFileFtpUploadFileName }
        ::=  { zxAnOtdrFileFtpUploadStatusTable 1 }        

    ZxAnOtdrFileFtpUploadStatusEntry  ::=  SEQUENCE {
        zxAnOtdrFileFtpUploadFileName        DisplayString,
        zxAnOtdrFileFtpUploadStatus          INTEGER,
        zxAnOtdrFileFtpUploadFailReason      INTEGER
        }

    zxAnOtdrFileFtpUploadFileName    OBJECT-TYPE
        SYNTAX          DisplayString ( SIZE ( 1 .. 32  ) )
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "OTDR test file name."
        ::= { zxAnOtdrFileFtpUploadStatusEntry 1 }

    zxAnOtdrFileFtpUploadStatus    OBJECT-TYPE
        SYNTAX          INTEGER {
            notStarted(1),
            inProgress(2),
            success(3),
            failed(4)
        }
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "OTDR FTP status."
        ::= { zxAnOtdrFileFtpUploadStatusEntry 2 }

    zxAnOtdrFileFtpUploadFailReason    OBJECT-TYPE
        SYNTAX          INTEGER {
            noError(1),
            fileNotExists(2),
            connectionFailed(3),
            otherErrors(255)
        }
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     "OTDR FTP failed reason."
        ::= { zxAnOtdrFileFtpUploadStatusEntry 3 }

---2.3 OTDR Routine Test Objects ----------------------------------------------
-------------------------------------------------------------------------------
-- 2.3.1 OTDR Routine Task Interface Table
-------------------------------------------------------------------------------

    zxAnOtdrRoutineTaskIfTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF ZxAnOtdrRoutineTaskIfEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR routine task interface table."
        ::= {zxAnOtdrRoutineTestObjects 2} 

    zxAnOtdrRoutineTaskIfEntry    OBJECT-TYPE 
        SYNTAX          ZxAnOtdrRoutineTaskIfEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR routine task interface entry."
        INDEX   { zxAnOtdrRoutineTaskName, zxAnOtdrRoutineTaskIfRack,
        zxAnOtdrRoutineTaskIfShelf, zxAnOtdrRoutineTaskIfSlot, 
        zxAnOtdrRoutineTaskIfPort }
        ::= { zxAnOtdrRoutineTaskIfTable 1 }

    ZxAnOtdrRoutineTaskIfEntry  ::=  SEQUENCE {
        zxAnOtdrRoutineTaskIfRack        Integer32,
        zxAnOtdrRoutineTaskIfShelf       Integer32,
        zxAnOtdrRoutineTaskIfSlot        Integer32,
        zxAnOtdrRoutineTaskIfPort        Integer32,
        zxAnOtdrRoutineTaskIfRowStatus   RowStatus
        }

     zxAnOtdrRoutineTaskIfRack    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible
        STATUS          current 
        DESCRIPTION     
            "OTDR rack No.. If set 255 means select all racks in NE."
        ::= { zxAnOtdrRoutineTaskIfEntry 1 }

    zxAnOtdrRoutineTaskIfShelf    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     
            "OTDR shelf No.. If set 255 means select all shelfs in rack."
        ::= { zxAnOtdrRoutineTaskIfEntry 2 }

    zxAnOtdrRoutineTaskIfSlot    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible
        STATUS          current 
        DESCRIPTION     
            "OTDR slot No.. If set 255 means select all slots in shelf."
        ::= { zxAnOtdrRoutineTaskIfEntry 3 }

    zxAnOtdrRoutineTaskIfPort    OBJECT-TYPE
        SYNTAX          Integer32
        MAX-ACCESS      not-accessible
        STATUS          current 
        DESCRIPTION     
            "OTDR port No.. If set 255 means select all ports in slot."
        ::= { zxAnOtdrRoutineTaskIfEntry 4 }

    zxAnOtdrRoutineTaskIfRowStatus    OBJECT-TYPE
        SYNTAX          RowStatus 
        MAX-ACCESS      read-create 
        STATUS          current 
        DESCRIPTION     
            "The status of this conceptual row.
            
            The supported actions of this conceptual row only include:
            'createAndGo' and 'destroy'.
            
            To create a row in this table, a manager must set this object to 
            createAndGo(4), and must comply with the multi-variables binding 
            rule described in zxAnOtdrRoutineTaskIfEntry.
            
            To delete a row in this table, a manager must set this object to 
            destroy(6). 
            
            To get this object, the agent always returns active(1)."
        ::= {zxAnOtdrRoutineTaskIfEntry 50 }

-------------------------------------------------------------------------------
-- 2.3.2 OTDR Routine Task Table 
-------------------------------------------------------------------------------

     zxAnOtdrRoutineTaskTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF ZxAnOtdrRoutineTaskEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "Routine test task table."
        ::= {zxAnOtdrRoutineTestObjects 3}

    zxAnOtdrRoutineTaskEntry    OBJECT-TYPE 
        SYNTAX          ZxAnOtdrRoutineTaskEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "Routine test task entry."
        INDEX   { zxAnOtdrRoutineTaskName }
        ::= { zxAnOtdrRoutineTaskTable 1 }

    ZxAnOtdrRoutineTaskEntry  ::=  SEQUENCE {
        zxAnOtdrRoutineTaskName             DisplayString,
        zxAnOtdrRoutineTaskStartTime        DateAndTime,
        zxAnOtdrRoutineTaskInterval         Integer32,
        zxAnOtdrRoutineTaskActiveStatus     INTEGER,
        zxAnOtdrRoutineTaskCurrStartTime    DateAndTime,
        zxAnOtdrRoutineTaskOperStatus       INTEGER,
        zxAnOtdrRoutineTaskFailedReason     INTEGER,
        zxAnOtdrRoutineTaskResultFile       DisplayString,
        zxAnOtdrRoutineTaskRowStatus        RowStatus
        }

    zxAnOtdrRoutineTaskName    OBJECT-TYPE
        SYNTAX           DisplayString  ( SIZE ( 1 .. 32  ) ) 
        MAX-ACCESS       not-accessible 
        STATUS           current
        DESCRIPTION      "OTDR routine test task name."
        ::= { zxAnOtdrRoutineTaskEntry 1 }

    zxAnOtdrRoutineTaskStartTime    OBJECT-TYPE 
        SYNTAX          DateAndTime
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     
            "The start time of OTDR routine test.
            For example:yyyy-mm-dd HH:MM:SS.(2013-01-01 00:00:00)."
        ::= { zxAnOtdrRoutineTaskEntry 2 }

    zxAnOtdrRoutineTaskInterval    OBJECT-TYPE 
        SYNTAX          Integer32  ( 0..525600 )
        UNITS           "minutes"   
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "The interval of OTDR routine test."
        DEFVAL    { 24 }
        ::=  { zxAnOtdrRoutineTaskEntry 3 }

    zxAnOtdrRoutineTaskActiveStatus    OBJECT-TYPE
        SYNTAX          INTEGER{
            activated(1),
            stopped(2)
        }
        MAX-ACCESS      read-create
        STATUS          current 
        DESCRIPTION     "OTDR routine test task active status."
        ::= {zxAnOtdrRoutineTaskEntry 4 }

    zxAnOtdrRoutineTaskCurrStartTime    OBJECT-TYPE 
        SYNTAX          DateAndTime
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION     "The current routine test task start time."
        ::= { zxAnOtdrRoutineTaskEntry 5 }

    zxAnOtdrRoutineTaskOperStatus    OBJECT-TYPE
        SYNTAX          INTEGER{
            notStarted(1),
            inProgress(2),
            success(3),
            failed(4)
        }
        MAX-ACCESS      read-only
        STATUS          current 
        DESCRIPTION     "OTDR routine test task operational status."
        ::= {zxAnOtdrRoutineTaskEntry 6 }
        
    zxAnOtdrRoutineTaskFailedReason    OBJECT-TYPE
        SYNTAX          INTEGER {
            noError(1),
            otherErrors(255)
        }
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     "The OTDR routine test task failed reason."
        ::= { zxAnOtdrRoutineTaskEntry 7 }

    zxAnOtdrRoutineTaskResultFile    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE ( 0.. 32  ) ) 
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     
            "Routine test result file name.
             NE returns file name such as 'taskname_20120505143302.zip' when 
             the routine test sucess. 
             NE returns empty string when the routine test failed."
        ::= { zxAnOtdrRoutineTaskEntry 8 }
        
    zxAnOtdrRoutineTaskRowStatus    OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION
            "The status of this conceptual row.
            
            The supported actions of this conceptual row only include:
            'createAndGo' and 'destroy'.
            
            To create a row in this table, a manager must set this object to 
            createAndGo(4), and must comply with the multi-variables binding 
            rule described in zxAnOtdrRoutineTaskEntry.
            
            To delete a row in this table, a manager must set this object to 
            destroy(6). 
            
            To get this object, the agent always returns active(1)."
        ::= { zxAnOtdrRoutineTaskEntry 50 }

-------------------------------------------------------------------------------
-- 2.3.3 OTDR Routine Task Interface Status Table
-------------------------------------------------------------------------------
    zxAnOtdrRoutineTaskIfStatusTable    OBJECT-TYPE
        SYNTAX          SEQUENCE OF ZxAnOtdrRoutineTaskIfStatusEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR routine task interface status table"
        ::= {zxAnOtdrRoutineTestObjects 4}

    zxAnOtdrRoutineTaskIfStatusEntry    OBJECT-TYPE
        SYNTAX          ZxAnOtdrRoutineTaskIfStatusEntry
        MAX-ACCESS      not-accessible 
        STATUS          current 
        DESCRIPTION     "OTDR routine task interface status entry." 
        INDEX   { zxAnOtdrRoutineTaskIfRack, zxAnOtdrRoutineTaskIfShelf,
        zxAnOtdrRoutineTaskIfSlot, zxAnOtdrRoutineTaskIfPort }
        ::= { zxAnOtdrRoutineTaskIfStatusTable 1 }

    ZxAnOtdrRoutineTaskIfStatusEntry  ::=  SEQUENCE {       
        zxAnOtdrRoutineTaskIfStatus          INTEGER,
        zxAnOtdrRoutineTaskIfFailReason      INTEGER
        }

    zxAnOtdrRoutineTaskIfStatus    OBJECT-TYPE
        SYNTAX      INTEGER{
            notStarted(1),
            inProgress(2),
            success(3),
            failed(4)
        }
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     "The result status of OTDR routine test."
        ::= {zxAnOtdrRoutineTaskIfStatusEntry 1 }
        
    zxAnOtdrRoutineTaskIfFailReason    OBJECT-TYPE
        SYNTAX          INTEGER {
            noError(1),
            otherErrors(255)
        }
        MAX-ACCESS      read-only 
        STATUS          current 
        DESCRIPTION     "The OTDR routine test failed reason."
        ::= { zxAnOtdrRoutineTaskIfStatusEntry 2 }

-- 2.4 OTDR FTP Server Objects ------------------------------------------------
-------------------------------------------------------------------------------
-- 2.4.1 OTDR FTP Server Table 
-------------------------------------------------------------------------------

    zxAnOtdrFtpServerTable    OBJECT-TYPE
        SYNTAX          SEQUENCE  OF  ZxAnOtdrFtpServerEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "FTP server configuration table."
        ::=  { zxAnOtdrFtpServerObjects  2 }

    zxAnOtdrFtpServerEntry    OBJECT-TYPE
        SYNTAX          ZxAnOtdrFtpServerEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "FTP server configuration entry."           
        INDEX   { zxAnOtdrFtpServerId }
        ::=  { zxAnOtdrFtpServerTable 1 }

    ZxAnOtdrFtpServerEntry  ::=  SEQUENCE {
        zxAnOtdrFtpServerId               DisplayString,
        zxAnOtdrFtpServerIpAddressType    InetAddressType,
        zxAnOtdrFtpServerIpAddress        InetAddress,
        zxAnOtdrFtpServerProtocolType     INTEGER,
        zxAnOtdrFtpServerUserName         DisplayString,
        zxAnOtdrFtpServerUserPwd          DisplayString,
        zxAnOtdrFtpServerPath             DisplayString,
        zxAnOtdrFtpServerRowStatus        RowStatus
        }

    zxAnOtdrFtpServerId    OBJECT-TYPE
        SYNTAX          DisplayString  ( SIZE ( 1 .. 32  ) )
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     "FTP server ID."
        ::=  {  zxAnOtdrFtpServerEntry  1  }

    zxAnOtdrFtpServerIpAddressType    OBJECT-TYPE
        SYNTAX          InetAddressType
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "IP address type of the FTP server."
        DEFVAL  { ipv4 }
        ::=  {  zxAnOtdrFtpServerEntry  2  }
        
    zxAnOtdrFtpServerIpAddress    OBJECT-TYPE
        SYNTAX          InetAddress
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "IP address of the FTP server."
        ::=  {  zxAnOtdrFtpServerEntry  3  }

    zxAnOtdrFtpServerProtocolType    OBJECT-TYPE
        SYNTAX          INTEGER {
            ftp(1),
            sftp(2)
        } 
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     
            "Protocol type of the FTP server.
            ftp(1):    File Transfer Protocol 
            sftp(2):   Ssh File Transfer Protocol
            "
        DEFVAL  { ftp }
        ::=  {  zxAnOtdrFtpServerEntry  4 }

    zxAnOtdrFtpServerUserName    OBJECT-TYPE 
        SYNTAX          DisplayString  ( SIZE ( 1 .. 32  ) )
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "User name of the FTP server."
        ::=  {  zxAnOtdrFtpServerEntry  5  }

    zxAnOtdrFtpServerUserPwd    OBJECT-TYPE 
        SYNTAX          DisplayString  ( SIZE ( 1 .. 32  ) )
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "User password of the FTP server."
        ::=  {  zxAnOtdrFtpServerEntry  6  }
    
    zxAnOtdrFtpServerPath    OBJECT-TYPE 
        SYNTAX          DisplayString  ( SIZE ( 1 .. 255  ) )
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     "File path which starts from the root directory."
        ::=  {  zxAnOtdrFtpServerEntry  7 }

    zxAnOtdrFtpServerRowStatus    OBJECT-TYPE
        SYNTAX          RowStatus
        MAX-ACCESS      read-create
        STATUS          current
        DESCRIPTION     
            "The status of this conceptual row.
            
            The supported actions of this conceptual row only include:
            'createAndGo' and 'destroy'.
            
            To create a row in this table, a manager must set this object to 
            createAndGo(4), and must comply with the multi-variables binding 
            rule described in zxAnOtdrFtpServerEntry.
           
            To delete a row in this table, a manager must set this object to 
            destroy(6).
            
            To get this object, the agent always returns active(1)."
        ::= { zxAnOtdrFtpServerEntry 50 }

-- 3. OTDR Notifications ------------------------------------------------------
-------------------------------------------------------------------------------
-- 3.1 OTDR Routine Task Finished
-------------------------------------------------------------------------------

    zxAnOtdrRoutineTaskFinished  NOTIFICATION-TYPE
        OBJECTS {
                zxAnOtdrRoutineTaskCurrStartTime,
                zxAnOtdrRoutineTaskOperStatus,
                zxAnOtdrRoutineTaskFailedReason,
                zxAnOtdrRoutineTaskResultFile
                }
        STATUS  current
        DESCRIPTION
           "A zxAnOtdrRoutineTaskFinished is sent when the agent has detected 
           that the OTDR routine test task finished. "
       ::= { zxAnOtdrNotifications 1 }

--  3.2 OTDR Environment Traps -------------------------------------------------
-------------------------------------------------------------------------------
--   3.2.1  OTDR Environment Control Card High Temperature Alarm
-------------------------------------------------------------------------------       
    zxAnOtdrEnvCtrlCardHighTempAlm NOTIFICATION-TYPE
        OBJECTS {
                  zxAnOtdrCtrlCardCurrentTemp,
                  zxAnOtdrCtrlCardTempHighThresh
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvCtrlCardHighTempAlm trap is sent when the current 
            control card temperature is higher than 
            zxAnOtdrCtrlCardTempHighThresh."
       ::= { zxAnOtdrEnvTraps 1 }          
         
-------------------------------------------------------------------------------
--   3.2.2  OTDR Environment Control Card High Temperature Alarm Cleared
-------------------------------------------------------------------------------
    zxAnOtdrEnvCtrlCardHighTempClr NOTIFICATION-TYPE
        OBJECTS {
                  zxAnOtdrCtrlCardCurrentTemp,
                  zxAnOtdrCtrlCardTempHighThresh
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvCtrlCardHighTempClr trap is sent when the current 
            control card temperature is lower than 
            zxAnOtdrCtrlCardTempHighThresh."
       ::= { zxAnOtdrEnvTraps 2 }
       
-------------------------------------------------------------------------------
--   3.2.3  OTDR Environment Control Card Low Temperature Alarm
-------------------------------------------------------------------------------
 
    zxAnOtdrEnvCtrlCardLowTempAlm NOTIFICATION-TYPE
        OBJECTS {
                  zxAnOtdrCtrlCardCurrentTemp,
                  zxAnOtdrCtrlCardTempLowThresh
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvCtrlCardLowTempAlm trap is sent when the current 
            control card temperature is lower than 
            zxAnOtdrCtrlCardTempLowThresh."
       ::= { zxAnOtdrEnvTraps 3 }          
         
-------------------------------------------------------------------------------
--   3.2.4  OTDR Environment Control Card Low Temperature Alarm Cleared
-------------------------------------------------------------------------------
    zxAnOtdrEnvCtrlCardLowTempClr NOTIFICATION-TYPE
        OBJECTS {
                  zxAnOtdrCtrlCardCurrentTemp,
                  zxAnOtdrCtrlCardTempLowThresh
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvCtrlCardLowTempClr trap is sent when the current 
            control card temperature is higher than 
            zxAnOtdrCtrlCardTempLowThresh."
       ::= { zxAnOtdrEnvTraps 4 }

-------------------------------------------------------------------------------
--   3.2.5  OTDR Environment Fan Failure Alarm
-------------------------------------------------------------------------------
   zxAnOtdrEnvFanFailureAlm NOTIFICATION-TYPE
        OBJECTS { 
                  zxAnOtdrEnvFanStatus,
                  zxAnOtdrEnvFanOperStatus
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvFanFailureAlm trap is sent when the 
           zxAnOtdrEnvFanStatus is abnormal."
        ::= { zxAnOtdrEnvTraps 5 }

-------------------------------------------------------------------------------
--   3.2.6  OTDR Environment Fan Failure Cleared
------------------------------------------------------------------------------- 
   zxAnOtdrEnvFanFailureClr NOTIFICATION-TYPE
        OBJECTS { 
                  zxAnOtdrEnvFanStatus,
                  zxAnOtdrEnvFanOperStatus
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvFanFailureClr trap is sent when the 
           zxAnOtdrEnvFanStatus is normal."
        ::= { zxAnOtdrEnvTraps 6 }  
         
-------------------------------------------------------------------------------
--   3.2.7  OTDR Environment APD High Temperature Alarm
-------------------------------------------------------------------------------
 
    zxAnOtdrEnvApdHighTempAlm NOTIFICATION-TYPE
        OBJECTS {
                  zxAnOtdrEnvApdCurrentTemp,
                  zxAnOtdrEnvApdTempHighThresh
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvApdHighTempAlm trap is sent when the APD current 
            temperature is higher than zxAnOtdrEnvApdTempHighThresh."
       ::= { zxAnOtdrEnvTraps 7 }          
         
-------------------------------------------------------------------------------
--   3.2.8  OTDR Environment APD High Temperature Alarm Cleared
-------------------------------------------------------------------------------
    zxAnOtdrEnvApdHighTempClr NOTIFICATION-TYPE
        OBJECTS {
                  zxAnOtdrEnvApdCurrentTemp,
                  zxAnOtdrEnvApdTempHighThresh
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvApdHighTempClr trap is sent when the APD current 
            temperature is lower than zxAnOtdrEnvApdTempHighThresh."
       ::= { zxAnOtdrEnvTraps 8 }
       
-------------------------------------------------------------------------------
--   3.2.9  OTDR Environment APD Low Temperature Alarm
-------------------------------------------------------------------------------
 
    zxAnOtdrEnvApdLowTempAlm NOTIFICATION-TYPE
        OBJECTS {
                  zxAnOtdrEnvApdCurrentTemp,
                  zxAnOtdrEnvApdTempLowThresh
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvApdLowTempAlm trap is sent when the APD current 
            temperature is lower than zxAnOtdrEnvApdTempLowThresh."
       ::= { zxAnOtdrEnvTraps 9 }          
         
-------------------------------------------------------------------------------
--   3.2.10 OTDR Environment APD Low Temperature Alarm Cleared
-------------------------------------------------------------------------------
    zxAnOtdrEnvApdLowTempClr NOTIFICATION-TYPE
        OBJECTS {
                  zxAnOtdrApdCurrentTemperature,
                  zxAnOtdrEnvApdCurrentTemp
                }
        STATUS             current
        DESCRIPTION
           "A zxAnOtdrEnvApdLowTempClr trap is sent when the APD current 
            temperature is higher than zxAnOtdrEnvApdTempLowThresh."
       ::= { zxAnOtdrEnvTraps 10 }
       
END