Resilient Packet Ring
Resilient Packet Ring
Resilient Packet Ring
• Architecture
– Bidirectional packet-
switched ring with
counterrotating fiber
ringlets 0 and 1
– Up to 255 ring nodes
– RPR MAC over several
physical layers (e.g.,
Ethernet, SONET/SDH)
– Shortest path routing
unless preferred ringlet
specified by MAC client
– Destination stripping
enables spatial reuse
=> increased capacity
Resilient packet ring
• Packet forwarding
– Intermediate nodes forward packet if they don’t
recognize destination MAC address in packet header
– Forwarding methods
• Cut-through
– Packet forwarded before completely received
• Store-and-forward
– Packet forwarded after completely received
– Supplementary 1-byte time-to-live (TTL) field
• Added to each packet by RPR MAC control entity
• Value decremented by each intermediate node
• Prevents packets with unrecognized destination MAC
address from circulating forever
Resilient packet ring
• Multicasting
– Multicast group member-
ship identified by group
MAC destination address
– Realized by means of
broadcasting => no spatial
reuse
– Unidirectional flooding
• Packet removal based on
expired TTL or matching
source MAC address
– Bidirectional flooding
• Packets removal at
cleave point based on
expired TTL
• Cleave point can be put
on any span
Resilient packet ring
• Topology discovery
– RPR’s topology discovery protocol determines
connectivity, order of nodes, and status of each link
– At system initialization
• All nodes broadcast topology discovery control
packets on both ringlets with TTL value equal to 255
(maximum number of nodes)
• Each topology control packet contains information
about status of corresponding node & its attached
links
• By receiving all topology control packets, each node is
able to compute complete topology image (number &
ordering of nodes, status of each link)
• Topology image is stored in topology database of each
node
Resilient packet ring
• Topology discovery
– During normal operation
• Topology discovery packet is sent immediately by a
– New node inserted into ring
– Node after detecting link/node failure
– Node after receiving topology discovery packet
inconsistent with its current topology image
• Ripple effect
– First node noticing a topology change sends topology
discovery packet, followed by all other nodes
• Consistency check
– Once topology image is stable for specified time period,
each node performs consistency check
• Robustness
– After achieving stable & consistent topology image, each
node continues to periodically send topology discovery
packets
Resilient packet ring
• Topology discovery
– Use of topology database
• Determining number of hops between source &
destination nodes
• Setting TTL field to appropriate value
• Selecting shortest path to any destination node
Resilient packet ring
• Node architecture
Resilient packet ring
• Node architecture
– Salient features
• Virtual output queueing (VOQ) to avoid head-of-line
(HOL) blocking
• Ingress traffic throttled by means of token bucket
traffic shapers
• Lossless transit path
– Single-queue mode
» Single FIFO queue called primary transit queue (PTQ)
to store class A in-transit traffic
– Dual-queue mode
» Additional FIFO queue called secondary transit queue
(STQ) to store class B & C in-transit traffic
– RPR network may consist of both single-queue &
dual-queue nodes
• Checker, scheduler, and traffic monitor
Resilient packet ring
• Traffic classes
– Class-based priority scheme to achieve QoS support &
service differentiation
– Traffic classes & subclasses
• Class A: Low-latency & low-jitter service with guaranteed
bandwidth
• Class B: Predictable latency & jitter service
• Class C: Best-effort
• Bandwidth preallocation
– To fulfill service guarantees, bandwidth preallocated for
traffic subclasses A0, A1, and B-CIR
• Subclass A0
– Reserved bandwidth
– Reservation done by using topology discovery protocol
– Reserved bandwidth dedicated to node making reservation
• Subclasses A1 & B-CIR
– Part of unreserved bandwidth preallocated to subclasses
A1 & B-CIR => reclaimable bandwidth
– Reclaimable bandwidth not used by A1 & B-CIR (as well as
remaining unreserved bandwidth) can be used by
subclasses B-EIR & C
• Subclasses B-EIR & C
– No bandwidth preallocation
– Fairness eligible traffic
Resilient packet ring
• Access control
– Single-queue mode
• Highest priority given to local control traffic if PTQ not full
• Without local control traffic, in-transit traffic is given
priority over local ingress traffic
– Dual-queue mode
• Highest priority given to local control traffic if both PTQ &
STQ not full
• Without local control traffic, PTQ always served first
• If PTQ empty, local ingress traffic served until STQ reaches
certain threshold
• If STQ threshold crossed, STQ in-transit traffic is given
priority over local ingress traffic
– Benefits
• Lossless transit path for all traffic classes
• Class A traffic experiences only propagation delay &
occasional queueing delay due to nonpreemptive scheduling
Resilient packet ring
• Fairness control
– Lossless path property gives rise to starvation of down-
stream nodes => fairness problem
– Distributed fairness control protocol
• Dynamically throttling upstream traffic
• Maximizing spatial reuse
Resilient packet ring
• Local_fair_rate
– Local_fair_rate[n] of congested node n denotes fair rate
at which source nodes are supposed to transmit via
intermediate node n
– Congested node n sends fairness control packet
containing local_fair_rate[n] to upstream node n-1
– If node n-1 is also congested, it forwards fairness
control packet to upstream node n-2 containing
min {local_fair_rate[n], local_fair_rate[n-1]}
– If node n-1 is not congested but its forward_rate >
local_fair_rate[n], it forwards fairness control packet to
upstream node n-2 containing local_fair_rate[n]
– Otherwise, node n-1 sends null-value fairness control
packet to indicate lack of congestion
Resilient packet ring
• Allowed_rate_congested
– When upstream node i receives fairness control packet with
local_fair_rate[n], it decreases rate controller value of all
flows traversing congested node n to allowed_rate_congested
– Allowed_rate_congested equals sum of serviced rates of all
flows (i,j) originating from node i & traversing node n on their
path toward destination node j => local traffic rates of
upstream node i does not exceed local_fair_rate[n]
– Otherwise, if upstream node i receives null-value fairness
control packet, it increases allowed_rate_congested by
prespecified value to reclaim bandwidth
Resilient packet ring
• Operation modes
– Fairness control algorithm operates in either of two
operation modes
• Aggressive mode (AM)
• Conservative mode (CM)
– Both AM & CM operate within the same aforementioned
framework
– AM & CM differ in how node detects congestion &
calculates its local fair rate
Resilient packet ring
• Protection
– Due to bidirectional dual-fiber ring topology, RPR is able
to recover from single link or node failure
– Fault detection
• Alarm signal issued by underlying physical layer technology
(e.g., loss-of-signal (LOS) alert in SONET/SDH)
• No keep-alive messages from neighboring node for pre-
specified period of time
– Fault notification
• Upon fault detection, node broadcasts topology discovery
update packet to inform all ring nodes about failure
– Fault recovery
• RPR deploys two protection techniques
– Wrapping (optional)
– Steering (mandatory)
Resilient packet ring
• Wrapping
– Optional in RPR
– If deployed, all nodes
must support it
– Similar to automatic
protection switching
(APS) of SONET/SDH
self-healing rings (SHRs)
– Affects only packets
marked wrap eligible
(we bit in header is set)
– Benefits
• Fast recovery time
• Minimized packet loss
– Drawback
• Bandwidth inefficiency
Resilient packet ring
• Steering
– Mandatory in RPR
– After receiving a topo-
logy discovery update
packet sent by wrapping
node, a source node sends
local ingress traffic on
the ringlet in failure-free
direction
– Benefit
• Higher bandwidth
efficiency than wrapping
– Wrap-then-steer
protection strategy
• recommended if both
wrapping & steering used
together =>
packet reordering
Resilient packet ring
• In-order delivery
– RPR deploys two packet modes
• Strict packet mode (default)
– Packets guaranteed to arrive in same order as sent
– Strict order (so) bit in header is set to identify strict
order packets
– Strict order packets cannot be marked wrap eligible
=> discarded at wrap point
– After learning about failure, nodes stop sending strict
order packets & discard strict order in-transit packets
until topology stabilization timer expires
– With stable & consistent updated topology image, nodes
start to steer strict order packets onto respective ringlet
• Relaxed packet mode (optional)
– Relaxed packets may be steered immediately after learning
about failure & are not discarded from transit queues