RFC 5938

Individual Session Control Feature for the Two-Way Active Measurement Protocol (TWAMP)

๐Ÿ“… published August 2010, from ietf

RFC 5938: Individual Session Control Feature for TWAMP ๐Ÿฆ‹

Part 1 of 4, more coming bestie ๐Ÿ’–

Okay, paperwork first ๐Ÿ“‹โœจ This one is from the IETF, written by A. Morton (AT&T Labs) and M. Chiba (Cisco Systems). It's a Standards Track document, published in August 2010, with ISSN 2070-1721. It updates RFC 5357 and doesn't obsolete anything ๐Ÿ’…

Abstract โœจ

The IETF is done with the core spec for TWAMP, the Two-Way Active Measurement Protocol ๐ŸŽ€ This memo adds an OPTIONAL feature that lets the controlling host start and stop one or more individual test sessions by using their Session Identifiers. The base TWAMP behaviour is that every test session that was requested and accepted has to start and stop at the same time. That's the part this feature shakes up ๐Ÿ”ฅ

Status of This Memo

This is an Internet Standards Track document ๐ŸŒธ

It's a product of the Internet Engineering Task Force (IETF), which means it represents the consensus of the IETF community. It went through public review and got the green light from the Internet Engineering Steering Group (IESG). If you want more on Internet Standards, check out Section 2 of RFC 5741 ๐Ÿ“š

For the current status, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc5938 ๐Ÿ”—

Copyright (c) 2010 IETF Trust and the persons identified as the document authors. All rights reserved ๐Ÿ’œ

This document is covered by BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://trustee.ietf.org/license-info) as they stand on the publication date. Please read those carefully, because they spell out your rights and restrictions for this document. Any Code Components pulled out of this document must include the Simplified BSD License text described in Section 4.e of the Trust Legal Provisions, and they come with no warranty, as the Simplified BSD License describes.

This document may include material from IETF Documents or IETF Contributions that were published or made publicly available before November 10, 2008. Some of that material's copyright holders may not have given the IETF Trust permission to allow modifications outside the IETF Standards Process. Unless you get a proper license from those copyright holders, this document may not be modified outside the IETF Standards Process, and derivative works may not be created outside it. The exceptions are formatting it for publication as an RFC and translating it into languages other than English ๐Ÿซถ

Table of Contents

1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  3
  1.1.  Requirements Language  . . . . . . . . . . . . . . . . . .  4
2.  Purpose and Scope  . . . . . . . . . . . . . . . . . . . . . .  4
3.  TWAMP Control Extensions . . . . . . . . . . . . . . . . . . .  4
  3.1.  Connection Setup with Individual Session Control . . . . .  5
  3.2.  Start-N-Sessions Command with Individual Session
        Control  . . . . . . . . . . . . . . . . . . . . . . . . .  6
  3.3.  Start-N-Ack Command with Individual Session Control  . . .  7
  3.4.  Stop-N-Sessions Command with Individual Session Control  .  9
  3.5.  Stop-N-Ack Command with Individual Session Control . . . . 10
  3.6.  SERVWAIT Timeout Operation . . . . . . . . . . . . . . . . 12
  3.7.  Additional Considerations  . . . . . . . . . . . . . . . . 12
4.  TWAMP Test with Individual Session Control . . . . . . . . . . 13
  4.1.  Sender Behavior  . . . . . . . . . . . . . . . . . . . . . 13
  4.2.  Reflector Behavior . . . . . . . . . . . . . . . . . . . . 13
5.  Security Considerations  . . . . . . . . . . . . . . . . . . . 14
6.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 14
  6.1.  Registry Specification . . . . . . . . . . . . . . . . . . 14
  6.2.  Registry Management  . . . . . . . . . . . . . . . . . . . 14
  6.3.  Experimental Numbers . . . . . . . . . . . . . . . . . . . 15
  6.4.  Registry Contents  . . . . . . . . . . . . . . . . . . . . 15
7.  Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 16
8.  References . . . . . . . . . . . . . . . . . . . . . . . . . . 16
  8.1.  Normative References . . . . . . . . . . . . . . . . . . . 16
  8.2.  Informative References . . . . . . . . . . . . . . . . . . 16

1. Introduction โœจ

The IETF has finished the core TWAMP spec, the Two-Way Active Measurement Protocol [RFC5357] ๐Ÿฆ‹ TWAMP is an extension of the One-way Active Measurement Protocol, OWAMP [RFC4656]. The TWAMP spec got lots of review as it got close to done, and the feedback turned into several recommendations for new features. There are a growing number of TWAMP implementations out there now, and widespread use is expected. There are even devices built to check whether implementations comply with the protocol ๐Ÿค“

This memo describes an OPTIONAL feature for TWAMP. In [RFC5357], TWAMP (and OWAMP) start every previously requested and accepted test session all at once. This feature lets the Control-Client control individual test sessions based on their Session Identifier (SID) ๐ŸŽฏ It makes it possible for a short-duration TWAMP test to start (and/or stop) in the middle of a longer test. For example, a specific diagnostic test can kick off if the intermediate results show the test is warranted ๐Ÿ‘€

This feature needs a bit position assigned in the Modes field, and it uses two new TWAMP command numbers for the augmented Start and Stop commands. It also brings in a new Stop-N-ACK Server response. That completes the symmetry of the session-stopping process, the same way the Start-ACK (Start-N-ACK when used with this feature) response does for starting ๐Ÿ’œ

The Individual Session Control feature gives the Control-Client a lot of new flexibility to manage any number of test sessions once they're established. Here's the catch, though: [RFC5357] sets up test sessions in serial order, so the total setup time grows with the number of sessions and the round-trip time ๐Ÿ˜ญ That's why implementers of this feature may also want to implement the "Reflect Octets" feature, described in [REFLECT]. That feature lets a Control-Client tell parallel Request-TW-Session commands apart, because a participating Server can send back octets (for example, the Control-Client's local index) in its reply to the request. So the Reflect Octets feature supports quick setup of many simultaneous test sessions, which the Individual Session Control feature can then start and stop ๐Ÿš€

This memo is an update to the TWAMP core protocol specified in [RFC5357]. Measurement systems are not required to implement the feature in this memo in order to claim compliance with [RFC5357] ๐ŸŒˆ

Across this memo, the bits marked MBZ (Must Be Zero) MUST be set to zero by senders and MUST be ignored by receivers. Also, the HMAC (Hashed Message Authentication Code) MUST be calculated as defined in Section 3.2 of [RFC4656] ๐Ÿงš

1.1. Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119] ๐Ÿ“–

2. Purpose and Scope ๐ŸŽ€

The whole point of this memo is to describe an extra OPTIONAL function and feature for TWAMP [RFC5357] ๐Ÿ’–

The scope is limited to these features:

  1. extending the modes of operation by assigning a new value in the Modes field, so entities can communicate the feature's capability and use,
  2. defining augmented start session and stop session commands (with their matching acknowledgements), and
  3. defining the related procedures for TWAMP entities.

The motivation is being able to start and stop individual test sessions whenever you want, all over one TWAMP-Control connection ๐Ÿฆ‹

When the Server and Control-Client agree to use the Individual Session Control 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 listed below. The original TWAMP-Control Start and Stop commands MUST NOT be used ๐Ÿ™…โ€โ™€๏ธ

3. TWAMP Control Extensions ๐Ÿ’…

The TWAMP-Control protocol is a derivative of the OWAMP-Control protocol, and it gives you two-way measurement capability โœจ TWAMP [RFC5357] uses the Modes field to identify and select specific communication capabilities. This field is a recognized extension mechanism, and the following sections describe one such extension ๐ŸŒธ

3.1. Connection Setup with Individual Session Control

TWAMP-Control connection establishment follows the procedure defined in Section 3.1 of [RFC4656] OWAMP ๐Ÿ”Œ The Individual Session Control mode needs one new bit position (and value) to show that the Server/Session-Reflector can start and stop specific sessions, identified by their Session Identifier (SID). This feature needs an additional TWAMP mode bit assignment, as shown here:

Value  Description             Reference/Explanation
0      Reserved
1      Unauthenticated         RFC 4656, Section 3.1
2      Authenticated           RFC 4656, Section 3.1
4      Encrypted               RFC 4656, Section 3.1
8      Unauth. TEST protocol,  RFC 5618, Section 3.1
       Encrypted CONTROL
--------------------------------------------------------
16     Individual Session      RFC 5938, bit position 4
       Control

In the original OWAMP Modes field, setting bit positions 0, 1, or 2 indicated the security mode of the Control protocol, and the Test protocol inherited that same mode (see Section 4 of [RFC4656]). In [RFC5618], bit position (3) lets the Test protocol use a different security mode and the unauthenticated test packet format ๐Ÿ”

If the Server sets the new bit position (bit position 4) in the Server Greeting message to show its capabilities, then the Server and Session-Reflector MUST comply with the requirements of this memo to control sessions on an individual basis, if desired ๐ŸŽฏ

If the Control-Client wants to control sessions on an individual basis (following the requirements in this memo), it MUST set the mode bit (4, corresponding to the new mode) in the Setup Response message. This means that:

  1. The Control-Client and the Server MUST use the start and stop commands intended for individual session control, along with the corresponding acknowledgements, as defined in the sections that follow.
  2. The Control-Client and the Server MUST NOT use the start and stop commands (2 and 3) and the acknowledgement defined in [RFC5357].

The Control-Client MUST also set one mode bit to indicate the chosen security mode (currently bits 0, 1, 2, or 3), consistent with the modes the Server offered. The Control-Client MAY also set Modes field bit 4 along with other features and bit positions, such as the reflect octets feature ๐Ÿซถ

More to come in part 2, bestie. Don't go anywhere ๐Ÿ’œโœจ

3.2. Start-N-Sessions Command with Individual Session Control โœจ

okay so bestie, once you've initiated Individual Session Control mode in the Setup Response, requested one or more test sessions, and received affirmative Accept-Session response(s) ๐Ÿ’…, a TWAMP Client MAY start running one or more test sessions by sending a Start-N-Sessions message to the Server. (The "N" just means "one or more," and it does NOT change based on how many sessions you list ๐Ÿ™ˆ)

The Start-N-Sessions message looks like this ๐ŸŽ€:

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |      7        |                                               |
   +-+-+-+-+-+-+-+-+                                               +
   |                        MBZ (11 octets)                        |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Number of Sessions                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   |                    First SID (16 octets)                      |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   .                 remaining SIDs (16 octets each)               .
   .                                                               .
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   |                       HMAC (16 octets)                        |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B

Note: In figures, "B" indicates the boundary of a 16-octet word.

The Command Number value of 7 means this is a Start-N-Sessions command ๐Ÿ“. The Control-Client MUST compose this command, and the Server MUST interpret this command, according to the field descriptions below.

The Number of Sessions field tells you how many sessions this Start command applies to, and it MUST be one or greater ๐ŸŒธ. The number of SID fields that follow MUST be equal to the value in the Number of Sessions field (otherwise, the command MUST NOT be affirmed with a zero Accept field in the Start-N-Ack response) ๐Ÿ˜ญ.

All SID fields are built the way the last paragraph of Section 3.5 of OWAMP [RFC4656] describes (and TWAMP references it too). Just note that the SID gets assigned by the Server during the session request exchange ๐Ÿงš.

The message ends with a single block HMAC, as shown above ๐Ÿฆ‹.

The Server MUST respond with one or more Start-N-Ack messages (which SHOULD be sent as quickly as possible) โญ. Start-N-Ack messages SHALL have the format defined in the next session ๐Ÿซถ.

When you're using Individual Session Control mode and its Start-N-Ack command (as described in the next section), multiple Start-N-Sessions commands MAY be sent without waiting for acknowledgement, and the Start-N-sessions commands MAY arrive in any order ๐ŸŒˆ. Iconic flexibility, honestly ๐Ÿ‘‘.


3.3. Start-N-Ack Command with Individual Session Control ๐Ÿ’œ

The Server answers the Start-N-Sessions command (for one or more specific sessions, referenced by their SIDs) with one or more Start-N-Ack commands, where the Accept fields match up with one or more of the SIDs ๐ŸŽ€. This means a Server might not be able to start every session in a Start-N-Sessions command right away, but it can still start some of them ๐ŸŒธ.

The message looks like this โœจ:

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |      8        |     Accept    |            MBZ                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        MBZ (8 octets)                         |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Number of Sessions                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   |                    First SID (16 octets)                      |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   .                remaining SIDs (16 octets each)                .
   .                                                               .
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   |                       HMAC (16 octets)                        |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Command Number value of 8 means this is a Start-N-Ack message ๐Ÿ’–. The Server MUST compose this command, and the Control-Client MUST interpret this command, according to the field descriptions below.

The Accept field values are defined in Section 3.3 of OWAMP [RFC4656] ๐Ÿง.

The Number of Sessions field tells you how many sessions this Start-N-Ack command applies to, and it MUST be one or greater ๐Ÿ‘. The number of SID fields that follow MUST be equal to the value in the Number of Sessions field ๐Ÿซถ.

All SID fields are built the way the last paragraph of Section 3.5 of OWAMP [RFC4656] describes (and TWAMP references it too). Again, the SID is assigned by the Server during the session request exchange ๐ŸŒˆ.

The message ends with a single block HMAC, as shown above ๐Ÿฆ‹.

Note that the SIDs for all Sessions with the same Accept code can be acknowledged using the same Start-N-Ack message ๐Ÿ’….

Here's an example ๐Ÿ“. Say the Server gets a Start-N-Sessions command for SIDs 1, 2, 3, and 4. The Server figures out that the resources for SID=3 are temporarily unavailable ๐Ÿ˜ญ. So it responds with two Start-N-Ack commands, with fields like this:

   Accept = 0   Number of Sessions = 3    SIDs 1, 2, 4

   Accept = 5   Number of Sessions = 1    SID 3

3.4. Stop-N-Sessions Command with Individual Session Control ๐Ÿ›‘

Only the Control-Client can issue the Stop-N-Sessions command ๐Ÿ™…โ€โ™€๏ธ. The command MUST contain at least one SID ๐ŸŒธ.

The TWAMP Stop-N-Sessions command for use in Individual Session Control mode is formatted like this ๐ŸŽ€:

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |      9        |                                               |
   +-+-+-+-+-+-+-+-+                                               +
   |                        MBZ (11 octets)                        |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Number of Sessions                        |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   |                    First SID (16 octets)                      |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   .                remaining SIDs (16 octets each)                .
   .                                                               .
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   |                       HMAC (16 octets)                        |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B

The Command Number value of 9 means this is a Stop-N-Sessions command. The Control-Client MUST compose this command, and the Server MUST interpret this command, according to the field descriptions below ๐Ÿงš.

The Number of Sessions field tells you how many sessions this Stop-N-Sessions command applies to. The SID is as defined in Section 3.5 of OWAMP [RFC4656] (and TWAMP), and the value MUST be one or greater ๐Ÿ’œ. The number of SID fields that follow MUST be equal to the value in the Number of Sessions field โœจ.

The message ends with a single block HMAC, as shown above ๐Ÿฆ‹.

The Server MUST respond with one or more Stop-N-Ack messages (which SHOULD be sent as quickly as possible) ๐Ÿƒโ€โ™€๏ธ๐Ÿ’จ. Stop-N-Ack messages SHALL have the format defined in the next session ๐ŸŒˆ.

