-- ==================================================================
-- Copyright (c) 2010-2013 Hewlett-Packard Development Company, L.P.
--
-- Description: RRPP MIB
-- Reference:
-- Version: V1.4
-- History:
-- V1.0 2004-12-02 Created by XueCong
-- V1.1 2006-12-21 Modified by XuPengfei
--     Add objects: hpnicfRrppPortRXEdgeHello, hpnicfRrppPortRXMajorFault,
--     hpnicfRrppPortTXEdgeHello, hpnicfRrppPortTXMajorFault, hpnicfRrppMajorFault.
-- V1.2 2007-03-01 Modified by ZhouXiaodong
--     Modify the description of hpnicfRrppMajorFault.
--     Adjust file format.
-- V1.3 2007-04-26 Modified by GuCe
--     Add objects: hpnicfRrppDomainInstanceListLow, hpnicfRrppDomainInstanceListHigh.
-- V1.4 2007-06-18 Modified by SongJianyong
--     Modify the description of hpnicfRrppDomainInstanceListLow and
--     hpnicfRrppDomainInstanceListHigh.
--     Add objects: hpnicfRrppDomainProtectVlanListLow,
--     hpnicfRrppDomainProtectVlanListHigh, hpnicfRrppProtectVlanConfigMode.
-- ==================================================================
-- ==================================================================
--
-- Variables and types be imported
--
-- ==================================================================
HPN-ICF-RRPP-MIB DEFINITIONS ::= BEGIN

IMPORTS

    MODULE-IDENTITY, OBJECT-TYPE, Counter32, Integer32, OBJECT-IDENTITY,
    NOTIFICATION-TYPE
        FROM SNMPv2-SMI

    RowStatus,TEXTUAL-CONVENTION
        FROM SNMPv2-TC

    hpnicfCommon
        FROM HPN-ICF-OID-MIB;

hpnicfRrpp MODULE-IDENTITY
    LAST-UPDATED "200412020000Z"
    ORGANIZATION
        ""
    CONTACT-INFO
        ""
    DESCRIPTION
        "The RRPP (Rapid Ring Protection protocol) provides
        fast protection switching to layer 2 switches
        interconnected in an Ethernet ring topology.  When
        a link in the ring breaks, the RRPP can recover the
        data path quickly.  Its protection switching is
        similar to what can be achieved with the Spanning
        Tree Protocol (STP), but the converging time is less
        than a second after link failure.
        This MIB defines management information used on
        products which support RRPP."
    ::= { hpnicfCommon  45 }

EnabledStatus ::=  TEXTUAL-CONVENTION
    STATUS      current
    DESCRIPTION
        "A simple status value for the object."
    SYNTAX      INTEGER{enabled(1),disabled(2)}

-- ==================================================================
--
-- ======================= definition begin =========================
--
-- ==================================================================

hpnicfRrppScalarGroup OBJECT IDENTIFIER ::= {  hpnicfRrpp 1  }

hpnicfRrppEnableStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicating whether the RRPP is enabled on this switch."
    ::= { hpnicfRrppScalarGroup 1 }

hpnicfRrppPassword OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(1..16))
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Password configured for RRPP nodes to identify the validity
        of a link-down message.  This value must be set together with
        hpnicfRrppPasswordType which indicates whether this value can
        be got.  This value can not be set alone without configuring
        hpnicfRrppPasswordType."
    DEFVAL     { '303030464532303346443735'H }
    ::= { hpnicfRrppScalarGroup 2 }

hpnicfRrppPasswordType OBJECT-TYPE
    SYNTAX      INTEGER{simple(1),cipher(2)}
    MAX-ACCESS  read-write
    STATUS      current
    DESCRIPTION
        "Indicating whether the hpnicfRrppPassword can be got.
        simple(1):hpnicfRrppPassword can be got.
        cipher(2):hpnicfRrppPassword can not be got.
        This value can not be set alone without configuring
        hpnicfRrppPassword."
    ::= { hpnicfRrppScalarGroup 3 }

hpnicfRrppProtectVlanConfigMode OBJECT-TYPE
    SYNTAX      INTEGER{vlan(1),instance(2)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "Indicating the mode in which the protected VLANs of an RRPP
        domain are configured. The value 'vlan' indicates that
        hpnicfRrppDomainProtectVlanListLow and hpnicfRrppDomainProtectVlanListHigh
        can be used for setting protected VLANs, while
        hpnicfRrppDomainInstanceListLow and hpnicfRrppDomainInstanceListHigh
        cannot. By contraries, the value 'instance' indicates
        that 3cRrppDomainInstanceListLow and hpnicfRrppDomainInstanceListHigh
        can be used for setting protected VLANs while the other two cannot."
    ::= { hpnicfRrppScalarGroup 4 }

hpnicfRrppTable OBJECT IDENTIFIER ::= {  hpnicfRrpp 2  }

hpnicfRrppDomainTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfRrppDomainEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing information about configurations
        and status of a RRPP domain."
    ::= { hpnicfRrppTable  1 }

hpnicfRrppDomainEntry OBJECT-TYPE
    SYNTAX      HpnicfRrppDomainEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Detailed information of a specified RRPP domain."
    INDEX
        {
            hpnicfRrppDomainID
        }
    ::= { hpnicfRrppDomainTable 1 }

HpnicfRrppDomainEntry  ::= SEQUENCE
    {
        hpnicfRrppDomainID               Integer32,
        hpnicfRrppDomainControlVlanID    Integer32,
        hpnicfRrppDomainHelloTime        Integer32,
        hpnicfRrppDomainFailTime         Integer32,
        hpnicfRrppDomainRowStatus        RowStatus,
        hpnicfRrppDomainInstanceListLow  OCTET STRING,
        hpnicfRrppDomainInstanceListHigh OCTET STRING,
        hpnicfRrppDomainProtectVlanListLow  OCTET STRING,
        hpnicfRrppDomainProtectVlanListHigh OCTET STRING
    }

hpnicfRrppDomainID OBJECT-TYPE
    SYNTAX      Integer32(1..16)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "An index uniquely identifies a RRPP domain,
        which ranges from 1~16.
        This value can't be modified after created."
    ::= { hpnicfRrppDomainEntry 1 }

hpnicfRrppDomainControlVlanID OBJECT-TYPE
    SYNTAX      Integer32(2..4094|65535)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Index of the control VLAN specified to a domain.
        The value 65535 indicates the control VLAN has
        not been configured.
        The VLAN assigned to a RRPP Domain must not have
        been created.
        This value can't be modified after created."
    ::= { hpnicfRrppDomainEntry 2 }

hpnicfRrppDomainHelloTime OBJECT-TYPE
    SYNTAX      Integer32(1..10)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The value indicates the interval between two hello
        packets sent by master-node, and its unit is second.
        The value ranges from 1s~10s."
    DEFVAL     { 1 }
    ::= { hpnicfRrppDomainEntry 3 }

hpnicfRrppDomainFailTime OBJECT-TYPE
    SYNTAX      Integer32(3..30)
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "The expiration value of the fail-period timer and its unit
        is second.  If not receiving hello packets before this
        expires, the master-node considers the ring is broken.
        The value of this node ranging from 3s~30s must not be
        less than triple hpnicfRrppDomainHelloTime's value."
    DEFVAL     { 3 }
    ::= { hpnicfRrppDomainEntry 4 }

hpnicfRrppDomainRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is responsible for managing the creation,
        deletion and modification of rows, which support active
        status and CreatAndGo, destroy operation."
    ::= { hpnicfRrppDomainEntry 5 }

hpnicfRrppDomainInstanceListLow OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(256))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Each octet contained in this value specifies an eight-instance
        group, with the first octet specifying instances 0 through 7,
        the second octet specifying instances 8 through 15, and so on.
        Within each octet, the most significant bit represents the
        highest numbered instance, and the least significant bit represents
        the lowest numbered instance. Thus, each instance to which the
        protected VLANs of an RRPP domain are mapped corresponds to a
        bit within the value of this object. A bit with a value of '1'
        indicates that the VLANs mapped to the instance are protected
        VLANs of the RRPP domain. By contraries, the VLANs mapped to the
        instance are not protected VLANs if the corresponding bit has a
        value of '0'. The value of this object must be set with
        hpnicfRrppDomainInstanceListHigh at the same time when a SET
        operation is performed.
        This object is valid only when the value of hpnicfRrppProtectVlanConfigMode
        is 'instance'. If this object is invalid, it does not respond to SET
        operation, and it returns all '0' bits in response to GET operation."
    ::= { hpnicfRrppDomainEntry 6 }

hpnicfRrppDomainInstanceListHigh OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(256))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Each octet contained in this value specifies an eight-instance
        group, with the first octet specifying instances 2048 through
        2055, the second octet specifying instances 2056 through 2063,
        and so on. Within each octet, the most significant bit represents
        the highest numbered instance, and the least significant bit
        represents the lowest numbered instance. The most significant bit
        of the last octet is invalid. Thus, each instance to which the
        protected VLANs of an RRPP domain are mapped corresponds to a bit
        within the value of this object. A bit with a value of '1' indicates
        that the VLANs mapped to the instance are protected VLANs of the
        RRPP domain. By contraries, the VLANs mapped to the instance are
        not protected VLANs if the corresponding bit has a value of '0'.
        The value of this object must be set with hpnicfRrppDomainInstanceListLow
        at the same time when a SET operation is performed.
        This object is valid only when the value of hpnicfRrppProtectVlanConfigMode
        is 'instance'. If this object is invalid, it does not respond to SET
        operation, and it returns all '0' bits in response to GET operation."
    ::= { hpnicfRrppDomainEntry 7 }

hpnicfRrppDomainProtectVlanListLow OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(256))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Each octet contained in this value specifies an eight-VLAN group,
        with the first octet specifying VLANs 1 through 7, the second
        octet specifying VLANs 8 through 15, and so on. Within each octet,
        the most significant bit represents the highest numbered VLAN, and
        the least significant bit represents the lowest numbered VLAN.
        The least significant bit of the first octet is invalid. Thus,
        each protected VLAN of an RRPP domain corresponds to a bit within
        the value of this object. A bit with a value of '1' indicates that
        the corresponding VLAN is a protected VLAN of the RRPP domain.
        By contraries, the VLAN is not a protected VLAN if the
        corresponding bit has a value of '0'. The value of this object
        must be set with hpnicfRrppDomainProtectVlanListHigh at the same time
        when a SET operation is performed.
        This object is valid only when the value of hpnicfRrppProtectVlanConfigMode
        is 'vlan'. If this object is invalid, it does not respond to SET
        operation, and it returns all '0' bits in response to GET operation."
    ::= { hpnicfRrppDomainEntry 8 }

hpnicfRrppDomainProtectVlanListHigh OBJECT-TYPE
    SYNTAX      OCTET STRING(SIZE(256))
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Each octet contained in this value specifies an eight-VLAN group,
        with the first octet specifying VLANs 2048 through 2055, the
        second octet specifying VLANs 2056 through 2063, and so on. Within
        each octet, the most significant bit represents the highest
        numbered VLAN, and the least significant bit represents the lowest
        numbered VLAN. The most significant bit of the last octet is
        invalid. Thus, each protected VLAN of an RRPP domain corresponds
        to a bit within the value of this object. A bit with a value of '1'
        indicates that the corresponding VLAN is a protected VLAN of the
        RRPP domain. By contraries, the VLAN is not a protected VLAN if
        the corresponding bit has a value of '0'. The value of this object
        must be set with hpnicfRrppDomainProtectVlanListLow at the same time
        when a SET operation is performed.
        This object is valid only when the value of hpnicfRrppProtectVlanConfigMode
        is 'vlan'. If this object is invalid, it does not respond to SET
        operation, and it returns all '0' bits in response to GET operation."
    ::= { hpnicfRrppDomainEntry 9 }

hpnicfRrppRingTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfRrppRingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing information about configurations
        and status of a RRPP Ring."
    ::= { hpnicfRrppTable  2 }

hpnicfRrppRingEntry OBJECT-TYPE
    SYNTAX      HpnicfRrppRingEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Detailed information of a specified RRPP Ring."
    INDEX
        {
            hpnicfRrppDomainID,
            hpnicfRrppRingID
        }
    ::= { hpnicfRrppRingTable 1 }

HpnicfRrppRingEntry  ::= SEQUENCE
    {
        hpnicfRrppRingID               Integer32,
        hpnicfRrppRingEnableStatus     EnabledStatus,
        hpnicfRrppRingActive           INTEGER,
        hpnicfRrppRingState            INTEGER,
        hpnicfRrppRingNodeMode         INTEGER,
        hpnicfRrppRingPrimaryPort      Integer32,
        hpnicfRrppRingSecondaryPort    Integer32,
        hpnicfRrppRingLevel            INTEGER,
        hpnicfRrppRingRowStatus        RowStatus
    }

hpnicfRrppRingID OBJECT-TYPE
    SYNTAX      Integer32(1..64)
    MAX-ACCESS  accessible-for-notify
    STATUS      current
    DESCRIPTION
        "An index uniquely identifies a RRPP Ring,
        which ranges from 1~64.
        This value can't be modified after created."
    ::= { hpnicfRrppRingEntry 1 }

hpnicfRrppRingEnableStatus OBJECT-TYPE
    SYNTAX      EnabledStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Indicating whether the RRPP is enabled on this Ring.
        NOTE: If major-ring and sub-ring(s) of a domain
        coexist on a switch, major-ring must be enabled
        before sub-ring is enabled.  And sub-ring must be
        disabled before major-ring is disabled."
    ::= { hpnicfRrppRingEntry 2 }

hpnicfRrppRingActive OBJECT-TYPE
    SYNTAX      INTEGER{active(1),inactive(2)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "As both hpnicfRrppEnableStatus and hpnicfRrppRingEnableStatus
        are enabled, the ring is activated.  Whereas either of
        the two items is disabled, the ring is inactive."
    ::= { hpnicfRrppRingEntry 3 }

hpnicfRrppRingState OBJECT-TYPE
    SYNTAX      INTEGER{unknown(1),health(2),fault(3)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The status (i.e. unknown, health or fault) of the Ethernet
        ring.
        This is valid only on the master-node."
    ::= { hpnicfRrppRingEntry 4 }

hpnicfRrppRingNodeMode OBJECT-TYPE
    SYNTAX      INTEGER{master(1),transit(2),edge(3),assistantEdge(4)}
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "There are four RRPP node modes for the switch on a RRPP
        ring, such as master, transit, edge and assistant-edge.
        Each RRPP ring has a single designated master-node.  All
        other nodes except edge-node and assistant-edge-node on
        that ring are referred to as transit-nodes.
        The node mode of edge and assistant-edge should be
        configured only on sub-ring.  When there is a common link
        between a sub-ring and its major-ring, the node mode of
        the sub-ring must be edge or assistant-edge, and they must
        be configured in pairs.
        If node mode is designated as edge or assistant-edge,
        several points should be noticed:
        Major-ring must be created before a sub-ring is created;
        Major-ring can't be deleted unless all its sub-rings are
        deleted;
        The node mode of the switch on major-ring must be
        transit;
        Major-ring and sub-ring must have only a common port.
        This value can't be modified after created."
    ::= { hpnicfRrppRingEntry 5 }

hpnicfRrppRingPrimaryPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "If the switch is a master-node or transit-node, this value
        is the primary port ifIndex; otherwise, if the switch is a
        edge-node or assistant-edge-node, this value is the common
        port ifIndex.
        This value can't be modified after created."
    ::= { hpnicfRrppRingEntry 6 }

hpnicfRrppRingSecondaryPort OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "If the switch is a master-node or transit-node, this value
        is the secondary port ifIndex; otherwise, if the switch is
        an edge-node or assistant-edge-node, this value is the edge
        port ifIndex.
        This value can't be modified after created."
    ::= { hpnicfRrppRingEntry 7 }

hpnicfRrppRingLevel OBJECT-TYPE
    SYNTAX      INTEGER{majorRing(1),subRing(2)}
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "Level of a ring.  This field should be set 1 on major-ring
        and 2 on the sub-ring.
        This value can't be modified after created."
    ::= { hpnicfRrppRingEntry 8 }

hpnicfRrppRingRowStatus OBJECT-TYPE
    SYNTAX      RowStatus
    MAX-ACCESS  read-create
    STATUS      current
    DESCRIPTION
        "This object is responsible for managing the creation,
        deletion and modification of rows, which support active
        status and CreatAndGo, destroy operation.
        To create a new row, hpnicfRrppRingNodeMode,
        hpnicfRrppRingPrimaryPort, hpnicfRrppRingSecondaryPort and
        hpnicfRrppRingLevel must be specified."
    ::= { hpnicfRrppRingEntry 9 }

hpnicfRrppPortTable OBJECT-TYPE
    SYNTAX      SEQUENCE OF HpnicfRrppPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "A table containing information about configurations and
        status of a RRPP port."
    ::= { hpnicfRrppTable 3 }

hpnicfRrppPortEntry OBJECT-TYPE
    SYNTAX      HpnicfRrppPortEntry
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "Detailed information of a specified RRPP port."
    INDEX
        {
            hpnicfRrppDomainID,
            hpnicfRrppRingID,
            hpnicfRrppPortID
        }
    ::= { hpnicfRrppPortTable 1 }

HpnicfRrppPortEntry  ::= SEQUENCE
    {
        hpnicfRrppPortID                 Integer32,
        hpnicfRrppPortRole               INTEGER,
        hpnicfRrppPortState              INTEGER,
        hpnicfRrppPortRXError            Counter32,
        hpnicfRrppPortRXHello            Counter32,
        hpnicfRrppPortRXLinkUp           Counter32,
        hpnicfRrppPortRXLinkDown         Counter32,
        hpnicfRrppPortRXCommonFlush      Counter32,
        hpnicfRrppPortRXCompleteFlush    Counter32,
        hpnicfRrppPortTXHello            Counter32,
        hpnicfRrppPortTXLinkUp           Counter32,
        hpnicfRrppPortTXLinkDown         Counter32,
        hpnicfRrppPortTXCommonFlush      Counter32,
        hpnicfRrppPortTXCompleteFlush    Counter32,
        hpnicfRrppPortRXEdgeHello        Counter32,
        hpnicfRrppPortRXMajorFault       Counter32,
        hpnicfRrppPortTXEdgeHello        Counter32,
        hpnicfRrppPortTXMajorFault       Counter32
    }

hpnicfRrppPortID OBJECT-TYPE
    SYNTAX      Integer32
    MAX-ACCESS  not-accessible
    STATUS      current
    DESCRIPTION
        "ifIndex of the port."
    ::= { hpnicfRrppPortEntry 1 }

hpnicfRrppPortRole OBJECT-TYPE
    SYNTAX      INTEGER{primary(1),secondary(2),common(3),edge(4)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The RRPP role of the port.
        (i.e. primary, secondary, common or edge port)."
    ::= { hpnicfRrppPortEntry 2 }

hpnicfRrppPortState OBJECT-TYPE
    SYNTAX      INTEGER{unknown(1),unblocked(2),blocked(3),down(4)}
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "State of RRPP port, including unknown, unblocked, blocked
        and down."
    ::= { hpnicfRrppPortEntry 3 }

hpnicfRrppPortRXError OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of illegal RRPP packets received from
        this port."
    ::= { hpnicfRrppPortEntry 4 }

hpnicfRrppPortRXHello OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of hello packets received from
        this port on specified ring."
    ::= { hpnicfRrppPortEntry 5 }

hpnicfRrppPortRXLinkUp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of link-up packets received
        from this port on specified ring."
    ::= { hpnicfRrppPortEntry 6 }

hpnicfRrppPortRXLinkDown OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of link-down packets received
        from this port on specified ring."
    ::= { hpnicfRrppPortEntry 7 }

hpnicfRrppPortRXCommonFlush OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of common-flush packets received from
        this port on specified ring.
        Instruction
        When master-node receives valid link-down packets
        or link-up packets, it will send common-flush packets,
        instructing the other nodes on the ring to flush their
        forwarding database.
        When the nodes except master-node receive common-flush,
        they will flush forwarding database.  If there is any
        port blocked on that node, it won't be unblocked."
    ::= { hpnicfRrppPortEntry 8 }

hpnicfRrppPortRXCompleteFlush OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of complete-flush packets received
        from this port on specified ring.
        Instruction
        When the ring recovers, master-node will receive its own
        hello packets.  It will send complete-flush packets,
        instructing the other nodes on the ring to flush their
        forwarding database.
        When the nodes except master-node receive complete-flush,
        they will flush forwarding database.  If there is any port
        blocked on that node, it will be unblocked."
    ::= { hpnicfRrppPortEntry 9 }

hpnicfRrppPortTXHello OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of hello packets sent from
        this port on specified ring."
    ::= { hpnicfRrppPortEntry 10 }

hpnicfRrppPortTXLinkUp OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of link-up packets sent
        from this port on specified ring."
    ::= { hpnicfRrppPortEntry 11 }

hpnicfRrppPortTXLinkDown OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of link-down packets sent
        from this port on specified ring."
    ::= { hpnicfRrppPortEntry 12 }

hpnicfRrppPortTXCommonFlush OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of common-flush packets sent from
        this port on specified ring."
    ::= { hpnicfRrppPortEntry 13 }

hpnicfRrppPortTXCompleteFlush OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of complete-flush packets sent
        from this port on specified ring."
    ::= { hpnicfRrppPortEntry 14 }

hpnicfRrppPortRXEdgeHello OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of edge-hello packets received
        from this port on specified ring.
        When edge-node sends edge-hello packets,
        assistantEdge-node will receive its own edge-hello
        packets from the common link and the master ring."
    ::= { hpnicfRrppPortEntry 15 }

hpnicfRrppPortRXMajorFault OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of major-fault packets received
        from this port on specified ring.
        When assistantEdge can't receive edge-hello packets
        in the specified fault-time,
        assistantEdge-node will send its own major-fault
        packets from the edge port around the sub ring.
        Edge-node will receive the major-fault packets from
        its edge port. Then Edge-node will block its edge port."
    ::= { hpnicfRrppPortEntry 16 }

hpnicfRrppPortTXEdgeHello OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of edge-hello packets sent
        from this port on specified ring."
    ::= { hpnicfRrppPortEntry 17 }

hpnicfRrppPortTXMajorFault OBJECT-TYPE
    SYNTAX      Counter32
    MAX-ACCESS  read-only
    STATUS      current
    DESCRIPTION
        "The statistics of major-fault packets sent
        from this port on specified ring."
    ::= { hpnicfRrppPortEntry 18 }

hpnicfRrppNotifications OBJECT IDENTIFIER ::= {  hpnicfRrpp 3  }

hpnicfRrppRingRecover NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfRrppDomainID,
            hpnicfRrppRingID
        }
    STATUS      current
    DESCRIPTION
        "Trap message is generated by master-node on
        the ring when the ring recovers from fault."
    ::= { hpnicfRrppNotifications 1 }

hpnicfRrppRingFail NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfRrppDomainID,
            hpnicfRrppRingID
        }
    STATUS      current
    DESCRIPTION
        "Trap message is generated by master-node on
        the ring when the ring fails."
    ::= { hpnicfRrppNotifications 2 }

hpnicfRrppMultiMaster NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfRrppDomainID,
            hpnicfRrppRingID
        }
    STATUS      current
    DESCRIPTION
        "Trap message is generated by master-node when
        it detects there are more than one master-node
        on the ring."
    ::= { hpnicfRrppNotifications 3 }

hpnicfRrppMajorFault NOTIFICATION-TYPE
    OBJECTS
        {
            hpnicfRrppDomainID,
            hpnicfRrppRingID
        }
    STATUS      current
    DESCRIPTION
        "Trap message is generated by edge-node or assistant-edge-node
        when it detects major fault."
    ::= { hpnicfRrppNotifications 4 }

END

