draft-ietf-ippm-twamp-value-added-octets-01.txt   draft-ietf-ippm-twamp-value-added-octets-02.txt 
Network Working Group S. Baillargeon Network Working Group S. Baillargeon
INTERNET-DRAFT C. Flinta INTERNET-DRAFT C. Flinta
Intended Status: Informational A. Johnsson Intended Status: Informational A. Johnsson
Expires: September 27, 2012 S. Ekelin Expires: October 6, 2012 S. Ekelin
Ericsson Ericsson
March 26, 2012 April 4, 2012
TWAMP Value-Added Octets Ericsson TWAMP Value-Added Octets
draft-ietf-ippm-twamp-value-added-octets-01.txt draft-ietf-ippm-twamp-value-added-octets-02.txt
Abstract Abstract
This memo describes an extension to the TWAMP test protocol for This memo describes an extension to the TWAMP test protocol for
identifying and managing packet trains, which enables measuring identifying and managing packet trains, which enables measuring
capacity metrics like the available path capacity, tight section capacity metrics like the available path capacity, tight section
capacity and UDP delivery rate in the forward and reverse path capacity and UDP delivery rate in the forward and reverse path
directions. directions.
This memo is the product of a working prototype. It does not This memo contains the description of a working prototype. It does
represent a consensus of the IETF community. The IETF community is not represent a consensus of the IETF community. The IETF community
currently working on the problem statement and has not reached is currently working on the problem statement and has not reached
consensus on the preferred method for measuring capacity metrics. consensus on the preferred method for measuring capacity metrics.
Status of this Memo Status of this Memo
This Internet-Draft is submitted in full conformance with the This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79. provisions of BCP 78 and BCP 79.
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 September 27, 2012. This Internet-Draft will expire on October 6, 2012.
Copyright and License Notice Copyright and License Notice
Copyright (c) 2012 IETF Trust and the persons identified as the Copyright (c) 2012 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 3, line 11 skipping to change at page 3, line 11
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1 Requirements Language . . . . . . . . . . . . . . . . . . . 4 1.1 Requirements Language . . . . . . . . . . . . . . . . . . . 4
2 Purpose and scope . . . . . . . . . . . . . . . . . . . . . . . 4 2 Purpose and scope . . . . . . . . . . . . . . . . . . . . . . . 4
3 Capacity Measurement Principles . . . . . . . . . . . . . . . . 5 3 Capacity Measurement Principles . . . . . . . . . . . . . . . . 5
4 TWAMP Control Extensions . . . . . . . . . . . . . . . . . . . . 6 4 TWAMP Control Extensions . . . . . . . . . . . . . . . . . . . . 7
5 Extended TWAMP Test . . . . . . . . . . . . . . . . . . . . . . 7 5 Extended TWAMP Test . . . . . . . . . . . . . . . . . . . . . . 7
5.1 Sender Behavior . . . . . . . . . . . . . . . . . . . . . . 7 5.1 Sender Behavior . . . . . . . . . . . . . . . . . . . . . . 8
5.1.1 Packet Timings . . . . . . . . . . . . . . . . . . . . 7 5.1.1 Packet Timings . . . . . . . . . . . . . . . . . . . . 8
5.1.2 Session-Sender Packet Format . . . . . . . . . . . . . 7 5.1.2 Session-Sender Packet Format . . . . . . . . . . . . . 8
5.2 Reflector behavior . . . . . . . . . . . . . . . . . . . 12 5.2 Reflector behavior . . . . . . . . . . . . . . . . . . . 12
5.2.1 Session-Reflector Packet Format . . . . . . . . . . 13 5.2.1 Session-Reflector Packet Format . . . . . . . . . . 14
5.3 Additional Considerations . . . . . . . . . . . . . . . . 14 5.3 Additional Considerations . . . . . . . . . . . . . . . . 14
6 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . 14 6 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . 14
7 Security Considerations . . . . . . . . . . . . . . . . . . . 14 7 Security Considerations . . . . . . . . . . . . . . . . . . . 15
8 References . . . . . . . . . . . . . . . . . . . . . . . . . . 15 8 References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
8.1 Normative References . . . . . . . . . . . . . . . . . . 15 8.1 Normative References . . . . . . . . . . . . . . . . . . 15
8.2 Informative References . . . . . . . . . . . . . . . . . 15 8.2 Informative References . . . . . . . . . . . . . . . . . 16
Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . 16 Author's Addresses . . . . . . . . . . . . . . . . . . . . . . . 16
1 Introduction 1 Introduction
The notion of embedding a number of meaningful fields in the padding The notion of embedding a number of meaningful fields in the padding
octets has been established as a viable methodology for carrying octets has been established as a viable methodology for carrying
additional information within the TWAMP-Test protocol running between additional information within the TWAMP-Test protocol running between
a Session-Sender and a Session-Reflector [RFC5357] [RFC6038]. a Session-Sender and a Session-Reflector [RFC5357] [RFC6038].
This memo describes an optional extension to the Two-Way Active This memo describes an optional extension to the Two-Way Active
Measurement Protocol [RFC5357]. It is called the Value-Added Octets Measurement Protocol [RFC5357]. It is called the Ericsson TWAMP
feature. Value-Added Octets feature. This memo defines version 1.
This feature enables the controller host to measure capacity metrics This feature enables the controller host to measure capacity metrics
like the IP-type-P available path capacity (APC) [RFC5136], IP-layer like the IP-type-P available path capacity (APC) [RFC5136], IP-layer
tight section capacity (TSC) [Y1540] and UDP delivery rate (e.g. as tight section capacity (TSC) [Y1540] and UDP delivery rate on both
defined in [RFC1242]) on both forward and reverse paths using a forward and reverse paths using a single TWAMP test session. The
single TWAMP test session with symmetrical or asymmetrical test actual method to calculate the APC, TSC or the UDP delivery rate from
packet sizes. The actual method to calculate the APC, TSC or the UDP packet-level data performance data is not discussed in this memo.
delivery rate from packet-level data performance data is not
discussed in this memo.
The Valued-Added Octets feature consists of new behaviors for the The Valued-Added Octets feature consists of new behaviors for the
Session-Sender and Session-Reflector, and a set of value-added octets Session-Sender and Session-Reflector, and a set of value-added octets
of information that are placed at the beginning of the Packet Padding of information that are placed at the beginning of the Packet Padding
field [RFC5357] or at the beginning of the Packet Padding (to be field [RFC5357] or at the beginning of the Packet Padding (to be
reflected) field [RFC6038] by the Session-Sender, and are reflected reflected) field [RFC6038] by the Session-Sender, and are reflected
or returned by the Session-Reflector. The length of the value-added or returned by the Session-Reflector. The length of the value-added
octets (version 1) is 14 octets. octets in version 1 is 10 octets.
This memo is the product of a working prototype. It does not This memo contains the description of a working prototype. It does
represent a consensus of the IETF community. The IETF community is not represent a consensus of the IETF community. The IETF community
currently working on the problem statement and has not reached is currently working on the problem statement and has not reached
consensus on the preferred method for measuring capacity metrics. consensus on the preferred method for measuring capacity metrics.
1.1 Requirements Language 1.1 Requirements Language
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [RFC2119]. document are to be interpreted as described in RFC 2119 [RFC2119].
2 Purpose and scope 2 Purpose and scope
The purpose of this memo is to describe the Valued-Added Octets The purpose of this memo is to describe the Ericsson Valued-Added
feature for TWAMP [RFC5357]. Octets feature (version 1) for TWAMP [RFC5357].
The scope of the memo is limited to specifications of the following The scope of the memo is limited to specifications of the following
enhancements: enhancements:
o The definition of a structure for embedding a sequence of o The definition of a structure for embedding a sequence of
value-added fields at the beginning of the Packet Padding field value-added fields at the beginning of the Packet Padding field
[RFC5037] or Packet Padding (to be reflected) field [RFC6038] [RFC5037] or Packet Padding (to be reflected) field [RFC6038]
in the TWAMP test packets and, in the TWAMP test packets and,
o The definition of new Session-Sender and Session-Reflector o The definition of new Session-Sender and Session-Reflector
behaviors behaviors
The motivation for this feature is to enable the measurements of The motivation for this feature is to enable the measurements of
capacity metrics on both the forward and reverse paths with capacity metrics on both the forward and reverse paths using a single
symmetrical or asymmetrical test packet sizes. TWAMP test session. Multiple TWAMP test sessions between a controller
and a responder with different DSCPs may also be used to evaluate the
QoS impacts on the capacity metrics.
This memo does not extend the modes of operation through assignment This memo does not extend the standard modes of operation through
of a new value in the Modes field (see Section 3.1 of [RFC4656] for assignment of a new value in the Modes field (see Section 3.1 of
the format of the Server Greeting message). However a new mode is [RFC4656] for the format of the Server Greeting message). A new mode
required to communicate feature capability and use in an is recommended to communicate feature capability during control
interoperable manner. For instance, when the Server and Control- connection setup.
Client have agreed to use the Value-Added Octets Version 1 mode
during control connection setup, then the Control-Client, the Server, This memo assumes the TWAMP responder is configured through non-
the Session-Sender, and the Session-Reflector must all conform to the standard means to interpret the value-added padding octets embedded
in each TWAMP test packet. Bootstrapping such behavior MAY be
achieved using one of the following methods:
o Configuration provided through the management interface
o Assignment of a proprietary TWAMP mode communicated during
TWAMP control connection setup
The Value-Added Octets Version 1 mode is intended to work with any
TWAMP modes. When the Server and Control-Client are configured or
have agreed to use the Value-Added Octets Version 1 mode during
control connection setup, then the Control-Client, the Server, the
Session-Sender, and the Session-Reflector must all conform to the
requirements of that mode, as identified below. requirements of that mode, as identified below.
The packet padding octets are designed to retain backward The packet padding octets are designed to retain backward
compatibility with the original TWAMP test protocol [RFC5357]. compatibility with the original TWAMP test protocol [RFC5357].
3 Capacity Measurement Principles 3 Capacity Measurement Principles
Most capacity estimation methods for APC [RRBNC][PDM][ENHJMMB][SBW] Most capacity estimation methods for APC [RRBNC][PDM][ENHJMMB][SBW]
and for UDP delivery rate need to send and receive packets in groups, and for UDP delivery rate need to send and receive packets in groups,
called packet trains or simply trains. Each train is sent at a called packet trains or simply trains. Each train is sent at a
skipping to change at page 6, line 19 skipping to change at page 6, line 27
| Packet 1 | | Packet 2 | | Packet 3 | | Packet 1 | | Packet 2 | | Packet 3 |
+------------+ +------------+ +------------+ +------------+ +------------+ +------------+
| | | | | |
|<--------------------->|<--------------------->| |<--------------------->|<--------------------->|
packet interval 1 packet interval 2 packet interval 1 packet interval 2
The test packet size and interval between consecutive packets for The test packet size and interval between consecutive packets for
each train sent by the Session-Sender and reflected by the Session- each train sent by the Session-Sender and reflected by the Session-
Reflector MUST be calculated and determined by the controller or an Reflector MUST be calculated and determined by the controller or an
application or entity communicating with the controller. The packet application or entity communicating with the controller. The packet
size and interval MAY vary within a train, between trains and MAY size and interval MAY vary within a train and/or between trains.
also be different depending on forward or reverse transmission Determination of the packet size and interval is implementation-
direction. Determination of the packet size and interval is specific.
implementation-specific.
The transmission time tt to send one packet (i.e. determined by the The transmission time tt to send one packet (i.e. determined by the
interface speed and the IP packet size) is also shown in the picture. interface speed and the IP packet size) is also shown in the picture.
Observe that the packet interval MUST be larger than or equal to tt. Observe that the packet interval MUST be larger than or equal to tt.
At the Session-Reflector, each received test packet within a forward At the Session-Reflector, each received test packet within a forward
train is time stamped. This provides a second set of packet interval train is time stamped. This provides a second set of packet interval
values. Methods for measuring the APC, TSC and UDP delivery rate use values. Methods for measuring the APC, TSC and UDP delivery rate use
the packet intervals obtained from both end points in the estimation the packet intervals obtained from both end points in the estimation
process. The method to measuring the UDP delivery rate may also process. The method to measuring the UDP delivery rate may also
require the packet loss at the receiving end. The estimation process require the packet loss. The estimation process itself as well as any
itself as well as any requirements on software or hardware is requirements on software or hardware is implementation-specific.
implementation-specific.
The second measurement principle is referred to as self-induced The second measurement principle is referred to as self-induced
congestion. According to this principle, in order to measure APC, TSC congestion. According to this principle, in order to measure APC, TSC
and UDP delivery rate, some trains MUST cause momentary congestion on and UDP delivery rate, some trains MUST cause momentary congestion on
the network path. In essence this means that some trains MUST be sent the network path. In essence this means that some trains MUST be sent
at a higher rate than what is available on the network path. at a higher rate than what is available on the network path.
In order to fulfill the above measurement principles and to measure In order to fulfill the above measurement principles and to measure
the APC, TSC and UDP delivery rate in the reverse direction, the test the APC, TSC and UDP delivery rate in the reverse direction, the test
packets at the Session-Reflector MUST be re-grouped into trains and packets at the Session-Reflector MUST be re-grouped into trains and
skipping to change at page 7, line 4 skipping to change at page 7, line 9
the network path. In essence this means that some trains MUST be sent the network path. In essence this means that some trains MUST be sent
at a higher rate than what is available on the network path. at a higher rate than what is available on the network path.
In order to fulfill the above measurement principles and to measure In order to fulfill the above measurement principles and to measure
the APC, TSC and UDP delivery rate in the reverse direction, the test the APC, TSC and UDP delivery rate in the reverse direction, the test
packets at the Session-Reflector MUST be re-grouped into trains and packets at the Session-Reflector MUST be re-grouped into trains and
then transmitted back to the Session-Sender with a provided packet then transmitted back to the Session-Sender with a provided packet
interval. interval.
4 TWAMP Control Extensions 4 TWAMP Control Extensions
TWAMP-Control protocol [RFC5357] uses the Modes field to identify and TWAMP-Control protocol [RFC5357] uses the Modes field to identify and
select specific communication capabilities, and this field is a select specific communication capabilities, and this field is a
recognized extension mechanism. recognized extension mechanism.
TWAMP connection establishment follows the procedure defined in TWAMP connection establishment follows the procedure defined in
Section 3.1 of [RFC4656] and Section 3.1 of [RFC5357]. For Section 3.1 of [RFC4656] and Section 3.1 of [RFC5357]. For
interoperability, the Value-added octet feature require one new bit interoperability, the Value-added octet feature require one new bit
position (and value) to identify the ability of the Server/Session- position (and value) to identify the ability of the Server/Session-
Reflector to read and act upon the new fields in the value-added Reflector to read and act upon the new fields in the value-added
octets. Such bit position (and value) is not defined in this memo. octets. Such bit position (and value) is not defined in this memo. A
proprietary value MAY be used.
Both the Reflect Octets mode and Symmetrical Size mode MAY be Both the Reflect Octets mode and Symmetrical Size mode MAY be
selected to ensure the reflection of the value-added padding octets selected to ensure the reflection of the value-added padding octets
by the Session-Reflector and symmetrical size TWAMP-Test packets in by the Session-Reflector and symmetrical size TWAMP-Test packets in
the forward and reverse directions of transmission. the forward and reverse directions of transmission.
5 Extended TWAMP Test 5 Extended TWAMP Test
The forward and reverse APC, TSC and UDP delivery rate measurement The forward and reverse APC, TSC and UDP delivery rate measurement
characteristics depend on the size and packet intervals of the test characteristics depend on the size and packet intervals of the test
packets. This memo allows variable packet sizes and packet intervals packets. This memo allows variable packet sizes and packet intervals
between trains in different transmission directions, trains in the between trains and even between packets in the same train. The
same transmission direction and even between packets in the same functionality is described below.
train. The functionality is described below.
The TWAMP-test protocol carrying the value-added padding octets is The TWAMP-test protocol carrying the value-added padding octets is
identical to TWAMP [RFC5357] except for the definition of first 14 identical to TWAMP [RFC5357] except for the definition of first 10
octets in Packet Padding that the Session-Sender expects to be octets in Packet Padding that the Session-Sender expects to be
reflected. The new octets define fields for Value-Added Octets reflected. The new octets define fields for Value-Added Octets
Version, Flags, Last Sequence Number in Train, Desired Reverse Packet Version, Flags, Last Sequence Number in Train and Desired Reverse
Interval and Desired Reverse Padding Length. Each of these fields are Packet Interval. Each of these fields are described in detail below.
described in detail below.
The Session-Sender and Session-Reflector behaviors are also modified. The Session-Sender and Session-Reflector behaviors are also modified.
5.1 Sender Behavior 5.1 Sender Behavior
This section describes the extensions to the behavior of the TWAMP This section describes the extensions to the behavior of the TWAMP
Session-Sender. Session-Sender.
5.1.1 Packet Timings 5.1.1 Packet Timings
skipping to change at page 8, line 4 skipping to change at page 8, line 16
This section describes the extensions to the behavior of the TWAMP This section describes the extensions to the behavior of the TWAMP
Session-Sender. Session-Sender.
5.1.1 Packet Timings 5.1.1 Packet Timings
The Send Schedule is not utilized in TWAMP and this is unchanged in The Send Schedule is not utilized in TWAMP and this is unchanged in
this memo. this memo.
5.1.2 Session-Sender Packet Format 5.1.2 Session-Sender Packet Format
The Session-Sender packet format follows the same procedure and The Session-Sender packet format follows the same procedure and
guidelines as defined in TWAMP [RFC5357] and TWAMP Reflect Octets and guidelines as defined in TWAMP [RFC5357] and TWAMP Reflect Octets and
Symmetrical Size Features [RFC6038]. Symmetrical Size Features [RFC6038].
This feature allows the Session-Sender to set the first few octets in This feature allows the Session-Sender to set the first few octets in
the TWAMP-Test Packet Padding field with information to communicate the TWAMP-Test Packet Padding field with information to communicate
value-added padding version number, flag bits, sequence number of the value-added padding version number, flag bits, sequence number of the
last packet in a train, desired reverse packet interval (or per- last packet in a train and desired reverse packet interval (or per-
packet waiting time) and desired reverse padding length for the packet waiting time) for the reverse path direction of transmission.
reverse path direction of transmission.
A version number and a sequence of flag bits are defined at the very A version number and a sequence of flag bits are defined at the very
beginning of the value-added padding octets. The version number beginning of the value-added padding octets. The version number
identifies the version of the value-added padding octets and meaning identifies the version of the value-added padding octets and meaning
of the flag bits and corresponding fields. Each flag bit indicates if of the flag bits and corresponding fields. Each flag bit indicates if
a specific field is used in the valued-added padding octets. The a specific field is used in the valued-added padding octets. The
version number and flag bits provide an effective method for version number and flag bits provide an effective method for
extracting information at Session-Reflector and Session-Sender. This extracting information at Session-Reflector and Session-Sender. This
document defines version 1 with three flag bits: L, I and P. document defines version 1 with two flag bits: L and I.
The format of the test packet depends on the TWAMP mode and flag bits The format of the test packet depends on the TWAMP modes. The Value-
being used. The Value-Added Octets Version 1 mode is intended to work Added Octets Version 1 mode is intended to work with any TWAMP
with any TWAMP modes. modes.
The Session-Sender SHALL use the following TWAMP test packet format The Session-Sender SHALL use the following TWAMP test packet format
when the Value-Added Octets Version 1 is selected in conjunction with when the Value-Added Octets version 1 is selected in conjunction with
the unauthenticated mode: the Unauthenticated mode:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number | | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Timestamp | | Timestamp |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Estimate | Ver |L|I|P| Reserved | | Error Estimate | Ver |L|I| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Last Seqno In Train | | Last Seqno In Train |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Desired Reverse Packet Interval | | Desired Reverse Packet Interval |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Desired Reverse Padding Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-|
| Additional Packet Padding | | Additional Packet Padding |
. . . .
. . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The Session-Sender SHALL use the following TWAMP test packet format The Session-Sender SHALL use the following TWAMP test packet format
when the Value-Added Octets Version 1 is selected in conjunction with when the Value-Added Octets Version 1 is selected in conjunction with
the unauthenticated mode, Symmetrical Size mode and Reflect Octets the Unauthenticated mode, Symmetrical Size mode and Reflect Octets
mode: mode:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number | | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Timestamp | | Timestamp |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Estimate | | | Error Estimate | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| | | |
| MBZ (27 octets) | | MBZ (27 octets) |
| | | |
| | | |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Ver |L|I|P| Reserved | Last... | | | Ver |L|I| Reserved | Last... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Seqno in Train | Desired... | | Seqno in Train | Desired... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reverse Packet Interval | Desired... | | Reverse Packet Interval | Additional... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reverse Padding Length | | | Packet Padding |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| Additional Packet Padding |
. . . .
. . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The Session-Sender SHALL use the following TWAMP test packet format The Session-Sender SHALL use the following TWAMP test packet format
when the Value-Added Octets Version 1 is selected in conjunction with when the Value-Added Octets Version 1 is selected in conjunction with
the unauthenticated mode, Symmetrical Size mode and Reflect Octets the Unauthenticated mode, Symmetrical Size mode and Reflect Octets
mode with a non-zero value in the Server octets field: mode with a non-zero value in the Server Octets field:
0 1 2 3 0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Sequence Number | | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Timestamp | | Timestamp |
| | | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Error Estimate | | | Error Estimate | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| | | |
| | | |
| MBZ (27 octets) | | MBZ (27 octets) |
| | | |
| | | |
| | | |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Server octets | Ver |L|I|P| | | | Server Octets | Ver |L|I| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved | Last Seqno in Train | | Reserved | Last Seqno in Train |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Desired Reverse Packet Interval | | | Desired Reverse Packet Interval |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Desired Reverse Padding Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | Additional Packet Padding | | | Additional Packet Padding |
+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| | | |
. . . .
. . . .
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
In the mode using Reflect Octets illustrated above, the value-added In the mode using Reflect Octets illustrated above, the value-added
padding octets are embedded in the Packet Padding (to be reflected) padding octets are embedded in the Packet Padding (to be reflected)
field. field.
The Version (Ver) field MUST be encoded in the first 4 bits. It The Version (Ver) field MUST be encoded in the first 4 bits. It
identifies the version number of the value-added padding octets and identifies the version number of the value-added padding octets and
meaning of the flag bits and the corresponding fields. This memo meaning of the flag bits and the corresponding fields. This memo
defines version 1. When the Value-Added Octets Version 1 mode is defines version 1 with two flag bits: L and I. When the Value-Added
selected, the Session-Sender MUST set the Ver field to 1. Octets Version 1 mode is selected, the Session-Sender MUST set the
Ver field to 1.
The 3 bits after the Version field are used for flags: L, I and P. The 2 bits after the Version field are used for flags: L and I.
The Last Seqno in Train bit (L) is the first flag. When the Value- The Last Seqno in Train bit (L) is the first flag. When the Value-
Added Octets Version 1 mode is selected, the Session-Sender MAY set Added Octets Version 1 mode is selected, the Session-Sender MAY set
the Last Seqno in Train bit L to 1. the Last Seqno in Train bit L to 1.
The Desired Reverse Packet Interval bit (I) is the second flag. When The Desired Reverse Packet Interval bit (I) is the second flag. When
the Value-Added Octets Version 1 mode is selected, the Session-Sender the Value-Added Octets Version 1 mode is selected, the Session-Sender
MAY set the Desired Reverse Packet Interval bit I to 1. MAY set the Desired Reverse Packet Interval bit I to 1.
The Desired Reverse Padding Length bit (P) is the third flag. When The Reserved field is reserved for future use. All 10 bits of the
the Value-Added Octets Version 1 mode is selected, the Session-Sender
MAY set the Desired Reverse Padding Length bit P to 1.
The Reserved field is reserved for future use. All 9 bits of the
Reserved field MUST be transmitted as zero by the Session-Sender. Reserved field MUST be transmitted as zero by the Session-Sender.
If the Last Seqno in Train bit is set to 1, then the Last Seqno in If the Last Seqno in Train bit is set to 1, then the Last Seqno in
Train field MUST contain an unsigned 32 bit integer generated by the Train field MUST contain an unsigned 32 bit integer generated by the
Session-Sender. It MUST indicate the expected sequence number of the Session-Sender. It MUST indicate the expected sequence number of the
last packet in the train. It SHOULD be used by the Session-Sender and last packet in the train. It SHOULD be used by the Session-Sender and
Session-reflector to identify the train a test packet belongs to. The Session-reflector to identify the train a test packet belongs to. The
packets belonging to a train are determined by observing the test packets belonging to a train are determined by observing the test
packet sequence number in relation to the Last Seqno for a train. The packet sequence number in relation to the Last Seqno for a train. The
Last Seqno in Train MUST be higher or equal to the sequence number of Last Seqno in Train MUST be higher or equal to the sequence number of
skipping to change at page 11, line 48 skipping to change at page 12, line 43
integer generated by the Session-Sender. It MUST indicate the desired integer generated by the Session-Sender. It MUST indicate the desired
packet interval (or the waiting time) that the Session-Reflector packet interval (or the waiting time) that the Session-Reflector
SHOULD use when transmitting the reflected test packets towards the SHOULD use when transmitting the reflected test packets towards the
Session-Sender. The value 0 means the The Session-Reflector SHOULD Session-Sender. The value 0 means the The Session-Reflector SHOULD
return the test packet to the Session-Sender as quickly as possible. return the test packet to the Session-Sender as quickly as possible.
The format of this field MUST be a fractional part of a second as The format of this field MUST be a fractional part of a second as
defined in OWAMP [RFC4656]. If I bit is set to 0, the Session-Sender defined in OWAMP [RFC4656]. If I bit is set to 0, the Session-Sender
shall set all the bits in the Desired Reverse Packet Interval field shall set all the bits in the Desired Reverse Packet Interval field
to zero. to zero.
If the Desired Reverse Padding Length bit is set to 1, then the
Desired Reverse Padding Length field MUST contain an unsigned 32 bit
integer generated by the Session-Sender. It MUST specify the number
of padding octets that the Session-Reflector will append to the
TWAMP-Test packet to be reflected. The Desired Reverse Padding Length
includes the Value-added octets. If P bit is set to 0, the Session-
Sender shall set all the bits in the Desired Reverse Padding Length
field to zero.
The values of the above fields are usually provided by a measurement The values of the above fields are usually provided by a measurement
method, tool or algorithm. This measurement algorithm is outside the method, tool or algorithm. This measurement algorithm is outside the
scope of this specification. scope of this specification.
5.2 Reflector behavior 5.2 Reflector behavior
The TWAMP Session-Reflector follows the procedures and guidelines in The TWAMP Session-Reflector follows the procedures and guidelines in
Section 4.2 of [RFC5357], with some changes and additional functions. Section 4.2 of [RFC5357], with some changes and additional functions.
When the Value-Added Octets Version 1 is selected, the behavior of When the Value-Added Octets Version 1 is selected, the behavior of
the Session-Reflector SHALL be as follows: the Session-Reflector SHALL be as follows:
o The Session-Reflector MUST read the Version field. If Ver = 1, o The Session-Reflector MUST read the Version field. If Ver = 1,
the Session-Reflector MUST read the L, I and P flag bits. the Session-Reflector MUST read the L and I flag bits.
o If L=1 and I=1, the Session-Reflector MUST read and extract the o If L=1 and I=1, the Session-Reflector MUST read and extract the
information from the Last Seqno in Train field and the Desired information from the Last Seqno in Train field and the Desired
Reverse Packet Interval field in the value-added padding Reverse Packet Interval field in the value-added padding
octets. octets.
- The Last Seqno in Train field MUST be compared to Sequence - The Last Seqno in Train field MUST be compared to Sequence
number in the same packet in order to determine when a number in the same packet in order to determine when a
complete train has been collected. The Session-Reflector complete train has been collected. The Session-Reflector
SHOULD buffer the packets belonging to the current train (or SHOULD buffer the packets belonging to the current train (or
store the packet-level performance data). After the last store the packet-level performance data). After the last
packet of the train has been received, the Session-Reflector packet of the train has been received, the Session-Reflector
SHOULD transmit the packets belonging to a reverse train SHOULD transmit the packets belonging to a reverse train
with a waiting time (packet interval) for each packet with a waiting time (packet interval) for each packet
indicated in the Desired Reverse Packet Interval field. If indicated in the Desired Reverse Packet Interval field. If
the Desired Reverse Packet Interval field is set to zero, the Desired Reverse Packet Interval field is set to zero,
then the Session-Reflector SHOULD transmit the packets as then the Session-Reflector SHOULD transmit the packet as
quickly as possible. The last packet within a train has quickly as possible. The last packet within a train has
Sender Sequence Number = Last Seqno in Train. Sender Sequence Number = Last Seqno in Train.
- The Last Seqno in Train of a packet MUST also be compared to - The Last Seqno in Train of a packet MUST also be compared to
the Last Seqno in Train of the previous packet in order to the Last Seqno in Train of the previous packet in order to
determine if a new train needs to be collected. In case of determine if a new train needs to be collected. In case of
packet loss, the Session-Reflector MUST transmit the packet loss, the Session-Reflector MUST transmit the
incomplete train when it receives a packet with a Last SeqNo incomplete train when it receives a packet with a Last SeqNo
in Train belonging to the another train (e.g. next train) of in Train belonging to the another train (e.g. next train) of
the test session, or after a timeout. The timeout MAY be the the test session, or after a timeout. The timeout MAY be the
skipping to change at page 13, line 20 skipping to change at page 14, line 5
MUST not reorder the test packets if they happen to arrive MUST not reorder the test packets if they happen to arrive
out-of-sequence. out-of-sequence.
- Duplicate packets within a train MUST be buffered at the - Duplicate packets within a train MUST be buffered at the
Session-Reflector if the train is not yet transmitted to the Session-Reflector if the train is not yet transmitted to the
Session-Sender. If the train is already transmitted, the Session-Sender. If the train is already transmitted, the
duplicate test packet SHOULD be returned to the Session- duplicate test packet SHOULD be returned to the Session-
Sender as quickly as possible. The Session-Reflector MUST Sender as quickly as possible. The Session-Reflector MUST
not discard duplicate test packets. not discard duplicate test packets.
o If P=1, the Session-Reflector MUST read and extract the For any other combinations of the Version field and the L and I
information from the Desired Reverse Padding Length field in flags, the Session-Reflector SHOULD return the test packet to the
the value-added padding octets. Session-Sender as quickly as possible.
- The Session-Reflector SHOULD transmit the packet with the
Desired Reverse Padding Length. If Symmetrical-Size mode is
used the Desired Reverse Padding Length must be ignored by
the Session-Reflector. The actual reflected packet size MUST
be large enough to contain all data required to be reflected
according to selected modes. If the Desired Reverse Padding
Length is larger than the Session-Reflector MTU, the MTU
MUST be used.
The Session-Reflector MUST implement the changes described above when The Session-Reflector MUST implement the changes described above when
the Value-Added Octets Version 1 mode is selected. the Value-Added Octets Version 1 mode is selected.
5.2.1 Session-Reflector Packet Format 5.2.1 Session-Reflector Packet Format
The Session-Reflector packet format follows the same procedure and The Session-Reflector packet format follows the same procedure and
guidelines as defined in TWAMP [RFC5357] and TWAMP Reflect Octets and guidelines as defined in TWAMP [RFC5357] and TWAMP Reflect Octets and
Symmetrical Size Features [RFC6038], with the following changes: Symmetrical Size Features [RFC6038], with the following changes:
o The Session-Reflector MUST re-use (reflect) the value-added o The Session-Reflector MUST re-use (reflect) the value-added
padding octets (14 octets) provided in the Sender's Packet padding octets (10 octets) provided in the Sender's Packet
Padding. Padding.
o The Session-Reflector MAY re-use the rest of the padding octets o The Session-Reflector MAY re-use the rest of the padding octets
in the Sender's Packet Padding. in the Sender's Packet Padding.
The truncation process [RFC5357] is recommended when the Desired The truncation process [RFC5357] is recommended when the Symmetrical
Reverse Padding Length (P) bit is 0 and the Symmetrical mode is not mode is not used. The Session-Reflector MUST truncate exactly 27
used. The Session-Reflector MUST truncate exactly 27 octets of octets of padding in Unauthenticated mode,and exactly 56 octets in
padding in Unauthenticated mode,and exactly 56 octets in
Authenticated and Encrypted modes. Authenticated and Encrypted modes.
5.3 Additional Considerations 5.3 Additional Considerations
Capacity measurements introduce an additional consideration when the Capacity measurements introduce an additional consideration when the
test sessions operate in TWAMP Light. When the Session-Reflector does test sessions operate in TWAMP Light. When the Session-Reflector does
not have knowledge of the session state, the measurement system will not have knowledge of the session state, the measurement system may
only be capable to estimate or calculate the capacity metrics in the be restricted to estimate or calculate the capacity metrics in the
forward path direction of transmission. Capacity measurements in the forward path direction of transmission only. Capacity measurements in
reverse path direction requires the Session-Reflector to have the reverse path direction is best handled with a Session-Reflector
knowledge of the session state and be capable to identify the test supporting knowledge of the session state and being capable to
packets belonging to a specific test session. The method for creating identify the test packets belonging to a specific test session. A
a session state from the initial test packets on the TWAMP Light method for creating a session state from the initial test packet may
Session-Reflector is outside the scope of this specification. be implemented on the TWAMP Light Session-Reflector. This is outside
the scope of this specification.
6 Experiments 6 Experiments
This memo describes the protocol used in the current working This memo describes the protocol used in the current working
prototype implementation of the Value-added octets feature in the prototype implementation of the Value-Added Octets feature in the
Ericsson lab. The prototype has been tested in real network Ericsson lab. The prototype has been tested in real network
environments. The conclusion from these tests is that the Value-added environments. The conclusion from these tests is that the Value-Added
octets feature is able to enable estimation of metrics such as Octets feature is able to enable estimation of capacity metrics such
available path capacity in both the forward and reverse direction of as available path capacity in both the forward and reverse direction
the network path. of the network path.
During the experiments with the protocol described in this memo we During the experiments with the protocol described in this memo we
have identified a need for the controller and responder to use the have identified a need for the controller and responder to use the
same maximum train length. The reflector must be able to buffer the same maximum train length. The reflector must be able to buffer the
whole trains received from the controller. In order to reduce the whole trains received from the controller. In order to reduce the
risk for buffer overrun the maximum train length may be negotiated. risk for buffer overrun the maximum train length should be
This can be resolved by a new field in the Value-added octets or with negotiated. This can be resolved through configuration, introduction
a new Request-Session message with a maximum train length field. of new field in the value-added octets or with a new maximum train
length field in the Request-TW-Session message.
The Sender Discriminator (SD) field that is defined in the first
draft has been removed because of complications with different
Session-Reflector implementations. A Session-Reflector may not be
able to easily identify the SD field or associate it with a specific
Session-Sender which may skew the test results.
The flags defined in the value-added octets now indicate the usage of
fields and not the presence of fields. This modification was needed
to simplify the responder implementation in the working prototype.
7 Security Considerations 7 Security Considerations
The value-added padding octets permit DoS attacks on the responder The value-added padding octets permit DoS attacks on the responder
host communicating with core TWAMP [RFC5357]. The responder host MUST host communicating with core TWAMP [RFC5357]. The responder host MUST
provide a mechanism to protect or limit the use of its local memory, provide a mechanism to protect or limit the use of its local memory,
buffer space or maximum transmission time for a train. buffer space or maximum transmission time for a train.
The security considerations that apply to any active measurement of The security considerations that apply to any active measurement of
live networks are relevant here as well. See [RFC4656] and [RFC5357]. live networks are relevant here as well. See [RFC4656] and [RFC5357].
 End of changes. 52 change blocks. 
130 lines changed or deleted 125 lines changed or added

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