Skip to content

IP SLA

IP Service Level Agreements (IP SLA) actively measure network performance on NX-OS by sending synthetic probes and collecting statistics such as round-trip time, jitter, packet loss and reachability. Each operation is identified by a numeric ID and runs exactly one probe type: ICMP echo, UDP echo, UDP jitter (optionally with VoIP codec emulation), TCP connect, DNS or HTTP GET. Operations are started by a schedule (or a group schedule that starts several operations spread over a period), can raise traps or trigger other operations through reaction configurations, and can be referenced by track objects to drive HSRP or static route failover. A switch can also act as an IP SLA responder (including permanent UDP echo / TCP connect responders and a TWAMP responder) or as a TWAMP server. Each role requires its feature to be enabled: sla_sender, sla_responder or sla_twamp_server.

Diagram
NameTypeConstraintMandatoryDefault Value
devicesListdevicesNo
device_groupsListdevice_groupsNo
globalClassglobalNo
templatesListtemplatesNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
configurationClassconfigurationNo

NameTypeConstraintMandatoryDefault Value
ip_slaClassip_slaNo

NameTypeConstraintMandatoryDefault Value
logging_trapsBooleantrue, falseNo
logging_level_senderIntegermin: 0, max: 7No
logging_level_responderIntegermin: 0, max: 7No
logging_level_twamp_serverIntegermin: 0, max: 7No
responderClassresponderNo
server_twampBooleantrue, falseNo
server_twamp_timer_inactivityIntegermin: 1, max: 6000No
server_twamp_portIntegermin: 1, max: 65535No
operationsListoperationsNo
group_schedulesListgroup_schedulesNo

responder (nxos.devices.configuration.ip_sla)

Section titled “responder (nxos.devices.configuration.ip_sla)”
NameTypeConstraintMandatoryDefault Value
enableBooleantrue, falseNo
twampBooleantrue, falseNo
twamp_timeoutIntegermin: 1, max: 604800No
udp_echosListudp_echosNo
tcp_connectsListtcp_connectsNo

operations (nxos.devices.configuration.ip_sla)

Section titled “operations (nxos.devices.configuration.ip_sla)”
NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 2147483647Yes
icmp_echoClassicmp_echoNo
udp_echoClassudp_echoNo
udp_jitterClassudp_jitterNo
tcp_connectClasstcp_connectNo
dnsClassdnsNo
httpClasshttpNo
scheduleClassscheduleNo
reaction_configurationsListreaction_configurationsNo
reaction_triggersListInteger[min: 1, max: 2147483647]No

group_schedules (nxos.devices.configuration.ip_sla)

Section titled “group_schedules (nxos.devices.configuration.ip_sla)”
NameTypeConstraintMandatoryDefault Value
idIntegermin: 1, max: 65535Yes
operation_idsStringNo
schedule_periodIntegermin: 1, max: 604800No
ageoutIntegermin: 0, max: 2073600No
frequencyIntegermin: 1, max: 604800No
frequency_rangeStringNo
lifeIntegermin: 0, max: 2147483647No
life_foreverBooleantrue, falseNo
start_timeStringNo
start_time_monthChoiceJanuary, February, March, April, May, June, July, August, September, October, November, DecemberNo
start_time_dayIntegermin: 1, max: 31No
start_time_nowBooleantrue, falseNo
start_time_pendingBooleantrue, falseNo
start_time_afterStringNo

udp_echos (nxos.devices.configuration.ip_sla.responder)

Section titled “udp_echos (nxos.devices.configuration.ip_sla.responder)”
NameTypeConstraintMandatoryDefault Value
portIntegermin: 1, max: 65535Yes
ipaddressIPNo

tcp_connects (nxos.devices.configuration.ip_sla.responder)

Section titled “tcp_connects (nxos.devices.configuration.ip_sla.responder)”
NameTypeConstraintMandatoryDefault Value
portIntegermin: 1, max: 65535Yes
ipaddressIPNo

icmp_echo (nxos.devices.configuration.ip_sla.operations)

