| < draft-ietf-ippm-twamp-yang-09.txt | draft-ietf-ippm-twamp-yang-10.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: October 22, 2018 AT&T Labs | Expires: November 4, 2018 AT&T Labs | |||
| R. Rahman | R. Rahman | |||
| Cisco Systems | Cisco Systems | |||
| M. Jethanandani | M. Jethanandani | |||
| K. Pentikousis, Ed. | K. Pentikousis, Ed. | |||
| Travelping | Travelping | |||
| April 20, 2018 | May 3, 2018 | |||
| Two-Way Active Measurement Protocol (TWAMP) Data Model | Two-Way Active Measurement Protocol (TWAMP) Data Model | |||
| draft-ietf-ippm-twamp-yang-09 | draft-ietf-ippm-twamp-yang-10 | |||
| 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). | |||
| The document defines the TWAMP data model through Unified Modeling | The document defines the TWAMP data model through Unified Modeling | |||
| Language (UML) class diagrams and formally specifies it using YANG. | Language (UML) class diagrams and formally specifies it using YANG. | |||
| Status of This Memo | Status of This Memo | |||
| skipping to change at page 1, line 40 ¶ | skipping to change at page 1, line 40 ¶ | |||
| 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 https://datatracker.ietf.org/drafts/current/. | Drafts is at https://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 October 22, 2018. | This Internet-Draft will expire on November 4, 2018. | |||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2018 IETF Trust and the persons identified as the | Copyright (c) 2018 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 | |||
| (https://trustee.ietf.org/license-info) in effect on the date of | (https://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 14 ¶ | skipping to change at page 3, line 14 ¶ | |||
| 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 | |||
| come with a standard management framework, and, as such, implementors | come with a standard management framework, and, as such, implementors | |||
| have no choice except to provide a proprietary mechanism. This | have no choice except to provide a proprietary mechanism. This | |||
| document addresses this gap by formally specifying the TWAMP data | document addresses this gap by formally specifying the TWAMP data | |||
| model using YANG [RFC7950]. | model using YANG 1.1 [RFC7950]. | |||
| 1.1. Motivation | 1.1. Motivation | |||
| In current TWAMP deployments the lack of a standardized data model | In current TWAMP deployments the lack of a standardized data model | |||
| limits the flexibility to dynamically instantiate TWAMP-based | limits the flexibility to dynamically instantiate TWAMP-based | |||
| measurements across equipment from different vendors. In large, | measurements across equipment from different vendors. In large, | |||
| virtualized, and dynamically instantiated infrastructures where | virtualized, and dynamically instantiated infrastructures where | |||
| network functions are placed according to orchestration algorithms as | network functions are placed according to orchestration algorithms as | |||
| discussed in Unifying Carrier and Cloud Networks: Problem Statement | discussed in Unifying Carrier and Cloud Networks: Problem Statement | |||
| and Challenges [I-D.unify-nfvrg-challenges], and DevOps For Software- | and Challenges [I-D.unify-nfvrg-challenges], and DevOps For Software- | |||
| skipping to change at page 3, line 40 ¶ | skipping to change at page 3, line 40 ¶ | |||
| First, it is expected that in the coming years large-scale and multi- | First, it is expected that in the coming years large-scale and multi- | |||
| vendor TWAMP deployments will become the norm. From an operations | vendor TWAMP deployments will become the norm. From an operations | |||
| perspective, using several vendor-specific TWAMP configuration | perspective, using several vendor-specific TWAMP configuration | |||
| mechanisms when one standard mechanism could provide an alternative | mechanisms when one standard mechanism could provide an alternative | |||
| is expensive and inefficient. Second, the increasingly software- | is expensive and inefficient. Second, the increasingly software- | |||
| defined and virtualized nature of network infrastructures, based on | defined and virtualized nature of network infrastructures, based on | |||
| dynamic service chains [NSC] and programmable control and management | dynamic service chains [NSC] and programmable control and management | |||
| planes Software-Defined Networking (SDN): Layers and Architecture | planes Software-Defined Networking (SDN): Layers and Architecture | |||
| Terminology [RFC7426] requires a well-defined data model for TWAMP | Terminology [RFC7426] requires a well-defined data model for TWAMP | |||
| implementations. This document defines such a TWAMP data model and | implementations. This document defines such a TWAMP data model and | |||
| specifies it formally using the YANG [RFC7950] data modeling | specifies it formally using the YANG 1.1 [RFC7950] data modeling | |||
| language. | language. | |||
| Note to RFC Editor: | Note to RFC Editor: | |||
| Please replace the date 2018-04-19 in Section 5.2 of the draft with | Please replace the date 2018-05-03 in Section 5.2 of the draft with | |||
| the date of publication of this draft as a RFC. Also, replace | the date of publication of this draft as a RFC. Also, replace | |||
| reference to RFC XXXX, and draft-ietf-port-twamp-test with the RFC | reference to RFC XXXX, and draft-ietf-ippm-port-twamp-test with the | |||
| numbers assigned to the drafts. | RFC numbers assigned to the drafts. | |||
| 1.2. Terminology | 1.2. Terminology | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in BCP | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| 1.3. Document Organization | 1.3. Document Organization | |||
| skipping to change at page 5, line 38 ¶ | skipping to change at page 5, line 38 ¶ | |||
| Figure 2: Simplified TWAMP model and protocols | Figure 2: Simplified TWAMP model and protocols | |||
| The data model defined in this document is orthogonal to the specific | The data model defined in this document is orthogonal to the specific | |||
| protocol used between the Config client and Config server to | protocol used between the Config client and Config server to | |||
| communicate the TWAMP configuration parameters. | communicate the TWAMP configuration parameters. | |||
| Operational actions such as how TWAMP-Test sessions are started and | Operational actions such as how TWAMP-Test sessions are started and | |||
| stopped, how performance measurement results are retrieved, or how | stopped, how performance measurement results are retrieved, or how | |||
| stored results are cleared, and so on, are not addressed by the | stored results are cleared, and so on, are not addressed by the | |||
| configuration model defined in this document. As noted above, such | configuration model defined in this document. As noted above, such | |||
| operational actions are not part of the TWAMP [RFC5357] | operational actions are not part of the TWAMP specification TWAMP | |||
| specification, and hence are out of scope of this document. See also | [RFC5357] and hence are out of scope of this document. See also | |||
| Appendix B. | Appendix B. | |||
| 3. Data Model Overview | 3. Data Model Overview | |||
| The TWAMP data model includes four categories of configuration items. | The TWAMP data model includes four categories of configuration items. | |||
| First, global configuration items relate to parameters that are set | First, global configuration items relate to parameters that are set | |||
| on a per device level. For example, the administrative status of the | on a per device level. For example, the administrative status of the | |||
| device with respect to whether it allows TWAMP sessions and, if so, | device with respect to whether it allows TWAMP sessions and, if so, | |||
| in what capacity (e.g. Control-Client, Server or both), is a typical | in what capacity (e.g. Control-Client, Server or both), is a typical | |||
| skipping to change at page 16, line 44 ¶ | skipping to change at page 16, line 44 ¶ | |||
| module: ietf-twamp | module: ietf-twamp | |||
| +--rw twamp | +--rw twamp | |||
| +--rw client {control-client}? | +--rw client {control-client}? | |||
| | +--rw admin-state? boolean | | +--rw admin-state? boolean | |||
| | +--rw mode-preference-chain* [priority] | | +--rw mode-preference-chain* [priority] | |||
| | | +--rw priority uint16 | | | +--rw priority uint16 | |||
| | | +--rw mode? twamp-modes | | | +--rw mode? twamp-modes | |||
| | +--rw key-chain* [key-id] | | +--rw key-chain* [key-id] | |||
| | | +--rw key-id string | | | +--rw key-id string | |||
| | | +--rw secret-key? string | | | +--rw secret-key? binary | |||
| | +--rw ctrl-connection* [name] | | +--rw ctrl-connection* [name] | |||
| | +--rw name string | | +--rw name string | |||
| | +--rw client-ip? inet:ip-address | | +--rw client-ip? inet:ip-address | |||
| | +--rw server-ip inet:ip-address | | +--rw server-ip inet:ip-address | |||
| | +--rw server-tcp-port? inet:port-number | | +--rw server-tcp-port? inet:port-number | |||
| | +--rw control-packet-dscp? inet:dscp | | +--rw control-packet-dscp? inet:dscp | |||
| | +--rw key-id? string | | +--rw key-id? string | |||
| | +--rw max-count-exponent? uint8 | | +--rw max-count-exponent? uint8 | |||
| | +--ro client-tcp-port? inet:port-number | | +--ro client-tcp-port? inet:port-number | |||
| | +--ro server-start-time? uint64 | | +--ro server-start-time? uint64 | |||
| skipping to change at page 17, line 39 ¶ | skipping to change at page 17, line 39 ¶ | |||
| +--rw server {server}? | +--rw server {server}? | |||
| | +--rw admin-state? boolean | | +--rw admin-state? boolean | |||
| | +--rw server-tcp-port? inet:port-number | | +--rw server-tcp-port? inet:port-number | |||
| | +--rw servwait? uint32 | | +--rw servwait? uint32 | |||
| | +--rw control-packet-dscp? inet:dscp | | +--rw control-packet-dscp? inet:dscp | |||
| | +--rw count? uint8 | | +--rw count? uint8 | |||
| | +--rw max-count-exponent? uint8 | | +--rw max-count-exponent? uint8 | |||
| | +--rw modes? twamp-modes | | +--rw modes? twamp-modes | |||
| | +--rw key-chain* [key-id] | | +--rw key-chain* [key-id] | |||
| | | +--rw key-id string | | | +--rw key-id string | |||
| | | +--rw secret-key? string | | | +--rw secret-key? binary | |||
| | +--ro ctrl-connection* | | +--ro ctrl-connection* | |||
| | [client-ip client-tcp-port server-ip server-tcp-port] | | [client-ip client-tcp-port server-ip server-tcp-port] | |||
| | +--ro client-ip inet:ip-address | | +--ro client-ip inet:ip-address | |||
| | +--ro client-tcp-port inet:port-number | | +--ro client-tcp-port inet:port-number | |||
| | +--ro server-ip inet:ip-address | | +--ro server-ip inet:ip-address | |||
| | +--ro server-tcp-port inet:port-number | | +--ro server-tcp-port inet:port-number | |||
| | +--ro state? server-ctrl-connection-state | | +--ro state? server-ctrl-connection-state | |||
| | +--ro control-packet-dscp? inet:dscp | | +--ro control-packet-dscp? inet:dscp | |||
| | +--ro selected-mode? twamp-modes | | +--ro selected-mode? twamp-modes | |||
| | +--ro key-id? string | | +--ro key-id? string | |||
| skipping to change at page 19, line 19 ¶ | skipping to change at page 19, line 19 ¶ | |||
| YANG Data Types [RFC6991], and references NTPv3 Specification | YANG Data Types [RFC6991], and references NTPv3 Specification | |||
| [RFC1305], Framework for IP Performance Metrics [RFC2330], Randomness | [RFC1305], Framework for IP Performance Metrics [RFC2330], Randomness | |||
| Requirements for Security [RFC4086], OWAMP [RFC4656], TWAMP | Requirements for Security [RFC4086], OWAMP [RFC4656], TWAMP | |||
| [RFC5357], More Features for TWAMP [RFC5618], Individual Session | [RFC5357], More Features for TWAMP [RFC5618], Individual Session | |||
| Control Feature [RFC5938], TWAMP Reflect Octets and Symmetrical Size | Control Feature [RFC5938], TWAMP Reflect Octets and Symmetrical Size | |||
| Features [RFC6038], Advances Stream and Sampling Framework [RFC7312], | Features [RFC6038], Advances Stream and Sampling Framework [RFC7312], | |||
| IKEv2-Derived Shared Secret Key for OWAMP and TWAMP [RFC7717], and | IKEv2-Derived Shared Secret Key for OWAMP and TWAMP [RFC7717], and | |||
| OWAMP and TWAMP Well-Known Port Assignments | OWAMP and TWAMP Well-Known Port Assignments | |||
| [I-D.ietf-ippm-port-twamp-test]. | [I-D.ietf-ippm-port-twamp-test]. | |||
| <CODE BEGINS> file "ietf-twamp@2018-04-19.yang" | <CODE BEGINS> file "ietf-twamp@2018-05-03.yang" | |||
| module ietf-twamp { | module ietf-twamp { | |||
| yang-version 1.1; | yang-version 1.1; | |||
| namespace urn:ietf:params:xml:ns:yang:ietf-twamp; | namespace urn:ietf:params:xml:ns:yang:ietf-twamp; | |||
| prefix ietf-twamp; | prefix ietf-twamp; | |||
| import ietf-inet-types { | import ietf-inet-types { | |||
| prefix inet; | prefix inet; | |||
| reference | reference | |||
| "RFC 6991: Common YANG Types."; | "RFC 6991: Common YANG Types."; | |||
| skipping to change at page 20, line 26 ¶ | skipping to change at page 20, line 26 ¶ | |||
| Redistribution and use in source and binary forms, with or | Redistribution and use in source and binary forms, with or | |||
| without modification, is permitted pursuant to, and subject | without modification, is permitted pursuant to, and subject | |||
| to the license terms contained in, the Simplified BSD | to the license terms contained in, the Simplified BSD | |||
| License set forth in Section 4.c of the IETF Trust's Legal | License set forth in Section 4.c of the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents | Provisions Relating to IETF Documents | |||
| (http://trustee.ietf.org/license-info). | (http://trustee.ietf.org/license-info). | |||
| This version of this YANG module is part of RFC XXXX; see | This version of this YANG module is part of RFC XXXX; see | |||
| the RFC itself for full legal notices."; | the RFC itself for full legal notices."; | |||
| revision 2018-04-19 { | revision 2018-05-03 { | |||
| description | description | |||
| "Initial Revision. | "Initial Revision. | |||
| Covers RFC 5357, RFC 5618, RFC 5938, RFC 6038, RFC 7717, and | Covers RFC 5357, RFC 5618, RFC 5938, RFC 6038, RFC 7717, and | |||
| draft-ietf-ippm-metric-registry"; | draft-ietf-ippm-metric-registry"; | |||
| reference | reference | |||
| "RFC XXXX: TWAMP YANG Data Model."; | "RFC XXXX: TWAMP YANG Data Model."; | |||
| } | } | |||
| skipping to change at page 26, line 14 ¶ | skipping to change at page 26, line 14 ¶ | |||
| } | } | |||
| description | description | |||
| "KeyID used for a TWAMP-Control connection. As per | "KeyID used for a TWAMP-Control connection. As per | |||
| Section 3.1 of RFC 4656, KeyID is 'a UTF-8 string, up to | Section 3.1 of RFC 4656, KeyID is 'a UTF-8 string, up to | |||
| 80 octets in length' and is used to select which 'shared | 80 octets in length' and is used to select which 'shared | |||
| shared secret the [Control-Client] wishes to use to | shared secret the [Control-Client] wishes to use to | |||
| authenticate or encrypt'."; | authenticate or encrypt'."; | |||
| } | } | |||
| leaf secret-key { | leaf secret-key { | |||
| type string; | type binary; | |||
| description | description | |||
| "The secret key corresponding to the KeyID for this | "The secret key corresponding to the KeyID for this | |||
| TWAMP-Control connection."; | TWAMP-Control connection."; | |||
| } | } | |||
| description | description | |||
| "Relates KeyIDs with their respective secret keys | "Relates KeyIDs with their respective secret keys | |||
| in a TWAMP-Control connection."; | in a TWAMP-Control connection."; | |||
| } | } | |||
| description | description | |||
| "Used by the Control-Client and Server for TWAMP-Control | "Used by the Control-Client and Server for TWAMP-Control | |||
| skipping to change at page 55, line 46 ¶ | skipping to change at page 55, line 46 ¶ | |||
| operations and content.. | operations and content.. | |||
| There are a number of nodes defined in this YANG module which are | There are a number of nodes defined in this YANG module which are | |||
| writeable. These data nodes may be considered sensitive and | writeable. These data nodes may be considered sensitive and | |||
| vulnerable to attacks in some network environments. Ability to write | vulnerable to attacks in some network environments. Ability to write | |||
| into these nodes without proper protection can have a negative effect | into these nodes without proper protection can have a negative effect | |||
| on the devices that support this feature. | on the devices that support this feature. | |||
| Examples of nodes that are particularly vulnerable include several | Examples of nodes that are particularly vulnerable include several | |||
| timeout values put in the protocol to protect against sessions that | timeout values put in the protocol to protect against sessions that | |||
| are not active but are consuming resources. | are not active but are consuming resources. Limiting access to these | |||
| nodes will limit the ability to launch an attack in network | ||||
| environments. | ||||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This document registers a URI in the IETF XML registry [RFC3688]. | This document registers a URI in the IETF XML registry [RFC3688]. | |||
| Following the format in IETF XML Registry [RFC3688], the following | Following the format in IETF XML Registry [RFC3688], the following | |||
| registration is requested to be made. | registration is requested to be made. | |||
| URI: urn:ietf:params:xml:ns:yang:ietf-twamp | URI: urn:ietf:params:xml:ns:yang:ietf-twamp | |||
| Registrant Contact: The IPPM WG of the IETF. | Registrant Contact: The IPPM WG of the IETF. | |||
| End of changes. 15 change blocks. | ||||
| 17 lines changed or deleted | 19 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/ | ||||