RFC 6205

Generalized Labels for Lambda-Switch-Capable (LSC) Label Switching Routers

๐Ÿ“… published March 2011, from ietf

Generalized Labels for Lambda-Switch-Capable (LSC) Label Switching Routers โœจ

okay bestie, here's the vibe check on this one ๐ŸŽ€

  • RFC number: 6205
  • Stream: Internet Engineering Task Force (IETF) ๐ŸŒธ
  • Category: Standards Track ๐Ÿ’…
  • Date: March 2011 ๐Ÿฆ‹
  • Authors: T. Otani, Ed. (KDDI) and D. Li, Ed. (Huawei) ๐Ÿ‘‘
  • Updates: RFC 3471 ๐Ÿงš
  • Obsoletes: nothing listed in the header ๐Ÿ™ˆ
  • ISSN: 2070-1721

Abstract โœจ

okay so the optical world keeps glowing up ๐ŸŒˆ and new equipment that can do lambda switching (switching whole wavelengths of light) has been built and is getting deployed right now. it's giving future. ๐Ÿ”ฅ

GMPLS (Generalized MPLS) is a family of protocols that can run networks built from a whole range of technologies, including wavelength (or lambda) switching. the thing is, GMPLS only treats a wavelength label as meaningful between two neighbors. global wavelength meaning? not a thing it considers ๐Ÿ™ˆ

so to make interoperability work in a network full of next-gen lambda-switch-capable gear, this document defines a standard lambda label format that follows the DWDM and CWDM grids from the International Telecommunication Union Telecommunication Standardization Sector. the label format can be used in GMPLS signaling and routing protocols. periodt ๐Ÿ’–

Status of This Memo โœจ

this is an Internet Standards Track document ๐ŸŽ€

it's a product of the Internet Engineering Task Force (IETF). it represents the consensus of the IETF community, it got public review, and the Internet Engineering Steering Group (IESG) approved it for publication. if you want more on Internet Standards, check Section 2 of RFC 5741 ๐Ÿซถ

info about the current status, any errata, and how to give feedback lives at http://www.rfc-editor.org/info/rfc6205 ๐Ÿฆ‹

Copyright (c) 2011 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) as in effect on the date of publication. please read these carefully, bestie, because they spell out your rights and restrictions for this document. Code Components pulled out of this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions, and they come without warranty as described in the Simplified BSD License ๐Ÿ™ˆ

this document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. the people who control the copyright in some of that material may not have given the IETF Trust permission to allow modifications outside the IETF Standards Process. so unless you get an adequate license from those copyright holders, this document may not be modified outside the IETF Standards Process, and derivative works may not be created outside it either. the exceptions are formatting it for publication as an RFC or translating it into languages other than English. that's the whole drama ๐Ÿ’…

1. Introduction โœจ

okay so, as described in [RFC3945], GMPLS extends MPLS from only supporting Packet Switching Capable (PSC) interfaces and switching to also supporting four new classes of interfaces and switching:

  • Layer-2 Switch Capable (L2SC) ๐ŸŒธ
  • Time-Division Multiplex (TDM) Capable ๐ŸŒธ
  • Lambda Switch Capable (LSC) ๐ŸŒธ
  • Fiber Switch Capable (FSC) ๐ŸŒธ

the functional description of the extensions to MPLS signaling needed for these new classes of interfaces and switching is in [RFC3471] ๐Ÿงš

this document gets into the details that are specific to using GMPLS with LSC equipment. stuff like Reconfigurable Optical Add/Drop Multiplex (ROADM) and Wavelength Cross-Connect (WXC) operates at the wavelength switching level. [RFC3471] says wavelength labels "only have significance between two neighbors" (Section 3.2.1.1), and global wavelength semantics are not considered. so to make interoperability work in a network of LSC equipment, this document defines a standard lambda label format. it's compliant with both the Dense Wavelength Division Multiplexing (DWDM) grid [G.694.1] and the Coarse Wavelength Division Multiplexing (CWDM) grid [G.694.2] ๐Ÿ’–

1.1. Conventions Used in This Document โœจ

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] ๐Ÿซถ

picture this, bestie ๐Ÿฆ‹ Figure 1 shows an all-optical switched network made of different vendors' optical network domains. Vendor A's network is made of ROADM or WXC, and Vendor B's network is made of a bunch of Photonic Cross-Connects (PXCs) plus DWDM multiplexers and demultiplexers. otherwise, both vendors' networks might be based on the same technology ๐Ÿ‘‘

