RFC 8913: Two-Way Active Measurement Protocol (TWAMP) YANG Data Model
- R. Civil,
- A. Morton,
- R. Rahman,
- M. Jethanandani,
- K. Pentikousis, Ed.
Abstract
This document specifies a data model for client and server implementations of the Two-Way Active Measurement Protocol (TWAMP). This document defines the TWAMP data model through Unified Modeling Language (UML) class diagrams and formally specifies it using the YANG data modeling language (RFC 7950). The data model is compliant with the Network Management Datastore Architecture (NMDA).¶
Status of This Memo
This is an Internet Standards Track document.¶
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.¶
Information about the current status of this document, any
errata, and how to provide feedback on it may be obtained at
https://
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(https://
1. Introduction
The Two-Way Active Measurement Protocol (TWAMP) [RFC5357] is used to measure network performance parameters such as latency, bandwidth, and packet loss by sending probe packets and measuring their experience in the network. To date, TWAMP implementations do not come with a standard management framework, and, as such, implementers have no choice except to provide a proprietary mechanism. This document addresses this gap by defining the model using Unified Modeling Language (UML) class diagrams [UML] and formally specifying a TWAMP data model that is compliant with the Network Management Datastore Architecture (NMDA) [RFC8342], using YANG 1.1 [RFC7950].¶
1.1. Motivation
In current TWAMP deployments, the lack of a standardized data model
limits the flexibility to dynamically instantiate TWAMP-based
measurements across equipment from different vendors. In large,
virtualized, and dynamically instantiated infrastructures where
network functions are placed according to orchestration algorithms,
proprietary mechanisms for managing TWAMP measurements pose severe
limitations with respect to programmability
Two major trends call for standardizing TWAMP management aspects.
First, it is expected that in the coming years large-scale and
multi-vendor TWAMP deployments will become the norm. From an
operations perspective, using several vendor-specific TWAMP
configuration mechanisms when one standard mechanism could provide an
alternative is expensive and inefficient. Second, the increasingly
software
1.2. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
1.3. Document Organization
The rest of this document is organized as follows. Section 2 presents the scope and applicability of this document. Section 3 provides a high-level overview of the TWAMP data model. Section 4 details the configuration parameters of the data model, and Section 5 specifies in YANG the TWAMP data model. Section 6 lists illustrative examples that conform to the YANG data model specified in this document. Appendix A elaborates these examples further.¶
2. Scope, Model, and Applicability
The purpose of this document is the specification of a
vendor
Figure 1 illustrates a redrawn version of the TWAMP
logical model found in Section 1.2 of TWAMP [RFC5357]. The figure is annotated with pointers to the
UML diagrams [UML] provided in this document and
associated with the data model of the four logical entities in a TWAMP
deployment, namely the TWAMP Control-Client, Server, Session-Sender, and
Session
As per TWAMP [RFC5357], unlabeled links in Figure 1 are left unspecified and may be proprietary protocols.¶
As per TWAMP [RFC5357], a TWAMP implementation
may follow a simplified logical model, in which the same node acts as both
Control-Client and Session-Sender, while another node acts at the
same time as both TWAMP Server and Session
The data model defined in this document is orthogonal to the specific protocol used between the Config client and Config server to communicate the TWAMP configuration parameters.¶
Operational actions such as how TWAMP-Test sessions are started and stopped, how performance measurement results are retrieved, or how stored results are cleared, and so on, are not addressed by the configuration model defined in this document. As noted above, such operational actions are not part of the TWAMP specification [RFC5357] and hence are out of scope for this document. See also Appendix B. In addition, for operational state, the information provided in the Performance Metrics Registry [RFC8911] and [PERF-METRICS] can be used to develop an independent model for the Performance Metrics that need to be captured and retrieved.¶
3. Data Model Overview
The TWAMP data model includes four categories of configuration items.¶
First, global configuration items relate to parameters that are set on a per-device level. For example, the administrative status of the 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 instance of a global configuration item.¶
A second category includes attributes that can be configured on a
per‑TWAMP
A third category includes attributes related to
per
Finally, the data model includes attributes that relate to the operational state of the TWAMP implementation.¶
As the TWAMP data model is described in the remaining sections of this document, readers should keep in mind the functional entity grouping illustrated in Figure 1.¶
3.1. Control-Client
A TWAMP Control-Client has an administrative status field set at the device level that indicates whether the node is enabled to function as such.¶
Each TWAMP Control-Client is associated with zero or more TWAMP‑Control connections. The main configuration parameters of each control connection are:¶
Each TWAMP-Control connection, in turn, is associated with zero or more TWAMP-Test sessions. For each test session, the following configuration items should be noted:¶
3.2. Server
Each TWAMP Server has an administrative status field set at the device level to indicate whether the node is enabled to function as a TWAMP Server.¶
Each Server is associated with zero or more TWAMP-Control connections. Each control connection is uniquely identified by the 4-tuple {Control-Client IP address, Control-Client TCP port number, Server IP address, Server TCP port}. Control connection configuration items on a TWAMP Server are read-only.¶
3.3. Session-Sender
A TWAMP Session-Sender has an administrative status field set at the device level that indicates whether the node is enabled to function as such.¶
There is one Session-Sender instance for each TWAMP-Test session that is initiated from the sending device. Primary configuration fields include:¶
3.4. Session-Reflector
Each TWAMP Session
Each Session
Read-only access to other data model parameters, such as the Sender IP address, is foreseen. Each test session can be uniquely identified by the 4-tuple mentioned in Section 3.2.¶
4. Data Model Parameters
This section defines the TWAMP data model using UML [UML] and introduces selected parameters associated with the four TWAMP logical entities. The complete TWAMP data model specification is provided in the YANG module presented in Section 5.2.¶
4.1. Control-Client
The client container (see Figure 3) holds items that are related to the configuration of the TWAMP Control-Client logical entity (recall Figure 1).¶
The client container includes an administrative configuration
parameter
The client container holds a list
Depending on the modes available in the Server Greeting, the
Control-Client MUST choose the highest
Note that the list of preferred modes may set multiple bit positions independently, such as when referring to the extended TWAMP features in "Mixed Security Mode for the Two-Way Active Measurement Protocol (TWAMP)" [RFC5618], "Individual Session Control Feature for the Two-Way Active Measurement Protocol (TWAMP)" [RFC5938], "Two-Way Active Measurement Protocol (TWAMP) Reflect Octets and Symmetrical Size Features" [RFC6038], and "IKEv2-Derived Shared Secret Key for the One-Way Active Measurement Protocol (OWAMP) and Two-Way Active Measurement Protocol (TWAMP)" [RFC7717]. If the Control-Client cannot determine an acceptable mode, or when the bit combinations do not make sense, e.g., authenticated and unauthenticated bits are both set, it MUST respond with zero Mode bits set in the Set-Up-Response message, indicating that it will not continue with the control connection.¶
In addition, the client container holds a list named "key-chain", which relates key-id with the respective secret-key. Both the Server and the Control-Client use the same mappings from key-id to secret‑key (in Figure 3); in order for this to work properly, key-id must be unique across all systems in the administrative domain. The Server, being prepared to conduct sessions with more than one Control-Client, uses key-id to choose the appropriate secret-key; a Control-Client would typically have different secret keys for different Servers. The secret-key is the shared secret, of type "binary", and the length SHOULD contain at least 128 bits of entropy. The key-id and secret-key encoding SHOULD follow Section 9.8 of YANG [RFC7950]. The derived key length (dkLen as defined in "PKCS #5: Password-Based Cryptography Specification Version 2.1" [RFC8018]) MUST be 16 octets for the AES Session-key used for encryption and 32 octets for the HMAC-SHA1 Session-key used for authentication; see also Section 6.10 of OWAMP [RFC4656].¶
Each client container also holds a list of control connections, where each item in the list describes a TWAMP-Control connection initiated by this Control-Client. There SHALL be one ctrl-connection per TWAMP-Control (TCP) connection that is to be initiated from this device.¶
In turn, each ctrl-connection holds a test
There SHALL be one instance of test
The Control-Client is also responsible for scheduling TWAMP-Test
sessions; therefore, test
4.2. Server
The server container (see Figure 4) holds items that are related to the configuration of the TWAMP Server logical entity (recall Figure 1).¶
The server container includes an administrative configuration
parameter
A device operating in the Server Role cannot configure attributes
on a per
Each server container holds a list named "key-chain", which relates key-id with the respective secret-key. As mentioned in Section 4.1, both the Server and the Control-Client use the same mapping from key‑id to the shared secret-key; in order for this to work properly, key-id must be unique across all the systems in the administrative domain. The Server, being prepared to conduct sessions with more than one Control-Client, uses key-id to choose the appropriate secret-key; a Control-Client would typically have different secret keys for different Servers. key-id tells the Server which shared secret-key the Control-Client wishes to use for authentication or encryption.¶
Each incoming control connection active on the Server is
represented by a ctrl
4.3. Session-Sender
The session-sender container, illustrated in Figure 5, holds items that are related to the configuration of the TWAMP Session-Sender logical entity.¶
The session-sender container includes an administrative parameter
Each TWAMP-Test session initiated by the Session-Sender will be represented by an instance of a test-session object. There SHALL be one instance of test-session for each TWAMP-Test session for which packets are being sent.¶
4.4. Session-Reflector
The session
The session
A device operating in the Session
Each incoming TWAMP-Test session that is active on the
Session
Instances of test-session are indexed by a Session Identifier (SID) (the sid parameter). This SID value is auto-allocated by the TWAMP Server as test session requests are received and is communicated back to the Control-Client in the SID field of the Accept-Session message; see Section 4.3 of "Two-Way Active Measurement Protocol (TWAMP) Reflect Octets and Symmetrical Size Features" [RFC6038].¶
When attempting to retrieve operational data for active test
sessions from a Session
If the user has no network access to the Control-Client device,
then the only option is to retrieve all test-session instances from
the Session
Each Session
5. Data Model
This section formally specifies the TWAMP data model using YANG.¶
5.1. YANG Tree Diagram
This section presents a simplified graphical representation of the TWAMP data model using a YANG tree diagram. Readers should keep in mind that the limit of 72 characters per line forces us to introduce artificial line breaks in some tree diagram nodes. Tree diagrams used in this document follow the notation defined in "YANG Tree Diagrams" [RFC8340].¶
Please note that the backslash ('\') character near the end of the
diagram is used for formatting purposes only
(i.e., "reflector‑udp‑
5.2. YANG Module
This section presents the YANG module for the TWAMP data model defined in this document. The module imports definitions from "Common YANG Data Types" [RFC6991] and references "Framework for IP Performance Metrics" [RFC2330], "Network performance measurement with periodic streams" [RFC3432], "A One-way Active Measurement Protocol (OWAMP)" [RFC4656], "A Two-Way Active Measurement Protocol (TWAMP)" [RFC5357], "Mixed Security Mode for the Two-Way Active Measurement Protocol (TWAMP)" [RFC5618], "Network Time Protocol Version 4: Protocol and Algorithms Specification" [RFC5905], "Individual Session Control Feature for the Two-Way Active Measurement Protocol (TWAMP)" [RFC5938], "Two-Way Active Measurement Protocol (TWAMP) Reflect Octets and Symmetrical Size Features" [RFC6038], "Advanced Stream and Sampling Framework for IP Performance Metrics (IPPM)" [RFC7312], "IKEv2-Derived Shared Secret Key for the One-Way Active Measurement Protocol (OWAMP) and Two-Way Active Measurement Protocol (TWAMP)" [RFC7717], "Well-Known Port Assignments for the One-Way Active Measurement Protocol (OWAMP) and the Two-Way Active Measurement Protocol (TWAMP)" [RFC8545], and "Registry for Performance Metrics" [RFC8911].¶
6. Data Model Examples
This section presents simple but complete examples of configuring
all four entities in Figure 1, based on the YANG
module specified in Section 5. The
examples are illustrative
in nature but aim to be self-contained, i.e., were they to be executed in
a real TWAMP implementation, they would lead to correctly configured test
sessions. For completeness, examples are provided for both IPv4 and
IPv6. The examples are shown using XML
[W3C
More elaborate examples, which also include authentication parameters, are provided in Appendix A.¶
6.1. Control-Client
Figure 8 shows a configuration example for a
Control-Client with client
The following example shows a Control-Client with two instances of
client
6.2. Server
Figure 9 shows a configuration example for a
Server with server
The following example presents a Server with the TWAMP-Control
connection corresponding to the control connection name
6.3. Session-Sender
Figure 10 shows a configuration example for a
Session-Sender with session
The following configuration example shows a Session-Sender with the two TWAMP-Test sessions presented in Section 6.1.¶
6.4. Session-Reflector
This configuration example shows a Session
The following example shows the two Session
7. Security Considerations
Virtually all existing measurement systems using TWAMP [RFC5357] are administered by the same network operator. For example, attacks on the measurement infrastructure could be launched by third parties to commandeer the packet generation capability, corrupt the measurements, or perform other nefarious acts.¶
The YANG module specified in this document
defines a schema for data that is designed to be accessed via network
management protocols such as NETCONF [RFC6241] or
RESTCONF [RFC8040]. The lowest
NETCONF layer is the secure transport layer, and
the mandatory
The Network Configuration Access Control Model (NACM) [RFC8341] provides the means to restrict access for particular NETCONF or RESTCONF users to a preconfigured subset of all available NETCONF or RESTCONF protocol operations and content.¶
There are a number of data nodes defined in this YANG module that are
writable
Some of the readable data nodes in this YANG module may be considered
sensitive or vulnerable in some network environments. It is thus
important to control read access (e.g., via get, get-config, or
notification) to these data nodes. This is the subtree and data node
and its sensitivity
The TWAMP YANG data model does not define RPC operations, as detailed in Appendix B, and defers the definition of NETCONF RPC operations to each implementation. These RPC operations, when defined, may be considered sensitive or vulnerable in some network environments. It is thus important to control access to these operations.¶
8. IANA Considerations
IANA has registered the following URI in the "IETF XML Registry" [RFC3688].¶
- URI:
- urn
:ietf :params :xml :ns :yang :ietf -twamp¶ - Registrant Contact:
- The IESG.¶
- XML:
- N/A; the requested URI is an XML namespace.¶
IANA has registered the following YANG module in the "YANG Module Names" registry [RFC6020].¶
9. References
9.1. Normative References
- [RFC2119]
-
Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, DOI 10
.17487 , , <https:///RFC2119 www >..rfc -editor .org /info /rfc2119 - [RFC3432]
-
Raisanen, V., Grotefeld, G., and A. Morton, "Network performance measurement with periodic streams", RFC 3432, DOI 10
.17487 , , <https:///RFC3432 www >..rfc -editor .org /info /rfc3432 - [RFC3688]
-
Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, DOI 10
.17487 , , <https:///RFC3688 www >..rfc -editor .org /info /rfc3688 - [RFC4086]
-
Eastlake 3rd, D., Schiller, J., and S. Crocker, "Randomness Requirements for Security", BCP 106, RFC 4086, DOI 10
.17487 , , <https:///RFC4086 www >..rfc -editor .org /info /rfc4086 - [RFC4656]
-
Shalunov, S., Teitelbaum, B., Karp, A., Boote, J., and M. Zekauskas, "A One-way Active Measurement Protocol (OWAMP)", RFC 4656, DOI 10
.17487 , , <https:///RFC4656 www >..rfc -editor .org /info /rfc4656 - [RFC5357]
-
Hedayat, K., Krzanowski, R., Morton, A., Yum, K., and J. Babiarz, "A Two-Way Active Measurement Protocol (TWAMP)", RFC 5357, DOI 10
.17487 , , <https:///RFC5357 www >..rfc -editor .org /info /rfc5357 - [RFC5905]
-
Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, "Network Time Protocol Version 4: Protocol and Algorithms Specification", RFC 5905, DOI 10
.17487 , , <https:///RFC5905 www >..rfc -editor .org /info /rfc5905 - [RFC6020]
-
Bjorklund, M., Ed., "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", RFC 6020, DOI 10
.17487 , , <https:///RFC6020 www >..rfc -editor .org /info /rfc6020 - [RFC6038]
-
Morton, A. and L. Ciavattone, "Two-Way Active Measurement Protocol (TWAMP) Reflect Octets and Symmetrical Size Features", RFC 6038, DOI 10
.17487 , , <https:///RFC6038 www >..rfc -editor .org /info /rfc6038 - [RFC6241]
-
Enns, R., Ed., Bjorklund, M., Ed., Schoenwaelder, J., Ed., and A. Bierman, Ed., "Network Configuration Protocol (NETCONF)", RFC 6241, DOI 10
.17487 , , <https:///RFC6241 www >..rfc -editor .org /info /rfc6241 - [RFC6242]
-
Wasserman, M., "Using the NETCONF Protocol over Secure Shell (SSH)", RFC 6242, DOI 10
.17487 , , <https:///RFC6242 www >..rfc -editor .org /info /rfc6242 - [RFC6991]
-
Schoenwaelder, J., Ed., "Common YANG Data Types", RFC 6991, DOI 10
.17487 , , <https:///RFC6991 www >..rfc -editor .org /info /rfc6991 - [RFC7717]
-
Pentikousis, K., Ed., Zhang, E., and Y. Cui, "IKEv2-Derived Shared Secret Key for the One-Way Active Measurement Protocol (OWAMP) and Two-Way Active Measurement Protocol (TWAMP)", RFC 7717, DOI 10
.17487 , , <https:///RFC7717 www >..rfc -editor .org /info /rfc7717 - [RFC7950]
-
Bjorklund, M., Ed., "The YANG 1.1 Data Modeling Language", RFC 7950, DOI 10
.17487 , , <https:///RFC7950 www >..rfc -editor .org /info /rfc7950 - [RFC8040]
-
Bierman, A., Bjorklund, M., and K. Watsen, "RESTCONF Protocol", RFC 8040, DOI 10
.17487 , , <https:///RFC8040 www >..rfc -editor .org /info /rfc8040 - [RFC8174]
-
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10
.17487 , , <https:///RFC8174 www >..rfc -editor .org /info /rfc8174 - [RFC8341]
-
Bierman, A. and M. Bjorklund, "Network Configuration Access Control Model", STD 91, RFC 8341, DOI 10
.17487 , , <https:///RFC8341 www >..rfc -editor .org /info /rfc8341 - [RFC8446]
-
Rescorla, E., "The Transport Layer Security (TLS) Protocol Version 1.3", RFC 8446, DOI 10
.17487 , , <https:///RFC8446 www >..rfc -editor .org /info /rfc8446 - [RFC8545]
-
Morton, A., Ed. and G. Mirsky, Ed., "Well-Known Port Assignments for the One-Way Active Measurement Protocol (OWAMP) and the Two-Way Active Measurement Protocol (TWAMP)", RFC 8545, DOI 10
.17487 , , <https:///RFC8545 www >..rfc -editor .org /info /rfc8545 - [RFC8911]
-
Bagnulo, M., Claise, B., Eardley, P., Morton, A., and A. Akhter, "Registry for Performance Metrics", RFC 8911, DOI 10
.17487 , , <https:///RFC8911 www >..rfc -editor .org /info /rfc8911 - [UML]
- ISO/IEC, "Information technology - Open Distributed Processing - Unified Modeling Language (UML) Version 1.4.2", ISO/IEC 19501:2005, OMG-UML VER 1.3, .
- [W3C
.REC -xml -20081126] -
Bray, T., Paoli, J., Sperberg
-Mc , Maler, E., and F. Yergeau, "Extensible Markup Language (XML) 1.0 (Fifth Edition)", World Wide Web Consortium Recommendation RECQueen, M. -xml , , <https://-20081126 www >..w3 .org /TR /2008 /REC -xml -20081126
9.2. Informative References
- [NSC]
-
John, W., Pentikousis, K., Agapiou, G., Jacob, E., Kind, M., Manzalini, A., Risso, F., Staessens, D., Steinert, R., and C. Meirosu, "Research directions in network service chaining", 2013 IEEE SDN for Future Networks and Services
(SDN4FNS), Trento, Italy, DOI 10
.1109 , , <https:///SDN4FNS .2013 .6702549 doi >..org /10 .1109 /SDN4FNS .2013 .6702549 - [PERF-METRICS]
-
IANA, "Performance Metrics", <https://
www >..iana .org /assignments /performance -metrics - [RFC2330]
-
Paxson, V., Almes, G., Mahdavi, J., and M. Mathis, "Framework for IP Performance Metrics", RFC 2330, DOI 10
.17487 , , <https:///RFC2330 www >..rfc -editor .org /info /rfc2330 - [RFC5618]
-
Morton, A. and K. Hedayat, "Mixed Security Mode for the Two-Way Active Measurement Protocol (TWAMP)", RFC 5618, DOI 10
.17487 , , <https:///RFC5618 www >..rfc -editor .org /info /rfc5618 - [RFC5938]
-
Morton, A. and M. Chiba, "Individual Session Control Feature for the Two-Way Active Measurement Protocol (TWAMP)", RFC 5938, DOI 10
.17487 , , <https:///RFC5938 www >..rfc -editor .org /info /rfc5938 - [RFC7312]
-
Fabini, J. and A. Morton, "Advanced Stream and Sampling Framework for IP Performance Metrics (IPPM)", RFC 7312, DOI 10
.17487 , , <https:///RFC7312 www >..rfc -editor .org /info /rfc7312 - [RFC7426]
-
Haleplidis, E., Ed., Pentikousis, K., Ed., Denazis, S., Hadi Salim, J., Meyer, D., and O. Koufopavlou, "Software
-Defined Networking (SDN): Layers and Architecture Terminology" , RFC 7426, DOI 10.17487 , , <https:///RFC7426 www >..rfc -editor .org /info /rfc7426 - [RFC8018]
-
Moriarty, K., Ed., Kaliski, B., and A. Rusch, "PKCS #5: Password-Based Cryptography Specification Version 2.1", RFC 8018, DOI 10
.17487 , , <https:///RFC8018 www >..rfc -editor .org /info /rfc8018 - [RFC8340]
-
Bjorklund, M. and L. Berger, Ed., "YANG Tree Diagrams", BCP 215, RFC 8340, DOI 10
.17487 , , <https:///RFC8340 www >..rfc -editor .org /info /rfc8340 - [RFC8342]
-
Bjorklund, M., Schoenwaelder, J., Shafer, P., Watsen, K., and R. Wilton, "Network Management Datastore Architecture (NMDA)", RFC 8342, DOI 10
.17487 , , <https:///RFC8342 www >..rfc -editor .org /info /rfc8342
Appendix A. Detailed Data Model Examples
This appendix extends the examples presented in Section 6 by configuring more fields, such as authentication parameters, DSCP values, and so on.¶
A.1. Control-Client
A.2. Server
A.3. Session-Sender
A.4. Session-Reflector
Appendix B. TWAMP Operational Commands
TWAMP operational commands could be performed programmaticall
With respect to programmability
However, TWAMP [RFC5357] does not attempt to describe such operational actions. Refer also to Section 2 and the unlabeled links in Figure 1. In actual deployments, different TWAMP implementations may support different sets of operational commands, with different restrictions. Therefore, this document considers it the responsibility of the individual implementation to define its corresponding data model for TWAMP operational commands.¶
Acknowledgments
We thank Fred Baker, Kevin D'Souza, Gregory Mirsky, Brian Trammell, Robert Sherman, and Marius Georgescu for their thorough and constructive reviews, comments, and text suggestions.¶
Haoxing Shen contributed to the definition of the YANG module in Section 5.¶
Jan Lindblad and Ladislav Lhotka did thorough reviews of the YANG module and the examples in Appendix A.¶
Kostas Pentikousis was partially supported by FP7 UNIFY, a research project partially funded by the European Community under the Seventh Framework Program (grant agreement no. 619609). The views expressed here are those of the authors only. The European Commission is not liable for any use that may be made of the information in this document.¶
Contributors
Lianshu Zheng¶