Wednesday, October 19, 2016

IoT: LTE-BL/CE(CAT-M1) DL traffic scheduling

In CAT-M1, DL PDSCH is scheduled using MPDCCH DCI format 6-1A. The search space used could be either common or UE specific. Following is an example of using common search space for MPDCCH DCI format 6-1A.

Tuesday, October 11, 2016

IoT: LTE-BL/CE(CAT-M1) Attach Procedure (RRCConnectionSetupComplete and following up signaling)

Upon sending SR, UE would start to monitor MPDCCH in subframe (n+4) for DCI format 6-0A. Upon receiving SR, eNB would schedule UL grant for Msg5 in DCI format 6-0A. According to 36.212 5.3.3.1.10, bit interpretation of DCI format 6-0A is as follows.
I.E. HEX value 015B0220, translated to bits string is 00001010110110000001000100000
0 -> flag DCI format 6-1A or DCI format 6-0A differentiation. 1 means 6-1A and 0 means 6-0A
0 -> frequency hopping flag. 0 means disabled
001 -> ceiling(log2(floor(N_(UL/RB)))/6) = 3 bits, INT value is 1 indicated narrowband index is 1.
01011 -> 5 bits for resource allocation. Refer to 36.213 8.1.1, INT value is 11 means RIV=11, using following equation

RBstart=0 and L_CRBs=6
0110 -> 4 bits for MCS. INT value is 6.
00 -> 2 bits for Repetition number as defined in 36.213 8.0
000 -> 3 bits for HARQ process number
1 -> 1 bit for New Data Indicator. First 1 means new data.
00 -> 2 bits for Redundancy Version. INT value 0 means RV0
01 -> 2 bits for TPC Command for scheduled PUSCH as defined in 36.213 5.1.1.1
UL index field (2 bits) as in 36.213 5.1.1.1, 7.2.1, 8, 8.4 is only for TDD ul/dl configuration0, not present in current example
DAI field (2 bits) as defined in 36.213 7.3 is not present in this example.
0 -> 1 bit for CSI Request
0 -> 1 bit for SRS Request
00 -> 2 bits for DCI subframe repetition number as defined in 36.213 9.1.5

After decoded DCI format 6-0A, UE would transmit PUSCH according to the scheduling information in DCI. For this transmission, UE needs to use RLC AMD and PDCP encryption. Depending on the size of RRCConnectionSetupComplete (NAS AttachRequest pigbacked), 1 UL grant is probably not enough for NAS+RRC message,
I.E. In our example, TBS is 600 bits, if NAS and RRC layer information bits is 1000 bits, 1 UL grant is not enough. In this case, UE would set first RLC AMD SN field to 0 and set header field FI according to following table

UE also needs to set E and LI fields according to 36.322 6.2.2.

After adding RLC header, UE would pass RLC SDU to PDCP layer for PDCP header. Since it is SRB1, PDCP SN length is 5 bits and MAC-I is 32 bits with all set to 0.

Note, in 24.301 8.3.20.2, in order for MME to send ESM Information Request, UE needs to set ESM Information transfer flag to 1 in PDN Connectivity Request.

The rest signaling is no difference compared with legacy LTE.

IoT: LTE-BL/CE(CAT-M1) Contention Resolution (Msg3 and Msg4)