in this case, using standardized wavelength label information is a huge deal for setting up a wavelength-based Label Switched Path (LSP). it's also an important constraint when you calculate the Constrained Shortest Path First (CSPF) for GMPLS Resource ReserVation Protocol - Traffic Engineering (RSVP-TE) signaling [RFC3473]. how CSPF gets performed is outside the scope of this document ๐Ÿงš

needless to say, an LSP must be set up properly between a chosen pair of ports, not only inside Domain A but also across multiple domains that satisfy the wavelength constraints ๐Ÿ’…

Figure 2 zooms in on the interconnection between Domain A and Domain B ๐ŸŒˆ

                                  |
      Domain A (or Vendor A)      |      Domain B (or Vendor B)
                                  |
     Node-1            Node-2     |         Node-6            Node-7
   +--------+        +--------+   |      +-------+ +-+     +-+ +-------+
   | ROADM  |        | ROADM  +---|------+  PXC  +-+D|     |D+-+  PXC  |
   | or WXC +========+ or WXC +---|------+       +-+W+=====+W+-+       |
   | (LSC)  |        | (LSC)  +---|------+ (LSC) +-+D|     |D+-+ (LSC) |
   +--------+        +--------+   |      |       +-|M|     |M+-+       |
       ||                ||       |      +++++++++ +-+     +-+ +++++++++
       ||     Node-3     ||       |       |||||||               |||||||
       ||   +--------+   ||       |      +++++++++             +++++++++
       ||===|  WXC   +===||       |      | DWDM  |             | DWDM  |
            | (LSC)  |            |      +--++---+             +--++---+
       ||===+        +===||       |         ||                    ||
       ||   +--------+   ||       |      +--++---+             +--++---+
       ||                ||       |      | DWDM  |             | DWDM  |
   +--------+        +--------+   |      +++++++++             +++++++++
   | ROADM  |        | ROADM  |   |       |||||||               |||||||
   | or WXC +========+ or WXC +=+ |  +-+ +++++++++ +-+     +-+ +++++++++
   | (LSC)  |        | (LSC)  | | |  |D|-|  PXC  +-+D|     |D+-+  PXC  |
   +--------+        +--------+ +=|==+W|-|       +-+W+=====+W+-+       |
     Node-4            Node-5     |  |D|-| (LSC) +-+D|     |D+-+ (LSC) |
                                  |  |M|-|       +-+M|     |M+-+       |
                                  |  +-+ +-------+ +-+     +-+ +-------+
                                  |        Node-8             Node-9

Figure 1. Wavelength-Based Network Model ๐Ÿงš

   +-------------------------------------------------------------+
   |          Domain A             |        Domain B             |
   |                               |                             |
   |           +---+     lambda 1  |         +---+               |
   |           |   |---------------|---------|   |               |
   |       WDM | N |     lambda 2  |         | N | WDM           |
   |      =====| O |---------------|---------| O |=====          |
   |  O        | D |        .      |         | D |        O      |
   |  T    WDM | E |        .      |         | E | WDM    T      |
   |  H   =====| 2 |     lambda n  |         | 6 |=====   H      |
   |  E        |   |---------------|---------|   |        E      |
   |  R        +---+               |         +---+        R      |
   |                               |                             |
   |  N        +---+               |         +---+        N      |
   |  O        |   |               |         |   |        O      |
   |  D    WDM | N |               |         | N | WDM    D      |
   |  E   =====| O |      WDM      |         | O |=====   E      |
   |  S        | D |=========================| D |        S      |
   |       WDM | E |               |         | E | WDM           |
   |      =====| 5 |               |         | 8 |=====          |
   |           |   |               |         |   |               |
   |           +---+               |         +---+               |
   +-------------------------------------------------------------+

Figure 2. Interconnecting Details between Two Domains ๐ŸŒธ

in the scenario from Figure 1, imagine setting up a bidirectional LSP from the ingress switch (Node-1) to the egress switch (Node-9) using GMPLS RSVP-TE. to satisfy wavelength continuity constraints, a fixed wavelength (lambda 1) has to be used in Domain A and Domain B ๐ŸŒˆ the signaling uses a Path message. the Path message contains an Upstream_Label object and a Label_Set object, and both hold the same value. the Label_Set object shall contain a single sub-channel that must be the same as the Upstream_Label object. the Path setup keeps going downstream to the egress switch (Node-9), configuring each lambda switch based on the wavelength label. if a node has a tunable wavelength transponder, the tuning wavelength counts as part of the wavelength switching operation ๐Ÿฆ‹

