RFC 3619

Extreme Networks' Ethernet Automatic Protection Switching (EAPS) Version 1

πŸ“… published October 2003, from ietf

Extreme Networks' Ethernet Automatic Protection Switching (EAPS) Version 1 πŸŽ€

okay bestie, let's get into it ✨ this is RFC 3619 from the Network Working Group, written by S. Shah and M. Yip of Extreme Networks, dated October 2003. It's marked Informational πŸ’…, which means it's sharing info with the Internet community and isn't a formal standard. The header doesn't list anything it obsoletes or updates πŸ™ˆ


Status of This Memo 🌸

this memo is just info for the Internet community. it does not specify an Internet standard of any kind, and distribution of it is unlimited πŸ’–

Copyright (C) The Internet Society (2003). All Rights Reserved.

Abstract ✨

this doc describes Ethernet Automatic Protection Switching (EAPS) (tm), a technology invented by Extreme Networks to make Ethernet rings more available and robust πŸ”₯ an Ethernet ring built with EAPS can be as resilient as SONET rings, but cheaper and with fewer constraints (e.g., ring size). it's giving premium reliability on a budget 🫢

1. Introduction πŸ¦‹

lots of Metropolitan Area Networks (MANs) and some Local Area Networks (LANs) are wired in a ring, because that's just how the fibre runs 🌈 EAPS is built for exactly that shape, so it works really well in ring topologies for MANs or LANs πŸ’…

MAN operators are obsessed with keeping recovery time as short as possible when a fibre cut happens 😭 EAPS converges in less than one second, and often in less than 50 milliseconds ⚑ and the best part is that it doesn't limit how many nodes the ring can have. convergence time doesn't depend on the number of nodes either, so the ring can grow without getting slower 🧚

2. Concept of Operation πŸŽ€

okay so an EAPS Domain lives on a single Ethernet ring πŸ’– every Ethernet Virtual Local Area Network (VLAN) that needs protection gets configured on all the ports in the ring for that EAPS Domain 🌸 each domain has exactly one designated "master node", and every other node on that ring is a "transit node" πŸ‘‘

every node on the ring has 2 ports plugged into the ring πŸ” on the master node, one port is the "primary port" to the ring and the other is the "secondary port" πŸ’œ

in normal operation, the master node blocks the secondary port for all non-control Ethernet frames that belong to the EAPS Domain, which is how it avoids a loop in the ring πŸ™ˆ the existing Ethernet switching and learning mechanisms keep working per the existing standards on this ring, no changes needed 🫢 the trick is that the master node makes the ring look loop-free to the standard switching and learning algorithms. iconic behaviour, honestly ✨

if the master node detects a ring fault, it unblocks its secondary port and lets Ethernet data frames pass through πŸ”₯ there's also a special "Control VLAN" that can always pass through all ports in the EAPS Domain, including the master's secondary port. that's the lane that never gets blocked πŸ›£οΈ

EAPS uses both a polling mechanism and an alert mechanism (described below) to check that the ring is connected and to catch faults fast πŸ¦‹

when a transit node detects a link-down on any of its ports in the EAPS Domain, it immediately sends a "link down" control frame on the Control VLAN to the master node 😭

when the master node gets that "link down" control frame, it moves from the "normal" state to the "ring-fault" state and unblocks its secondary port πŸ’€ it also flushes its bridging table, and it sends a control frame to all the other ring nodes telling them to flush their bridging tables too 🧹 right after flushing, each node starts learning the new topology 🌈

2.2. Ring Polling πŸ”

the master node sends a health-check frame on the Control VLAN at a user-configurable interval ⏰ if the ring is complete, the health-check frame comes back on its secondary port, and the master node resets its fail-period timer and keeps running normally πŸ’–

if the master node doesn't get the health-check frame before the fail-period timer runs out, it moves from the normal state to the "ring-fault" state and unblocks its secondary port 😱 it also flushes its bridging table and sends a control frame to all the other nodes telling them to flush theirs too 🧹 right after flushing, each node starts learning the new topology πŸ¦‹ this polling is the backup plan in case the Link Down Alert frame gets lost for some unforeseen reason 🫢

2.3. Ring Restoration 🌸

the master node keeps sending periodic health-check frames out its primary port, even while it's in the ring-fault state πŸ’ͺ once the ring is back, the next health-check frame arrives on the master node's secondary port πŸŽ‰ that's the signal for the master to go back to the normal state, logically block non-control frames on the secondary port, flush its own bridge table, and send a control frame to the transit nodes telling them to flush their bridging tables and re-learn the topology πŸ”„

here's the tricky part πŸ‘€ between the moment a transit node notices its link is back and the moment the master notices the ring is back, the master's secondary port is still open, so a temporary loop is possible in the topology 😬 to prevent that, the transit node puts all the protected VLANs that transit the newly restored port into a temporary blocked state, remembers which port it blocked, and moves into the "pre-forwarding" state πŸ›‘οΈ when a transit node in the pre-forwarding state gets a control frame telling it to flush its bridging table, it flushes the table, unblocks the previously blocked protected VLANs on the newly restored port, and transitions to the "normal" state πŸŽ€

Part 2 is coming next with Section 3 and the frame format details πŸ§šπŸ’œ

Okay bestie, the legal bit πŸ’… Copyright is held by The Internet Society, and the year is 2003. All rights reserved, but the rules are actually pretty chill 🫢

Anyone can copy this document and share it with others. You can also write derivative works that comment on it, explain it, or help people implement it, and you can publish those too, in whole or in part, with no real restrictions πŸŽ€ The one catch is that the copyright notice and this paragraph have to stay on every copy and every derivative work.

You're not allowed to change the document itself, though πŸ™ˆ That means no deleting the copyright notice, and no removing references to the Internet Society or other Internet organizations. There are two exceptions. One is when you need it for developing Internet standards, and then you have to follow the copyright procedures in the Internet Standards process. The other is translating it into a language other than English.

Those permissions are perpetual, which means the Internet Society and its successors or assignees can never take them back πŸ¦‹

Now the disclaimer, which is in all caps for a reason 😭

This document and the information contained herein is 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. Thank you to the Internet Society for keeping the RFC Editor running πŸ’–

πŸ“¦ where this page comes from