1 / 30

802.17c Protected Inter-Ring Connection

This document discusses the PIRC protection mechanism for interconnect between two rings in a network. It covers the commands, status transitions, and communication between PIRC stations.

kastner
Download Presentation

802.17c Protected Inter-Ring Connection

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 802.17cProtected Inter-Ring Connection Rafi Ram - Corrigent Systems January 2008

  2. PIRC Suggestion Highlights • Stations A & B are members of a protection group (PG) for interconnect between two rings • Station A and station B are protection group members (PGM) • One of the interconnected rings shall be provisioned as the “primary” ring and the other as “secondary” ring • The station on the secondary ring with the lower MAC address is designated as the “0” member, and the other as the “1” member

  3. Network Diagram • Stations A & C are “peer” stations • Stations B & D are “peer” stations • Stations A & B are “mate” stations • Stations C & D are “mate” stations

  4. PIRC Protection Command • Each PIRC station shall support the following protection commands per PG: • Idle • Manual Switch • Forced Switch

  5. PIRC Protection Status • Each PIRC station shall maintain a PIRC protection status per PG as follows (in order of priority): • Forced Switch – operator initiated forced switch protection command • Failure – peer/RPR interface failure or Miss-configuration • WTR – delay following failure clear • Peer Down – peer station not forwarding • Protecting – Mate station not forwarding

  6. PIRC Protection Status (cont) • Manual Switch – operator initiated manual switch protection command • Back-Off – delay to prevent loop before starting to forward traffic • No Request – protection group idle (no failure or protection command)

  7. Protection Status Transitions

  8. Forwarding States • Forward None • Protection Status = WTR or Failure or ForcedSwitch or ManualSwitch or BackOff or PeerDown • Forward Mine • Protection Status = NoRequest • Forward All • Protection Status = Protecting

  9. PIRC Stations Communication

  10. Station-OK State Variable station-OK = KA-peer-OK && (OperStatus==Up) && !missConfigDetected missConfigDetected – indication that miss-configuration was detected

  11. Peer Stations Communication • Peer stations exchange PIRC sync messages which are also used as “keep-alive” • The messages consist the following information (per protection group): • Station-OK • Protection Status • The peer messages are sent : • periodically • Immediately after change of value of station-OK or Protection Status

  12. Self-OK State Variable self-OK = station-OK && peer_station-OK &&(ProtStatus!=ForcedSwitch) && (peer_ProtCmd!=ForcedSwitch) &&(ProtStatus!=Failure) &&(peer_ProtCmd!=Failure) &&(ProtStatus!=WTR) &&(peer_ProtCmd!=WTR)

  13. Self-MS State Variable self-MS =(ProtStatus!=ManualSwitch) || (peer_ProtCmd!=ManualSwitch)

  14. Mate Stations Communication • Mate stations exchange messages which are also used as “keep-alive” • The messages consist the following information (per protection group): • Self-OK • Self-MS • The mate messages are sent : • periodically • Immediately after change of value of self-OK or self-MS • The messages could be new control type or new OAM type

  15. Mate-OK State Variable Mate-OK = mateVisable && KA-mate-OK &&mate_self-OK mateVisable – indication if mate station is visible in RPR topology

  16. Protection Status State Machine • The Protection Status State Machine is updated upon : • Activation of protection command • Change of value of one of the following variables : station-OK, peer_station-OK, peer_protStatus, mate-OK, mate-self-MS

  17. Protection Status State Machine – State ForcedSwitch if ((protCmd==Idle) || ((protCmd==ManualSwitch) && mate_self-MS)) if (!station-OK) protStatus = Failure else if (!peer_station-OK) protStatus = PeerDown else if (!mate-OK || ((peer_protStatus==Protecting) && !mate-self-MS) || (mate-self-MS && (peer_protStatus!=ManualSwitch)) protStatus = Protecting else if ((peer_protStatus==ManualSwitch) && !mate-self-MS) protStatus = PeerDown else protStatus = BackOff else if (protCmd==ManualSwitch) protStatus = ManualSwitch else protStatus = ForcedSwitch

  18. Protection Status State Machine – State Failure if (protCmd==ForcedSwitch) protStatus = ForcedSwitch else if (!station-OK) protStatus = Failure else protStatus = WTR /* trigger WTR timer */

  19. Protection Status State Machine – State WTR if (protCmd==ForcedSwitch) protStatus = ForcedSwitch else if (!station-OK) protStatus = Failure else if (!WTR_timer_expired) protStatus = WTR else if (!peer_station-OK) protStatus = PeerDown else if (!mate-OK || ((peer_protStatus==Protecting) && !mate-self-MS) || (mate-self-MS && (peer_protStatus!=ManualSwitch)) protStatus = Protecting else if (((protCmd==ManualSwitch) || (peer_protStatus!=ManualSwitch)) && !mate_self-MS) protStatus = ManualSwitch else protStatus = BackOff /* trigger backoff timer */

  20. Protection Status State Machine – State PeerDown if (protCmd==ForcedSwitch) protStatus = ForcedSwitch else if (!station-OK) protStatus = Failure else if (!peer_station-OK) protStatus = PeerDown else if (!mate-OK || ((peer_protStatus==Protecting) && !mate-self-MS) || (mate-self-MS && (peer_protStatus!=ManualSwitch)) protStatus = Protecting else if (((protCmd==ManualSwitch) || (peer_protStatus!=ManualSwitch)) && !mate_self-MS) protStatus = ManualSwitch else protStatus = BackOff /* trigger backoff timer */

  21. Protection Status State Machine – State Protecting if (protCmd==ForcedSwitch) protStatus = ForcedSwitch else if (!station-OK) protStatus = Failure else if (!peer_station-OK) protStatus = PeerDown else if (!mate-OK || ((peer_protStatus==Protecting) && !mate-self-MS) || (mate-self-MS && (peer_protStatus!=ManualSwitch)) protStatus = Protecting else if (((protCmd==ManualSwitch) || (peer_protStatus!=ManualSwitch)) && !mate_self-MS) protStatus = ManualSwitch else protStatus = NoRequest

  22. Protection Status State Machine – State ManualSwitch if (protCmd==ForcedSwitch) protStatus = ForcedSwitch else if (!station-OK) protStatus = Failure else if (!peer_station-OK) protStatus = PeerDown else if (!mate-OK || ((peer_protStatus==Protecting) && !mate-self-MS)) protStatus = Protecting else if ((protCmd==Idle) || mate_self-MS) protStatus = BackOff /* trigger backoff timer */ else protStatus = ManualSwitch

  23. Protection Status State Machine – State BackOff if (protCmd==ForcedSwitch) protStatus = ForcedSwitch else if (!station-OK) protStatus = Failure else if (!peer_station-OK) protStatus = PeerDown else if (!mate-OK || ((peer_protStatus==Protecting) && !mate-self-MS) || (mate-self-MS && (peer_protStatus!=ManualSwitch)) protStatus = Protecting else if (((protCmd==ManualSwitch) || (peer_protStatus!=ManualSwitch)) && !mate_self-MS) protStatus = ManualSwitch else if (!backoff_timer_expired) protStatus = BackOff else protStatus = NoRequest

  24. Protection Status State Machine – State NoRequest if (protCmd==ForcedSwitch) protStatus = ForcedSwitch else if (!station-OK) protStatus = Failure else if (!peer_station-OK) protStatus = PeerDown else if (!mate-OK || ((peer_protStatus==Protecting) && !mate-self-MS) || (mate-self-MS && (peer_protStatus!=ManualSwitch)) protStatus = Protecting else if (((protCmd==ManualSwitch) || (peer_protStatus!=ManualSwitch)) && !mate_self-MS) protStatus = ManualSwitch else protStatus = NoRequest

  25. MAC Table Flush • 802.17b – When an interconnecting station no longer appears in the topology, the MAC entries associated with that stations are deleted • When a PIRC station it sends SAS_Group_Notify message when : • Forwarding state changes to FwdNone • Forwarding state changes from FwdAll to FwdMine

  26. myFlow(frame) Function • The function could be used for implementation of the load-balancing functionality • On of the possible implementations of the myFlow function could be : myFlow(frame) =(hashing(frame.vlan) modulo 2) == member-type

  27. PIRC Sublayer Logic on the Path Client MAC as State Table

  28. PIRC Sublayer Logic on the Path Client MAC as Pseudo-Code if (frame is unicast) // not flooded, broadcast or multicast frame forward frame else if (MAC is on primary ring) forward frame else if (((FwdState==FwdMine) && myFlow(frame)) || (FwdState==FwdAll)) then forward frame else discard frame

  29. PIRC Sublayer Logic on the Path MAC  Client as State Table

  30. PIRC Sublayer Logic on the Path MAC  Client as Pseudo-Code if (frame is unicast) // not flooded, broadcast or multicast frame forward frame else if (MAC is on primary ring) if ((FwdState==FwdAll) && (RPR SA is the mate MAC address)) discard frame else forward frame else if (RPR SA is the mate MAC address) discard frame else if (((FwdState==FwdMine) && myFlow(frame)) || (FwdState==FwdAll)) then forward frame else discard frame

More Related