Section titled “icmp_echo (nxos.devices.configuration.ip_sla.operations)”
NameTypeConstraintMandatoryDefault Value
destinationStringYes
source_ipStringNo
source_interface_typeChoiceethernet, loopback, mgmt, port-channel, vlan, vniNo
source_interface_idAnyString or Integer[min: 0]No
request_data_sizeIntegermin: 0, max: 16384No
verify_dataBooleantrue, falseNo
tosIntegermin: 1, max: 255No
traffic_classIntegermin: 1, max: 255No
vrfStringNo
thresholdIntegermin: 1, max: 60000No
timeoutIntegermin: 0, max: 604800000No
tagStringNo
ownerStringNo
frequencyIntegermin: 1, max: 604800No
frequency_millisecondsIntegermin: 100, max: 604800000No
history_buckets_keptIntegermin: 1, max: 60No
history_distributions_of_statistics_keptIntegermin: 1, max: 20No
history_enhanced_intervalIntegermin: 1, max: 3600No
history_enhanced_bucketsIntegermin: 1, max: 100No
history_filterChoiceall, failures, none, overThresholdNo
history_hours_of_statistics_keptIntegermin: 0, max: 25No
history_lives_keptIntegermin: 0, max: 2No
history_statistics_distribution_intervalIntegermin: 1, max: 100000No

udp_echo (nxos.devices.configuration.ip_sla.operations)

Section titled “udp_echo (nxos.devices.configuration.ip_sla.operations)”
NameTypeConstraintMandatoryDefault Value
destinationStringYes
destination_portIntegermin: 1, max: 65535Yes
controlBooleantrue, falseNo
source_ipStringNo
source_portIntegermin: 1, max: 65535No
request_data_sizeIntegermin: 4, max: 1500No
verify_dataBooleantrue, falseNo
data_patternStringNo
tosIntegermin: 1, max: 255No
traffic_classIntegermin: 1, max: 255No
vrfStringNo
thresholdIntegermin: 1, max: 60000No
timeoutIntegermin: 0, max: 604800000No
tagStringNo
ownerStringNo
frequencyIntegermin: 1, max: 604800No
frequency_millisecondsIntegermin: 100, max: 604800000No
history_buckets_keptIntegermin: 1, max: 60No
history_distributions_of_statistics_keptIntegermin: 1, max: 20No
history_enhanced_intervalIntegermin: 1, max: 3600No
history_enhanced_bucketsIntegermin: 1, max: 100No
history_filterChoiceall, failures, none, overThresholdNo
history_hours_of_statistics_keptIntegermin: 0, max: 25No
history_lives_keptIntegermin: 0, max: 2No
history_statistics_distribution_intervalIntegermin: 1, max: 100000No

udp_jitter (nxos.devices.configuration.ip_sla.operations)

Section titled “udp_jitter (nxos.devices.configuration.ip_sla.operations)”
NameTypeConstraintMandatoryDefault Value
destinationStringYes
destination_portIntegermin: 1, max: 65535Yes
codecChoiceg711alaw, g711ulaw, g729aNo
advantage_factorIntegermin: 0, max: 20No
codec_intervalIntegermin: 4, max: 60000No
codec_numpacketsIntegermin: 1, max: 60000No
codec_sizeIntegermin: 16, max: 16384No
intervalIntegermin: 4, max: 60000No
num_packetsIntegermin: 1, max: 60000No
controlBooleantrue, falseNo
source_ipStringNo
source_portIntegermin: 1, max: 65535No
request_data_sizeIntegermin: 16, max: 17512No
verify_dataBooleantrue, falseNo
tosIntegermin: 1, max: 255No
traffic_classIntegermin: 1, max: 255No
vrfStringNo
thresholdIntegermin: 1, max: 60000No
timeoutIntegermin: 0, max: 604800000No
tagStringNo
ownerStringNo
frequencyIntegermin: 1, max: 604800No
operation_packet_priorityChoicenormal, highNo
precisionChoicemilliseconds, microsecondsNo
clock_tolerance_ntp_oneway_absoluteIntegermin: 0, max: 100000No
clock_tolerance_ntp_oneway_percentIntegermin: 0, max: 100No
history_distributions_of_statistics_keptIntegermin: 1, max: 20No
history_hours_of_statistics_keptIntegermin: 0, max: 25No
history_statistics_distribution_intervalIntegermin: 1, max: 100000No

