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

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32,
    Counter32, NOTIFICATION-TYPE                    FROM SNMPv2-SMI  
    ifIndex                                         FROM IF-MIB
    RowStatus, DisplayString                        FROM SNMPv2-TC
    zxAn                                            FROM ZTE-AN-TC-MIB
    OBJECT-GROUP, MODULE-COMPLIANCE                 FROM SNMPv2-CONF;

zxAnLinkGroupMib MODULE-IDENTITY
    LAST-UPDATED    "201209170000Z"
    ORGANIZATION    "ZTE Corporation"
    CONTACT-INFO    "Xu Hanghui ZTE Corporation
                     Mail: xu.hanghui@zte.com.cn
                     Tel : +86-21-68897253"
    DESCRIPTION
        "The MIB module for the management of link group.
         Link group is a special kind of Link Aggregation Group which
         only supports static aggregation."     
    REVISION        "201209170000Z"
    DESCRIPTION
        "Initial version of this MIB module."
    ::= { zxAn 40 }
    
--------------------------------------------------------------------------------
-- Following management objects are defined.
-- 1. zxAnLinkGroupGlobalObjects
-- 2. zxAnLinkGroupTable
-- 3. zxAnLinkGroupPortGlobalObjects
-- 4. zxAnLinkGroupPortTable

-- Following notification objects are defined.
-- 21. zxAnLinkGroupNotifications

-- Following conformance information is defined.
-- 31. zxAnLinkGroupConformance
--------------------------------------------------------------------------------      

zxAnLinkGroupObjects        OBJECT IDENTIFIER  ::=  { zxAnLinkGroupMib 2 }

zxAnLinkGroupGroupObjects   OBJECT IDENTIFIER  ::=  { zxAnLinkGroupObjects 10 }
zxAnLinkGroupPortObjects    OBJECT IDENTIFIER  ::=  { zxAnLinkGroupObjects 15 }

--------------------------------------------------------------------------------
-- 1. zxAnLinkGroupGlobalObjects
--------------------------------------------------------------------------------
    
--------------------------------------------------------------------------------
-- 2. zxAnLinkGroupTable
--------------------------------------------------------------------------------
    zxAnLinkGroupTable   OBJECT-TYPE
        SYNTAX        SEQUENCE OF ZxAnLinkGroupEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
             "This table is to provide link group configuration, and 
             contains information about every link group in this system."
        ::= { zxAnLinkGroupGroupObjects  2 }

    zxAnLinkGroupEntry   OBJECT-TYPE
        SYNTAX        ZxAnLinkGroupEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "An entry in zxAnLinkGroupTable, which is indexed by the ID of 
             the link group."
        INDEX  {  zxAnLinkGroupId  }
        ::= { zxAnLinkGroupTable 1 }
        
    ZxAnLinkGroupEntry ::=  SEQUENCE{
        zxAnLinkGroupId               Integer32,
        zxAnLinkGroupName             DisplayString,
        zxAnLinkGroupLoadBalanceMode  INTEGER,
        zxAnLinkGroupMemberPortName1  DisplayString,
        zxAnLinkGroupMemberPortName2  DisplayString,
        zxAnLinkGroupMemberPortName3  DisplayString,
        zxAnLinkGroupMemberPortName4  DisplayString,
        zxAnLinkGroupMemberPortName5  DisplayString,
        zxAnLinkGroupMemberPortName6  DisplayString,
        zxAnLinkGroupMemberPortName7  DisplayString,
        zxAnLinkGroupMemberPortName8  DisplayString
        }

    zxAnLinkGroupId      OBJECT-TYPE
        SYNTAX        Integer32 (1..192)
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
             "The ID of a link group to which member port added."
        ::=  { zxAnLinkGroupEntry  1 }   

    zxAnLinkGroupName    OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
             "A textual string refer to a link group."
        ::=  { zxAnLinkGroupEntry  2 }
        
    zxAnLinkGroupLoadBalanceMode   OBJECT-TYPE
        SYNTAX        INTEGER {
            dstIp(1),
            dstMac(2),
            srcDstIp(3),
            srcDstMac(4),
            srcIp(5),
            srcMac(6)
        }
        MAX-ACCESS    read-write
        STATUS        current
        DESCRIPTION
            "Aggregation load balance type of the link group.
             
             It indicates the traffic load sharing mode of the link group, 
             using the hash algorithm based on the ip or mac address of the 
             packets.
             - dstIp(1):
               Link group shares the traffic by the destination ip address.
             - dstMac(2):
               Link group shares the traffic by the destination mac address.
             - srcDstIp(3):
               Link group shares the traffic by the source and destination 
               ip address.
             - srcDstMac(4):
               Link group shares the traffic by the source and destination 
               mac address.
             - srcIp(5):
               Link group shares the traffic by the source ip address.
             - srcMac(6):
               Link group shares the traffic by the source mac address." 
        DEFVAL      { srcDstMac }
        ::= { zxAnLinkGroupEntry  3 }
        
    zxAnLinkGroupMemberPortName1   OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The first member port's name of the link group."
        ::= { zxAnLinkGroupEntry  4 }                                           

    zxAnLinkGroupMemberPortName2   OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The second member port's name of the link group."
        ::= { zxAnLinkGroupEntry  5 }

    zxAnLinkGroupMemberPortName3   OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The third member port's name of the link group."
        ::= { zxAnLinkGroupEntry  6 }
        
    zxAnLinkGroupMemberPortName4   OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The fourth member port's name of the link group."
        ::= { zxAnLinkGroupEntry  7 }
        
    zxAnLinkGroupMemberPortName5   OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The fifth member port's name of the link group."
        ::= { zxAnLinkGroupEntry  8 }                                           

    zxAnLinkGroupMemberPortName6   OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The sixth member port's name of the link group."
        ::= { zxAnLinkGroupEntry  9 }

    zxAnLinkGroupMemberPortName7   OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The seventh member port's name of the link group."
        ::= { zxAnLinkGroupEntry  10 }
        
    zxAnLinkGroupMemberPortName8   OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The eighth member port's name of the link group."
        ::= { zxAnLinkGroupEntry  11 }                                     
      
