Access Cntrl Algrithm fr RPR MAC Kanaiya Vasani Anp Ghanwani Lantern Cmmunicatins IEEE 802.17 Interim Meeting Orland, FL January 2002 kv_acc_02.pdf 1
Outline Overview MAC architecture Cmpnents f the bandwidth management entity Cmplexity analysis Cnclusins January 2002 kv_acc_02.pdf 2
The Need fr Access Cntrl Cntrl access t shared medium in rder t Prevent cllisins and cngestin n the shared medium e.g. On-ramp cntrls n freeways Make efficient use f the medium January 2002 kv_acc_02.pdf 3
RPR is a Clsed Lp Cntrl System Detect level f activity n the medium Regulate access t the medium based n this feedback All prpsals under cnsideratin are clsed lp systems January 2002 kv_acc_02.pdf 4
System Perfrmance Perfrmance f a clsed lp system depends n Precise feedback Timely feedback Rapid respnse January 2002 kv_acc_02.pdf 5
Feedback Prvided t Each Nde Prvides each nde its fair share f available bandwidth n a ring segment Fr this, ne needs 2 pieces f infrmatin The number f surces transmitting The available bandwidth (this is a cnstant number) January 2002 kv_acc_02.pdf 6
MAC Mdel DATA.indicate {RCMi }.indicate DATA.request PAUSE.indicate Media Access Rate Plicing Entity RPR MAC Link BW Mnitr Entity January 2002 kv_acc_02.pdf 7
Objectives fr a MAC Fairness Algrithm Ability t supprt multiple traffic types Prvide surce-based weighted fairness Maximize netwrk utilizatin Supprt VQ-capable and nn-vq capable clients Fast respnse time Stable Lssless Simplicity Scalable (size, speed, multiple ringlets) January 2002 kv_acc_02.pdf 8
The MAC Fairness Algrithm The bandwidth management entity implements a 3-step clsed-lp prcess: Link bandwidth mnitr entity Mnitr traffic and calculate rate infrmatin Fairness message management entity Distribute the rate infrmatin t all ndes Media access rate plicing entity Use the rate infrmatin fr access cntrl January 2002 kv_acc_02.pdf 9
MAC Architecture MAC Client DATA.indicate Data Path Bandwidth Management Entity 10 11 DATA.request PAUSE.indicate Media Access Rate Plicing Entity 12 8 7 RCM.indicate 13 Fairness Message Managament Entity 6 5 Ringlet In Receive Transit 1 Entity 2 Buffer 3 9 14 Link Bandwidth Mnitr Entity 4 Ringlet Out Arbiter/Scheduler January 2002 kv_acc_02.pdf 10
Link Bandwidth Mnitr Entity Ringlet In Ringlet Out Per-surce cunters 1 2 3 Signal t the fairness message management entity RCF Cmputatin January 2002 kv_acc_02.pdf 11
What is the Rate Cntrl Factr (RCF)? A factr sent t all ndes t cnvey rate infrmatin RCF = (AvailableBW Sum Ri) / Sum Wi where the sums are cmputed ver active flws nly AvailableBW = Link speed guaranteed BW Ri is the cmmitted rate fr surce i Wi is the weight fr surce i Used by each nde t cmpute its weighted fair share f BW Fair share f surce i n a segment Fi = Ri + Wi * RCF f that segment RCF allws us t cmpress infrmatin sent We culd have dne the cmputatin and sent 255 Fi s! January 2002 kv_acc_02.pdf 12
Link Bandwidth Mnitr Entity (Cncept) Maintain a per-surce bucket that increments by the number f bytes in each packet frm that surce At each rate measurement interval Drain the bucket based n the fair rate fr the surce as cmputed using the previus RCF Cmpute the new RCF January 2002 kv_acc_02.pdf 13
Link Bandwidth Mnitr Entity Pseud-cde @packet arrival /* Traffic mnitring */ bucket[surce_nde] += packet_length; @calcinterval (Recmmended 1 usec at 10G) /* calculate RCF */ sum_r = 0; sum_w = 0; fr (i = 0; i < NumNdes; i++) { /* fr each surce nde */ if (bucket[i] > 0) { /* d nly fr active flws */ sum_r += R[i]; sum_w += W[i]; } bucket[i] -= calcinterval * (R[i] + W[i] * RCF); /* drain bucket */ if (bucket[i] <= 0) bucket[i] = 0; } RCF_sampled = min(((availableringbw sum_r)/sum_w),availableringbw); RCF_ld = RCF; RCF = a * RCF_ld + (1 - a) * RCF_sampled; /* lw pass filter */ January 2002 kv_acc_02.pdf 14
Fairness Message Management Entity Respnsible fr sending and receiving rate cntrl messages (RCMs) RCMs are peridically bradcast n bth rings Fast and rbust t message lss Sends the RCM infrmatin t the MAC client if the client is VQ-capable January 2002 kv_acc_02.pdf 15
Rate Cntrl Message Frmat RCM Specific fields RPR Header Message type Cntrl Length Statin ID Sequence Number RCF Ringlet 1 RCF Ringlet 2 RCF. RCF Ringlet N FCS 4 bytes 6 bytes 4 bytes 4 bytes 4 bytes 4 bytes 4 bytes Cmmn cntrl frame and message Message type = RCM Cntrl: Specific cntrl bits Versin, etc. Length: length f RCM packet Statin ID: Packet s surce statin address Sequence Number: Detect packet lss RCF: Rate Cntrl Factr, ne fr each ringlet FCS: Errr detectin fr RCM January 2002 kv_acc_02.pdf 16
Media Access Rate Plicing Entity Uses the RCFs frm all ndes fr access cntrl (plicing) Generates PAUSE.indicate t the client if the client exceeds its capacity The PAUSE.indicate is generated per-segment in ndes that supprt VQ The nde is blcked frm transmitting nly if the data wuld need t traverse a paused segment January 2002 kv_acc_02.pdf 17
Media Access Rate Plicing Entity (Cncept) Each nde implements a leaky bucket plicer fr every segment n the ring based n the received RCFs If the bucket fr any segment ges empty, that segment is paused Client can n lnger transmit data that needs t traverse that segment January 2002 kv_acc_02.pdf 18
Media Access Rate Plicing Entity Pseud-cde (1) @Tupdate /* recmmend 100 usec at 10G */ fr each (link segment i n the ring) { /* calculate the allwable bandwidth fr this nde */ F = R[curr_nde] + W[curr_nde] * RCF[i]; /* accumulate credits fr each segment */ segment_credit[i] += F * Tupdate; segment_credit[i] = MIN(segment_credit[i], MAX_CREDIT); } /* has client has exceeded credit fr segment? */ if (segment_credit[i] < 0) { segment_paused[i] = TRUE; assert PAUSE.indicate fr segment i; } else { segment_paused[i] = FALSE; clear PAUSE.indicate fr segment i; } January 2002 kv_acc_02.pdf 19
Media Access Rate Plicing Entity Pseud-cde (2) @DATA.request frm client /* at every transmissin request */ fr each (link segment i between surce and destinatin) { if (segment_paused[i] == TRUE) { reject DATA.request; return; } } accept DATA.request; fr each (link segment i between surce and destinatin) { /* deduct segment credit */ segment_credit[i] -= packet_length; } January 2002 kv_acc_02.pdf 20
Tying it all Tgether: An Example RCF = 10 A RCF = 10 B D RCF = 10 RCF = 5 C Assume weights are all 1 and reserved/cmmitted rates are 0 One surce active n segment 1 Tw surces active n segment 2 RCFs fr each link will be as shwn At nde B, fr plicing interval credits(seg1) = interval * 10 credits(seg2) = interval * 5 When sending a packet frm B t C, decrement credits(seg1) When sending a packet frm B t D, decrement bth credit(seg1) & credit(seg2) If credit(seg1) becmes zer, n traffic can be sent If credit(seg2) becmes zer, nly traffic frm B t C can be sent January 2002 kv_acc_02.pdf 21
Simple and Intuitive Hw d yu measure cmplexity? Implementatin cmplexity Number f gates and registers Amunt f memry Lgic cmplexity Number f decisin pints in a flwchart January 2002 kv_acc_02.pdf 22
Memry Lgic Implementatin Cst and Cmplexity W[]: 256 ndes x 8 bits = 1 kbits (prvisined) R[]: 256 ndes x 32 bits = 8 kbits (prvisined) bucket[]: 256 ndes x 32 bits = 8 kbits RCF[]: 256 ndes x 32 bits = 8 kbits segment_credit[]: 256 ndes x 16 bits = 4 kbits ~40K gates fr the link bandwidth mnitr entity (mnitring and fair rate cmputatin) ~30K gates fr the media access rate plicing entity (access cntrl plicing) January 2002 kv_acc_02.pdf 23
Summary Simple and intuitive MAC algrithm Mnitr traffic and cmpute rate infrmatin Bradcast the rate infrmatin t all ndes Cntrl access using rate infrmatin received Very fast respnse time and cnvergence Prvides accurate and timely feedback Easy t implement ~70,000 gates January 2002 kv_acc_02.pdf 24