After decoded RAR in DL subframe n, based on 36.213 6.1.1 and in our example the UL delay field is set to 0 in RAR, UE shall transmit PUSCH in the first available UL subframe where n+k1 and k1 >= 6.
In previous example, UE's Msg3 TBS is 72 bits (MCS=2 and LCRBs=2). The narrowband index to transmit PUSCH is 8. The F set on physical layer is code block size (in our example, only 1 code block is present) + 24 bits CRC = 96 bits. The E set on physical layer is (12x14-24)*2*2=576bits. (12 subcarriers, 14 symbols, 24REs reserved for CRS, 2PRBs and QPSK modulation)
I.E. Field analysis of HEX value 20061F564DDBE713F6 for MAC UL-SCH PDU.
Started with first 16 bits HEX value 2006.
0 -> Reserved bit, set to 0 all the time
0 -> F2 1 bit to indicate size of the Length field. Table 6.2.1-3.
1 -> Extension field. 1 means there is at least another set of R/F2/E/LCID fields. 0 means either a MAC SDU, a MAC control element or padding starts at the next byte.
00000 -> 5 bits LCID field. For MAC UL-SCH PDU, 00000 means CCCH
Since LCID is not a special case, continue decoding next byte as F/L format. If it is a special case, start decoding next byte as R/F2/E/LCID.
0 ->  F 1 bit to indicate size of Length field. Table 6.2.1-3. There is one F field per MAC PDU subheader except for the last subheader and subheaders corresponding to fixed sized MAC control element and except for when F2 is set to 1. F2=0 + F=0 means Length field is 7 bits.
000110 -> Length field. It indicates the length of the corresponding MAC SDU or variable size MAC control element in bytes. There is one Length field per MAC PDU subheader except for the last subheader and subheaders corresponding to fixed-sized MAC control elements. INT value is 6, which means CCCH RLC has 6 bytes of data.

Because E field in first 16 bits is set to 1, there is at least another set of R/F2/E/LCID. Looking at following 8 bits, HEX value 1F.
0 -> Reserved bit set to 0.
0 -> F2. 0 means either MAC control element is bigger than 32767 bytes or it is last subheader.
0 -> Extension field. 0 means there is no more MAC subheader. Either a MAC SDU, a MAC control element or padding starts at the next byte.
11111 -> LCID=31 means padding is included in MAC PDU when single byte or two byte padding is required but can not be achieved by padding at the end of MAC PDU.

Since we already know MAC SDU size is 48 bits and the second MAC subheader is the last MAC subheader. The rest 48 bits (In HEX 564DDBE713F6) is CCCH RLC PDU.

For CCCH, TMD RLC PDU is used to transmit data. PDCP is also transparent in this case. 48 bits are solely for RRC PDU.
I.E. Field analysis of HEX value 564DDBE713F6.
Based on 36.331 6.2.1 UL-CCCH-MessageType, which is sequence. Value 0 indicates first element in sequence is selected, which is c1. c1 messageType is choice, 0 means first element is selected, RRCConnectionRequest, RRCConnectionRequest is also choice and 0 means first element is selected which is RRCConnectionRequest-r8. RRCConnectionRequest-r8 has sequence type and it has 3 IEs. The first IE ue-Identity is also sequence type and 1 means the second element is selected, which is randomValue of bit size 40. establishmentCause is ENUMERATED value and it has 3 bits. 3 means mo-signaling. Last element is spare which is 1 bit.

After transmitted Msg3, UE shall start mac-ContentionResolutionTimer for the corresponding enhanced coverage level if it exists to monitor Msg4 in the narrowband specified in RAR. Upon receiving Msg3, eNB will transmit Msg4 in (n+k) subframe, where k>=4. Msg4 is on DL-CCCH channel and RLC is TM mode with no PDCP header. The way to analyze each MAC subheader is the same as Msg3. One difference is that the first MAC subheader has LCID=28, which means this MAC transmitted UE Contention Resolution Identity. Note here the UE Contention Resolution Identity here is 48 bits long, which is the complete ASN.1 structure of RRCConnectionRequest RRC PDU.

Upon decoding Msg4, UE has to send ACK via PUCCH, the way to calculate which PRB to use for PUCCH transmission is different compared with legacy.
First, UE needs to calculate n_((1,p0)/PUCCH), this is derived from following equation in 36.213 10.1.2.1


In our example, we used distributed transmission, which is signaled by Msg4 RRC IE EPDCCH-SetConfig-r11_transmissionType-r11.
Delta(ARO) is determined from the HARQ-ACK resource offset field in the DCI format of the corresponding MPDCCH as given by 36.213 Table 10.1.2.1-1. In out previous example, this value is 0.

N_((m1)/PUCCH,q) for MPDCCH-PRB-set q is configured by higher layer parameter n1PUCCH-AN-InfoList-r13 for the corresponding CE level. In our previous example, n1PUCCH-AN=0. Note, this value could be updated and sent in Msg4 in pucch-ConfigDedicated. UE should update if it receives n1PUCCH-AN-r13 in Msg4.
n_(ECCE, q) is 0 according to 36.213 9.1.5
From above equation, calculated n_((1,p0)/PUCCH) is 0.

After calculated n_((1,p0)/PUCCH), UE needs to use following equation from 36.211 5.4.3,


In our example, PUCCH format is 1, system is normal cyclic prefix so c=3, N_((1)/CS) is signaled by RRC layer parameter nCS-AN=0 in SIB2, delta(PUCCH/shift) is signaled by RRC layer parameter deltaPUCCH-shift=0 in SIB2, N_(2/RB) is signaled by RRC layer parameter nRB-CQI=2 in SIB2. From step1 calculation, n_((1,p0)/PUCCH) is 0. Using above equation to calculate m=0.

Third step is to calculate n_PRB(i), From 36.211 5.3.4, N_((ch,UL)/NB) is signaled by RRC layer parameter interval-ULHoppingConfigCommonModeA=int1 if PRACH CE level is 0 or 1. (In our example, it is 0). N_(PUCCH/abs) is equal to N_((m)/PUCCH,rep) which is signaled by RRC layer parameter pucch-NumRepetitionCE-format1 if the PDSCH doesn't contain a contention resoltuion, otherwise it is provided by parameter pucch-NumRepetitionCE-MSG4-LevelX-r13, X depends on the most recent PRACH level, either 0, 1, 2 or 3. In our example, SIB2-BR has pucch-NumRepetitionCE-MSG4-Level0-r13=1.

If eNB transmitted Msg4 in subframe7, in FDD, eNB would expect UE to transmit first UL in subframe1 (the absolute subframe number which is calculated using sfn*10+subframe number should be used). i0=absolute UL subframe number. i0<=i<=i0+N_(PUCCH/abs)-1, which shows i=1.

j=floor(i/(N_((ch,UL)/NB)))=1,

Since m=0 and j=1, m'(j)=1, So m=N_(UL/RB)-1-floor(m'(j)/2)=49.

To sum up, followings are all the required parameters to calculate PUCCH resource.
RRC layer:
deltaPUCCH-shift
nRB-CQI
nCS-AN
n1PUCCH-AN (in SIB2-BR or in Msg4)
EPDCCH-SetConfig-r11 -> transmissionType-r11
interval-ULHoppingConfigCommonModeA -> interval-FDD-r13
pucch-NumRepetitionCE-MSG4-Level0-r13

MAC layer (most recent DCI format 6-1A):
HARQ-ACK resource offset

Depending on when did UE receive Msg4, UE could transmit SR together with PUCCH ACK or transmit SR in the next SR opportunity. The way to calculate PUCCH resource used for SR is similar to above example with one difference, n_((1)/PUCCH) should be set to equal to n_((1)/PUCCH,SRI), which is configured by RRC layer parameter sr-PUCCH-ResourceIndex. SR opportunity is calculated according to 36.213 10.1.5

I.E. Followings are example RRC parameters UE received in Msg4, try to calculate the PUCCH resource used for SR transmission. Try to consider two scenarios, UE received Msg4 in TTI3117 and UE recevied Msg4 in TTI3197.

RRC layer:
deltaPUCCH-shift = ds1
nRB-CQI = 2
nCS-AN = 0
n1PUCCH-AN (in SIB2-BR or in Msg4) = 0
EPDCCH-SetConfig-r11 -> transmissionType-r11 = distributed
interval-ULHoppingConfigCommonModeA -> interval-FDD-r13 = 1
pucch-NumRepetitionCE-MSG4-Level0-r13 = 1
sr-PUCCH-ResourceIndex = 18
sr-ConfigIndex 76

MAC layer (DCI format 6-1A)
HARQ-ACK resource offset = 0

Answers will be posted later on.

Friday, October 7, 2016

IoT: LTE-BL/CE(CAT-M1) Random Access

In terms of PRACH sequence selection and transmission, there is no difference except the preambleIndex that should be used. firstPreamble and lastPreamble in LevelInfo under CELevelList tells UE which preambles to use.

