Documente Academic
Documente Profesional
Documente Cultură
MA API Guide
Virtual Performance Monitoring Measurement
Agents for TWAMP
Version 4.1
Confidential
Viavi Solutions
1-844-GO-VIAVI / 1-844- 468-4284
www.viavisolutions.com
Notice
Every effort was made to ensure that the information in this manual was accurate at the time of printing.
However, information is subject to change without notice, and Viavi reserves the right to provide an
addendum to this manual with information not available at the time that this manual was created.
Copyright
© Copyright 9 December 2018 Viavi Solutions Inc. All rights reserved. Viavi and the Viavi logo are
trademarks of Viavi Solutions Inc. (“Viavi”). All other trademarks and registered trademarks are the
property of their respective owners. No part of this guide may be reproduced or transmitted, electronically
or otherwise, without written permission of the publisher.
Trademarks
VIAVI is a trademark or registered trademark of VIAVI in the United States and/or other countries.
Specifications, terms, and conditions are subject to change without notice. All trademarks and registered
trademarks are the property of their respective companies.
Terms and conditions
Fusion PM MA APIs
Page 3 Confidential 9 December 2018
ContentsReferences .................................................................................................................................. 7
Overview 8
Fusion PM MA APIs
Page 5 Confidential 9 December 2018
Contents
Fusion PM MA APIs
Page 6 Confidential 9 December 2018
References
https://tools.ietf.org/html/rfc6020
https://tools.ietf.org/html/draft-mirsky-ippm-twamp-light-yang-03
Fusion PM MA APIs
Page 7 Confidential 9 December 2018
1
Overview
The Fusion application supports the following Performance Monitoring (PM) tests:
• vPMA
• QT-600-10
The purpose of this document is to explain the APIs used in executing tests and obtaining results that are
specific to these MAs and these tests.
The APIs follow the LMAP documentation [References A,B,C]. LMAP defines common APIs for test
submission, test termination, test status retrieval and result reporting. See the Viavi Controller/Collector API
document (Reference E) for an explanation of these APIs. LMAP is a delivery mechanism for test-specific
information. Since the delivery is the same for all device types it is only explained in the Viavi
Controller/Collector API document. Therefore the Controller/Collector API document and this document
together explain the API.
LMAP is still an evolving specification at the time of this writing. Every effort has been made to follow the
LMAP specification in the areas that support the functionality of this measurement agent. Not all functionality
defined by LMAP is needed and some extensions are required. These differences will be identified in this
document and in the Viavi Controller/Collector API document.
Similarly, this test uses an existing TWAMP model for test configuration. Functionality not supported in that
model and functionality that extends beyond that model will be identified.
Fusion PM MA APIs
9 December 2018 Confidential Page 8
Chapter 1
Fusion PM MA APIs
• LMAP state
• Viavi custom capabilities
LMAP State API
LMAP state refers to an HTTP GET request for /restconf/data/ietf-lmap-control:lmap-state. This API
returns the MA’s id, device id, software version and a list of supported tests.
Fusion PM MA APIs
9 December 2018 Confidential Page 11
Chapter 2
...
],
}
}
}
The list of task names include ‘twamp-initiator’, ‘twamp-reflector’ and ‘twamp-light-reflector’ for vPMA. The
‘results’ task is common across Viavi measurement agents so it is described in the Viavi Controller/Collector
API document.
The device-id contains the vendor (Viavi Solutions), model (vPMA or QT600-10) and MAC address of the
management interface.
The agent-id is an unique identifier for the device and is generated when the measurement agent is booted
up for the first time. The agent-id remains the same value for the life of the measurement agent.
For additional information about this LMAP API see the Viavi Controller/Collector API document.
Information beyond what can be provided by the LMAP State API is returned through an HTTP GET request
for /restconf/data/capabilities. This API returns information such as the number of simultaneous tests and
maximum number of TWAMP control sessions and flows that are supported.
Fusion PM MA APIs
Fusion PM MA APIs
{
"capabilities":{
"phy-list":[
{
"default-test-gateway":"192.168.57.1",
"default-test-ip":"192.168.57.219",
"default-test-mask":"255.255.255.0",
"external-test-ip":"192.168.57.219",
"link-speed":"10G",
"max-frame-size":1500,
"name":"QT600-10_61_133_P1",
"phy-id":"p1",
"tagging":"UNTAGGED",
"test-mac-address":""
},
{
"default-test-gateway":"192.168.58.1",
"default-test-ip":"192.168.58.219",
"default-test-mask":"255.255.255.0",
"external-test-ip":"192.168.58.219",
"link-speed":"10G",
"max-frame-size":1500,
"name":"QT600-10_61_133_P2",
"phy-id":"p2",
"tagging":"UNTAGGED",
"test-mac-address":"00:10:4e:0a:05:20"
}
],
"system":{
"hostname":"QT600-10_61_133",
"num-cores":2,
"os":"Linux 4.4.55",
"ram":1851
},
"truespeed-list":[
{
"max-bandwidth":10000,
"max-concurrent-tests":1,
"phy-id":"p1",
"public-access":false,
"tcp-ports":[
8080
]
},
{
"max-bandwidth":10000,
"max-concurrent-tests":1,
"phy-id":"p2",
"public-access":true,
"public-access-ip":"192.168.58.219",
"public-access-port":80,
"tcp-ports":[
8081
]
}
],
"twamp-initiator-list":[
{
"max-concurrent-tests":1,
"max-control-sessions-per-test":4000,
"max-flows-per-test":8000,
Fusion PM MA APIs
"max-frame-size":1518,
Page 14 "phy-id":"p1" Confidential 9 December 2018
},
{
"max-concurrent-tests":1,
"max-control-sessions-per-test":4000,
"max-flows-per-test":8000,
"max-frame-size":1518,
"phy-id":"p2"
}
],
"twamp-light-reflector-list":[
{
"max-concurrent-tests":1,
"max-flows-per-test":8000,
"max-frame-size":1518,
"phy-id":"p1"
},
{
"max-concurrent-tests":1,
"max-flows-per-test":8000,
"max-frame-size":1518,
"phy-id":"p2"
}
],
"twamp-reflector-list":[
{
"max-concurrent-tests":1,
"max-control-sessions-per-test":4000,
"max-flows-per-test":8000,
"max-frame-size":1518,
"phy-id":"p1"
},
{
"max-concurrent-tests":1,
"max-control-sessions-per-test":4000,
"max-flows-per-test":8000,
"max-frame-size":1518,
"phy-id":"p2"
}
]
}
}
Fusion PM MA APIs
• overlayflows – determines how many (f) twamp initiator flows are reserved for use in overlays.
The remaining flows (500-f) are then available for “ad-hoc” testing.
• overlaytasks – determines how many tasks (t) are reserved for us in overlays. The remaining
tasks (5-t) are available for “ad-hoc”testing.
Settings task
A task with the name 'settings' is processed by the MAF portal specially. It supports the POST and
GET verbs. It is used to update and read device configuration values.
Use GET to read all attributes (GET /restconf/data/ietf-lmap-control:lmap). Here is an example re-
sponse:
Response
{
"ietf-lmap-control:lmap":{
"agent":{
"agent-id":"11111111-1111-1111-1111-111111111117"
},
"tasks":{
"task":[
{
"name":"settings",
"option":[
{
"id":"LMAP.controller_addr",
"value":"dev.observer.live"
},
{
"id":"LMAP.controller_port",
"value":"443"
},
{
"id":"LMAP.heartbeat_sec",
"value":"180"
},
{
"id":"LMAP.heartbeat_url",
"value":""
},
Fusion PM MA APIs
9 December 2018 Confidential Page 16
{
"id":"LMAP.test_status_post_sec",
"value":"14"
},
{
"id":"LMAP.test_status_url",
"value":""
},
{
"id":"LMAP.request_poll_sec",
"value":"30"
},
{
"id":"LMAP.msg_queue_request_url",
"value":""
},
{
"id":"LMAP.msg_queue_reply_url",
"value":""
},
{
"id":"LMAP.upload_url",
"value":""
},
{
"id":"LMAP.logging_url",
"value":""
},
{
"id":"LMAP.alt_controller_addr",
"value":""
},
{
"id":"LMAP.alt_controller_port",
"value":"443"
},
{
"id":"LMAP.alt_registration_url",
"value":"/registration/v2/call-home"
}, {
"id":"overlay.overlaytasks”,
"value":"2"
}, {
"id":"overlay.overlayflows”,
"value":"80"
}
]
}
]
}
}
}
Request
Fusion PM MA APIs
{
"ietf-lmap-control:lmap":{
"tasks":{
"task":[
{
"name":"settings",
"option":[
{
"id":"overlay.overlaytasks",
"value":"3"
},
{
"id":"overlay.overlayflows,
"value":"100"
}
]
}
]
}
}
}
Fusion PM MA APIs
Test-Specific Data
• TWAMP Initiator (supports connections to both standard Twamp Reflectors, and Twamp Light
Reflectors)
• TWAMP Reflector (referred to in this document as standard TWAMP)
• TWAMP Light Reflector
Test submission, status retrieval and result posting follow the LMAP document. These interfaces use a
combination of the LMAP data model and test-specific data. For additional information about the LMAP data
models see the Viavi Controller/Collector API document.
The results from the TWAMP Initiator test will be sent in a table format following the LMAP model. The unique
set of statistics that make up each table are defined in this chapter.
The TWAMP Reflector tests do not send a formal set of results; instead the LMAP State response will include
information such as how many TWAMP control sessions and flows are being reflected. This information is
defined in this chapter.
1. Each MA supports execution of multiple tests simultaneously. The limit is specified by the value of ‘max-
concurrent-tests’ in the Custom Capabilities API.
a. For the vPMA this is a maximum of 4 TWAMP initiator tests or 3 TWAMP Initiator tests plus one
TWAMP reflector (either standard or Light) configuration. Tests submitted after the limit has
been reached will be rejected.
Fusion PM MA APIs
9 December 2018 Confidential Page 19
b. For the QT-600-10 this is a maximum of one TWAMP initiator test and one TWAMP reflector test
per test port.
2. Each MA will initiate/respond to a maximum number of standard TWAMP control sessions (Session-
Requests per the TWAMP YANG model). The limit is specified by the value of ‘max-control-sessions’ in
the Custom Capabilities API.
a. For the vPMA this is a maximum of 500. This is a total value across all tests so once it has been
reached additional TWAMP sessions will stop being requested/accepted.
b. For the QT-600-10 this is a maximum of 4000 per test port, however due to a limitation of the
NETCONF API, the maximum is 500 sessions per test port.
3. Each MA will initiate/respond to a maximum amount of TWAMP flows (Session-Senders and Session-
Reflectors per the YANG model). The limit is specified by the value of ‘max-flows’ in the Custom
Capabilities API.
a. For the vPMA this is a maximum of 500. This is a total value across all tests so once it has been
reached additional TWAMP flows will stop being requested/accepted. An exception to this is the
TWAMP Light Reflector, as there is no connection establishment; a TWMAP Light Reflector will
reflect all traffic that matches its IP and port configuration.
b. For the QT-600-10 this is a maximum of 8000 per test port, however due to a limitation of the
NETCONF API, the maximum is 500 flows per test port.
4. Test schedules will support being started immediately. They will start immediately and run until they are
manually terminated.
5. If a schedule is sent to the MA using HTTP PUT and the MA already has a schedule with the same
name, the HTTP PUT will be rejected. The current test schedule will need to be manually terminated
(using HTTP DELETE) before the updated test schedule can be started (using HTTP POST).
6. Updates to a test can be done using HTTP PATCH. The only changes supported on updates are the
addition or deletion of flows, and the specification of a time to stop posting realtime results.
7. An attempt to start a new test schedule (HTTP POST of LMAP config to MA) that contains the same
schedule name as an existing schedule on the MA will be rejected by the MA. LMAP requires each
schedule to have a unique name.
8. Upon MA reboot previously running tests will be restarted automatically.
Separate MAs are used to execute the TWAMP Initiator and TWAMP Reflector functionality. Upon startup the
MA waits for requests to start a test. Using the IETF TWAMP YANG model definitions, the TWAMP Initiator
represents the TWAMP Client and Session-Senders portions of the TWAMP Test.
Simultaneous TWAMP initiator tests will be required to have unique source IP addresses. The Initiator supports
sessions with both standard TWAMP destinations and TWAMP Light destinations in the same test request.
They are discussed separately in the following text, with a final example that shows both being used together.
1. For each Control-Client-Connection act as a TWAMP Client and create a TCP connection to the Server-
IP/Server-Tcp-Port specified in the message
Fusion PM MA APIs
The IETF TWAMP YANG Model defines the parameters to setup the TWAMP Client and Session-Senders. A
copy of that model is show next with fields not supported identified in the comments.
+--rw twamp
+--rw twamp-client! {control-client}?
| +--rw client-admin-state Boolean
| +--rw mode-preference-chain* [priority] // list with one element
| | +--rw priority uint16 // 1
| | +--rw mode? Mode // bits.unauthenticated
| +--rw key-chain* [key-id] // N/A – keys are not used in this
implementation
| | +--rw key-id string
| | +--rw secret-key? string
| +--rw twamp-client-ctrl-connection* [ctrl-connection-name]
| +--rw ctrl-connection-name string
| +--rw client-ip? inet:ip-address
| +--rw server-ip inet:ip-address
| +--rw server-tcp-port? inet:port-number // 862
| +--rw dscp? inet:dscp // 0
| +--rw key-id? String // N/A – keys are not used in this
implementation
| +--rw max-count? uint32 // N/A – not supported in this
implementation
| +--rw twamp-session-request* [test-session-name] // list of TWAMP Flows
| +--rw test-session-name string
| +--rw sender-ip? inet:ip-address
| +--rw sender-udp-port? inet:port-number
| +--rw reflector-ip inet:ip-address
| +--rw reflector-udp-port? inet:port-number
| +--rw timeout? uint64
| +--rw padding-length? uint32
| +--rw dscp? inet:dscp
| +--rw start-time? uint64 // N/A – not supported
Fusion PM MA APIs
The following is a list of TWAMP Client and Session-Sender parameters that are defaulted or not supported:
1. Client-Control-Connection Client-IP and Session-Request Sender-IP must match. Only one Client
Source IP Address will be specified.
2. Client-Control-Connection DSCP – 0 – the TWAMP Control-Channel will use Best Effort for the DSCP
value in the TCP header
3. Client-Control-Connection Key-ID – not supported; Control-Channel does not use Authentication
4. Session-Request Sender-UDP-Port – only one value can be specified for entire test. TWAMP Initiator
tests DSCP values on Data Flows based on the same starting offset specified by Sender-UDP-Port
5. Session-Request Repeat and Repeat-Interval – periodicity of the test is handled by LMAP parameters
6. Session-Request PM List – not supported in this section. Metrics are specified in the LMAP portion of
the message.
7. Sender-Test-Session Fill-Mode.zero – the data portion of the UDP packets are set to ‘0’s.
8. Sender-Test-Session Poisson – not supported in the first release; the effort to add support for this is
being investigated.
Below is the TWAMP portion of a test start message containing three Client-Control-Connections with two
Session-Requests/Session-Senders on each. This message represents one TWAMP Client connecting to three
TWAMP Servers which create two TWAMP Reflector Sessions each. In other words, using three Control-
Channels, six Data Flow Sessions will be created. Note the format of the example is JSON for readability.
LMAP requires the value of all test parameters to be a string so the content below would need to be stringified
when sent to the MA as the example further down shows.
{
"ietf-twamp:twamp": {
"twamp-client": {
"client-admin-state": "true",
"mode-preference-chain": [{
"priority": "1"
}, {
"mode": "bits.unauthenticated"
}],
"twamp-client-ctrl-connection": [ {
"ctrl-connection-name": "TWAMP Server 1",
"client-ip": "172.17.10.3",
Fusion PM MA APIs
Fusion PM MA APIs
"twamp-session-sender": {
"session-sender-admin-state": "true",
"twamp-sender-test-session": [ {
"test-session-name": "10.15.13.218_P1__10.15.13.219_P1__184",
"fill-mode": "fill-mode.zero",
"periodic-interval": "1000",
"periodic-interval-units": "milliseconds"
}, {
"test-session-name": "10.15.13.218_P1__10.15.13.219_P1__128",
"fill-mode": "fill-mode.zero",
"periodic-interval": "1000",
"periodic-interval-units": "milliseconds"
}, {
"test-session-name": "10.15.13.218_P1__10.15.13.215_P1__184",
"fill-mode": "fill-mode.zero",
"periodic-interval": "1000",
"periodic-interval-units": "milliseconds"
}, {
"test-session-name": "10.15.13.218_P1__10.15.13.215_P1__128",
"fill-mode": "fill-mode.zero",
"periodic-interval": "1000",
"periodic-interval-units": "milliseconds"
}, {
"test-session-name": "10.15.13.218_P1__10.15.13.216_P1__184",
"fill-mode": "fill-mode.zero",
"periodic-interval": "1000",
"periodic-interval-units": "milliseconds"
}, {
"test-session-name": "10.15.13.218_P1__10.15.13.216_P1__128",
"fill-mode": "fill-mode.zero",
"periodic-interval": "1000",
"periodic-interval-units": "milliseconds"
} ]
}
}
}
To summarize the above RESTConf TWAMP message produces the following standard TWAMP connections
and flows:
TWAMP Initiator
Fusion PM MA APIs
1. Test Schedules are received from the Controller via RESTConf POST messages.
2. The Test Schedules contain arrays of test-sessions. The test-session constructs represent the data
flows between TWAMP Initiator and the TWAMP Light Reflector.
3. For each test-session, transmit UDP packets to test-session.Reflector-IP/Reflector-UDP-Port at test-
session.interval. In this implementation, the parameter test-session.interval is interpreted as
milliseconds with the possible values of 10, 20, 100, 1000, or 2000.
4. The size of the TWAMP packets for each TWAMP Session is specified by the ‘packet-padding-size’. In
this implementation the range of valid values is 0-1431 instead of 64-4096 that the TWAMP YANG
model defines. A value of 0 will produce a total frame size of 87 bytes and a value of 1431 will produce
a total frame size of 1518 bytes.
5. As for standard connections, results are sent to the Collector using an address specified in the Result
schedule portion of the configuration.
The IETF TWAMP Light Yang Model defines the parameters to setup the TWAMP test-sessions. A copy of that
model is show next with fields not supported identified in the comments.
module: ietf-twamp-light
+--rw twamp-light
| +--rw twamp-light-session-sender {session-sender-light}?
| | +--rw sender-light-enable? enable // required to be true
| | +--rw test-session* [session-id] // List of entries for each TWAMP Flow
| | +--rw session-id uint32
| | +--rw test-session-enable? enable // required to be true
| | +--rw number-of-packets? uint32 // Not supported
Fusion PM MA APIs
The following is a list of TWAMP Light test-session parameters that are defaulted or not supported:
Below is an LMAP schedule with a TWAMP Light Initiator request included. This message would be received by
the MA in the body portion of a RESTConf POST message.
Note: LMAP requires the value of all test parameters to be a string so the value for the ‘twamp-light’ option
below would need to be stringified when sent to the MA, similar to the value of the ‘session-map’ option.
{ "ietf-lmap-control:lmap":{
"schedules":{
"schedule":[
{
"name":"Test-2016-09-25-11:55",
"start":"immediate",
"action":[
{
"name":"Test-2016-09-25-11:55-action",
"task":"twamp-initiator",
"option":[
{
"id":"subnet",
"value":"255.255.255.0"
},
{
"id":"gateway",
"value":"192.168.2.1"
},
{
"id":"session-map",
"value":"{\"1\":{\"name\":\"Flow 1 for session
1\"},\"2\":{\"name\":\"Flow 2 for session 1\"},\"3\":{\"name\":\"Flow 1 for session 2\"}}"
},
{
"id":"twamp-light",
"value": {
"ietf-twamp-light:twamp-light": {
"twamp-light": {
"twamp-light-session-sender": {
Fusion PM MA APIs
Fusion PM MA APIs
To summarize the above RESTConf TWAMP message produces the following TWAMP Light flows:
Fusion PM MA APIs
Additional information not defined in the TWAMP YANG or TWAMP Light YANG models is provided using
parameters outside of the ietf-twamp models.
QT-600-10
• requires an extra phy-id parameter to identify which of the two test ports the test should run. The
value in the test configuration must match one of the phy-id values returned by the capabilities
request within the phy-list array of physical interfaces.
{
"ietf-lmap-control:lmap":{
"schedules":{
"schedule":[
{
"name":"Test-2016-10-14-17:25",
"start":"immediate",
Fusion PM MA APIs
{
"id":"twamp-light",
"value":"{\"ietf-twamp-light:twamp-light\":{\"twamp-light-session-
sender\":{\"sender-light-enable\":true,\"test-session\":[{\"session-id\":1,\"test-session-
enable\":true,\"packet-padding-size\":425,\"session-authentication-
mode\":\"unauthenticated\",\"interval\":10,\"sender-ip\":\"192.168.2.10\",\"sender-udp-
port\":50000,\"reflector-ip\":\"192.168.2.20\",\"reflector-udp-
port\":50000,\"dscp\":0},{\"session-id\":2,\"test-session-enable\":true,\"packet-padding-
size\":0,\"session-authentication-mode\":\"unauthenticated\",\"interval\":20,\"sender-
ip\":\"192.168.2.10\",\"sender-udp-port\":50000,\"reflector-ip\":\"192.168.2.20\",\"reflector-
udp-port\":50000,\"dscp\":8},{\"session-id\":3,\"test-session-enable\":true,\"packet-padding-
size\":1431,\"session-authentication-mode\":\"unauthenticated\",\"interval\":1000,\"sender-
ip\":\"192.168.2.10\",\"sender-udp-port\":50000,\"reflector-ip\":\"192.168.2.20\",\"reflector-
udp-port\":50000,\"dscp\":40}]}}}"
} {
"id":"twamp",
"value":"{\"ietf-twamp:twamp\":{\"twamp-client\":{\"client-admin-
state\":true,\"mode-preference-
chain\":[{\"priority\":\"1\",\"mode\":\"bits.unauthenticated\"}],\"twamp-client-ctrl-
connection\":[{\"ctrl-connection-name\":\"My Session\",\"client-
ip\":\"172.20.30.29\",\"server-ip\":\"172.20.30.21\",\"server-tcp-
port\":\"862\",\"dscp\":\"0\",\"twamp-session-request\":[{\"test-session-name\":\"Flow
1\",\"sender-ip\":\"172.20.30.29\",\"sender-udp-port\":\"50000\",\"reflector-
ip\":\"172.20.30.21\",\"reflector-udp-port\":\"50000\",\"timeout\":\"2\",\"padding-
length\":\"483\",\"dscp\":\"0\"}]}],\"twamp-session-sender\":{\"session-sender-admin-
state\":true,\"twamp-sender-test-session\":[{\"test-session-name\":\"Flow 1\",\"fill-
mode\":\"fill-mode.zero\",\"periodic-interval\":\"10\",\"periodic-interval-
units\":\"milliseconds\"}]}}}}"
}
],
"destination":[
"Test-2016-10-14-17:25-results-periodic-pm",
"Test-2016-10-14-17:25-results-periodic-rt"
Fusion PM MA APIs
Fusion PM MA APIs
Using the IETF TWAMP YANG model as a reference, the TWAMP Reflector application contains the TWAMP
Server and Session-Reflector functionalities. In the Full TWAMP model, TWAMP Server must be listening for
control connections for the TWAMP test to begin. Consequently, the TWAMP Reflector application must be
started first.
1. Listen on Server IP Address/TCP Listening Port for a connection with the TWAMP Client to create the
Control-Channel
2. Receive Session-Requests on the Control-Channel from the TWAMP Client.
3. Spawn TWAMP Session-Reflectors that listen on a specified UDP port for packets from the TWAMP
Initiator.
4. One instance of the TWAMP Reflector configuration is supported per MA.
1. source-ip – IPv4 address of TWAMP Server to be contacted by TWAMP Client for communication of
TWAMP Session messages.
2. gateway – IPv4 address of router.
3. subnet – IPv4 subdivision (mask) of network.
4. max-connections – Maximum number of TWAMP control sessions to accept. This is a value from 1 to
the value of ‘max-control-sessions’ in the custom capabilities API. TWAMP control sessions above this
value are ignored. This is required so resources can be reserved since the MA can also perform
TWAMP Iniitiator tests.
5. max-flows – Maximum number of TWAMP flows to accept. This is a value from 1 to the value of ‘max-
flows’ in the custom capabilities API. TWAMP flows above this value are ignored.
6. overlay-component – string giving the name of the overlay, if the task is associated with an overlay.
When provided, the task resources will be allocated from those reserved for overlays
(“overlay.overlaytasks” as described in Device Configuration API on page 16)
Fusion PM MA APIs
Fusion PM MA APIs
The TWAMP Light Reflector is very simple. It will reflect any TWAMP packets received with the configured
IP address and port.
1. source-ip – IPv4 address of TWAMP Server to be contacted by TWAMP Client for communication of
TWAMP Session messages.
2. gateway – IPv4 address of router.
3. subnet – IPv4 subdivision (mask) of network.
4. reflector-udp-port (range is 49152 through 65535, default 50000)
5. overlay-component – string giving the name of the overlay, if the task is associated with an overlay.
When provided, the task resource will be allocated from those reserved for overlays
(“overlay.overlaytasks” as described in Device Configuration API on page 16)
Fusion PM MA APIs
Fusion PM MA APIs
The TWAMP initiator test will send realtime intermediate results every 5 seconds and PM intermediate results at
an interval of 1 min, 5 min or 15 min. The statistical values measured in the reports span the report interval.
The same set of results will be provided in both types of reports. The reports are differentiated by the ‘report-
type’ tag included in each report, which will be either ‘report-type:rt’ or ‘report-type:pm’.
Data Reference
Keyword Type Units Eligible Values Definition and Notes Standards
Period Start Time string yyyyMMddhhmmss The period start time of the interval for which the PM data is being TMF814
e.g. 20130825144500 reported. MEF7.1
Time is specified in UTC using the indicated ISO 8601 format. The
period start time occurs on the boundary of the time granularity
(measurement interval).
Granularity enum 5-min The count period (measurement interval) of the PM data being TMF814
string reported.
FDFr EVC ID string The name of the Flow Domain Fragment instantiating the EVC Q.840.1
connecting the two specified UNI Flow Points. The EVC ID identifies MEF10.2
an EVC within the CEN. The EVC ID MUST be unique across all EVCs
in the CEN.
Monitored Time float us The number of microseconds for which monitoring occurred, during
the reported period.
When the Period Status is Valid, will be equal to the value indicated
by the Granularity, within the precision of the device clock, plus or
minus any clock adjustment.
When the Period Status is incomplete, will be less than the nominal
value indicated by the Granularity.
FD 1way Status N->F enum Valid, Incomplete, The validity status of the one-way frame delay performance TMF814
string Invalid, Unavailable measurements in the forward direction (near-end to far-end) MEF7.1
conducted during the measurement interval.
Valid - valid data for the whole period.
Incomplete - data available for a part of the measurement interval.
In this case, the Monitored Time measurement is expected to be
less than the interval length.
Invalid - data available but marked as invalid for the interval. When
the device cannot distinguish incomplete measurements from
invalid measurements, "Invalid" will be used.
Unavailable - no data is available within the measurement period.
Fusion PM MA APIs
FD 1way Avg N->F float us The average one-way frame delay in the forward direction (near- MEF7.1
end to far-end) calculated by this near-end MEP for this MEF-SOAM-
measurement interval. PM-MIB
FD 1way Max N->F float us The maximum one-way frame delay in the forward direction (near- MEF7.1
end to far-end) calculated by this near-end MEP for this MEF-SOAM-
measurement interval. PM-MIB
FD 1way Status F->N enum Valid, Incomplete, The validity status of the one-way frame delay performance TMF814
string Invalid, Unavailable measurements in the backward direction (far-end to near-end) MEF7.1
conducted during the measurement interval.
See Field Num 6 for complete description.
FD 1way Min F->N float us The minimum one-way frame delay in the backward direction (far- MEF7.1
end to near-end) calculated by this near-end MEP for this MEF-SOAM-
measurement interval. PM-MIB
FD 1way Avg F->N float us The average one-way frame delay in the backward direction (far- MEF7.1
end to near-end) calculated by this near-end MEP for this MEF-SOAM-
measurement interval. PM-MIB
FD 1way Max F->N float us The maximum one-way frame delay in the backward direction (far- MEF7.1
end to near-end) calculated by this near-end MEP for this MEF-SOAM-
measurement interval. PM-MIB
FD 2way Status enum Valid, Incomplete, The validity status of the two-way frame delay performance TMF814
string Invalid, Unavailable measurements conducted during the measurement interval. MEF7.1
See Field Num 6 for complete description.
FD 2way Min float us The minimum two-way frame delay calculated by this near-end MEF7.1
MEP for this measurement interval. MEF-SOAM-
PM-MIB
FD 2way Avg float us The average two-way frame delay calculated by this near-end MEP MEF7.1
for this measurement interval. MEF-SOAM-
PM-MIB
FD 2way Max float us The maximum two-way frame delay calculated by this near-end MEF7.1
MEP for this measurement interval. MEF-SOAM-
PM-MIB
IFDV 1way Status N->F enum Valid, Incomplete, The validity status of the one-way inter-frame delay variation TMF814
string Invalid, Unavailable performance measurements in the forward direction (near-end to MEF7.1
far-end) conducted during the measurement interval.
See Field Num 6 for complete description.
Fusion PM MA APIs
IFDV 1way Avg N->F float us The average one-way inter-frame delay variation in the forward MEF7.1
direction (near-end to far-end) calculated by this near-end MEP for MEF-SOAM-
this measurement interval. PM-MIB
IFDV 1way Max N->F float us The maximum one-way inter-frame delay variation in the forward MEF7.1
direction (near-end to far-end) calculated by this near-end MEP for MEF-SOAM-
this measurement interval. PM-MIB
IFDV 1way Status F->N enum Valid, Incomplete, The validity status of the one-way inter-frame delay variation TMF814
string Invalid, Unavailable performance measurements in the backward direction (far-end to MEF7.1
near-end) conducted during the measurement interval.
See Field Num 6 for complete description.
IFDV 1way Min F->N float us The minimum one-way inter-frame delay variation in the backward MEF7.1
direction (far-end to near-end) calculated by this near-end MEP for MEF-SOAM-
this measurement interval. PM-MIB
IFDV 1way Avg F->N float us The average one-way inter-frame delay variation in the backward MEF7.1
direction (far-end to near-end) calculated by this near-end MEP for MEF-SOAM-
this measurement interval. PM-MIB
IFDV 1way Max F->N float us The maximum one-way inter-frame delay variation in the backward MEF7.1
direction (far-end to near-end) calculated by this near-end MEP for MEF-SOAM-
this measurement interval. PM-MIB
IFDV 2way Status enum Valid, Incomplete, The validity status of the two-way inter-frame delay variation
string Invalid, Unavailable performance measurements conducted during the measurement
interval.
See Field Num 6 for complete description.
IFDV 2way Min float us The minimum two-way inter-frame delay variation calculated by MEF7.1
this near-end MEP for this measurement interval. MEF-SOAM-
PM-MIB
IFDV 2way Avg float us The average two-way inter-frame delay variation calculated by this MEF7.1
near-end MEP for this measurement interval. MEF-SOAM-
PM-MIB
IFDV 2way Max float us The maximum two-way inter-frame delay variation calculated by MEF7.1
this near-end MEP for this measurement interval. MEF-SOAM-
PM-MIB
FLR 1way Status N->F enum Valid, Incomplete, The validity status of the one-way frame loss ratio performance TMF814
string Invalid, Unavailable measurements in the forward direction (near-end to far-end) MEF7.1
(see Note) conducted during the measurement interval.
See Field Num 6 for complete description.
Fusion PM MA APIs
FLR 1way Avg N->F float % The average one-way frame loss ratio in the forward direction MEF-SOAM-
(near-end to far-end) calculated by this near-end MEP for this PM-MIB
(see Note) measurement interval.
FLR 1way Max N->F float % The maximum one-way frame loss ratio in the forward direction MEF-SOAM-
(near-end to far-end) calculated by this near-end MEP for this PM-MIB
(see Note) measurement interval.
FLR 1way Status F->N enum Valid, Incomplete, The validity status of the one-way frame loss ratio performance TMF814
string Invalid, Unavailable measurements in the backward direction (far-end to near-end) MEF7.1
(see Note) conducted during the measurement interval.
See Field Num 6 for complete description.
FLR 1way Min F->N float % The minimum one-way frame loss ratio in the backward direction MEF-SOAM-
(far-end to near-end) calculated by this near-end MEP for this PM-MIB
(see Note) measurement interval.
FLR 1way Avg F->N float % The average one-way frame loss ratio in the backward direction MEF-SOAM-
(far-end to near-end) calculated by this near-end MEP for this PM-MIB
(see Note) measurement interval.
FLR 1way Max F->N float % The maximum one-way frame loss ratio in the backward direction MEF-SOAM-
(far-end to near-end) calculated by this near-end MEP for this PM-MIB
(see Note) measurement interval.
FL Count N->F integer The count of frames lost near-end to far-end for this measurement MEF-SOAM-
interval. PM-MIB
(see Note) FLR 1way Status N->F applies to this measurement.
FL Count F->N integer The count of frames lost far-end to near-end for this measurement MEF-SOAM-
interval. PM-MIB
(see Note) FLR 1way Status F->N applies to this measurement.
FA Count integer The count of frames attempted in each direction, both near-end to MEF-SOAM-
far-end and far-end to near-end for this measurement interval. PM-MIB
No FSync Count integer >=0 For every 5s sample, if the "Sync" bit in the reflected TWAMP
packet is not set this count is incremented.
F Usync Count integer >=0 0 - indicates far end time is in sync with QT time
>0 - Far end time is not in sync with QT time.
OOS Count N->F integer >=0 Number of Out of Sequence packets in the near to far direction
during the measurement interval - status flag based on FLR 1 way
Status N->F
Fusion PM MA APIs
Dup Count N->F integer >=0 Number of Duplicate packets in the near to far direction during the
measurement interval - status flag based on FLR 1 way Status N->F
Dup Count F->N integer >=0 Number of Duplicate packets in the far to near direction during the
measurement interval - status flag based on FLR 1 way Status F->N
FD Count 1 integer >=0 Frames with 2 way delay < 4ms during the measurement interval -
status flag based on FD 2 way Status
FD Count 2 integer >=0 Frames with 2 way delay between (>=) 4 and (<) 8 ms during the
measurement interval - status flag based on FD 2 way Status
FD Count 3 integer >=0 Frames with 2 way delay between (>=) 8 and (<) 16 ms during the
measurement interval - status flag based on FD 2 way Status
FD Count 4 integer >=0 Frames with 2 way delay >=16 ms during the measurement interval
- status flag based on FD 2 way Status
Synthetic Time integer 0,1 Indicator that timestamp smoothing algorithm was applied to
Reflector (Far-end) timestamps
Remote Port integer 1-65535 The UDP port on the reflector to where the TWAMP packets are
being sent. For standard TWAMP, this is the value that resulted
from the control session negotiation and is not necessarily the value
that was requested in the test configuration. For TWAMP light, this
is the configured value.
Note: If the reflector is not session aware then F->N Frame Loss statistics represent 2-way/roundtrip
results. In this case, N->F Frame Loss statistics will always be 0. TWAMP Light reflectors are not expected
to be “session aware.”
The TWAMP Reflector configuration does not produce reports and so does not require Result Schedules in the
test configuration. When the LMAP state API is requested the following information will be returned as a
structured value in string format in the ‘last-message’ object:
Fusion PM MA APIs
{
"version":"1.0",
"name":"results"
}
]
},
"agent":{
"last-started":"2016-05-16T15:27:16.678457",
"agent-id":"abfc14b6-1b7a-11e6-b32d-fa163e5bfbb0",
"device-id":"urn:viavisolutions:model:vPMA:mac:%FA%16%3E%5B%FB%B0",
"version":"1.0"
},
"schedules":{
"schedule":[
{
"last-invocation":"2016-05-17T15:22:39.540871",
Fusion PM MA APIs
Fusion PM MA APIs