3.5. Stop-N-Ack Command with Individual Session Control โœจ

okay bestie, so when the Stop-N-Sessions command comes in asking to stop one or more specific sessions (referenced by their SIDs), the Server MUST send back one or more Stop-N-Ack commands ๐Ÿ’– with Accept fields that match up with one or more of those SIDs. The vibe is that the Server might not be able to stop every session right away, but it can stop some of them, so it's allowed to reply in pieces ๐Ÿงฉ

The format for the Stop-N-Ack command looks like this:

    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
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |      10       |     Accept    |            MBZ                |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                        MBZ (8 octets)                         |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Number of Sessions                       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   |                    First SID (16 octets)                      |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   .                 remaining SIDs (16 octets each)               .
   .                                                               .
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+B
   |                                                               |
   |                       HMAC (16 octets)                        |
   |                                                               |
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The Command Number value of 10 indicates that this is a Stop-N-Ack message ๐ŸŽ€. The Server MUST compose this command, and the Control-Client MUST interpret this command, according to the field descriptions below.

The Accept Field values are defined in Section 3.3 of OWAMP [RFC4656] ๐Ÿ“š.

The Number of Sessions field indicates the count of sessions that this Stop-N-Ack command applies to, and MUST be one or greater. The number of SID fields that follow MUST be equal to the value in the Number of Sessions field ๐Ÿ”ข.

All SID fields are constructed as defined in the last paragraph of Section 3.5 of OWAMP [RFC4656] (and referenced in TWAMP). Note that the SID is assigned by the Server during the session request exchange ๐Ÿฆ‹.

The message is terminated with a single block HMAC, as illustrated above ๐Ÿ”.

Note that the SIDs for all Sessions with the same 'Accept' code can be acknowledged using the same Stop-N-Ack message ๐Ÿ’….


3.6. SERVWAIT Timeout Operation ๐Ÿ•ฐ๏ธ

Section 3.1 of [RFC5357] describes the operation of the optional SERVWAIT timer. In normal TWAMP operation, the Server suspends monitoring the SERVWAIT timer while test sessions are in progress. When the Individual Session Control feature is utilized, this suspension is extended to cover the time when ANY test session is in progress ๐ŸŒˆ.

Thus, the Server SHALL suspend monitoring control connection activity after receiving any Start-N-Sessions command, and after receiving a Stop-N-Sessions command for all corresponding SIDs (and no test sessions are in progress), OR when REFWAIT expires on ALL test sessions initiated by a TWAMP-Control connection, then the SERVWAIT monitoring SHALL resume (as though a Stop-N-Sessions command had been received). An implementation that supports the SERVWAIT timeout option SHOULD also implement the REFWAIT timeout option ๐Ÿ’œ.

The diagram below illustrates the operation of timers SERVWAIT and REFWAIT ๐Ÿ“Š.

     SERVWAIT                   REFWAIT                  SERVWAIT
   +-+-+-+-+-+-+-+-+                                   +-+-+-+-+-+-+
   (no sessions
    in progress)
                    +-+-+-+-+-+-+-+-+-+-+-+
                            SID="1"

                                   +-+-+-+-+
                                    SID="2"

                                     +-+-+-+-+-+-+-+-+
                                           SID="3"

   >>>>>>>>>> Time >>>>>>>>>>>>>>>>>>> Time >>>>>>>>>>>>>>>> Time >>>>>

3.7. Additional Considerations ๐Ÿง 

The value of the Modes field sent by the Server (in the Server Greeting message) is the bit-wise OR of the mode values that it is willing to support during this session ๐Ÿ“.

With the publication of this feature, bit positions 0 through 4 of the 32-bit Modes field are used. A Control-Client MAY ignore bit positions greater than 2 in the Modes field, or it MAY support OPTIONAL features that are communicated in bit positions 3 and higher. (The unassigned bits are available for future protocol extensions ๐Ÿ”ฎ.)

Other ways in which TWAMP extends OWAMP are described in [RFC5357] โœจ.

4. TWAMP Test with Individual Session Control ๐Ÿงช

The TWAMP test protocol is similar to the OWAMP [RFC4656] test protocol with the exception that the Session-Reflector transmits test packets to the Session-Sender in response to each test packet it receives ๐Ÿชž. TWAMP [RFC5357] defines two different test packet formats, one for packets transmitted by the Session-Sender and one for packets transmitted by the Session-Reflector. As with the OWAMP-Test protocol, there are three security modes: unauthenticated, authenticated, and encrypted. The unauthenticated mode has one test packet format, while the authenticated and encrypted modes use another (common) format ๐ŸŒธ.

4.1. Sender Behavior

The individual session control feature requires that the sender MUST manage test sessions according to their SID. Otherwise, the sender behavior is as described in Section 4.1 of [RFC5357] ๐Ÿ“ค.

4.2. Reflector Behavior

The TWAMP Reflector follows the procedures and guidelines in Section 4.2 of [RFC5357], with the following additional functions required by this feature ๐Ÿ“ฅ:

  • The Session-Reflector MUST manage all test sessions accepted according to their SID.
  • Upon receipt of a TWAMP-Control Stop-N-Sessions command referencing a specific session/SID, the Session-Reflector MUST ignore TWAMP-Test packets (in the same session/SID) that arrive at the current time plus the Timeout (in the Request-TW-Session command and assuming subsequent acknowledgement). The Session-Reflector MUST NOT generate a test packet to the Session-Sender for packets that are ignored. (Note: The Request-TW-Session command includes sender address + port and receiver address + port, and this is usually sufficient to distinguish sessions ๐Ÿ‘ฏ.)
  • If the REFWAIT timer is implemented, it SHOULD be enforced when any test session is in progress (started and not stopped) โณ.

5. Security Considerations ๐Ÿšจ

The security considerations that apply to any active measurement of live networks are relevant here as well ๐Ÿ˜ญ. See the security considerations in [RFC4656] and [RFC5357]. This is a big deal, bestie, so take it seriously ๐Ÿ”ฅ.

6. IANA Considerations ๐Ÿ“‹

As a result of this document, IANA has assigned one mode bit position/value for a mode in the IANA registry for the TWAMP Modes field, and this memo describes the behavior when the new mode is used. This field is a recognized extension mechanism for TWAMP ๐ŸŒท.

As a result of this document, IANA has assigned four command numbers in the "TWAMP-Control Command Numbers" registry, and this memo describes the use of the new commands. The command number field is a recognized extension mechanism for TWAMP ๐Ÿ’•.

6.1. Registry Specification

IANA has created a "TWAMP-Modes" registry (as requested in [RFC5618]). TWAMP-Modes are specified in TWAMP Server Greeting messages and Set-Up-Response messages, as described in Section 3.1 of [RFC5357], consistent with Section 3.1 of [RFC4656], and extended by this memo. Modes are indicated by setting bits in the 32-bit Modes field that correspond to values in the "TWAMP-Modes" registry. For the "TWAMP-Modes" registry, we expect that new features will be assigned increasing registry values that correspond to single bit positions, unless there is a good reason to do otherwise (more complex encoding than single bit positions may be used in the future to access the 2^32 value space) ๐Ÿฆ„.

IANA has also created the "TWAMP-Control Command Numbers" registry. TWAMP-Control commands are specified by the first octet in TWAMP-Control messages as specified in Section 3.5 of [RFC5357], and augmented by this memo. This registry may contain 256 possible values ๐ŸŽฏ.

6.2. Registry Management

Because the "TWAMP-Control Command Numbers" registry can contain only 256 values and "TWAMP-Modes" are based on only 32 bit positions with a maximum of 2^32 values, and because TWAMP is an IETF protocol, these registries must be updated only by "IETF Consensus" as specified in [RFC5226] (an RFC that documents registry use and is approved by the IESG). Management of these registries is described in Section 8.2 of [RFC5357] and [RFC5618] ๐Ÿ—‚๏ธ.

The values 7, 8, 9, and 10 have been assigned in the "TWAMP-Control Command Numbers" Registry. The value 16 corresponding to the next available bit position (4) (as described in Sections 3.1 and 3.7) has been assigned in the "TWAMP-Modes" registry ๐Ÿฅณ.

6.3. Experimental Numbers

One experimental value has been assigned in the "TWAMP-Control Command Numbers" registry ๐Ÿงช.

No additional experimental values are assigned in the TWAMP-Modes registry ๐Ÿ™…โ€โ™€๏ธ.

6.4. Registry Contents

TWAMP-Control Command Numbers Registry ๐Ÿ’œ

   Value  Description             Semantics Definition
    0      Reserved
    1      Forbidden
    2      Start-Sessions          RFC 4656, Section 3.7
    3      Stop-Sessions           RFC 4656, Section 3.8
    4      Reserved
    5      Request-TW-Session      RFC 5357, Section 3.5
    6      Experimentation         RFC 5357, Section 8.3
   ------------------------------------------------------------------
    7      Start-N-Sessions        RFC 5938, Section 3.2
    8      Start-N-Ack             RFC 5938, Section 3.3
    9      Stop-N-Sessions         RFC 5938, Section 3.4
   10      Stop-N-Ack              RFC 5938, Section 3.5

TWAMP-Modes Registry ๐ŸŒˆ

   Value  Description             Reference/Explanation
   0      Reserved
   1      Unauthenticated         RFC 4656, Section 3.1
   2      Authenticated           RFC 4656, Section 3.1
   4      Encrypted               RFC 4656, Section 3.1
   8      Unauth. TEST protocol,  RFC 5618, Section 3.1
          Encrypted CONTROL
   --------------------------------------------------------
   16     Individual Session       RFC 5938, Section 3.1
          Control                  bit position 4

7. Acknowledgements ๐Ÿซถ

The authors thank everyone who provided comments on this feature, especially Lars Eggert, Adrian Farrel, and Alexey Melnikov ๐Ÿ’–.

8. References ๐Ÿ“š

8.1. Normative References

okay bestie, the normative references are the ones you absolutely need to read to get this stuff, so here they are, all five ๐Ÿงพ๐Ÿ’…

[RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
           Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC4656]  Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M.
           Zekauskas, "A One-way Active Measurement Protocol
           (OWAMP)", RFC 4656, September 2006.

[RFC5226]  Narten, T. and H. Alvestrand, "Guidelines for Writing an
           IANA Considerations Section in RFCs", BCP 26, RFC 5226,
           May 2008.

[RFC5357]  Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J.
           Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)",
           RFC 5357, October 2008.

[RFC5618]  Morton, A. and K. Hedayat, "Mixed Security Mode for the
           Two-Way Active Measurement Protocol (TWAMP)", RFC 5618,
           August 2009.

8.2. Informative References

and the informative one is the vibe-check reference, the work-in-progress draft that's giving "coming soon" ๐ŸŒธโœจ

[REFLECT]  Morton, A. and L. Ciavattone, "TWAMP Reflect Octets and
           Symmetrical Size Features", Work in Progress, June 2010.

Authors' Addresses โœจ

and last but not least, the people behind it, the main characters who wrote this whole thing ๐ŸŽ€๐Ÿซถ

Al Morton
AT&T Labs
200 Laurel Avenue South
Middletown, NJ  07748
USA

Phone: +1 732 420 1571
Fax:   +1 732 368 1192
EMail: acmorton@att.com
URI:   http://home.comcast.net/~acmacm/


Murtaza Chiba
Cisco Systems
170 W. Tasman Drive
San Jose, CA  95134
USA

Phone: +1 800 553 NETS
EMail: mchiba@cisco.com
๐Ÿ“ฆ where this page comes from