-- =================================================================================================
-- Copyright (C) 2018 by  HUAWEI TECHNOLOGIES. All rights reserved.
-- Description: This mib is used for defining the IPMB Aiu Proctect MIB objects of the protection 
--              group and smart link monitor group.
-- Reference:   Inherit from APMB 
-- Version:     V1.37
-- ==================================================================================================
    
    HUAWEI-PROTECTION-MIB DEFINITIONS ::= BEGIN

        IMPORTS
            MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE, Integer32, Unsigned32, IpAddress
                FROM SNMPv2-SMI
            MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
                FROM SNMPv2-CONF
            TEXTUAL-CONVENTION, RowStatus, DateAndTime, MacAddress
                FROM SNMPv2-TC
            ifIndex
                FROM IF-MIB
            huaweiUtility                
                FROM HUAWEI-MIB                
            hwFrameIndex, hwSlotIndex
                FROM HUAWEI-DEVICE-MIB;
        
        hwProtection MODULE-IDENTITY
            LAST-UPDATED "201803140000Z"
            ORGANIZATION "Huawei Technologies Co.,Ltd."
            CONTACT-INFO                                    
                         "Huawei Industrial Base            
                          Bantian, Longgang                 
                          Shenzhen 518129                   
                          People's Republic of China        
                          Website: http://www.huawei.com    
                          Email: support@huawei.com         
                         "                                  
            DESCRIPTION 
                "This mib is used for defining the IPMB Aiu Proctect MIB objects of the protection 
                 group and smart link monitor group."  
                            
