802.17c protected inter-ring connection
DESCRIPTION
802.17c Protected Inter-Ring Connection. Rafi Ram - Corrigent Systems March 2008. 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) - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/1.jpg)
802.17cProtected Inter-Ring Connection
Rafi Ram - Corrigent SystemsMarch 2008
![Page 2: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/2.jpg)
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
![Page 3: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/3.jpg)
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
Station ARPR MAC
Station BRPR MAC
Client
Station CRPR MAC
Station DRPR MAC
Client
Primary Ring
Secondary RingFilter
optional localtributaries
![Page 4: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/4.jpg)
4
PIRC Protection Command
• Each PIRC station shall support the following protection commands per PG:– Idle– Manual Switch– Forced Switch
![Page 5: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/5.jpg)
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
![Page 6: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/6.jpg)
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)
![Page 7: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/7.jpg)
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
![Page 8: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/8.jpg)
8
PIRC Stations Communication
Station ARPR MAC
Client
Station CRPR MAC
Peer Sync
Station BRPR MAC
Station DRPR MAC
Client Peer Sync
Mate Sync
Mate Sync
![Page 9: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/9.jpg)
9
Station-OK State Variable
station-OK = KA-peer-OK && (OperStatus==Up) && !missConfigDetected
missConfigDetected = indication that miss-configuration was detected
![Page 10: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/10.jpg)
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
![Page 11: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/11.jpg)
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
![Page 12: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/12.jpg)
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)
![Page 13: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/13.jpg)
13
Self-MS State Variable
self-MS = (ProtStatus==ManualSwitch) || (peer_ProtStatus==ManualSwitch)
![Page 14: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/14.jpg)
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
![Page 15: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/15.jpg)
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
![Page 16: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/16.jpg)
16
Mate-OK State Variable
Mate-OK = mateVisable && KA-mate-OK &&mate_self-OK
mateVisable – indication if mate station is visible in RPR topology
![Page 17: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/17.jpg)
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
![Page 18: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/18.jpg)
18
Protection Status State Machine – State ForcedSwitch
if ((protCmd==Idle) || ((protCmd==ManualSwitch) && mate_self-MS))if (!station-OK) protStatus = Failureelse
if (!peer_station-OK || ((peer_protStatus==ManualSwitch) && !mate-self-MS)) protStatus = PeerDown
elseprotStatus = BackOff /* trigger backoff timer */
elseif (protCmd==ManualSwitch) protStatus = ManualSwitchelse protStatus = ForcedSwitch
![Page 19: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/19.jpg)
19
Protection Status State Machine – State Failure
if (protCmd==ForcedSwitch)protStatus = ForcedSwitch
elseif (!station-OK)
protStatus = Failureelse
protStatus = WTR /* trigger WTR timer */
![Page 20: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/20.jpg)
20
Protection Status State Machine – State WTR
if (protCmd==ForcedSwitch) protStatus = ForcedSwitchelse
if (!station-OK) protStatus = Failureelse
if (!WTR_timer_expired) protStatus = WTRelse
if (!peer_station-OK || ((peer_protStatus==ManualSwitch) && !mate-self-MS))
protStatus = PeerDownelse
if ((protCmd==ManualSwitch) && !mate_self-MS) protStatus = ManualSwitch
elseprotStatus = BackOff /* trigger backoff timer */
![Page 21: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/21.jpg)
21
Protection Status State Machine – State PeerDown
if (protCmd==ForcedSwitch)protStatus = ForcedSwitch
elseif (!station-OK)
protStatus = Failureelse
if (!peer_station-OK || ((peer_protStatus==ManualSwitch) && !mate-self-MS))
protStatus = PeerDownelse
if ((protCmd==ManualSwitch) && !mate_self-MS) protStatus = ManualSwitch
elseprotStatus = BackOff /* trigger backoff timer */
![Page 22: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/22.jpg)
22
Protection Status State Machine – State BackOff
if (protCmd==ForcedSwitch) protStatus = ForcedSwitchelse
if (!station-OK) protStatus = Failureelse
if (!peer_station-OK || ((peer_protStatus==ManualSwitch) && !mate-self-MS))
protStatus = PeerDownelse
if ((protCmd==ManualSwitch) && !mate_self-MS) protStatus = ManualSwitch
elseif (!backoff_timer_expired) protStatus = BackOffelse
if (!mate-OK || (peer_protStatus==Protecting) || (mate-self-MS && (peer_protStatus!=ManualSwitch))protStatus = Protecting
else protStatus = NoRequest
![Page 23: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/23.jpg)
23
Protection Status State Machine – State Protecting
if (protCmd==ForcedSwitch) protStatus = ForcedSwitchelse
if (!station-OK) protStatus = Failureelse
if (!peer_station-OK || ((peer_protStatus==ManualSwitch) && !mate-self-MS))
protStatus = PeerDownelse
if ((protCmd==ManualSwitch) && !mate_self-MS) protStatus = ManualSwitch
elseif (!mate-OK || (peer_protStatus==Protecting) || (mate-self-MS && (peer_protStatus!=ManualSwitch))
protStatus = Protecting else
protStatus = NoRequest
![Page 24: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/24.jpg)
24
Protection Status State Machine – State ManualSwitch
if (protCmd==ForcedSwitch)protStatus = ForcedSwitch
elseif (!station-OK)
protStatus = Failureelse
if (!peer_station-OK || ((peer_protStatus==ManualSwitch) && !mate-self-MS))
protStatus = PeerDownelse
if ((protCmd==ManualSwitch) && !mate_self-MS) protStatus = ManualSwitch
elseprotStatus = BackOff /* trigger backoff timer */
![Page 25: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/25.jpg)
25
Protection Status State Machine – State NoRequest
if (protCmd==ForcedSwitch)protStatus = ForcedSwitch
elseif (!station-OK)
protStatus = Failureelse
if (!peer_station-OK || ((peer_protStatus==ManualSwitch) && !mate-self-MS))
protStatus = PeerDownelse
if ((protCmd==ManualSwitch) && !mate_self-MS) protStatus = ManualSwitch
else protStatus = NoRequest
![Page 26: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/26.jpg)
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
![Page 27: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/27.jpg)
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
![Page 28: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/28.jpg)
28
PIRC Sublayer Logic on the Path Client MAC as State Table
Row Condition Action
1 Unicast(frame) Forward
2 MAC is on primary ring Forward
3 FwdState==FwdNone Discard
4 FwdState==FwdAll Forward
5 myFlow(frame) Forward
6 - Discard
![Page 29: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/29.jpg)
29
PIRC Sublayer Logic on the Path Client MAC as Pseudo-Code
if (frame is unicast) // not flooded, broadcast or multicast frameforward frame
elseif (MAC is on primary ring)
forward frameelse
if (((FwdState==FwdMine) && myFlow(frame)) || (FwdState==FwdAll)) then
forward frameelse
discard frame
![Page 30: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/30.jpg)
30
PIRC Sublayer Logic on the Path MAC Client as State Table
Row Condition Action
1 Unicast(frame) Forward
2 (MAC is on primary ring) && (RPR SA is the mate MAC address) && (FwdState==FwdAll)
Discard
3 MAC is on primary ring Forward
4 RPR SA is the mate MAC address Discard
5 FwdState==FwdNone Discard
6 FwdState==FwdAll Forward
7 myFlow(frame) Forward
8 - Discard
![Page 31: 802.17c Protected Inter-Ring Connection](https://reader036.vdocuments.us/reader036/viewer/2022070419/56815bcd550346895dc9c311/html5/thumbnails/31.jpg)
31
PIRC Sublayer Logic on the Path MAC Client as Pseudo-Code
if (frame is unicast) // not flooded, broadcast or multicast frameforward frame
elseif (MAC is on primary ring)
if ((FwdState==FwdAll) && (RPR SA is the mate MAC address))discard frame
elseforward frame
elseif (RPR SA is the mate MAC address)
discard frameelse
if (((FwdState==FwdMine) && myFlow(frame)) || (FwdState==FwdAll)) then
forward frameelse
discard frame