--------------------------------------------------------------------------------
-- ACMEPACKET-SWINVENTORY-MIB:  Acme Packet software inventory MIB file
--
-- October 2004
--
-- Copyright (c) by Acme Packet, Inc.
-- All rights reserved.
--------------------------------------------------------------------------------
-- This MIB provides a means to gather software inventory information generated 
-- by Acme Packet Session Router and Session Director
-- 

APSWINVENTORY-MIB DEFINITIONS ::= BEGIN

IMPORTS
	MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
	Integer32, Unsigned32, Counter32
					FROM SNMPv2-SMI
	DisplayString,
	TEXTUAL-CONVENTION		FROM SNMPv2-TC
        MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
					FROM SNMPv2-CONF
	acmepacketMgmt			FROM ACMEPACKET-SMI;
     
apSwInventoryModule	MODULE-IDENTITY
	       LAST-UPDATED     "201207130000Z"
   	       ORGANIZATION     "Acme Packet, Inc"
	       CONTACT-INFO
			"           	Customer Service
		 	Postal:		Acme Packet, Inc
					100 Crosby Drive 
					Bedford, MA 01730
					US
		    	Tel:		1-781-328-4400
		 	E-mail:		support@acmepacket.com"
            
                DESCRIPTION
			" The software inventory MIB for Acme Packet"
                REVISION "201207130000Z"	
                DESCRIPTION
                        "Updated contact info"	
		::= { acmepacketMgmt 4 }



apSwInventoryMIBObjects  OBJECT IDENTIFIER 
::= { apSwInventoryModule 1 }

apSwInventoryBootObjects OBJECT IDENTIFIER ::= { apSwInventoryMIBObjects 1 }
apSwInventoryCfgObjects OBJECT IDENTIFIER ::= { apSwInventoryMIBObjects 2 }

-- software inventory Group 
apSwBootTable OBJECT-TYPE
	SYNTAX	SEQUENCE OF ApSwBootEntry
	MAX-ACCESS 	not-accessible
	STATUS		current
	DESCRIPTION
		"The table of booting software inventory"
	::= { apSwInventoryBootObjects 1 }

apSwBootEntry OBJECT-TYPE
	SYNTAX		ApSwBootEntry
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION
		"An entry in the software inventory table"
	INDEX		{ apSwBootIndex }
	::= { apSwBootTable 1}


ApSwBootEntry ::=
	SEQUENCE {
		apSwBootIndex	Integer32 (1..2147483647),
		apSwBootDescr	DisplayString,
		apSwBootType	INTEGER,
		apSwBootStatus	INTEGER
	}

apSwBootIndex OBJECT-TYPE
	SYNTAX		Integer32 (1..2147483647)
	MAX-ACCESS	not-accessible
	STATUS		current
	DESCRIPTION	
		"Unique index for the software inventory table. 
		Index always begins at 1, and increases by 1. 
		The table length depends on the size of software inventory. 
		The index is not associated with any specific inventory entry"
	::= { apSwBootEntry 1 }


apSwBootDescr OBJECT-TYPE
	SYNTAX	DisplayString (SIZE (1..128))
	MAX-ACCESS	read-only
	STATUS	current
	DESCRIPTION	
		"Textual description of the software image.
		It maybe file name, data and time this image was built,
		or the unique identifier of this software.
		Examples are: 
		1.  boot image: 10.0.1.12/sd121p3.gz 
		for host address is 10.0.1.12, and image name is sd121p3.gz
		2. boot image: /tffs0/sd121p3.gz 
		for boot from flash 0, and image name is sd121p3.gz
  		3. boot loader: bank0:03/18/2004 10:58:25 
		for boot from bank 0, and version is 'march 18 2003, 10:58:25'
	        4. boot loader: <card>:<version>"
	::= { apSwBootEntry 2 }

apSwBootType OBJECT-TYPE
	SYNTAX		INTEGER {
	                        bootImage(1),
        	                bootLoader (2)
                        	}
	
	MAX-ACCESS	read-only
	STATUS		current
	DESCRIPTION
		"The software entity type"
	::= { apSwBootEntry 3 }

apSwBootStatus OBJECT-TYPE
	SYNTAX	INTEGER {
			currentUsing(1),
			previousUsed(2)
			}
	MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
               "The software entity status"
	::= { apSwBootEntry 4 }

-- configuration MIBs
apSwCfgCurrentVersion OBJECT-TYPE
	SYNTAX          Integer32 (1..2147483647)
	MAX-ACCESS      read-only
	STATUS  	current
        DESCRIPTION
		"current version of saved configuration"
	::= { apSwInventoryCfgObjects 1 }

