-- *****************************************************************
-- MY-AP-MIB.mib:  My AP MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

MY-AP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        Integer32,
        Counter32,
        IpAddress
                FROM SNMPv2-SMI
        VlanId,
        PortList
                FROM Q-BRIDGE-MIB               
        TruthValue,
        DisplayString,
        RowStatus,
        MacAddress
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        ConfigStatus,
        MemberMap,
        IfIndex
                FROM MY-TC
        EnabledStatus 
                FROM P-BRIDGE-MIB
        myMgmt
                FROM MY-SMI;

myApMIB MODULE-IDENTITY
        LAST-UPDATED "200203200000Z"
        ORGANIZATION "$Company$"
        CONTACT-INFO
                " 
                Tel: $Telephone$ 

                E-mail: $E-mail$"
        DESCRIPTION
                "This module defines my aggreate port(AP) mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { myMgmt 7}

myApMIBObjects OBJECT IDENTIFIER ::= { myApMIB 1 }


myApMaxNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of MAX aggreate ports this system supported."
        ::= { myApMIBObjects 1 }

myApCurrentNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of current aggreate ports this system have."
        ::= { myApMIBObjects 2 }
    
    
myApPortConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyApPortConfigEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "aggreate port table."
        ::= { myApMIBObjects 3 }
    
myApPortConfigEntry OBJECT-TYPE
        SYNTAX MyApPortConfigEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "list of aggreate port and it's port group table."
        INDEX { myApPortConfigPortIndex }
        ::= { myApPortConfigTable 1 }
    
MyApPortConfigEntry ::=
        SEQUENCE {
        myApPortConfigPortIndex IfIndex,
        myApPortConfigApIndex IfIndex
        }    
    
myApPortConfigPortIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            " "
        ::= { myApPortConfigEntry 1 }  
        
myApPortConfigApIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-write
        STATUS obsolete
        DESCRIPTION
            "Set this value to 1  myApMaxNumber indicate that add this value
            to that aggreate port which this aggreate port must be valid. 
            It separates this port from aggreate port to set this value to 0 "
        ::= { myApPortConfigEntry 2 }          
    
    
myApTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyApEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "Aggreate ports table."
        ::= { myApMIBObjects 4 }
    
myApEntry OBJECT-TYPE
        SYNTAX MyApEntry
        MAX-ACCESS not-accessible
        STATUS obsolete
        DESCRIPTION
            "list of aggreate ports and it's distribution table."
        INDEX { myApIndex }
        ::= { myApTable 1 }
    
MyApEntry ::=
        SEQUENCE {
        myApIndex IfIndex,
        myApMemberAction MemberMap,
        myApPossibleMember MemberMap, 
        myApMaxPtNumber Integer32
--        myApEntryStatus ConfigStatus
        }
    
myApIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
            "aggreate ports index."
        ::= { myApEntry 1 }
 
myApMemberAction OBJECT-TYPE
        SYNTAX MemberMap
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
            "Each octet in this member action map assigned to a port,
            when the octet's value is 1 indicates the port of this octect
            is in the aggreate port. and 0 indicates the port is not in the aggreate port.
            this object can be modified only when the status of this entry 
            is invalid."
        ::= { myApEntry 2 }

myApPossibleMember OBJECT-TYPE
        SYNTAX MemberMap
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
           "Each octet in this member action map assigned to a port,
            when the octet's value is 1 indicates the port of this octect
            can be set in the aggreate port. and 0 indicates the port is not 
            possible be set in the aggreate port."
        ::= { myApEntry 3 }
                
myApMaxPtNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS obsolete
        DESCRIPTION
            "Max number of ports this aggreate port can include."
        ::= { myApEntry 4 }
                     
--myApEntryStatus OBJECT-TYPE
--        SYNTAX ConfigStatus
--        MAX-ACCESS read-create
--        STATUS obsolete
--        DESCRIPTION
--            "Status of this entry, set this object to valid will create a aggreate port, 
--             and set its value to invalid will delete the aggreate port of this entry."
--        ::= { myApEntry 5 }
        

myApFlowBanlance OBJECT-TYPE
        SYNTAX INTEGER {
          unknown(0),
          source-mac(1),
          destination-mac(2),
          src-dest-mac(3),
          source-ip(4),
          destination-ip(5),
          src-dest-ip(6),
          src-dest-port(7)
        }
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Aggreate port's flow banlance arithmetic."
        ::= { myApMIBObjects 5 }
       
-- myApConfigTable from the 10.3(5) was started to support.       
myApConfigTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyApConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "Aggreate ports table."
        ::= { myApMIBObjects 6 }
        
myApConfigEntry OBJECT-TYPE
        SYNTAX MyApConfigEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of aggreate ports and it's distribution table."
        INDEX { myApConfigNumber }
        ::= { myApConfigTable 1 }
            
MyApConfigEntry ::=
        SEQUENCE {
        myApConfigNumber Integer32,
        myApConfigIndex IfIndex,
        myApConfigMaxPtNumber Integer32,
        myApConfigCurrentPtNumber Integer32,
        myApConfigPortMember PortList,
        myApConfigAction Integer32
        }

myApConfigNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "aggreate ports number.Set this value to 1  myApMaxNumber."
        ::= { myApConfigEntry 1 }
 
myApConfigIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "aggreate ports index."
        ::= { myApConfigEntry 2 }

myApConfigMaxPtNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of MAX aggreate ports this system supported."
        ::= { myApConfigEntry 3 }
        
myApConfigCurrentPtNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of current ports this aggreate port have."
        ::= { myApConfigEntry 4 }        
 
myApConfigPortMember OBJECT-TYPE
        SYNTAX PortList
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Each octet in this member action map assigned to a port,
            when the octet's value is 1 indicates the port of this octect
            is in the aggreate port. and 0 indicates the port is not in the aggreate port.
            this object can be modified only when the status of this entry 
            is invalid."
        ::= { myApConfigEntry 5 }
       
myApConfigAction OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The value 1 to add an aggreate port, 0 to delete an aggreate port."
        ::= { myApConfigEntry 6 }

-- myApPortMemberTable from the 10.3(5) was started to support.   
myApPortMemberTable OBJECT-TYPE
        SYNTAX SEQUENCE OF MyApPortMemberEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "aggreate port table."
        ::= { myApMIBObjects 7 }
    
myApPortMemberEntry OBJECT-TYPE
        SYNTAX MyApPortMemberEntry
        MAX-ACCESS not-accessible
        STATUS current
        DESCRIPTION
            "list of aggreate port and it's port group table."
        INDEX { myApPortMemberPortIndex }
        ::= { myApPortMemberTable 1 }
    
MyApPortMemberEntry ::=
        SEQUENCE {
        myApPortMemberPortIndex IfIndex,
        myApPortMemberApNumber Integer32,
        myApPortMemberAction Integer32
        }    
  
myApPortMemberPortIndex OBJECT-TYPE
        SYNTAX IfIndex
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            " a switch port index. "
        ::= { myApPortMemberEntry 1 }  
      
myApPortMemberApNumber OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Set this value to 1  myApMaxNumber indicate that add this value
            to that aggreate port."
        ::= { myApPortMemberEntry 2 }   
       
myApPortMemberAction OBJECT-TYPE
        SYNTAX Integer32
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "The value 1 indcate add to an aggreate port, 0 to delete from an aggreate port."
        ::= { myApPortMemberEntry 3 }        
        
myApMIBConformance OBJECT IDENTIFIER ::= { myApMIB 2 }
myApMIBCompliances OBJECT IDENTIFIER ::= { myApMIBConformance 1 }
myApMIBGroups      OBJECT IDENTIFIER ::= { myApMIBConformance 2 }


-- compliance statements

myApMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the My Ap MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { myApMIBGroup
                 }
        ::= { myApMIBCompliances 1 }
                
-- units of conformance

myApMIBGroup OBJECT-GROUP
        OBJECTS {
           myApMaxNumber,
           myApCurrentNumber,
           myApPortConfigApIndex,
           myApIndex,
           myApMemberAction,
           myApMaxPtNumber,
           myApFlowBanlance,           
--           myApEntryStatus,
           myApConfigNumber,
           myApConfigIndex,
           myApConfigMaxPtNumber,           
           myApConfigCurrentPtNumber,
           myApConfigPortMember,
           myApConfigAction, 
           myApPortMemberPortIndex,
           myApPortMemberApNumber,
           myApPortMemberAction                
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing aggreate port configure."
        ::= { myApMIBGroups 1 }                
        
END
