-- *****************************************************************
-- MY-ARP-MIB.mib:  My Arp MIB file
--
-- $Copyright$
-- 
-- *****************************************************************
--

MY-ARP-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY,
        OBJECT-TYPE,
        NOTIFICATION-TYPE,
        IpAddress,
        Integer32,
        Counter32
                FROM SNMPv2-SMI
        TruthValue,
        DisplayString,
        RowStatus,
        PhysAddress
                FROM SNMPv2-TC
        MODULE-COMPLIANCE,
        OBJECT-GROUP,
        NOTIFICATION-GROUP
                FROM SNMPv2-CONF
        IfIndex
                FROM MY-TC        
        ip
                FROM RFC1213-MIB
        myMgmt
                FROM MY-SMI;

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

                E-mail: $E-mail$"
        DESCRIPTION
                "This module defines my arp mibs."
        REVISION      "200203200000Z"
        DESCRIPTION
                "Initial version of this MIB module."
        ::= { myMgmt 2}

myArpMIBObjects OBJECT IDENTIFIER ::= { myArpMIB 1 }


 -- IP Address Translation table

 -- The IP address translation table contain the IpAddress to
 -- `physical' address equivalences for ARP(Address Resolution Protocol). 
   
 myArpTable OBJECT-TYPE
     SYNTAX  SEQUENCE OF MyArpEntry
     MAX-ACCESS  not-accessible
     STATUS  current
     DESCRIPTION
             "The IP Address Translation table used for mapping
             from IP addresses to physical addresses."
     ::= { myArpMIBObjects 1 }

 myArpEntry OBJECT-TYPE
     SYNTAX  MyArpEntry
     MAX-ACCESS  not-accessible
     STATUS  current
     DESCRIPTION
             "Each entry contains one IpAddress to `physical'
             address equivalence."
     INDEX   { myArpIfIndex,
               myArpNetAddress }
     ::= { myArpTable 1 }

 MyArpEntry ::=
     SEQUENCE {
         myArpIfIndex
             IfIndex,
         myArpPhysAddress
             PhysAddress,
         myArpNetAddress
             IpAddress,
         myArpRemainAge
             Integer32,    
         myArpType
             INTEGER,
         myArpEntryType
             INTEGER,    
         myArpStatus   
             RowStatus 
     }

 myArpIfIndex OBJECT-TYPE
     SYNTAX  IfIndex
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION
             "The interface on which this entry's equivalence
             is effective.  The interface identified by a
             particular value of this index is the same
             interface as identified by the same value of
             ifIndex."
     ::= { myArpEntry 1 }

 myArpPhysAddress OBJECT-TYPE
     SYNTAX  PhysAddress
     MAX-ACCESS  read-write
     STATUS  current
     DESCRIPTION
             "The media-dependent `physical' address."
     ::= { myArpEntry 2 }

 myArpNetAddress OBJECT-TYPE
     SYNTAX  IpAddress
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION
             "The IpAddress corresponding to the media-
             dependent `physical' address."
     ::= { myArpEntry 3 }

 myArpRemainAge OBJECT-TYPE
     SYNTAX  Integer32
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION
             "The remain age of this ARP entry, in units of minute"
     ::= { myArpEntry 4 }
     
 myArpType OBJECT-TYPE
     SYNTAX  INTEGER {
                 arpa(1)       -- none of the following
             }
     MAX-ACCESS  read-write
     STATUS  current
     DESCRIPTION
             "The ARP type of the entry."
     ::= { myArpEntry 5 }

 myArpEntryType OBJECT-TYPE
     SYNTAX  INTEGER {
                 static(1),   -- arp entry which is configured manually, these entries will not aging
                 dynamic(2), -- learnd by system, thest entry  may aging.
                 interface(3), -- the arp entry of the corresponding ip of the interface
                 vrrp(4), -- arp entry which is added by the vrrp protocol
                 trusted(5) -- arp entrty which is added through the smp server
             }
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION
             "The entry type."
     ::= { myArpEntry 6 }        
        
 myArpStatus OBJECT-TYPE
        SYNTAX RowStatus
        MAX-ACCESS read-create
        STATUS current
        DESCRIPTION
            "entry status of this entry. and the means in this enviraments can
            reffer to the text-convention definition of the RowStatus."
    ::= { myArpEntry 7 }        
                



 --  Interface configure for ARP(Address Resolution Protocol)
   
 myArpIfTable OBJECT-TYPE
     SYNTAX  SEQUENCE OF MyArpIfEntry
     MAX-ACCESS  not-accessible
     STATUS  current
     DESCRIPTION
             "Interface configure for ARP(Address Resolution Protocol)."
     ::= { myArpMIBObjects 2 }

 myArpIfEntry OBJECT-TYPE
     SYNTAX  MyArpIfEntry
     MAX-ACCESS  not-accessible
     STATUS  current
     DESCRIPTION
             "Each entry contains a interface configure for ARP"
     INDEX   { myArpIfIfIndex}
     ::= { myArpIfTable 1 }

 MyArpIfEntry ::=
     SEQUENCE {
         myArpIfIfIndex
             IfIndex,
         myArpIfCacheTimeOut
             INTEGER
     }

 myArpIfIfIndex OBJECT-TYPE
     SYNTAX  IfIndex
     MAX-ACCESS  read-only
     STATUS  current
     DESCRIPTION
             "The interface on which this entry's equivalence
             is effective.  The interface identified by a
             particular value of this index is the same
             interface as identified by the same value of
             ifIndex."
     ::= { myArpIfEntry 1 }
                  
 myArpIfCacheTimeOut OBJECT-TYPE
        SYNTAX INTEGER (60..18000)
        MAX-ACCESS read-write
        STATUS current
        DESCRIPTION
            "Aging time in units of second of Arp table"
        ::= { myArpIfEntry 2 }

 --  Counter for ARP(Address Resolution Protocol)

 myArpCurrentTotalNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of current total arp entrys this system have"
        ::= { myArpMIBObjects 3 }        

 myArpCurrentUnresolveNumber OBJECT-TYPE
        SYNTAX Counter32
        MAX-ACCESS read-only
        STATUS current
        DESCRIPTION
            "Number of current unresolve arp entrys this system have"
        ::= { myArpMIBObjects 4 }        
         
myArpMIBConformance OBJECT IDENTIFIER ::= { myArpMIB 2 }
myArpMIBCompliances OBJECT IDENTIFIER ::= { myArpMIBConformance 1 }
myArpMIBGroups      OBJECT IDENTIFIER ::= { myArpMIBConformance 2 }


-- compliance statements

myArpMIBCompliance MODULE-COMPLIANCE
        STATUS  current
        DESCRIPTION
                "The compliance statement for entities which implement
                the My Arp MIB"
        MODULE  -- this module
                MANDATORY-GROUPS { myArpMIBGroup
                 }
--        OBJECT           ipNetToMediaIfIndex
--        MIN-ACCESS       read-only
--        DESCRIPTION     "Write access is not required."
--
--        OBJECT           ipNetToMediaPhysAddress
--        MIN-ACCESS       read-create
--        DESCRIPTION     "read-create access is permitted."
--        
--        OBJECT           ipNetToMediaNetAddress
--        MIN-ACCESS       read-only
--        DESCRIPTION     "Write access is not required."
        
        ::= { myArpMIBCompliances 1 }
                
-- units of conformance

myArpMIBGroup OBJECT-GROUP
        OBJECTS {
         myArpIfIndex,
         myArpPhysAddress,
         myArpNetAddress,
         myArpRemainAge,    
         myArpType,
         myArpEntryType,
         myArpStatus, 
         myArpIfIfIndex,
         myArpIfCacheTimeOut,
         myArpCurrentTotalNumber,
         myArpCurrentUnresolveNumber
        }
        STATUS  current
        DESCRIPTION
                "A collection of objects providing arp management and
                opertion to a My agent."
        ::= { myArpMIBGroups 1 } 
  
END