not using a standardized label would add undue burden on the operator to enforce policy, since each manufacturer might pick a different representation. so each domain might end up with its own label formats. and manual provisioning may lead to misconfiguration if domain-specific labels are used. ngl that's a nightmare ๐Ÿ’€

so a wavelength label should be standardized to allow interoperability between multiple domains. otherwise, appropriate existing labels are identified to support wavelength availability. the ITU-T DWDM frequency grid in [G.694.1] and the CWDM wavelength information in [G.694.2] both contain identical wavelength information. Label Switching Routers (LSRs) use them, and they should be followed for wavelength labels ๐Ÿ‘‘

this is where the label stuff gets real ๐Ÿ”ฎ to deal with MPLS widening its scope into the optical switching and time division multiplexing domains, several new forms of "label" were defined in [RFC3471]. this section defines a wavelength label based on [G.694.1] or [G.694.2] for use by LSC LSRs ๐Ÿ’œ

3.1. Wavelength Labels

Okay so, Section 3.2.1.1 of [RFC3471] is where wavelength labels get introduced, and it says: "values used in this field only have significance between two neighbors, and the receiver may need to convert the received value into a value that has local significance" ๐Ÿซถ

We don't need a brand-new type here, because the stored info is either a port label or a wavelength label. Only the wavelength label needs defining ๐ŸŽ€

LSC equipment runs multiple wavelengths over a single control channel, so the label tells you which wavelength the LSP is going to use. This doc defines a standardized wavelength label format ๐Ÿ’… For wavelength values, check [G.694.1], which lists the frequencies from the ITU-T DWDM frequency grid. For CWDM, look at the wavelength values in [G.694.2] ๐ŸŒˆ

Since the ITU-T DWDM grid is based on nominal central frequencies, we need three things: the right table, the channel spacing on the grid, and a value n that lets you calculate the frequency. That n can be positive or negative โœจ

Here's how the frequency gets calculated in [G.694.1]:

Frequency (THz) = 193.1 THz + n * channel spacing (THz)

"n" is a two's-complement integer (positive, negative, or 0), and "channel spacing" is defined to be 0.0125, 0.025, 0.05, or 0.1 THz. If you use a wider channel spacing like 0.2 THz, the combo of a narrower channel spacing and the value "n" can still give you the right frequency with that spacing. Channel spacing isn't used to show the LSR capability, only to specify a frequency in signaling ๐Ÿ’–

For the other cases that use the ITU-T CWDM grid, the spacing between channels is 20 nm, so we have to express the wavelength value in nanometers (nm). Examples of CWDM wavelengths in nm are 1471, 1491, etc. ๐Ÿงš

The wavelength gets calculated like this:

Wavelength (nm) = 1471 nm + n * 20 nm

"n" is a two's-complement integer (positive, negative, or 0). The grids in [G.694.1] and [G.694.2] aren't numbered, and they change as frequency spacing evolves with technology, so an index isn't appropriate in this case ๐Ÿฆ‹


3.2. DWDM Wavelength Label

For lambda switching of DWDM, the info carried in a wavelength label looks like this:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Grid | C.S.  |    Identifier   |              n                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

(1) Grid: 3 bits

Grid gets set to 1 for the ITU-T DWDM grid from [G.694.1] ๐Ÿ“

+----------+---------+
|   Grid   |  Value  |
+----------+---------+
| Reserved |    0    |
+----------+---------+
|ITU-T DWDM|    1    |
+----------+---------+
|ITU-T CWDM|    2    |
+----------+---------+
|Future use|  3 - 7  |
+----------+---------+

(2) C.S. (channel spacing): 4 bits

DWDM channel spacing is defined as follows.

+----------+---------+
|C.S. (GHz)|  Value  |
+----------+---------+
| Reserved |    0    |
+----------+---------+
|    100   |    1    |
+----------+---------+
|    50    |    2    |
+----------+---------+
|    25    |    3    |
+----------+---------+
|    12.5  |    4    |
+----------+---------+
|Future use|  5 - 15 |
+----------+---------+

(3) Identifier: 9 bits

The Identifier field is used to tell apart different lasers (in one node) when they can transmit the same frequency lambda ๐Ÿ‘‘ It's a per-node assigned and scoped value. This field MAY change on a per-hop basis. In all cases but one, a node MAY select any value, including zero (0), for this field. Once selected, the value MUST NOT change until the LSP is torn down, and the value MUST be used in all LSP-related messages, e.g., in Resv messages and label Record Route Object (RRO) subobjects.

The sole special case is when this label format is used in a label Explicit Route Object (ERO) subobject. Then the special value of zero (0) means the referenced node MAY assign any Identifier field value, including zero (0), when establishing the corresponding LSP. When a non-zero value is assigned to the Identifier field in a label ERO subobject, the referenced node MUST use the assigned value for the Identifier field in the corresponding LSP-related messages. ๐Ÿ™ˆ

(4) n: 16 bits

n is a two's-complement integer that can take a positive, negative, or zero value. This value is used to compute the frequency as shown above ๐Ÿ’œ


3.3. CWDM Wavelength Label

For lambda switching of CWDM, the info carried in a wavelength label looks like this:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Grid | C.S.  |    Identifier   |                n              |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

The structure is the same as the DWDM case, so no plot twists here ๐ŸŽ€

(1) Grid: 3 bits

Grid gets set to 2 for the ITU-T CWDM grid from [G.694.2] โœจ

+----------+---------+
|   Grid   |  Value  |
+----------+---------+
| Reserved |    0    |
+----------+---------+
|ITU-T DWDM|    1    |
+----------+---------+
|ITU-T CWDM|    2    |
+----------+---------+
|Future use|  3 - 7  |
+----------+---------+

(2) C.S. (channel spacing): 4 bits

CWDM channel spacing is defined as follows.

+----------+---------+
|C.S. (nm) |  Value  |
+----------+---------+
| Reserved |    0    |
+----------+---------+
|    20    |    1    |
+----------+---------+
|Future use|  2 - 15 |
+----------+---------+

(3) Identifier: 9 bits

The Identifier field is used to tell apart different lasers (in one node) when they can transmit the same frequency lambda ๐Ÿฆ‹ It's a per-node assigned and scoped value. This field MAY change on a per-hop basis. In all cases but one, a node MAY select any value, including zero (0), for this field. Once selected, the value MUST NOT change until the LSP is torn down, and the value MUST be used in all LSP-related messages, e.g., in Resv messages and label RRO subobjects.

The sole special case occurs when this label format is used in a label ERO subobject. In this case, the special value of zero (0) means the referenced node MAY assign any Identifier field value, including zero (0), when establishing the corresponding LSP. When a non-zero value is assigned to the Identifier field in a label ERO subobject, the referenced node MUST use the assigned value for the Identifier field in the corresponding LSP-related messages. ๐Ÿฅบ

(4) n: 16 bits

n is a two's-complement integer. This value is used to compute the wavelength as shown above ๐ŸŒธ


4. Security Considerations ๐Ÿ”

This document introduces no new security considerations to [RFC3471] and [RFC3473]. For a general discussion on MPLS and GMPLS-related security issues, see the MPLS/GMPLS security framework [RFC5920] ๐Ÿ’€


5. IANA Considerations ๐Ÿ“‹

IANA maintains the "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Parameters" registry. IANA has added three new subregistries to track the codepoints (Grid and C.S.) used in the DWDM and CWDM wavelength labels, which are described in the following sections ๐ŸŽ€

5.1. Grid Subregistry

Initial entries in this subregistry are as follows:

Value   Grid                         Reference
-----   -------------------------    ----------
  0     Reserved                     [RFC6205]
  1     ITU-T DWDM                   [RFC6205]
  2     ITU-T CWDM                   [RFC6205]
 3-7    Unassigned                   [RFC6205]

New values are assigned according to Standards Action.

5.2. DWDM Channel Spacing Subregistry

Initial entries in this subregistry are as follows:

Value   Channel Spacing (GHz)        Reference
-----   -------------------------    ----------
  0     Reserved                     [RFC6205]
  1     100                          [RFC6205]
  2     50                           [RFC6205]
  3     25                           [RFC6205]
  4     12.5                         [RFC6205]
 5-15   Unassigned                   [RFC6205]

New values are assigned according to Standards Action.

5.3. CWDM Channel Spacing Subregistry

Initial entries in this subregistry are as follows:

Value   Channel Spacing (nm)         Reference
-----   -------------------------    ----------
0       Reserved                     [RFC6205]
1       20                           [RFC6205]
2-15    Unassigned                   [RFC6205]

New values are assigned according to Standards Action.


6. Acknowledgments ๐Ÿซถ

The authors would like to thank Adrian Farrel, Lou Berger, Lawrence Mao, Zafar Ali, and Daniele Ceccarelli for the discussion and their comments ๐Ÿ’–


7. References ๐Ÿ“š

