Presentation is loading. Please wait.

Presentation is loading. Please wait.

802.17c Protected Inter-Ring Connection Rafi Ram - Corrigent Systems March 2008.

Similar presentations


Presentation on theme: "802.17c Protected Inter-Ring Connection Rafi Ram - Corrigent Systems March 2008."— Presentation transcript:

1 802.17c Protected Inter-Ring Connection Rafi Ram - Corrigent Systems March 2008

2 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 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 4 PIRC Protection Command Each PIRC station shall support the following protection commands per PG: –Idle –Manual Switch –Forced Switch

5 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 –Peer Down – peer station not forwarding –WTR – delay following failure clear to prevent toggling in/out of failure state

6 6 PIRC Protection Status (cont) –Protecting – Mate station not forwarding –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 7 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

8 8 PIRC Stations Communication

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

10 10 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

11 11 peer_ProtStatus & peer_station-OK peer_ProtStatus and peer_station-OK are the ProtStatus and station-OK variables of the peer station –They are advertised using the Peer sync messages

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

13 13 Self-MS State Variable self-MS = (ProtStatus==ManualSwitch) || (peer_ProtStatus==ManualSwitch)

14 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 15 mate_self-OK & mate_self-MS mate_self-OK and mate_self-MS are the self- OK and self-MS variables of the peer station –They are advertised using the Peer sync messages

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

17 17 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

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

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

20 20 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 || ((peer_protStatus==ManualSwitch) && !mate-self-MS)) protStatus = PeerDown else if ((protCmd==ManualSwitch) && !mate_self-MS) protStatus = ManualSwitch else protStatus = BackOff /* trigger backoff timer */

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

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

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

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

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

26 26 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

27 27 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

28 28 PIRC Sublayer Logic on the Path Client  MAC as State Table RowConditionAction 1Unicast(frame)Forward 2MAC is on primary ringForward 3FwdState==FwdNoneDiscard 4FwdState==FwdAllForward 5myFlow(frame)Forward 6-Discard

29 29 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

30 30 PIRC Sublayer Logic on the Path MAC  Client as State Table RowConditionAction 1Unicast(frame)Forward 2(MAC is on primary ring) && (RPR SA is the mate MAC address) && (FwdState==FwdAll) Discard 3MAC is on primary ringForward 4RPR SA is the mate MAC addressDiscard 5FwdState==FwdNoneDiscard 6FwdState==FwdAllForward 7myFlow(frame)Forward 8-Discard

31 31 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


Download ppt "802.17c Protected Inter-Ring Connection Rafi Ram - Corrigent Systems March 2008."

Similar presentations


Ads by Google