< draft-cmzrjp-ippm-twamp-yang-01.txt   draft-cmzrjp-ippm-twamp-yang-02.txt >
IPPM WG R. Civil IPPM WG R. Civil
Internet-Draft Ciena Corporation Internet-Draft Ciena Corporation
Intended status: Standards Track A. Morton Intended status: Standards Track A. Morton
Expires: January 4, 2016 AT&T Labs Expires: April 21, 2016 AT&T Labs
L. Zheng L. Zheng
Huawei Technologies Huawei Technologies
R. Rahman R. Rahman
Cisco Systems Cisco Systems
M. Jethanandani M. Jethanandani
Ciena Corporation Ciena Corporation
K. Pentikousis, Ed. K. Pentikousis, Ed.
EICT EICT
July 3, 2015 October 19, 2015
Two-Way Active Measurement Protocol (TWAMP) Data Model Two-Way Active Measurement Protocol (TWAMP) Data Model
draft-cmzrjp-ippm-twamp-yang-01 draft-cmzrjp-ippm-twamp-yang-02
Abstract Abstract
This document specifies a data model for client and server This document specifies a data model for client and server
implementations of the Two-Way Active Measurement Protocol (TWAMP). implementations of the Two-Way Active Measurement Protocol (TWAMP).
We define the TWAMP data model through Unified Modeling Language We define the TWAMP data model through Unified Modeling Language
(UML) class diagrams and formally specify it using YANG. (UML) class diagrams and formally specify it using YANG.
Status of This Memo Status of This Memo
skipping to change at page 1, line 42 skipping to change at page 1, line 42
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on January 4, 2016. This Internet-Draft will expire on April 21, 2016.
Copyright Notice Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
skipping to change at page 2, line 35 skipping to change at page 2, line 35
3.3. Session-Sender . . . . . . . . . . . . . . . . . . . . . 7 3.3. Session-Sender . . . . . . . . . . . . . . . . . . . . . 7
3.4. Session-Reflector . . . . . . . . . . . . . . . . . . . . 7 3.4. Session-Reflector . . . . . . . . . . . . . . . . . . . . 7
4. Data Model Parameters . . . . . . . . . . . . . . . . . . . . 7 4. Data Model Parameters . . . . . . . . . . . . . . . . . . . . 7
4.1. Control-Client . . . . . . . . . . . . . . . . . . . . . 7 4.1. Control-Client . . . . . . . . . . . . . . . . . . . . . 7
4.2. Server . . . . . . . . . . . . . . . . . . . . . . . . . 14 4.2. Server . . . . . . . . . . . . . . . . . . . . . . . . . 14
4.3. Session-Sender . . . . . . . . . . . . . . . . . . . . . 18 4.3. Session-Sender . . . . . . . . . . . . . . . . . . . . . 18
4.4. Session-Reflector . . . . . . . . . . . . . . . . . . . . 21 4.4. Session-Reflector . . . . . . . . . . . . . . . . . . . . 21
5. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 25 5. Data Model . . . . . . . . . . . . . . . . . . . . . . . . . 25
5.1. YANG Tree Diagram . . . . . . . . . . . . . . . . . . . . 25 5.1. YANG Tree Diagram . . . . . . . . . . . . . . . . . . . . 25
5.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 27 5.2. YANG Module . . . . . . . . . . . . . . . . . . . . . . . 27
6. Data Model Examples . . . . . . . . . . . . . . . . . . . . . 42 6. Data Model Examples . . . . . . . . . . . . . . . . . . . . . 43
6.1. Control-Client . . . . . . . . . . . . . . . . . . . . . 43 6.1. Control-Client . . . . . . . . . . . . . . . . . . . . . 43
6.2. Server . . . . . . . . . . . . . . . . . . . . . . . . . 44 6.2. Server . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.3. Session-Sender . . . . . . . . . . . . . . . . . . . . . 45 6.3. Session-Sender . . . . . . . . . . . . . . . . . . . . . 45
6.4. Session-Reflector . . . . . . . . . . . . . . . . . . . . 46 6.4. Session-Reflector . . . . . . . . . . . . . . . . . . . . 46
7. Security Considerations . . . . . . . . . . . . . . . . . . . 47 7. Security Considerations . . . . . . . . . . . . . . . . . . . 47
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 48 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 48
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 48 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 48
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 48 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 48
10.1. Normative References . . . . . . . . . . . . . . . . . . 48 10.1. Normative References . . . . . . . . . . . . . . . . . . 48
10.2. Informative References . . . . . . . . . . . . . . . . . 49 10.2. Informative References . . . . . . . . . . . . . . . . . 49
Appendix A. Detailed Data Model Examples . . . . . . . . . . . . 50 Appendix A. Detailed Data Model Examples . . . . . . . . . . . . 50
A.1. Control-Client . . . . . . . . . . . . . . . . . . . . . 50 A.1. Control-Client . . . . . . . . . . . . . . . . . . . . . 51
A.2. Server . . . . . . . . . . . . . . . . . . . . . . . . . 51 A.2. Server . . . . . . . . . . . . . . . . . . . . . . . . . 52
A.3. Session-Sender . . . . . . . . . . . . . . . . . . . . . 52 A.3. Session-Sender . . . . . . . . . . . . . . . . . . . . . 53
A.4. Session-Reflector . . . . . . . . . . . . . . . . . . . . 54 A.4. Session-Reflector . . . . . . . . . . . . . . . . . . . . 54
Appendix B. TWAMP Operational Commands . . . . . . . . . . . . . 55 Appendix B. TWAMP Operational Commands . . . . . . . . . . . . . 55
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 55 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 55
1. Introduction 1. Introduction
The Two-Way Active Measurement Protocol (TWAMP) [RFC5357] is used to The Two-Way Active Measurement Protocol (TWAMP) [RFC5357] is used to
measure network performance parameters such as latency, bandwidth, measure network performance parameters such as latency, bandwidth,
and packet loss by sending probe packets and measuring their and packet loss by sending probe packets and measuring their
experience in the network. To date, TWAMP implementations do not experience in the network. To date, TWAMP implementations do not
skipping to change at page 8, line 45 skipping to change at page 8, line 45
+-------------+ 1 | repeat | +-------------+ 1 | repeat |
| pm-reg-list |------<>| repeat-interval | | pm-reg-list |------<>| repeat-interval |
+-------------+ | test-session-state {ro} | +-------------+ | test-session-state {ro} |
| pm-index | | sid {ro} | | pm-index | | sid {ro} |
+-------------+ +-------------------------+ +-------------+ +-------------------------+
Figure 3: TWAMP Control-Client UML class diagram Figure 3: TWAMP Control-Client UML class diagram
The twamp-client container includes an administrative parameter The twamp-client container includes an administrative parameter
(client-admin-state) that controls whether the device is allowed to (client-admin-state) that controls whether the device is allowed to
initiate TWAMP control and test sessions. initiate TWAMP control sessions.
The twamp-client container holds a list (mode-preference-chain) which The twamp-client container holds a list (mode-preference-chain) which
specifies the preferred Mode values according to their preferred specifies the preferred Mode values according to their preferred
order of use, including the authentication and encryption Modes. order of use, including the authentication and encryption Modes.
Specifically, mode-preference-chain lists each priority (expressed as Specifically, mode-preference-chain lists each priority (expressed as
a 16-bit unsigned integer, where zero is the highest priority and a 16-bit unsigned integer, where zero is the highest priority and
subsequent values monotonically increasing) with their corresponding subsequent values monotonically increasing) with their corresponding
mode (expressed as a 32-bit Hexadecimal value). Depending on the mode (expressed as a 32-bit Hexadecimal value). Depending on the
Modes available in the Server Greeting, the Control-Client MUST Modes available in the Server Greeting, the Control-Client MUST
choose the highest priority Mode from the configured mode-preference- choose the highest priority Mode from the configured mode-preference-
skipping to change at page 12, line 18 skipping to change at page 12, line 18
sender-udp-port sender-udp-port
The UDP port number that is to be used by the Session-Sender The UDP port number that is to be used by the Session-Sender
for this TWAMP-Test session. A value of zero indicates that for this TWAMP-Test session. A value of zero indicates that
the Control-Client SHALL auto-allocate a UDP port number for the Control-Client SHALL auto-allocate a UDP port number for
this TWAMP-Test session. The configured (or auto-allocated) this TWAMP-Test session. The configured (or auto-allocated)
value is advertized in the Sender Port field of the Request- value is advertized in the Sender Port field of the Request-
TW-session message (see also Section 3.5 of [RFC5357]). Note TW-session message (see also Section 3.5 of [RFC5357]). Note
that in the scenario where a device auto-allocates a UDP port that in the scenario where a device auto-allocates a UDP port
number for a session, and the repeat parameter for that number for a session, and the repeat parameter for that
session is true, the device is free to auto-allocate a session indicates that it should be repeated, the device is
different UDP port number when it negotiates the next free to auto-allocate a different UDP port number when it
(repeated) iteration of this session. negotiates the next (repeated) iteration of this session.
reflector-ip reflector-ip
The IP address belonging to the remote Session-Reflector The IP address belonging to the remote Session-Reflector
device to which the TWAMP-Test session will be initiated. device to which the TWAMP-Test session will be initiated.
This value will be used to populate the receiver address This value will be used to populate the receiver address
field of the Request-TW-Session message. This item is field of the Request-TW-Session message. This item is
mandatory. mandatory.
reflector-udp-port reflector-udp-port
This parameter defines the UDP port number that will be used This parameter defines the UDP port number that will be used
skipping to change at page 13, line 28 skipping to change at page 13, line 28
Test session is to be run repeatedly. Once a test session Test session is to be run repeatedly. Once a test session
has completed, the repeat parameter is checked. If the value has completed, the repeat parameter is checked. If the value
indicates that this test session is to run again, then the indicates that this test session is to run again, then the
parent TWAMP-Control connection for this test session is parent TWAMP-Control connection for this test session is
restarted - and negotiates a new instance of this TWAMP-Test restarted - and negotiates a new instance of this TWAMP-Test
session. This may occur immediately after the test session session. This may occur immediately after the test session
completes (if the repeat-interval is set to 0). Otherwise, completes (if the repeat-interval is set to 0). Otherwise,
the Control-Client will wait for the number of minutes the Control-Client will wait for the number of minutes
specified in the repeat-interval parameter before negotiating specified in the repeat-interval parameter before negotiating
the new instance of this TWAMP-Test session. The default the new instance of this TWAMP-Test session. The default
value of repeat is False, indicating that once the session value of repeat is 0, indicating that once the session has
has completed, it will not be renegotiated and restarted. completed, it will not be renegotiated and restarted.
pm-reg-list pm-reg-list
A list of one or more Performance Metric Registry Index A list of one or more Performance Metric Registry Index
values (see [I-D.ietf-ippm-metric-registry], which values (see [I-D.ietf-ippm-metric-registry], which
communicate packet stream characteristics and one or more communicate packet stream characteristics and one or more
metrics to be measured. All members of the pm-reg-list MUST metrics to be measured. All members of the pm-reg-list MUST
have the same stream characteristics, such that they combine have the same stream characteristics, such that they combine
to specify all metrics that shall be measured on a single to specify all metrics that shall be measured on a single
stream. stream.
skipping to change at page 15, line 28 skipping to change at page 15, line 28
as we explain later in this section. as we explain later in this section.
The twamp-server container items are as follows: The twamp-server container items are as follows:
server-admin-state server-admin-state
This administrative parameter controls whether the device is This administrative parameter controls whether the device is
allowed to operate as a TWAMP Server. As defined in allowed to operate as a TWAMP Server. As defined in
[RFC5357] the roles of Server and Session-Reflector can be [RFC5357] the roles of Server and Session-Reflector can be
played by the same host; recall Figure 2. For a host played by the same host; recall Figure 2. For a host
operating in this manner, this parameter controls whether the operating in this manner, this parameter controls whether the
device is allowed to respond to TWAMP control and test device is allowed to respond to TWAMP control sessions.
sessions.
server-tcp-port server-tcp-port
This parameter defines the well known TCP port number that is This parameter defines the well known TCP port number that is
used by TWAMP-Control. The Server will listen on this port used by TWAMP-Control. The Server will listen on this port
number for incoming TWAMP-Control connections. Although this number for incoming TWAMP-Control connections. Although this
is defined as a fixed value (862) in [RFC5357], there are is defined as a fixed value (862) in [RFC5357], there are
several realizations of TWAMP in the field that were several realizations of TWAMP in the field that were
implemented before this well-known port number was allocated. implemented before this well-known port number was allocated.
These early implementations allowed the port number to be These early implementations allowed the port number to be
configured. This parameter is therefore provided for configured. This parameter is therefore provided for
skipping to change at page 18, line 33 skipping to change at page 18, line 33
A random sequence of octets generated by the Server. As A random sequence of octets generated by the Server. As
described in Section 4.1 challenge is used by the Control- described in Section 4.1 challenge is used by the Control-
Client to prove possession of a shared secret. Client to prove possession of a shared secret.
4.3. Session-Sender 4.3. Session-Sender
The twamp-session-sender container, illustrated in Figure 5, holds The twamp-session-sender container, illustrated in Figure 5, holds
items that are related to the configuration of the TWAMP Session- items that are related to the configuration of the TWAMP Session-
Sender logical entity. Sender logical entity.
There are no global configuration items that apply to the Session- The twamp-session-sender container includes an administrative
Sender entity as a whole. parameter (session-sender-admin-state) that controls whether the
device is allowed to initiate TWAMP test sessions.
There is one instance of twamp-sender-test-session for each TWAMP- There is one instance of twamp-sender-test-session for each TWAMP-
Test session for which packets are being sent. Test session for which packets are being sent.
+----------------------+ +----------------------------+
| twamp-session-sender | | twamp-session-sender |
+----------------------+ 0..* +---------------------------+ +----------------------------+ 0..* +---------------------------+
| |<>-----| twamp-sender-test-session | | session-sender-admin-state |<>-----| twamp-sender-test-session |
+----------------------+ +---------------------------+ +----------------------------+ +---------------------------+
| test-session-name | | test-session-name |
| ctrl-connection-name {ro} | | ctrl-connection-name {ro} |
| fill-mode | | fill-mode |
| number-of-packets | | number-of-packets |
| sender-session-state {ro} | | sender-session-state {ro} |
| sent-packets {ro} | | sent-packets {ro} |
| rcv-packets {ro} | | rcv-packets {ro} |
| last-sent-seq {ro} | | last-sent-seq {ro} |
| last-rcv-seq {ro} | | last-rcv-seq {ro} |
+---------------------------+ +---------------------------+
^ ^
V V
| 1 | 1
+---------------------+ +---------------------+
| packet-distribution | | packet-distribution |
+---------------------+ +---------------------+
| periodic / poisson | | periodic / poisson |
+---------------------+ +---------------------+
| | | |
+-------------------------+ | +-------------------------+ |
| periodic-interval | | | periodic-interval | |
| periodic-interval-units | | | periodic-interval-units | |
+-------------------------+ | +-------------------------+ |
+------------------------+ +------------------------+
| lambda | | lambda |
| lambda-units | | lambda-units |
| max-interval | | max-interval |
| truncation-point-units | | truncation-point-units |
+------------------------+ +------------------------+
Figure 5: TWAMP Session-Sender UML class diagram Figure 5: TWAMP Session-Sender UML class diagram
The twamp-sender-test-session container items are: The twamp-sender-test-session container items are:
test-session-name test-session-name
A unique name for this TWAMP-Test session to be used for A unique name for this TWAMP-Test session to be used for
identifying this test session by the Session-Sender logical identifying this test session by the Session-Sender logical
entity. entity.
skipping to change at page 21, line 35 skipping to change at page 21, line 35
items that are related to the configuration of the TWAMP Session- items that are related to the configuration of the TWAMP Session-
Reflector logical entity. Reflector logical entity.
A device operating in the Session-Reflector role cannot configure A device operating in the Session-Reflector role cannot configure
attributes on a per-session basis, as it has no foreknowledge of what attributes on a per-session basis, as it has no foreknowledge of what
incoming sessions it will receive. As such, any parameter that the incoming sessions it will receive. As such, any parameter that the
Session-Reflector might want to apply to an incoming TWAMP-Test Session-Reflector might want to apply to an incoming TWAMP-Test
session must be configured at the overall Session-Reflector level, session must be configured at the overall Session-Reflector level,
and will then be applied to all incoming sessions. and will then be applied to all incoming sessions.
Each incoming TWAMP-Test session that is active on the Session- The twamp-session-sender container includes an administrative
Reflector will be represented by an instance of a twamp-reflector- parameter (session-reflector-admin-state) that controls whether the
test-session object. All items in the twamp-reflector-test-session device is allowed to respond to incoming TWAMP test sessions. Each
object are read-only. incoming TWAMP-Test session that is active on the Session-Reflector
will be represented by an instance of a twamp-reflector-test-session
object. All items in the twamp-reflector-test-session object are
read-only.
+-------------------------+ +----=--------------------------+
| twamp-session-reflector | | twamp-session-reflector |
+-------------------------+ +-------------------------------+
| refwait | | session-reflector-admin-state |
+-------------------------+ | refwait |
^ +-------------------------------+
V ^
| V
| 0..* |
| 0..*
+----------------------------------------+ +----------------------------------------+
| twamp-reflector-test-session | | twamp-reflector-test-session |
+----------------------------------------+ +----------------------------------------+
| sid {ro} | | sid {ro} |
| sender-ip {ro} | | sender-ip {ro} |
| sender-udp-port {ro} | | sender-udp-port {ro} |
| reflector-ip {ro} | | reflector-ip {ro} |
| reflector-udp-port {ro} | | reflector-udp-port {ro} |
| parent-connection-client-ip {ro} | | parent-connection-client-ip {ro} |
| parent-connection-client-tcp-port {ro} | | parent-connection-client-tcp-port {ro} |
skipping to change at page 25, line 50 skipping to change at page 25, line 50
| +--rw twamp-session-request* [test-session-name] | +--rw twamp-session-request* [test-session-name]
| +--rw test-session-name string | +--rw test-session-name string
| +--rw sender-ip? inet:ip-address | +--rw sender-ip? inet:ip-address
| +--rw sender-udp-port? inet:port-number | +--rw sender-udp-port? inet:port-number
| +--rw reflector-ip inet:ip-address | +--rw reflector-ip inet:ip-address
| +--rw reflector-udp-port? inet:port-number | +--rw reflector-udp-port? inet:port-number
| +--rw timeout? uint64 | +--rw timeout? uint64
| +--rw padding-length? uint32 | +--rw padding-length? uint32
| +--rw dscp? inet:dscp | +--rw dscp? inet:dscp
| +--rw start-time? uint64 | +--rw start-time? uint64
| +--rw repeat? boolean | +--rw repeat? uint32
| +--rw repeat-interval? uint32 | +--rw repeat-interval? uint32
| +--rw pm-reg-list* [pm-index] | +--rw pm-reg-list* [pm-index]
| | +--rw pm-index uint16 | | +--rw pm-index uint16
| +--ro test-session-state? test-session-state | +--ro test-session-state? test-session-state
| +--ro sid? string | +--ro sid? string
+--rw twamp-server! {server}? +--rw twamp-server! {server}?
| +--rw server-admin-state boolean | +--rw server-admin-state boolean
| +--rw server-tcp-port? inet:port-number | +--rw server-tcp-port? inet:port-number
| +--rw servwait? uint32 | +--rw servwait? uint32
| +--rw dscp? inet:dscp | +--rw dscp? inet:dscp
skipping to change at page 26, line 36 skipping to change at page 26, line 36
server-ctrl-connection-state server-ctrl-connection-state
| +--ro dscp? inet:dscp | +--ro dscp? inet:dscp
| +--ro selected-mode? mode | +--ro selected-mode? mode
| +--ro key-id? string | +--ro key-id? string
| +--ro count? uint32 | +--ro count? uint32
| +--ro max-count? uint32 | +--ro max-count? uint32
| +--ro salt? binary | +--ro salt? binary
| +--ro server-iv? binary | +--ro server-iv? binary
| +--ro challenge? binary | +--ro challenge? binary
+--rw twamp-session-sender {session-sender}? +--rw twamp-session-sender {session-sender}?
| +--rw session-sender-admin-state boolean
| +--rw twamp-sender-test-session* [test-session-name] | +--rw twamp-sender-test-session* [test-session-name]
| +--rw test-session-name string | +--rw test-session-name string
| +--ro ctrl-connection-name? string | +--ro ctrl-connection-name? string
| +--rw fill-mode? fill-mode | +--rw fill-mode? fill-mode
| +--rw number-of-packets? uint32 | +--rw number-of-packets? uint32
| +--rw (packet-distribution)? | +--rw (packet-distribution)?
| | +--:(periodic) | | +--:(periodic)
| | | +--rw periodic-interval? uint32 | | | +--rw periodic-interval? uint32
| | | +--rw periodic-interval-units? units | | | +--rw periodic-interval-units? units
| | +--:(poisson) | | +--:(poisson)
| | +--rw lambda? uint32 | | +--rw lambda? uint32
| | +--rw lambda-units? uint32 | | +--rw lambda-units? uint32
| | +--rw max-interval? uint32 | | +--rw max-interval? uint32
| | +--rw truncation-point-units? units | | +--rw truncation-point-units? units
| +--ro sender-session-state? sender-session-state | +--ro sender-session-state? sender-session-state
| +--ro sent-packets? uint32 | +--ro sent-packets? uint32
| +--ro rcv-packets? uint32 | +--ro rcv-packets? uint32
| +--ro last-sent-seq? uint32 | +--ro last-sent-seq? uint32
| +--ro last-rcv-seq? uint32 | +--ro last-rcv-seq? uint32
+--rw twamp-session-reflector {session-reflector}? +--rw twamp-session-reflector {session-reflector}?
+--rw session-reflector-admin-state boolean
+--rw refwait? uint32 +--rw refwait? uint32
+--ro twamp-reflector-test-session* \ +--ro twamp-reflector-test-session* \
[sender-ip sender-udp-port \ [sender-ip sender-udp-port \
reflector-ip reflector-udp-port] reflector-ip reflector-udp-port]
+--ro sid? string +--ro sid? string
+--ro sender-ip inet:ip-address +--ro sender-ip inet:ip-address
+--ro sender-udp-port inet:port-number +--ro sender-udp-port inet:port-number
+--ro reflector-ip inet:ip-address +--ro reflector-ip inet:ip-address
+--ro reflector-udp-port inet:port-number +--ro reflector-udp-port inet:port-number
+--ro parent-connection-client-ip? inet:ip-address +--ro parent-connection-client-ip? inet:ip-address
skipping to change at page 27, line 32 skipping to change at page 27, line 34
+--ro sent-packets? uint32 +--ro sent-packets? uint32
+--ro rcv-packets? uint32 +--ro rcv-packets? uint32
+--ro last-sent-seq? uint32 +--ro last-sent-seq? uint32
+--ro last-rcv-seq? uint32 +--ro last-rcv-seq? uint32
5.2. YANG Module 5.2. YANG Module
This section presents the YANG module for the TWAMP data model This section presents the YANG module for the TWAMP data model
defined in this document. defined in this document.
<CODE BEGINS> file "ietf-twamp@2015-06-30.yang" <CODE BEGINS> file "ietf-twamp@2015-10-19.yang"
module ietf-twamp { module ietf-twamp {
namespace "urn:ietf:params:xml:ns:yang:ietf-twamp"; namespace "urn:ietf:params:xml:ns:yang:ietf-twamp";
//namespace need to be assigned by IANA //namespace need to be assigned by IANA
prefix "ietf-twamp"; prefix "ietf-twamp";
import ietf-inet-types { import ietf-inet-types {
prefix inet; prefix inet;
} }
organization "IETF IPPM (IP Performance Metrics) Working Group"; organization "IETF IPPM (IP Performance Metrics) Working Group";
contact "draft-cmzrjp-ippm-twamp-yang@tools.ietf.org"; contact "draft-cmzrjp-ippm-twamp-yang@tools.ietf.org";
description "TWAMP Data Model"; description "TWAMP Data Model";
revision "2015-06-30" { revision "2015-10-19" {
description "01 version. RFC5357, RFC5618, RFC5938 and RFC6038 description "01 version. RFC5357, RFC5618, RFC5938 and RFC6038
is covered. draft-ietf-ippm-metric-registry is also considered"; is covered. draft-ietf-ippm-metric-registry is also considered";
reference "draft-cmzrjp-ippm-twamp-yang"; reference "draft-cmzrjp-ippm-twamp-yang";
} }
feature control-client { feature control-client {
description "This feature relates to the device functions as description "This feature relates to the device functions as
the TWAMP Control-Client."; the TWAMP Control-Client.";
} }
skipping to change at page 32, line 5 skipping to change at page 32, line 7
container twamp { container twamp {
description "Top level container"; description "Top level container";
container twamp-client { container twamp-client {
if-feature control-client; if-feature control-client;
presence "twamp-client"; presence "twamp-client";
description "Twamp client container"; description "Twamp client container";
leaf client-admin-state { leaf client-admin-state {
type boolean; type boolean;
mandatory "true"; mandatory "true";
description "Indicates whether this device is allowed to run description "Indicates whether this device is allowed to run
TWAMP to initiate control/test sessions"; TWAMP to initiate control sessions";
} }
list mode-preference-chain { list mode-preference-chain {
key "priority"; key "priority";
unique "mode"; unique "mode";
leaf priority { leaf priority {
type uint16; type uint16;
description "priority"; description "priority";
} }
leaf mode { leaf mode {
skipping to change at page 35, line 41 skipping to change at page 35, line 43
type uint64; type uint64;
default "0"; default "0";
description "Time when the session is to be started description "Time when the session is to be started
(but not before the Start-Sessions command is issued). (but not before the Start-Sessions command is issued).
This value is placed in the Start Time field of the This value is placed in the Start Time field of the
Request-TW-Session message. The default value of 0 Request-TW-Session message. The default value of 0
indicates that the session will be started as soon indicates that the session will be started as soon
as the Start-Sessions message is received."; as the Start-Sessions message is received.";
} }
leaf repeat { leaf repeat {
type boolean; type uint32;
default "false"; default "0";
description "If the test session is to be run repeatedly. description "Determines if the test session is to be
The default value of repeat is False, indicating that run repeatedly. The default value of repeat is 0,
once the session has completed, it will not be indicating that once the session has completed, it
renegotiated and restarted"; will not be renegotiated and restarted";
} }
leaf repeat-interval { leaf repeat-interval {
when "../repeat='true'" { when "../repeat!='0'" {
description "When repeat is true"; description "When repeat is not 0, the test is to be
repeated";
} }
type uint32; type uint32;
description "Repeat interval (in minutes)"; description "Repeat interval (in minutes)";
} }
list pm-reg-list { list pm-reg-list {
key "pm-index"; key "pm-index";
leaf pm-index { leaf pm-index {
type uint16; type uint16;
description "One or more Numerical index values of a description "One or more Numerical index values of a
skipping to change at page 36, line 42 skipping to change at page 36, line 45
} }
container twamp-server{ container twamp-server{
if-feature server; if-feature server;
presence "twamp-server"; presence "twamp-server";
description "Twamp sever container"; description "Twamp sever container";
leaf server-admin-state{ leaf server-admin-state{
type boolean; type boolean;
mandatory "true"; mandatory "true";
description "Indicates whether this device is allowed to run description "Indicates whether this device is allowed to run
TWAMP to respond to control/test sessions"; TWAMP to respond to control sessions";
} }
leaf server-tcp-port { leaf server-tcp-port {
type inet:port-number; type inet:port-number;
default "862"; default "862";
description "This parameter defines the well known TCP port description "This parameter defines the well known TCP port
number that is used by TWAMP."; number that is used by TWAMP.";
} }
leaf servwait { leaf servwait {
type uint32 { type uint32 {
range 1..604800; range 1..604800;
} }
default 900; default 900;
description "SERVWAIT (TWAMP Control (TCP) session timeout), description "SERVWAIT (TWAMP Control (TCP) session timeout),
default value is 900"; default value is 900";
} }
leaf dscp { leaf dscp {
skipping to change at page 39, line 7 skipping to change at page 39, line 9
length "1..80"; length "1..80";
} }
description "The key-id value that is in use by this description "The key-id value that is in use by this
control connection."; control connection.";
} }
leaf count { leaf count {
type uint32 { type uint32 {
range 1024..4294967295; range 1024..4294967295;
} }
description "The count value that is in use by this control description "The count value that is in use by this control
connection. This will usually be the same value as is connection. This will usually be the same value as is
configured under twamp-server. However, in the event that configured under twamp-server. However, in the event that
the user re-configured twamp-server:count after this the user re-configured twamp-server:count after this
control connection is already in progress, this read-only control connection is already in progress, this read-only
value will show the different count that is in use for value will show the different count that is in use for
this control connection."; this control connection.";
} }
leaf max-count { leaf max-count {
type uint32 { type uint32 {
range 1024..4294967295; range 1024..4294967295;
} }
description "The max-count value that is in use by this description "The max-count value that is in use by this
control connection. This will usually be the same value control connection. This will usually be the same value
as is configured under twamp-server. However, in the as is configured under twamp-server. However, in the
event that the user re-configured twamp-server:max-count event that the user re-configured twamp-server:max-count
after this control connection is already in progress, after this control connection is already in progress,
this read-only value will show the different max-count this read-only value will show the different max-count
that is in use for this control connection."; that is in use for this control connection.";
} }
leaf salt{ leaf salt{
type binary { type binary {
length "16"; length "16";
} }
description "Salt MUST be generated pseudo-randomly"; description "Salt MUST be generated pseudo-randomly";
} }
leaf server-iv { leaf server-iv {
type binary { type binary {
length "16"; length "16";
skipping to change at page 40, line 4 skipping to change at page 40, line 6
} }
description "Challenge is a random sequence of octets description "Challenge is a random sequence of octets
generated by the Server"; generated by the Server";
} }
} }
} }
container twamp-session-sender{ container twamp-session-sender{
if-feature session-sender; if-feature session-sender;
description "Twamp session sender container"; description "Twamp session sender container";
leaf session-sender-admin-state {
type boolean;
mandatory "true";
description "Indicates whether this device is allowed to run
TWAMP to initiate test sessions";
}
list twamp-sender-test-session{ list twamp-sender-test-session{
key "test-session-name"; key "test-session-name";
description "Twamp sender test sessions"; description "Twamp sender test sessions";
leaf test-session-name { leaf test-session-name {
type string; type string;
description "A unique name for this test session to be description "A unique name for this test session to be
used as a key for this test session by the Session-Sender used as a key for this test session by the Session-Sender
logical entity."; logical entity.";
} }
leaf ctrl-connection-name { leaf ctrl-connection-name {
skipping to change at page 40, line 47 skipping to change at page 41, line 7
} }
leaf periodic-interval-units { leaf periodic-interval-units {
type units; type units;
description "Periodic interval units"; description "Periodic interval units";
} }
} }
case poisson { case poisson {
leaf lambda{ leaf lambda{
type uint32; type uint32;
description "The average rate of description "The average rate of
packet transmission."; packet transmission.";
} }
leaf lambda-units{ leaf lambda-units{
type uint32; type uint32;
description "Lambda units."; description "Lambda units.";
} }
leaf max-interval{ leaf max-interval{
type uint32; type uint32;
description "maximum time between packet description "maximum time between packet
transmissions."; transmissions.";
} }
leaf truncation-point-units{ leaf truncation-point-units{
type units; type units;
description "Truncation point units"; description "Truncation point units";
} }
skipping to change at page 41, line 29 skipping to change at page 41, line 36
config "false"; config "false";
description "Sender session state."; description "Sender session state.";
} }
uses maintenance-statistics; uses maintenance-statistics;
} }
} }
container twamp-session-reflector { container twamp-session-reflector {
if-feature session-reflector; if-feature session-reflector;
description "Twamp session reflector container"; description "Twamp session reflector container";
leaf session-reflector-admin-state {
type boolean;
mandatory "true";
description "Indicates whether this device is allowed to run
TWAMP to respond to test sessions";
}
leaf refwait { leaf refwait {
type uint32 { type uint32 {
range 1..604800; range 1..604800;
} }
default 900; default 900;
description "REFWAIT (TWAMP test session timeout), description "REFWAIT (TWAMP test session timeout),
the default value is 900"; the default value is 900";
} }
list twamp-reflector-test-session { list twamp-reflector-test-session {
skipping to change at page 48, line 48 skipping to change at page 48, line 48
European Community under the Seventh Framework Program (grant European Community under the Seventh Framework Program (grant
agreement no. 619609). The views expressed here are those of the agreement no. 619609). The views expressed here are those of the
authors only. The European Commission is not liable for any use that authors only. The European Commission is not liable for any use that
may be made of the information in this document. may be made of the information in this document.
10. References 10. References
10.1. Normative References 10.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997. Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC3432] Raisanen, V., Grotefeld, G., and A. Morton, "Network [RFC3432] Raisanen, V., Grotefeld, G., and A. Morton, "Network
performance measurement with periodic streams", RFC 3432, performance measurement with periodic streams", RFC 3432,
November 2002. DOI 10.17487/RFC3432, November 2002,
<http://www.rfc-editor.org/info/rfc3432>.
[RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, [RFC3688] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688,
January 2004. DOI 10.17487/RFC3688, January 2004,
<http://www.rfc-editor.org/info/rfc3688>.
[RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. [RFC4656] Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M.
Zekauskas, "A One-way Active Measurement Protocol Zekauskas, "A One-way Active Measurement Protocol
(OWAMP)", RFC 4656, September 2006. (OWAMP)", RFC 4656, DOI 10.17487/RFC4656, September 2006,
<http://www.rfc-editor.org/info/rfc4656>.
[RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. [RFC5357] Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J.
Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)",
RFC 5357, October 2008. RFC 5357, DOI 10.17487/RFC5357, October 2008,
<http://www.rfc-editor.org/info/rfc5357>.
[RFC6020] Bjorklund, M., "YANG - A Data Modeling Language for the [RFC6020] Bjorklund, M., Ed., "YANG - A Data Modeling Language for
Network Configuration Protocol (NETCONF)", RFC 6020, the Network Configuration Protocol (NETCONF)", RFC 6020,
October 2010. DOI 10.17487/RFC6020, October 2010,
<http://www.rfc-editor.org/info/rfc6020>.
[RFC6038] Morton, A. and L. Ciavattone, "Two-Way Active Measurement [RFC6038] Morton, A. and L. Ciavattone, "Two-Way Active Measurement
Protocol (TWAMP) Reflect Octets and Symmetrical Size Protocol (TWAMP) Reflect Octets and Symmetrical Size
Features", RFC 6038, October 2010. Features", RFC 6038, DOI 10.17487/RFC6038, October 2010,
<http://www.rfc-editor.org/info/rfc6038>.
10.2. Informative References 10.2. Informative References
[I-D.ietf-ippm-metric-registry] [I-D.ietf-ippm-metric-registry]
Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A. Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A.
Akhter, "Registry for Performance Metrics", draft-ietf- Akhter, "Registry for Performance Metrics", draft-ietf-
ippm-metric-registry-02 (work in progress), February 2015. ippm-metric-registry-05 (work in progress), October 2015.
[I-D.ietf-netconf-restconf] [I-D.ietf-netconf-restconf]
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF
Protocol", draft-ietf-netconf-restconf-06 (work in Protocol", draft-ietf-netconf-restconf-08 (work in
progress), June 2015. progress), October 2015.
[I-D.unify-nfvrg-challenges] [I-D.unify-nfvrg-challenges]
Szabo, R., Csaszar, A., Pentikousis, K., Kind, M., Daino, Szabo, R., Csaszar, A., Pentikousis, K., Kind, M., Daino,
D., Qiang, Z., and H. Woesner, "Unifying Carrier and Cloud D., Qiang, Z., and H. Woesner, "Unifying Carrier and Cloud
Networks: Problem Statement and Challenges", draft-unify- Networks: Problem Statement and Challenges", draft-unify-
nfvrg-challenges-01 (work in progress), March 2015. nfvrg-challenges-02 (work in progress), July 2015.
[I-D.unify-nfvrg-devops] [I-D.unify-nfvrg-devops]
Meirosu, C., Manzalini, A., Kim, J., Steinert, R., Sharma, Meirosu, C., Manzalini, A., Steinert, R., Marchetto, G.,
S., Marchetto, G., and I. Papafili, "DevOps for Software- Papafili, I., Pentikousis, K., and S. Wright, "DevOps for
Defined Telecom Infrastructures", draft-unify-nfvrg- Software-Defined Telecom Infrastructures", draft-unify-
devops-01 (work in progress), February 2015. nfvrg-devops-03 (work in progress), October 2015.
[NSC] John, W., Pentikousis, K., et al., "Research directions in [NSC] John, W., Pentikousis, K., et al., "Research directions in
network service chaining", Proc. SDN for Future Networks network service chaining", Proc. SDN for Future Networks
and Services (SDN4FNS), Trento, Italy IEEE, November 2013. and Services (SDN4FNS), Trento, Italy IEEE, November 2013.
[RFC2898] Kaliski, B., "PKCS #5: Password-Based Cryptography [RFC2898] Kaliski, B., "PKCS #5: Password-Based Cryptography
Specification Version 2.0", RFC 2898, September 2000. Specification Version 2.0", RFC 2898,
DOI 10.17487/RFC2898, September 2000,
<http://www.rfc-editor.org/info/rfc2898>.
[RFC4086] Eastlake, D., Schiller, J., and S. Crocker, "Randomness [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker,
Requirements for Security", BCP 106, RFC 4086, June 2005. "Randomness Requirements for Security", BCP 106, RFC 4086,
DOI 10.17487/RFC4086, June 2005,
<http://www.rfc-editor.org/info/rfc4086>.
[RFC5618] Morton, A. and K. Hedayat, "Mixed Security Mode for the [RFC5618] Morton, A. and K. Hedayat, "Mixed Security Mode for the
Two-Way Active Measurement Protocol (TWAMP)", RFC 5618, Two-Way Active Measurement Protocol (TWAMP)", RFC 5618,
August 2009. DOI 10.17487/RFC5618, August 2009,
<http://www.rfc-editor.org/info/rfc5618>.
[RFC5938] Morton, A. and M. Chiba, "Individual Session Control [RFC5938] Morton, A. and M. Chiba, "Individual Session Control
Feature for the Two-Way Active Measurement Protocol Feature for the Two-Way Active Measurement Protocol
(TWAMP)", RFC 5938, August 2010. (TWAMP)", RFC 5938, DOI 10.17487/RFC5938, August 2010,
<http://www.rfc-editor.org/info/rfc5938>.
[RFC6241] Enns, R., Bjorklund, M., Schoenwaelder, J., and A. [RFC6241] Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed.,
Bierman, "Network Configuration Protocol (NETCONF)", RFC and A. Bierman, Ed., "Network Configuration Protocol
6241, June 2011. (NETCONF)", RFC 6241, DOI 10.17487/RFC6241, June 2011,
<http://www.rfc-editor.org/info/rfc6241>.
[RFC7426] Haleplidis, E., Pentikousis, K., Denazis, S., Hadi Salim, [RFC7426] Haleplidis, E., Ed., Pentikousis, K., Ed., Denazis, S.,
J., Meyer, D., and O. Koufopavlou, "Software-Defined Hadi Salim, J., Meyer, D., and O. Koufopavlou, "Software-
Networking (SDN): Layers and Architecture Terminology", Defined Networking (SDN): Layers and Architecture
RFC 7426, January 2015. Terminology", RFC 7426, DOI 10.17487/RFC7426, January
2015, <http://www.rfc-editor.org/info/rfc7426>.
Appendix A. Detailed Data Model Examples Appendix A. Detailed Data Model Examples
This appendix extends the example presented in Section 6 by This appendix extends the example presented in Section 6 by
configuring more fields such as authentication parameters, dscp configuring more fields such as authentication parameters, dscp
values and so on. values and so on.
A.1. Control-Client A.1. Control-Client
<twamp xmlns="urn:ietf:params:xml:ns:yang:ietf-twamp"> <twamp xmlns="urn:ietf:params:xml:ns:yang:ietf-twamp">
 End of changes. 47 change blocks. 
121 lines changed or deleted 156 lines changed or added

This html diff was produced by rfcdiff 1.48. The latest version is available from http://tools.ietf.org/tools/rfcdiff/