--------------------------------------------------------------------------------
-- 3. zxAnLinkGroupPortGlobalObjects
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
-- 4. zxAnLinkGroupPortTable
--------------------------------------------------------------------------------
    zxAnLinkGroupPortTable   OBJECT-TYPE
        SYNTAX        SEQUENCE OF ZxAnLinkGroupPortEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "This table is to provide link group member port configuration,
             and contains information about every link group member port 
             associated with this device. A row appears in this table for
             each physical port as a member port of the link group."
        ::= { zxAnLinkGroupPortObjects 2 }
        
    zxAnLinkGroupPortEntry   OBJECT-TYPE
        SYNTAX        ZxAnLinkGroupPortEntry
        MAX-ACCESS    not-accessible
        STATUS        current
        DESCRIPTION
            "A entry in zxAnLinkGroupPortTable.
                        
             The multi-variables binding rule should be complied with when a 
             manager creates a link group member port, which means to add a 
             physical port into a link group. According to this rule, all the
             related mib variables must be included in one SNMP set operation.
             
             To create a link group member port, mandatory variables 
             zxAnLinkGroupGroupId and zxAnLinkGroupPortRowStatus must be 
             included in one SNMP set operation."
        INDEX   { ifIndex }
        ::= { zxAnLinkGroupPortTable 1 }
        
    ZxAnLinkGroupPortEntry ::=  SEQUENCE{
        zxAnLinkGroupPortGroupId     Integer32,
        zxAnLinkGroupPortName        DisplayString,
        zxAnLinkGroupPortStatus      INTEGER,
        zxAnLinkGroupPortRowStatus   RowStatus
    }
    
    zxAnLinkGroupPortGroupId   OBJECT-TYPE
        SYNTAX        Integer32 (1..192)
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "The group ID of link group to which this port added."
        ::= { zxAnLinkGroupPortEntry 1 } 
        
    zxAnLinkGroupPortName   OBJECT-TYPE
        SYNTAX        DisplayString (SIZE (0..32))
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "The name of the link group member port."
        ::= { zxAnLinkGroupPortEntry 2 }
        
    zxAnLinkGroupPortStatus   OBJECT-TYPE
        SYNTAX        INTEGER{
            inactive(1),
            active(2)        
        }
        MAX-ACCESS    read-only
        STATUS        current
        DESCRIPTION
            "Aggregation status of the link group member port. 
            
             The following is the explanation of each value of variable 
             zxAnLinkGroupPortStatus.
             - inactive(1):
               the aggregation status of the link group member port is inactive.
             - active(2):
               the aggregation status of the link group member port is active."
        ::= { zxAnLinkGroupPortEntry 3 } 
        
    zxAnLinkGroupPortRowStatus   OBJECT-TYPE
        SYNTAX        RowStatus
        MAX-ACCESS    read-create
        STATUS        current
        DESCRIPTION
            "The status of this conceptual row.
            The state of this conceptual row only support 
            'not exist' and  'active'.
            The action of this conceptual row only support
            'createAndGo' and 'destroy'.
            
            To create a row in this table, a manager must
            set this object to createAndGo(4).
    
            To delete a row in this table, a manager must
            set this object to destroy(6). 
             
            To query this object, always return active(1)."
        ::= { zxAnLinkGroupPortEntry 50 }                                        

--------------------------------------------------------------------------------
-- 21. zxAnLinkGroupNotifications
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
-- 31. zxAnLinkGroupConformance
--------------------------------------------------------------------------------
zxAnLinkGroupConformance     OBJECT IDENTIFIER ::= {zxAnLinkGroupMib 4}

zxAnLinkGroupCompliances     OBJECT IDENTIFIER ::= {zxAnLinkGroupConformance 1}
zxAnLinkGroupGroups          OBJECT IDENTIFIER ::= {zxAnLinkGroupConformance 2}

    zxAnLinkGroupCompliance MODULE-COMPLIANCE
        STATUS current
        DESCRIPTION
            "The compliance statement for entities which implement the
             ZTE-AN-LINKGROUP-MIB."
        MODULE -- this module        
            MANDATORY-GROUPS {
                zxAnLinkGroupGroup,
                zxAnLinkGroupPortGroup
            }
        ::= { zxAnLinkGroupCompliances 1 }
        
    zxAnLinkGroupGroup OBJECT-GROUP
        OBJECTS {
            zxAnLinkGroupName,
            zxAnLinkGroupLoadBalanceMode,
            zxAnLinkGroupMemberPortName1,
            zxAnLinkGroupMemberPortName2,
            zxAnLinkGroupMemberPortName3,
            zxAnLinkGroupMemberPortName4,
            zxAnLinkGroupMemberPortName5,
            zxAnLinkGroupMemberPortName6,
            zxAnLinkGroupMemberPortName7,
            zxAnLinkGroupMemberPortName8
        }
        STATUS current
        DESCRIPTION
            "A collection of objects providing information of the link group."
        ::= { zxAnLinkGroupGroups 3 }   
        
    zxAnLinkGroupPortGroup OBJECT-GROUP
        OBJECTS {
            zxAnLinkGroupPortGroupId,
            zxAnLinkGroupPortName,
            zxAnLinkGroupPortStatus,
            zxAnLinkGroupPortRowStatus
        }
        STATUS current
        DESCRIPTION
            "A collection of objects providing information of the link group 
             member port."
        ::= { zxAnLinkGroupGroups 5 }          

END