After CAT-M1 UE sent PRACH, instead of monitoring PDCCH and PDSCH in the same subframe. CAT-M1 UE has to monitor narrowband index configured in SIB2-BR for MPDCCH first and after decoded MPDCCH in subframe n, it should monitor subframe (n+2) for random access response, whose MAC header is RAR format.

The RA-RNTI that is used to scramble MPDCCH for RAR is calculated using following formula from 36.321 5.1.4

In a FDD cell, because there is only 1 PRACH resource in a subframe, f_id is always 0 (36.211 5.7.1). If PRACH-r13 config in SIB2-BR indicated that UE can transmit PRACH in subframe=1,  t_id=1.  W_max is fixed 400 for CAT-M1 UEs. If SFN_id is 783, the calculated RA-RNTI is 1+1+0+60*(783 mod 40) = 1382.

DCI format 6-1A is used to transmit MPDCCH and UE should monitor aggregation level up to 8 in common search space. The exact bit mapping can be found in 36.212 5.3.3.1.12
I.E. MPDCCH in HEX is 11588200(29bits), translated in bits is
10001010110001000001000000000
Since it is NOT PDCCH ordered UL re-sync, the interpretation of each field is following:
1 -> value 1 indicates it is DCI format 6-1A
0 -> value 0 indicates frequency hopping is not enabled
For DCI format 6-1A,  is equal to 3 bits, thus, 001 provides the narrowband index, which in INT is 1
01011 -> 5 bits for DL resource allocation type 2 with in indicated narrowband. INT value is 11
Based on 36.213 7.1.6.3 and RIV=11, RBstart and  L_CRBs can be calculated using following equations.
 
RBstart=0 and L_CRBs=6.
0001 -> 4 bits for MCS. INT value is 1
00 -> 2 bits for repetition number. INT value is 0
000 -> 3 bits to indicate HARQ process number for FDD primary cell (for TDD primary cell, 4 bits). INT value is 0
1 -> 1 bit for NDI. First occurrence of 1 means new data.
00 -> 2 bits for redundancy version. INT value is 0 means RV0
00 -> 2 bits for TPC command for PUCCH. Since this MPDCCH is scrambled with RA-RNTI, the MSB is reserved, the LSB is 0 indicates N_(1A/PRB) is 2.
With MCS=1 and N_(1A/PRB)=2, based on Table 7.1.7.2.1-1, TBS of RAR is 56 bits.
From 36.212 Table 5.3.3.1.2-2, DAI has 0 bit
0 -> indicates SRS request. 0 means false
TPMI information is not present
PMI information is not present
00 -> HARQ-ACK resource offset as defined in 36.213 10.1, this value is used later on to calculate parameter N_((1)/PUCCH) which is used to calculate which PRB PUCCH will be transmitted (36.213 10.1.2).
00 -> DCI subframe repetition number as defined in 36.213 9.1.5

After decoded MPDCCH for RAR, UE knows the TBS and the resource allocation for RAR, UE will monitor subframe (n+2) in corresponding narrowband indicated by SIB2 for RAR.
I.E. According to MPDCCH example showed above, the entire RAR length is 56 bits. If HEX value is 73001F02605F8F, the interpretation of each field is as follows:
First 8 bits is MAC header. 73 translated to bits is 01110011
0 -> Extension field is 0 indicates that MAC RAR or padding starts next byte. 0 means at least another set of E/T/RAPID fields follows.
1 -> Type filed indicates whether the MAC subheader contains a Random Access ID or a Backoff Indicator. 0 means Backoff Indicator presented and 1 means Random AccessID presented.
110011 -> Since T=1, 6 bits is used to calculate RAPID. If T=2, 4 bits are used to calculate BI. INT value is 51, which means this RAR is for preambleId=51 (reserved for CAT-M1 in sample config)

Next 48 bits is RAR, first 12 bits is 001 in HEX.
0 -> Reserved bit, set to 0
00000000001 -> 11 bits is Timing Advance Command. It is used to control the amount of timing adjustment that the MAC entity has to apply (36.213 4.2.3). INT value is 1 means 16Ts

For CAT-M1 UE, following 20 bits is UL grant. F0260 in HEX. From 36.213 6.2, interpretation of each field is as follows:
NNB=floor(NUL/RB/6)=8, Nindex/NB=ceiling(log2(NNB))=3
111 -> Msg3 PUSCH narrowband index. INT value is 7 means last narrowband indexed from lowest frequency to highest frequency
1000 -> Msg3 PUSCH resource allocation. For CEmodeA, insert one MSB with value set to 0 and interpret using UL resource allocation type 0 within indicated narrowband according to 36.213 8.1.1

RBstart=2 and L_CRBs=2
00 -> number of repetition for Msg3. From 36.213 Table 6.2-C, 00 means Ya/8. Ya is broadcasted in SIB2-BR value push-maxNumRepetitionCEmodeA-r13=8 in our example. 00 translated to 1.
010 -> MCS for Msg3. INT value is 2.
011 -> TPC. INT value is 3 for PUSCH transmission power control
0 -> CSI request. 0 means not requesting any CSI report.
0 ->  UL dealy.
00 -> Msg3/4 MPDCCH narrowband index. 36.213 Table 6.2-B. 00 means (NBRAR mod NNB2), where NBRAR is signaled in SIB2-BR of parameter mpdcch-NarrowbandsToMonitor-r13 if only 1 narrowband is configured. In our example, it is 2. NNB2=floor((NDL/RB)/6)=8. 2 mod 8 = 2 which means Msg3 and Msg4 should be transmitted in narrowband index 2.

Last 16 bits are for Temporary C-RNTI. 5F8F in HEX and 24463 in DEC

IoT: LTE-BL/CE(CAT-M1) SIB2

After UE has decoded SIB2-BR, UE is able to get RACH configuration to start RACH.
rach-CE-LevelInfoList-r13 contains different levels of coverage enhancement. If it only has one sub structure, it means there is only 1 CE level.
RACH-CE-LevelInfo-r13 is the sub-structure of above List. firstPreamble-r13 and lastPreamble-r13 defines the preamble range that UE can select for CAT-M1 rach. ra-ResponseWindowSize-r13 allows UE to start monitor MPDCCH for RAR. mac-ContentionResolutionTimer-r13 configures UE to start monitor contention resolution after transmitted Msg3.
I.E. firstPreamble-r13=48 and lastPreamble-r13=51 means UE can only use preambleId ranges from 48 to 51 for CAT-M1 rach. ra-ResponseWindowSize-r13=ms20 means UE will start monitoring MPDCCH for RAR within (20+4) TTIs after sent PRACH.

PRACH-Parameters-CE-r13 is sub-structure of PRACH-ParametersListCE-r13. it has prach-ConfigIndex, prach-FreqOffset, which have the same meaning as legacy.
I.E. If prach-ConfigIndex =3 and prach-FreqOffset=3, UE can transmit PRACH in subframe1 in every radio frame and 3PRBs from the lowest frequency boundary.

mpdcch-NarrowbandsToMonotor-r13 is used to calculate which narrowband for UE to monitor in RAR. the calculated result tells UE which narrowband to monitor for MPDCCH that carries the scheduling information of RAR. This could be updated when eNB sent Msg4 to UE. mpdcch-NumRepetition-RA-r13 tells UE how many times of MPDCCH will be transmitted.

frequencyHoppingParameters-r13_interval-ULHoppingConfigCommonModeA-r13_interval-FDD-r13 will be used later on to calculate PUCCH resource to send ACK/NACK for Msg4.

deltaPUCCH-shift is used to calculate Delta(ARO) value in 36.213 Table 10.1.2.1-1, which is then used to calculate N_((1,p0)/PUCCH).

More updates regarding the fields in SIB2-BR are coming later.

IoT: LTE-BL/CE(CAT-M1) MIB/SIB1

Compared with legacy MIB, CAT-M1 MIB has one more I.E. on RRC layer named schedulingInfoSIB1-BR-r13. Total length of MIB is 24 bits and legacy MIB has 10 spare bits which 5 most significant bits were used to indicate schedulingInfoSIB1-BR-r13. The value of schedulingInfoSIB1-BR-r13 is used to get the repetition level and TBS for SIB1-BR from 36.213 Table 7.1.6-1 and Table 7.1.7.2.7-1


For SIB1-BR decoding, based on 36.211 6.4.1, if the PDSCH carries SIB1-BR, the PDSCH transmission is repeated periodically in every period of 8 radio frames, where a period starts with a radio frame n_f mod8 = 0 where n_f is the system frame number.
I.E. One period started with sfn=80.
The PDSCH is transmitted N_(SIB1-BR/PDSCH) times in each period of 8 frames.
I.E. Looking at above table, if schedulingInfoSIB1-BR-r13 is 16, the N_(SIB1-BR/PDSCH) is 4. So SIB1-BR will be transmitted 4 times in each period of 8 frames started with sfn mod 8 = 0.



In above equation, let {Sj} be the set of narrowbands, excluding narrowbands oeverlapping with the 72 center subcarriers for N_(DL/RB) > 15, and ordered in increasing order of narrowband index.
I.E. If we have 10MHz DL bandwidth, the N_(DL/RB) is 50 > 15. There is in total 8 narrowbands but two of the central narrowbands are overlapping with center 72 carriers. Excluded these two narrowbands, set {Sj} size is 6 and S0 = n_NB0, S1 = n_NB1, S2=n_NB2, S3=n_NB5, S4=n_NB6, S5=n_NB7.

The PDSCH transmission cycle through the set {Sj} of narrowbands in increasing order of i, starting with i=0 for the first subframe, according to n_NB=Sj, N_(S/NB) is total number of narrowbands in set {Sj}

36.213 7.1.6.4A. The starting OFDM symbol for PDSCH is given by index l_DataStart in the first slot in a subframe. For SIB1-BR, l_DataStart = 3 if N_(DL/RB) > 10 or l_DataStart = 4 if N_(DL/RB) <= 10.

36.321 5.3.1 The RV value for each SIB1-BR transmission is determined by following steps,
 

I.E. 10MHz DL, m = 2. Take CellId=0, starting with i=0, then j = (0 mod 6 + 0*floor(6/2)) mod 6, j = 0 mod 6 = 0; So the first SIB1-BR transmission is S0 narrowband in set {Sj}; i = 1, then j = (0 mod 6 + 1*floor(6/2)) mod 6 = 3, so the second SIB1-BR transmission is the S3 narrowband in set {Sj}, which is narrowband index 5. The third SIB1-BR will be transmitted the same as the first one and the fourth SIB1-BR will be transmitted the same as second SIB1-BR.

Refer to Table 6.4.1-1 and Table 6.4.1-2, if DL bandwidth is greater than 10MHz for FDD. If CellId is even number and repetition level is 4, the starting sfn that transmitted SIB1-BR is sfn mod 8 = 0, I.E. sfn=80; if CellId is odd number and repetition level is 4, the starting sfn that transmitted SIB1-BR is sfn mod 8 = 1. I.E sfn=81
In order to decode SIB2-BR, UE has to interpret content of SIB1-BR correctly. si-Periodicity in SIB1-BR defines the period where SI (which SIB2-BR will be mapped to) period is; si-WindowLength-BR-r13 defines the si-window that SIB2-BR mapped in; si-RepetitionPattern-r13 gives the repetition frequency; subframePattern bitmap defines which subframes are value for DL, which are valid for UL. startSymbolLC or startSymbolBR defines the timing domain starting position of PDSCH. si-Narrowband-r13 indicates the narrowband index to be monitored. si-TBS-r13 indicates the TBS of SI (primarily SIB2-BR currently)
I.E. si-Periodicity=rf8, si-WindowLength-BR-r13=ms20, si-RepetitionPattern-r13=every2ndRadioFrame, subframePattern40-r13 is all 1, startSymbolBR=3, si-Narrowband-r13=8, si-TBS-r13=408 means that SIB2-BR is transmitted in the period of sfn mod 8 = 0 for the first 20ms and in the first radio frame for every subframe started at symbol index 3 in narrowband index 8 of TBS=408 bits with all subframes. These SIB2-BRs will be transmitted with different RVs based on the calculation steps showed above.