Documente Academic
Documente Profesional
Documente Cultură
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 4 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
Overview 9
MA APIs 13
Test Configuration ......................................................................................................... 14
Examples .................................................................................................................................. 19
Example .................................................................................................................................... 24
MA State Retrieval......................................................................................................... 24
MA Registration ............................................................................................................. 33
Login ............................................................................................................................. 36
Logout ........................................................................................................................... 37
MA List .......................................................................................................................... 38
MA State Retrieval......................................................................................................... 43
References
https://tools.ietf.org/html/rfc6020
• NETCONF
http://tools.ietf.org/html/rfc6241
http://www.netconfcentral.org/modules/ietf-netconf/2011-06-01#candidate.96
The purpose of this document is to explain the APIs for use in executing tests and obtaining results
from measurement agents (MA) supported by the Viavi controller and collector.
1. MA APIs
• describes the common aspects of the test control APIs on the measurement agents such
as test submission, state retrieval and general result format
2. Controller/Collector APIs
• describes the test control APIs offered to an external client using NETCONF
The following image depicts the MA APIs and Controller/Collector APIs along with internal APIs that
connect everything:
The MA APIs are expected to follow the LMAP documentation [References A,B,C]. LMAP defines common
APIs for test submission, test termination, test status retrieval and result reporting. LMAP is a delivery
mechanism for test-specific information. Since the delivery is the same for all device types it is explained
once in this document. The test specific information is outside the scope of LMAP and is explained in
additional MA specific documents.
The following is a list of the MAs that are currently supported and their test types:
The Controller/Collector APIs are also expected to follow the LMAP documentation and use the
LMAP YANG model as much as possible. Since LMAP defines the MA interface additional information
will be needed for the controller/collector such as which MA to perform the operation. Some requests
such as test submission will go to the Controller and then to the MA while other requests such as result
queries will go to the Collector.
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 needed by the MAs. Not all functionality
defined by LMAP is needed and some extensions are required. These differences will be identified in this
document.
Terminology used in the document
LMAP defines the operation of testing the network as an Instruction Task and the location of where to
send results as a Result Task. Both are associated with an LMAP event that specifies when they
should be performed. The linking of a task to an event is done using an LMAP schedule.
Within this document the following terminology will be used for brevity:
• the term Test Task means the same as an Instruction Task. The focus of this document is test
execution so using the term Test makes the discussion clear.
• the term Test Schedule means a schedule that references a Test Task
• the term Result Schedule means a schedule that references a Result Task
• the term Test means the combination of everything needed to execute the Test Task:
o Test Schedule
o Result Schedule(s)
o Test parameters
o Events
• Test configuration
• Test termination
• MA state retrieval
• MA result posting
The APIs are the row identified by the green arrow in the picture below from the overview:
1. Task
a. can be defined for various reasons; the ones concerning test submission are for tests and
results
b. each task can include instance data (parameters) in the form of an 'options' object
c. a task does not execute without a schedule (see below)
2. Events
a. define a time period
b. some are predefined by the MA (ex. immediate) and some the user can define (examples:
run every Monday at 9:00am or run every 5 minutes)
3. Schedule
a. each instance of a schedule contains a reference to a test or result task
b. can optionally contain the same 'options' object that is allowed in the task. If the 'options' ob-
ject is provided in both the schedule and the task and if both instances define the value for
the same parameter, the value in the schedule is used. The following use case can then be
supported:
• if a user wants to run a test multiple times with only one parameter changing each
time, the common parameters could be defined in the ‘options’ of the test task and
the 'per run' parameters could then be defined in the ‘option’ of the schedule.
c. contains a reference to an event that defines when the test or result task should execute
• periodic (run every x milliseconds, start & end date/time optional)
• calendar (run based on time of day, start & end date/time optional)
• one-off (run once, start at a specific date/time)
• immediate (run once, run now)
• startup (run at MA startup)
d. for schedules that reference a test task the schedule also contains a reference to one or
more additional result schedules. These result schedules are another instance of a schedule
and they contain:
• a reference to a result task
• optionally an 'options' object that specifies where to send the data and any other pa-
rameters. Where to send the data is called a 'channel' in LMAP terminology.
• a reference to an event that defines how often the test should report the data
• The user could provide parameters in a task and then assume they will be used for all future sched-
ules that reference that task.
• The user could provide parameters in a task and then override the values by specifying them again
in schedules that reference that task.
• Multiple result schedules may need to be provided if the test task can send multiple types of results
o for example, the test may support aggregation of the results across different intervals – a
short interval for troubleshooting and a longer interval for official reporting. A result schedule
would be needed for each that define the different rates at which the results are sent.
o for example, the test may support sending 'sla-passing' results at a 5 min rate but 'sla-failing'
results more frequently. Again this would require different result schedules that define the
different rates.
LMAP defines many objects, possible combinations and interactions. The expectation is Viavi will
implement a subset of this functionality initially and support additional functionality over subsequent
releases.
The following general approach and simplifications are proposed for the first release.
Test Submission
Test submission will be performed by issuing an HTTP POST to /restconf/data/ietf-lmap:lmap.
Each MA may implement a different subset of the LMAP specification based on needed functionality.
Therefore the MA specific documentation will explain what each MA supports if different from what this
document states.
Note: The LMAP committee acknowledges the need for identifiers like these and is in discussion on
where they should be placed within the test configuration. The discussion has been around an object re-
ferred to as a cycle id. This discussion is resulting in updates to the LMAP documentation that will be
considered for replacement of the schedule id and run id in a future release.
The parameters needed to execute the test schedule will be provided within the LMAP ‘option’ object that
resides under lmap/schedules/schedule/action.
While the ‘option’ object can be provided in the task and/or schedule per the LMAP documentation, it will
only be accepted in a schedule in the initial release. This is because LMAP requires a schedule to start a
test so it is always required. Thus the ‘options’ object within the LMAP ‘task’ object will be ignored. The
benefits are:
The names of the options will be defined by a test-specific YANG model. See the MA specific docu-
mentation for further details.
Task objects:
• based on the prior item, tasks will be predefined by the MA and will not be able to be modi-
fied
• The following tasks will be predefined by the MA:
• Test Task for each test type
• Result Task that contains parameters for:
• a single channel setting for where to send the results
• the channel setting for all Result Tasks in the same schedule submission will
be expected to have the same value for the channel (ie. all results will go to
the same Collector)
• a setting to state how the task is being used - specifically if it is for realtime
intermediate results, performance monitoring (pm) intermediate results or fi-
nal results
Event objects:
Agent object:
• will be ignored in the intial release; thus settings like ‘measurement-point’ and ‘controller-
timeout’ will not be supported
Suppressions object:
API Operations
• The API will only support write/POST operations for the entire content of the ‘lmap’ object
defined in ‘ietf-lmap-control’ module.
• each test submission will be required to be complete, meaning the schedule for the
test task, schedules for the result tasks and any user-defined events must all be in
the same data set.
• update/PUT operations for the ‘ietf-lmap-control’ module will not be supported
• read/GET operations for the ‘ietf-lmap-control’ module will not be supported
• delete operations will be supported for the purpose to stopping a test (see Test Termination)
Examples
The following examples show the general structure and information required by the MA to start a test. A
single Test Schedule is provided along with the necessary Result Schedules and events needed for both.
TWAMP Initiator Example (on vPMA)
Note: A limit of 175 TWAMP sessions will be accepted per test submission
"value":"http://10.3.80.203:26088/restconf/operations/ietf-lmap-report:report"
"value":"http://10.3.80.203:26088/restconf/operations/ietf-lmap-report:report"
}
]
}
]
}
]
},
"events":{
"event":[
{
"name":"My Test-results-periodic-pm-event",
"periodic":{
"interval":300
}
},
{
"name":"My Test-results-periodic-rt-event",
"periodic":{
"interval":5
}
}
]
}
}
}
Test Termination
LMAP Model
The LMAP model for terminating the execution of a test is defined using the lmap object of the ietf-lmap-
control module.
See the LMAP Model section of Test Configuration since it uses the same module.
LMAP defines the suppression object for temporarily stopping a Test Schedule.
LMAP documentation is not very clear on how a Test Schedule should be permanently stopped (ie.
terminated); the documentation seems to suggest there are two approaches :
The following general approach and simplifications are proposed for the first release:
3. The request will contain an instance of the lmap object that specifies the name of the schedule and
the immediate event. Note the event object is a mandatory object although it is not needed for this
operation since terminating a schedule is always an immediate operation. The schedule is required
to contain an action object containing the schedule-id sent by the controller when the test was
started.
Example
{
"ietf-lmap-control:lmap": {
"schedules": {
"schedule": [{
"name": "My Test",
"event": "immediate",
"action":[
{
"name":"My Test-action",
"task":"y1564",
"tag":["schedule-id:1000647"],
"option":[]
}
]
}]
}
}
}
MA State Retrieval
LMAP Model
The LMAP model for retrieving the state information for the MA and its schedules is defined using the lmap-
state object of the ietf-lmap-control module (same module that is used for test configuration).
The YANG model for this was obtained from the following location:
Section 4 "YANG Modules" of the IETF document https://datatracker.ietf.org/doc/draft-ietf-lmap-yang/.
LMAP defines this interface for the purpose of retrieving status information for both the MA itself and the
schedules it has been configured with.
The enumerated values for the state objects are defined as:
• enabled
• running
• disabled
• suppressed
The following general approach and simplifications are proposed for the first release:
Thus, a test like Y.1564 will report ‘running’ and then ‘disabled’ when it completes
on its own. A test like TWAMP initiator or reflector that is a ‘run forever’ test, will
report ‘running’ until it is manually terminated.
Note that after a test completes on its own or is manually terminated, the
controller will remove the test from the MA using the API described in the Test
Termination section. This is done to allow the MA to cleanup resources
associated with the test. After Test Termination has been performed the test will
no longer be returned by the MA
iii.invocations
iv. failures
v. last-invocation
vi. last-completion
vii. suppressions and overlaps will not be supported in the first release
viii.last-status
0 if no error, 1 if test cancelled, 2 if test error
ix. last-message
any message regarding state; may be a structured list of name/value pairs
x. last-failed-completion
xi. last-failed-status
General Response for test running but has errors that don't cause it to stop or it has status to return
state = running
last-status = 0
last-message = 'whatever information is useful’
last-failed-completion = empty
last-failed-status = 0
last-failed-message = empty
• The suppressions object will not be returned since suppressions are not supported in the first
release
4. The API will only support a read operation for the entire content of ‘lmap-state’ object defined in ‘ietf-
lmap-control’ module. Thus, trying to read a subset (ex. lmap-state:schedules) will not be supported.
{
"ietf-lmap-control:lmap-state":{
"tasks":{
"task":[
{
"version":"1.0",
"name":"twamp-initiator"
},
{
"version":"1.0",
"name":"twamp-reflector"
},
{
"version":"1.0",
"name":"results"
}
]
},
"agent":{
"last-started":"2016-05-13T01:15:09.836709",
"agent-id":"22c5ea5c-18a8-11e6-9d27-fa163e8956a7",
"device-id":"urn:viavisolutions:model:vPMA:mac:%FA%16%3E%89%56%A7",
"version":"1.0"
},
"schedules":{
"schedule":[
{
"name":"My Test",
"last-invocation":"2016-05-20T13:52:17.987131",
"action":[
{
"state":"disabled",
"invocations":1,
"failures":1,
"last-status":2,
"last-invocation":"2016-05-20T13:50:05.510115",
"last-completion":"2016-05-20T13:52:48.510115",
"last-failed-completion":"2016-05-20T13:52:48.510115",
"last-failed-message":"None of the Destination IP address in the list
of flows could be resolved with ARP for source 172.20.30.128",
"last-completion":"2016-05-20T13:52:48.510115",
"last-message":"{\"TWAMP test\": \"Enabled\", \"testPort\": \"Config-
ured\"}",
"last-failed-status":1
}
]
}
]
}
}
}
LMAP uses this module to define the format of the data sent from the MA to the Collector.
A list of one or more tasks are included in each data set and each task can contain one or more tables of
results.
The test parameters can optionally be included with each task in the ‘option’ object.
The following general approach and simplifications are proposed for the first release:
1. A single Test Task may need to report data that conforms to different table definitions.
Note: The LMAP committee is currently discussing the way to achieve this.
LMAP model draft version 4 has been updated to support multiple tables per task but there is not a
way to identify what data set is in each table. Until this is resolved the data set included in a report
will be identified using tag values and each table will be sent to the collector separately as its
own report.
2. Each Report Result will contain information useful for combining the data with other result sets. It
will place this data in the ‘tag’ object. The data that is expected to be reported is:
• schedule-id – created by the Viavi Controller. This represents a configuration that can be run
repeatedly.
• run-id - created by the Viavi Controller. This represents the number of times the user has re-
submitted the same schedule id. Value starts at 1.
• instance-start-time – created by the MA, this is reported if the schedule id was provided in
the test configuration. This value would be updated each time the schedule is executed.
Thus it would only have one value for an immediate test. It would have a different value for
each execution of a periodic test.
• sequence - created by the MA, this is a number that increases by one in each result set and
is used to detect missing results.
• result-type – created by the MA, this identifies the result schedule that generated the report:
realtime (rt), performance monitoring (pm) or final
• table-type – created by the MA, this identifies different table formats. This will only be used
when a test generates multiple report formats within the same result-type. For example, the
Y.1564 test produces final results for the Service Configuration and the Service Performance
subtests. It will report ‘table-type:sc’ or ‘table-type:sp’ so a client can identify them.
3. The ‘tag’ object will also contain any values defined in the schedule/tag or schedule/action/tag ob-
jects that were part of the test configuration.
4. Each result set sent to the Collector will include :
• Date
• Agent-id (MA-ID)
5. Group-id and measurement-point will not be supported.
6. The schedule-name, action-name and task-name will be provided in each report.
7. Until it is clear how to use the metric object in the report it will not be included.
8. The test configuration will be included in the ‘options’ object in the first report from a schedule
execution after it starts execution.
9. The ‘conflict’ object will not be included.
10. Each result set sent to the Collector will be for one test.
],
"tag":[
"schedule-id:10000",
"result-type:rt"
],
"table":[
{
"column":[
"originator",
"stream-number",
"tx-frame-count",
"rx-frame-count",
"frame-loss-count",
"frame-loss-ratio",
"current-thruput",
"average-thruput",
"time-remaining",
"status"
],
"row":[
{
"value":[
"ENGINE_A",
"0",
"1000",
"1000",
"1234",
"0.0",
"0.0",
"0.0",
"20",
"TEST_STATUS_RUNNING_CIR_TEST_LOOPBACK_ENGINE_A_0"
]
}
]
}
],
"schedule-name":"my-schedule",
"action-name":"my-action",
"task-name":"my-task"
}
],
"agent-id":"123e4567-e89b-12d3-a456-426655440000",
}
}
],
"tag":[
"schedule-id:10000",
"result-type:final",
"table-type:sc"
],
"table":[
{
"column":[
"originator",
"step-name",
"stream-number",
"verdict",
"average-thruput",
"tx-frame-count",
"rx-frame-count",
"frame-loss-count",
"frame-loss-ratio",
"flr-verdict",
"oos-count",
"rtd-avg",
"rtd-max",
"rtd-min",
"fd-verdict",
"frame-size-average"
],
"row":[
{
"value":[
"engine-a",
"CIR",
"0",
"pass",
"0.0",
"1000",
"1000",
"1234",
"0.0",
"pass",
"0",
"0.0",
"0.0",
"0.0",
"no-verdict",
"64.0"
]
}
]
}
],
"schedule-name":"my-schedule",
"action-name":"my-action",
MA Registration
LMAP requires the MA to register with the controller when the MA application is started. Registration for this
controller consists of an HTTP POST from the MA to a pre-determined URL along with a URL parameter
that specifies which port on the MA to use for LMAP requests and which version of LMAP the MA supports.
http://<controller IP>:<controller port>/restconf/data/call-home? ma_listening_port=30500&lmap_api_ver-
sion=draft-ietf-lmap-yang-04
This channel configuration will need to be provided as part of the initial configuration for the MA when the
MA is created.
The Controller extracts the IP address of the MA from the request packet, uses the value of ma_listen-
ing_port from the registration request and issues an HTTP GET for the MA State (/restconf/data/ietf-lmap-
control:lmap-state) which will return agent information such as the MA-ID and the list of tasks the MA sup-
ports.
Note: Viavi has the need to return vendor-specific information when the controller reads the capabilities from
an MA. Especially for virtual devices, the hardware and environment that a VM is installed in will dictate the
capabilities of the software so Viavi wants to make this information available to the controller. A request was
made to the LMAP committee to add support for vendor/device-specific capabilities and that request has
been put on ‘hold’ by the LMAP committee:
https://www.ietf.org/mail-archive/web/lmap/current/msg02503.html
In the interim, a Viavi specific API will be used to retrieve the custom capabilities from each MA. This will be
an HTTP GET request to the MA for /restconf/data/capabilities. See the MA specific documentation for
details on what each MA returns.
A NETCONF interface on the server that hosts the Controller and Collector will be provided that will support the
following operations:
• Test configuration
• Test termination
• MA state retrieval
• Test Result Retrieval
The APIs are the row identified by the green arrow in the picture below from the overview:
The operations above require extra information not defined by LMAP. This is minimally identification of the
device on which to perform the operation, but in the case of Test Result Retrieval other inputs are required to
filter the result set.
These inputs are not defined by LMAP because LMAP defines the API for an MA.
These inputs are not defined by NETCONF since it assumes it is running on the device that is being
configured/queried.
These additional inputs are therefore expected to be obtained by offering new operations (rpc commands) in a
separate Viavi YANG model. The input and output of the operations is expected to be LMAP compliant where
possible.
Note: The ‘anyxml’ objects below are expected to be JSON formatted values. For example, when a test is
submitted, there is an XML ‘wrapper’ defined below that states which device the test if for but the test settings
themselves are expected to be JSON formatted data. Likewise, when status or report data is requested, the
request is made using the XML request below and the response contains JSON formatted data.
The format of the rpc operations will be similar to the rpc operations NETCONF defines such as ‘get’ and ‘get-
config’.
http://www.netconfcentral.org/modules/ietf-netconf/2011-06-01#candidate.96
Login
rpc login {
input {
leaf username {
type string;
description “user name”;
}
leaf password {
type string;
description “password”;
}
}
output {
leaf token {
type string;
}
leaf ttl {
type string;
description “time to live (in seconds)”;
}
leaf username {
type string;
description “user name”;
}
Logout
rpc logout {
input {
leaf token {
type string;
}
}
output {
leaf errorCode {
type string;
description “unique error identifier”;
}
leaf errorMessage {
type string;
description “optional descriptive text that describes the error”;
}
}
}
Renew Token
rpc renewToken {
input {
leaf token {
type string;
}
}
output {
leaf errorCode {
type string;
description “unique error identifier”;
}
leaf errorMessage {
type string;
description “optional descriptive text that describes the error”;
}
}
}
MA List
The Controller will keep a list of the MAs that register with it. Tests can only be executed on these devices per
LMAP. The list of MAs currently known by the Controller can be optained using this API. An controller-specific
id will be returned for each MA that will be used as input into other APIs to specify the MA on which those opera-
tions are to be performed.
rpc getMAList {
input {
leaf token {
type string;
}
}
The operation will not take any input parameters. The output will be a list of objects that minimally contain the
data shown above.
Test submission data is expected to follow the format defined in the MA Test Submisison section for the MA.
The entire test (Test Schedule including test-specific parameters, Results Schedules and events) will be
provided along with the id of the MA(s) that should receive the test. A TWAMP test (initiator or reflector) can
only be sent to one MA at a time. A Y.1564 test will require one or two MAs depending on the test mode.
Y.1564 tests in loopback mode require one MA, the rest of the modes require two MAs (primary and secondary).
The Controller will inject a schedule id and run id into the schedule/action/tag object within the configuration
before sending the test request to the MA. These schedule and run ids will be returned as output to this API and
they will additionally then be included in reports sent to the collector so they can be used to retrieve results.
Note: The format of the example data shown in the MA Test Submission section is JSON and for NETCONF it is
required to be XML.
rpc startMATest {
input {
leaf token {
type string;
}
leaf runlater {
type string;
default "no";
}
container agent {
container primary {
leaf id {
type string;
description "unique controller id for device"
}
leaf type {
type enumeration {
enum inventory {
description "device in inventory";
}
}
default "inventory";
}
leaf config {
type string;
description "name of test configuration section that follows"
}
}
list secondary {
key id;
leaf id {
type string;
description "unique controller id for device"
}
leaf type {
type enumeration {
Example test configuration structure for Y.1564 test in concurrent bidirectional mode:
STEP 1: Build the Test Specific Data (e.g. TWAMP) XML per Viavi specification
STEP 2: Build the “LMAP” outer layer XML per Viavi “Test Submission” specification
STEP 3: Put the XML from step 1 and 2 together by inserting the XML content from step 1 into the XML in
step 2 at this location /ietf-lmap-control:lmap/schedules/schedule/action/option/value
See the examples in Chapter 2/Test Submission.
STEP 4: Build the XML that defines the device(s) that must receive the test.
• All tests would require one MA assigned to the primary role.
• Some tests, like Y.1564, may require a second MA assigned to the secondary role. For Y.1564
tests that require two MAs, the only difference between the test configurations is the value of the
‘role’ test parameter.
STEP 5: Submit the XML from steps 3 and 4 to the ‘startMATest’ operation in the ‘agents’ and ‘config’ objects
respectively.
Test Termination
Stopping a test can be performed using one of two sets of inputs.
In both cases the tests on the primary and secondary MAs involved in the test will be stopped.
The response from the operation will not contain any data, it will be success or failure.
MA State Retrieval
Since the LMAP command to retrieve the MA state does not define the MA as input, a new RPC operation will
be offered.
rpc getMAState {
input {
leaf token {
type string;
}
leaf agent-id {
type string;
description "unique controller id for device"
}
}
output {
anyxml result;
}
}
The response from the operation will be an instance of the ‘ietf-lmap-control:lmap-state’ object.
rpc getReports {
input {
leaf token {
type string;
}
leaf schedule-id {
type string;
}
leaf run-id {
type string;
default "1";
description "instance of the schedule; returned when test was started";
}
leaf result-type {
type string;
description "report type such as rt, pm or final";
}
leaf starting-time {
type yang:date-and-time;
description "Timestamp of first report to return";
}
leaf max-reports {
type uint16{
and optionally:
• starting-time (timestamp that should be is first report returned. This is typically the value of ietf-
lmap-report:report/date from a report that was already returned)
• max-reports
Note: A limit of 175 TWAMP sessions will be accepted per test submission
<?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
<action xmlns="http://tail-f.com/ns/netconf/actions/1.0">
<data>
<startMATest xmlns="http://viavisolutions.com/ns/yang/vtest">
<token>ntcadmin</token>
<agent>
<primary>
<id>rs-sprint11-2</id>
<type>inventory</type>
<config>primaryConfig</config>
</primary>
</agent>
<config>{"config":[{"primaryConfig":{"ietf-lmap-
control:lmap":{"events":{"event":[{"name":"T3-results-periodic-pm-
event","periodic":{"interval":60}},{"name":"T3-results-periodic-rt-
event","periodic":{"interval":5}}]},"schedules":{"schedule":[{"action":[{"destination":["T3-
results-periodic-pm","T3-results-periodic-rt"],"name":"T3-
action","option":[{"id":"subnet","value":"255.255.255.0"},{"id":"gateway","value":"0.0.0.0"},{
"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.31.161","server-
ip":"172.20.31.162","server-tcp-port":862,"dscp":0,"twamp-session-request":[{"test-session-
name":"Flow 1","sender-ip":"172.20.31.161","sender-udp-port":50000,"reflector-
ip":"172.20.31.162","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"}]}}}}"}],"tag":["schedule-
id:1001440","run-id:1"],"task":"twamp-
initiator"}],"name":"T3","start":"immediate"},{"action":[{"name":"T3-results-periodic-pm-
action","option":[{"id":"result-
type","value":"pm"},{"id":"channel","value":"http://10.3.80.203:26088/restconf/operations/ietf
-lmap-report:report"}],"task":"results"}],"name":"T3-results-periodic-pm","start":"T3-results-
periodic-pm-event"},{"action":[{"name":"T3-results-periodic-rt-
action","option":[{"id":"result-
type","value":"rt"},{"id":"channel","value":"http://10.3.80.203:26088/restconf/operations/ietf
-lmap-report:report"}],"task":"results"}],"name":"T3-results-periodic-rt","start":"T3-results-
periodic-rt-event"}]}}}}]}</config>
</startMATest>
</data>
</action>
</rpc>
1 of 2:
<?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
<action xmlns="http://tail-f.com/ns/netconf/actions/1.0">
<data>
<getReports xmlns="http://viavisolutions.com/ns/yang/vtest">
<token>ntcadmin</token>
<schedule-id>1002407</schedule-id>
<run-id>1</run-id>
<result-type>rt</result-type>
<max-reports>3</max-reports>
</getReports>
</data>
</action>
</rpc>
2 of 2
<?xml version="1.0" encoding="UTF-8"?>
<rpc xmlns="urn:ietf:params:xml:ns:netconf:base:1.0" message-id="1">
<action xmlns="http://tail-f.com/ns/netconf/actions/1.0">
<data>
<getReports xmlns="http://viavisolutions.com/ns/yang/vtest">
<token>ntcadmin</token>
<schedule-id>1002407</schedule-id>
<result-type>rt</result-type>
<starting-time>2016-07-29T21:28:00Z</starting-time>
<max-reports>3</max-reports>
</getReports>
</data>
</action>
</rpc>
Stop Test