Two-Way Active Measurement Protocol (TWAMP) Light

This features is the light version of TWAMP, which is an industry standard (RFC 5357) for measuring round-trip performance between two devices that support the TWAMP protocols. TWAMP defines two protocols: the TWAMP-Control protocol and the TWAMP-Test protocol. The TWAMP-Control protocol is used to set up test sessions. The test sessions use the TWAMP-Test protocol to transmit and reflect performance measurement packets. The TWAMP-Control protocol uses TCP for communication, while the TWAMP-Test protocol uses UDP.

TWAMP defines four logical roles; Session-Sender, Session-Reflector, Server, and Control-Client. These logical roles can be split between two entities to form a client/server paradigm (referred to as the two-host implementation in the RFC). The logical roles of the Control-Client and the Server communicate using the TWAMP-Control protocol to set up test sessions. Each test session consists of a transmitter and a reflector, fulfilled by the logical roles of Session-Sender and Session-Reflector respectively.

The Control-Client initiates a TCP connection to the well-known TWAMP-Control port 862. After the TCP connection is established, the Server transmits the first message by sending the ?Server Greetings‘ message. The Control-Client responds with a ?Setup Response‘ message. The three-way TWAMP-Control handshake is completed when the Server responds with the ?Server Start‘ message. The ?Control-Client‘ is now able to transmit command messages to the Server.

The test sessions are set up using the ?Request-Session‘ command message, sent from the Control-Client to the Server. The Server replies with an ?Accept Session‘ message, which indicates if the Server is capable of accommodating the request. The Control-Client may send several ?Request-Session‘ command messages to set up multiple test sessions. To begin the tests, the Control-Client transmits a ?Start-Session‘ command message. The Server replies with a ?Start-Ack‘ message. The Control-Client does not begin its test until it receives the ?Start-Ack‘ message. This allows the Server ample time to configure the test sessions. The Control-Client stops the test sessions with a ?Stop-Sessions‘ message. The Server does not respond to this message.

This feature, TWAMP Light, consists of the TWAMP logical role of the Session-Reflector as defined in Appendix I of RFC 5357. This light version of TWAMP contains two entities: the Client entity takes on the TWAMP logical roles of Session-Sender, Server, and Control-Client, while the Server takes on the TWAMP logical role of the Session-Reflector. To establish TWAMP Light, you must configure endpoints, which define the destination of TWAMP-Test packets generated by the Client. An endpoint receiving a new TWAMP-Test packet creates a test session consisting of the following four-part tuple; client IP address, client UDP port, endpoint IP address, and endpoint UDP port. The tuple does not include the VR because it requires the Default VR for the first phase. A session timeout value, configured globally, determines the amount of time test sessions exist after the last reception of a TWAMP-Test packet. Test sessions are used to keep track of the session data, such as the sequence number. The Session-Reflector still responds to TWAMP-Test packets that do not match an existing test session or if a new test session cannot be created due to lack of resources.

Platforms Supported

  • Summit X440, X460
  • BlackDiamond 8800 with MSM128, MSM48c, and MSM-96

Limitations

  • Endpoints may only be created on the default virtual router (VR-Default)
  • Limit of 256 endpoints Maximum of 2,000 test sessions
  • TWAMP-Test error-estimate field does not reflect Network Time Protocol (NTP) or Simple Network Time Protocol (SNTP) timing values

New CLI Commands

[enable | disable] twamp reflector

This command enables or disables the Session-Reflector. If you disable the Session-Reflector, the application terminates all current TWAMP test sessions.

configure twamp reflector sessions count timeout ref_wait

This command allows you to modify the number of test sessions to support and timeout value for those test sessions. The timeout value is the REFWAIT value specified in RFC 5357.
  • <count>: range 0 – 2000 entries; default 2000
  • <ref_wait>: range 30 – 3600 seconds; default 900 seconds

(un)configure twamp [add|delete] endpoint {vr name} ipaddress ip port udp_port

This command allows you to configure (and unconfigure using unconfgure) the TWAMP endpoints. You specify the IP address and UDP port number for the endpoint. Removing the endpoint terminates all test sessions associated with the endpoint.

  • <ip>: The endpoint IP address, either IPv4 or IPv6
  • <udp_port>: The UDP port the endpoint listens on; range is 1,025–65,535
  • <name>: An optional VR may be used; default is VR-Default

show twamp reflector

This command displays the configured values and runtime information of the Session-Reflector and its endpoints:

Session Information
  Used: 165 of 200
  Timeout: 300 seconds
Endpoints 	Port  Sessions Rx Packets Tx Packets
----------------------------------------------------------
19.1.1.100 	5000  5         3091          3091        
19.1.1.100 	5001  40        5521          5521        
19.1.1.100 	5002  40        4728          4728        
19.1.1.100 	5003  40        3916          3916        
18.1.1.100 	5000  40        9266          9266        

Displayed 5 endpoints

show twamp endpoint ipaddress ip port udp_port

This command displays the endpoint configured values, runtime data, and test session information. Specifying an IP address and port are optional:

TWAMP Endpoint
Endpoint Information
    Local Address: 19.1.1.100		Listening Port: 			5000
    Received Packets: 7948		Transmitted Packets: 7948
    Active Sessions: 5  

Session created on Thu Nov 13 15:41:49 2014
    Peer Address: 19.1.1.2  		Port: 11001
    Sequence Number: 1575  		Last recv'd packet: 84ms

Session created on Thu Nov 13 15:41:49 2014
    Peer Address: 19.1.1.2		Port: 11002
    Sequence Number: 1555		Last recv'd packet: 16ms
Session created on Thu Nov 13 15:41:49 2014
    Peer Address: 19.1.1.2		Port: 11003
    Sequence Number: 1595		Last recv'd packet: 241ms

Session created on Thu Nov 13 15:41:49 2014
    Peer Address: 19.1.1.2		Port: 11004
    Sequence Number: 1729		Last recv'd packet: 249ms

Session created on Thu Nov 13 15:41:49 2014
    Peer Address: 19.1.1.2		Port: 11005
    Sequence Number: 1489		Last recv'd packet: 15ms

Displayed 5 sessions