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

IMPORTS
    MODULE-IDENTITY, OBJECT-TYPE, Integer32         FROM SNMPv2-SMI
    MODULE-COMPLIANCE, OBJECT-GROUP                 FROM SNMPv2-CONF              
    RowStatus, MacAddress                           FROM SNMPv2-TC
    VlanId,zxAn                                     FROM ZTE-AN-TC-MIB
    InterfaceIndex                                  FROM IF-MIB;
    
    zxAnVmacMib MODULE-IDENTITY
        LAST-UPDATED    "1308160000Z"
        ORGANIZATION    "ZTE Corporation"
        CONTACT-INFO    "Yang Xi   ZTE Corporation
                        Mail: yang.xi8@zte.com.cn
                        Tel : +86-21-68897487"
        DESCRIPTION     "The MIB module for the management of VMAC."
        REVISION        "1308160000Z"
        DESCRIPTION     "Initial version of this MIB module."
        ::= { zxAn 101 }

--------------------------------------------------------------------------------
-- Following objects are defined.
-- 2. VMAC VLAN Objects
-- 3. VMAC Interface Objects
-- 3.1 VMAC Interface Configuration Table
-- 3.2 VMAC Interface Translation Table
--------------------------------------------------------------------------------

    zxAnVmacObjects          OBJECT IDENTIFIER ::= { zxAnVmacMib 2 }
    zxAnVmacVlanObjects      OBJECT IDENTIFIER ::= { zxAnVmacObjects 1 }    
    zxAnVmacIfObjects        OBJECT IDENTIFIER ::= { zxAnVmacObjects 2 }

--------------------------------------------------------------------------------
-- 1. VMAC Global Objects
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------
-- 2. VMAC VLAN Objects
--------------------------------------------------------------------------------
    zxAnVmacVlanTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF ZxAnVmacVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Virtual MAC address VLAN table."
        ::= { zxAnVmacVlanObjects 2 }
    
    zxAnVmacVlanEntry OBJECT-TYPE
        SYNTAX      ZxAnVmacVlanEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Virtual MAC address VLAN entry."
        INDEX  { zxAnVmacVid }
        ::= { zxAnVmacVlanTable 1 }
    
    ZxAnVmacVlanEntry ::= SEQUENCE {
        zxAnVmacVid                VlanId,        
        zxAnVmacMacPoolIndex       Integer32,
        zxAnVmacVlanRowStatus      RowStatus
        }
    
    zxAnVmacVid OBJECT-TYPE
        SYNTAX      VlanId
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "VLAN ID."
        ::= { zxAnVmacVlanEntry 1 }

    zxAnVmacMacPoolIndex OBJECT-TYPE
        SYNTAX      Integer32(1..8)
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The virtual MAC address translation MAC pool index."
        ::= { zxAnVmacVlanEntry 2 }

    zxAnVmacVlanRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The status of this conceptual row.
            
            The supported actions of this conceptual row only include:
            'createAndGo' and 'destroy'.

            To create a row in this table, a manager must set this object to 
            createAndGo(4), and must comply with the multi-variables binding 
            rule described in zxAnVmacVlanEntry.
    
            To delete a row in this table, a manager must set this object to 
            destroy(6). 
             
            To get this object, the agent always returns active(1)."
        ::= { zxAnVmacVlanEntry 50 }
        
------------------------------------------------------------------------------
-- 3. VMAC Interface Objects
------------------------------------------------------------------------------   

------------------------------------------------------------------------------
-- 3.1 VMAC Interface Configuration Table
------------------------------------------------------------------------------   

    zxAnVmacIfConfTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF ZxAnVmacIfConfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Virtual MAC address interface configuration table."
        ::= { zxAnVmacIfObjects 2 }

   zxAnVmacIfConfEntry OBJECT-TYPE
        SYNTAX      ZxAnVmacIfConfEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Virtual MAC address interface configuration entry."
        INDEX   { zxAnVmacIfIndex }
        ::= { zxAnVmacIfConfTable 1}

    ZxAnVmacIfConfEntry ::= SEQUENCE {
        zxAnVmacIfIndex                InterfaceIndex, 
        zxAnVmacIfConfTranslateEnable  INTEGER,
        zxAnVmacIfConfTranslateLimit   Integer32        
        }

    zxAnVmacIfIndex  OBJECT-TYPE
        SYNTAX      InterfaceIndex
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Virtual MAC address interface index."
        ::= { zxAnVmacIfConfEntry 1 } 
            
    zxAnVmacIfConfTranslateEnable  OBJECT-TYPE
        SYNTAX      INTEGER {
            enabled(1),
            disabled(2)
        }
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Enables or disables the virtual MAC address translation."
        DEFVAL { disabled }
        ::= { zxAnVmacIfConfEntry 2 }  
        
    zxAnVmacIfConfTranslateLimit  OBJECT-TYPE
        SYNTAX      Integer32(0..16)
        MAX-ACCESS  read-write
        STATUS      current
        DESCRIPTION
            "Virtual MAC address translation limit."
        DEFVAL { 16 } 
        ::= { zxAnVmacIfConfEntry 3 }
        
------------------------------------------------------------------------------
-- 3.2 VMAC Interface Translation Table
------------------------------------------------------------------------------
    
    zxAnVmacIfTranslateTable OBJECT-TYPE
        SYNTAX      SEQUENCE OF ZxAnVmacIfTranslateEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Interface virtual MAC address translation table."
        ::= { zxAnVmacIfObjects 3 }
        
    zxAnVmacIfTranslateEntry OBJECT-TYPE
        SYNTAX      ZxAnVmacIfTranslateEntry
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Interface virtual MAC address translation entry."
        INDEX   
        { 
            zxAnVmacIfIndex,
            zxAnVmacIfTranslateVid,
            zxAnVmacIfTranslateSrcMac
        }
        ::= { zxAnVmacIfTranslateTable 1}
    
    ZxAnVmacIfTranslateEntry ::= SEQUENCE {
        zxAnVmacIfTranslateVid       VlanId,
        zxAnVmacIfTranslateSrcMac    MacAddress,
        zxAnVmacIfTranslateVmac      MacAddress,        
        zxAnVmacIfTranslateRowStatus RowStatus
     }
    
    zxAnVmacIfTranslateVid OBJECT-TYPE
        SYNTAX      VlanId
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "VLAN ID."
        ::= { zxAnVmacIfTranslateEntry 1 }   
         
    zxAnVmacIfTranslateSrcMac OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  not-accessible
        STATUS      current
        DESCRIPTION
            "Source MAC address."
        ::= { zxAnVmacIfTranslateEntry 2 } 
           
    zxAnVmacIfTranslateVmac OBJECT-TYPE
        SYNTAX      MacAddress
        MAX-ACCESS  read-only
        STATUS      current
        DESCRIPTION
            "Virtual MAC address."
        ::= { zxAnVmacIfTranslateEntry 3 }    
        
    zxAnVmacIfTranslateRowStatus OBJECT-TYPE
        SYNTAX      RowStatus
        MAX-ACCESS  read-create
        STATUS      current
        DESCRIPTION
            "The status of this conceptual row.
            
            The supported actions of this conceptual row only include:
            'destroy'.

            To delete a row in this table, a manager must set this object to 
            destroy(6). 
             
            To get this object, the agent always returns active(1)."
        ::= { zxAnVmacIfTranslateEntry 50 }        
END
