------------------------------------------------------------------------------
-- APDNSALG-MIB.txt:  Acme Packet Dns Alg MIB
--
-- June 2011
--
-- Copyright (c) by Acme Packet, Inc.
-- All rights reserved.
-------------------------------------------------------------------------------
--

APDNSALG-MIB DEFINITIONS ::= BEGIN

IMPORTS
        MODULE-IDENTITY, OBJECT-TYPE, NOTIFICATION-TYPE,
	Integer32, Gauge32, Counter32, Unsigned32, IpAddress
		 	FROM SNMPv2-SMI
	InetAddress, InetAddressType, InetAddressPrefixLength, InetVersion, InetZoneIndex
			FROM INET-ADDRESS-MIB
	TEXTUAL-CONVENTION
			FROM SNMPv2-TC
	DisplayString   FROM SNMPv2-TC
	InterfaceIndexOrZero, InterfaceIndex, ifIndex
			FROM IF-MIB
	MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
			FROM SNMPv2-CONF
	acmepacketMgmt  FROM ACMEPACKET-SMI
	ApTransportType, ApHardwareModuleFamily, ApRedundancyState
			FROM ACMEPACKET-TC
	SysMgmtPercentage
 			FROM APSYSMGMT-MIB;

apDNSALGModule   MODULE-IDENTITY
               LAST-UPDATED     "201106080000Z"
               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 Dns Alg MIB for Acme Packet."
                ::= { acmepacketMgmt 14 }


apDNSALGMIBObjects OBJECT IDENTIFIER ::= { apDNSALGModule 1 }
apDNSALGMIBGeneralObjects OBJECT IDENTIFIER ::= {apDNSALGMIBObjects 1}
apDNSALGMIBTabularObjects OBJECT IDENTIFIER ::= {apDNSALGMIBObjects 2}

apDNSALGNotificationObjects OBJECT IDENTIFIER ::= { apDNSALGModule 2 }
apDNSALGNotifObjects OBJECT IDENTIFIER ::= { apDNSALGNotificationObjects 1 }
apDNSALGNotifPrefix  OBJECT IDENTIFIER ::= { apDNSALGNotificationObjects 2 }
apDNSALGNotifications  OBJECT IDENTIFIER ::= { apDNSALGNotifPrefix 0 }

-- conformance information

apDNSALGConformance OBJECT IDENTIFIER ::= { apDNSALGModule 3 }
apDNSALGObjectGroups OBJECT IDENTIFIER ::= { apDNSALGConformance 1 }
apDNSALGNotificationGroups OBJECT IDENTIFIER ::= { apDNSALGConformance 2 }

-- DNSALG Server Table

apDNSALGServerStatusTable OBJECT-TYPE
        SYNTAX          SEQUENCE OF ApDNSALGServerStatusEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A read-only table to hold the status of configured DNSALG servers,
            indexed by the name of the Dns alg config name, 
	    server realm and server IP."
        ::= { apDNSALGMIBTabularObjects 1 }

apDNSALGServerStatusEntry OBJECT-TYPE
        SYNTAX          ApDNSALGServerStatusEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "An entry designed to hold the status of a single DNSALG server"
        INDEX { apDNSALGConfigIndex,
		apDNSALGServerIndex,
		apDNSALGServerIpAddress }
      ::= { apDNSALGServerStatusTable 1 }

ApDNSALGServerStatusEntry ::= SEQUENCE {
	apDNSALGConfigIndex             INTEGER,
	apDNSALGServerIndex             INTEGER,
        apDNSALGConfigName              DisplayString,
        apDNSALGServerRealm             DisplayString,
        apDNSALGDomainSuffix            DisplayString,
        apDNSALGServerIpAddress         IpAddress,
        apDNSALGServerStatus            INTEGER
        }

apDNSALGConfigIndex        OBJECT-TYPE
        SYNTAX                  INTEGER (1..2147483647)
        MAX-ACCESS              accessible-for-notify
        STATUS                  current
        DESCRIPTION
            "An integer for the sole purpose of indexing the DNS-ALG configuration.Only one 
            DNS-ALG configuration is allowed per a realm."
        ::= {apDNSALGServerStatusEntry 1}

apDNSALGServerIndex       OBJECT-TYPE
        SYNTAX                  INTEGER (1..2147483647)
        MAX-ACCESS              accessible-for-notify
        STATUS                  current
        DESCRIPTION
            "An integer for the sole purpose of indexing the Dns Server Attributes in a DNS-ALG config.
            Each DNS-ALG config can have multiple Dns Server Attributes."
        ::= {apDNSALGServerStatusEntry 2}

apDNSALGConfigName      OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The name of the dns-alg-config element that contains this
            DNS-ALG server."
        ::= { apDNSALGServerStatusEntry 4 }
        
apDNSALGServerRealm     OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The name of the server realm element that contains this
            DNSALG server."
        ::= { apDNSALGServerStatusEntry 5 }
        
apDNSALGDomainSuffix    OBJECT-TYPE
        SYNTAX          DisplayString (SIZE (0..255))
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The name of the domain suffix element that contains this
            DNSALG server."
        ::= { apDNSALGServerStatusEntry 6 }

apDNSALGServerIpAddress OBJECT-TYPE
        SYNTAX          IpAddress
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
            "The IP address of this DNSALG server."
        ::= { apDNSALGServerStatusEntry 7 }

apDNSALGServerStatus    OBJECT-TYPE
        SYNTAX          INTEGER {
                                inservice(0),
                                lowerpriority(1),
                                oosunreachable(2)
				}
	MAX-ACCESS      read-only
	STATUS          current
	DESCRIPTION
	"The status of this DNSALG server."
	::= { apDNSALGServerStatusEntry 8 }
	
	
apDNSALGStatsTable            OBJECT-TYPE
        SYNTAX          SEQUENCE OF ApDnsAlgStatsEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "per DNS-ALG config(i.e.client realm)stats."
        ::= { apDNSALGMIBTabularObjects 2 }

apDnsALGStatsEntry         OBJECT-TYPE
        SYNTAX          ApDnsAlgStatsEntry
        MAX-ACCESS      not-accessible
        STATUS          current
        DESCRIPTION
            "A table entry designed to hold DNS-ALG stats data"
        INDEX { apDnsAlgClientRealmIndex }
        ::= { apDNSALGStatsTable 1 }

ApDnsAlgStatsEntry ::= SEQUENCE {
        apDnsAlgClientRealmIndex		INTEGER,
	apDnsAlgClientRealmName			DisplayString,	
	apDnsAlgCurrentQueries                  Gauge32,
        apDnsAlgTotalQueries                    Counter32,
	apDnsAlgCurrentSucess			Gauge32,
	apDnsAlgTotalSucess			Counter32,
	apDnsAlgCurrentNotFound			Gauge32,
	apDnsAlgTotalNotFound			Counter32,
	apDnsAlgCurrentTimeOut			Gauge32,
	apDnsAlgTotalTimeOut			Counter32,
	apDnsAlgCurrentBadStatus                Gauge32,
        apDnsAlgTotalBadStatus                  Counter32,
        apDnsAlgCurrentOtherFailures            Gauge32,
        apDnsAlgTotalOtherFailures              Counter32,
	apDnsAlgAvgLatency			Unsigned32,
	apDnsAlgMaxLatency			Unsigned32,
	apDnsAlgMaxBurstRate			Unsigned32

}

apDnsAlgClientRealmIndex        OBJECT-TYPE
        SYNTAX                  INTEGER (1..2147483647)
        MAX-ACCESS              accessible-for-notify
        STATUS                  current
        DESCRIPTION
            "An integer for the sole purpose of indexing the DNS-ALG configuration.Only one 
            DNS-ALG configuration is allowed per a realm."
        ::= {apDnsALGStatsEntry 1}

apDnsAlgClientRealmName OBJECT-TYPE
	SYNTAX 			DisplayString (SIZE (0..255))
	MAX-ACCESS			read-only
	STATUS			current
	DESCRIPTION
	    "DNS-ALG Config realm name"
	::= { apDnsALGStatsEntry 2}

apDnsAlgCurrentQueries OBJECT-TYPE
            SYNTAX                  Gauge32
            MAX-ACCESS                      read-only
            STATUS                  current
            DESCRIPTION
                "Number of queries sent in recent period received on DNS-ALG config realm."
            ::= { apDnsALGStatsEntry 3}
    
apDnsAlgTotalQueries OBJECT-TYPE
            SYNTAX                  Counter32
            MAX-ACCESS                      read-only
            STATUS                  current
            DESCRIPTION
                "Total number of queries sent in life time received on DNS-ALG config realm."
            ::= { apDnsALGStatsEntry 4}

apDnsAlgCurrentSucess OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS 			read-only
	STATUS			current
	DESCRIPTION
	    "Number of success responses in recent period received on DNS-ALG config realm."
	::= { apDnsALGStatsEntry 5}

