ALTO Working Group | Q. Wu |
Internet-Draft | Y. Lee |
Intended status: Standards Track | D. Dhody |
Expires: April 23, 2014 | Huawei |
October 20, 2013 |
ALTO Extensions for Traffic Engineering (TE) performance metrics in JSON format
draft-wu-alto-json-te-02
Cost metric is a basic concept in Application-Layer Traffic Optimization (ALTO). It is used in both the Cost Map Service and the Endpoint Cost Service. However the base protocol defines only a single cost metric, i.e., the generic "routingcost" metric (Sec. 14.2 of ALTO base specification [ALTO]). In practice, applications may request network information on other cost (including performance) metrics.
In this document, we define five new base metrics which are delay, jitter, pktloss (packet loss), bandwidth and hopcount. These base metrics are further extended with these nine new metrics linkdelay, linkjitter, linkloss, maxbw (Maximum Bandwidth), maxreservbw (Maximum Reserved Bandwdith), unreservbw (Unreserved Bandwidth), residuebw (Residual Bandwidth), availbw (Available Bandwidth), and utilbw (Utilized Bandwidth). Also a new parameter anomalousstate is added. These fourteen cost metrics are derived from OSPF-TE and ISIS-TE and can be either used as constraint attribute associated with 'routingcost' cost metric attribute or used as returned Cost metrics in the response, or both and hence provide a relatively comprehensive set of cost metrics for ALTO.
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."
This Internet-Draft will expire on April 23, 2014.
Copyright (c) 2013 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 (http://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.
The ALTO protocol [ALTO] uses a REST-ful design , and encodes its requests and responses using JSON [RFC4627] . In ALTO architecture [ALTO], the ALTO server allows alto information to be gathered from multiple systems(e.g., routing protocol). [OSPF-TE], [ISIS-TE], [BGP-LS] and [BGP-PM]describes extensions to routing protocol, that can be used to distribute network performance information (such as link delay, delay variation, packet loss, residual bandwidth, and available bandwidth). The mechanism defined in [OSPF-TE], [ISIS-TE], [BGP-LS], and [BGP-PM]can be used by an ALTO Server to retrieve the necessary performance information supplementing the prefix and network topology data gathered from other sources (such as Path Computation Element (PCE)) in the underlying network.
Cost metric is a basic concept in ALTO. It is used in both the Cost Map Service and the Endpoint Cost Service. However the base protocol defines only a single cost metric, i.e., the generic "routingcost" metric (Sec. 14.2 of [ALTO]). In practice, applications may request network information on other cost (such as performance) metrics. In this document, we define five new base metrics which are delay, jitter, pktloss (packet loss), bandwidth and hopcount. These base metrics are further extended with these nine new metrics linkdelay, linkjitter, linkloss, maxbw (Maximum Bandwidth), maxreservbw (Maximum Reserved Bandwdith), unreservbw (Unreserved Bandwidth), residuebw (Residual Bandwidth), availbw (Available Bandwidth), and utilbw (Utilized Bandwidth). Also a new parameter anomalousstate is added. These fourteen cost metrics are derived from [OSPF-TE] and [ISIS-TE] and can be either used as constraint attribute associated with 'routingcost' cost metric attribute or used as returned Cost metrics in the response, or both and hence provide a relatively comprehensive set of cost metrics for ALTO.
The introduction of a set of cost metrics allows us to extend the flexibility of ALTO services. In particular, both the Cost Map Service and the Endpoint Cost Service allow filtering. However, these two services as defined in the base protocol are limited in that the output information metric and the filtering (constraint) metric must be the same. However, applications may request a filtered "routingcost" Cost Map only for locations where the delay is below a threshold. This is not feasible in the ALTO base protocol. We discuss the overhead of implementing the aforementioned use case using the current base protocol, and propose a simple but effective extension to the "constraint" syntax to ALTO.
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 RFC2119 [RFC2119].
Syntax specifications shown here use the augmented Backus-Naur Form (ABNF) as described in [RFC5234], and are specified as in the base JSON specification [RFC4627].
Cost Metric name: delay Metric Description: To specify the average delay over a configurable interval for each source/destination pair between two endpoints (network locations) in the network. It could be either end to end delay or the delay associated with the link (linkdelay). The unit is microseconds. Cost Metric Value type: A single 'JSONNumber' type value containing an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Purpose: This is intended to be a new cost metric. It could be used as a cost metric constraint attribute used together with cost metric attribute 'routingcost' or on its own or as a returned cost metric in the response. Cost mode: A Cost Mode is encoded as a US-ASCII string. The string MUST either have the value 'numerical' or 'ordinal'. Measurement timing: Gather and update at the configurable interval if it is link attribute. See [OSPF-TE] for configurable interval. The configurable interval for end to end delay could be same as link. Measurement points with Potential Measurement Domain: The measurement point could be at any endpoint between source and destination in the network. Examples 1: POST /endpointcost/lookup HTTP/1.1 Host: alto.example.com Content-Length: 195 Content-Type: application/alto-endpointcostparams+json Accept: application/alto-endpointcost+json,application/alto-error+json { "cost-type": {"cost-mode" : "numerical", "cost-metric" : "delay"}, "endpoints" : { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } } HTTP/1.1 200 OK Content-Length: 231 Content-Type: application/alto-endpointcost+json { "meta" : {}, "data" : { "cost-type": {"cost-mode" : "numerical", "cost-metric" : "delay"}, "map" : { "ipv4:192.0.2.2": { "ipv4:192.0.2.89" : 10, "ipv4:198.51.100.34" : 20, "ipv4:203.0.113.45" : 30, } } } } //Note that these are end to end delay values in microseconds. Example 2: POST /endpointcost/lookup HTTP/1.1 Host: alto.example.com Content-Length: 195 Content-Type: application/alto-endpointcostparams+json Accept: application/alto-endpointcost+json,application/alto-error+json { "cost-type": {"cost-mode" : "numerical", "cost-metric" : "routingcost"}, "constraints" : {"delay ls 15"}, "endpoints" : { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } } HTTP/1.1 200 OK Content-Length: 231 Content-Type: application/alto-endpointcost+json "data": { "cost type": { "cost-mode": "numerical", "cost-metric":"routingcost"}, "constraints" : {"delay ls 15"}, "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0 ["delay eq 0"], "ipv4:198.51.100.34": 15 ["delay eq 3"], "ipv4:203.0.113.45": 1 ["delay eq 12"], } } //Note that these are end to end routing cost and delay .
Cost Metric name: jitter Metric Description: To specify the average delay variation over a configurable interval for each source/destination pair between two endpoints(network locations)in the network. It could be either end to end jitter or the jitter associated with a link (linkjitter). The unit is microseconds. Cost Metric Value type: A single 'JSONumber' type value containing an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Purpose: This is intended to be a constraint attribute value It could be used as a cost metric constraint attribute used together with cost metric attribute 'routingcost' or on its own or as a returned cost metric in the response. Cost mode: A Cost Mode is encoded as a US-ASCII string. The string MUST either have the value 'numerical' or 'ordinal'. Measurement timing: Gather and update at the configurable interval if it is link attribute. See [OSPF-TE] for configurable interval. The configurable interval for end to end jitter could be same as link. Measurement points with Potential Measurement Domain: The measurement point could be at any endpoint between source and destination in the network. Examples: POST /endpointcost/lookup HTTP/1.1 Host: alto.example.com Content-Length: 195 Content-Type: application/alto-endpointcostparams+json Accept: application/alto-endpointcost+json,application/alto-error+json { "cost-type": {"cost-mode" : "numerical", "cost-metric" : "routingcost"}, "constraints" : {"delay ls 15","jitter ls 8"}, "endpoints" : { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } } HTTP/1.1 200 OK Content-Length: 231 Content-Type: application/alto-endpointcost+json "data": { "cost type": { "cost-mode": "numerical", "cost-metric":"routingcost"}, "constraints" : {"delay ls 15","jitter ls 8"}, "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0 ["delay eq 0", "jitter eq 0"], "ipv4:198.51.100.34": 5 ["delay eq 3", "jitter eq 1"], "ipv4:203.0.113.45":2 ["delay eq 12", "jitter eq 5"], }
Cost Metric name: pktloss Metric Description: To specify a percentage of the total traffic sent over a configurable interval for each source/destination pair between two endpoints(network locations) in the network. It could be either end to end packet loss or the packet loss associated with a link (linkloss). Cost Metric Value type: A single number value containing an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Purpose: This is intended to be a constraint attribute value It could be used as a cost metric constraint attribute used together with cost metric attribute 'routingcost' or on its own or as a returned cost metric in the response. Cost mode: A Cost Mode is encoded as a US-ASCII string. The string MUST either have the value 'numerical' or 'ordinal'. Measurement timing: Gather and update at the configurable interval if it is link attribute. See [OSPF-TE] for configurable interval. The configurable interval for end to end packet loss could be same as link. Measurement points with Potential Measurement Domain: The measurement point could be at any endpoint between source and destination in the network. Examples: POST /endpointcost/lookup HTTP/1.1 Host: alto.example.com Content-Length: 195 Content-Type: application/alto-endpointcostparams+json Accept: application/alto-endpointcost+json,application/alto-error+json { "cost-type": {"cost-mode" : "numerical", "cost-metric" : "routingcost"}, "constraints" : {"pktloss le 0.3"}, "endpoints" : { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } } HTTP/1.1 200 OK Content-Length: 231 Content-Type: application/alto-endpointcost+json "data": { "cost type": { "cost-mode": "numerical", "cost-metric":"routingcost"}, "constraints" : {"pktloss le 0.3"}, "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0 ["pktloss eq 0.0"], "ipv4:198.51.100.34": 1 ["pktloss eq 0.0001"], "ipv4:203.0.113.45": 0 ["pktloss eq 0.0"], } } [Editor Note: We have to be clear when the new metrics are part of response and when it is not?]
Cost Metric name: bandwidth Metric Description: To specify Bandwidth over a configurable interval for each source/destination pair between two endpoints (network locations)in the network. It could be either aggregated bandwidth for end to end path or the bandwidth associated with a link. The units are bytes per second. Cost Metric Value type: A single 'JSONNumber' type value containing an integer component that may be prefixed with an optional minus sign, which may be followed by a fraction part and/or an exponent part. Purpose: This is intended to be a constraint attribute value It could be used as a cost metric constraint attribute used together with cost metric attribute 'routingcost' or on its own or as a returned cost metric in the response. Cost mode: A Cost Mode is encoded as a US-ASCII string. The string MUST either have the value 'numerical' or 'ordinal'. This is just a definition of the costtype 'bandwidth'. The use of this cost is always in conjunction with what it represents, which could be Max Bandwidth (maxbw), Residual Bandwidth (residuebw) etc. Examples: (based on Residual Bandwidth (residuebw)) POST /endpointcost/lookup HTTP/1.1 Host: alto.example.com Content-Length: 195 Content-Type: application/alto-endpointcostparams+json Accept: application/alto-endpointcost+json,application/alto-error+json { "cost-type": {"cost-mode" : "numerical", "cost-metric" : "routingcost"}, "constraints" : {"residuebw gt 1500"}, "endpoints" : { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } } HTTP/1.1 200 OK Content-Length: 231 Content-Type: application/alto-endpointcost+json "data": { "cost type": { "cost-mode": "numerical", "cost-metric":"routingcost"}, "constraints" : {"residuebw gt 1500"}, "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0 ["residuebw eq 0"], "ipv4:198.51.100.34": 5 ["residuebw eq 2000"], "ipv4:203.0.113.45":2 ["residuebw eq 5000"], } }
Cost Metric name: hopcount Metric Description: To specify the number of hops in the path between the source endpoint and the destination endpoint. Editor Note: Need to specify which layer (IP perhaps), details TBD for multiple-layer aspect. Cost Metric Value type: A single 'JSONNumber' type value containing an integer component that may be prefixed with an optional minus sign. Purpose: This is intended to be a constraint attribute value It could be used as a cost metric constraint attribute used together with cost metric attribute 'routingcost' or on its own or as a returned cost metric in the response. Cost mode: A Cost Mode is encoded as a US-ASCII string. string MUST either have the value 'numerical' or 'ordinal'.
Object { LinkName link-name; [JSONBool linkstate;] //TRUE = not steady; FALSE = steady; delay dl; }linkdelay;
A linkdelay is gathered using [OSPF-TE], [ISIS-TE] or [BGP-PM]. It is extended from Delay Cost metric and defined as:
Object { LinkName link-name; [JSONBool linkstate;] //TRUE = not steady; FALSE = steady; jitter jt; }linkjitter;
A linkjitter is gathered using [OSPF-TE], [ISIS-TE] or [BGP-PM]. It is extended from Jitter Cost metric and defined as:
Object { LinkName link-name; [JSONBool linkstate;] //TRUE = not steady; FALSE = steady; pktloss l; }linkloss;
A linkloss is gathered using [OSPF-TE], [ISIS-TE] or [BGP-PM]. It is extended from Packet loss cost metric and defined as:
Object { BWType max; [LinkName link-name;] [JSONBool linkstate;] //TRUE = not steady; FALSE = steady; Bandwidth bw; }maxbw;
A maxbw is gathered using [RFC3630], [RFC3784] or [BGP-LS]. It could be either maximum bandwidth for end to end path or the bandwidth associated with a link. It is extended from Bandwidth Cost metric and defined as:
Object { BWType maxreserved; [LinkName link-name;] [JSONBool linkstate;] //TRUE = not steady; FALSE = steady; Bandwidth bw; }maxreservbw;
A maxreservbw is gathered using [RFC3630], [RFC3784] or [BGP-LS]. It could be either maximum reserved bandwidth for end to end path or the bandwidth associated with a link. It is extended from Bandwidth Cost metric and defined as:
Object { BWType unreserved; [LinkName link-name;] [JSONBool linkstate;] //TRUE = not steady; FALSE = steady; Bandwidth bw<1,8> }unreservbw; //This bandwidth is per priority [TBD].
A unreservbw is gathered using [RFC3630], [RFC3784] or [BGP-LS]. It could be either unreserved bandwidth for end to end path or the bandwidth associated with a link. It is extended from Bandwidth Cost metric and defined as:
Object { BWType Residue; [LinkName link-name;] [JSONBool linkstate;] //TRUE = not steady; FALSE = steady; Bandwidth bw; }rediduebw;
A residuebw is gathered using [OSPF-TE], [ISIS-TE] or [BGP-PM]. It could be either residual bandwidth for end to end path or the bandwidth associated with a link. It is extended from Bandwidth Cost metric and defined as:
Object { BWType Available; [LinkName link-name;] [JSONBool linkstate;] //TRUE = not steady; FALSE = steady; Bandwidth bw; }availbw;
A availbw is gathered using [OSPF-TE], [ISIS-TE] or [BGP-PM]. It could be either available bandwidth for end to end path or the bandwidth associated with a link. It is extended from Bandwidth Cost metric and defined as:
Object { BWType Utilized; [LinkName link-name;] [JSONBool linkstate;] //TRUE = not steady; FALSE = steady; Bandwidth bw; }utilbw;
A utilbw is gathered using [OSPF-TE], [ISIS-TE] or [BGP-PM]. It could be either utilized bandwidth for end to end path or the bandwidth associated with a link. It is extended from Bandwidth Cost metric and defined as:
The following sections define Parameters used within cost metrics specified in the section 3.
Parameter name: anomalousstate Purpose: Optinally used in a prefixed cost metric to indicate whether it is steady state of the performance metric. Description: This state can be used to notify to the ALTO client if the performance metric associated is in a steady state. The ALTO client may use this to perform some action. The anomalousstate is set when the measured value of this parameter exceeds its configured maximum threshold. The anomalousstate is cleared when the measured value falls below its configured threshold. Anomalousstate should be used together with Cost metric we defined in the section 3. Cost Metrics prefixed with 'a:' are reserved for cost metric that does not have steady state network performance. Cost Metrics without prefix 'a:' indicate the cost metric has steady state network performance. Examples: POST /endpointcost/lookup HTTP/1.1 Host: alto.example.com Content-Length: 195 Content-Type: application/alto-endpointcostparams+json Accept: application/alto-endpointcost+json,application/alto-error+json { "cost-type": {"cost-mode" : "numerical", "cost-metric" : "routingcost"}, "constraints" : {"delay ls 15"}, "endpoints" : { "srcs": [ "ipv4:192.0.2.2" ], "dsts": [ "ipv4:192.0.2.89", "ipv4:198.51.100.34", "ipv4:203.0.113.45" ] } } HTTP/1.1 200 OK Content-Length: 231 Content-Type: application/alto-endpointcost+json "data": { "cost type":{ "cost-mode": "numerical", "cost-metric":"routingcost"} "constraints": {"delay ls 15"}, "map": { "ipv4:192.0.2.2": { "ipv4:192.0.2.89": 0 ["a:delay eq 10"], } }
The properties defined in this document present no security considerations beyond those in Section 14 of the base ALTO specification [ALTO].
IANA has added the following entries to the ALTO cost map Properties registry, defined in Section 3 of [RFCXXX].
+-----------+--------------+------------------------+ | Namespace | Property | Reference | +-----------+--------------+------------------------+ | | delay | [RFCxxxx], Section 3.1 | | | jitter | [RFCxxxx], Section 3.2 | | | pktloss | [RFCxxxx], Section 3.3 | | | linkdelay | [RFCxxxx], Section 3.6 | | | linkjitter | [RFCxxxx], Section 3.7 | | | linkloss | [RFCxxxx], Section 3.8 | | | bandwidth | [RFCxxxx], Section 3.4 | | | hopcount | [RFCxxxx], Section 3.5 | | | maxbw |[RFCxxxx], Section 3.9.1| | | maxresbw |[RFCxxxx], Section 3.9.2| | | unresdbw |[RFCxxxx], Section 3.9.3| | | residbw |[RFCxxxx], Section 3.9.4| | | availbw |[RFCxxxx], Section 3.9.5| | | utilbw |[RFCxxxx], Section 3.9.6| +-----------+--------------+------------------------+
IANA has added the following entries to the " ALTO cost map Parameters" registry, defined in [RFCxxxx] Section 4.1.
+-------+------------------------+------------------------+ | Name- | | | | space | Parameter | Reference | +-------+------------------------+------------------------+ | | anomalousstate | [RFCxxxx], Section 4.1 | +-------+------------------------+------------------------+
[RFC2119] | Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", March 1997. |
[RFC5234] | Crocker, D., "Augmented BNF for Syntax Specifications: ABNF", RFC 5234, January 2008. |
[RFC4627] | Crockford, D., "The application/json Media Type for JavaScript Object Notation (JSON)", RFC 4627, July 2006. |
[ALTO] | Alimi, R., "ALTO Protocol", ID draft-ietf-alto-protocol-16, May 2013. |
[OSPF-TE] | Giacalone, S., "OSPF Traffic Engineering (TE) Metric Extensions", ID draft-ietf-ospf-te-metric-extensions-04, June 2013. |
[ISIS-TE] | Giacalone, S., "ISIS Traffic Engineering (TE) Metric Extensions", ID draft-ietf-isis-te-metric-extensions-01, October 2013. |
[BGP-LS] | Gredler, H., "North-Bound Distribution of Link-State and TE Information using BGP", ID draft-ietf-idr-ls-distribution-03, May 2013. |
[BGP-PM] | Wu, Q., "BGP attribute for North-Bound Distribution of Traffic Engineering (TE) performance Metrics", ID draft-wu-idr-te-pm-bgp-02, October 2013. |
[RFC6390] | Clark, A. and B. Claise, "Framework for Performance Metric Development", RFC 6390, July 2011. |
" object { CostType cost-type; [JSONString constraints<0..*>;] [PIDFilter pids;] } ReqFilteredCostMap; object { PIDName srcs<0..*>; PIDName dsts<0..*>; } PIDFilter; with members: cost-type The CostType (Section 9.7) for the returned costs. The cost-metric and cost-mode fields MUST match one of the supported Cost Types indicated in this resource's capabilities (Section 10.2.2.4). The ALTO Client SHOULD omit the description field, and if present, the ALTO Server MUST ignore the description field. constraints Defines a list of additional constraints on which elements of the Cost Map are returned. This parameter MUST NOT be specified if this resource's capabilities ( Section 10.2.2.4) indicate that constraint support is not available. A constraint contains two entities separated by whitespace: (1) an operator, 'gt' for greater than, 'lt' for less than, 'ge' for greater than or equal to, 'le' for less than or equal to, or 'eq' for equal to; (2) a target cost value. The cost value is a number that MUST be defined in the same units as the Cost Metric indicated by the cost-metric parameter. ALTO Servers SHOULD use at least IEEE 754 double-precision floating point [IEEE.754.2008] to store the cost value, and SHOULD perform internal computations using double- precision floating-point arithmetic. If multiple 'constraint' parameters are specified, they are interpreted as being related to each other with a logical AND. ”
Section 10.2.2.3 of "ALTO: Application Layer Traffic Optimization Protocol" [I.D-ietf-alto-protocol] states:
“ [gt | lt | ge | le | eq ] <value> ”
In the JSON Object of type ReqFilteredCostMap, the constraint attribute is expressed as:
“ <cost-type2> [gt | lt | ge | le | eq ] <value> ”
In this specification, the constraint attribute is changed to
“ constraints Defines a list of additional constraints on which elements of the Cost Map are returned. This parameter MUST NOT be specified if this resource's capabilities ( Section 10.2.2.4) indicate that constraint support is not available. A constraint contains three entities separated by whitespace: (1)an cost type is by default cost-type in the JSON Object of type ReqFilteredCostMap. In addition, it could be another cost-type used for the returned cost (2) an operator, 'gt' for greater than, 'lt' for less than, 'ge' for greater than or equal to, 'le' for less than or equal to, or 'eq' for equal to; (3) a target cost value. The cost value is a number that MUST be defined in the same units as the Cost Metric indicated by the cost-metric parameter. ALTO Servers SHOULD use at least IEEE 754 double-precision floating point [IEEE.754.2008] to store the cost value, and SHOULD perform internal computations using double- precision floating-point arithmetic. If multiple 'constraint' parameters are specified, they are interpreted as being related to each other with a logical AND. ”
Accordingly, the constraints definition is changed to:
Editor-Notes: Filtering constraint extension should move to another document defining multi-metrics filtering in the future.
Y. Richard Yang Yale University 51 Prospect St New Haven CT USA Email: yry@cs.yale.edu Roni Even Gesher Erove Ltd 14 David Hamelech Tel Aviv 64953 Israel Email: ron.even.tlv@gmail.com Liang Xia Huawei 101 Software Avenue, Yuhua District Nanjing, Jiangsu 210012 China Email: frank.xialiang@huawei.com