RFC 3532
Requirements for the Dynamic Partitioning of Switching Elements
Status of This Memo β¨
okay so this memo is giving "for your information" π It's for the Internet community, and it does not specify an Internet standard of any kind. Distribution is unlimited, so share it with everyone πΈ
Copyright Notice π
Copyright (C) The Internet Society (2003). All Rights Reserved.
Abstract π¦
okay bestie, this doc lays out the requirements for the mechanisms that dynamically reallocate a switching element's resources (like an ATM switch) across its partitions π₯ These reqs are especially critical when an operator makes a partition and then leases control of it to a third party. Major trust-fall energy π
Table of Contents π§
1. Definitions ................................................ 2
2. Introduction ............................................... 3
3. Dynamic Partitioning ....................................... 6
4. Requirements ............................................... 7
5. Security Considerations .................................... 9
6. Intellectual Property Considerations ....................... 9
7. Acknowledgements ........................................... 9
8. Normative References ....................................... 10
9. Informative References ..................................... 10
10. Authors' Addresses ......................................... 10
11. Full Copyright Statement ................................... 11
1. Definitions π
okay so in this doc, these are the definitions we're using, so pay attention, bestie π€
- Switching Element - A device that switches packets (e.g., an ATM switch or MPLS LSR) and whose resources can be divided into partitions. Each partition can be independently controlled by a different controller. Iconic multitasking π
- Partition - A partition is a set of switching element (SE) resources. Partitions are also called virtual SEs π¦
- Active Partition - An active partition is a partition whose resources are in use. Either a separate controller is directly controlling it, or it's running on internal policy-based control β¨
- Controller - The entity in charge of running the operations of an active partition. It's the boss of that partition π
- Static Partitioning - In static partitioning, you can't change any active partition's resources without restarting that partition. So repartitioning where the connections to controllers get disconnected before resources can be reallocated is in this category π
- Dynamic Partitioning - In dynamic partitioning, an active partition's resources can be reapportioned without restarting the partition. Literally the glow-up we want π₯
- Frozen Partition - A frozen partition is an active partition that's in the process of being shut down. Its unused resources are relinquished, but all current connections are allowed to stay until the controller removes them. As connections close, the resources go back to the SE π
- Deterministic Partitioning - In deterministic partitioning, each active partition gets an allotted quantity of each resource. One partition's resource usage doesn't influence what's available to another active partition. Every discussion in these requirements assumes deterministic partitioning π
- Statistical Partitioning - In statistical partitioning, some or all resources are pooled among the active partitions, and allocations may be based on percentages or some other metric. Talking about statistical partitions is outside the scope of these requirements, so we're skipping it π
- Proactive Notification - A proactive notification is a message an SE sends to its controller at the moment an event happens. So if an SE asynchronously sends the controller a message when it gets dynamically partitioned, we say the SE has proactively notified its controller of the resource reapportionment π«Ά
- Explicit Reactive Notification - In explicit reactive notification, the SE doesn't asynchronously send a message when dynamic partitioning happens. Instead, the SE includes an explicit, resources-reassigned error code in the response to a later request from the controller for an unavailable resource π
- Implicit Reactive Notification - This is similar to an Explicit Reactive Notification, except the protocol doesn't have any explicit resources-reassigned error codes. So all the SE can do is report some general, unknown error or generic resource error (meaning some resource error happened, but the exact cause isn't specified) when the controller tries to use unavailable resources. In that case, the controller may try to figure out whether a resource shortfall caused the error by using whatever messages the control protocol has for querying available resources. Detective mode activated π΅οΈββοΈβ¨
2. Introduction β¨
okay so this doc is basically the map of who's who when you partition switching elements πΊοΈ It also lays out the requirements for how these logical entities behave, plus the protocols they use to talk to each other π¬ The big goal? Let a partition's resources get bigger or smaller while it's still active (i.e., it has an active connection with a controller) π₯ This doc is mainly for partitioning GSMP switches π Still, we think these entities and requirements are needed for non-GSMP switches and (longest prefix match) forwarders (e.g., routers) too, but we don't think they're necessarily enough for those devices π€
Three logical entities are involved in partitioning and controlling a SE π First, a switching element (SE, for this doc) is a device that "switches" packets. Its resources can be partitioned, and each partition can be controlled by a single controller π That partitioning also implies the ability to enforce the division of resources between competing partitions β Second, the partition manager (PM) is a management entity that specifies how many virtual SEs the SE should be split into and what resources go to each virtual SE π§ Lastly, a controller directs the use of resources in one or more partitions to provide a set of services π«Ά
We'll only talk about logical entities from here on, but there are lots of ways they can map onto physical stuff π¦ One logical controller could run on a single physical processor (and for convenience we may call that processor a physical controller). Flip it around, and one logical controller could be made of processes running on multiple physical processors working together to control things properly π Multiple partition managers can also run on a single management workstation π» A switching element can be one or more whole or fractional physical elements. A SE could be:
- a single whole physical switch (e.g., a blade in a chassis) π
- multiple whole physical switches (e.g., two blades in a chassis made to look like one logical entity) πΈ
- a single fraction of a physical switch, which would enable nested partitions πͺ
- multiple fractions of the same or different physical switches (e.g., ports 1-3 on blade 1 and ports 2-4 on blade 2) β¨
Finally, any combo of these logical entities could theoretically be co-located on the same physical resources π
Honestly though, for lots of reasons, the physical world often mirrors this logical division of functionality π To make that division work, protocols like MEGACO [RFC3015] and GSMP [RFC3292] exist so control functionality can be physically separated from switching functionality π«Ά Recently, some regulatory environments have mandated multi-provider access to a single physical infrastructure π To satisfy those rules, a common use of partitioning will be for the owner of the SE to split it into several virtual SEs and then lease them out to third parties π In this case, the PM will likely be physically separate from all of the controllers. For locality (and therefore ease) of management, SEs will be remotely configurable, so the PM will be physically separated from the SE too π Here's the illustration. The dashed lines show interactions between the entities and are labeled with the cardinality of each relationship π
------------------ -------------------
| | * * | |
| Partition |-------------| Controller |
| Manager | C | |
------------------ -------------------
1 \ / *
\ /
\ A B /
\ /
* \ / *
------------/------
| --------/--- |
| |Partition | |
| | | |
| ------------ |
|Switching element|
-------------------
Interaction A is the one where the PM partitions the SE and allocates resources to the partitions it creates π There's a one-to-many relationship between PMs and SEs. To support dynamic partitioning, this doc is going to put certain requirements on proposed (or new) solutions in this space π§
Interaction B is the one where the controller configures and manages an active partition π» Current protocols doing this include GSMP [RFC3292] and MEGACO [RFC3015]. These protocols allow a many-to-many relationship between controller and partition π«Ά
Interaction C is the one where a PM and a controller could talk to each other to change the nature of an active partition π₯ There's a many-to-many relationship between PMs and controllers. For example, there are multiple PMs per controller when a controller manages two partitions from different SEs, and there are multiple controllers per PM when a SE has two partitions that are each managed by a different controller πΈ Possible interactions between PM and controller include:
- A controller could request that the resources of one of its active partitions be altered, either increased or decreased π
- The PM could respond to a controller request for altered resource levels π
- The PM could request that a controller release resources currently allocated to one of its active partitions π This could involve these types of request:
- A request to relinquish allocated but currently unused resources. That's basically putting a freeze on additional use of the specified resources π§
- A request to relinquish used resources π
- A request to relinquish an active partition. That's a request for a controller to let go of control of an active partition π
- The controller's response to a PM request π
As far as the authors know, no proposed standard solutions currently exist for interactions of type C π
3. Dynamic Partitioning β¨
Static repartitioning of a SE can be a costly and inefficient process π First, before static repartitioning can happen, all existing connections with controllers for the affected partitions have to be severed. (This severing always has to happen, even if the resources being reapportioned aren't in use right now π) When that happens, the SE will typically release all the state configured by the controller. Then the virtual SE has to be placed in the "down" state while the repartitioning takes place π Once the repartitioning is done, the partitions go into the "up" state and the controllers are allowed to reconnect to them. After that, the controllers can reestablish state in those partitions π So static repartitioning means a period of downtime, plus a period where the controllers are rebuilding state for the affected partitions π© Partitions of a SE that aren't affected by a static resource reallocation don't need to go down, and controllers wouldn't have to reestablish state with unaffected partitions either π
So dynamic partitioning is the one to prefer over static partitioning, since it avoids the downtime and loss of state that come with static partitioning π¦ That said, dynamic partitioning comes with its own set of potential problems π¬ Some questions to answer include the following:
- How is the controller notified of an increase or decrease in resources? π£
- What should happen when the PM would like to decrease the resources allocated to a partition, but those resources are in use? π€
4. Requirements β¨
okay so this section is literally the to-do list for anything that wants to be a solution π The doc doesn't try to answer the questions above. Instead it lays out the requirements that any solution MUST hit π
- There MUST be a mechanism by which a PM can create virtual SEs on the SE and allocate SE resources to those virtual SEs. π
- SEs MUST ensure that controllers don't use more resources than the ones currently allocated to each virtual SE. So each control protocol MUST provide either an explicit reactive notification or an implicit reactive notification to show resource exhaustion. π¨
- Furthermore, there MUST be a mechanism by which a PM can partition all resources discoverable through GSMP (like label tables) β¨ Partitioning of resources GSMP uses indirectly (like CPU), resources used by non-GSMP switches, or resources (like forwarding table entries) used by forwarding-based network elements MAY be supported π§
- If a PM tells an SE to release resources allocated to an active partition, and any of those resources are currently in use, the SE MUST deny the PM's request. π ββοΈ (Requirement #8 deals with the starvation issues this one causes, so don't panic yet π«Ά)
- After a resource reallocation fails, the PM SHOULD make use of one or both of the capabilities in requirements 6 and 7. π
- A PM SHOULD be able to tell an SE to turn an active partition into a frozen partition. π§
- A PM SHOULD be able to contact the controller and ask it to reduce its resource utilization. π
- The PM MUST be able to exercise "power on/off" type control of the virtual SEs that it has created. When the virtual power to an active partition is turned off, the partition becomes inactive and any controllers associated with that partition are disconnected. This capability lets a PM fall back to static partitioning when a controller is being uncooperative about releasing resources, and it makes sure permanent starvation from requirement #4 can be avoided ππ
- During dynamic repartitioning, an SE MUST maintain all existing state associated with the partitions being modified. π§
- Control protocols SHOULD NOT include any mechanism by which an SE can ask its controller to reduce its resource usage. π«
- Control protocols MAY contain proactive resource notification messages, which an SE could use to instantly tell the controller about an increase or decrease in resources. (We don't specifically require control protocols to have proactive notifications, because all control protocols must already have explicit or implicit reactive notifications, as mentioned in requirement #2.) π€
- A PM MAY directly inform a controller of a change in virtual SE resources, instead of relying on the implicit resource exhaustion mechanism of the control protocol. π£
- SEs MAY inform the PM of resource exhaustion on a particular partition. π
- A controller MAY ask the PM for further resources or for a reduction in existing resources. πββοΈ
- To support automating the interaction between the PM and attached controllers, the PM MUST be able to determine from the SE the addresses of the controllers that are currently attached to a virtual SE. Additionally, the SE MAY allow the PM to determine which control protocol (and which version of it) is currently managing each active partition. ποΈ
- An SE MAY support the ability for one virtual SE to provide a service to another virtual SE within the same physical SE. For example, an SE may be configured to provide a virtual link between two virtual SEs. Furthermore: π
- a. There MUST be a mechanism by which the SE can inform the PM which of these partition-to-partition services it provides.
- b. There MUST be a mechanism by which the PM can configure the available partition-to-partition services.
- c. If configuring a partition-to-partition service results in a virtual port being added to or removed from a virtual SE, the SE MUST notify all controllers attached to that virtual SE (assuming the corresponding control protocol supports such notifications). π¨
- There MUST be a mechanism by which a PM can query an SE to find out the resources of that SE, the partitions currently configured on that SE, and the resources allocated to each partition. π
5. Security Considerations π
Okay, this part is SERIOUS bestie π Security is the whole point here, so please read it carefully π«Ά
Only authorized PMs MUST be allowed to dynamically repartition an SE πͺ Therefore, SEs MUST use a secure process by which an authorized entity can tell the SE which PM should control it. This instruction MAY name the PM explicitly, or MAY name the use of a (discovery) protocol to dynamically locate the PM π΅οΈββοΈ Similarly, only the PM (or an authorized agent of the PM) that is authorized to partition an SE MUST be allowed to contact controllers to ask them to decrease their resources or to tell them their resources have been increased π Likewise, the PM MUST verify and authenticate that any request for additional or fewer resources for a virtual SE has come from a controller that is authorized to control that specified virtual SE π No vibes-based trust here, periodt π
6. Intellectual Property Considerations
The IETF doesn't take a position on whether any intellectual property or other rights claimed about the technology in this document are valid, or how far they reach, or whether any license under those rights is available. It also doesn't say it has tried to find out what rights exist π€·ββοΈ Info about the IETF's rules for rights in standards-track and standards-related documents can be found in RFC 2026 π Copies of rights claims that were made available for publication, plus any assurances of licenses to be made available, or the result of an attempt to get a general license or permission for implementers or users to use those proprietary rights, can be requested from the IETF Secretariat π¬
The IETF invites anyone who's interested to bring any copyrights, patents, patent applications, or other proprietary rights to its attention if they might cover technology needed to practice this standard π Send that info to the IETF Executive Director π
7. Acknowledgements π«Ά
The authors want to give a big shout-out to Avri Doria and Jonathan Sadler for their contributions to this document π
8. Normative References π
[RFC2119] Bradner, S. "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[RFC3292] Doria, A., Hellstrand, F., Sundell, K. and T. Worster,
"General Switch Management Protocol (GSMP) V3", RFC 3292,
June 2002.
9. Informative References π§Ύ
[RFC3015] Cuervo, F., Greene, N., Rayhan, A., Huitema, C., Rosem, B.
and J. Segers, "Megaco Protocol 1.0," RFC 3015, November
2000.
10. Authors' Addresses π
Todd A. Anderson
Intel Labs
JF2-60
2111 NE 25th Avenue
Hillsboro, OR 97124 USA
Phone: +1 503 712 1760
EMail: todd.a.anderson@intel.com
Joachim Buerkle
Nortel Networks Germany GmbH & Co. KG
Hahnstrasse 37-39
60528 Frankfurt
Phone: ++49 (0)69 6697 3281
EMail: joachim.buerkle@nortelnetworks.com
11. Full Copyright Statement Β©οΈ
Copyright (C) The Internet Society (2003). All Rights Reserved. π
You can copy and share this document, and translations of it, with anyone π You can also write derivative works that comment on or explain it, or help people implement it, and publish, copy, and distribute those in whole or in part with no restrictions of any kind π The one condition is that the copyright notice and this paragraph stay on every copy and derivative work π The document itself can't be modified in any way, including removing the copyright notice or the references to the Internet Society or other Internet organizations. The exception is when you need it to develop Internet standards, in which case the copyright procedures in the Internet Standards process must be followed, or when you need to translate it into a language other than English π
The limited permissions above are perpetual and won't be revoked by the Internet Society or its successors or assigns βΎοΈ
This document and the information in it are provided on an "AS IS" basis, and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE π«
Acknowledgement π«Ά
Funding for the RFC Editor function is currently provided by the Internet Society π
π¦ where this page comes from
- ietf: rfc3532 2003-05
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms