600 likes | 619 Views
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.
E N D
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
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 circumference-independent 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
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 non-overlapping 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
*Frame Priority in Single Queue • Idle Frame • Transit Frame(PTQ) while PTQ is full • Control Frame • Transit Frame • Transmit Frame
*Frame Priority in Dual Queue • Idle Frame • Transit Frame(PTQ) while PTQ is full • Transit Frame(PTQ) while STQ is full • 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
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
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 fairness-eligible 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 advertise-mentInterval • SC-FCM is saved for agingInterval and advertisement-Interval
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 CompuationAggressive • Currently congested • localFairRate = lpAddRate • Currently uncongested • UNCONGESTED • localFairRate = localFairRate • CONGESTED • localFairRate = unreservedRate