RFC 7753
Port Control Protocol (PCP) Extension for Port-Set Allocation
RFC 7753: Port Control Protocol (PCP) Extension for Port-Set Allocation π
Series: Internet Engineering Task Force (IETF) πΈ Category: Standards Track π ISSN: 2070-1721 β¨ Date: February 2016 π¦
Authors: Q. Sun (China Telecom), M. Boucadair (France Telecom), S. Sivakumar (Cisco Systems), C. Zhou (Huawei Technologies), T. Tsou (Philips Lighting), and S. Perreault (Jive Communications) π«Ά
Abstract β¨
Okay so, in some use cases (like Lightweight 4over6), a client might need not just one port but a whole port set π. This document defines an extension to the Port Control Protocol (PCP) that lets clients manipulate a set of ports as one whole unit π
. It's done with a brand new MAP option called PORT_SET π₯.
Status of This Memo
Bestie, this one is an Internet Standards Track document π.
It's a product of the Internet Engineering Task Force (IETF), so it represents the consensus of the IETF community π«Ά. It got public review and was approved for publication by the Internet Engineering Steering Group (IESG) β¨. If you want more info on Internet Standards, check Section 2 of RFC 5741 π¦.
For the current status of this document, any errata, and how to send feedback, go to http://www.rfc-editor.org/info/rfc7753 π.
Copyright Notice
Copyright (c) 2016 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 read these carefully, because they describe your rights and restrictions regarding 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 they are provided without warranty as described in the Simplified BSD License π.
Table of Contents π§
1. Introduction ....................................................4
1.1. Applications Using Port Sets ...............................4
1.2. Lightweight 4over6 .........................................4
1.3. Firewall Control ...........................................4
1.4. Discovering Stateless Port-Set Mappings ....................5
2. The Need for PORT_SET ...........................................5
3. Terminology .....................................................6
4. The PORT_SET Option .............................................6
4.1. Client Behavior ............................................8
4.2. Server Behavior ............................................8
4.3. Absence of Capability Discovery ............................9
4.4. Port-Set Renewal and Deletion .............................10
4.4.1. Overlap Conditions .................................10
5. Examples .......................................................10
5.1. Simple Request on Network Address Translator
IPv4/IPv4 (NAT44) .........................................10
5.2. Stateless Mapping Discovery ...............................12
5.3. Resolving Overlap .........................................13
6. Operational Considerations .....................................13
6.1. Limits and Quotas .........................................13
6.2. High Availability .........................................13
6.3. Idempotence ...............................................13
6.4. What should a PCP client do when it receives fewer
ports than requested? .....................................15
7. Security Considerations ........................................15
8. IANA Considerations ............................................16
9. References .....................................................16
9.1. Normative References ......................................16
9.2. Informative References ....................................16
Acknowledgements ..................................................17
Contributors ......................................................17
Authors' Addresses ................................................18
1. Introduction β¨
Okay, this document extends the Port Control Protocol (PCP) [RFC6887] so you can grab a whole set of ports with a single request π. It does this by defining a new PORT_SET option π
.
This section walks through a few of the use cases the authors had in mind. Just so you know, the PCP extension in this document is generic, and it's expected to work for other use cases too π.
1.1. Applications Using Port Sets
Some applications need not just one port but a port set π¦. One example is a Session Initiation Protocol (SIP) User Agent Server (UAS) [RFC3261] that's expecting to handle multiple concurrent calls, including media termination π. When the UAS gets a call, it has to signal media port numbers to its peer. If it sent individual PCP MAP requests for each media port during call setup, that would add unwanted latency and extra signaling load π. Instead, the server can pre-allocate a set of ports, so no PCP exchange is needed during call setup π§.
1.2. Lightweight 4over6
In the Lightweight 4over6 (lw4o6) [RFC7596] architecture, shared global addresses can be allocated to customers πΈ. This lets the Network Address Translation (NAT) function move away from the Carrier-Grade NAT (CGN) [RFC6888] and over to the Customer Premises Equipment (CPE) π . The result is more control over NAT for the user, and more scalability for the Internet Service Provider (ISP) π.
In the lw4o6 architecture, the PCP-controlled device is the Lightweight Address Family Transition Router (lwAFTR), and the PCP client is the Lightweight B4 (lwB4) π. The PCP client sends a PCP MAP request containing a PORT_SET option to trigger shared address allocation on the lwAFTR β¨. The PCP response then carries the shared address information, including the port set allocated to the lwB4 π.
1.3. Firewall Control
Port sets show up a lot in firewall rules π₯. For example, defining a range for Real-time Transport Protocol (RTP) [RFC3550] traffic is common practice π. The PCP MAP request can already be used for firewall control, and the PORT_SET option adds the ability to manipulate firewall rules that operate on port sets instead of single ports π
.
1.4. Discovering Stateless Port-Set Mappings
A PCP MAP request can be used to retrieve a mapping from a stateless device π¦. That's a device that doesn't establish any per-flow state, and just rewrites the address and/or port in a purely algorithmic fashion, including no rewriting at all π§. In the same way, a PCP MAP request with a PORT_SET request can be used to discover a port-set mapping from a stateless device π. See Section 5.2 for an example π.
2. The Need for PORT_SET π
Multiple PCP MAP requests can be used to manipulate a set of ports, and that has roughly the same effect as one PCP MAP request with a PORT_SET option π«Ά. But using the PORT_SET option is more efficient when you look at these aspects:
- Network Traffic: A single request uses fewer network resources than multiple requests.
- Latency: Even though PCP MAP requests can be sent in parallel, the total processing time is expected to be longer for multiple requests than for a single one π.
- Server-side efficiency: Some PCP-controlled devices can allocate port sets in a way that lets data passing through the device be processed much more efficiently than individual port allocations would allow. For example, a CGN with a "bulk" port allocation scheme (see [RFC6888], Section 5) often has this property π₯.
- Server-side scalability: The number of state table entries in PCP-controlled devices is often a limiting factor. Allocating port sets in a single request can result in a single mapping entry being used, which allows greater scalability π.
So, even though you can get the same results using plain MAP, the extension in this document is more efficient, scalable, and simple, and it cuts latency and network traffic too π .
Also, PORT_SET supports parity preservation π. Some protocols (e.g., RTP [RFC3550]) give meaning to a port number's parity π¦. When you map sets of ports for that kind of protocol, preserving parity can be necessary π§.
3. Terminology π
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] π.
Part 1 is done, bestie π Part 2 is next, and that's where Section 4 and the whole PORT_SET option live ππ₯.
4. The PORT_SET Option β¨
okay bestie, this is the good part π₯ the PORT_SET option is how a client asks for a whole set of ports in one go instead of begging for them one at a time π«Ά
- Option Name:
PORT_SET - Number:
130(see Section 8) - Purpose: To map sets of ports.
- Valid for Opcodes:
MAP - Length:
5bytes - May appear in: Both requests and responses
- Maximum occurrences:
1
The PORT_SET option says the PCP client wants to reserve a set of ports π the number of ports it wants goes right inside the option.
Only one PORT_SET option is allowed per MAP Opcode, no exceptions π ββοΈ The MAP Opcode header is what decides the Suggested External Port Set, so two PORT_SET options would mean two overlapping Suggested External Port Sets, and that's just chaos π The maximum occurrences of the PORT_SET option MUST be limited to 1.
Also, the option number 130 falls in the "optional to process" range (128-191). So if a PCP server doesn't speak PORT_SET yet, it just reads the request as a single-port PCP MAP request and ignores the option, like it was never there π§ no drama, no crash.
The PORT_SET option 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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Option Code=130| Reserved | Option Length=5 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Port Set Size | First Internal Port |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |P|
+-+-+-+-+-+-+-+-+
Figure 1: PORT_SET Option
Here's the breakdown of the fields π¦
- Port Set Size: A 16-bit unsigned integer. Number of ports requested. MUST NOT be zero.
- First Internal Port: In a request, this field MUST be set equal to the Internal Port field in the MAP Opcode by the PCP client. In a response, this field indicates the First Internal Port of the port set mapped by the PCP server, which may differ from the value sent in the request. That is to be contrasted to the Internal Port field, which by necessity is always identical in matched requests and responses.
- Reserved: MUST be set to zero when sending; MUST be ignored when receiving.
- P (parity bit):
1if parity preservation is requested;0otherwise. See [RFC4787], Section 4.2.2.
Note that Option Code, Reserved, and Option Length work exactly as described in [RFC6887], Section 7.3 β¨
Now the vocab, because it's about to get very specific π The Internal Port Set is the range of Port Set Size ports starting from the First Internal Port. The Suggested External Port Set is the range of Port Set Size ports starting from the Suggested External Port. The Assigned External Port Set is the range of Port Set Size ports starting from the Assigned External Port. The Internal Port Set in a response and the Assigned External Port Set are always the same size, periodt π
The Suggested External Port is the first port in the Suggested External Port Set. Its whole job is helping clients recover their old mappings after state loss πΈ After a reset, a client can try to regenerate the same mappings by suggesting the same External Port Set it had before. BUT there's no guarantee the server gives back the set the client suggested, so don't count on it π
4.1. Client Behavior
To get a set of ports, the PCP client adds a PORT_SET option to its PCP MAP request π§ If parity preservation is needed (an even port has to map to an even port and an odd port has to map to an odd port), the PCP client MUST set the parity bit (to 1) to ask the PCP server to preserve the port parity.
The PCP client MUST NOT include more than one PORT_SET option in a PCP MAP request π ββοΈ If it needs several port sets, the PCP client MUST issue separate PCP MAP requests, each potentially including a PORT_SET option. These individual PCP MAP requests MUST include distinct Internal Ports, so they don't step on each other π
If the PCP client doesn't know exactly how many ports it needs, it MAY then set the Port Set Size to 0xffff. That basically says "give me as many as you can offer" π
A PCP client SHOULD NOT send a PORT_SET option for single-port PCP MAP requests (including creation, renewal, and deletion), because that needlessly increases processing on the server π
PREFER_FAILURE MUST NOT appear in a request with a PORT_SET option. π PREFER_FAILURE was built specifically for the Universal Plug and Play (UPnP) Internet Gateway Device - Port Control Protocol Interworking Function (IGD-PCP IWF) [RFC6970]. The reasons for not recommending its use are discussed in Section 13.2 of [RFC6887].
When the PCP-controlled device supports delegating multiple port sets to a given PCP client, the PCP client MAY re-initiate a PCP request to get another port set once it has used up all the ports in its current set π¦
4.2. Server Behavior
On top of regular PCP MAP request processing, the following checks happen whenever a PORT_SET option with a non-zero Requested Lifetime shows up β¨
- If multiple PORT_SET options are present in a single PCP MAP request, a MALFORMED_OPTION error is returned.
- If the Port Set Size is zero, a MALFORMED_OPTION error is returned.
- If a PREFER_FAILURE option is present, a MALFORMED_OPTION error is returned.
The PCP server MAY map fewer ports than the value of Port Set Size from the request πΈ But it MUST NOT map more ports than the PCP client asked for. And Internal Ports outside the range of Port Set Size ports starting from the Internal Port MUST NOT be mapped by the PCP server, no exceptions π ββοΈ
If the requested port set can't be fully satisfied, the PCP server SHOULD map as many ports as possible, and it SHOULD map at least one port (which is the same behaviour as if Port Set Size were set to 1) π
If the PCP server ends up mapping only a single port, for any reason, the PORT_SET option MUST NOT be present in the response π Also, if the PCP server gets a single-port PCP MAP request that includes a PORT_SET option, the PORT_SET option is silently ignored and the request is handled as a single-port PCP MAP request. Quiet and clean π§
If port parity preservation is requested (P = 1), the PCP server MAY preserve port parity. In that case, the External Port is set to a value with the same parity as the First Internal Port π
If the mapping succeeds, the MAP response's Assigned External Port is set to the first port in the External Port Set, and the PORT_SET option's Port Set Size is set to the number of ports in the mapped port set. The First Internal Port field is set to the first port in the Internal Port Set π₯
4.3. Absence of Capability Discovery
A PCP client that wants a port set includes the PORT_SET option π«Ά If there's no PORT_SET option in the response, the PCP client can't conclude that the PCP server doesn't support the PORT_SET option. It might just be that the PCP server does support PORT_SET but decided to allocate only a single port, for reasons that are its own π€·ββοΈ If the client wants more ports, it MAY send additional PCP MAP requests (see Section 6.4), which the PCP server may or may not grant according to local policy.
If port-set capability is added to or removed from a running PCP server, the server MAY reset its Epoch time and send an ANNOUNCE message as described in the PCP specification ([RFC6887], Section 14.1). This makes PCP clients retry, and the ones using PORT_SET will now get a different response π¦
4.4. Port-Set Renewal and Deletion
Port-set mappings get renewed and deleted as a single entity π So the lifetime of every port mapping in the set gets set to the Assigned Lifetime all at once, no splitting it up.
A PCP client trying to refresh or delete a port-set mapping MUST include the PORT_SET option in its request π
4.4.1. Overlap Conditions
Port-set PCP MAP requests can overlap with existing single-port or port-set mappings. That can happen by mistake, or after a PCP client gets out of sync with the server's state π
If a PCP server receives a PCP MAP request, with or without a PORT_SET option, that tries to map one or more Internal Ports or port sets belonging to already-existing mappings, then the request is treated as a refresh request applying those mappings. Each matching port or port-set mapping is processed independently, as if a separate refresh request had been received. The processing is as described in Section 15 of [RFC6887]. The PCP server sends a Mapping Update message for each of the mappings π
5. Examples
Time for the fun part, the examples π
5.1. Simple Request on Network Address Translator IPv4/IPv4 (NAT44)
An application needs a range of 100 IPv4 UDP ports mapped to itself π The application running on the host has created sockets bound to IPv4 UDP ports 50,000 to 50,099 for this purpose. It doesn't care which External Port numbers get allocated π The PCP client sends a PCP request with the following parameters over IPv4:
- MAP Opcode
- Mapping Nonce:
<a random nonce> - Protocol:
17 - Internal Port:
50,000 - Suggested External Port:
0 - Suggested External IP Address:
::ffff:0.0.0.0
- Mapping Nonce:
- PORT_SET Option
- Port Set Size:
100 - First Internal Port:
50,000 - P:
0
- Port Set Size:
The PCP server can't fulfil the request fully π It's configured by local policy to allocate only 32 ports per user. Since the PREFER_FAILURE option is absent from the request, it decides to map UDP ports 37,056 to 37,087 on external address 192.0.2.3 to Internal Ports 50,000 to 50,031. After setting up the mapping in the NAT44 device it controls, it replies with the following PCP response:
- MAP Opcode
- Mapping Nonce:
<copied from the request> - Protocol:
17 - Internal Port:
50,000 - Assigned External Port:
37,056 - Assigned External IP Address:
::ffff:192.0.2.3
- Mapping Nonce:
- PORT_SET Option
- Port Set Size:
32 - First Internal Port:
50,000 - P:
0
- Port Set Size:
When the host gets this response, it decides 32 ports is good enough for its purposes π It closes the sockets bound to ports 50,032 to 50,099, sets up a refresh timer, and starts using the port range it was just assigned β¨
5.2. Stateless Mapping Discovery
A host wants to discover a stateless NAT44 mapping pointing to itself π To do that, it sends the following request over IPv4:
- MAP Opcode
- Mapping Nonce:
<a random nonce> - Protocol:
0 - Internal Port:
1 - Suggested External Port:
0 - Suggested External IP Address:
::ffff:0.0.0.0
- Mapping Nonce:
- PORT_SET Option
- Port Set Size:
65,535 - First Internal Port:
1 - P:
0
- Port Set Size:
The PCP server sends the following response:
- MAP Opcode
- Mapping Nonce:
<copied from the request> - Protocol:
0 - Internal Port:
1 - Assigned External Port:
26,624 - Assigned External IP Address:
::ffff:192.0.2.5
- Mapping Nonce:
- PORT_SET Option
- Port Set Size:
2048 - First Internal Port:
26,624 - P:
0
- Port Set Size:
From this response, the host now knows that a 2048-port stateless mapping is pointing to itself, starting from port 26,624 on external IP address 192.0.2.5 π¦π
5.3. Resolving Overlap π¦
This one is about Section 4.4.1, so pay attention π. Say Internal Port 100 is mapped to External Port 100, and the port set 101-199 is mapped to External Port Set 201-299. The PCP server gets a PCP MAP request with Internal Port = 100, External Port = 0, and a PORT_SET option with Port Set Size = 100. The request's Mapping Nonce matches the nonce of the existing single-port and port-set mappings, so the server treats this as two refresh requests π
. The first refreshes the single-port mapping, and the second refreshes the port-set mapping.
The PCP server updates the lifetimes of both mappings like normal, then sends two responses β¨. The first one has Internal Port = 100, External Port = 100, and no PORT_SET option. The second one has Internal Port = 101, External Port = 201, and a PORT_SET option with Port Set Size = 99. Two mappings, one request, zero drama π.
6. Operational Considerations πΈ
6.1. Limits and Quotas
It's up to the PCP server to decide the port-set quota, if there is one, for each PCP client π.
If the PCP server is set up to hand out multiple port-set allocations to one subscriber, the same Assigned External IP Address SHOULD be assigned to that subscriber in the multiple port-set responses π«Ά.
To keep the number of mapping entries the PCP server has to track under control, it is RECOMMENDED to configure the server to assign the maximum allowed Port Set Size in a single response. This policy SHOULD be configurable π₯.
6.2. High Availability
The failover mechanism in MAP (Section 14 of [RFC6887]) can also be applied to port sets π.
6.3. Idempotence
Idempotence is a core, super desirable PCP property π. In a nutshell, requests give the same results whether they run once or several times. The PORT_SET option keeps this property, with one caveat: the order in which the PCP server receives requests with overlapping Internal Port Sets changes the mappings that get created and the responses that come back. Main character drama π.
Say a PCP client sends these two requests:
Request A: Internal Port Set 1-10
Request B: Internal Port Set 5-14
The PCP server's actions depend on which one shows up first. Let's say A arrives before B:
Upon reception of A: Internal Ports 1-10 are mapped. A success
response containing the following fields is sent:
Internal Port: 1
First Internal Port: 1
Port Set Size: 10
Upon reception of B: The request matches mapping A. The request is
interpreted as a refresh request for mapping A, and a response
containing the following fields is sent:
Internal Port: 5
First Internal Port: 1
Port Set Size: 10
If the order gets flipped (B before A), the created mapping will be different, and the First Internal Port in both responses would then be 5 π.
To avoid surprises, PCP clients MUST ensure that port-set mapping requests do not inadvertently overlap β οΈ. For example, a host's operating system could include a central PCP client process that arbitrates port-set mapping requests. Or, individual PCP clients running on the same host would be required to acquire the Internal Ports from the operating system (e.g., a call to the bind() function from the BSD API) before trying to map them with PCP. Teamwork makes the dream work π§.
6.4. What should a PCP client do when it receives fewer ports than requested?
Okay, so say a PCP client asks for 16 ports and only gets 8. What should it do? Should it treat that as a final answer? Should it send a second request asking for 8 more? Should it fall back to 8 individual PCP MAP requests? This document leaves the answers up to the implementation, but it does lay out the stuff to think about when answering them π€.
First, the PCP server decided to allocate 8 ports for some reason. Maybe the server's administrator limited allocation sizes. Maybe the PCP client hit a quota. Maybe those 8 were the last contiguous ports available. Depending on the reason, asking for more might or might not actually get more ports. But the PCP client has no way of knowing π©.
Second, not every PCP client that asks for N ports actually needs all N to work properly. For example, a DNS resolver might ask for N ports to use for source-port randomization. If it gets fewer than N, the DNS resolver still works fine, but source-port randomization is a little less efficient because it has fewer bits to play with π§ . In that case, it wouldn't make much sense to ask for more ports.
Finally, asking for more ports could count as abuse π«. External Ports are a shared resource among multiple PCP clients. A PCP client trying to grab more than its fair share could trigger countermeasures according to local policy. Not a good look π .
In conclusion, for most applications, asking for more ports wouldn't pay off enough to justify the extra costs β¨.
7. Security Considerations π
The security considerations discussed in [RFC6887] apply to this extension. Read those too, bestie π.
As described in Section 4.4.1, a single PCP request using the PORT_SET option may result in multiple responses. For that to happen, the request has to contain the nonce associated with multiple mappings on the server. So an on-path attacker could use an eavesdropped nonce to mount an amplification attack π±. Use of PCP authentication ([RFC6887], Section 18) eliminates this attack vector π‘οΈ.
To stop a PCP client from controlling all the ports bound to a shared IP address, port quotas should be configured on the PCP server (Section 17.2 of [RFC6887]). This one is seriously important, no cap π¨.
8. IANA Considerations π
IANA has allocated value 130 in the "PCP Options" registry at <http://www.iana.org/assignments/pcp-parameters> for the new PCP option defined in Section 4 π.
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/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>.
[RFC6887] Wing, D., Ed., Cheshire, S., Boucadair, M., Penno, R., and
P. Selkirk, "Port Control Protocol (PCP)", RFC 6887,
DOI 10.17487/RFC6887, April 2013,
<http://www.rfc-editor.org/info/rfc6887>.
9.2. Informative References
[RFC3261] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston,
A., Peterson, J., Sparks, R., Handley, M., and E.
Schooler, "SIP: Session Initiation Protocol", RFC 3261,
DOI 10.17487/RFC3261, June 2002,
<http://www.rfc-editor.org/info/rfc3261>.
[RFC3550] Schulzrinne, H., Casner, S., Frederick, R., and V.
Jacobson, "RTP: A Transport Protocol for Real-Time
Applications", STD 64, RFC 3550, DOI 10.17487/RFC3550,
July 2003, <http://www.rfc-editor.org/info/rfc3550>.
[RFC4787] Audet, F., Ed. and C. Jennings, "Network Address
Translation (NAT) Behavioral Requirements for Unicast
UDP", BCP 127, RFC 4787, DOI 10.17487/RFC4787, January
2007, <http://www.rfc-editor.org/info/rfc4787>.
[RFC6888] Perreault, S., Ed., Yamagata, I., Miyakawa, S., Nakagawa,
A., and H. Ashida, "Common Requirements for Carrier-Grade
NATs (CGNs)", BCP 127, RFC 6888, DOI 10.17487/RFC6888,
April 2013, <http://www.rfc-editor.org/info/rfc6888>.
[RFC6970] Boucadair, M., Penno, R., and D. Wing, "Universal Plug and
Play (UPnP) Internet Gateway Device - Port Control
Protocol Interworking Function (IGD-PCP IWF)", RFC 6970,
DOI 10.17487/RFC6970, July 2013,
<http://www.rfc-editor.org/info/rfc6970>.
[RFC7596] Cui, Y., Sun, Q., Boucadair, M., Tsou, T., Lee, Y., and I.
Farrer, "Lightweight 4over6: An Extension to the Dual-
Stack Lite Architecture", RFC 7596, DOI 10.17487/RFC7596,
July 2015, <http://www.rfc-editor.org/info/rfc7596>.
Acknowledgements π
The authors gave a big shoutout to Alain Durand, Cong Liu, Dan Wing, Dave Thaler, Peter Koch, Reinaldo Penno, Sam Hartman, Stuart Cheshire, Ted Lemon, Yoshihiro Ohba, Meral Shirazipour, Jouni Korhonen, and Ben Campbell for their useful comments and suggestions π«Άβ¨.
Contributors π
These individuals contributed to this document π¦:
Yunqing Chen
China Telecom
Room 502, No.118, Xizhimennei Street
Beijing 100035
China
Chongfeng Xie
China Telecom
Room 502, No.118, Xizhimennei Street
Beijing 100035
China
Yong Cui
Tsinghua University
Beijing 100084
China
Phone: +86-10-62603059
Email: yong@csnet1.cs.tsinghua.edu.cn
Qi Sun
Tsinghua University
Beijing 100084
China
Phone: +86-10-62785822
Email: sunqibupt@gmail.com
Gabor Bajko
Mediatek Inc.
Email: gabor.bajko@mediatek.com
Xiaohong Deng
France Telecom
Email: xiaohong.deng@orange-ftgroup.com
Authors' Addresses π
Qiong Sun
China Telecom
China
Phone: 86 10 58552936
Email: sunqiong@ctbri.com.cn
Mohamed Boucadair
France Telecom
Rennes 35000
France
Email: mohamed.boucadair@orange.com
Senthil Sivakumar
Cisco Systems
7100-8 Kit Creek Road
Research Triangle Park, NC 27709
United States
Phone: +1 919 392 5158
Email: ssenthil@cisco.com
Cathy Zhou
Huawei Technologies
Bantian, Longgang District
Shenzhen 518129
China
Email: cathy.zhou@huawei.com
Tina Tsou
Philips Lighting
3 Burlington Woods Dr #4t
Burlington, MA 01803
United States
Phone: +1 617-423-9999
Email: tina.tsou@philips.com
Simon Perreault
Jive Communications
Quebec, QC
Canada
Email: sperreault@jive.com
π¦ where this page comes from
- ietf: rfc7753 2016-02
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms