Download presentation
Presentation is loading. Please wait.
Published byDarrell Brooks Modified over 8 years ago
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
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.