tcp_connect (nxos.devices.configuration.ip_sla.operations)

Section titled “tcp_connect (nxos.devices.configuration.ip_sla.operations)”
NameTypeConstraintMandatoryDefault Value
destinationStringYes
destination_portIntegermin: 1, max: 65535Yes
controlBooleantrue, falseNo
source_ipStringNo
source_portIntegermin: 1, max: 65535No
close_connection_finBooleantrue, falseNo
tosIntegermin: 1, max: 255No
traffic_classIntegermin: 1, max: 255No
vrfStringNo
thresholdIntegermin: 1, max: 60000No
timeoutIntegermin: 0, max: 604800000No
tagStringNo
ownerStringNo
frequencyIntegermin: 1, max: 604800No
frequency_millisecondsIntegermin: 100, max: 604800000No
history_buckets_keptIntegermin: 1, max: 60No
history_distributions_of_statistics_keptIntegermin: 1, max: 20No
history_enhanced_intervalIntegermin: 1, max: 3600No
history_enhanced_bucketsIntegermin: 1, max: 100No
history_filterChoiceall, failures, none, overThresholdNo
history_hours_of_statistics_keptIntegermin: 0, max: 25No
history_lives_keptIntegermin: 0, max: 2No
history_statistics_distribution_intervalIntegermin: 1, max: 100000No

dns (nxos.devices.configuration.ip_sla.operations)

Section titled “dns (nxos.devices.configuration.ip_sla.operations)”
NameTypeConstraintMandatoryDefault Value
targetStringYes
name_serverStringYes
source_ipStringNo
source_portIntegermin: 1, max: 65535No
vrfStringNo
thresholdIntegermin: 1, max: 60000No
timeoutIntegermin: 0, max: 604800000No
tagStringNo
ownerStringNo
frequencyIntegermin: 1, max: 604800No
history_buckets_keptIntegermin: 1, max: 60No
history_distributions_of_statistics_keptIntegermin: 1, max: 20No
history_filterChoiceall, failures, none, overThresholdNo
history_hours_of_statistics_keptIntegermin: 0, max: 25No
history_lives_keptIntegermin: 0, max: 2No
history_statistics_distribution_intervalIntegermin: 1, max: 100000No

http (nxos.devices.configuration.ip_sla.operations)

Section titled “http (nxos.devices.configuration.ip_sla.operations)”
NameTypeConstraintMandatoryDefault Value
urlStringYes
cacheBooleantrue, falseNo
proxyStringNo
source_ipStringNo
source_portIntegermin: 1, max: 65535No
versionStringNo
tosIntegermin: 1, max: 255No
traffic_classIntegermin: 1, max: 255No
vrfStringNo
thresholdIntegermin: 1, max: 60000No
timeoutIntegermin: 0, max: 604800000No
tagStringNo
ownerStringNo
frequencyIntegermin: 1, max: 604800No
history_buckets_keptIntegermin: 1, max: 60No
history_distributions_of_statistics_keptIntegermin: 1, max: 20No
history_filterChoiceall, failures, none, overThresholdNo
history_hours_of_statistics_keptIntegermin: 0, max: 25No
history_lives_keptIntegermin: 0, max: 2No
history_statistics_distribution_intervalIntegermin: 1, max: 100000No

schedule (nxos.devices.configuration.ip_sla.operations)

