idnits 2.17.1 draft-fz-6man-ipv6-alt-mark-09.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (May 4, 2020) is 1454 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) -- Obsolete informational reference (is this intentional?): RFC 8321 (Obsoleted by RFC 9341) Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 6MAN Working Group G. Fioccola 3 Internet-Draft T. Zhou 4 Intended status: Standards Track Huawei 5 Expires: November 5, 2020 M. Cociglio 6 Telecom Italia 7 F. Qin 8 China Mobile 9 May 4, 2020 11 IPv6 Application of the Alternate Marking Method 12 draft-fz-6man-ipv6-alt-mark-09 14 Abstract 16 This document describes how the Alternate Marking Method can be used 17 as the passive performance measurement tool in an IPv6 domain and 18 reports implementation considerations. It proposes how to define a 19 new Extension Header Option to encode alternate marking technique and 20 both Hop-by-Hop Options Header and Destination Options Header are 21 considered. 23 Requirements Language 25 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 26 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 27 document are to be interpreted as described in RFC 2119 [RFC2119]. 29 Status of This Memo 31 This Internet-Draft is submitted in full conformance with the 32 provisions of BCP 78 and BCP 79. 34 Internet-Drafts are working documents of the Internet Engineering 35 Task Force (IETF). Note that other groups may also distribute 36 working documents as Internet-Drafts. The list of current Internet- 37 Drafts is at https://datatracker.ietf.org/drafts/current/. 39 Internet-Drafts are draft documents valid for a maximum of six months 40 and may be updated, replaced, or obsoleted by other documents at any 41 time. It is inappropriate to use Internet-Drafts as reference 42 material or to cite them other than as "work in progress." 44 This Internet-Draft will expire on November 5, 2020. 46 Copyright Notice 48 Copyright (c) 2020 IETF Trust and the persons identified as the 49 document authors. All rights reserved. 51 This document is subject to BCP 78 and the IETF Trust's Legal 52 Provisions Relating to IETF Documents 53 (https://trustee.ietf.org/license-info) in effect on the date of 54 publication of this document. Please review these documents 55 carefully, as they describe your rights and restrictions with respect 56 to this document. Code Components extracted from this document must 57 include Simplified BSD License text as described in Section 4.e of 58 the Trust Legal Provisions and are provided without warranty as 59 described in the Simplified BSD License. 61 Table of Contents 63 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 64 2. Alternate Marking application to IPv6 . . . . . . . . . . . . 3 65 3. Definition of the AltMark Option . . . . . . . . . . . . . . 4 66 3.1. Data Fields Format . . . . . . . . . . . . . . . . . . . 4 67 4. Use of the AltMark Option . . . . . . . . . . . . . . . . . . 5 68 5. Alternate Marking Method Operation . . . . . . . . . . . . . 7 69 5.1. Packet Loss Measurement . . . . . . . . . . . . . . . . . 7 70 5.2. Packet Delay Measurement . . . . . . . . . . . . . . . . 8 71 5.3. Flow Monitoring Identification . . . . . . . . . . . . . 9 72 5.4. Multipoint and Clustered Alternate Marking . . . . . . . 10 73 5.5. Data Collection and Calculation . . . . . . . . . . . . . 10 74 6. Security Considerations . . . . . . . . . . . . . . . . . . . 10 75 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 76 8. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 77 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 78 9.1. Normative References . . . . . . . . . . . . . . . . . . 11 79 9.2. Informative References . . . . . . . . . . . . . . . . . 11 80 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 82 1. Introduction 84 [RFC8321] and [I-D.ietf-ippm-multipoint-alt-mark] describe a passive 85 performance measurement method, which can be used to measure packet 86 loss, latency and jitter on live traffic. Since this method is based 87 on marking consecutive batches of packets, the method is often 88 referred as Alternate Marking Method. 90 The Alternate Marking Method has become mature to be implemented and 91 encoded in the IPv6 protocol and this document defines how it can be 92 used to measure packet loss and delay metrics in IPv6. 94 The format of the IPv6 addresses is defined in [RFC4291] while 95 [RFC8200] defines the IPv6 Header, including a 20-bit Flow Label and 96 the IPv6 Extension Headers. The Segment Routing Header (SRH) is 97 defined in [RFC8754]. 99 [I-D.fioccola-v6ops-ipv6-alt-mark] reported a summary on the possible 100 implementation options for the application of the Alternate Marking 101 Method in an IPv6 domain. This document, starting from the outcome 102 of [I-D.fioccola-v6ops-ipv6-alt-mark], introduces a new TLV that can 103 be encoded in the Options Headers (both Hop-by-Hop or Destination) 104 for the purpose of the Alternate Marking Method application in an 105 IPv6 domain. The case of SRH ([RFC8754]) is also discussed. 107 2. Alternate Marking application to IPv6 109 The Alternate Marking Method requires a marking field. As mentioned, 110 several alternatives have been analysed in 111 [I-D.fioccola-v6ops-ipv6-alt-mark] such as IPv6 Extension Headers, 112 IPv6 Address and Flow Label. 114 The only correct and robust choice that can actually be standardized 115 would be the use of a new TLV to be encoded in the Options Header 116 (Hop-by-Hop or Destination Option). 118 This approach is compliant with [RFC8200] indeed the Alternate 119 Marking application to IPv6 involves the following operations: 121 o The source node is the only one that writes the Option Header to 122 mark alternately the flow (for both Hop-by-Hop and Destination 123 Option). 125 o In case of Hop-by-Hop Option Header carrying Alternate Marking 126 bits, it is not inserted or deleted, but can be read by any node 127 along the path. The intermediate nodes may be configured to 128 support this Option or not. Anyway this does not impact the 129 traffic since the measurement can be done only for the nodes 130 configured to read the Option. 132 o In case of Destination Option Header carrying Alternate Marking 133 bits, it is not processed, inserted, or deleted by any node along 134 the path until the packet reaches the destination node. 136 Hop-by-Hop Option Header is also useful to signal to routers on the 137 path to process the Alternate Marking, anyway it is to be expected 138 that some routers cannot process it unless explicitly configured. 140 The optimization of both implementation and scaling of the Alternate 141 Marking Method is also considered and a way to identify flows is 142 required. The Flow Monitoring Identification field (FlowMonID), as 143 introduced in the next sections, goes in this direction and it is 144 used to identify a monitored flow. 146 Note that the FlowMonID is different from the Flow Label field of the 147 IPv6 Header ([RFC8200]). Flow Label is used for application service, 148 like load-balancing/equal cost multi-path (LB/ECMP) and QoS. 149 Instead, FlowMonID is only used to identify the monitored flow. The 150 reuse of flow label field for identifying monitored flows is not 151 considered since it may change the application intent and forwarding 152 behaviour. Furthermore the flow label may be changed en route and 153 this may also violate the measurement task. Those reasons make the 154 definition of the FlowMonID necessary for IPv6. Flow Label and 155 FlowMonID within the same packet have different scope, identify 156 different flows, and associate different uses. 158 3. Definition of the AltMark Option 160 The desired choice is to define a new TLV for the Options Extension 161 Headers, carrying the data fields dedicated to the alternate marking 162 method. 164 3.1. Data Fields Format 166 The following figure shows the data fields format for enhanced 167 alternate marking TLV. This AltMark data is expected to be 168 encapsulated in the IPv6 Options Headers (Hop-by-Hop or Destination 169 Option). 171 0 1 2 3 172 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 173 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 174 | Option Type | Opt Data Len | 175 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 176 | FlowMonID |L|D| Reserved | 177 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 179 where: 181 o Option Type: 8 bit identifier of the type of Option that needs to 182 be allocated. Unrecognised Types MUST be ignored on receipt. For 183 Hop-by-Hop Options Header or Destination Options Header, [RFC8200] 184 defines how to encode the three high-order bits of the Option Type 185 field. The two high-order bits specify the action that must be 186 taken if the processing IPv6 node does not recognize the Option 187 Type; for AltMark these two bits MUST be set to 00 (skip over this 188 Option and continue processing the header). The third-highest- 189 order bit specifies whether or not the Option Data can change en 190 route to the packet's final destination; for AltMark the value of 191 this bit MUST be set to 0 (Option Data does not change en route). 193 o Opt Data Len: The length of the Option Data Fields of this Option 194 in bytes. 196 o FlowMonID: 20 bits unsigned integer. The FlowMon identifier is 197 described hereinafter. 199 o L: Loss flag for Packet Loss Measurement as described hereinafter; 201 o D: Delay flag for Single Packet Delay Measurement as described 202 hereinafter; 204 o Reserved: is reserved for future use. These bits MUST be set to 205 zero on transmission and ignored on receipt. 207 4. Use of the AltMark Option 209 The AltMark Option is the best way to implement the Alternate Marking 210 method and can be carried by the Hop-by-Hop Options header and the 211 Destination Options header. In case of Destination Option, it is 212 processed only by the source and destination nodes: the source node 213 inserts and the destination node removes it. While, in case of Hop- 214 by-Hop Option, it may be examined by any node along the path, if 215 explicitly configured to do so. In this way an unrecognized Hop-by- 216 Hop Option may be just ignored without impacting the traffic. 218 So it is important to highlight that the Option Layout can be used 219 both as Destination Option and as Hop-by-Hop Option depending on the 220 Use Cases and it is based on the chosen type of performance 221 measurement. In general, it is needed to perform both end to end and 222 hop by hop measurements, and the alternate marking methodology 223 allows, by definition, both performance measurements. Anyway, in 224 many cases the end-to-end measurement is not enough and it is 225 required also the hop-by-hop measurement, so the most complete choice 226 is the Hop-by-Hop Options Header. 228 IPv6, as specified in [RFC8200], allows nodes to optionally process 229 Hop-by-Hop headers. Specifically the Hop-by-Hop Options header is 230 not inserted or deleted, but may be examined or processed by any node 231 along a packet's delivery path, until the packet reaches the node (or 232 each of the set of nodes, in the case of multicast) identified in the 233 Destination Address field of the IPv6 header. Also, it is expected 234 that nodes along a packet's delivery path only examine and process 235 the Hop-by-Hop Options header if explicitly configured to do so. 237 The Hop-by-Hop Option defined in this document is designed to take 238 advantage of the property of how Hop-by-Hop options are processed. 239 Nodes that do not support this Option SHOULD ignore them. This can 240 mean that, in this case, the performance measurement does not account 241 for all links and nodes along a path. 243 Another application that can be mentioned is SRv6. SRv6 leverages 244 the Segment Routing header which consists of a new type of routing 245 header. Like any other use case of IPv6, Hop-by-Hop and Destination 246 Options are useable when SRv6 header is present. Because SRv6 is a 247 routing header, Destination Options before the routing header are 248 processed by each destination in the route list. 250 In summary, it is possible to list the alternative possibilities: 252 o Destination Option => measurement only by node in Destination 253 Address. 255 o Hop-by-Hop Option => every router on the path with feature 256 enabled. 258 o Destination Option + SRH => every node that is an identity in the 259 SR path. 261 In general, Hop-by-Hop and Destination Options are the most suitable 262 ways to implement Alternate Marking. 264 It is worth mentioning that new Hop-by-Hop Options are not strongly 265 recommended in [RFC7045] and [RFC8200], unless there is a clear 266 justification to standardize it, because nodes may be configured to 267 ignore the Options Header, drop or assign packets containing an 268 Options Header to a slow processing path. In case of the AltMark 269 data fields described in this document, the motivation to standardize 270 a new Hop-by-Hop Option is that it is needed for OAM. An 271 intermediate node can read it or not but this does not affect the 272 packet behavior. The source node is the only one that writes the 273 Hop-by-Hop Option to mark alternately the flow, so, the performance 274 measurement can be done for those nodes configured to read this 275 Option, while the others are simply not considered for the metrics. 277 In addition to the previous alternatives, for legacy network it is 278 possible to mention a non-conventional application of the Destination 279 Option for the hop by hop usage. [RFC8200] defines that the nodes 280 along a path examine and process the Hop-by-Hop Options header only 281 if Hop-by-Hop processing is explicitly configured. On the other 282 hand, using the Destination Option for hop by hop action would cause 283 worse performance than Hop-by-Hop. The only motivation for the hop 284 by hop usage of Destination Options can be for compatibility reasons 285 but in general it is not recommended. 287 5. Alternate Marking Method Operation 289 This section describes how the method operates. [RFC8321] introduces 290 several alternatives but in this section the most applicable methods 291 are reported and a new fied is introduced to facilitate the 292 deployment and improve the scalability. 294 5.1. Packet Loss Measurement 296 The measurement of the packet loss is really straightforward. The 297 packets of the flow are grouped into batches, and all the packets 298 within a batch are marked by setting the L bit (Loss flag) to a same 299 value. The source node can switch the value of the L bit between 0 300 and 1 after a fixed number of packets or according to a fixed timer, 301 and this depends on the implementation. By counting the number of 302 packets in each batch and comparing the values measured by different 303 network nodes along the path, it is possible to measure the packet 304 loss occurred in any single batch between any two nodes. Each batch 305 represents a measurable entity unambiguously recognizable by all 306 network nodes along the path. 308 It is important to mention that for the application of this method 309 there are two elements to consider: the clock error between network 310 nodes and the network delay. These can create offsets between the 311 batches and out-of-order of the packets. The consequence is that it 312 is necessary to define a waiting interval where to get stable 313 counters and to avoid these issues. In addition this implies that 314 the length of the batches MUST be chosen large enough so that it is 315 not affected by those factors. 317 L bit=1 ----------+ +-----------+ +---------- 318 | | | | 319 L bit=0 +-----------+ +-----------+ 320 Batch n ... Batch 3 Batch 2 Batch 1 321 <---------> <---------> <---------> <---------> <---------> 323 Traffic Flow 324 ===========================================================> 325 L bit ...1111111111 0000000000 11111111111 00000000000 111111111... 326 ===========================================================> 328 Figure 1: Packet Loss Measurement and Single-Marking Methodology 329 using L bit 331 5.2. Packet Delay Measurement 333 The same principle used to measure packet loss can be applied also to 334 one-way delay measurement. Delay metrics MAY be calculated using the 335 two possibilities: 337 1. Single-Marking Methodology: This approach uses only the L bit to 338 calculate both packet loss and delay. In this case, the D flag 339 MUST be set to zero on transmit and ignored by the monitoring 340 points. The alternation of the values of the L bit can be used 341 as a time reference to calculate the delay. Whenever the L bit 342 changes and a new batch starts, a network node can store the 343 timestamp of the first packet of the new batch, that timestamp 344 can be compared with the timestamp of the first packet of the 345 same batch on a second node to compute packet delay. Anyway this 346 measurement is accurate only if no packet loss occurs and if 347 there is no packet reordering at the edges of the batches. A 348 different approach can also be considered and it is based on the 349 concept of the mean delay. The mean delay for each batch is 350 calculated by considering the average arrival time of the packets 351 for the relative batch. There are limitations also in this case 352 indeed, each node needs to collect all the timestamps and 353 calculate the average timestamp for each batch. In addition the 354 information is limited to a mean value. 356 2. Double-Marking Methodology: This approach is more complete and 357 uses the L bit only to calculate packet loss and the D bit (Delay 358 flag) is fully dedicated to delay measurements. The idea is to 359 use the first marking with the L bit to create the alternate flow 360 and, within the batches identified by the L bit, a second marking 361 is used to select the packets for measuring delay. The D bit 362 creates a new set of marked packets that are fully identified 363 over the network, so that a network node can store the timestamps 364 of these packets; these timestamps can be compared with the 365 timestamps of the same packets on a second node to compute packet 366 delay values for each packet. The most efficient and robust mode 367 is to select a single double-marked packet for each batch, in 368 this way there is no time gap to consider between the double- 369 marked packets to avoid their reorder. If a double-marked packet 370 is lost, the delay measurement for the considered batch is simply 371 discarded, but this is not a big problem because it is easy to 372 recognize the problematic batch and skip the measurement just for 373 that one. So in order to have more information about the delay 374 and to overcome out-of-order issues this method is preferred. 376 L bit=1 ----------+ +-----------+ +---------- 377 | | | | 378 L bit=0 +-----------+ +-----------+ 380 D bit=1 + + + + + 381 | | | | | 382 D bit=0 ------+----------+----------+----------+------------+----- 384 Traffic Flow 385 ===========================================================> 386 L bit ...1111111111 0000000000 11111111111 00000000000 111111111... 388 D bit ...0000010000 0000010000 00000100000 00001000000 000001000... 389 ===========================================================> 391 Figure 2: Double-Marking Methodology using L bit and D bit 393 Similar to packet delay measurement (both for Single Marking and 394 Double Marking), the method can also be used to measure the inter- 395 arrival jitter. 397 5.3. Flow Monitoring Identification 399 The Flow Monitoring Identification (FlowMonID) is required for some 400 general reasons: 402 First, it helps to reduce the per node configuration. Otherwise, 403 each node needs to configure an access-control list (ACL) for each 404 of the monitored flows. Moreover, using a flow identifier allows 405 a flexible granularity for the flow definition. 407 Second, it simplifies the counters handling. Hardware processing 408 of flow tuples (and ACL matching) is challenging and often incurs 409 into performance issues, especially in tunnel interfaces. 411 Third, it eases the data export encapsulation and correlation for 412 the collectors. 414 The FlowMon identifier field is to uniquely identify a monitored flow 415 within the measurement domain. The field is set at the source node. 416 The FlowMonID can be uniformly assigned by the central controller or 417 algorithmically generated by the source node. The latter approach 418 cannot guarantee the uniqueness of FlowMonID but it may be preferred 419 for local or private network, where the conflict probability is small 420 due to the large FlowMonID space. 422 5.4. Multipoint and Clustered Alternate Marking 424 The Alternate Marking method can also be extended to any kind of 425 multipoint to multipoint paths, and the network clustering approach 426 allows a flexible and optimized performance measurement, as described 427 in [I-D.ietf-ippm-multipoint-alt-mark]. 429 The Cluster is the smallest identifiable subnetwork of the entire 430 Network graph that still satisfies the condition that the number of 431 packets that goes in is the same that goes out. With network 432 clustering, it is possible to use the partition of the network into 433 clusters at different levels in order to perform the needed degree of 434 detail. So, for Multipoint Alternate Marking, FlowMonID can identify 435 in general a multipoint-to-multipoint flow and not only a point-to- 436 point flow. 438 5.5. Data Collection and Calculation 440 The nodes enabled to perform performance monitoring collect the value 441 of the packet counters and timestamps. There are several 442 alternatives to implement Data Collection and Calculation, but this 443 is not specified in this document. 445 6. Security Considerations 447 This document aims to apply a method to perform measurements that 448 does not directly affect Internet security nor applications that run 449 on the Internet. However, implementation of this method must be 450 mindful of security and privacy concerns.There are two types of 451 security concerns: potential harm caused by the measurements and 452 potential harm to the measurements. 454 Security concerns are limited since the method implies modifications 455 to an Option of the data packets but this must be performed in a way 456 that doesn't alter the quality of service experienced by packets 457 subject to measurements and that preserves stability of nodes. In 458 addition, an attacker cannot gain information about network 459 performance from a monitoring node; it must use synchronized 460 monitoring nodes at multiple points on the path but this is very 461 difficult since the alternate methodology is applied only in the 462 context of a controlled domain. 464 Privacy concerns are also limited because the method only relies on 465 information contained in the Option Header without any release of 466 user data. 468 7. IANA Considerations 470 The Option Type should be assigned in IANA's "Destination Options and 471 Hop-by-Hop Options" registry. 473 This draft requests the following IPv6 Option Type assignments from 474 the Destination Options and Hop-by-Hop Options sub-registry of 475 Internet Protocol Version 6 (IPv6) Parameters 476 (https://www.iana.org/assignments/ipv6-parameters/). 478 Hex Value Binary Value Description Reference 479 act chg rest 480 ---------------------------------------------------------------- 481 TBD 00 0 tbd AltMark [This draft] 483 8. Acknowledgements 485 The authors would like to thank Bob Hinden, Ole Troan, Tom Herbert, 486 Stefano Previdi, Brian Carpenter, Eric Vyncke, Ron Bonica for the 487 precious comments and suggestions. 489 9. References 491 9.1. Normative References 493 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 494 Requirement Levels", BCP 14, RFC 2119, 495 DOI 10.17487/RFC2119, March 1997, 496 . 498 [RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6 499 (IPv6) Specification", STD 86, RFC 8200, 500 DOI 10.17487/RFC8200, July 2017, 501 . 503 9.2. Informative References 505 [I-D.fioccola-v6ops-ipv6-alt-mark] 506 Fioccola, G., Velde, G., Cociglio, M., and P. Muley, "IPv6 507 Performance Measurement with Alternate Marking Method", 508 draft-fioccola-v6ops-ipv6-alt-mark-01 (work in progress), 509 June 2018. 511 [I-D.ietf-ippm-multipoint-alt-mark] 512 Fioccola, G., Cociglio, M., Sapio, A., and R. Sisto, 513 "Multipoint Alternate Marking method for passive and 514 hybrid performance monitoring", draft-ietf-ippm- 515 multipoint-alt-mark-09 (work in progress), March 2020. 517 [RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing 518 Architecture", RFC 4291, DOI 10.17487/RFC4291, February 519 2006, . 521 [RFC7045] Carpenter, B. and S. Jiang, "Transmission and Processing 522 of IPv6 Extension Headers", RFC 7045, 523 DOI 10.17487/RFC7045, December 2013, 524 . 526 [RFC8321] Fioccola, G., Ed., Capello, A., Cociglio, M., Castaldelli, 527 L., Chen, M., Zheng, L., Mirsky, G., and T. Mizrahi, 528 "Alternate-Marking Method for Passive and Hybrid 529 Performance Monitoring", RFC 8321, DOI 10.17487/RFC8321, 530 January 2018, . 532 [RFC8754] Filsfils, C., Ed., Dukes, D., Ed., Previdi, S., Leddy, J., 533 Matsushima, S., and D. Voyer, "IPv6 Segment Routing Header 534 (SRH)", RFC 8754, DOI 10.17487/RFC8754, March 2020, 535 . 537 Authors' Addresses 539 Giuseppe Fioccola 540 Huawei 541 Riesstrasse, 25 542 Munich 80992 543 Germany 545 Email: giuseppe.fioccola@huawei.com 547 Tianran Zhou 548 Huawei 549 156 Beiqing Rd. 550 Beijing 100095 551 China 553 Email: zhoutianran@huawei.com 554 Mauro Cociglio 555 Telecom Italia 556 Via Reiss Romoli, 274 557 Torino 10148 558 Italy 560 Email: mauro.cociglio@telecomitalia.it 562 Fengwei Qin 563 China Mobile 564 32 Xuanwumenxi Ave. 565 Beijing 100032 566 China 568 Email: qinfengwei@chinamobile.com