
ZTE-AN-UAPS-MIB  DEFINITIONS ::= BEGIN
  IMPORTS
    TEXTUAL-CONVENTION,RowStatus, DisplayString,MacAddress,TruthValue                     FROM SNMPv2-TC
    MODULE-IDENTITY, OBJECT-TYPE, IpAddress, enterprises, Integer32,NOTIFICATION-TYPE     FROM SNMPv2-SMI
    ifIndex                                                                               FROM IF-MIB
    zxAn,ZxAnPortList                                          
                                                                                          FROM ZTE-AN-TC-MIB;
      

  zxAnUapsMib  MODULE-IDENTITY
    LAST-UPDATED  "200711281530Z"
    ORGANIZATION  "ZTE Corporation"
    CONTACT-INFO  "suchunshan
                  Mail: suchunshan@zte.com.cn
                  Tel : 021-68896292"
    DESCRIPTION   "This MIB defines zte dsl uaps function modules' managed objects."
    ::=  {  zxAn 7  }


    zxAnUapsObjects    OBJECT IDENTIFIER ::= { zxAnUapsMib 1 }
    zxAnUapsTraps      OBJECT IDENTIFIER ::= { zxAnUapsMib 2 }
  

--------------------------------------------------------------------------------
-- Following objects are defined.
-- 1.Uaps Group Table
-- 2.Trap
--------------------------------------------------------------------------------



------------------------------------------------------------------------------
-- 1.Uaps Group Table
------------------------------------------------------------------------------

    zxAnUapsCapability   OBJECT-TYPE
        SYNTAX      BITS
            {
                ipLinkChk(0),
                protectionTime(1),
                supportSlaveSlotPorts(2)
            }
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "It indicates that which UAPS funcitons are supported by 
        current device.
        
            ipLinkChk(1)      -- zxAnUapsNextHopIp,zxAnUapsIpLink*  are supported.
            protectionTime(2) -- zxAnUapsProtectionTime,zxAnUapsIsInPrtctTime,
                    zxAnUapsSwapRequestInCache,zxAnUapsSwapLastRequest are supported.
                    
            supportSlaveSlotPorts(3) -- zxAnUapsSupportSlaveSlotPorts are supported.
        
        "
        ::=  { zxAnUapsObjects  1 }
        

    zxAnUapsGroupTable   OBJECT-TYPE
        SYNTAX      SEQUENCE  OF  ZxAnUapsGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "This table includes the managed objects of the UAPS group ."
        ::=  { zxAnUapsObjects  2 }

    zxAnUapsGroupEntry   OBJECT-TYPE
        SYNTAX      ZxAnUapsGroupEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION "An entry in zxAnUapsGroupTable."
        INDEX       { zxAnUapsGroupIndex  }
        ::=  { zxAnUapsGroupTable 1 }

    ZxAnUapsGroupEntry  ::=  SEQUENCE {
        zxAnUapsGroupIndex              INTEGER,
        zxAnUapsGroupName               DisplayString,
        zxAnUapsPrimaryPortList         OBJECT IDENTIFIER,
        zxAnUapsSecondaryPortList       OBJECT IDENTIFIER,
        zxAnUapsAutoFailbackEnable      Integer32,
        zxAnUapsNextHopIp               IpAddress,
        zxAnUapsIpLinkType              INTEGER,
        zxAnUapsIpLinkChkRetries        INTEGER,
        zxAnUapsIpLinkChkTimeout        INTEGER,
        zxAnUapsIpLinkStatus            INTEGER,
        zxAnUapsForceSwap               Integer32,
        zxAnUapsPortWorkingStatus       INTEGER,
        zxAnUapsSwapReason              INTEGER,
        zxAnUapsSupportSlaveSlotPorts   INTEGER,
        zxAnUapsProtectionTime          INTEGER,
        zxAnUapsIsInPrtctTime           TruthValue,
        zxAnUapsSwapRequestInCache      BITS,
        zxAnUapsSwapLastRequest         INTEGER,
        zxAnUapsSwapMode                INTEGER,
        zxAnUapsSecondaryPortLighting      INTEGER,
        zxAnUapsGroupRowStatus          RowStatus
        }

    zxAnUapsGroupIndex OBJECT-TYPE
        SYNTAX      INTEGER(1..4)
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "The index of UAPS group.The max numbers of groups is 4.
            "
          ::= { zxAnUapsGroupEntry 1}


    zxAnUapsGroupName OBJECT-TYPE
        SYNTAX      DisplayString  ( SIZE ( 1 .. 20  ) )
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The name of UAPS group.
            "
          ::= { zxAnUapsGroupEntry 2}

                        
    zxAnUapsPrimaryPortList OBJECT-TYPE
        SYNTAX      OBJECT IDENTIFIER
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The primary UAPS ports.The max port numbers joined in this portlist 
            should not be more than 4.
            Each number of this variable is ifIndex of a port.
            "
          ::= { zxAnUapsGroupEntry 3}


    zxAnUapsSecondaryPortList OBJECT-TYPE
        SYNTAX      OBJECT IDENTIFIER
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The Secondary UAPS ports.The max port numbers joined in this portlist 
            should not be more than 4. Furthermore, the port numbers joined in 
            this portlist should be eqaul to the zxAnUapsPrimaryPortList's.
            Each number of this variable is ifIndex of a port.
            "
          ::= { zxAnUapsGroupEntry 4}

             
    zxAnUapsAutoFailbackEnable OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Enable/disable recovery to the UAPS primary port automatically 
            when the primary port is normal again."
          ::= { zxAnUapsGroupEntry 5}

                  
    zxAnUapsNextHopIp OBJECT-TYPE
        SYNTAX      IpAddress
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Next Hop Ip.If it is 0.0.0.0, UAPS will not check the link of 
            Next Hop. "
          ::= { zxAnUapsGroupEntry 6 }


    zxAnUapsIpLinkType OBJECT-TYPE
        SYNTAX      INTEGER
        {
            defaulIpLink(1),
            serviceIpLink(2)
        }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION 
            "The link type used to check ip link status."
          ::= { zxAnUapsGroupEntry 7}



    zxAnUapsIpLinkChkRetries OBJECT-TYPE
        SYNTAX      INTEGER(1..10)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The retries  of checking link status."
          ::= { zxAnUapsGroupEntry 8}


    zxAnUapsIpLinkChkTimeout OBJECT-TYPE
        SYNTAX      INTEGER(1..10)
        UNITS       "sec"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The timeout  of checking link status."
          ::= { zxAnUapsGroupEntry 9}


    zxAnUapsIpLinkStatus OBJECT-TYPE
        SYNTAX      INTEGER
            {
                up(1),
                down(2),
                testing(3),
                unknown(4)
            }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "The status of ip link."
          ::= { zxAnUapsGroupEntry 10}     
          
                       
    zxAnUapsForceSwap OBJECT-TYPE
        SYNTAX      Integer32
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Force to swap the primary and secondary port. when it is set to 1."
          ::= { zxAnUapsGroupEntry 11}
                                    

    zxAnUapsPortWorkingStatus  OBJECT-TYPE
        SYNTAX      INTEGER
        {
            primaryPortInWorking(1),
            secondaryPortInWorking(2)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "It indicates which port group is in working state."
          ::= { zxAnUapsGroupEntry 12}
          

    zxAnUapsSwapReason OBJECT-TYPE
        SYNTAX      INTEGER
        {
            failback(0),  -- primary port is recovery
            failoverByPhyLinkDown(1), -- primary port is in fault of physical layer
            failoverByIpLinkDown(2),  -- primary port is in fault of ip layer
            forceSwap(3)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "It indicates the reason of swap. 
            NOTE: 
               BIT 0 is just the MSB of this variable and is NOT the LSB.
            "
          ::= { zxAnUapsGroupEntry 13}


   zxAnUapsSupportSlaveSlotPorts OBJECT-TYPE
        SYNTAX      INTEGER
        {
            port(1),  -- port mode
            csc(2) -- csc mode
        }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Whether support to use slave card's ports to act as 
            Primary-Secondary port.
            "
          ::= { zxAnUapsGroupEntry 14}


   zxAnUapsProtectionTime OBJECT-TYPE
        SYNTAX      INTEGER (0..900)
        UNITS       "second"
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The protection time of UAPS.When the fail time of port is larger 
            than it,the UAPS module should failover to the secondary port.
            It is only used in uaps mode.
            "
        DEFVAL { 300 }            
          ::= { zxAnUapsGroupEntry 15}

    zxAnUapsIsInPrtctTime OBJECT-TYPE
        SYNTAX      TruthValue
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "It indicates if the UAPS is in protect time status. "
          ::= { zxAnUapsGroupEntry 16}


    zxAnUapsSwapRequestInCache OBJECT-TYPE
        SYNTAX      BITS
        {
            failback(0),  -- primary port is recovery
            failoverByPhyLinkDown(1), -- primary port is in fault of physical layer
            failoverByIpLinkDown(2),  -- primary port is in fault of ip layer
            forceSwap(3)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "It indicates the swap request in memory. "
          ::= { zxAnUapsGroupEntry 17}


    zxAnUapsSwapLastRequest OBJECT-TYPE
        SYNTAX      INTEGER
        {
            failback(0),  -- primary port is recovery
            failoverByPhyLinkDown(1), -- primary port is in fault of physical layer
            failoverByIpLinkDown(2),  -- primary port is in fault of ip layer
            forceSwap(3)
        }
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "It indicates if there is a swap request in memory. "
          ::= { zxAnUapsGroupEntry 18}
          
    zxAnUapsSwapMode OBJECT-TYPE
        SYNTAX      INTEGER
        {
            common(1), 
            trunk(2),   
            upPortNum(3)
        }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "It indicates swap mode. 
            common: If one port of working port list down, all ports will 
                swap to slave port list.
            trunk: Only when all working ports down, ports will swap to 
                slave port list.
            upPortNum: If the number of up working ports is less than
                the number of up slave ports, swap to slave port list. "
          ::= { zxAnUapsGroupEntry 19}          
  
   zxAnUapsSecondaryPortLighting OBJECT-TYPE
        SYNTAX      INTEGER
        {
            enable(1),
            disable(2)
        }
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "Enable\Disable secondary port lighting control function.
            When port lighting control is enabled, port lighting is shutdown."
        DEFVAL { disable }
          ::= { zxAnUapsGroupEntry 20}           
          
    zxAnUapsGroupRowStatus OBJECT-TYPE
       SYNTAX          RowStatus
       MAX-ACCESS      read-create
       STATUS          current
       DESCRIPTION
            " Rowstatus to create or delete a row of this entry."
        ::= { zxAnUapsGroupEntry 25 }
                      


------------------------------------------------------------------------------
-- 2.Trap
------------------------------------------------------------------------------

    
    zxAnUapsSwappedTrap NOTIFICATION-TYPE
        OBJECTS {
                    zxAnUapsPortWorkingStatus,
                    zxAnUapsSwapReason,
                    zxAnUapsGroupName,
                    zxAnUapsPrimaryPortList,
                    zxAnUapsSecondaryPortList
                }
        STATUS             current
        DESCRIPTION
           "It indicates the primary and seconday port of UAPS module has swapped."
       ::= { zxAnUapsTraps 1 } 

    zxAnUapsSwappedAlm NOTIFICATION-TYPE
        OBJECTS {
                    zxAnUapsPortWorkingStatus,
                    zxAnUapsSwapReason,
                    zxAnUapsGroupName,
                    zxAnUapsPrimaryPortList,
                    zxAnUapsSecondaryPortList
                }
        STATUS             current
        DESCRIPTION
           "A zxAnUapsSwappedAlm is sent when the agent has detected that 
           the master/slave ports of UAPS module have swapped."
       ::= { zxAnUapsTraps 2 } 
       
    zxAnUapsSwappedClr NOTIFICATION-TYPE
        STATUS             current
        DESCRIPTION
            "A zxAnUapsSwappedClr trap is sent when the agent 
            has detected that the zxAnUapsSwappedAlm is cleared manually."            
       ::= { zxAnUapsTraps 3 }        

END