RFC 7067
Directory Assistance Problem and High-Level Design Proposal
Okay bestie, let's go! π
Internet Engineering Task Force (IETF), RFC 7067 π¦
Title: Directory Assistance Problem and High-Level Design Proposal β¨
Authors: L. Dunbar (Huawei), D. Eastlake (Huawei), R. Perlman (Intel), and I. Gashinsky (Yahoo). The paper trail is very much "many hands, one doc" π«Ά
Category: Informational (so not a Standards Track thing, just vibes and info πΈ)
ISSN: 2070-1721
Date: November 2013 π
Obsoletes and updates: nothing is listed on the title page, so this doc isn't replacing or changing any other RFC π
Abstract
Okay so, Edge TRILL (Transparent Interconnection of Lots of Links) switches currently figure out which egress TRILL switch a MAC (Media Access Control) address lives behind by watching the data packets they ingress or egress, or by using the TRILL ESADI (End-Station Address Distribution Information) protocol π. When an ingress TRILL switch gets a data frame for a destination address (MAC&Label) it has never heard of, that frame gets flooded across the whole TRILL campus within the frame's Data Label. Chaotic, bestie π
This document lays out a framework for using directory services to help edge TRILL switches cut back on multi-destination frames π₯. It's especially about unknown unicast flooding and ARP/ND (Address Resolution Protocol / Neighbor Discovery), which means better TRILL network scalability and security π§.
Status of This Memo
This document is not an Internet Standards Track specification. It's published for informational purposes only π.
It's a product of the Internet Engineering Task Force (IETF) and represents the consensus of the IETF community. It went through public review and got approved for publication by the Internet Engineering Steering Group (IESG). Not every IESG-approved doc is a candidate for any level of Internet Standard, so check out Section 2 of RFC 5741 if you want the full tea β.
For the current status, errata, and how to send feedback, head to http://www.rfc-editor.org/info/rfc7067 π.
Copyright Notice
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), as in effect on the date this document was published. Please read these carefully, because they spell out your rights and restrictions for this doc π.
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 π€.
Table of Contents
1. Introduction ....................................................3
2. Terminology .....................................................4
3. Impact of Massive Number of End Stations ........................5
3.1. Issues of Flooding-Based Learning in Data Centers ..........5
3.2. Two Examples ...............................................6
4. Benefits of Directory-Assisted TRILL Edge .......................7
5. Generic Operation of Directory Assistance .......................8
5.1. Information in Directory for Edge RBridges .................8
5.2. Push Model and Requirements ................................9
5.3. Pull Model and Requirements ...............................11
6. Recommendation .................................................12
7. Security Considerations ........................................12
8. Acknowledgements ...............................................13
9. Informative References .........................................14
1. Introduction β¨
Edge TRILL (Transparent Interconnection of Lots of Links) switches, which are devices implementing [RFC6325] and also called RBridges, currently learn the mapping between destination MAC addresses and their egress TRILL switch. They do this by watching data packets or through the ESADI (End-Station Address Distribution Information) protocol π. When an ingress RBridge (Routing Bridge) gets a data frame for a destination address (MAC&Label) that it doesn't know, the frame gets flooded within that Data Label across the TRILL campus. (Data Labels are VLANs or FGLs (Fine-Grained Labels [FGL]).)
This document describes a framework for using directory services in environments where those services exist, like typical data centers, to help edge TRILL switches π§. That help can cut down on multi-destination frames, especially ARP [RFC826], ND [RFC4861], and unknown unicast, which means better TRILL network scalability π. On top of that, the information a directory provides can be more secure than what gets learned from the data plane (see Section 7) π.
Data centers, especially Internet and/or multi-tenant data centers, usually have a huge number of end stations running a wide variety of applications π . Their networks differ from enterprise campus networks in a few ways that make directory assistance super attractive, in particular:
- Data center topology is often based on racks and rows. A Server/VM (virtual machine) Management System orchestrates which guest operating systems go on which servers, racks, and rows, and it isn't random at all ποΈ. So the information a directory needs is normally available from that Management System.
- Rapid workload shifting in data centers can speed up how often physical servers get reloaded with different applications π. Sometimes, applications loaded into one physical server at different times can belong to different subnets. When a VM moves to a new location, or a server gets loaded with a new application that has different IP/MAC addresses, the destination addresses of data packets sent from those VMs are more likely to be unknown to their attached edge RBridges π.
- With server virtualization, there's a growing trend of dynamically creating or deleting VMs when resource demand changes π. VMs might move from overloaded servers to less loaded ones, or get aggregated onto fewer servers when demand is light. This leads to more frequent cases of multiple subnets on the same port at the same time, and a higher change rate for VMs than for physical servers π.
Both items 2 and 3 above can lead to applications in one subnet being placed in different locations (racks or rows), or one rack having applications that belong to different subnets π.
2. Terminology
The terms "VLAN" and "Data Label" are used interchangeably with "Subnet" in this document, because it's common to map one subnet to one VLAN or FGL π.
- Bridge: Device compliant with IEEE Std 802.1Q-2011 [802.1Q].
- Data Label: VLAN or FGL
- EoR: End-of-Row switches in a data center. Also known as aggregation switches.
- End Station: Guest OS running on a physical server or on a virtual machine. An end station in this document has at least one IP address, at least one MAC address, and is connected to a network.
- FGL: Fine-Grained Label [FGL]
- IS-IS: Intermediate System to Intermediate System routing protocol. TRILL uses IS-IS [IS-IS] [RFC6326].
- RBridge: "Routing Bridge", an alternate name for a TRILL switch.
- ToR: Top-of-Rack switches in a data center. Also known as access switches in some data centers.
- TRILL: Transparent Interconnection of Lots of Links [RFC6325]
- TRILL Switch: A device implementing the TRILL protocol [RFC6325].
- VM: Virtual Machine
3. Impact of Massive Number of End Stations πΈ
This section looks at what happens when there's a massive number of end stations in a TRILL campus, using data centers as the example π’.
3.1. Issues of Flooding-Based Learning in Data Centers
It's pretty common for data center networks to have multiple tiers of switches πͺ. For example, you might have one or two access switches for each server rack (ToR), aggregation switches for some rows (or EoR switches), and some core switches interconnecting the aggregation switches. Lots of aggregation switches in data centers have high port density, and it's not uncommon to see one aggregation switch interconnecting hundreds of ToR switches π€―.
+-------+ +------+
+/------+ | +/-----+ |
| Aggr11| + ----- |AggrN1| + EoR switches
+---+---+/ +------+/
/ \ / \
/ \ / \
+---+ +---+ +---+ +---+
|T11|... |T1x| |T21| .. |T2y| ToR switches
+---+ +---+ +---+ +---+
| | | |
+-|-+ +-|-+ +-|-+ +-|-+
| |... | | | | .. | |
+---+ +---+ +---+ +---+ Server racks
| |... | | | | .. | |
+---+ +---+ +---+ +---+
| |... | | | | .. | |
+---+ +---+ +---+ +---+
Figure 1: Typical Data Center Network Design
When TRILL is deployed in a data center with a large number of end stations, and the end stations in one subnet/Label are placed under multiple edge RBridges, the following problems could happen π¬:
- Unnecessary filling of slots in the MAC address learning table of edge RBridges. For example, RBridge T11 gets broadcast/multicast traffic (like ARP/ND, cluster multicast, etc.) from end stations under other edge RBridges that aren't actually talking to any end station attached to T11. Total waste of table space, bestie ποΈ.
- Packets being flooded across a TRILL campus when their destination MAC addresses aren't in the ingress RBridge's MAC address to the egress RBridge cache. Flooding everywhere just because the cache doesn't know yet? Not it π ββοΈ.
Part 1 of 4 done! π More to come, so stay tuned, bestie π«Ά
3.2. Two Examples π
Okay bestie, picture a data center with 1,600 server racks π’. Each rack has at least one ToR switch. The ToR switches are split into 8 groups, and each group is connected to a set of aggregation switches. There could be 4 to 8 aggregation switches in each set, which is how the traffic to and from the racks gets load shared π . Let's look at two scenarios for where the TRILL campus boundary goes if TRILL is deployed in this data center environment:
- Scenario #1: TRILL campus boundary starts at the ToR switches πΈ
- If each server rack has one ToR, there are 1,600 edge RBridges. If each rack has two ToR switches, then there will be 3,200 edge RBridges.
- In this scenario, the TRILL campus will have more than
1,600 (or 3,200) + 8*4 (or 8*8)nodes, which is a large IS-IS area π³. Even though a mesh IS-IS area can scale up to thousands of nodes, it is challenging for aggregation switches to handle IS-IS link state advertisement among hundreds of parallel ports. - If each ToR has 40 downstream ports facing servers and each server has 10 VMs, there could be
40*10 = 400end stations attached. If those end stations belong to 8 Labels, then the total number of MAC&Label entries learned by each edge RBridge in the worst case might be400*8 = 3,200, which is not a large number β¨.
- Scenario #2: TRILL campus boundary starts at the aggregation switches π¦
- With the same assumptions as before, the number of nodes in the TRILL campus will be less than 100, and aggregation switches don't have to handle IS-IS link state advertisements among hundreds of parallel ports π.
- However, the number of MAC&Label <-> Egress RBridge mapping entries to be learned and managed by the RBridge edge node can be very large π. In the example above, each edge RBridge has 200 edge ports facing the ToR switches. If each ToR has 40 downstream ports facing servers and each server has 10 VMs, there could be
200*40*10 = 80,000end stations attached. If all those end stations belong to 1,600 Labels (50 per Data Label) and each Data Label has 200 end stations, then under the worst-case scenario, the total number of MAC&Label entries to be learned by each edge RBridge can be1,600*200=320,000, which is very large π.
4. Benefits of Directory-Assisted TRILL Edge β¨
In some environments, particularly data centers, the assignment of applications to servers, including rack and row selection, is orchestrated by Server (or VM) Management System(s). That means there is a database or multiple databases that know exactly where each application is placed πΊοΈ. If the application location information can be fed to RBridge edge nodes through some form of directory service, then there is much less chance of RBridge edge nodes receiving unknown MAC destination addresses, and therefore less chance of flooding. Main character energy for the directory π.
Avoiding unknown unicast address flooding to the TRILL campus is especially valuable in the data center environment, because there is a higher chance of an edge RBridge receiving packets with an unknown unicast destination address and broadcast/multicast messages due to VM migration and servers being loaded with different applications. When a VM is moved to a new location or a server is loaded with a new application with different IP/MAC addresses, it is more likely that the destination address of data packets sent out from those VMs is unknown to their attached edge RBridges π. On top of that, gratuitous ARP (IPv4 [RFC826]) or Unsolicited Neighbor Advertisement (IPv6 [RFC4861]) sent out from those newly migrated or activated VMs have to be flooded to other edge RBridges that have VMs in the same subnets. Chaotic, but make it make sense π.
The benefits of using directory assistance include:
- Avoids flooding an unknown unicast destination address across the TRILL campus π. The directory-enforced
MAC&Label <-> Egress RBridgemapping table can determine if a data packet needs to be forwarded across the TRILL campus.- When multiple RBridge edge ports are connected to end stations (servers/VMs), possibly via bridged LANs, a directory-assisted edge RBridge won't need to flood unknown unicast destination data frames to all ports of the edge RBridges in the frame's Data Label when it ingresses a frame. It can depend on the directory to locate the destination. When the directory doesn't have the needed information, the frames can be dropped or flooded depending on the policy configured π§.
- Reduces flooding of decapsulated Ethernet frames with an unknown MAC destination address to a bridged LAN connected to RBridge edge ports π.
- When an RBridge receives a unicast TRILL data packet whose destination Nickname matches its own, the normal procedure is for the RBridge to decapsulate it and forward the decapsulated Ethernet frame to the directly attached bridged LAN. If the destination MAC is unknown, the RBridge floods the decapsulated Ethernet frame out all ports in the frame's Data Label. With directory assistance, the egress RBridge can determine if the MAC destination address in a frame matches any end stations attached via the bridged LAN. Frames can be discarded if their destination addresses do not match ποΈ.
- Reduces the amount of MAC&Label <-> Egress RBridge mapping maintained by edge RBridges π§Ή. There is no need for an edge RBridge to keep MAC entries of remote end stations that don't communicate with the end stations locally attached.
- Eliminates ARP/ND being broadcast or multicast through the TRILL core π‘.
- Provides some protection against spoofing of source addresses π‘οΈ (see Section 7).
5. Generic Operation of Directory Assistance π¦
There are two different models for directory assistance to edge RBridges: Push Model and Pull Model. The directory information is described in Section 5.1 below, while Section 5.2 discusses Push Model requirements, and Section 5.3 discusses Pull Model requirements π .
5.1. Information in Directory for Edge RBridges ποΈ
To achieve the benefits of directory assistance for TRILL, the corresponding Directory Server entries will need, at a minimum, the following logical data structure:
[IP, MAC, Data Label, {list of attached RBridge nicknames}, {list of
interested RBridges}]
The {list of attached RBridges} are the edge RBridges to which the host (or VM) is attached, as specified by the [IP, MAC, Data Label] in the entry. The {list of interested RBridges} are the remote RBridges that might have attached hosts that communicate with the host in this entry π«Ά.
When a host has multiple IP addresses, there will be multiple entries π₯.
The {list of interested RBridges} could get populated when an RBridge queries for information, or when information is pushed from a Directory Server. The list is used to notify those RBridges when the host (specified by the [IP, MAC, Data Label]) in the entry changes its RBridge attachment. An explicit list in the directory is not needed as long as the interested RBridges can be determined πΈ.
5.2. Push Model and Requirements β¨
okay so in the Push Model, the Directory Server(s) push the MAC&Label <-> Egress RBridge mapping for every end station that might talk to end stations on an RBridge edge node π. If the packet's destination address isn't in the MAC&Label <-> Egress RBridge table, the Ingress RBridge could be configured to:
- simply drop a data packet,
- flood it to the TRILL campus, or
- start the pull process to get information from the Pull Directory Server(s).
It may not be necessary for every edge RBridge to get the entire mapping table for all the end stations in a campus πΈ. There are lots of ways to narrow the full set down to a smaller group of remote end stations that talk to end stations attached to an edge RBridge. A simple approach is to only push the mapping for the Data Labels that have active end stations under an edge RBridge. This can cut down the number of mapping entries being pushed.
BUT the Push Model will usually push more MAC&Label <-> Egress RBridge mapping entries to edge RBridges than they actually need π. Normally, edge RBridge cache aging and unknown destination address flooding clean up the rarely used entries. The problem is that Directory Servers can have a hard time predicting how applications inside one Data Label will talk to each other. So the Directory Servers will likely push down all the MAC&Label entries whenever there are end stations in the Data Label attached to the edge RBridge. This is a disadvantage of the Push Model compared with the Pull Model described below.
In the Push Model, there needs to be a way for an RBridge node to ask Directory Server(s) to push the mapping entries π. This method should at least include the Data Labels enabled on the RBridge, so the Directory Server doesn't have to push the entire set of mapping entries for all the end stations in the campus. An RBridge must be able to get mapping entries when it is initialized or restarted.
The detailed method for the Push Model, and any handshake mechanism between an RBridge and the Directory Server(s), is outside the scope of this framework document π§.
When a Directory Server needs to push a large number of entries to edge RBridges, it should think about efficient data organization π . For example, one edge RBridge nickname could be associated with all of the attached end stations' MAC addresses and Data Labels. As shown in Table 1 below, a representation can make the data more compact. A nickname only needs to appear once for a set of Labels, each Label appears only once, and each Label is associated with a set of multiple IP and MAC address pairs. Having each IP and MAC address pair separately accompanied by its Label and by the nickname of the RBridge it's reachable through would be way more bulky π.
+------------+---------+--------------------------------+
| Nickname1 |Label-1 | IP/MAC1, IP/MAC2, ,, IP/MACn |
| |-------- +--------------------------------+
| |Label-2 | IP/MAC1, IP/MAC2, ,, IP/MACn |
| |-------- +--------------------------------+
| | ...... | IP/MAC1, IP/MAC2, ,, IP/MACn |
+------------+-------- +--------------------------------+
| Nickname2 |Label-1 | IP/MAC1, IP/MAC2, ,, IP/MACn |
| |-------- +--------------------------------+
| |Label-2 | IP/MAC1, IP/MAC2, ,,IP/MACn |
| |-------- +--------------------------------+
| | | IP/MAC1, IP/MAC2, ,, IP/MACn |
+------------+-------- +--------------------------------+
| ------- |-------- +--------------------------------+
| | | IP/MAC1, IP/MAC2, ,, IP/MACn |
+------------+-------- +--------------------------------+
Table 1: Summarized Table Pushed Down from Directory
Whenever a MAC&Label <-> Egress RBridge mapping changes because end stations get added, moved, or decommissioned, an incremental update can be sent to the edge RBridges affected by the change π₯. So something like a sequence number has to be kept by the Directory Servers and the RBridges. The detailed mechanisms will be specified in a separate document.
5.3. Pull Model and Requirements π¦
In the Pull Model, an RBridge pulls the MAC&Label <-> Egress RBridge mapping entry from the Directory Server when its cache doesn't have the entry. There are a couple of ways to trigger the pulling process:
- The RBridge edge node can send a pull request whenever it receives an unknown MAC destination, or
- The RBridge edge node can intercept all ARP/ND requests and forward them, or appropriate requests, to the Directory Server(s) that have the information on where the target end stations are located.
The Pull Directory response could say that the address being queried is unknown, or that the requestor is administratively prohibited from getting an informative response π.
With a Pull Directory, a frame with an unknown MAC destination address doesn't have to be flooded across the TRILL campus, and ARP/ND requests don't have to be broadcast or multicast across the TRILL campus. Main character energy for the whole campus π.
The ingress RBridge can cache the response it pulled from the directory. The timer for that cache should be short in an environment where VMs move around a lot π. The cache timer could be configured by the Management System, or sent along with the Pulled reply by the Directory Server(s). It's important that the cached information stays consistent with where addresses actually are in the campus. So there needs to be some mechanism that can tell RBridges holding pulled information that hasn't expired when that information changes or becomes invalid for other reasons β.
One advantage of the Pull Model is that edge RBridges can age out MAC&Label entries if they haven't been used for a certain configured period of time, or for a period of time provided by the directory π. So each edge RBridge only keeps the entries that are frequently used, which means its mapping table stays smaller. Edge RBridges would query the Directory Server(s) for unknown MAC destination addresses in data frames or ARP/ND, and then cache the response. When end stations on remote edge RBridges rarely talk to the locally attached end stations, the corresponding MAC&VLAN entries would get aged out of the RBridge's cache.
An RBridge that's waiting for a response from Directory Servers after receiving a data frame with an unknown destination address is kind of like a Layer-3/Layer-2 boundary router waiting for an ARP or ND response after receiving an IP data packet whose destination IP isn't in its IP/MAC cache table π. Most deployed routers today do hold the packet and send ARP/ND requests to the target when they get a packet with a destination IP that isn't in their IP-to-MAC cache. When the ARP/ND replies come back, the router sends the data packet to the target. This practice keeps flooding to a minimum when targets don't exist in the subnet π«Ά.
When the target doesn't exist in the subnet, routers generally resend an ARP/ND request a few more times before dropping the packets. So if the target doesn't exist in the subnet, the router's holding time while waiting for an ARP/ND response can be longer than the time it would take the Pull Model to get the IP-to-MAC mapping from a Directory Server π₯Ί.
RBridges that have mapping entries pushed from a Directory Server can be configured to use the Pull Model for targets that aren't in the mapping data being pushed πΈ.
A separate document will specify the detailed messages and the mechanism for RBridges to pull information from Directory Server(s).
6. Recommendation π
TRILL should provide a directory-assisted approach π. This document describes a basic framework for directory assistance to RBridge edge nodes. More detailed mechanisms will be described in a separate document or documents.
7. Security Considerations π
For general TRILL security considerations, see Section 6 of [RFC6325]. Please go read that one, it's important π₯.
Accurate mapping of IP addresses into MAC addresses, and of MAC addresses to the RBridges they're reachable through, is super important for delivering information correctly π. The security of specific directory-assisted mechanisms for delivering that information will be discussed in the document or documents that specify those mechanisms.
A directory-assisted TRILL edge can substantially improve the security of a TRILL campus compared to TRILL's default MAC address learning from the data plane π . Let's say S is an end station attached to RB1 that's trying to spoof a target end station T, and T is attached to RB2. Maybe S wants to steal traffic meant for T, or forge traffic so it looks like it's coming from T. Villain behavior, honestly π.
With the default TRILL data-plane learning described in [RFC6325], S can impersonate T or any other end station in the same Data Label (VLAN or FGL [FGL]) as S, and possibly other Data Labels too. That depends on how tightly VLAN admission and Appointed Forwarders [RFC6439] are configured at the port S is connected to RB1 through π§. S can just send native frames with T's forged source MAC addresses, maybe broadcast frames for maximum effectiveness. With this technique, S will frequently receive traffic meant for T, and S can easily forge traffic as if it were from T. Not okay π€.
Such spoofing can be prevented to the extent that the network RBridges (1) use trusted directory services as described above in this document, (2) discard native frames received from a local end station when the directory says that end stations should be remote, and, (3) when appropriate, intercept ARP and ND messages and respond locally π¦. Under these circumstances, S would be limited to spoofing targets on the same RBridge as S's ingress RBridge (that is, RB1 = RB2). RB1 would still need to learn which local end stations were attached to which port, and S could confuse RB1 by sending frames with the forged source MAC address of other end stations on RB1. S would also still be restricted to frames in a VLAN that is both admitted by S's port of attachment and for which that port is an Appointed Forwarder π.
Security against spoofing could be strengthened even further by adding port of attachment information to the directory and discarding native frames that arrive on the wrong port π₯. This would limit S to spoofing targets that are on the same link as S, in a VLAN admitted by the port of that link's attachment to RB1, and for which that port is an Appointed Forwarder. (Or, if the link is multiply connected, in the same way at all of the ports by which the link is attached to an RBridge.) Layers of protection, bestie π‘οΈβ¨.
Even without directory services, secure ND [RFC3971] or use of secure ESADI (as described in [ESADI]) may also be helpful for security π.
8. Acknowledgements π«Ά
Thanks to the following folks for their comments and review: Sam Aldrin, David Black, Charlie Kaufman, Yizhou Li, and Erik Nordmark πβ¨
9. Informative References π
Okay bestie, this is the reading list π These are the other docs the spec points to, and they're listed here with every detail intact.
[802.1Q] IEEE Std 802.1Q-2011, "IEEE Standard for Local and metropolitan area networks - Virtual Bridged Local Area Networks", May 2011. πΈ
[IS-IS] ISO/IEC, "Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service (ISO 8473)", ISO/IEC 10589:2002. π¦
[RFC826] Plummer, D., "Ethernet Address Resolution Protocol: Or Converting Network Protocol Addresses to 48.bit Ethernet Address for Transmission on Ethernet Hardware", STD 37, RFC 826, November 1982. π
[RFC3971] Arkko, J., Ed., Kempf, J., Zill, B., and P. Nikander, "SEcure Neighbor Discovery (SEND)", RFC 3971, March 2005. π
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, September 2007. β¨
[RFC6325] Perlman, R., Eastlake 3rd, D., Dutt, D., Gai, S., and A. Ghanwani, "Routing Bridges (RBridges): Base Protocol Specification", RFC 6325, July 2011. π
[RFC6326] Eastlake, D., Banerjee, A., Dutt, D., Perlman, R., and A. Ghanwani, "Transparent Interconnection of Lots of Links (TRILL) Use of IS-IS", RFC 6326, July 2011. π
[RFC6439] Perlman, R., Eastlake, D., Li, Y., Banerjee, A., and F. Hu, "Routing Bridges (RBridges): Appointed Forwarders", RFC 6439, November 2011. π§
[ESADI] Zhai, H., Hu, F., Perlman, R., Eastlake 3rd, D., and O. Stokes, "TRILL (Transparent Interconnection of Lots of Links): ESADI (End Station Address Distribution Information) Protocol", Work in Progress, July 2013. π
[FGL] Eastlake 3rd, D., Zhang, M., Agarwal, P., Perlman, R., and D. Dutt, "TRILL (Transparent Interconnection of Lots of Links): Fine-Grained Labeling", Work in Progress, May 2013. π
Authors' Addresses π
Meet the squad who wrote this! π«Ά
Linda Dunbar (Huawei Technologies)
Linda Dunbar
Huawei Technologies
5430 Legacy Drive, Suite #175
Plano, TX 75024, USA
Phone: +1-469-277-5840
EMail: ldunbar@huawei.com
Donald Eastlake (Huawei Technologies)
Donald Eastlake
Huawei Technologies
155 Beaver Street
Milford, MA 01757 USA
Phone: +1-508-333-2270
EMail: d3e3e3@gmail.com
Radia Perlman (Intel Labs)
Radia Perlman
Intel Labs
2200 Mission College Blvd.
Santa Clara, CA 95054-1549 USA
Phone: +1-408-765-8080
EMail: Radia@alum.mit.edu
Igor Gashinsky (Yahoo)
Igor Gashinsky
Yahoo
45 West 18th Street 6th floor
New York, NY 10011 USA
EMail: igor@yahoo-inc.com
That's the whole RFC, babe, you did it! πππ
π¦ where this page comes from
- ietf: rfc7067 2013-11
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms