IPI-IP-SLA-MIB DEFINITIONS ::= BEGIN

IMPORTS
      OBJECT-TYPE, MODULE-IDENTITY,
      Gauge32, Counter32, Integer32, Unsigned32,
      IpAddress, Counter64,
      TimeTicks, NOTIFICATION-TYPE
          FROM SNMPv2-SMI
      DateAndTime, DisplayString,
      PhysAddress, RowStatus, TEXTUAL-CONVENTION
          FROM SNMPv2-TC
      MODULE-COMPLIANCE, OBJECT-GROUP, NOTIFICATION-GROUP
          FROM SNMPv2-CONF
      snmpTraps
          FROM SNMPv2-MIB
      enterprises, OBJECT-IDENTITY
          FROM SNMPv2-SMI
      Ipv6Address
          FROM IPV6-TC
      ipi  FROM IPI-MODULE-MIB;

ipi-ip-sla MODULE-IDENTITY
   LAST-UPDATED "202506120000Z"

ORGANIZATION "IP Infusion"
CONTACT-INFO "support@ipinfusion.com"
   DESCRIPTION 
      "This MIB module is for managing Datamodel for ipsla definations"

   REVISION      "202506120000Z"
   DESCRIPTION 
      "Added .h file ipsla_api.h for protocol-api-header-file "

   REVISION      "202505080000Z"
   DESCRIPTION 
      "Added Support for IP-Source"

   REVISION      "202505070000Z"
   DESCRIPTION 
      "Removed 'when' statement for the 'scheduled-processes' container and added a leafref for the 'scheduled-pid' attribute referencing the 'identifier' attribute."

   REVISION      "202504150000Z"
   DESCRIPTION 
      "Adding dependentObject for object level reordering of ip-sla and icmp-echo-process "

   REVISION      "202504110000Z"
   DESCRIPTION 
      "Updated data types of packets-sent and packets-received from UINT32 to UINT64"

   REVISION      "202504040000Z"
   DESCRIPTION 
      "Added when tag for 'scheduled-processes' container"

   REVISION      "202502190000Z"
   DESCRIPTION 
      "Added streaming telemetry support"

   REVISION      "202312070000Z"
   DESCRIPTION 
      "Added Dependency tag for IP SLA Schedule Set"

   REVISION      "202310130000Z"
   DESCRIPTION 
      "Enabled SNMP MIB generation for statistics container"

   REVISION      "202308070000Z"
   DESCRIPTION 
      "Remoced CML_RESET_INSTANCE flag for schedule-pid"

   REVISION      "202208100000Z"
   DESCRIPTION 
      "Updated helpstring for ip parameter"

   REVISION      "202207190000Z"
   DESCRIPTION 
      "Update if-feature for Notification"

   REVISION      "202206010000Z"
   DESCRIPTION 
      "Updated the yang file with feature"

   REVISION      "202102120000Z"
   DESCRIPTION 
      "Initial Version"
   ::= { ipi  130 } 


ipiIpSlaProcessesprocessTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF IpiIpSlaProcessesprocessEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION 
		"This table provides information for List of IP SLA processes"
	::= { ipi-ip-sla 1 }

ipiIpSlaProcessesprocessEntry OBJECT-TYPE
	SYNTAX IpiIpSlaProcessesprocessEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION 
		"An entry containing information for List of IP SLA processes"
	INDEX { ipiIpSlaProcessIdentifier }
	::= { ipiIpSlaProcessesprocessTable 1 }

IpiIpSlaProcessesprocessEntry::= SEQUENCE { 
	ipiIpSlaProcessIdentifier Unsigned32,
	ipiIpSlaIpSlaStatisticsDestination OCTET STRING,
	ipiIpSlaIpSlaStatisticsStartTime DateAndTime,
	ipiIpSlaIpSlaStatisticsElapsedTime Counter64,
	ipiIpSlaIpSlaStatisticsPacketsSent Counter64,
	ipiIpSlaIpSlaStatisticsPacketsReceived Counter64,
	ipiIpSlaIpSlaStatisticsPacketsLost INTEGER,
	ipiIpSlaIpSlaStatisticsInvalidTests Unsigned32,
	ipiIpSlaIpSlaStatisticsMinimumRoundTripDelay Counter64,
	ipiIpSlaIpSlaStatisticsMaximumRoundTripDelay Counter64,
	ipiIpSlaIpSlaStatisticsAverageRoundTripDelay Counter64	}