--  Revision history
			REVISION     "201803140000Z"
            DESCRIPTION  "V1.37, changes in this revision:
                         - Added invalid value for hwPsGroupPortStateTimerOffTime and hwPsGroupPortStateTimerOnTime.  
                         "
						 
			REVISION     "201801230000Z"
            DESCRIPTION  "V1.36, changes in this revision:
                         - Add leaf hwPsGroupStandbyPortRssiMonitoringPolicySwitch in table hwPsGroupExtTable.
                         - Add leaf hwPsGroupStandbyPortRssiMonitoringInterval in table hwPsGroupExtTable.
                         - Add leaf hwPsGroupStandbyPortRssiMonitoringLowRssiAlarmThreshold in table hwPsGroupExtTable.
                         "

			REVISION     "201712120000Z"
            DESCRIPTION  "V1.35, changes in this revision:
                         - Added enumerate value invalid(-1) for hwMonitorLinkUpLinkStatus." 

            REVISION     "201711070000Z"
            DESCRIPTION  "V1.34, changes in this revision:
                         - Add leaf hwPsGroupStandbyPortSuppressFlappingSwitch in table hwPsGroupExtTable.
                         "
            REVISION     "201709290000Z"
            DESCRIPTION  "V1.33, changes in this revision:
                         - Add leaf hwPsGroupPortStateTimerOffTime in table hwPsGroupExtTable.
                         - Add leaf hwPsGroupPortStateTimerOnTime in table hwPsGroupExtTable.
                         "


            REVISION     "201708160000Z"
            DESCRIPTION  "V1.32, changes in this revision:
                          - modified the description of hwSmartLinkFlushRecvLastTime, hwSmartLinkFlushRecvLastSrcMacAddr, hwMonitorLinkUpLinkUpTime,
                         hwMonitorLinkUpLinkDownTime, hwMonitorLinkDownLinkUpTime and hwMonitorLinkDownLinkDownTime.
                         "

            REVISION     "201707070000Z"
            DESCRIPTION  "V1.31, changes in this revision:
                          - added hwMonitorLinkDownLinkOntId and hwMonitorLinkDownLinkOntPortId.
                          - modified the description of hwMonitorLinkGroupId and hwMonitorLinkDownLinkId.
                         "

            REVISION     "201701050000Z"
            DESCRIPTION  "V1.30, changes in this revision:
                          - added enumerate value for hwPgGroupProtectTarget.              
                         "

            REVISION     "201608290000Z"
            DESCRIPTION  "V1.29, changes in this revision:
                          - Modify the value range of hwPsGroupAntiJitterTime.
                          - Modify the value range of hwPgGroupAssociatedUpLinkMdIndex.
                          - Modify the value range of hwPgGroupAssociatedUpLinkMaIndex.
                          - Modify the value range of hwPgGroupAssociatedUpLinkMepIndex.
                         "
                         
            REVISION     "201603310000Z"
            DESCRIPTION  "V1.28, changes in this revision:
                          - Add leaf hwPsGroupStandbyDetectSwitch in table hwPsGroupExtTable.               
                         "
                         
            REVISION     "201508050000Z"
            DESCRIPTION  "V1.27, changes in this revision:
                          - Modify the description of hwPsDpLocalNodeIpAddress.               
                          - Modify the description of hwPsDpLocalNodeTcpPort.               
                          - Modify the description of hwPsDpPeerNodeIpAddress.               
                          - Modify the description of hwPsDpPeerNodeTcpPort.               
                         "
            REVISION     "201507290000Z"
            DESCRIPTION  "V1.26, changes in this revision:
                          - Modify the description of hwPsDpPeerNodeRowStatus.   
                         "
            REVISION     "201504290000Z"
            DESCRIPTION  "V1.25, changes in this revision:
                          - Add the leaf hwPgGroupAssociatedUpLinkMdIndex, hwPgGroupAssociatedUpLinkMaIndex, hwPgGroupAssociatedUpLinkMepIndex,
                            hwPsGroupDpPeerNodeName, hwPsGroupDpPeerFrameSlotPort and hwPsGroupDpHandshakeStatus in table hwPsGroupExtTable.
                          - Add the table hwPsDpGlobalConfig to configure the global configuration information of dual parenting.   
                          - Add the table hwPsDpPeerNodeTable to configure the peer node information of dual parenting.   
                         "
            
            REVISION     "201412160000Z"
            DESCRIPTION  "V1.24, delete the illlegal string IMPLIED."
            
            REVISION     "201410140000Z"
            DESCRIPTION  "V1.23, modified the value range of hwPgGroupAssociatedUpLinkBfd."

            REVISION     "201406300000Z"
            DESCRIPTION  "V1.22, modified the MAX-ACCESS of hwPgGroupId and hwMonitorLinkGroupId.
                          modified hwProtectionTrapsVbOids to hwPgGroupTraps."
                               
            REVISION     "201211120000Z"
            DESCRIPTION  "V1.21, changes in this revision:
                         - Add leaf hwPsGroupStandardTypeB in table hwPsGroupExtTable.
                         "

            REVISION     "201204140000Z"
            DESCRIPTION  "V1.20, added invalid enumerate value for hwPgGroupAssociatedUpLinkStatus.
                         Added invalid value for hwPgGroupAssociatedUpLinkBfd and hwPgGroupAssociatedUpLinkPort."  
                
                REVISION     "201202090000Z"
            DESCRIPTION  "V1.19, modified the description of hwSmartLinkFlushRecvLastIfIndex and hwSmartLinkFlushRecvLastCtrlVlan." 

            REVISION     "201109090000Z"
            DESCRIPTION  "V1.18, added enumerate value for hwPgGroupWorkMode." 
            
            REVISION     "201107140000Z"
            DESCRIPTION  "V1.17, Added enumerate values exerciseswitch(7) and undoexerciseswitch(8) for hwPgMemberOper and hwPgOntMemberOper.
                         Added enumerate value exerciseswitch(9) for hwPgMemberStatus and hwPgOntMemberStatus." 

            REVISION     "201012210000Z"
            DESCRIPTION  "V1.16, added invalid enumerate value for hwPsGroupLoadBalanceState and hwPsGroupPppoeSingleMac.
                         Added invalid value for hwPsGroupAntiJitterTime." 
            
            REVISION     "201011160000Z"
            DESCRIPTION  "V1.15, the description of this MIB is modified according to the tool." 
            
            REVISION     "201008030000Z"
            DESCRIPTION  "V1.14, modified description and format of the file." 
  
            REVISION     "201006180000Z"
            DESCRIPTION  "V1.13, the object description contained in hwPsGroupTable, hwPsMemberTable and hwPsOntMemberTable was modified." 
                        
            REVISION     "201005150000Z"
            DESCRIPTION  "V1.12, modified description of leaves."
            
            REVISION     "201004020000Z"
            DESCRIPTION  "V1.11, the system supported the definitions of a new standard trap node."
            
            REVISION     "201001280000Z"
            DESCRIPTION  "V1.10, added hwPsOntMemberTable
                          Modified hwPsGroupTable, and added enumerate value for hwPgGroupProtectTarget
                          Modified hwSmartLinkTraps, and redefined OBJECT IDENTIFIER 14 to 17."
            
            REVISION     "201001090000Z"
            DESCRIPTION  "V1.08, modified description of objects. Modified datatype definition INTEGER to Integer32."
                           
            REVISION     "200903260000Z"
            DESCRIPTION  "V1.06, modified hwPsGroupTable. Renamed stm-unidirection to unidirection.
                          Renamed stm-bidirection to bidirection. Renamed stm1-nni-port to stm-nni-port."
                  
            REVISION     "200812310000Z"
            DESCRIPTION  "V1.05, modified hwPsGroupTable.
                          Renamed hwPgGroupWTR to hwPgGroupReversionTime.
                          Added enumerate value for hwPgGroupWorkMode.
                          Added hwPgGroupProtectTarget.
                          Moved hwPgGroupAntiJitterTime to hwPsGroupExtTable.
                          Added hwPsGroupExtTable, hwPsGroupLoadBalanceTable.
                          Added hwSmartLinkFlushRecvPortTable.
                          Added hwSmartLinkFlushRecvLastIfIndex, hwSmartLinkFlushRecvLastTime.
                          Added hwSmartLinkFlushRecvLastSrcMacAddr, hwSmartLinkFlushRecvLastIfIndex.
                          Added hwMonitorLinkGroupTable, hwMonitorLinkUpLinkTable, hwMonitorLinkDownLinkTable."
                
            REVISION     "200607310000Z"
            DESCRIPTION  "V1.00, initial version"
                
            ::= { huaweiUtility 50 }               
        
        hwProtectionTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwProtectionEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Port protection table.This table is use to record the indices, workMode and other
                infomation of the two ports which is in protection group. ifIndex is the index of
                the working interface. For non-ETH board-level protection group, the port number
                is 0; for the ETH board-level protection group, the port number is 127.
                The index of this table is ifIndex.
                "
            ::= { hwProtection 1 }
        
        hwProtectionEntry OBJECT-TYPE
            SYNTAX      HwProtectionEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Port protection table.This table is use to record the indices, workMode and other
                infomation of the two ports which is in protection group. ifIndex is the index of
                the working interface. For non-ETH board-level protection group, the port number
                is 0; for the ETH board-level protection group, the port number is 127.
                The index of this entry is ifIndex.
                "
            INDEX {  
                   ifIndex
                   }
            ::= { hwProtectionTable 1 }
        
        HwProtectionEntry ::=
            SEQUENCE
                {
                hwPgType  
                    INTEGER,
                hwPgCurrentWorkEntity 
                    INTEGER,
                hwPgProtectIfIndex 
                    Integer32,
                hwPgMngtEnable
                    INTEGER,
                hwPgMngtAdminStatus
                    INTEGER,
                hwPgWorkMode
                    INTEGER,
                hwPgRowStatus
                    RowStatus,
                hwPgWeight
                    Integer32,
                hwPgStandbyOnTime
                    Integer32,
                hwPgHoldTime
                    Integer32,
                hwPgPriority
                    INTEGER
                }
            
            hwPgType OBJECT-TYPE
            SYNTAX  INTEGER
                {
                e1(1), 
                atmapm(2),
                atmaiu(3),
                atmaic(4),
                atmmmxboard(5),
                atmmmxport(6),
                eth(7)
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Port protection type.
                Options:
                1.e1(1)          - indicates that the port protection type is e1 
                2.atmapm(2)      - indicates that the port protection type is atmapm        
                3.atmaiu(3)      - indicates that the port protection type is atmaiu        
                4.atmaic(4)      - indicates that the port protection type is atmaic   
                5.atmmmxboard(5) - indicates that the port protection type is atmmmxboard   
                6.atmmmxport(6)  - indicates that the port protection type is atmmmxport   
                7.eth(7)         - indicates that the port protection type is eth   
                "
            ::= { hwProtectionEntry 1 }
        
        hwPgCurrentWorkEntity OBJECT-TYPE
            SYNTAX   INTEGER
                 {
                 work(1),
                 protect(2)
                 }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                Whether the current board or port is the working or the protecting one.
                Options:
                1.  work(1)     - indicates that the port is working
                2.  protect(2)  - indicates that the port is protecting       
                "
            ::= { hwProtectionEntry 2 }
        
        hwPgProtectIfIndex OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Index of the protecting board (the specified port number is 0).
                "
            ::= { hwProtectionEntry 3 }
        
        hwPgMngtEnable OBJECT-TYPE
            SYNTAX INTEGER
                {
                enable(1),
                disable(2)
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Enables or disables the protection function.
                Options:
                1. enable(1)  - indicates that the port protection function is enabled
                2. disable(2) - indicates that the port protection function is disabled                  
                "
            ::= { hwProtectionEntry 4 }
        
        hwPgMngtAdminStatus OBJECT-TYPE
            SYNTAX  INTEGER
                {
                switch(1)
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                " 
                Protection operation.
                Options:
                1. switch(1) - Forced switchover
                "
            ::= { hwProtectionEntry 5 }
        
        hwPgWorkMode OBJECT-TYPE
            SYNTAX  INTEGER
                { 
                uniformRoute(1), 
                diverseRoute(2), 
                portState(3), 
                timedelay(4), 
                lacp(5),
                timebis(6)
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Working mode of the protection group.
                Options:
                1.uniformRoute(1) - working mode of the protection group is uniform route
                2.diverseRoute(2) - working mode of the protection group is diverse route  
                3.portState(3)    - working mode of the protection group is port state  
                4.timedelay(4)    - working mode of the protection group is delay detection  
                5.lacp(5)         - working mode of the protection group is LACP  
                6.timebis(6)      - working mode of the protection group is timebis                
                "
            DEFVAL{ 1 }
            ::= { hwProtectionEntry 6 }
        
        hwPgRowStatus OBJECT-TYPE
            SYNTAX      RowStatus
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Protection operation (4: Add; 6: Delete).
                Options:
                1. Add(4)    - add protection group
                2. Delete(6) - delete protection group
                "
            ::= { hwProtectionEntry 7 }
          
              
        hwPgWeight OBJECT-TYPE
            SYNTAX      Integer32 (1..100)
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Protection group weight.
                "
            DEFVAL{ 10 }
            ::= { hwProtectionEntry 8 }
          
        hwPgStandbyOnTime OBJECT-TYPE
            SYNTAX      Integer32 (40..1000)
            UNITS       "ms"
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Open time of standby port when checking port status of the standby board.
                Unit: ms
                The time equals to the returnd value multiply by 10.
                "
            DEFVAL{ 100 }
            ::= { hwProtectionEntry 9 } 
          
        hwPgHoldTime OBJECT-TYPE
            SYNTAX      Integer32 (0..1000)
            UNITS       "ms"
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                The delay-time of checking protection group.     
                Unit: ms
                The time equals to the returnd value multiply by 10. 
                "
            DEFVAL{ 0 }
            ::= { hwProtectionEntry 10 } 
          
        hwPgPriority OBJECT-TYPE
            SYNTAX  INTEGER
                { 
                low(1), 
                middle(2), 
                high(3) 
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Group-protect Priority.
                Options:
                1.low(1)         - indicates that the priority of the protection group is low 
                2.middle(2)      - indicates that the priority of the protection group is middle 
                3.high(3)        - indicates that the priority of the protection group is high 
                "
            DEFVAL{ 1 }
            ::= { hwProtectionEntry 11 }      
        
        hwProtectionAbilityTable OBJECT-TYPE
             SYNTAX      SEQUENCE OF HwProtectionAbilityEntry
             MAX-ACCESS  not-accessible
             STATUS      current
             DESCRIPTION
                 " 
                 This table is no longer used.
                 The indexes of this table are hwFrameIndex and hwSlotIndex.
                 "
             ::= { hwProtection 2 }
        
        hwProtectionAbilityEntry OBJECT-TYPE
            SYNTAX      HwProtectionAbilityEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                " 
                This table is no longer used.
                The indexes of this entry are hwFrameIndex and hwSlotIndex.
                "
            INDEX    
                {  
                hwFrameIndex,
                hwSlotIndex
                }
            ::= { hwProtectionAbilityTable 1 }
        
        HwProtectionAbilityEntry ::=
            SEQUENCE
                {
                hwPgAbilityType    INTEGER,
                hwPgOtherFrame    Integer32,
                hwPgOtherSlot    Integer32
                }
        
        hwPgAbilityType OBJECT-TYPE
            SYNTAX INTEGER
                {
                e1(1),
                atmapm(2),
                atmaiu(3),
                atmaic(4),
                atmmmxboard(5),
                atmmmxport(6),
                eth(7)
                }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                Protection type.This object is no longer used.
                Options:
                1.e1(1)          - indicates that the protection type is e1 
                2.atmapm(2)      - indicates that the protection type is atmapm        
                3.atmaiu(3)      - indicates that the protection type is atmaiu        
                4.atmaic(4)      - indicates that the protection type is atmaic   
                5.atmmmxboard(5) - indicates that the protection type is atmmmxboard   
                6.atmmmxport(6)  - indicates that the protection type is atmmmxport   
                7.eth(7)         - indicates that the protection type is eth 
                "
            ::= { hwProtectionAbilityEntry 1 }
        
        hwPgOtherFrame OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                ID of the shelf where protection group 2 is located.   
                This object is no longer used.
                "
            ::= { hwProtectionAbilityEntry 2 }
            
        hwPgOtherSlot OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                ID of the slot where protection group 2 is located. 
                This object is no longer used.
                "
            ::= { hwProtectionAbilityEntry 3 }
        
        hwGauPortProtectTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwGauPortProtectEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Gau port config protective group.The index of this table is hwGauFirstPortIfIndex. 
                "
            ::= { hwProtection 3 }
        
        hwGauPortProtectEntry OBJECT-TYPE
            SYNTAX      HwGauPortProtectEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "    
                Gau port config protective group.The index of this entry is hwGauFirstPortIfIndex. 
                "
            INDEX    
                {  
                hwGauFirstPortIfIndex
                }
            ::= { hwGauPortProtectTable 1 }
        
        HwGauPortProtectEntry ::=
            SEQUENCE
                {
                hwGauFirstPortIfIndex 
                    Integer32,
                hwGauSecondPortIfIndex
                    Integer32,
                hwGauPortrotectRowStatus
                    RowStatus,
                hwGauPortCurrentActiveIfIndex
                    Integer32
                }
          
        hwGauFirstPortIfIndex OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Gau first port ifindex.
                "
            ::= { hwGauPortProtectEntry 1 }
          
        hwGauSecondPortIfIndex OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Gau Second port ifindex.
                "
            ::= { hwGauPortProtectEntry 2 }
        
        hwGauPortrotectRowStatus OBJECT-TYPE
            SYNTAX      RowStatus
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Config protective group rowstauts.
                "
            ::= { hwGauPortProtectEntry 3 }
    
        hwGauPortCurrentActiveIfIndex OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                Current active port ifindex.
                "
            ::= { hwGauPortProtectEntry 4 }
        
        hwPgCheckFrequency OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "
                protection group check frequency.
                "
            ::= { hwProtection 4 }
        
        hwPsGroupTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwPsGroupEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Group table.
                The objects in hwPsGroupTable are used for performing operations associated with the protection group. 
                The operations include creating and deleting a protection group, setting the protection group switchover 
                function, setting the switchover recovery waiting time, setting the description information about a protection group, 
                freezing and unfreezing a protection group, enabling and disabling a protection group, and querying the settings 
                of a protection group.
                The index of this table is hwPgGroupId.
                "
            ::= { hwProtection 5 }
        
        hwPsGroupEntry OBJECT-TYPE
            SYNTAX      HwPsGroupEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Group table.
                The objects in hwPsGroupTable are used for performing operations associated with the protection group. 
                The operations include creating and deleting a protection group, setting the protection group switchover 
                function, setting the switchover recovery waiting time, setting the description information about a protection group, 
                freezing and unfreezing a protection group, enabling and disabling a protection group, and querying the settings 
                of a protection group.
                The index of this entry is hwPgGroupId.
                "
            INDEX{  
                  hwPgGroupId
                 }
            ::= { hwPsGroupTable 1 }
        
        HwPsGroupEntry ::=
            SEQUENCE
                {
                hwPgGroupId    
                    Integer32,
                hwPgGroupWorkMode    
                    INTEGER,
                hwPgGroupReversionTime    
                    Integer32,
                hwPgGroupReversion    
                    INTEGER,
                hwPgGroupFreeze    
                    INTEGER,
                hwPgGroupAdmin    
                    INTEGER,
                hwPgGroupDesc
                    OCTET STRING,
                hwPgGroupProtectTarget
                    INTEGER,
                hwPgGroupRowStatus    
                    RowStatus
                }
          
        hwPgGroupId OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  accessible-for-notify
            STATUS      current
            DESCRIPTION
                "
                Protection group ID.  
                "
            ::= { hwPsGroupEntry 1 }   
         
        hwPgGroupWorkMode OBJECT-TYPE
            SYNTAX  INTEGER
                {
                timedelay(1),
                portstate(2),
                smartlink(3),
                unidirection(4),
                bidirection(5),
                smartlinkbalance(6),
                boardstate(7),
                dualparenting(8)
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Group workmode. 
                Options:
                1. timedelay(1)       -ETH delay mode.
                2. portstate(2)       -ETH state mode.
                3. smartlink(3)       -SMART LINK active/standby mode.
                4. unidirection(4)    -STM-1 single-direction protection mode.
                5. bidirection(5)     -bidirection.                
                6. smartlinkbalance(6)-SMART LINK load sharing mode.
                7. boardstate(7)      -Board state mode.
                8. dualparenting(8)   -Dual-parenting mode.
                "
            ::= { hwPsGroupEntry 2 } 
        
        hwPgGroupReversionTime OBJECT-TYPE
            SYNTAX      Integer32 (1..1440)
            UNITS       "second"
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Group reversion time.
                Range: 1-1440
                Default: 720
                Unit: second          
                "
            ::= { hwPsGroupEntry 3 }      
        
        hwPgGroupReversion OBJECT-TYPE
            SYNTAX  INTEGER
                {          
                enable(1),
                disable(2)                      
                }     
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Group reversion operation.
                Options:
                1. enable(1)  -indicates that the protection group switchover recovery function is enabled
                2. disable(2) -indicates that the protection group switchover recovery function is disabled
                "
            ::= { hwPsGroupEntry 4 } 
        
        hwPgGroupFreeze OBJECT-TYPE
            SYNTAX  INTEGER
                {
                freeze(1),
                undofreeze(2)
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Group freeze operation.
                Options:
                1. freeze(1)     -Frozen state
                2. undofreeze(2) -Unfrozen state
                "
            ::= { hwPsGroupEntry 5 }     
        
        hwPgGroupAdmin OBJECT-TYPE
            SYNTAX  INTEGER
                {
                enable(1),
                disable(2)
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Group admin operation. 
                Options:
                1. enable(1)  -The protection group is enabled
                2. disable(2) -The protection group is disabled
                "
            ::= { hwPsGroupEntry 6 }  
        
        hwPgGroupDesc OBJECT-TYPE
            SYNTAX      OCTET STRING (SIZE (0..64))
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Group description.
                All characters must between 0x20 and 0x7E, and can not be question mark.
                Double quotation mark can not be the first or last character.
                Blank can not follow double quotation mark.
                "
            ::= { hwPsGroupEntry 7 } 
  
        hwPgGroupProtectTarget OBJECT-TYPE
            SYNTAX INTEGER
                {
                asmainboard(1),
                asmainboardport(2),
                asmainboardlag(3),
                ethnniport(4),
                ethnnilagmember(5),
                eponuniport(6),
                gponuniport(7),
                stmnniport(8),
                serviceprocessboard(9),
                eponuniont(10),
                gponuniont(11),
                twdmchannelgroup(12)
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Group protect target.
                Options:
                1. asmainboard(1)     -Active main board and standby main board.
                2. asmainboardport(2) -Port of active main board and standby main board.
                3. asmainboardlag(3)  -LAG of active main board and standby main board.
                4. ethnniport(4)      -Port of Ethernet nni.
                5. ethnnilagmember(5) -LAG member of Ethernet nni.
                6. eponuniport(6)     -Port of EPON uni.
                7. gponuniport(7)     -Port of GPON uni.
                8. stmnniport(8)      -Port of STM-1 nni.
                9. serviceprocessboard(9)-serviceprocessboard.
                10.eponuniont(10)     -Ont of EPON uni.
                11.gponuniont(11)     -Ont of GPON uni.
                12.twdmchannelgroup(12) - Channel group of TWDM PON.
                "
            ::= { hwPsGroupEntry 9 } 
        
        hwPgGroupRowStatus OBJECT-TYPE
            SYNTAX      RowStatus
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Group rowstatus. 
                Options:
                1. createAndGo(4) -create a new instance of a conceptual row 
                2. destroy(6)     -delete the instances associated with an existing conceptual row                 
                "
            ::= { hwPsGroupEntry 10 }
        
        hwPsMemberTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwPsMemberEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Member table.
                The objects in hwPsMemberTable are used for performing operations associated with 
                the protection group member. The operations include adding and deleting a member, 
                forced or manual switchover, locking a member, and querying the information about 
                a member. This table is used to manage only the protection group member which is a port 
                or a board. To manage the protection group member which is an ONT, use hwPsOntMemberTable.                
                The indexes of this table are IfIndex and hwPgGroupId.
                When IfIndex = -1, walk all member of hwPgGroupId.
                Only ifIndex can be used to determine specific members.
                "
            ::= { hwProtection 6 }

        hwPsMemberEntry OBJECT-TYPE
            SYNTAX      HwPsMemberEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Member table.
                The objects in hwPsMemberTable are used for performing operations associated with 
                the protection group member. The operations include adding and deleting a member, 
                forced or manual switchover, locking a member, and querying the information about 
                a member. This table is used to manage only the protection group member which is a port 
                or a board. To manage the protection group member which is an ONT, use hwPsOntMemberTable.                
                The indexes of this entry are IfIndex and hwPgGroupId.
                When IfIndex = -1, walk all member of hwPgGroupId.
                Only ifIndex can be used to determine specific members.
                "
            INDEX    
                {  
                ifIndex, 
                hwPgGroupId
                }
            ::= { hwPsMemberTable 1 }
        
        HwPsMemberEntry ::=
            SEQUENCE
                {
                hwPgMemberRole    
                    INTEGER,
                hwPgMemberOper    
                    INTEGER,
                hwPgMemberStatus
                    INTEGER,
                hwPgDstMember    
                    Integer32,
                hwPgMemberRunningState    
                    INTEGER,
                hwPgMemberPeerMember    
                    Integer32,
                hwPgMemberRowStatus    
                    RowStatus
                }

        hwPgMemberRole OBJECT-TYPE
            SYNTAX  INTEGER
               {
                work(1),
                protect(2)
               }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Member role.
                Options: 
                1. work(1)    -Working member
                2. protect(2) -Protection member
                "
            ::= { hwPsMemberEntry 1 }    
        
        hwPgMemberOper OBJECT-TYPE
            SYNTAX INTEGER
                {
                 manualswitch(1),
                 undomanualswitch(2),                
                 forceswitch(3),
                 undoforceswitch(4),
                 lockout(5),
                 unlockout(6),
                 exerciseswitch(7),
                 undoexerciseswitch(8)             
                }
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "
                Member operation.
                Options:
                1. manualswitch(1)    -manual-switch
                                       The manual switchover can be performed only when the protection group 
                                       is enabled, no member is locked, no forced switchover is performed, 
                                       and no member is faulty
                2. undomanualswitch(2)-undo-manual-switch                
                3. forceswitch(3)     -force-switch
                                       The forced switchover can be performed only when the protection 
                                       group is enabled and no member is locked
                                       When the command for this operation is issued, the switchover is performed 
                                       regardless of whether the specified target member is normal 
                4. undoforceswitch(4) -undo force-switch
                5. lockout(5)         -The protection group member is locked. After being locked, the protection group 
                                       member does not participate in protection group switchover
                6. unlockout(6)       -The protection group member is unlocked. After being unlocked, the protection 
                                       group member continues to participate in protection group switchover 
                7. exerciseswitch(7)  --exercise-switch
                                       The exercise switchover can be performed only when the protection group 
                                       is enabled, no member is locked, no other type switchover is performed, 
                                       and no member is faulty 
                                       When the command for this operation is issued, no actual switchover is performed,
                                       only members's status is changed
                8. undoexerciseswitch(8)-undo exercise-switch
                Reading this object will result in implementation-specific results.
                "
            ::= { hwPsMemberEntry 2 }     
        

        hwPgMemberStatus OBJECT-TYPE
            SYNTAX INTEGER
                {
                null(1),                
                manualswitchsrc(2),
                manualswitchdst(3),
                forceswitchsrc(4),
                forceswitchdst(5),
                autoswitchsrc(6),
                autoswitchdst(7), 
                lockout(8),
                exerciseswitch(9)
                }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                Member status.
                Options:
                1. null(1)               -Null operation      
                2. manualswitchsrc(2)    -Source member of the manual switchover
                3. manualswitchdst(3)    -Target member of the manual switchover
                4. forceswitchsrc(4)     -Source member of the forced switchover
                5. forceswitchdst(5)     -Target member of the forced switchover
                6. autoswitchsrc(6)      -Source member of the automatic switchover
                7. autoswitchdst(7)      -Target member of the automatic switchover
                8. lockout(8)            -Locked                    
                9. exerciseswitch(9)     -Exercise switched        
                "
            ::= { hwPsMemberEntry 3 }      
    
        hwPgDstMember OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "
                Target member ifindex.Reading this object will result in implementation-specific results.
                "
            ::= { hwPsMemberEntry 4 }
          
        hwPgMemberRunningState OBJECT-TYPE
            SYNTAX INTEGER
                 {
                 active(1),                                  
                 standby(2),                                 
                 adding(3),                                  
                 deleting(4),                                
                 switching(5)                                
                 }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                Member status.
                Options:
                1. active(1)   -State of the member that carries the service
                2. standby(2)  -State of the member that does not carry the service
                3. adding(3)   -Adding
                4. deleting(4) -Deleting
                5. switching(5)-Switching                
                "
            ::= { hwPsMemberEntry 5 }         
          
        hwPgMemberPeerMember OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                Peer member ifindex.
                "
            ::= { hwPsMemberEntry 6 }   
          
        hwPgMemberRowStatus OBJECT-TYPE
            SYNTAX      RowStatus
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Member rowstatus.
                Options:
                1. createAndGo(4) -create a new instance of a conceptual row 
                2. destroy(6)     -delete the instances associated with an existing conceptual row                
                "
            ::= { hwPsMemberEntry 8 }       
        
        hwPsGroupExtTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwPsGroupExtEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Protect extended Group table.The index of this table is hwPgGroupId.
                This table is used to config private parameter of protection group.
                "
            ::= { hwProtection 7 }
            
        hwPsGroupExtEntry OBJECT-TYPE
            SYNTAX      HwPsGroupExtEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Protect extended Group table.The index of this entry is hwPgGroupId.
                This table is used to config private parameter of protection group.
                "
            INDEX {hwPgGroupId}
            ::= { hwPsGroupExtTable 1 }
        
        HwPsGroupExtEntry ::=
            SEQUENCE
                {
                hwPsGroupFlushSendCtrlVlan
                    Integer32,
                hwPsGroupFlushSendPassword
                    OCTET STRING,
                hwPsGroupLoadBalanceState
                    INTEGER,
                hwPsGroupPppoeSingleMac
                    INTEGER,
                hwPsGroupAntiJitterTime
                    Integer32,
                hwPgGroupAssociatedUpLinkBfd
                    OCTET STRING,
                hwPgGroupAssociatedUpLinkPort
                    Integer32,
                hwPgGroupAssociatedUpLinkStatus
                    INTEGER,
                hwPsGroupStandardTypeB
                    INTEGER,
                hwPgGroupAssociatedUpLinkMdIndex
                    Integer32,
                hwPgGroupAssociatedUpLinkMaIndex
                    Integer32,
                hwPgGroupAssociatedUpLinkMepIndex
                    Integer32,        
                hwPsGroupDpPeerNodeName
                    OCTET STRING,
                hwPsGroupDpPeerFrameSlotPort
                    Unsigned32,
                hwPsGroupDpHandshakeStatus
                    INTEGER,
                hwPsGroupStandbyDetectSwitch
                    INTEGER,
                hwPsGroupPortStateTimerOffTime
                    Integer32,
                hwPsGroupPortStateTimerOnTime
                    Integer32,
                hwPsGroupStandbyPortSuppressFlappingSwitch
                    INTEGER,
                hwPsGroupStandbyPortRssiMonitoringPolicySwitch
                    INTEGER,
                hwPsGroupStandbyPortRssiMonitoringInterval
                    Integer32,
                hwPsGroupStandbyPortRssiMonitoringLowRssiAlarmThreshold
                    Integer32
                }

        hwPsGroupFlushSendCtrlVlan OBJECT-TYPE
            SYNTAX      Integer32(-1 | 1..4093)
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Control VLAN ID of flush packet which to send.
                -1 means set VLAN ID to useless value.
                "
            ::= { hwPsGroupExtEntry 1 }    
        
        hwPsGroupFlushSendPassword OBJECT-TYPE
            SYNTAX      OCTET STRING (SIZE(0..16))
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Password of flush packet which to send.
                Blank string means set password to useless value.
                All characters must between 0x20 and 0x7E, and can not be question mark.
                Double quotation mark can not be the first or last character.
                Blank can not follow double quotation mark.
                "
            ::= { hwPsGroupExtEntry 2 } 
      
        hwPsGroupLoadBalanceState OBJECT-TYPE
            SYNTAX INTEGER
                {
                allonwork(1),
                allonprotect(2),
                loadbalance(3),
                invalid(-1)
                }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                Load balance state of smart link protect group.
                Options:
                1. allonwork(1)    - Load balance state of smart link protect group is allonwork
                2. allonprotect(2) - Load balance state of smart link protect group is allonprotect
                3. loadbalance(3)  - Load balance state of smart link protect group is loadbalance   
                4. invalid(-1)     - Load balance state of smart link protect group is invalid 
                "
            ::= { hwPsGroupExtEntry 3 }
          
        hwPsGroupPppoeSingleMac OBJECT-TYPE
            SYNTAX      INTEGER
                {
                bind(1),
                unbind(2),
                invalid(-1)
                }
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                group pppoe single-mac operation. 
                Options:
                1.bind(1)     -  The operation is bound 
                2.unbind(2)   -  The operation is unbound 
                3.invalid(-1) -  The operation is invalid 
                "
            ::= { hwPsGroupExtEntry 4 }  
    
        hwPsGroupAntiJitterTime OBJECT-TYPE
            SYNTAX      Integer32 (-1 | 1..1440)
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "
                Set anti-jitter time gpon or epon protect-group.
                The allowable value is from 1 to 1440 seconds. 
                The invalid value is -1.
                Defaut value is 720 seconds.        
                "
            ::= { hwPsGroupExtEntry 5 }   
            
        hwPgGroupAssociatedUpLinkBfd OBJECT-TYPE
            SYNTAX      OCTET STRING (SIZE(0..15))
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "
                This indicates the name of the BFD session which will be bound/unbound.
                "
            ::= { hwPsGroupExtEntry 6 }    
            
        hwPgGroupAssociatedUpLinkPort OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "
                ETH port member ifindex which will be bound/unbound.
                "
            ::= { hwPsGroupExtEntry 7 }   
            
        hwPgGroupAssociatedUpLinkStatus  OBJECT-TYPE
            SYNTAX      INTEGER
                {  
                binddown(1),
                bindup(2),
                unbind(3),
                invalid(-1)
                }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "
                group uplink monitor status. 
                Options:    
                1.binddown(1)   -  uplink status is down 
                2.bindup(2)     -  uplink status is up 
                3.unbind(3)     -  unbound uplink monitor
                4.invalid(-1)   -  The operation is invalid 
                "
            ::= { hwPsGroupExtEntry 8 } 

        hwPsGroupStandardTypeB  OBJECT-TYPE
            SYNTAX  INTEGER {
                yes(1),
                no(2),
                invalid(-1)
            }
            MAX-ACCESS read-write
            STATUS  current
            DESCRIPTION
                "This object indicates whether the GPON uni port protect-group is standard Type B.
                 Options:
                 1. yes(1)            - Standard Type B
                 2. no(2)             - Nonstandard Type B
                 3. invalid(-1)       - Indicates that no information is detected
                "
            ::= { hwPsGroupExtEntry 9 } 
            
        hwPgGroupAssociatedUpLinkMdIndex OBJECT-TYPE
            SYNTAX      Integer32(-1 | 0..7)
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the MD index which will be bound/unbound.
                 hwPgGroupAssociatedUpLinkMdIndex, hwPgGroupAssociatedUpLinkMaIndex and hwPgGroupAssociatedUpLinkMepIndex 
                 must be issued together.
                "
            ::= { hwPsGroupExtEntry 10 }   
       
        hwPgGroupAssociatedUpLinkMaIndex OBJECT-TYPE
            SYNTAX      Integer32(-1 | 0..4095)
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the MA index which will be bound/unbound.
                 hwPgGroupAssociatedUpLinkMdIndex, hwPgGroupAssociatedUpLinkMaIndex and hwPgGroupAssociatedUpLinkMepIndex 
                 must be issued together.
                "
            ::= { hwPsGroupExtEntry 11 }   
         
         hwPgGroupAssociatedUpLinkMepIndex OBJECT-TYPE
            SYNTAX      Integer32(-1 | 1..8191)
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the MEP index which will be bound/unbound.
                 hwPgGroupAssociatedUpLinkMdIndex, hwPgGroupAssociatedUpLinkMaIndex and hwPgGroupAssociatedUpLinkMepIndex 
                 must be issued together.
                "
            ::= { hwPsGroupExtEntry 12 }     
                
        hwPsGroupDpPeerNodeName  OBJECT-TYPE
            SYNTAX      OCTET STRING (SIZE(0..15))
            MAX-ACCESS read-write
            STATUS  current
            DESCRIPTION
                "This object indicates the peer node name of Type B dual parenting protect group.
                 The empty string indicates that the peer node name is deleted.
                "
            ::= { hwPsGroupExtEntry 13 } 

        hwPsGroupDpPeerFrameSlotPort  OBJECT-TYPE
            SYNTAX  Unsigned32
            MAX-ACCESS read-write
            STATUS  current
            DESCRIPTION
                "This object indicates the peer node frameid, slotid and portid of Type B dual parenting protect group.
                 Format: frameid(2bytes) + slotid(1bytes) + portid(1bytes)
                 An invalid value 0xFFFFFFFF indicates that the peer node frameid, slotid and portid is deleted.
                "
            ::= { hwPsGroupExtEntry 14 } 

        hwPsGroupDpHandshakeStatus  OBJECT-TYPE
            SYNTAX  INTEGER
            {
            normal(1),
            failed(2),
            invalid(-1)
            }
            MAX-ACCESS read-only
            STATUS  current
            DESCRIPTION
                "This object indicates the handshake status between the local member and peer member of dual parenting protect group.
                 Options:
                 1. normal(1)      - Indicates that the handshake status is normal
                 2. failed(2)      - Indicates that the handshake status is failed
                 3. invalid(-1)    - Indicates that the query fails or no information is detected
                "
            ::= { hwPsGroupExtEntry 15 } 
            
        hwPsGroupStandbyDetectSwitch OBJECT-TYPE
          SYNTAX INTEGER
              {
              enable(1),
              disable(2),
              invalid(-1)
              }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
              "Function of detecting the forced mode of the standby port in the timedelay protection group for active and standby control boards.
               Options:
               1. enable(1)   - Indicates that the detecting function is enable.
               2. disable(2)  - Indicates that the detecting function is disable.                
               3. invalid(-1) - Indicates invalid value.
               
               During the query operation, when the protection group does not support the detecting function, 
               the value is invalid(-1).
               When the protection group supports the detecting function, the default value is disable(2).
               "
           ::= { hwPsGroupExtEntry 16 }   
                               
        hwPsGroupPortStateTimerOffTime OBJECT-TYPE
            SYNTAX      Integer32(-1 | 1..1200)
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the closing time of portstate protect group active port, when the active port is offline.
                 The allowable value is from 1 to 1200 seconds. 
                 The invalid value is -1.
                 Default: 5
                 Unit: second
                "
            ::= { hwPsGroupExtEntry 17 }
            
        hwPsGroupPortStateTimerOnTime OBJECT-TYPE
            SYNTAX      Integer32(-1 | 1..1200)
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the opening time of portstate protect group active port, after closing time for the active port offline.
                 The allowable value is from 1 to 1200 seconds. 
                 The invalid value is -1.
                 Default: 90
                 Unit: second                
                "
            ::= { hwPsGroupExtEntry 18 } 
			        
        hwPsGroupStandbyPortSuppressFlappingSwitch OBJECT-TYPE
          SYNTAX INTEGER
              {
              disable(0),
              enable(1),
              invalid(-1)
              }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
              "Function of flapping suppression of the standby port in the timedelay protection group.
               Options:
               1. disable(0)   - Indicates that the flapping suppression function is disable.
               2. enable(1)    - Indicates that the flapping suppression function is enable.                
               3. invalid(-1)  - Indicates invalid value.
               
               During the query operation, when the protection group does not support the flapping suppression function, 
               the value is invalid(-1).
               When the protection group supports the flapping suppression function, the default value is disable(0).
               "
           ::= { hwPsGroupExtEntry 19 } 

        hwPsGroupStandbyPortRssiMonitoringPolicySwitch OBJECT-TYPE
          SYNTAX INTEGER
              {
              disable(0),
              enable(1),
              invalid(-1)
              }
          MAX-ACCESS  read-write
          STATUS      current
          DESCRIPTION
              "Function of RSSI detect of the standby port in the protection group.
               Options:
               1. disable(0)   - Indicates that the RSSI detect function is disable.
               2. enable(1)    - Indicates that the RSSI detect function is enable.
               3. invalid(-1)  - Indicates invalid value.

               During the query operation, when the protection group does not support the RSSI detect function,
               the value is invalid(-1).
               When the protection group supports the RSSI detect function, the default value is disable(0).
               "
           ::= { hwPsGroupExtEntry 20 }

        hwPsGroupStandbyPortRssiMonitoringInterval OBJECT-TYPE
            SYNTAX      Integer32 (-1 | 4..96)
            UNITS       "15 minute"
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the interval of standby port RSSI detect, the default value is 8.
				 A special value of -1 indicates the RSSI detect function of this protection group is disabled during the query operation.
                "
            ::= { hwPsGroupExtEntry 21 }

        hwPsGroupStandbyPortRssiMonitoringLowRssiAlarmThreshold  OBJECT-TYPE
            SYNTAX      Integer32 (-9900..10000 | 2147483647)
            UNITS       "0.01 dBm"
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
               "This object indicates the threshold of standby port RSSI min value. It ranges from -9900 to 10000 units of 0.01 dBm, the default value is -2800.
			    A special value of 0x7FFFFFFE (2147483646) indicates the RSSI detect function of this protection group is disabled during the query operation.
		       "
            ::= { hwPsGroupExtEntry 22 }

        hwPsGroupLoadBalanceTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwPsGroupLoadBalanceEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Protect group load balance configuration table.
                The indexes of this table are hwPgGroupId and hwPsGroupLoadBalanceInstance.
                "
            ::= { hwProtection 8 }
        
        hwPsGroupLoadBalanceEntry OBJECT-TYPE
            SYNTAX      HwPsGroupLoadBalanceEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Protect group load balance configuration table.
                The indexes of this entry are hwPgGroupId and hwPsGroupLoadBalanceInstance.
                "
            INDEX { hwPgGroupId, hwPsGroupLoadBalanceInstance}
            ::= { hwPsGroupLoadBalanceTable 1 }
        
        HwPsGroupLoadBalanceEntry ::=
            SEQUENCE
                {
                hwPsGroupLoadBalanceInstance
                    Integer32,
                hwPsGroupLoadBalanceRole    
                    INTEGER
                }
            
        hwPsGroupLoadBalanceInstance OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                Instance ID.
                From 0 to the max instance ID.
                The max intance ID is different for products.
                "
            ::= { hwPsGroupLoadBalanceEntry 1 }    
            
        hwPsGroupLoadBalanceRole OBJECT-TYPE
            SYNTAX INTEGER
                {
                onwork(1),
                onprotect(2)
                }
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "
                Load balance configuration of instance in each protect group.
                Default value is on-work.
                Options:
                1. onwork(1)    -forward through work member on load-balance state
                2. onprotect(2) -forward through protect member on load-balance state
                If not on load-balance state, all instance forward through active member.                
                "
            ::= { hwPsGroupLoadBalanceEntry 2 } 
        
        hwSmartLinkFlushRecvPortTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwSmartLinkFlushRecvPortEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "Describes the configuration information for receiving the flush packet.
                 The index of this table is ifIndex.
                "
            ::= { hwProtection 9 }
        
        hwSmartLinkFlushRecvPortEntry OBJECT-TYPE
            SYNTAX      HwSmartLinkFlushRecvPortEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "Describes the configuration information for receiving the flush packet.
                 The index of this entry is ifIndex.
                "
            INDEX {ifIndex}
            ::= { hwSmartLinkFlushRecvPortTable 1 }
        
        HwSmartLinkFlushRecvPortEntry ::=
            SEQUENCE
                {
                hwSmartLinkFlushRecvCtrlVlan
                    Integer32,
                hwSmartLinkFlushRecvPassword
                    OCTET STRING
                }

        hwSmartLinkFlushRecvCtrlVlan OBJECT-TYPE
            SYNTAX      Integer32(-1 | 1..4093)
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "Indicates the control VLAN of the received flush packet.
                 Range: -1, 1-4093
                 -1 indicates deleting the control VLAN.
                "
            ::= { hwSmartLinkFlushRecvPortEntry 1 }    
        
        hwSmartLinkFlushRecvPassword OBJECT-TYPE
            SYNTAX      OCTET STRING (SIZE(0..16))
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "Indicates the authentication password of the received flush packet.
                 When the value of this leaf is a null character string, it indicates that no password authentication is required. 
                 All characters in the password must be ASCII codes from 0x20 to 0x7E.
                "
            ::= { hwSmartLinkFlushRecvPortEntry 2 } 
        
        hwSmartLinkFlushRecvStatistics OBJECT IDENTIFIER ::= { hwProtection 10 }
        
        hwSmartLinkFlushRecvLastIfIndex OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the index of the last port that receives the flush packet. Its calculation is the same as that of ifIndex.
                 -1 indicates invalid value.
                "
            ::= { hwSmartLinkFlushRecvStatistics 1 }
        
        hwSmartLinkFlushRecvLastTime OBJECT-TYPE
            SYNTAX      DateAndTime
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the last time when the flush packet is received. 
                 The value format of this leaf is an 8-byte hexadecimal number. Among the eight bytes, the 
                 first and second bytes indicates the year, the third byte indicates the month, the fourth byte 
                 indicates the day, the fifth byte indicates the hour, the sixth byte indicates the minute, the 
                 seventh byte indicates 1/10 second and is fixedly filled with 0, and the eighth, ninth, and tenth 
                 bytes indicate the time zone. 
                 For example, if the time is 2010-2-8, 10:11:38 in GMT+ 8, the value is 0x07 0xDA 0x02 0x08 0x0A 0x0B 
                 0x26 0x00 0x2B 0x08 0x00.
                 Because the time range that can be identified by the device is from 1970-01-01 00:00 to 2099-12-31 23:59, 
                 the time set for this leaf must within this time range.
                 The first 8-byte hexadecimal value is 0, it indicates invalid value.
                "
            ::= { hwSmartLinkFlushRecvStatistics 2 }
        
        hwSmartLinkFlushRecvLastSrcMacAddr OBJECT-TYPE
            SYNTAX      MacAddress
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the last source MAC address that receives the flush packet.
                 The 00:00:00:00:00:00 MAC address indicates invalid value.
                "
            ::= { hwSmartLinkFlushRecvStatistics 3 }
        
        hwSmartLinkFlushRecvLastCtrlVlan OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the last control VLAN that receives the flush packet.
                 Range: -1, 1-4093
                 -1 indicates invalid value.
                "
            ::= { hwSmartLinkFlushRecvStatistics 4 }
           
        hwMonitorLinkGroupTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwMonitorLinkGroupEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "Used for configuring a monitor link group.
                 The index of this table is hwMonitorLinkGroupId.
                "
            ::= { hwProtection 11 }
        
        hwMonitorLinkGroupEntry OBJECT-TYPE
            SYNTAX      HwMonitorLinkGroupEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "Used for configuring a monitor link group.
                 The index of this entry is hwMonitorLinkGroupId.
                "
            INDEX {hwMonitorLinkGroupId }
            ::= { hwMonitorLinkGroupTable 1 }
        
        HwMonitorLinkGroupEntry ::=
            SEQUENCE
                {
                hwMonitorLinkGroupId
                    Integer32,
                hwMonitorLinkGroupRecoverTime    
                    Integer32,
                hwMonitorLinkGroupState    
                    INTEGER,
                hwMonitorLinkGroupRowStatus    
                    RowStatus
                }
        
        hwMonitorLinkGroupId OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  accessible-for-notify
            STATUS      current
            DESCRIPTION
                "Indicates the index of the monitored group.
                 When the value of hwMonitorLinkGroupId is -1 or 65535, it indicates that an available monitoring group ID is automatically allocated.
                "
            ::= { hwMonitorLinkGroupEntry 1 }    
        
        hwMonitorLinkGroupRecoverTime OBJECT-TYPE
            SYNTAX      Integer32 (3..60)
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "Indicates the recovery time of the monitored group.
                 Range: 3-60
                 Default: 3
                 Unit: second
                "
            ::= { hwMonitorLinkGroupEntry 2 } 
        
        hwMonitorLinkGroupState OBJECT-TYPE
            SYNTAX INTEGER
                {
                idle(1),
                normal(2),
                failed(3),
                recovering(4)
                }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the status of the monitored group.
                 Options:
                 1. idle(1)       -the status of a monitored group is idle
                 2. normal(2)     -the status of a monitored group is normal
                 3. failed(3)     -the status of a monitored group is failed
                 4. recovering(4) -the status of a monitored group is recovering
                "
            ::= { hwMonitorLinkGroupEntry 3 } 
        
        hwMonitorLinkGroupRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "Indicates the row status, used for creating or deleting a monitored group. createAndGo(4) 
                 and destroy(6) are supported. During the query operation, active(1) is always returned for 
                 this leaf.
                 Options:
                 1. active(1)      -when this leaf is queried, the value is fixed to active(1).
                 2. createAndGo(4) -create a monitored group
                 3. destroy(6)     -delete a monitored group
                 
                 To create a monitored group, set hwMonitorLinkGroupRowStatus to createAndGo(4) and perform 
                 the set operation. hwMonitorLinkGroupRecoverTime is optional.
                 To delete a monitored group, set hwMonitorLinkGroupRowStatus to destroy(6) and perform the 
                 set operation.
                "
            ::= { hwMonitorLinkGroupEntry 10 }
        
        hwMonitorLinkUpLinkTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwMonitorLinkUpLinkEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "Used for configuring a monitor up link port.
                 The index of this table is hwMonitorLinkUpLinkIfIndex.
                "
            ::= { hwProtection 12 }
        
        hwMonitorLinkUpLinkEntry OBJECT-TYPE
            SYNTAX      HwMonitorLinkUpLinkEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "Used for configuring a monitor up link port.
                 The index of this entry is hwMonitorLinkUpLinkIfIndex.
                "
            INDEX {hwMonitorLinkGroupId}
            ::= { hwMonitorLinkUpLinkTable 1 }
            
        HwMonitorLinkUpLinkEntry ::=
            SEQUENCE
                {
                hwMonitorLinkUpLinkIfIndex
                    Integer32,
                hwMonitorLinkUpLinkStatus
                    INTEGER,
                hwMonitorLinkUpLinkUpTime
                    DateAndTime,
                hwMonitorLinkUpLinkDownTime
                    DateAndTime
                }
        
        hwMonitorLinkUpLinkIfIndex OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "Indicates the index of the upstream port of the monitored group. Its calculation 
                 is the same as that of ifIndex.
                 When the value of this leaf is -1, it indicates that no upstream port exists.
                "
            ::= { hwMonitorLinkUpLinkEntry 1 }
        
        hwMonitorLinkUpLinkStatus OBJECT-TYPE
            SYNTAX  INTEGER
                {
                linkUp(1),
                linkDown(2),
                invalid(-1)
                }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the status of the upstream port of the monitored group.
                 Options:
                 1. linkUp(1)   -the status of the upstream port of the monitored group is link up
                 2. linkDown(2) -the status of the upstream port of the monitored group is link down
                 3. invalid(-1) -indicates the status of the upstream port is invalid
                "
            ::= { hwMonitorLinkUpLinkEntry 2 }
        
        hwMonitorLinkUpLinkUpTime OBJECT-TYPE
            SYNTAX      DateAndTime
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the last time when the upstream port of the monitored groups is up.
                 The value format of this leaf is an 8-byte hexadecimal number. Among the eight 
                 bytes, the first and second bytes indicates the year, the third byte indicates 
                 the month, the fourth byte indicates the day, the fifth byte indicates the hour, 
                 the sixth byte indicates the minute, the seventh byte indicates 1/10 second and 
                 is fixedly filled with 0, and the eighth, ninth, and tenth bytes indicate the 
                 time zone. 
                 For example, if the time is 2010-2-8, 10:11:38 in GMT+ 8, the value is 0x07 0xDA 
                 0x02 0x08 0x0A 0x0B 0x26 0x00 0x2B 0x08 0x00.
                 Because the time range that can be identified by the device is from 1970-01-01 
                 00:00 to 2099-12-31 23:59, the time set for this leaf must within this time range.
                 The first 8-byte hexadecimal value is 0, it indicates invalid value.
                "
            ::= { hwMonitorLinkUpLinkEntry 3 }
        
        hwMonitorLinkUpLinkDownTime OBJECT-TYPE
            SYNTAX      DateAndTime
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the last time when the upstream port of the monitored groups is down.
                 The value format of this leaf is an 8-byte hexadecimal number. Among the eight bytes, 
                 the first and second bytes indicates the year, the third byte indicates the month, 
                 the fourth byte indicates the day, the fifth byte indicates the hour, the sixth byte 
                 indicates the minute, the seventh byte indicates 1/10 second and is fixedly filled 
                 with 0, and the eighth, ninth, and tenth bytes indicate the time zone. 
                 For example, if the time is 2010-2-8, 10:11:38 in GMT+ 8, the value is 0x07 0xDA 0x02 
                 0x08 0x0A 0x0B 0x26 0x00 0x2B 0x08 0x00.
                 Because the time range that can be identified by the device is from 1970-01-01 00:00 
                 to 2099-12-31 23:59, the time set for this leaf must within this time range.
                 The first 8-byte hexadecimal value is 0, it indicates invalid value.
                "
            ::= { hwMonitorLinkUpLinkEntry 4 }
        
        hwMonitorLinkDownLinkTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwMonitorLinkDownLinkEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "Used for configuring a monitor down link port.
                 The indexes of this table are hwMonitorLinkGroupId and hwMonitorLinkDownLinkIfIndex.
                "
            ::= { hwProtection 13 }
        
        hwMonitorLinkDownLinkEntry OBJECT-TYPE
            SYNTAX      HwMonitorLinkDownLinkEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "Used for configuring a monitor down link port.
                 The indexes of this entry are hwMonitorLinkGroupId and hwMonitorLinkDownLinkIfIndex.
                "
            INDEX {hwMonitorLinkGroupId, hwMonitorLinkDownLinkId}
            ::= { hwMonitorLinkDownLinkTable 1 }
        
        HwMonitorLinkDownLinkEntry ::=
            SEQUENCE
                {
                hwMonitorLinkDownLinkId
                    Integer32,
                hwMonitorLinkDownLinkIfIndex
                    Integer32,
                hwMonitorLinkDownLinkStatus
                    INTEGER,
                hwMonitorLinkDownLinkUpTime
                    DateAndTime,
                hwMonitorLinkDownLinkDownTime
                    DateAndTime,
                hwMonitorLinkDownLinkOntId
                    Integer32,
                hwMonitorLinkDownLinkOntPortId
                    Integer32,
                hwMonitorLinkDownRowStatus
                    RowStatus
                }
        
        hwMonitorLinkDownLinkId OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "Indicates the index of the downlink of the monitored group.
                 Range: 0-511.
                 When the value of hwMonitorLinkDownLinkId is -1 or 65535, it indicates that an available downlink ID is automatically allocated.
                "
            ::= { hwMonitorLinkDownLinkEntry 1 }
        
        hwMonitorLinkDownLinkIfIndex OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "Indicates the index of the downstream port of the monitored group.
                "
            ::= { hwMonitorLinkDownLinkEntry 2 }
        
        hwMonitorLinkDownLinkStatus OBJECT-TYPE
            SYNTAX      INTEGER
                {
                linkUp(1),
                linkDown(2)
                }
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the status of the downstream port of the monitored group.
                 Options:
                 1. linkUp(1)   -the status of the downstream port of the monitored group is link up
                 2. linkDown(2) -the status of the downstream port of the monitored group is link down
                "
            ::= { hwMonitorLinkDownLinkEntry 3 }
        
        hwMonitorLinkDownLinkUpTime OBJECT-TYPE
            SYNTAX      DateAndTime
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the last time when the downstream port of the monitored groups is up.
                 The value format of this leaf is an 8-byte hexadecimal number. Among the eight 
                 bytes, the first and second bytes indicates the year, the third byte indicates 
                 the month, the fourth byte indicates the day, the fifth byte indicates the hour, 
                 the sixth byte indicates the minute, the seventh byte indicates 1/10 second and 
                 is fixedly filled with 0, and the eighth, ninth, and tenth bytes indicate the 
                 time zone. 
                 For example, if the time is 2010-2-8, 10:11:38 in GMT+ 8, the value is 0x07 0xDA 
                 0x02 0x08 0x0A 0x0B 0x26 0x00 0x2B 0x08 0x00.
                 Because the time range that can be identified by the device is from 1970-01-01 
                 00:00 to 2099-12-31 23:59, the time set for this leaf must within this time range.
                 The first 8-byte hexadecimal value is 0, it indicates invalid value.
                "
            ::= { hwMonitorLinkDownLinkEntry 4 }
        
        hwMonitorLinkDownLinkDownTime OBJECT-TYPE
            SYNTAX      DateAndTime
            MAX-ACCESS  read-only
            STATUS      current
            DESCRIPTION
                "Indicates the last time when the downstream port of the monitored groups is down.
                 The value format of this leaf is an 8-byte hexadecimal number. Among the eight bytes, 
                 the first and second bytes indicates the year, the third byte indicates the month, 
                 the fourth byte indicates the day, the fifth byte indicates the hour, the sixth byte 
                 indicates the minute, the seventh byte indicates 1/10 second and is fixedly filled 
                 with 0, and the eighth, ninth, and tenth bytes indicate the time zone. 
                 For example, if the time is 2010-2-8, 10:11:38 in GMT+ 8, the value is 0x07 0xDA 0x02 
                 0x08 0x0A 0x0B 0x26 0x00 0x2B 0x08 0x00.
                 Because the time range that can be identified by the device is from 1970-01-01 00:00 
                 to 2099-12-31 23:59, the time set for this leaf must within this time range.
                 The first 8-byte hexadecimal value is 0, it indicates invalid value.
                "
            ::= { hwMonitorLinkDownLinkEntry 5 }
        
        hwMonitorLinkDownLinkOntId OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "Indicates the Ont ID of the downstream port of the monitored group.
                This node is not specified or is set to -1 if a no-xPON ONT Ethernet port is used for indicating a downlink.
                "
            ::= { hwMonitorLinkDownLinkEntry 6 }
        
        hwMonitorLinkDownLinkOntPortId OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "Indicates the Ont port ID of the downstream port of the monitored group.
                This node is not specified or is set to -1 if a no-xPON ONT Ethernet port is used for indicating a downlink.
                "
            ::= { hwMonitorLinkDownLinkEntry 7 }
        
        hwMonitorLinkDownRowStatus OBJECT-TYPE
            SYNTAX      RowStatus
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "Indicates the row status, used for creating or deleting a monitored downlink. createAndGo(4) 
                 and destroy(6) are supported. During the query operation, active(1) is always returned for 
                 this leaf.
                 Options:
                 1. active(1)      -when this leaf is queried, the value is fixed to active(1).
                 2. createAndGo(4) -create a monitored downlink
                 3. destroy(6)     -delete a monitored downlink
                 
                 To create a monitored downlink, specify hwMonitorLinkDownLinkIfIndex, set hwMonitorLinkDownRowStatus 
                 to createAndGo(4) and perform the set operation.
                 To delete a monitored downlink, set hwMonitorLinkGroupRowStatus to destroy(6) and perform the 
                 set operation.
                "
            ::= { hwMonitorLinkDownLinkEntry 10 }
            
        hwPsOntMemberTable OBJECT-TYPE
            SYNTAX SEQUENCE OF HwPsOntMemberEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "
                Member table for ONT.
                The objects in hwPsOntMemberTable are used for performing operations associated with 
                the ONT protection group member. The operations include adding and deleting a member, 
                forced or manual switchover, locking a member, and querying the information about 
                a member. This table determines a protection group member by the ifIndex and hwPgOntId 
                of the member. The indexes of this table are IfIndex, hwOntId and hwPgGroupId.
                When IfIndex = -1, hwOntId = -1, walk all member of hwPgGroupId.
                "
            ::= { hwProtection 14 }
        
                
        hwPsOntMemberEntry OBJECT-TYPE
            SYNTAX HwPsOntMemberEntry
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION         
                "
                Member table for ONT.
                The objects in hwPsOntMemberTable are used for performing operations associated with 
                the ONT protection group member. The operations include adding and deleting a member, 
                forced or manual switchover, locking a member, and querying the information about 
                a member. This table determines a protection group member by the ifIndex and hwPgOntId 
                of the member. The indexes of this entry are IfIndex, hwOntId and hwPgGroupId.
                When IfIndex = -1, hwOntId = -1, walk all member of hwPgGroupId.                    
                "
            INDEX 
                { 
                ifIndex, 
                hwPgOntId, 
                hwPgGroupId 
                }
            ::= { hwPsOntMemberTable 1 }


        HwPsOntMemberEntry ::=
            SEQUENCE { 
                hwPgOntId
                    Integer32,
                hwPgOntMemberRole
                    INTEGER,
                hwPgOntMemberOper
                    INTEGER,
                hwPgOntMemberStatus
                    INTEGER,
                hwPgOntDstMemberPort
                    Integer32,
                hwPgOntDstMemberOnt
                    Integer32,
                hwPgOntMemberRunningState
                    INTEGER,
                hwPgOntMemberPeerMemberPort
                    Integer32,
                hwPgOntMemberPeerMemberOnt
                    Integer32,
                hwPgOntMemberRowStatus
                    RowStatus
             }

        hwPgOntId OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS not-accessible
            STATUS current
            DESCRIPTION
                "
                Ont ID.
                "
            ::= { hwPsOntMemberEntry 1 }


        hwPgOntMemberRole OBJECT-TYPE
            SYNTAX INTEGER
                {
                work(1),
                protect(2)
                }
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "
                Member role.
                Options:
                1. work(1)    -Working member
                2. protect(2) -Protection member                       
                "
            ::= { hwPsOntMemberEntry 2 }


        hwPgOntMemberOper OBJECT-TYPE
            SYNTAX INTEGER
                 {
                 manualswitch(1),
                 undomanualswitch(2),
                 forceswitch(3),
                 undoforceswitch(4),
                 lockout(5),
                 unlockout(6),
                 exerciseswitch(7),
                 undoexerciseswitch(8)
                 }
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "
                Member operation: 
                Options:
                1. manualswitch(1)    -manual-switch
                                       The manual switchover can be performed only when the protection group is 
                                       enabled, no member is locked, no forced switchover is performed, and no member 
                                       is faulty
                2. undomanualswitch(2)-undo-manual-switch               
                3. forceswitch(3)     -force-switch
                                       The forced switchover can be performed only when the protection 
                                       group is enabled and no member is locked.
                                       When the command for this operation is issued, the switchover is performed 
                                       whenever the specified target member is normal 
                4. undoforceswitch(4) -undo force-switch
                5. lockout(5)         -The protection group member is locked. After being locked, the protection 
                                       group member does not participate in protection group switchover
                6. unlockout(6)       -The protection group member is unlocked. After being unlocked, the protection 
                                       group member continues to participate in protection group switchover
                7. exerciseswitch(7)  --exercise-switch
                                       The exercise switchover can be performed only when the protection group 
                                       is enabled, no member is locked, no other type switchover is performed, 
                                       and no member is faulty 
                                       When the command for this operation is issued, no actual switchover is performed,
                                       only members's status is changed
                8. undoexerciseswitch(8)-undo exercise-switch
                Reading this object will result in implementation-specific results.
                "
            ::= { hwPsOntMemberEntry 3 }


        hwPgOntMemberStatus OBJECT-TYPE
            SYNTAX INTEGER
                 {
                 null(1),
                 manualswitchsrc(2),
                 manualswitchdst(3),
                 forceswitchsrc(4),
                 forceswitchdst(5),
                 autoswitchsrc(6),
                 autoswitchdst(7),
                 lockout(8),
                 exerciseswitch(9)
                 }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "
                Member status. 
                Options:
                1. null(1)              -Null operation      
                2. manualswitchsrc(2)   -Source member of the manual switchover
                3. manualswitchdst(3)   -Target member of the manual switchover
                4. forceswitchsrc(4)    -Source member of the forced switchover
                5. forceswitchdst(5)    -Target member of the forced switchover
                6. autoswitchsrc(6)     -Source member of the automatic switchover
                7. autoswitchdst(7)     -Target member of the automatic switchover
                8. lockout(8)           -Locked   
                9. exerciseswitch(9)    -Exercise switched         
                "

            ::= { hwPsOntMemberEntry 4 }


        hwPgOntDstMemberPort OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "
                Target member ifindex. Reading this object will result in implementation-specific results.
                "
            ::= { hwPsOntMemberEntry 5 }


        hwPgOntDstMemberOnt OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-write
            STATUS current
            DESCRIPTION
                "
                Target member ontId. Reading this object will result in implementation-specific results. 
                "
            ::= { hwPsOntMemberEntry 6 }


        hwPgOntMemberRunningState OBJECT-TYPE
            SYNTAX INTEGER
                {
                active(1),
                standby(2),
                adding(3),
                deleting(4),
                switching(5)
                }
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "
                Member status.
                Options:
                1. active(1)   -State of the member that carries the service
                2. standby(2)  -State of the member that does not carry the service
                3. adding(3)   -Adding
                4. deleting(4) -Deleting
                5. switching(5)-Switching                 
                "
            ::= { hwPsOntMemberEntry 7 }


        hwPgOntMemberPeerMemberPort OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "
                Peer member ifindex.
                "
            ::= { hwPsOntMemberEntry 8 }


        hwPgOntMemberPeerMemberOnt OBJECT-TYPE
            SYNTAX Integer32
            MAX-ACCESS read-only
            STATUS current
            DESCRIPTION
                "
                Peer member ontId.
                "
            ::= { hwPsOntMemberEntry 9 }


        hwPgOntMemberRowStatus OBJECT-TYPE
            SYNTAX RowStatus
            MAX-ACCESS read-create
            STATUS current
            DESCRIPTION
                "
                Member rowstatus.
                Options:  
                1. createAndGo(4) -create a new instance of a conceptual row
                2. destroy(6)     -delete the instances associated with an existing conceptual row
                "
            ::= { hwPsOntMemberEntry 11 }


                                 hwPgGroupTraps OBJECT IDENTIFIER ::= { hwProtection 15 } 
                        
                           hwPgGroupCommonTraps OBJECT IDENTIFIER ::= { hwPgGroupTraps 1 }   
                           
                           hwPgGroupCommonTrapsPrefix OBJECT IDENTIFIER ::= { hwPgGroupCommonTraps 0 }
                               
                           hwPgGroupLoadBalanceStateChangeTrap NOTIFICATION-TYPE
                               OBJECTS 
                                   { 
                                      hwPgGroupId,
                                      hwPsGroupLoadBalanceState                 
                                   }
                               STATUS current
                               DESCRIPTION
                                   "
                                   This trap is generated when Load balance state of smart link protect group changes.
                                   "  
                               ::= { hwPgGroupCommonTraps 0 1 }         
         
                                 hwProtectionTraps OBJECT IDENTIFIER ::= { hwProtection 16 }
         
         hwProtectionCommonTraps OBJECT IDENTIFIER ::= { hwProtectionTraps 1 }
         
         hwProtectionCommonTrapsPrefix OBJECT IDENTIFIER ::= { hwProtectionCommonTraps 0 }
         
         hwProtectionSwitchTrap  NOTIFICATION-TYPE
              OBJECTS { hwPgGroupId }
              STATUS current    
              DESCRIPTION 
                  "The agent generates this trap when a protect group switchs over."
              ::= { hwProtectionCommonTrapsPrefix 1 }
              
         hwProtectionAlarmTraps OBJECT IDENTIFIER ::= { hwProtectionTraps 2 }
         
         hwProtectionAlarmTrapsPrefix OBJECT IDENTIFIER ::= { hwProtectionAlarmTraps 0 }
         
         hwProtectionSwitchAlarmTrap  NOTIFICATION-TYPE
              OBJECTS { hwPgGroupId }
              STATUS current    
              DESCRIPTION 
                  "The agent generates this trap when a protect group switchs over."
              ::= { hwProtectionAlarmTrapsPrefix 1 }         

        hwSmartLinkTraps OBJECT IDENTIFIER ::= { hwProtection 17 } 

        hwSmartLinkCommonTraps OBJECT IDENTIFIER ::= { hwSmartLinkTraps 1 }   
        
        hwSmartLinkCommonTrapsPrefix OBJECT IDENTIFIER ::= { hwSmartLinkCommonTraps 0 }
        
        hwMoniterGroupStateChangeTrap NOTIFICATION-TYPE
            OBJECTS 
                { 
                   hwMonitorLinkGroupId,
                   hwMonitorLinkGroupState                  
                }
            STATUS current
            DESCRIPTION
                "
                This trap is generated  when the state of moniter link group changes.
                "  
            ::= { hwSmartLinkCommonTraps 0 1 }
            
        hwPsDpGlobalConfig OBJECT IDENTIFIER ::= { hwProtection 18 }
        
        hwPsDpSyncSwitch OBJECT-TYPE
            SYNTAX INTEGER
                {
                enable(1),
                disable(2)
                }
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "The synchronous switch of dual-parenting.
                 Options:
                 1. enable(1)  - Indicates that the dual parenting synchronous switch is enable.
                 2. disable(2) - Indicates that the dual parenting synchronous switch is disable.                
                "
            ::= { hwPsDpGlobalConfig 1 }
                
        hwPsDpLocalNodeIpAddress OBJECT-TYPE
            SYNTAX      IpAddress
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the IP address of dual parenting local node.
                 The IP address can not be multicast IP 224.0.0.0-239.255.255.255.
                 The IP address 255.255.255.255 indicates that the IP address is deleted.
                "
            ::= { hwPsDpGlobalConfig 2 }
        
        hwPsDpLocalNodeTcpPort OBJECT-TYPE
            SYNTAX      Integer32
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the TCP port ID of dual parenting local node.
                 Range: 1024-49151
                 Default: 6076
                "
            ::= { hwPsDpGlobalConfig 3 } 
             
        hwPsDpLocalNodeCommunicationKey OBJECT-TYPE
            SYNTAX   OCTET STRING (SIZE (0..16))
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the communication key of dual parenting local node.
                "
            ::= { hwPsDpGlobalConfig 4 }       
                       
        hwPsDpPeerNodeTable OBJECT-TYPE
            SYNTAX      SEQUENCE OF HwPsDpPeerNodeEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                 This table is used to configure the information about the dual parenting peer node.
                 The index of this table is hwPsDpPeerNodeNameIndex.          
                "
            ::= { hwProtection 19 }
            
        hwPsDpPeerNodeEntry OBJECT-TYPE
            SYNTAX      HwPsDpPeerNodeEntry
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "
                 This table is used to configure the information about the dual parenting peer node.
                 The index of this entry is hwPsDpPeerNodeNameIndex.          
                "
            INDEX { IMPLIED hwPsDpPeerNodeNameIndex}
            ::= { hwPsDpPeerNodeTable 1 }
        
        HwPsDpPeerNodeEntry ::=
            SEQUENCE
                {
                hwPsDpPeerNodeNameIndex                     
                    OCTET STRING,
                hwPsDpPeerNodeIpAddress
                    IpAddress,
                hwPsDpPeerNodeTcpPort
                    Integer32,
                hwPsDpPeerNodeCommunicationKey
                    OCTET STRING,
                hwPsDpPeerNodeConnectStatus
                    INTEGER,        
                hwPsDpPeerNodeRowStatus
                    RowStatus
                }
                
        hwPsDpPeerNodeNameIndex OBJECT-TYPE
            SYNTAX   OCTET STRING (SIZE (1..15))
            MAX-ACCESS  not-accessible
            STATUS      current
            DESCRIPTION
                "This object indicates the dual parenting peer node name.
                "
            ::= { hwPsDpPeerNodeEntry 1 }        

        hwPsDpPeerNodeIpAddress  OBJECT-TYPE
            SYNTAX  IpAddress
            MAX-ACCESS read-write
            STATUS  current
            DESCRIPTION
                "This object indicates the IP address of dual parenting peer node.
                 The IP address can not be multicast IP 224.0.0.0-239.255.255.255 or broadcast IP 255.255.255.255.
                "
            ::= { hwPsDpPeerNodeEntry 2 } 

        hwPsDpPeerNodeTcpPort  OBJECT-TYPE
            SYNTAX  Integer32
            MAX-ACCESS read-write
            STATUS  current
            DESCRIPTION
                "This object indicates the TCP port ID of dual parenting peer node.
                 Range: 1024-49151
                "
            ::= { hwPsDpPeerNodeEntry 3 } 
            
        hwPsDpPeerNodeCommunicationKey OBJECT-TYPE
            SYNTAX   OCTET STRING (SIZE (0..16))
            MAX-ACCESS  read-write
            STATUS      current
            DESCRIPTION
                "This object indicates the communication key of dual parenting peer node.
                "
            ::= { hwPsDpPeerNodeEntry 4 }    

        hwPsDpPeerNodeConnectStatus  OBJECT-TYPE
            SYNTAX  INTEGER
            {
            normal(1),
            failed(2),
            invalid(-1)
            }
            MAX-ACCESS read-only
            STATUS  current
            DESCRIPTION
                "This object indicates the connect status between the dual parenting local node and peer node.
                 Options:
                 1. normal(1)      - Indicates that the connect status is normal
                 2. failed(2)      - Indicates that the connect status is failed
                 3. invalid(-1)    - Indicates that the query fails or no information is detected
                "
            ::= { hwPsDpPeerNodeEntry 5 } 
            
        hwPsDpPeerNodeRowStatus OBJECT-TYPE
            SYNTAX   RowStatus
            MAX-ACCESS  read-create
            STATUS      current
            DESCRIPTION
                "The hwPsDpPeerNodeRowStatus is used to create a new row
                 or to modify or delete an existing row in this table.
                 Options:
                 1. createAndGo(4) -create a new instance of a conceptual row 
                 2. destroy(6)     -delete the instances associated with an existing conceptual row
                "
            ::= { hwPsDpPeerNodeEntry 6 }
                                 
END
