# 2020/7/1 Report ###### tags: `Daily Report` **Why do I do this job?** Because I want to analyze the performance of UORA in 802.11 ax **What do I want to do?** Continue writing the timing diagram, flow chart and performance evaluation **Sum of the job** I analyze the simulation result and compare it to the analytical model **Expected Outcome** Finish writing the timing diagram, flow chart and performance evaluation --- ## Intro - **UL OFDMA** is the multi-user variant of the OFDM whereby assigning subsets of subcarriers, called resource unit (RU), to different users allows simultaneous transmissions of data, control, and management frames from several users so it can serve more users at the same time - The MU UL transmissions are solicited by the AP in a new control frame called **trigger frame (TF)**. A STA that is the intended receiver of the TF responds with an HE trigger-based PPDU - **UL OFDMA RA** is a mechanism that enables a STA to transmit an UL physical layer protocol data unit (PPDU) in an RU access under UL OFDMA even if it has not been explicitly addressed. A STA uses a random back-off procedure before it randomly selects any one of the multiple RUs assigned for random access for its UL transmission - The AP may include the OFDMA-based Random Access Parameter Set (**RAPS**) element in beacon and probe response frames it transmits - performance analysis of the UL OFDMA RA mechanism -- simple but accurate analytical model -- study the system efficiency and delay performance under saturated condition -- finite number of stations and ideal channel conditions in a single-hop WLAN -- the analytical model will be used to identify the appropriate RAPS that maximizes the system performance -- by appropriately tuning the value of **RAPS**, the system can achieve better performance and operate close to its theoretical limit ## Preliminary - OFDMA employs multiple sub-carriers, the subcarriers are divided into multiple groups and each group is referred to as a RU (Resource Unit) ![](https://i.imgur.com/AdGYqdc.png) - UL MU transmissions leverage a new control frame called a Trigger frame. The Trigger frame, as shown in figure above, is the frame used by an AP to enable UL MU operation ![](https://i.imgur.com/a9ooMRv.png) - UL MU transmission process -- AP collects the requirements for each STA by receiving the following information from the STA: Buffer Status Report (BSR) and / or Bandwidth Query Report (BQR) -- the AP obtains the channel -- AP send the trigger frame to the multiple STAs -- STAs receive a TF (which allocates RU for the STA) or (specifies RUs for random access) -- the STA can transmit the packets in the UL MU MIMO ![](https://i.imgur.com/AVWUq2j.png) - The UL OFDMA RA mechanism is illustrated in figure above -- The AP assigns one or more RUs for random access by indicating value AID 0 in the AID subfield of the User Info field in TF-R frames if the STA has a bandwidth request or a BSR to transmit -- At first STAs initialize the OFDMA backoff (OBO) individually in the range of $[0,OCW]$, where $OCW$ (OFDMA contention window) is an integer with an initial value of $OCW_{min}$ -- After receiving the TF-R frame, STAs shall subtract the number of random access RUs from the OBO counter -- The STA could randomly select one of the random access RUs to do UL OFDMA transmission when its OBO counter reaches 0. -- if an RU is selected by only one STA, the STA successfully transmitted the packet and receives an ACK from the AP, $OCW$ will be reset to the $OCW_{min}$ -- If two or more STAs select the same RU to send out their bandwidth requirements, collisions occur, and $OCW$ will grow in the form of $min(2OCW{i-1}+1, OCW{max})$, where $OCW{i}$ is the state of the $OCW$ between ܱ$OCW{min}$ and $OCW{max}$, and $OCW{max}$ is the maximum values of $OCW$ -- There is no retry limit ![](https://i.imgur.com/T5LPrwj.png) - parameters for UL OFDMA RA, including $OCW{min}$ and $OCW{max}$, are defined in Random Access Parameter Set (RAPS) element (as shown in figure above), which are contained in the beacon frame sent by AP ## Analytical Model ### Packet Transmission Probability Probability of a station transmitting request at a stage is equal to [1] $$\tau= {W_0+1\over{W_0+1+(1-p)X_0+(1-p){\sum_{i=1}^{m-1}X_i({p\over2})^i}+X_m({p\over2})^m}}$$ Collision probability is the probability that at least two stations are transmitting in the same RU $$p=1-({1-{\tau\over M}})^n-{\tau\over M}({1-{\tau\over M}})^{n-1}$$ those two equations can be solved using numerical methods ### System Efficiency Probability that a station successful contest at a stage is the probability that only one station is transmitting in an RU $$P_{s\_station}={\tau\over M}({1-{\tau\over M}})^{n-1}$$ System efficiency is defined as the ratio of the number of successful contending stations at a stage and the number of RUs for random access in a stage $$eff(\tau)=nP_{s\_station}={n\tau\over M}({1-{\tau\over M}})^{n-1}$$ ### Average Access Delay Average access delay is defined as number of stages which are needed for a station to successfully contest the RUs. As there are M RUs, the average access delay is defined by $$D(\tau)={1\over MP_{s\_station}}={1\over \tau({1-{\tau\over M}})^{n-1}}$$ ## Simulation #### Input | I/P Parameters | Value in simulator | | ----------------- | ------| |$M$: # of RUs | $5, 10, 15$ | |$n$: # of STAs | $20$ | |$T$: # of access cycles| $10^4$ | |$OCW_{min}$: initial OCW| $0:3:600$ | |$OCW_{max}$: initial OCW| $300$ | |$OCW_{i}$($1\leq i\leq \infty$): OCW of the $i$th transmission | $OCW_{1}=OCW_{min}$, $0\leq OCW_{i} \leq OCW_{max}$ #### Counters |Counters|Range| |-|-| |m: the $m$th RU|$1$~$M$| |t: the $t$th slot|$1$~$T$| |s: the $s$th sample|$1$~$10$| |k: the $k$th STA|$1$~$n$| #### Variable Data structure | Variable | Meaning | Data Type| range | | -------- | -------- | -------- |-------- | | $OBO$ | OFDMA Backoff | Vector of integer | $VectorSize=(1,n)$ with range $0$~$OCW$ for each element (STA) | | $RUStatus$ | the number of packet being sent in an RU | Vector of Integer | $Vector Size=(1,M)$ with range $0$~$n$ for each element | | $RUChosenBySTA$ | Showing information about in which RU an STA sends its packet | Integer |$Vector Size=(1,n)$ with range $0$~$m$ for each element | | $TxAttempts$ | the number of packet transmission attempts | Integer | $0$ ~ $\infty$ | | $staDelay$ | the number of slots needed for each STA to successfully contend an RU | Vector of Integer | $Vector Size=(1,n)$ with range $-1$ ~ $\infty$ for each element (STA) | | $successTx$ | the number of successful transmission | Integer | $0$ ~ $\infty$ | | $collisionTx$ | the number of failed transmission | Integer | $0$ ~ $\infty$ | #### Output Data structure | O/P | Meaning | Data Type| range | | -------- | -------- | -------- |-------- | | $\tau$ | Station's transmission probability | Float | $0$~$1$ | | $Eff(\tau)$ | system efficiency for each STA's transmission probability $\tau$ | Float | $0$~$1$ | | $p(\tau)$ | Packet collision probability for each STA's transmission probability $\tau$ | Float | $0$~$1$ | | $D(\tau)$ | Average Access Delay for each STA's transmission probability $\tau$ | Float | $0$~$\infty$ | $$\tau={TxAttempts\over nT}$$ $$p(\tau)={collisionTx\over MT}$$ $$eff(\tau)={successTx\over MT}$$ $$D(\tau)={delay\over successTx}$$ #### Timing Diagram not yet. but basically the timing diagram is similar to [this](https://hackmd.io/fZoZRMuHQPaifr_UCwQugA) except there is no retry limit. Once the $OCW$ reaches $OCW_{max}$ for successive retransmission attempts, the $OCW$ remains at the value of $OCW_{max}$ until the $OCW$ is reset to $OCW_{min}$ when the retransmission is finally successful #### Flow Chart ```flow st=>start: Start e=>end: End op1=>operation: initialize the parameters OCWmin, OCWmax, and s op2=>operation: OCWmin=min(OCWmin, OCWmax) op3=>operation: initialize OBO for each STA initialize RUStatus by zero for each RU initialize RUChosenBySTA for each STA initialize staDelay by -1 for each STA successTx=0; collisionTx=0; delay=0; TxAttempts=0; op4=>operation: staDelay[k]++ op5=>operation: RUChosenBySTA[k]=random integer 1~M RUStatus[RUChosenBySTA[k]]++ transmissionAttempt[k]++ op6=>operation: OBO[k]=OBO[k]-M op7=>operation: k++ op8=>operation: successTx++ RUStatus[m]=0 op8_1=>operation: STA=k op8_2=>operation: k++ op9=>operation: delay=delay+staDelay[STA] staDelay[STA]=-1 OCW[STA]=OCWmin RUChosenBySTA[STA]=0 OBO[STA]=random value 0~OCW op10=>operation: collisionTx++ RUStatus[m]=0 op10_1=>operation: i=1 op10_2=>operation: STA[i]=k op10_3=>operation: i++ op10_4=>operation: k++ op11=>operation: OCW[i]=min(2*OCW[i], OCWmax) OBO[i]=random value 0~OCW RUChosenBySTA[STA[i]]=0 op11_1=>operation: i++ op12=>operation: m++ op13=>operation: k++ op14=>operation: calculate tau, Eff, p, and D op15=>operation: s++ op16=>operation: calculate the average tau, eff, p, and D for all sample cond0=>condition: for (s=1;s<=10) cond1=>condition: for (t=1;t<=T) cond2=>condition: for (k=1;k<=n) cond3=>condition: if OBO[k]<M+1 cond4=>condition: for (m=1;m<=M) cond5=>condition: if (RUStatus[m]==1) cond5_1=>condition: for (k=1;k<=n) cond5_2=>condition: if (RUChosenBySTA[k]==m) cond6=>condition: if (RUStatus[m]>1) cond6_1=>condition: for (k=1;k<=n) cond6_2=>condition: if (RUChosenBySTA[k]==m) cond6_3=>condition: for (i=1;i<=length(STA)) st->op1->op2->op3->cond0 cond0(yes)->cond1 cond0(no)->op16->e cond1(yes)->cond2 cond1(no)->op14->op15->cond0 cond2(yes)->op4->cond3 cond2(no)->cond4 cond3(yes)->op5->op7->cond2 cond3(no)->op6->op7 cond4(yes)->cond5 cond4(no)->op13->cond1 cond5(yes)->op8->cond5_1 cond5_1(yes)->cond5_2 cond5_1(no)->op9->op12 cond5_2(yes)->op8_1->op8_2->cond5_1 cond5_2(no)->op8_2 cond5(no)->cond6 cond6(yes)->op10->op10_1->cond6_1 cond6(no)->op12 cond6_1(yes)->cond6_2 cond6_1(no)->cond6_3 cond6_2(yes)->op10_2->op10_3->op10_4 cond6_2(no)->op10_4->cond6_1 cond6_3(yes)->op11->op11_1->cond6_3 cond6_3(no)->op12 op12->cond4 ``` ## Performance Evaluation ![](https://i.imgur.com/v4dwSyE.png) ![](https://i.imgur.com/Z7xiq27.png) ![](https://i.imgur.com/7LT4Luw.png) When $M\over n$ is low (<0.4), the model can't predict the simulation accurately during $\tau={M\over n}$ because at that $\tau$ the packet transmission in each slot does **NOT follow** binomial/poisson distribution, but following the exponential distribution instead. This is the histogram of packet transmission attempt for $M=5$ and $n=20$ when $\tau={M\over n}$ ![](https://i.imgur.com/wKvOf5m.png) When $M\over n$ is higher than 0.4, the model can predict the simulation well during $\tau={M\over n}$ because at that $\tau$ the packet transmission in each slot **following** binomial/poisson distribution. This is the histogram of packet transmission attempt for $M=10$ and $n=20$ when $\tau={M\over n}$ ![](https://i.imgur.com/V6v1H4m.png) ## Conclusion The model can predict the simulation accurately when ${M\over n}>0.4$ ## References [1] Hang Yang, Der-Jiunn Deng, Kwang-Cheng Chen, “Performance Analysis of IEEE 802.11ax UL OFDMA-Based Random Access Mechanism,” 2017 IEEE Global Communications Conference (GLOBECOM), 2017, pp. 1-6. ## Miscellaneous [Code](https://1drv.ms/u/s!AsPADuhEoQkUhIkxtuX8E2IxLTpYDg?e=WcfXuh)