Section titled “schedule (nxos.devices.configuration.ip_sla.operations)”
NameTypeConstraintMandatoryDefault Value
lifeIntegermin: 0, max: 2147483647No
life_foreverBooleantrue, falseNo
start_timeStringNo
start_time_monthChoiceJanuary, February, March, April, May, June, July, August, September, October, November, DecemberNo
start_time_dayIntegermin: 1, max: 31No
start_time_nowBooleantrue, falseNo
start_time_pendingBooleantrue, falseNo
start_time_afterStringNo
ageoutIntegermin: 0, max: 2073600No
recurringBooleantrue, falseNo

reaction_configurations (nxos.devices.configuration.ip_sla.operations)

Section titled “reaction_configurations (nxos.devices.configuration.ip_sla.operations)”
NameTypeConstraintMandatoryDefault Value
reactChoicertt, jitterSDAvg, jitterDSAvg, packetLossSD, packetLossDS, mos, timeout, connectionLoss, verifyError, jitterAvg, icpif, packetLateArrival, packetOutOfSequence, maxOfPositiveSD, maxOfNegativeSD, maxOfPositiveDS, maxOfNegativeDSYes
action_typeChoicenone, trapOnly, triggerOnly, trapAndTriggerNo
threshold_typeChoicenever, immediate, consecutive, xOfy, averageNo
threshold_type_xIntegermin: 1, max: 16No
threshold_type_yIntegermin: 1, max: 16No
threshold_value_upperIntegermin: 1, max: 60000No
threshold_value_lowerIntegermin: 1, max: 60000No

Example 1: ICMP echo operation tracked for reachability, started immediately and running forever

nxos:
devices:
- name: BORDER1
configuration:
feature:
sla_sender: true
ip_sla:
logging_traps: true
operations:
- id: 1
icmp_echo:
destination: 192.0.2.1
source_interface_type: loopback
source_interface_id: 0
vrf: TENANT-A
frequency: 10
threshold: 500
timeout: 1000
tag: WAN-UPLINK
schedule:
life_forever: true
start_time_now: true
tracks:
- id: 30
ip_sla: 1
ip_sla_reachability: true

Example 2: UDP jitter operation with G.711 codec emulation, a jitter reaction that triggers a second operation, and a daily recurring schedule

nxos:
devices:
- name: LEAF1
configuration:
feature:
sla_sender: true
ip_sla:
operations:
- id: 10
udp_jitter:
destination: 10.10.10.2
destination_port: 16384
codec: g711alaw
advantage_factor: 5
codec_interval: 20
codec_numpackets: 1000
codec_size: 172
source_ip: 10.10.10.1
tos: 184
frequency: 60
precision: microseconds
operation_packet_priority: high
schedule:
life: 3600
start_time: "08:00:00"
recurring: true
reaction_configurations:
- react: jitterAvg
action_type: trapAndTrigger
threshold_type: xOfy
threshold_type_x: 3
threshold_type_y: 5
threshold_value_upper: 30
threshold_value_lower: 10
reaction_triggers:
- 11
- id: 11
tcp_connect:
destination: 10.10.10.2
destination_port: 443
control: false
close_connection_fin: true
schedule:
start_time_pending: true

Example 3: DNS and HTTP operations started together by a group schedule

nxos:
devices:
- name: LEAF1
configuration:
feature:
sla_sender: true
ip_sla:
operations:
- id: 20
dns:
target: www.example.com
name_server: 10.0.0.53
vrf: management
- id: 21
http:
url: http://10.0.0.80/index.html
version: "1.1"
cache: false
vrf: management
frequency: 120
group_schedules:
- id: 1
operation_ids: 20-21
schedule_period: 60
frequency: 120
life_forever: true
start_time_now: true

Example 4: IP SLA responder with permanent UDP echo and TCP connect responders, TWAMP responder and TWAMP server

nxos:
devices:
- name: SPINE1
configuration:
feature:
sla_responder: true
sla_twamp_server: true
ip_sla:
logging_level_responder: 5
responder:
enable: true
twamp: true
twamp_timeout: 600
udp_echos:
- port: 5000
ipaddress: 10.10.10.2
tcp_connects:
- port: 5001
server_twamp: true
server_twamp_port: 862
server_twamp_timer_inactivity: 600