The PM for link delay uses the IP/UDP packet format defined in RFC 5357 (TWAMP-Light) for probes. Two-Way Active Measurement
Protocol (TWAMP) adds two-way or round-trip measurement capabilities. TWAMP employs time stamps applied at the echo destination
(reflector) to enable greater accuracy. In the case of TWAMP Light, the Session-Reflector doesn’t necessarily know about the
session state. The Session-Reflector simply copies the Sequence Number of the received packet to the Sequence Number field
of the reflected packet. The controller receives the reflected test packets and collects two-way metrics. This architecture
allows for collection of two-way metrics.
Usage Guidelines and Restrictions for PM for Link Delay
The following restrictions and guidelines apply for the PM for link delay feature for different links.
-
For broadcast links, only point-to-point (P2P) links are supported. P2P configuration on IGP is required for flooding the
value.
-
For link bundles, the hashing function may select a member link for forwarding but the reply may come from the remote line
card on a different member link of the bundle.
-
For one-way delay measurement, clocks should be synchronized on two end-point nodes of the link using PTP.
Configuration Example: PM for Link Delay
This example shows how to configure performance-measurement functionalities for link delay as a global default profile. The
default values for the different parameters in the PM for link delay is given as follows:
-
probe measurement mode: The default measurement mode for probe is two-way delay measurement. If you are configuring one-way delay measurement, hardware
clocks must be synchronized between the local-end and remote-end routers using precision time protocol (PTP). See Measurement Modes for more information.
-
protocol: Interface delay measurement using RFC 5357 with IP/UDP encap (TWAMP-Light).
-
burst interval: Interval for sending probe packet. The default value is 3000 milliseconds and the range is from 30 to 15000 milliseconds.
-
computation interval: Interval for metric computation. Default is 30 seconds; range is 1 to 3600 seconds.
-
periodic advertisement: Periodic advertisement is enabled by default.
-
periodic-advertisement interval: The default value is 120 seconds and the interval range is from 30 to 3600 seconds.
-
periodic-advertisement threshold: Checks the minimum-delay metric change for threshold crossing for periodic advertisement. The default value is 10 percent
and the range is from 0 to 100 percent.
-
periodic-advertisement minimum change: The default value is 1000 microseconds (usec) and the range is from 0 to 100000 microseconds.
-
accelerated advertisement: Accelerated advertisement is disabled by default.
-
accelerated-advertisement threshold: Checks the minimum-delay metric change for threshold crossing for accelerated advertisement. The default value is 20 percent
and the range is from 0 to 100 percent.
-
accelerated-advertisement minimum change: The default value is 500 microseconds and the range is from 0 to 100000 microseconds.
RP/0/0/CPU0:router(config)# performance-measurement delay-profile interfaces
RP/0/0/CPU0:router(config-pm-dm-intf)# probe
RP/0/0/CPU0:router(config-pm-dm-intf-probe)# measurement-mode one-way
RP/0/0/CPU0:router(config-pm-dm-intf-probe)# burst-interval 60
RP/0/0/CPU0:router(config-pm-dm-intf-probe)# computation-interval 60
RP/0/0/CPU0:router(config-pm-dm-intf-probe)# exit
RP/0/0/CPU0:router(config-pm-dm-intf)# advertisement periodic
RP/0/0/CPU0:router(config-pm-dm-intf-adv-per)# interval 120
RP/0/0/CPU0:router(config-pm-dm-intf-adv-per)# threshold 20
RP/0/0/CPU0:router(config-pm-dm-intf-adv-per)# minimum-change 1000
RP/0/0/CPU0:router(config-pm-dm-intf-adv-per)# exit
RP/0/0/CPU0:router(config-pm-dm-intf)# advertisement accelerated
RP/0/0/CPU0:router(config-pm-dm-intf-adv-acc)# threshold 30
RP/0/0/CPU0:router(config-pm-dm-intf-adv-acc)# minimum-change 1000
RP/0/0/CPU0:router(config-pm-dm-intf-adv-per)# exit
Configure the UDP Destination Port
Configuring the UDP port for TWAMP-Light protocol is optional. By default, PM uses port 862 as the TWAMP-reserved UDP destination
port for delay.
The UDP port is configured for each PM measurement probe type (delay, loss, protocol, authentication mode, etc.) on querier
and responder nodes. If you configure a different UDP port, the UDP port for each PM measurement probe type must match on
the querier and the responder nodes.
Note
|
The same UDP destination port is used for delay measurement for links and SR Policy.
|
This example shows how to configure the UDP destination port for delay.
Router(config)# performance-measurement
Router(config-perf-meas)# protocol twamp-light
Router(config-pm-protocol)# measurement delay unauthenticated
Router(config-pm-proto-mode)# querier-dst-port 12000
Enable PM for Link Delay Over an Interface
This example shows how to enable PM for link delay over an interface.
RP/0/0/CPU0:router(config)# performance-measurement
RP/0/0/CPU0:router(config-perf-meas)# interface TenGigE0/0/0/0
RP/0/0/CPU0:router(config-pm-intf)# next-hop ipv4 10.10.10.2 // Optional IPv4 or IPv6 next-hop address
RP/0/0/CPU0:router(config-pm-intf)# delay-measurement
RP/0/0/CPU0:router(config-pm-intf-dm)# exit
The source and destination IP addresses used in the OAM packet are determined by the IP address present on the interface where
the delay-measurement operation is enabled and the setting of the optional next-hop address.
When the next-hop address is not specified, the following rules apply to determine the source and destination IP addresses used in the OAM packet:
-
If an IPv4 address is configured under the interface, then:
-
Else, if an IPv6 global address is configured under the interface, then:
When the next-hop {ipv4 | ipv6} address is configured, the following rules apply to determine the source and destination IP addresses used in the OAM packet:
-
If a next-hop IPv4 address is configured, then:
Note
|
If there is no IPv4 address configured under the interface, then the delay-measurement probe does not send OAM packets.
|
-
If a next-hop IPv6 address is configured, then:
Note
|
If there is no IPv6 global address configured under the interface, then the delay-measurement probe does not send OAM packets.
|
This example shows how to enable PM for link delay over an interface with IPv4 address configured:
interface TenGigE0/0/0/0
ipv4 address 10.10.10.1 255.255.255.0
performance-measurement
interface TenGigE0/0/0/0
delay-measurement
This example shows how to enable PM for link delay over an interface IPv6 address configured:
interface TenGigE0/0/0/0
ipv6 address 10:10:10::1/64
performance-measurement
interface TenGigE0/0/0/0
delay-measurement
This example shows how to enable PM for link delay over an interface with a specified next-hop IPv4 address:
interface TenGigE0/0/0/0
ipv4 address 10.10.10.1 255.255.255.0
performance-measurement
interface TenGigE0/0/0/0
next-hop ipv4 10.10.10.2
delay-measurement
This example shows how to enable PM for link delay over an interface with a specified next-hop IPv6 address:
interface TenGigE0/0/0/0
ipv6 address 10:10:10::1/64
performance-measurement
interface TenGigE0/0/0/0
next-hop ipv6 10:10:10::2
delay-measurement
Verification
RP/0/0/CPU0:router# show performance-measurement profile interface
Thu Dec 12 14:13:16.029 PST
-------------------------------------------------------------------------------
0/0/CPU0
-------------------------------------------------------------------------------
Interface Delay-Measurement:
Profile configuration:
Measurement Type : Two-Way
Probe computation interval : 30 (effective: 30) seconds
Type of services : Traffic Class: 6, DSCP: 48
Burst interval : 3000 (effective: 3000) mSec
Burst count : 10 packets
Encap mode : UDP
Payload Type : TWAMP-light
Destination sweeping mode : Disabled
Periodic advertisement : Enabled
Interval : 120 (effective: 120) sec
Threshold : 10%
Minimum-Change : 500 uSec
Advertisement accelerated : Disabled
Threshold crossing check : Minimum-delay
RP/0/0/CPU0:router# show performance-measurement summary detail location 0/2/CPU0
Thu Dec 12 14:09:59.162 PST
-------------------------------------------------------------------------------
0/2/CPU0
-------------------------------------------------------------------------------
Total interfaces : 1
Total SR Policies : 0
Total RSVP-TE tunnels : 0
Total Maximum PPS : 2000 pkts/sec
Total Interfaces PPS : 0 pkts/sec
Maximum Allowed Multi-hop PPS : 2000 pkts/sec
Multi Hop Requested PPS : 0 pkts/sec (0% of max allowed)
Dampened Multi Hop Requested PPS : 0% of max allowed
Inuse Burst Interval Adjustment Factor : 100% of configuration
Interface Delay-Measurement:
Total active sessions : 1
Counters:
Packets:
Total sent : 26
Total received : 26
Errors:
TX:
Reason interface down : 0
Reason no MPLS caps : 0
Reason no IP address : 0
Reason other : 0
RX:
Reason negative delay : 0
Reason delay threshold exceeded : 0
Reason missing TX timestamp : 0
Reason missing RX timestamp : 0
Reason probe full : 0
Reason probe not started : 0
Reason control code error : 0
Reason control code notif : 0
Probes:
Total started : 3
Total completed : 2
Total incomplete : 0
Total advertisements : 0
SR Policy Delay-Measurement:
Total active sessions : 0
Counters:
Packets:
Total sent : 0
Total received : 0
Errors:
TX:
Reason interface down : 0
Reason no MPLS caps : 0
Reason no IP address : 0
Reason other : 0
RX:
Reason negative delay : 0
Reason delay threshold exceeded : 0
Reason missing TX timestamp : 0
Reason missing RX timestamp : 0
Reason probe full : 0
Reason probe not started : 0
Reason control code error : 0
Reason control code notif : 0
Probes:
Total started : 0
Total completed : 0
Total incomplete : 0
Total advertisements : 0
RSVP-TE Delay-Measurement:
Total active sessions : 0
Counters:
Packets:
Total sent : 0
Total received : 0
Errors:
TX:
Reason interface down : 0
Reason no MPLS caps : 0
Reason no IP address : 0
Reason other : 0
RX:
Reason negative delay : 0
Reason delay threshold exceeded : 0
Reason missing TX timestamp : 0
Reason missing RX timestamp : 0
Reason probe full : 0
Reason probe not started : 0
Reason control code error : 0
Reason control code notif : 0
Probes:
Total started : 0
Total completed : 0
Total incomplete : 0
Total advertisements : 0
Global Delay Counters:
Total packets sent : 26
Total query packets received : 26
Total invalid session id : 0
Total missing session : 0
RP/0/0/CPU0:router# show performance-measurement interfaces detail
Thu Dec 12 14:16:09.692 PST
-------------------------------------------------------------------------------
0/0/CPU0
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
0/2/CPU0
-------------------------------------------------------------------------------
Interface Name: GigabitEthernet0/2/0/0 (ifh: 0x1004060)
Delay-Measurement : Enabled
Loss-Measurement : Disabled
Configured IPv4 Address : 10.10.10.2
Configured IPv6 Address : 10:10:10::2
Link Local IPv6 Address : fe80::3a:6fff:fec9:cd6b
Configured Next-hop Address : Unknown
Local MAC Address : 023a.6fc9.cd6b
Next-hop MAC Address : 0291.e460.6707
Primary VLAN Tag : None
Secondary VLAN Tag : None
State : Up
Delay Measurement session:
Session ID : 1
Last advertisement:
Advertised at: Dec 12 2019 14:10:43.138 (326.782 seconds ago)
Advertised reason: First advertisement
Advertised delays (uSec): avg: 839, min: 587, max: 8209, variance: 297
Next advertisement:
Threshold check scheduled in 1 more probe (roughly every 120 seconds)
Aggregated delays (uSec): avg: 751, min: 589, max: 905, variance: 112
Rolling average (uSec): 756
Current Probe:
Started at Dec 12 2019 14:15:43.154 (26.766 seconds ago)
Packets Sent: 9, received: 9
Measured delays (uSec): avg: 795, min: 631, max: 1199, variance: 164
Next probe scheduled at Dec 12 2019 14:16:13.132 (in 3.212 seconds)
Next burst packet will be sent in 0.212 seconds
Burst packet sent every 3.0 seconds
Probe samples:
Packet Rx Timestamp Measured Delay (nsec)
Dec 12 2019 14:15:43.156 689223
Dec 12 2019 14:15:46.156 876561
Dec 12 2019 14:15:49.156 913548
Dec 12 2019 14:15:52.157 1199620
Dec 12 2019 14:15:55.156 794008
Dec 12 2019 14:15:58.156 631437
Dec 12 2019 14:16:01.157 656440
Dec 12 2019 14:16:04.157 658267
Dec 12 2019 14:16:07.157 736880
You can also use the following commands for verifying the PM for link delay on the local-end router.
Command
|
Description
|
show performance-measurement history probe interfaces [interface]
|
Displays the PM link-delay probe history for interfaces.
|
show performance-measurement history aggregated interfaces [interface]
|
Displays the PM link-delay aggregated history for interfaces.
|
show performance-measurement history advertisement interfaces [interface]
|
Displays the PM link-delay advertisement history for interfaces.
|
show performance-measurement counters [interface interface] [location location-name]
|
Displays the PM link-delay session counters.
|
You can also use the following commands for verifying the PM for link-delay configuration on the remote-end router.
Command
|
Description
|
show performance-measurement responder summary [location
location-name]
|
Displays the PM for link-delay summary on the remote-end router (responder).
|
show performance-measurement responder interfaces [interface]
|
Displays PM for link-delay for interfaces on the remote-end router.
|
show performance-measurement responder counters [interface
interface] [location
location-name]
|
Displays the PM link-delay session counters on the remote-end router.
|
Configure a Static Delay Value on an Interface
You can configure an interface to advertise a static delay value, instead of the measured delay value. When you configure
a static delay value, the advertisement is triggered immediately. The average, minimum, and maximum advertised values will
use the static delay value, with a variance of 0.
Scheduled probes will continue, and measured delay metrics will be aggregated and stored in history buffer. However, advertisement
threshold checks are suppressed so that there are no advertisements of the actual measured delay values. If the configured
static delay value is removed, the next scheduled advertisement threshold check will update the advertised measured delay
values.
The static delay value can be configured from 1 to 16777215 microseconds (16.7 seconds).
This example shows how to configure a static delay of 1000 microseconds:
RP/0/0/CPU0:router(config)# performance-measurement
RP/0/0/CPU0:router(config-perf-meas)# interface TenGigE0/0/0/0
RP/0/0/CPU0:router(config-pm-intf)# delay-measurement
RP/0/0/CPU0:router(config-pm-intf-dm)# advertise-delay 1000
Running Configuration
performance-measurement
interface GigabitEthernet0/0/0/0
delay-measurement
advertise-delay 1000
!
!
!
Verification
RP/0/RSP0/CPU0:ios# show performance-measurement interfaces detail
--------------------------------------------------------------------------------
0/0/CPU0
--------------------------------------------------------------------------------
Interface Name: GigabitEthernet0/0/0/0 (ifh: 0x0)
Delay-Measurement : Enabled
. . .
Last advertisement:
Advertised at: Nov 29 2021 21:53:00.656 (7.940 seconds ago)
Advertised reason: Advertise delay config
Advertised delays (uSec): avg: 1000, min: 1000, max: 1000, variance: 0
. . .
SR Performance Measurement Named Profiles
You can create a named performance measurement profile for delay or liveness.
Delay Profile
This example shows how to create a named SR performance measurement delay profile.
Router(config)# performance-measurement delay-profile sr-policy profile2
Router(config-pm-dm-srpolicy)# probe
Router(config-pm-dm-srpolicy-probe)# burst-interval 60
Router(config-pm-dm-srpolicy-probe)# computation-interval 60
Router(config-pm-dm-srpolicy-probe)# protocol twamp-light
Router(config-pm-dm-srpolicy-probe)# tos dscp 63
Router(config-pm-dm-srpolicy)# advertisement
Router(config-pm-dm-srpolicy-adv)# periodic
Router(config-pm-dm-srpolicy-adv-per)# interval 60
Router(config-pm-dm-srpolicy-adv-per)# minimum-change 1000
Router(config-pm-dm-srpolicy-adv-per)# threshold 20
Router(config-pm-dm-srpolicy-adv-per)# commit
Apply the delay profile for an SR Policy.
Router(config)# segment-routing traffic-eng
Router(config-sr-te)# policy TEST
Router(config-sr-te-policy)# color 4 end-point ipv4 10.10.10.10
Router(config-sr-te-policy)# performance-measurement
Router(config-sr-te-policy-perf-meas)# delay-measurement delay-profile name profile2
Router(config-sr-te-policy)# candidate-paths
Router(config-sr-te-policy-path)# preference 100
Router(config-sr-te-policy-path-pref)# explicit segment-list LIST1
Router(config-sr-te-pp-info)# weight 2
Router(config-sr-te-policy-path-pref)# explicit segment-list LIST2
Router(config-sr-te-pp-info)# weight 3
Running Configuration
Router# show run segment-routing traffic-eng policy TEST
segment-routing
traffic-eng
policy TEST
color 4 end-point ipv4 10.10.10.10
candidate-paths
preference 100
explicit segment-list LIST1
weight 2
!
explicit segment-list LIST2
weight 3
!
!
!
performance-measurement
delay-measurement
delay-profile name profile2
Verification
Router# show performance-measurement profile named-profile delay sr-policy name profile2
----------------------------
0/RSP0/CPU0
----------------------------
SR Policy Delay Measurement Profile Name: profile2
Profile configuration:
Measurement mode : One-way
Protocol type : TWAMP-light
Encap mode : UDP
Type of service:
PM-MPLS traffic class : 6
TWAMP-light DSCP : 63
Probe computation interval : 60 (effective: 60) seconds
Burst interval : 60 (effective: 60) mSec
Packets per computation interval : 1000
Periodic advertisement : Enabled
Interval : 60 (effective: 60) sec
Threshold : 20%
Minimum-change : 1000 uSec
Advertisement accelerated : Disabled
Advertisement logging:
Delay exceeded : Disabled (default)
Threshold crossing check : Maximum-delay
Router alert : Disabled (default)
Destination sweeping mode : Disabled
Liveness detection parameters:
Multiplier : 3
Logging state change : Disabled
On-Demand SR Policy Router(config-sr-te)# on-demand color 20
Router(config-sr-te-color)# performance-measurement delay-measurement
Router(config-sr-te-color-delay-meas)# delay-profile name profile2
Router(config-sr-te-color-delay-meas)# commit
Running Configuration
Router# show run segment-routing traffic-eng on-demand color 20
segment-routing
traffic-eng
on-demand color 20
performance-measurement
delay-measurement
delay-profile name profile2
Liveness Profile
This example shows how to create a named SR performance measurement liveness profile.
Router(config)# performance-measurement liveness-profile sr-policy name profile3
Router(config-pm-ld-srpolicy)# probe
Router(config-pm-ld-srpolicy-probe)# burst-interval 60
Router(config-pm-ld-srpolicy-probe)# measurement-mode loopback
Router(config-pm-ld-srpolicy-probe)# tos dscp 10
Router(config-pm-ld-srpolicy-probe)# liveness-detection
Router(config-pm-ld-srpolicy-probe)# multiplier 5
Router(config-pm-ld-srpolicy-probe)# commit
Apply the Liveness Profile for the SR Policy
This example shows how to enable PM for SR policy liveness for a specific policy.
For the same policy, you cannot enable delay-measurement (delay-profile) and liveness-detection (liveness-profile) at the
same time. For example, if delay measurement is enabled, use the no delay-measurement command to disable it, and then enable the following command for enabling liveness detection.
Router(config)# segment-routing traffic-eng
Router(config-sr-te)# policy TRST2
Router(config-sr-te-policy)# color 40 end-point ipv4 20.20.20.20
Router(config-sr-te-policy)# candidate-paths
Router(config-sr-te-policy-path)# preference 50
Router(config-sr-te-policy-path-pref)# explicit segment-list LIST3
Router(config-sr-te-pp-info)# weight 2
Router(config-sr-te-policy-path-pref)# explicit segment-list LIST4
Router(config-sr-te-pp-info)# weight 3
Router(config-sr-te-policy)# performance-measurement
Router(config-sr-te-policy-perf-meas)# liveness-detection liveness-profile name profile3
Running Configuration
Router# show run segment-routing traffic-eng policy TRST2
segment-routing
traffic-eng
policy TRST2
color 40 end-point ipv4 20.20.20.20
candidate-paths
preference 50
explicit segment-list LIST3
weight 2
!
explicit segment-list LIST4
weight 3
!
!
!
performance-measurement
liveness-detection
liveness-profile name profile3
!
Verification
Router# show performance-measurement profile named-profile delay
-----------
0/RSP0/CPU0
-----------
SR Policy Liveness Detection Profile Name: profile1
Profile configuration:
Measurement mode : Loopback
Protocol type : TWAMP-light
Type of service:
TWAMP-light DSCP : 10
Burst interval : 60 (effective: 60) mSec
Destination sweeping mode : Disabled
Liveness detection parameters:
Multiplier : 3
Logging state change : Disabled
SR Policy Liveness Detection Profile Name: profile3
Profile configuration:
Measurement mode : Loopback
Protocol type : TWAMP-light
Type of service:
TWAMP-light DSCP : 10
Burst interval : 60 (effective: 60) mSec
Destination sweeping mode : Disabled
Liveness detection parameters:
Multiplier : 3
Logging state change : Disabled
On-Demand SR Policy
For the same policy, you cannot enable delay-measurement (delay-profile) and liveness-detection (liveness-profile) at the
same time. For example, to disable delay measurement, use the no delay-measurement command, and then enable the following command for enabling liveness detection.
Router(config-sr-te)# on-demand color 30
Router(config-sr-te-color)# performance-measurement
Router(config-sr-te-color-pm)# liveness-detection liveness-profile name profile1
Router(config-sr-te-color-delay-meas)# commit
Running Configuration
Router# show run segment-routing traffic-eng on-demand color 30
segment-routing
traffic-eng
on-demand color 30
performance-measurement
liveness-detection
liveness-profile name profile1
!
Verification
Router# show performance-measurement profile named-profile liveness sr-policy name profile1
--------------------
0/RSP0/CPU0
--------------------
SR Policy Liveness Detection Profile Name: profile1
Profile configuration:
Measurement mode : Loopback
Protocol type : TWAMP-light
Type of service:
TWAMP-light DSCP : 10
Burst interval : 60 (effective: 60) mSec
Destination sweeping mode : Disabled
Liveness detection parameters:
Multiplier : 3
Logging state change : Disabled