apDnsAlgTotalSucess OBJECT-TYPE
	SYNTAX			Counter32
	MAX-ACCESS 			read-only
	STATUS			current
	DESCRIPTION
	    "Total number of success responses in life time received on DNS-ALG config realm."
	::= { apDnsALGStatsEntry 6}

apDnsAlgCurrentNotFound OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS 			read-only
	STATUS			current
	DESCRIPTION
	    "Number of not-found responses in recent period received on DNS-ALG config realm."
	::= { apDnsALGStatsEntry 7}

apDnsAlgTotalNotFound OBJECT-TYPE
	SYNTAX			Counter32
	MAX-ACCESS 			read-only
	STATUS			current
	DESCRIPTION
	    "Total number of not-found responses in life time received on DNS-ALG config realm."
	::= { apDnsALGStatsEntry 8}

apDnsAlgCurrentTimeOut OBJECT-TYPE
	SYNTAX			Gauge32
	MAX-ACCESS 			read-only
	STATUS			current
	DESCRIPTION
	    "Number of time out responses in recent period received on DNS-ALG config realm."
	::= { apDnsALGStatsEntry 9}

apDnsAlgTotalTimeOut OBJECT-TYPE
	SYNTAX			Counter32
	MAX-ACCESS 			read-only
	STATUS			current
	DESCRIPTION
	    "Total number of time out responses in life time received on DNS-ALG config realm"
	::= { apDnsALGStatsEntry 10}

apDnsAlgCurrentBadStatus OBJECT-TYPE
        SYNTAX                  Gauge32
        MAX-ACCESS                      read-only
        STATUS                  current
        DESCRIPTION
            "Number of bad status responses in recent period received on DNS-ALG config realm."
        ::= { apDnsALGStatsEntry 11}
         
apDnsAlgTotalBadStatus OBJECT-TYPE
        SYNTAX                  Counter32
        MAX-ACCESS                      read-only
        STATUS                  current
        DESCRIPTION
           "Total number of bad status responses in life time received on DNS-ALG config realm."
        ::= { apDnsALGStatsEntry 12}
            
apDnsAlgCurrentOtherFailures OBJECT-TYPE
        SYNTAX                  Gauge32
        MAX-ACCESS                      read-only
        STATUS                  current
        DESCRIPTION
           "Number of other failure responses in recent period received on DNS-ALG config realm."
        ::= { apDnsALGStatsEntry 13}
	        
apDnsAlgTotalOtherFailures OBJECT-TYPE
        SYNTAX                  Counter32
        MAX-ACCESS                      read-only
        STATUS                  current
        DESCRIPTION
           "Total number of other failure responses in life time received on DNS-ALG config realm."
        ::= { apDnsALGStatsEntry 14}

apDnsAlgAvgLatency      OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
                "Average observed one-way signalling latency during the period
                in milliseconds"
        ::= { apDnsALGStatsEntry 15}

apDnsAlgMaxLatency          OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
                "Maximum observed one-way signalling latency during the period
                in milliseconds"
        ::= { apDnsALGStatsEntry 16}

apDnsAlgMaxBurstRate  OBJECT-TYPE
        SYNTAX          Unsigned32
        MAX-ACCESS      read-only
        STATUS          current
        DESCRIPTION
                "Maximum burst rate of traffic measured during the
                period (combined inbound and outbound)"
        ::= { apDnsALGStatsEntry 17}

-- Notifications
apDNSALGConstraintsStatus    OBJECT-TYPE
        SYNTAX          INTEGER {
                                inservice(0),
                                constraintsExceeded(1)
                                }
        MAX-ACCESS      accessible-for-notify
        STATUS          current
        DESCRIPTION
        "The status of this DNS-ALG config realm for constraints."
        ::= { apDNSALGNotifObjects 1 }

apDnsAlgStatusChangeTrap NOTIFICATION-TYPE
        OBJECTS {
                apDNSALGConfigName,
		apDNSALGServerRealm,
		apDNSALGServerIpAddress,
		apDNSALGServerStatus }
		STATUS          current
	DESCRIPTION
	" The trap will be generated if the reachability status of an DNS-ALG
        server changes from In-Service to either Timed out or Out of Service."
        ::= { apDNSALGNotifications 1 }