apSwCfgRunningVersion OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
                "current version of running configuration"
        ::= { apSwInventoryCfgObjects 2 }

apSwCfgBackuptable OBJECT-TYPE
        SYNTAX  SEQUENCE OF ApSwCfgBackupEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "The table of backup configuration files"
        ::= { apSwInventoryCfgObjects 3 }

apSwCfgBackupEntry OBJECT-TYPE
        SYNTAX  	ApSwCfgBackupEntry
        MAX-ACCESS      not-accessible
        STATUS  	current
        DESCRIPTION
                "An entry in the backup configuration files table"
        INDEX           { apSwCfgBackupIndex }
        ::= { apSwCfgBackuptable 1}


ApSwCfgBackupEntry ::=
        SEQUENCE {
                apSwCfgBackupIndex      Integer32 (1..2147483647),
                apSwCfgBackupName       DisplayString
		}
	
apSwCfgBackupIndex OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION     
                "Unique index for the backup configuration files table. 
                Index always begins at 1, and increases by 1. 
                The table length depends on the size of backup configuration. 
                The index is not associated with any specific entry"
        ::= { apSwCfgBackupEntry 1 }


apSwCfgBackupName OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (1..255))
        MAX-ACCESS      read-only
        STATUS  	current
        DESCRIPTION     
                "Textual description of the condifuration file name.
                Examples are: p1604, 063004-cfg"
        ::= { apSwCfgBackupEntry 2 }

	
-- Notification MIBs

apSwInventoryNotificationObjects OBJECT IDENTIFIER ::= { apSwInventoryModule 2 }

apSwCfgNotificationObjects	OBJECT IDENTIFIER ::= { apSwInventoryNotificationObjects 1}

apSwCfgTrapPreviousVersion	OBJECT-TYPE
	SYNTAX		Integer32 (1..2147483647)
	MAX-ACCESS      accessible-for-notify
        STATUS          current
        DESCRIPTION
                "The previous version before this trap happened"
	::= { apSwCfgNotificationObjects 1}

apSwCfgTrapCurrentVersion        OBJECT-TYPE
        SYNTAX          Integer32 (1..2147483647)
        MAX-ACCESS      accessible-for-notify
        STATUS          current
        DESCRIPTION
                "The current version after this trap happened"
        ::= { apSwCfgNotificationObjects 2}


-- Notifications

apSwInventoryNotificationPrefix OBJECT IDENTIFIER ::= { apSwInventoryModule 3 }
apSwInventoryNotifications OBJECT IDENTIFIER ::= { apSwInventoryNotificationPrefix 0 }

apSwCfgActivateNotification	NOTIFICATION-TYPE
        OBJECTS {
		apSwCfgTrapPreviousVersion,
		apSwCfgTrapCurrentVersion
		}
	STATUS  current
        DESCRIPTION
                "This trap is sent if <activate-config> is 
		issued and configration has been changed at runnign time"
        ::= { apSwInventoryNotifications 1 }

-- conformance information

apSwInventoryConformance OBJECT IDENTIFIER ::= { apSwInventoryModule 4 }
apSwInventoryCompliances OBJECT IDENTIFIER ::= { apSwInventoryConformance 1 }
apSwInventoryGroups      OBJECT IDENTIFIER ::= { apSwInventoryConformance 2 }
apSwInventoryNotificationsGroups
			 OBJECT IDENTIFIER ::= { apSwInventoryConformance 3 }
				 
-- compliance statements

-- units of conformance

apSwBootObjectsGroup OBJECT-GROUP
	OBJECTS  {
		apSwBootDescr,
		apSwBootType,
		apSwBootStatus
		}
	STATUS		current
	DESCRIPTION
		"A collection of objects providing the software booting inventory"
	::= {  apSwInventoryGroups 1 }

apSwCfgObjectsGroup OBJECT-GROUP
        OBJECTS  {
		apSwCfgCurrentVersion,
		apSwCfgRunningVersion,
		apSwCfgBackupName
		}
	STATUS          current
        DESCRIPTION
		"A collection of objects providing the configuraion files"
	::= {  apSwInventoryGroups 2 }

-- notifications groups

apSwInventoryNotificationsGroup NOTIFICATION-GROUP
	NOTIFICATIONS  {
		apSwCfgActivateNotification
	}
	STATUS   current
        DESCRIPTION
                 "A collection of notifications providing the change 
                  for software inventory."
	::= {  apSwInventoryNotificationsGroups 1 }
	
END

