ppt

advertisement
Resilient Packet Ring
Chun-Hung Chen
2004.02.13
NTUT
Outline
RPR Introduction
Key Features








Structure
MAC
Bandwidth Allocation
Fairness
Queuing
Protection
Topology Discovery
Transparent Bridging
Conclusions
RPR Introduction
Packet based ring network for Metropolitan Area
Networks (MANs)
Towards to IEEE Standard, IEEE P802.17
Based on Cisco Spatial Reuse Protocol
Support up to 255 station attachments
Optimized for rings with maximum circumference
of 2000 kilometers
SONET in MAN
SONET is designed for point-to-point,
circuit-switched applications




Fixed Circuits
Wasted Bandwidth for Meshing
Multicast Traffic
Wasted Protected Bandwidth
Ethernet in MAN
Ethernet over a ring



Make efficient use of available bandwidth
Far simpler and inexpensive solution for data
Optimized for point-to-point or meshed topologies
Disadvantage



Not take advantage of ring topology to implement fast
protection mechanism
Spanning tree protocol runs comparatively slow
No global fairness policy
Key Features
Addressing

Unicast, Multicast, Broadcast
Services



Committed
Ensured
Opportunistic
Efficient




Concurrence
Reallocated
Reclaimed
Reused
Fairness



Weighted
Simple
Detailed
Plug-and-Play
Robust




Responsive
Lossless
Tolerant
OAM
RPR Layer Model
Ring Structure
Dual ringlets with unidirectional, counter-rotating
Connection between adjacent stations is a link
Composed of unidirectional links transmitting in opposite
directions is a span
A set of contiguous stations affected by a common
fairness choke point is a congestion domain
Station Structure
Station is composed of one client entity, one MAC entity
and two PHY entities



PHY is associated with a span shared with neighboring station
MAC entity contains one MAC control entity and two MAC
datapath entities, each of which is associated with a ringlet
PHY transmitting on ringlet0 and receiving on ringlet1 is East
PHY, reversely as West PHY
Addressing
Unicast
Multicast
Broadcast
Service
Committed

Guarantees bandwidth with a low circumferenceindependent jitter. Class A traffic has committed
server qualities
Ensured

Guarantees bandwidth with a bounded
circumference-dependent jitter. Class B committed
information rate (CIR) traffic has ensured qualities
Opportunistic

Provides best-effort services. Class B excess
information rate (EIR) and Class C traffic have
opportunistic qualities
Service Class
classA




Allocated, guaranteed data rate, low end-to-end delay, and jitter
bound
subclassA0 for reserved bandwidth
subclassA1 for reclaimable bandwidth
The allocation, advertisement, and shaping of allocated
bandwidth is done on a per-link, per-ringlet basis
classB

Allocated, guaranteed data rate, bounded end-to-end delay, jitter
for the traffic within the allocated rate, access to additional best
effort data transmission that is not allocated, guaranteed, or
bounded
classC

Best-effort traffic service with no allocated or guaranteed data
rate and no bounds on end-to-end delay or jitter
Ring capacity has to be assured to support classA and in-profile classB service
guarantees. The communication of allocation information must be phased so as to
not to create a case where transitioning allocation levels temporarily cause
cumulative allocations to exceed the link capacity. This service provisioning
mechanism is not discussed in the standard
subclassA0 & A1
Efficient
Concurrent

Transmit on the same segment with different ringlet
Reallocated

Allocated bandwidth can be independently committed
on non-overlapping segments
Reclaimed

Unused guaranteed bandwidth can be reclaimed by
opportunistic services
Reused

Opportunistic bandwidths are reused on nonoverlapping segments, by utilizing RPR’s concurrent
transmission and destination stripping capabilities
MAC Datapath
check is to determine when frames are to be
stripped
transit queues hold frames received waiting to
be transmitted on the same ringlet
Primary Transit Queue (PTQ) typically only a few
MTUs in size
Secondary Transit Queue (STQ) is optional
implementation and when it exists, it is typically
much larger than PTQ
Self-generated frames are transmitted
from MAC-resident stage buffer to
decouple MAC-to-client timings from the
timings of the physical-layer interface
Flow control and prioritization protocols
are applied when the frames are accepted
into the stage buffer
All traffic is shaped before transmission.
Traffic Shaper
Control frames are shaped to a low transmission
rate to limit the jitter impact on client-supplied
classA transmissions.
Client-supplied data frames are similarly shaped
to ensure conformance with pre-negotiated
bandwidth allocations.
Shaping involves monitoring transmitted frame
bandwidths and sending {sendA, sendB, sendC}
flow-control indication to the client

sendC indication provides a hop-count distance rather
than start/stop indication to prevent HOL problem due
to far-out congestion conditions
*Shaper
a
Queuing
Store-and-Forward
Cut-through
NOTES:
• Cut-through implementations also have to support store-and-forward,
when transmission of the cut-through queue is temporarily by a conflicting
transmission or blocking flow-control indication
• If the output rate of the cut-through transit queue is faster than the input
rate of this transit queue, then buffering of the header also provides
buffering to avoid overrun conditions
Single Queue
*Frame Priority in Single Queue
1.
2.
3.
4.
5.
Idle Frame
Transit Frame(PTQ) while PTQ is full
Control Frame
Transit Frame
Transmit Frame
Double Queue
*Frame Priority in Dual Queue
1. Idle Frame
2. Transit Frame(PTQ) while PTQ is full
3. Transit Frame(PTQ) while STQ is full
1.
4.
5.
6.
7.
8.
Transit Frame(STQ)
Control Frame
Transit Frame(PTQ)
Transit Frame(STQ) while STQ near full
Transmit Frame
Transit Frame(STQ)
Fairness
Weighted

Weighted fair access to available ring capacity
Equaled-weighted
Unequaled-weighted
Simple

Point-of-congestion flow-control facilitates simplify
per-destination queuing in client
Detailed

The (optional) multi-choke fairness allows the client to
selectively throttle its transmission based on multiple
congestion-point indications
(un)Equal Weighted
Each fairness procedures are performed
independently on each ringlet.
A fairness instance is specified by the
combination of the localMacAddress and the
localRi


localMacAddress: Station identity
localRi: Ringlet identity
Provided information


Allowed rate
Policing indicator
Allowed Rate Information
A local station detecting congestion on the
ringlet identifies a single downstream
congestionPoint
The arc of the ringlet between the
congestionPoint and the local station is fairness
domain
Multiple pairs of congestionPoint and fairness
domain can exist on the ringlet but any individual
fairness instance has knowledge of at most a
single congestionPoint.
allowedRate
Local client-sourced fairness-eligible traffic can
be added to the ringlet at allowedRate
Local client-sourced fairness-eligible traffic
bound for destinations beyond the
congestionPoint can be added to the ringlet at
allowedRateCongested
Hops from local station to the congestedPoint is
hopsToCongestion

If hopsToCongestion is MAX_STATIONS, it indicates
the absence of downstream congestion
Policing Indicator
addRateOK indicates whether the
additional client-sourced fairness-eligible
traffic can be accepted by the MAC
addRateCongestionOK indicates whether
the additional client-sourced fairnesseligible traffic bound for destination
beyond the congestionPoint can be
accepted by the MAC
Fairness Messaging
Single-Choke Fairness Message (SC-FCM)


Carry a rate advertisement transferred by a
station to its upstream neighbor
Aware no more than one congestionPoint
Multi-Choke Fairness Message (MC-FCM)


Carry a rate report broadcast by a station to all
station on the ringlet.
Aware multiple congestionPoint
SC-FCM and Congestion Domain
SC-FCM carrying advertised rate
information is transferred periodically from
a station to its upstream neighbor
Received advertisedFairRate <
FULL_RATE => downstream congestion
The set of contiguous links associated with
a ringlet on which downstream congestion
is detected, is known as a congestion
domain
Head


Receive absence of downstream congestion
Send presence of downstream congestion
Tail


Receive presence of downstream congestion
Send absence of downstream congestion
A local station within the congestion domain and
lying upstream of the tail of the domain,
identifies as its congestionPoint (?)
Fairness Features
Independent operation of each ringlet
Control messages carried on the ringlet opposing that of
the associated data flow
Control applied only to client-sourced fairness-eligible
traffic (classB EIR, classC)
Fair rates associated with the source station
Ringlet capacity not explicitly allocated, treated as
available capacity
Ringlet capacity explicitly allocated to subclassA1 or
classB CIR, but not in use, treated as available capacity
Single transit queue and dual transit queue
implementations supported
Fairness Procedure
Fairness Procedure may be event-driven or performed
periodically





Traffic statistic and policing
per-agingInterval (period is interval at which rates are locally
computed)
per-advertismentInterval (period is interval at which rates are
advertised upstream)
per-reportingInterval (period is interval at which rates are
broadcast to all stations on the ringlet)
received fairness frame processing
agingInterval is not related to advertisement-Interval
reportingInterval is an integer multiple of the advertisementInterval
SC-FCM is saved for agingInterval and advertisementInterval
Traffic Statistic
addRate

Incremented when a fairness-eligible byte is transmitted to the
ringlet from an add queue of the local station
addRateCongested

Incremented when a fairness-eligible byte bound for a station
beyond congestionPoint, is transmitted to the ringlet from an add
queue of the local station
fwRate

Similar to addRate but from a transit queue of the local station
fwRateCongested

Similar to addRateCongested but from a transit queue of the
local station
nrXmitRate

Incremented when a byte of a frame not associated with
subclassA0(i.e not-reserved) is transmitted to the ringlet from an
add queue or transit queue of the local station
Policing Indicator
addRateOK


addRate < allowedRate
nrXmitRate < unreservedRate
stqDepth = 0
(fwRate > addRate) && (stqDepth <
stqHighThreshold)
addRateCongestedOK


addRateOK
addRateCongested < allowedCongested
Per-agingInterval
Interval Time

Rates of 622Mbps and higher
agingInterval = 100us

Rates of less than 622Mbps
agingInterval = 400us
Activities




Aging
Low-pass filter
Compute localFairRate
Compute allowed rate info
Aging

addRate = (addRate * (ageCoef – 1)) / ageCoef
Low-pass filter

lpAddRate = ((lpCoef – 1) * lpAddRate + AddRate ) /
lpCoef
Compute the localFairRate depending on




Configured method (CONSERVATIVE or
AGGRESSIVE)
Local congestion state (CONGESTED or
UNCONGESTED)
Current Local conditions associated with congestion
unreservedRate = LINK_RATE – reservedRate
localFairRate Compuation
Aggressive
Currently congested

localFairRate = lpAddRate
Currently uncongested

UNCONGESTED
localFairRate = localFairRate

CONGESTED
localFairRate = unreservedRate
localFairRate Compuation
Conservative
UNCONGESTED

Currently congested
unallocatedRate = LINK_RATE –
(classProvisioned + classbCirProvisioned)
localFairRate = unallocatedRate *
(localWeight/activeWeights)

Currently uncongested
localFairRate = localFairRate +
(MAX_ALLOWED_RATE – localFairRate)/ramCoef
localFairRate Compuation
Conservative
CONGESTED

roundTripTime is not elapsed
localFairRate = localFairRate

roundTripTime is elapsed
nrXmitRate < rateLowThreshold (link not congested)

localFairRate = localFairRate + (unreservedRate –
localFairRate) / rampCoef
nrXmitRate > rateHighThreshold (link congested)

localFairRate = localFairRate – ( localFairRate / rampCoef )
Others

localFairRate = localFairRate
Congestion Condition
Any condition below are met


lpNrXmitRate > unreservedRate = ( LINK_RATE –
reservedRate )
lpNrXmitRate > rateLowThreshold
Optional for dual queue

The access delay timer for classB or classB addframes expires
Optional for dual queue

stqDepth > stqLowThreshold
Not for single queue
If not met


CONGESTION -> UNCONGESTION
Exception
CONGESTION state in CONSERVATIVE method

Transition occurs only when localFairRate >= unreservedRate
Compute Allowed Rate Info
AGGRESSIVE

allowedRate = maxAllowedRate
CONSERVATIVE

locally CONGESTED
allowedRate = localFairRate

locally UNCONGESTED
allowedRate = allowedRate + (maxAllowedRate –
localFairRate) / rampCoef
Compute allowedRateCongested
allowedRateCongested is the rate for the
destination beyond the congestionPoint
downstreamCongested is TRUE

allowedRateCongested is assigned the
weight-adjusted localFairRate of the
congestionPoint.
downstreamCongested is FALSE

allowedRateCongested =
allowedRateCongested + (maxAllowedRate –
allowedRateCongested)/rampCoef
hopsToCongestion
When the station receives advertisement
from downstream

If the frame originated from the same ringlet
hopsToCongestion = MAX_TTL – rcvdTtl

If the frame originated from the wrapped
ringlet
hopsToCongestion = the number of hops between
the local station and the downstream wrapPoint
Per-advertisementInterval Activities
Computation of advertisedFairRate
Transmission of a rate advertisement to
the upstream neighbor
May need to normalize the localFairRate
before transmitting
advertisedFairRate
rcvdFairRate == FULL_RATE &&
normLocalFairRate == FULL_RATE

advertisedFairRate = FULL_RATE
rcvdFairRate < normLocalFairRate

advertisedFairRate = rcvdFairRate
rcvdFairRate >= normLocalFairRate

advertisedFairRate = normLocalFairRate
Local station becomes the head of a congestion
domain
Receiving a fairness frame
End
Download