apDnsAlgStatusChangeClearTrap NOTIFICATION-TYPE
        OBJECTS {
                apDNSALGConfigName,
                apDNSALGServerRealm,
                apDNSALGServerIpAddress,
                apDNSALGServerStatus }
                STATUS          current
        DESCRIPTION
        " The trap will be generated if the reachability status of an DNS-ALG
        server changes from either Timed out or Out of Service to In-Service"
        ::= { apDNSALGNotifications 2 }

apDnsAlgConstraintStateChangeTrap NOTIFICATION-TYPE
        OBJECTS {
                apDNSALGConfigName,
                apDNSALGConstraintsStatus }
                STATUS          current
        DESCRIPTION
        " The trap will be generated if an DNS-ALG config's constriants state changed 
        from inservice to constraintsExceeded."
        ::= { apDNSALGNotifications 3 }

apDnsAlgConstraintStateChangeClearTrap NOTIFICATION-TYPE
        OBJECTS {
                apDNSALGConfigName,
                apDNSALGConstraintsStatus }
                STATUS          current
        DESCRIPTION
        " The trap will be generated if an DNS-ALG config's constriants state changed 
        from constraintsExceeded to inservice."
        ::= { apDNSALGNotifications 4 }

apDnsAlgSvrConstraintStateChangeTrap NOTIFICATION-TYPE
        OBJECTS {
                apDNSALGConfigName,
		apDNSALGServerRealm,
                apDNSALGServerIpAddress,
                apDNSALGConstraintsStatus }
                STATUS          current
        DESCRIPTION
        " The trap will be generated if an Dns Server(i.e.IP-Address) constriants state changed 
        from inservice to constraintsExceeded."
        ::= { apDNSALGNotifications 5 }

apDnsAlgSvrConstraintStateChangeClearTrap NOTIFICATION-TYPE
        OBJECTS {
                apDNSALGConfigName,
		apDNSALGServerRealm,
                apDNSALGServerIpAddress,
                apDNSALGConstraintsStatus }
                STATUS          current
        DESCRIPTION
        " The trap will be generated if an Dns Server(i.e.IP-Address) constriants state changed 
        from constraintsExceeded to inservice."
        ::= { apDNSALGNotifications 6 }

-- compliance statements

-- units of conformance


----------------------------------------------------
--
-- apDNSALGObjectGroups
--
----------------------------------------------------

apDnsAlgServerStatusGroup OBJECT-GROUP
    OBJECTS {
	apDNSALGConfigIndex,
	apDNSALGServerIndex,
        apDNSALGConfigName,
	apDNSALGServerRealm,
	apDNSALGDomainSuffix,
	apDNSALGServerIpAddress,
	apDNSALGServerStatus
    	}
      STATUS            current
      DESCRIPTION
          "A collection of statistics for DNS-ALG server status."
      ::= {  apDNSALGObjectGroups 1 }

apDnsAlgStatsGroup  OBJECT-GROUP
        OBJECTS {
                apDnsAlgClientRealmIndex,
		apDnsAlgClientRealmName,	
		apDnsAlgCurrentQueries,
		apDnsAlgTotalQueries,		
		apDnsAlgCurrentSucess,	
		apDnsAlgTotalSucess,	
		apDnsAlgCurrentNotFound,	
		apDnsAlgTotalNotFound,	
		apDnsAlgCurrentTimeOut,	
		apDnsAlgTotalTimeOut,
		apDnsAlgCurrentBadStatus,
		apDnsAlgTotalBadStatus,
		apDnsAlgCurrentOtherFailures,
		apDnsAlgTotalOtherFailures,	
		apDnsAlgAvgLatency,	
		apDnsAlgMaxLatency,	
		apDnsAlgMaxBurstRate
                }
        STATUS          current
        DESCRIPTION
                "Report the stats of configured DNSALG config objects."
        ::= {  apDNSALGObjectGroups 2 }

----------------------------------------------------
--
-- apDNSALGNotificationGroups
--
----------------------------------------------------
apDNSALGNotificationsGroup NOTIFICATION-GROUP
     NOTIFICATIONS {
                apDnsAlgStatusChangeTrap,
                apDnsAlgStatusChangeClearTrap,
		apDnsAlgConstraintStateChangeTrap,
		apDnsAlgConstraintStateChangeClearTrap,
		apDnsAlgSvrConstraintStateChangeTrap,
		apDnsAlgSvrConstraintStateChangeClearTrap
             }
     STATUS             current
     DESCRIPTION
         "A collection of mib objects accessible only to traps."
      ::= { apDNSALGNotificationGroups 1 }
      
END