7.1. Normative References

  • [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.
  • [RFC3471] Berger, L., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Functional Description", RFC 3471, January 2003.
  • [RFC3473] Berger, L., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Signaling Resource ReserVation Protocol-Traffic Engineering (RSVP-TE) Extensions", RFC 3473, January 2003.
  • [RFC3945] Mannie, E., Ed., "Generalized Multi-Protocol Label Switching (GMPLS) Architecture", RFC 3945, October 2004.

7.2. Informative References

  • [G.694.1] ITU-T Recommendation G.694.1, "Spectral grids for WDM applications: DWDM frequency grid", June 2002.
  • [G.694.2] ITU-T Recommendation G.694.2, "Spectral grids for WDM applications: CWDM wavelength grid", December 2003.
  • [RFC5920] Fang, L., Ed., "Security Framework for MPLS and GMPLS Networks", RFC 5920, July 2010.

Appendix A. DWDM Example โœจ

Considering the network displayed in Figure 1, it is possible to show an example of LSP setup using the lambda labels ๐Ÿงš

Node 1 receives the request for establishing an LSP from itself to Node 9. The ITU-T grid to be used is the DWDM one, the channel spacing is 50 Ghz, and the wavelength to be used is 193,35 THz ๐Ÿ’…

Node 1 signals the LSP via a Path message including a wavelength label structured as defined in Section 3.2:

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Grid |  C.S. |   Identifier    |              n                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Where:

Grid = 1 : ITU-T DWDM grid

C.S. = 2 : 50 GHz channel spacing

n    = 5 :

     Frequency (THz) = 193.1 THz + n * channel spacing (THz)

     193.35 (THz) = 193.1 (THz) + n* 0.05 (THz)

     n = (193.35-193.1)/0.05 = 5

Appendix B. CWDM Example ๐Ÿงš

Okay, bestie, the same network from Figure 1 is back, and this time it shows off signaling with the wavelength label in a CWDM environment ๐ŸŒˆ

This time we're looking at an LSP going from Node 4 to Node 7 ๐Ÿ’– It uses the CWDM ITU-T grid with a 20 nm channel spacing, and it's set up on a wavelength of 1331 nm โœจ

Node 4 signals the LSP with a Path message that carries a wavelength label structured the way we defined in Section 3.3 ๐ŸŽ€

 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Grid |  C.S. |   Identifier    |              n                |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

So here's the breakdown ๐Ÿฆ‹

  • Grid = 2 means ITU-T CWDM grid ๐Ÿ’…
  • C.S. = 1 means 20 nm channel spacing ๐Ÿ“
  • n = -7 is where the wavelength math comes in ๐Ÿ”ฅ

The wavelength works out like this:

Wavelength (nm) = 1471 nm + n * 20 nm

1331 (nm) = 1471 (nm) + n * 20 nm

n = (1331-1471)/20 = -7

Literally the whole thing is giving ๐Ÿฅน


Authors' Addresses โœจ

Richard Rabbat ๐Ÿ’œ

Richard Rabbat
Google, Inc.
1600 Amphitheatre Parkway
Mountain View, CA 94043
USA
EMail: rabbat@alum.mit.edu

Sidney Shiba ๐Ÿซถ

Sidney Shiba
EMail: sidney.shiba@att.net

Hongxiang Guo ๐ŸŒธ

Hongxiang Guo
EMail: hongxiang.guo@gmail.com

Keiji Miyazaki ๐Ÿ‘‘

Keiji Miyazaki
Fujitsu Laboratories Ltd
4-1-1 Kotanaka Nakahara-ku,
Kawasaki Kanagawa, 211-8588
Japan
Phone: +81-44-754-2765
EMail: miyazaki.keiji@jp.fujitsu.com

Diego Caviglia ๐ŸŒˆ

Diego Caviglia
Ericsson
16153 Genova Cornigliano
Italy
Phone: +390106003736
EMail: diego.caviglia@ericsson.com

Takehiro Tsuritani โญ

Takehiro Tsuritani
KDDI R&D Laboratories Inc.
2-1-15 Ohara Fujimino-shi
Saitama, 356-8502
Japan
Phone:  +81-49-278-7806
EMail:  tsuri@kddilabs.jp

Editors' Addresses ๐ŸŽ€

Tomohiro Otani (editor) ๐Ÿฆ‹

Tomohiro Otani (editor)
KDDI Corporation
2-3-2 Nishishinjuku Shinjuku-ku
Tokyo, 163-8003
Japan
Phone:  +81-3-3347-6006
EMail:  tm-otani@kddi.com

Dan Li (editor) ๐Ÿงš

Dan Li (editor)
Huawei Technologies
F3-5-B R&D Center, Huawei Base,
Shenzhen 518129
China
Phone: +86 755-289-70230
EMail: danli@huawei.com
๐Ÿ“ฆ where this page comes from