ipiIpSlaProcessIdentifier OBJECT-TYPE
	SYNTAX Unsigned32(1..65535) 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Use this attribute to set the IPSLA."
	::= { ipiIpSlaProcessesprocessEntry 1 }

ipiIpSlaIpSlaStatisticsDestination OBJECT-TYPE
	SYNTAX OCTET STRING 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Destination IP or host name for ICMP Echo for this SLA session"
	::= { ipiIpSlaProcessesprocessEntry 2 }

ipiIpSlaIpSlaStatisticsStartTime OBJECT-TYPE
	SYNTAX DateAndTime 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Time at which ip sla measurement started"
	::= { ipiIpSlaProcessesprocessEntry 3 }

ipiIpSlaIpSlaStatisticsElapsedTime OBJECT-TYPE
	SYNTAX Counter64 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Time elapsed since the ip sla measurement started. In milliseconds"
	::= { ipiIpSlaProcessesprocessEntry 4 }

ipiIpSlaIpSlaStatisticsPacketsSent OBJECT-TYPE
	SYNTAX Counter64 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Number of test packets sent"
	::= { ipiIpSlaProcessesprocessEntry 5 }

ipiIpSlaIpSlaStatisticsPacketsReceived OBJECT-TYPE
	SYNTAX Counter64 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Number of test packets received"
	::= { ipiIpSlaProcessesprocessEntry 6 }

ipiIpSlaIpSlaStatisticsPacketsLost OBJECT-TYPE
	SYNTAX INTEGER 
	UNITS "0.000001"
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Packet loss percentage"
	::= { ipiIpSlaProcessesprocessEntry 7 }

ipiIpSlaIpSlaStatisticsInvalidTests OBJECT-TYPE
	SYNTAX Unsigned32 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Number of Invalid tests"
	::= { ipiIpSlaProcessesprocessEntry 8 }

ipiIpSlaIpSlaStatisticsMinimumRoundTripDelay OBJECT-TYPE
	SYNTAX Counter64 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Minimum Round trip delay time"
	::= { ipiIpSlaProcessesprocessEntry 9 }

ipiIpSlaIpSlaStatisticsMaximumRoundTripDelay OBJECT-TYPE
	SYNTAX Counter64 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Maximum Round Trip delay time"
	::= { ipiIpSlaProcessesprocessEntry 10 }

ipiIpSlaIpSlaStatisticsAverageRoundTripDelay OBJECT-TYPE
	SYNTAX Counter64 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Average Round Trip delay time"
	::= { ipiIpSlaProcessesprocessEntry 11 }


ipiIpSlaIcmpEchoProcessTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF IpiIpSlaIcmpEchoProcessEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION 
		"This table provides information for List of ICMP Echo process"
	::= { ipi-ip-sla 2 }

ipiIpSlaIcmpEchoProcessEntry OBJECT-TYPE
	SYNTAX IpiIpSlaIcmpEchoProcessEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION 
		"An entry containing information for List of ICMP Echo process"
	INDEX { ipiIpSlaProcessIdentifier,ipiIpSlaIcmpEchoProcessHost }
	::= { ipiIpSlaIcmpEchoProcessTable 1 }

IpiIpSlaIcmpEchoProcessEntry::= SEQUENCE { 
	ipiIpSlaIcmpEchoProcessHost OCTET STRING,
	ipiIpSlaIcmpEchoProcessSourceInterface OCTET STRING,
	ipiIpSlaIcmpEchoProcessSourceIp OCTET STRING,
	ipiIpSlaIcmpEchoProcessFrequency Unsigned32,
	ipiIpSlaIcmpEchoProcessTimeout Unsigned32,
	ipiIpSlaIcmpEchoProcessThreshold Unsigned32	}

ipiIpSlaIcmpEchoProcessHost OBJECT-TYPE
	SYNTAX OCTET STRING 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Use this attribute to set the ICMP Echo host name or IP address."
	::= { ipiIpSlaIcmpEchoProcessEntry 1 }

ipiIpSlaIcmpEchoProcessSourceInterface OBJECT-TYPE
	SYNTAX OCTET STRING 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Source Interface name"
	::= { ipiIpSlaIcmpEchoProcessEntry 2 }

ipiIpSlaIcmpEchoProcessSourceIp OBJECT-TYPE
	SYNTAX OCTET STRING 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Source IP Interface name"
	::= { ipiIpSlaIcmpEchoProcessEntry 3 }

ipiIpSlaIcmpEchoProcessFrequency OBJECT-TYPE
	SYNTAX Unsigned32(1..60) 
	UNITS "seconds"
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"The frequency (interval) correlates to how often the ICMP packet is sent. The unit of this parameter is in seconds."
	::= { ipiIpSlaIcmpEchoProcessEntry 4 }

ipiIpSlaIcmpEchoProcessTimeout OBJECT-TYPE
	SYNTAX Unsigned32(1000..60000) 
	UNITS "milliseconds"
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"The timeout value correlates to how long the Ping application will wait for the response after sending packets ICMP Echo packets."
	::= { ipiIpSlaIcmpEchoProcessEntry 5 }

ipiIpSlaIcmpEchoProcessThreshold OBJECT-TYPE
	SYNTAX Unsigned32(1000..60000) 
	UNITS "milliseconds"
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"The threshold value correlates to the limit the administrator sets as what would be a successful test. Threshold can be configured in milli-seconds."
	::= { ipiIpSlaIcmpEchoProcessEntry 6 }


ipiIpSlaScheduledProcessTable OBJECT-TYPE 
	SYNTAX SEQUENCE OF IpiIpSlaScheduledProcessEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION 
		"This table provides information for IP SLA Schedule process"
	::= { ipi-ip-sla 3 }

ipiIpSlaScheduledProcessEntry OBJECT-TYPE
	SYNTAX IpiIpSlaScheduledProcessEntry
	MAX-ACCESS not-accessible
	STATUS current
	DESCRIPTION 
		"An entry containing information for IP SLA Schedule process"
	INDEX { ipiIpSlaScheduledProcessScheduledPid,ipiIpSlaScheduledProcessTimeRangeName }
	::= { ipiIpSlaScheduledProcessTable 1 }

IpiIpSlaScheduledProcessEntry::= SEQUENCE { 
	ipiIpSlaScheduledProcessTimeRangeName OCTET STRING,
	ipiIpSlaScheduledProcessVrfName OCTET STRING	}

ipiIpSlaScheduledProcessScheduledPid OBJECT-TYPE
	SYNTAX Unsigned32(1..65535) 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Use this attribute to schedule the IPSLA measurement operation."
	::= { ipiIpSlaScheduledProcessEntry 1 }

ipiIpSlaScheduledProcessTimeRangeName OBJECT-TYPE
	SYNTAX OCTET STRING 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"Time range object name to schedule this SLA operation."
	::= { ipiIpSlaScheduledProcessEntry 2 }

ipiIpSlaScheduledProcessVrfName OBJECT-TYPE
	SYNTAX OCTET STRING 
	MAX-ACCESS read-only
	STATUS current 
	DESCRIPTION 
		"VRF name"
	::= { ipiIpSlaScheduledProcessEntry 3 }


--
-- Notifications
--

ipiCMLSEPipCMLSEPslaNotificationsPrefix OBJECT IDENTIFIER ::=
        { ipi-ip-sla 0 }

icmpechothreshold NOTIFICATION-TYPE
   OBJECTS { ipiIpSlaIcmpEchoProcessHost, ipiIpSlaProcessIdentifier, ipiIpSlaIcmpEchoProcessThreshold }
   STATUS  current
   DESCRIPTION
           "icmp-echo-threshold event is generated when packet level RTT value is greater than the threshold value or within the threshold time response is not received"
   ::= { ipiCMLSEPipCMLSEPslaNotificationsPrefix 1 }

icmpechotimeout NOTIFICATION-TYPE
   OBJECTS { ipiIpSlaIcmpEchoProcessHost, ipiIpSlaProcessIdentifier, ipiIpSlaIcmpEchoProcessTimeout }
   STATUS  current
   DESCRIPTION
           "icmp-echo-timeout is generated when echo packet response is not received for any of the sent packets within the configured timeout value"
   ::= { ipiCMLSEPipCMLSEPslaNotificationsPrefix 2 }

icmpechodisconnect NOTIFICATION-TYPE
   OBJECTS { ipiIpSlaProcessIdentifier }
   STATUS  current
   DESCRIPTION
           "icmp-echo-disconnect is generated when timeout is observed for any of the packet in sla measurement operation"
   ::= { ipiCMLSEPipCMLSEPslaNotificationsPrefix 3 }
END
