Merge branch 'integration_2024_w38' into 'develop'
Integration: `2024.w38` See merge request oai/openairinterface5g!2970 * !2932 Minor: Set correct USRP flags when not transmitting * !2961 prevent UE to declare RLF in phy-test mode * !2962 prevent UE to print HARQ processing error log for MSG2 * !2958 Automatic selection of SSB bitmap length * !2967 bugfix: reject malformed rrcSetupComplete message * !2947 Add 5G/NR MAC documentation * !2959 nr rlc: fix standalone tests
This commit is contained in:
@@ -116,9 +116,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -119,9 +119,7 @@ gNBs =
|
|||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -70;
|
p0_nominal = -70;
|
||||||
n_TimingAdvanceOffset = 0;
|
n_TimingAdvanceOffset = 0;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -116,9 +116,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -117,9 +117,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -143,9 +143,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -117,9 +117,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -117,9 +117,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -111,9 +111,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -116,9 +116,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -116,9 +116,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 3;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -113,9 +113,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -120,9 +120,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -70;
|
p0_nominal = -70;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -123,9 +123,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 0;
|
hoppingId = 0;
|
||||||
p0_nominal = -96;
|
p0_nominal = -96;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 0x1;
|
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -127,10 +127,6 @@ gNBs = (
|
|||||||
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
# 0=kHz15, 1=kHz30, 2=kHz60, 3=kHz120
|
||||||
subcarrierSpacing = 1;
|
subcarrierSpacing = 1;
|
||||||
|
|
||||||
|
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
|
|||||||
@@ -111,9 +111,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -124,9 +124,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -70;
|
p0_nominal = -70;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -118,9 +118,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -120,9 +120,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -117,9 +117,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -110,9 +110,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -130,9 +130,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -131,9 +131,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -112,9 +112,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -126,9 +126,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 0;
|
hoppingId = 0;
|
||||||
p0_nominal = -96;
|
p0_nominal = -96;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 0x1;
|
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -70;
|
p0_nominal = -70;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -119,9 +119,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -96;
|
p0_nominal = -96;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -110,9 +110,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -118,9 +118,7 @@ gNBs =
|
|||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
#p0_nominal = -90;
|
#p0_nominal = -90;
|
||||||
p0_nominal = -118;
|
p0_nominal = -118;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -116,9 +116,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -130,10 +130,8 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
# 0 = ms5, 1=ms10, 2=ms20, 3=ms40, 4=ms80, 5=ms160, 6=spare2, 7=spare1
|
||||||
|
|||||||
@@ -127,9 +127,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -135,9 +135,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -110,9 +110,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -113,9 +113,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -112,9 +112,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -111,9 +111,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -0,0 +1,234 @@
|
|||||||
|
This document describes the basic functioning of the 5G MAC scheduler,
|
||||||
|
describes the periodic output, and explains
|
||||||
|
out the various configuration options that influence its behavior.
|
||||||
|
|
||||||
|
[[_TOC_]]
|
||||||
|
|
||||||
|
# General
|
||||||
|
|
||||||
|
The 5G MAC scheduler is a proportional fair (PF) scheduler, "approximating
|
||||||
|
wide-band CQI" (for lack of a better term, but CQI is typically used for PF)
|
||||||
|
through the selection of an MCS to use.
|
||||||
|
|
||||||
|
Concretely, the scheduler loops through all UEs and calculates the PF
|
||||||
|
coefficient using the currently selected MCS, and the historical achieved rate.
|
||||||
|
The UE with highest coefficient wins and is scheduled RBs until all resources
|
||||||
|
are used, or until it has no more data to fill RBs, in which the scheduler
|
||||||
|
continues with the UE with the second-best coefficient.
|
||||||
|
|
||||||
|
UEs with retransmissions are allocated first; similarly, UEs that have not been
|
||||||
|
scheduled for some time in UL are scheduled automatically in UL and have
|
||||||
|
therefore priority over data with "normal" traffic.
|
||||||
|
|
||||||
|
The MCS selection is done in `get_mcs_from_bler()` in file
|
||||||
|
[`gNB_scheduler_primitives.c`](../../openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c).
|
||||||
|
It consider two thresholds for a "BLER" that is computed from the number of
|
||||||
|
first-round retransmissions over total transmissions in the last window (50ms).
|
||||||
|
If that ratio is higher than an "upper" threshold (see
|
||||||
|
`dl/ul_bler_target_upper` in the configuration section below), it is
|
||||||
|
interpreted as "bad channel" and MCS is decremented by 1. If the ratio is
|
||||||
|
lower than a "lower" threshold (see `dl/ul_bler_target_lower`), it is
|
||||||
|
interpreted as "good channel" and MCS is incremented by 1. This happens each
|
||||||
|
window.
|
||||||
|
|
||||||
|
The actual scheduler implementation can be found in functions `pf_dl()` and
|
||||||
|
`pf_ul()` in files
|
||||||
|
[`gNB_scheduler_dlsch.c`](../../openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c)
|
||||||
|
(for DL) and
|
||||||
|
[`gNB_scheduler_ulsch.c`](../../openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c)
|
||||||
|
(for UL), respectively.
|
||||||
|
|
||||||
|
# Periodic output and interpretation
|
||||||
|
|
||||||
|
The scheduler periodically outputs statistics that can help you judge the radio
|
||||||
|
channel quality, i.e., why a UE does not perform as you would expect. The
|
||||||
|
scheduler outputs this info in log level "INFO". The same information is also
|
||||||
|
available in the the file `nrMAC-stats.log` in the same directory in which
|
||||||
|
`nr-softmodem` is run.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
```
|
||||||
|
UE RNTI 2460 CU-UE-ID 2 in-sync PH 28 dB PCMAX 24 dBm, average RSRP -74 (8 meas)
|
||||||
|
UE 2460: CQI 15, RI 2, PMI (14,1)
|
||||||
|
UE 2460: UL-RI 2 TPMI 0
|
||||||
|
UE 2460: dlsch_rounds 32917/5113/1504/560, dlsch_errors 211, pucch0_DTX 1385, BLER 0.19557 MCS (1) 23
|
||||||
|
UE 2460: ulsch_rounds 3756/353/182/179, ulsch_errors 170, ulsch_DTX 285, BLER 0.33021 MCS (1) 27 (Qm 8 dB) NPRB 5 SNR 31.0 dB
|
||||||
|
UE 2460: MAC: TX 1530943191 RX 194148 bytes
|
||||||
|
UE 2460: LCID 1: TX 651 RX 3031 bytes
|
||||||
|
UE 2460: LCID 2: TX 0 RX 0 bytes
|
||||||
|
UE 2460: LCID 4: TX 1526169592 RX 16152 bytes
|
||||||
|
```
|
||||||
|
|
||||||
|
In the first line,
|
||||||
|
* `UE RNTI` (here `2460`): this is also used as the DU UE ID over F1; each line
|
||||||
|
is prepended with the RNTI
|
||||||
|
* `CU UE ID` (`2`): separate identifier from the RNTI to handle multiple
|
||||||
|
UEs across DUs (in which case RNTI conflicts are possible)
|
||||||
|
* whether a UE is `in-sync` (actively being scheduled) or `out-of-sync` (the UE
|
||||||
|
is not being scheduled, because it did not respond when being scheduled in UL
|
||||||
|
or since it has radio-link failure
|
||||||
|
* `PH` (`28`): Power Headroom, the amount of power the UE has left. If it is > 40 you
|
||||||
|
can achieve full UL throughput. `PCMAX` (`24 dBm`) is what the UE reported as
|
||||||
|
maximum UL transmit power it can output in the channel.
|
||||||
|
* `RSRP` (`-74`): measured power of the DL reference signals at the UE. >-80dBm
|
||||||
|
you should have full DL throughput. <-95 dBm, you are very limited in terms
|
||||||
|
of connectivity.
|
||||||
|
|
||||||
|
The second and third line reflect channel state information (CSI) as
|
||||||
|
reported by the UE, and only appear if CSI-RS/SRS are enabled and _received_
|
||||||
|
(for some bands, they cannot be enabled):
|
||||||
|
* `CQI` (`15`): the channel quality indicator is a number between 0 and 15. It
|
||||||
|
indicates the achievable spectral efficiency of the UE. 15 means highest, 0
|
||||||
|
is lowest. This corresponds to a 4-bit table in 38.214 with actual spectral
|
||||||
|
efficiencies in bits/s/Hz
|
||||||
|
* `RI`: Rank indicator 1-4. If 1 it means limited to 1 layer transmission on DL. 2 two layers, etc.
|
||||||
|
* `PMI`: precoding matrix indicator. It's a measure of the spatial-direction of
|
||||||
|
the gNBs transmit array as seen by the UE. It indicates the precoding that
|
||||||
|
the gNB applies. It should be more or less stationary unless the UE is moving
|
||||||
|
around quickly. It can jump when objects move around the UE
|
||||||
|
* `UL-RI`, `TPMI`: same as DL.
|
||||||
|
|
||||||
|
The fourth and fifth line show HARQ-related information:
|
||||||
|
* `dlsch_rounds A/B/C/D` (`32917/5113/1504/560`). This is the number of
|
||||||
|
transmissions by the gNB for each round of the HARQ protocol. `A` is the first
|
||||||
|
round, B is the second, etc. If `A` is high and `B` is low, `C` is lower and `D` is
|
||||||
|
around 0, then things work well. If `B` is around the same as `A`, then the first
|
||||||
|
round is almost always in error. This is not usually good unless the UE is
|
||||||
|
far from the gNB.
|
||||||
|
* `dlsch_errors` (`211`) is the number of errors, meaning that after 4
|
||||||
|
transmissions the MAC transport block was not received by the UE. A high
|
||||||
|
number is not good/it should be a very low number, again unless there are
|
||||||
|
severe radio conditions.
|
||||||
|
* `pucch0_DTX`: this is the number of PUCCH format 0 (or 1 later) missed
|
||||||
|
detections (unreceived ack/nak). This means that either the UL is very bad
|
||||||
|
and ACK/NAK cannot be conveyed properly or DL DCIs are missed by the UE. This
|
||||||
|
is also something that should be very small compared to `A` in
|
||||||
|
`dlsch_rounds`.
|
||||||
|
* `DLSCH BLER` is the current measured block-error rate of the DLSCH. Basically
|
||||||
|
a moving average of `B`/`A` in `dlsch_rounds`. This is something that should always
|
||||||
|
be close to the target bler that the MAC scheduler uses. typically 10-30% if
|
||||||
|
we want a high throughput scheduling policy.
|
||||||
|
* `MCS (Q) M`: M (0-28) is the current MCS used by the MAC scheduler and Q is
|
||||||
|
the mcs table: 0=64QAM, 1=256QAM, 2=low SE table for URLLC
|
||||||
|
* `ulsch_rounds`/`ulsch_errors`: same as DLSCH but for UL.
|
||||||
|
* `ulsch_DTX` (`285`): number of PUSCH missed detection (i.e. signal energy below
|
||||||
|
threshold in configuration file, `L1s.pusch_dtx_threshold`, which is 10 times the
|
||||||
|
actual unnormalized digital signal level). This is an indication of either
|
||||||
|
very poor radio conditions (UE cannot reach the gNB), power control problems,
|
||||||
|
or missed DCI 0\_x DCIs. It should be low compared to `A` in `ulsch_rounds`
|
||||||
|
when things are working properly.
|
||||||
|
* ULSCH `BLER/MCS`: same as DLSCH but for UL.
|
||||||
|
* ULSCH `Qm X deltaMCS Y dB`: modulation order: 2=QPSK, 4=16QAM, 6=64QAM,
|
||||||
|
8=256QAM and the dB offset for deltaMCS component in PUSCH power control law.
|
||||||
|
If deltaMCS is disabled (this is the default) then it indicates 0. When
|
||||||
|
deltaMCS is enabled it indicates the current power offset applied by the UE
|
||||||
|
on the UL corresponding to the scheduled MCS
|
||||||
|
* ULSCH `NPRB`: current number of PRBs scheduled by the gNB. This will
|
||||||
|
fluctuate a lot but when doing high throughput with iperf, it indicates the
|
||||||
|
number of PRBs that the UE is actually able to use with its power budget and
|
||||||
|
should be high.
|
||||||
|
* ULSCH `SNR`: the current SNR that the gNB receives the UE signal with. It
|
||||||
|
should be close to the target in the gNB configuration file,
|
||||||
|
`pusch_TargetSNRx10`, which should be around 10 times the value shown in the
|
||||||
|
log
|
||||||
|
|
||||||
|
In the last lines:
|
||||||
|
* `MAC` shows the amount of MAC PDU bytes scheduled in transmit (`TX`,
|
||||||
|
`1530943191`) and receive (`RX`, `194148`) directions
|
||||||
|
* `LCID X` shows the amount of MAC SDU/RLC PDU data for Logical Channel ID with
|
||||||
|
ID `X` in transmit and receive directions. LCIDs 1 and 2 are mapped to SRBs 1
|
||||||
|
and 2. LCIDs 4 and onward are mapped to DRBs 1 onward. If you have an LCID 4,
|
||||||
|
it means you have a PDU session.
|
||||||
|
|
||||||
|
# Configuration of the MAC
|
||||||
|
|
||||||
|
## Split-related options
|
||||||
|
|
||||||
|
See [nFAPI documentation](../L2NFAPI.md) or [Aerial
|
||||||
|
tutorial](../Aerial_FAPI_Split_Tutorial.md).
|
||||||
|
|
||||||
|
## MAC scheduler-related configuration options
|
||||||
|
|
||||||
|
The following options have an influence on the MAC scheduler operation (for all
|
||||||
|
UEs, if applicable), either on the MAC scheduler operation directly or how a UE
|
||||||
|
is configured.
|
||||||
|
|
||||||
|
In the `MACRLCs` section of the gNB/DU configuration file:
|
||||||
|
|
||||||
|
* `ulsch_max_frame_inactivity` (default 10): number of frames before a UE is
|
||||||
|
scheduled automatically in UL. Lowering can improve latency at the expense of
|
||||||
|
more resources in idle (which limits the number of UEs, and increases UE
|
||||||
|
power consumption)
|
||||||
|
* `pusch_TargetSNRx10` (default 200): target SNR in PUSCH times 10 (200
|
||||||
|
corresponds to 20dB target SNR)
|
||||||
|
* `pucch_TargetSNRx10` (default 150): target SNR in PUCCH times 10 (as above)
|
||||||
|
* `ul_prbblack_SNR_threshold` (default 10): target SNR for disabling RB
|
||||||
|
scheduling in uplink on affected RBs.
|
||||||
|
* `pucch_FailureThres` (default 10): number of DTX on PUCCH after which
|
||||||
|
scheduler declares UE in radio link failure and moves it to "out-of-sync
|
||||||
|
state". **Currently not used**.
|
||||||
|
* `pusch_FailureThres` (default 10): number of DTX on PUSCH after which
|
||||||
|
scheduler declares UE in radio link failure and moves it to "out-of-sync
|
||||||
|
state"
|
||||||
|
* `dl_bler_target_upper` (default 0.15): upper threshold of BLER (first round
|
||||||
|
retransmission over initial transmission) to decrease MCS by 1
|
||||||
|
* `dl_bler_target_lower` (default 0.05): lower threshold of BLER (first round
|
||||||
|
retransmission over initial transmission) to increase MCS by 1
|
||||||
|
* `dl_max_mcs` (default 28): maximum MCS to use
|
||||||
|
* `ul_bler_target_upper` (default 0.15): as `dl_bler_target_upper`
|
||||||
|
* `ul_bler_target_lower` (default 0.05): as `dl_bler_target_lower`
|
||||||
|
* `ul_max_mcs` (default 28): as `dl_max_mcs`
|
||||||
|
* `dl_harq_round_max` (default 4): maximum number of HARQ rounds, i.e.,
|
||||||
|
retransmissions to perform, in DL
|
||||||
|
* `ul_harq_round_max` (default 4): as `dl_harq_round_max`
|
||||||
|
* `min_grant_prb` (default 5): number of PRBs to schedule for UE after activity
|
||||||
|
(see `ulsch_max_frame_inactivity`) or after scheduling request (SR)
|
||||||
|
* `min_grant_mcs` (default 9): MCS to use for UE after activity (see
|
||||||
|
`ulsch_max_frame_inactivity`) or after scheduling request (SR)
|
||||||
|
* `identity_precoding_matrix` (default 0=false): flag to enable to use only
|
||||||
|
the identity precoding matrix in DL precoding
|
||||||
|
* `set_analog_beamforming` (default 0=false): flag to enable analog
|
||||||
|
beamforming
|
||||||
|
* `beam_duration`: duration/number of consecutive slots for a given set of
|
||||||
|
beams, depending on hardware switching performance
|
||||||
|
* `beams_per_period`: set of beams that can be simultaneously allocated in a
|
||||||
|
period (`beam_duration`)
|
||||||
|
|
||||||
|
In the `gNBs` section of the gNB/DU configuration file: some of the parameters
|
||||||
|
affect RRC configuration (CellGroupConfig) of a UE, and are therefore listed
|
||||||
|
here, *also they pertain to the DU*, i.e., the scheduler.
|
||||||
|
|
||||||
|
* `pdsch_AntennaPorts_XP` (default 1): number of XP logical antenna
|
||||||
|
ports in PDSCH (see also [`RUNMODEM.md`](../RUNMODEM.md))
|
||||||
|
* `pdsch_AntennaPorts_N1` (default 1): number of horizontal logical antenna
|
||||||
|
ports in PDSCH (see also [`RUNMODEM.md`](../RUNMODEM.md))
|
||||||
|
* `pdsch_AntennaPorts_N2` (default 1): number of vertical logical antenna
|
||||||
|
ports in PDSCH (see also [`RUNMODEM.md`](../RUNMODEM.md))
|
||||||
|
* `pusch_AntennaPorts` (default 1): number of antenna ports in PUSCH
|
||||||
|
* `maxMIMO_layers` (default -1=unlimited): maximum number of MIMO layers to use
|
||||||
|
in downlink
|
||||||
|
* `sib1_tda` (default 1): time domain allocation (TDA) indices to use for SIB1
|
||||||
|
(38.214 section 5.1.2.1.1)
|
||||||
|
* `do_CSIRS` (default 0): flag whether to use channel-state information
|
||||||
|
reference signal (CSI-RS)
|
||||||
|
* `do_SRS` (default 0): flag whether to use sounding reference signal (SRS)
|
||||||
|
* `min_rxtxtime` (default 2): minimum feedback time for UE to respond to
|
||||||
|
transmissions (k1 and k2 in 3GPP spec)
|
||||||
|
* `ul_prbblacklist`: PRBs that should not be used for UL scheduling. Cf with
|
||||||
|
parameter `ul_prbblack_SNR_threshold` that does a similar thing based on
|
||||||
|
measurements
|
||||||
|
* `force_256qam_off` (default 0=false): flag whether to disable 256QAM (limit to
|
||||||
|
64QAM) in DL
|
||||||
|
* `force_UL256qam_off` (default 0=false): flag whether to disable 256QAM (limit to
|
||||||
|
64QAM) in DL
|
||||||
|
* `disable_harq` (default 0=false): flag whether to disable HARQ completely
|
||||||
|
(useful for NTN operation, see <../RUNMODEM.md>). **this is a Rel-17 feature
|
||||||
|
and you need to have a capable UE for this**
|
||||||
|
* `use_deltaMCS` (default 0=false): flag whether to enable deltaMCS (**this is not fully tested
|
||||||
|
and might not work** and you might need to adjust other parameters such as
|
||||||
|
target SNRs)
|
||||||
|
* `num_dlharq` (default 16): number of HARQ processes to use in DL (other valid
|
||||||
|
options are 2, 4, 6, 8, 10, 12, 32; **32 is a Rel-17 features**)
|
||||||
|
* `num_ulharq` (default 16): as `num_dlharq` for UL (other valid option is 32;
|
||||||
|
**32 is i Rel-17 feature**)
|
||||||
@@ -69,6 +69,7 @@ Legacy unmaintained files:
|
|||||||
- [Information on how NR nFAPI works](./NR_NFAPI_archi.md)
|
- [Information on how NR nFAPI works](./NR_NFAPI_archi.md)
|
||||||
- [Flow graph of the L1 in gNB](SW-archi-graph.md)
|
- [Flow graph of the L1 in gNB](SW-archi-graph.md)
|
||||||
- [L1 threads in NR-UE](./nr-ue-design.md)
|
- [L1 threads in NR-UE](./nr-ue-design.md)
|
||||||
|
- [Information on gNB MAC](./MAC/mac-usage.md)
|
||||||
|
|
||||||
Legacy unmaintained files:
|
Legacy unmaintained files:
|
||||||
- [`5Gnas.md`](./5Gnas.md)
|
- [`5Gnas.md`](./5Gnas.md)
|
||||||
|
|||||||
@@ -110,7 +110,8 @@ people, in order to simplify the history, and allow the usage of tools such as
|
|||||||
`git bisect` to search for bugs.
|
`git bisect` to search for bugs.
|
||||||
|
|
||||||
After some time, we make a stable release. For this, we simply merge develop
|
After some time, we make a stable release. For this, we simply merge develop
|
||||||
into master, and give a semantic versioning number, e.g., `v1.1`.
|
into master, and give a semantic versioning number, e.g., `v1.1`. We target to
|
||||||
|
make releases bi-yearly.
|
||||||
|
|
||||||
## How to manage your own branch
|
## How to manage your own branch
|
||||||
|
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
+4
-4
@@ -445,10 +445,12 @@ static void RU_write(nr_rxtx_thread_data_t *rxtxD, bool sl_tx_action)
|
|||||||
|
|
||||||
radio_tx_burst_flag_t flags = TX_BURST_INVALID;
|
radio_tx_burst_flag_t flags = TX_BURST_INVALID;
|
||||||
|
|
||||||
if (UE->received_config_request && openair0_cfg[0].duplex_mode == duplex_mode_TDD && !get_softmodem_params()->continuous_tx) {
|
if (UE->received_config_request) {
|
||||||
|
if (openair0_cfg[0].duplex_mode == duplex_mode_FDD || get_softmodem_params()->continuous_tx) {
|
||||||
|
flags = TX_BURST_MIDDLE;
|
||||||
// In case of Sidelink, USRP write needed only in case transmission
|
// In case of Sidelink, USRP write needed only in case transmission
|
||||||
// needs to be done in this slot and not based on tdd ULDL configuration.
|
// needs to be done in this slot and not based on tdd ULDL configuration.
|
||||||
if (UE->sl_mode == 2) {
|
} else if (UE->sl_mode == 2) {
|
||||||
if (sl_tx_action)
|
if (sl_tx_action)
|
||||||
flags = TX_BURST_START_AND_END;
|
flags = TX_BURST_START_AND_END;
|
||||||
} else {
|
} else {
|
||||||
@@ -465,8 +467,6 @@ static void RU_write(nr_rxtx_thread_data_t *rxtxD, bool sl_tx_action)
|
|||||||
flags = TX_BURST_MIDDLE;
|
flags = TX_BURST_MIDDLE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
flags = TX_BURST_MIDDLE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int tmp = openair0_write_reorder(&UE->rfdevice, proc->timestamp_tx, txp, rxtxD->writeBlockSize, fp->nb_antennas_tx, flags);
|
int tmp = openair0_write_reorder(&UE->rfdevice, proc->timestamp_tx, txp, rxtxD->writeBlockSize, fp->nb_antennas_tx, flags);
|
||||||
|
|||||||
@@ -92,7 +92,6 @@
|
|||||||
#define GNB_CONFIG_STRING_PUCCHRES "pucch_ResourceCommon"
|
#define GNB_CONFIG_STRING_PUCCHRES "pucch_ResourceCommon"
|
||||||
|
|
||||||
|
|
||||||
#define GNB_CONFIG_STRING_SSBPOSITIONSINBURSTPR "ssb_PositionsInBurst_PR"
|
|
||||||
#define GNB_CONFIG_STRING_SSBPOSITIONSINBURST "ssb_PositionsInBurst_Bitmap"
|
#define GNB_CONFIG_STRING_SSBPOSITIONSINBURST "ssb_PositionsInBurst_Bitmap"
|
||||||
#define GNB_CONFIG_STRING_SSBPERIODICITYSERVINGCELL "ssb_periodicityServingCell"
|
#define GNB_CONFIG_STRING_SSBPERIODICITYSERVINGCELL "ssb_periodicityServingCell"
|
||||||
#define GNB_CONFIG_STRING_DMRSTYPEAPOSITION "dmrs_TypeA_Position"
|
#define GNB_CONFIG_STRING_DMRSTYPEAPOSITION "dmrs_TypeA_Position"
|
||||||
@@ -219,7 +218,6 @@
|
|||||||
{GNB_CONFIG_STRING_HOPPINGID, NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->hoppingId,.defint64val=40,TYPE_INT64,0},\
|
{GNB_CONFIG_STRING_HOPPINGID, NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->hoppingId,.defint64val=40,TYPE_INT64,0},\
|
||||||
{GNB_CONFIG_STRING_P0NOMINAL, NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->p0_nominal,.defint64val=1,TYPE_INT64,0},\
|
{GNB_CONFIG_STRING_P0NOMINAL, NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->p0_nominal,.defint64val=1,TYPE_INT64,0},\
|
||||||
{GNB_CONFIG_STRING_PUCCHRES, NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->pucch_ResourceCommon,.defint64val=0,TYPE_INT64,0},\
|
{GNB_CONFIG_STRING_PUCCHRES, NULL,0,.i64ptr=scc->uplinkConfigCommon->initialUplinkBWP->pucch_ConfigCommon->choice.setup->pucch_ResourceCommon,.defint64val=0,TYPE_INT64,0},\
|
||||||
{GNB_CONFIG_STRING_SSBPOSITIONSINBURSTPR,NULL,0,.uptr=&scc->ssb_PositionsInBurst->present,.defuintval=NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap,TYPE_UINT,0/*140*/}, \
|
|
||||||
{GNB_CONFIG_STRING_SSBPOSITIONSINBURST,NULL,0,.u64ptr=&ssb_bitmap,.defintval=0xff,TYPE_UINT64,0}, \
|
{GNB_CONFIG_STRING_SSBPOSITIONSINBURST,NULL,0,.u64ptr=&ssb_bitmap,.defintval=0xff,TYPE_UINT64,0}, \
|
||||||
{GNB_CONFIG_STRING_REFERENCESUBCARRIERSPACING,NULL,0,.i64ptr=&scc->tdd_UL_DL_ConfigurationCommon->referenceSubcarrierSpacing,.defint64val=NR_SubcarrierSpacing_kHz30,TYPE_INT64,0},\
|
{GNB_CONFIG_STRING_REFERENCESUBCARRIERSPACING,NULL,0,.i64ptr=&scc->tdd_UL_DL_ConfigurationCommon->referenceSubcarrierSpacing,.defint64val=NR_SubcarrierSpacing_kHz30,TYPE_INT64,0},\
|
||||||
{GNB_CONFIG_STRING_DLULTRANSMISSIONPERIODICITY,NULL,0,.i64ptr=&scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity,.defint64val=NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p5,TYPE_INT64,0},\
|
{GNB_CONFIG_STRING_DLULTRANSMISSIONPERIODICITY,NULL,0,.i64ptr=&scc->tdd_UL_DL_ConfigurationCommon->pattern1.dl_UL_TransmissionPeriodicity,.defint64val=NR_TDD_UL_DL_Pattern__dl_UL_TransmissionPeriodicity_ms0p5,TYPE_INT64,0},\
|
||||||
|
|||||||
@@ -97,9 +97,6 @@
|
|||||||
|
|
||||||
extern uint16_t sf_ahead;
|
extern uint16_t sf_ahead;
|
||||||
|
|
||||||
extern int config_check_band_frequencies(int ind, int16_t band, uint64_t downlink_frequency,
|
|
||||||
int32_t uplink_frequency_offset, uint32_t frame_type);
|
|
||||||
|
|
||||||
void prepare_scc(NR_ServingCellConfigCommon_t *scc) {
|
void prepare_scc(NR_ServingCellConfigCommon_t *scc) {
|
||||||
|
|
||||||
NR_FreqBandIndicatorNR_t *dl_frequencyBandList,*ul_frequencyBandList;
|
NR_FreqBandIndicatorNR_t *dl_frequencyBandList,*ul_frequencyBandList;
|
||||||
@@ -221,8 +218,40 @@ void prepare_scc(NR_ServingCellConfigCommon_t *scc) {
|
|||||||
scc->ext2->ntn_Config_r17->cellSpecificKoffset_r17 = CALLOC(1, sizeof(*scc->ext2->ntn_Config_r17->cellSpecificKoffset_r17));
|
scc->ext2->ntn_Config_r17->cellSpecificKoffset_r17 = CALLOC(1, sizeof(*scc->ext2->ntn_Config_r17->cellSpecificKoffset_r17));
|
||||||
}
|
}
|
||||||
|
|
||||||
void fill_scc_sim(NR_ServingCellConfigCommon_t *scc,uint64_t *ssb_bitmap,int N_RB_DL,int N_RB_UL,int mu_dl,int mu_ul) {
|
// Section 4.1 in 38.213
|
||||||
|
NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR get_ssb_len(NR_ServingCellConfigCommon_t *scc)
|
||||||
|
{
|
||||||
|
NR_FrequencyInfoDL_t *frequencyInfoDL = scc->downlinkConfigCommon->frequencyInfoDL;
|
||||||
|
int scs = *scc->ssbSubcarrierSpacing;
|
||||||
|
int nr_band = *frequencyInfoDL->frequencyBandList.list.array[0];
|
||||||
|
long freq = from_nrarfcn(nr_band, scs, frequencyInfoDL->absoluteFrequencyPointA);
|
||||||
|
frame_type_t frame_type = get_frame_type(nr_band, scs);
|
||||||
|
if (scs == 0) {
|
||||||
|
if (freq < 3000000000)
|
||||||
|
return NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_shortBitmap;
|
||||||
|
else
|
||||||
|
return NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap;
|
||||||
|
}
|
||||||
|
if (scs == 1) {
|
||||||
|
if (nr_band == 5 || nr_band == 24 || nr_band == 66 || frame_type == FDD) { // case B or paired spectrum
|
||||||
|
if (freq < 3000000000)
|
||||||
|
return NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_shortBitmap;
|
||||||
|
else
|
||||||
|
return NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap;
|
||||||
|
}
|
||||||
|
else { // case C and unpaired spectrum
|
||||||
|
if (freq < 1880000000)
|
||||||
|
return NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_shortBitmap;
|
||||||
|
else
|
||||||
|
return NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// FR2
|
||||||
|
return NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_longBitmap;
|
||||||
|
}
|
||||||
|
|
||||||
|
void fill_scc_sim(NR_ServingCellConfigCommon_t *scc, uint64_t *ssb_bitmap, int N_RB_DL, int N_RB_UL, int mu_dl, int mu_ul)
|
||||||
|
{
|
||||||
*scc->physCellId=0; \
|
*scc->physCellId=0; \
|
||||||
// *scc->n_TimingAdvanceOffset=NR_ServingCellConfigCommon__n_TimingAdvanceOffset_n0;
|
// *scc->n_TimingAdvanceOffset=NR_ServingCellConfigCommon__n_TimingAdvanceOffset_n0;
|
||||||
*scc->ssb_periodicityServingCell=NR_ServingCellConfigCommon__ssb_periodicityServingCell_ms20;
|
*scc->ssb_periodicityServingCell=NR_ServingCellConfigCommon__ssb_periodicityServingCell_ms20;
|
||||||
@@ -317,44 +346,40 @@ void fill_scc_sim(NR_ServingCellConfigCommon_t *scc,uint64_t *ssb_bitmap,int N_R
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void fix_scc(NR_ServingCellConfigCommon_t *scc,uint64_t ssbmap) {
|
void fix_scc(NR_ServingCellConfigCommon_t *scc, uint64_t ssbmap)
|
||||||
|
{
|
||||||
int ssbmaplen = (int)scc->ssb_PositionsInBurst->present;
|
scc->ssb_PositionsInBurst->present = get_ssb_len(scc);
|
||||||
uint8_t curr_bit;
|
uint8_t curr_bit;
|
||||||
|
|
||||||
AssertFatal(ssbmaplen==NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_shortBitmap ||
|
|
||||||
ssbmaplen==NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap ||
|
|
||||||
ssbmaplen==NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_longBitmap, "illegal ssbmaplen %d\n",ssbmaplen);
|
|
||||||
|
|
||||||
// changing endianicity of ssbmap and filling the ssb_PositionsInBurst buffers
|
// changing endianicity of ssbmap and filling the ssb_PositionsInBurst buffers
|
||||||
if(ssbmaplen==NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_shortBitmap){
|
if(scc->ssb_PositionsInBurst->present == NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_shortBitmap) {
|
||||||
scc->ssb_PositionsInBurst->choice.shortBitmap.size = 1;
|
scc->ssb_PositionsInBurst->choice.shortBitmap.size = 1;
|
||||||
scc->ssb_PositionsInBurst->choice.shortBitmap.bits_unused = 4;
|
scc->ssb_PositionsInBurst->choice.shortBitmap.bits_unused = 4;
|
||||||
scc->ssb_PositionsInBurst->choice.shortBitmap.buf = CALLOC(1,1);
|
scc->ssb_PositionsInBurst->choice.shortBitmap.buf = CALLOC(1, 1);
|
||||||
scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0] = 0;
|
scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0] = 0;
|
||||||
for (int i=0; i<8; i++) {
|
for (int i = 0; i < 8; i++) {
|
||||||
if (i<scc->ssb_PositionsInBurst->choice.shortBitmap.bits_unused)
|
if (i<scc->ssb_PositionsInBurst->choice.shortBitmap.bits_unused)
|
||||||
curr_bit = 0;
|
curr_bit = 0;
|
||||||
else
|
else
|
||||||
curr_bit = (ssbmap>>(7-i))&0x01;
|
curr_bit = (ssbmap >> (7 - i)) & 0x01;
|
||||||
scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0] |= curr_bit<<i;
|
scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0] |= curr_bit << i;
|
||||||
}
|
}
|
||||||
}else if(ssbmaplen==NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap){
|
} else if(scc->ssb_PositionsInBurst->present == NR_ServingCellConfigCommon__ssb_PositionsInBurst_PR_mediumBitmap) {
|
||||||
scc->ssb_PositionsInBurst->choice.mediumBitmap.size = 1;
|
scc->ssb_PositionsInBurst->choice.mediumBitmap.size = 1;
|
||||||
scc->ssb_PositionsInBurst->choice.mediumBitmap.bits_unused = 0;
|
scc->ssb_PositionsInBurst->choice.mediumBitmap.bits_unused = 0;
|
||||||
scc->ssb_PositionsInBurst->choice.mediumBitmap.buf = CALLOC(1,1);
|
scc->ssb_PositionsInBurst->choice.mediumBitmap.buf = CALLOC(1, 1);
|
||||||
scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0] = 0;
|
scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0] = 0;
|
||||||
for (int i=0; i<8; i++)
|
for (int i = 0; i < 8; i++)
|
||||||
scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0] |= (((ssbmap>>(7-i))&0x01)<<i);
|
scc->ssb_PositionsInBurst->choice.mediumBitmap.buf[0] |= (((ssbmap >> (7 - i)) & 0x01) << i);
|
||||||
}else {
|
} else {
|
||||||
scc->ssb_PositionsInBurst->choice.longBitmap.size = 8;
|
scc->ssb_PositionsInBurst->choice.longBitmap.size = 8;
|
||||||
scc->ssb_PositionsInBurst->choice.longBitmap.bits_unused = 0;
|
scc->ssb_PositionsInBurst->choice.longBitmap.bits_unused = 0;
|
||||||
scc->ssb_PositionsInBurst->choice.longBitmap.buf = CALLOC(1,8);
|
scc->ssb_PositionsInBurst->choice.longBitmap.buf = CALLOC(1, 8);
|
||||||
for (int j=0; j<8; j++) {
|
for (int j = 0; j < 8; j++) {
|
||||||
scc->ssb_PositionsInBurst->choice.longBitmap.buf[j] = 0;
|
scc->ssb_PositionsInBurst->choice.longBitmap.buf[j] = 0;
|
||||||
curr_bit = (ssbmap>>(j<<3))&(0xff);
|
curr_bit = (ssbmap >> (j << 3)) & 0xff;
|
||||||
for (int i=0; i<8; i++)
|
for (int i = 0; i < 8; i++)
|
||||||
scc->ssb_PositionsInBurst->choice.longBitmap.buf[j] |= (((curr_bit>>(7-i))&0x01)<<i);
|
scc->ssb_PositionsInBurst->choice.longBitmap.buf[j] |= (((curr_bit >> (7 - i)) & 0x01) << i);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -341,7 +341,7 @@ static void config_common_ue(NR_UE_MAC_INST_t *mac,
|
|||||||
|
|
||||||
switch (scc->ssb_PositionsInBurst->present) {
|
switch (scc->ssb_PositionsInBurst->present) {
|
||||||
case 1 :
|
case 1 :
|
||||||
cfg->ssb_table.ssb_mask_list[0].ssb_mask = scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0] << 24;
|
cfg->ssb_table.ssb_mask_list[0].ssb_mask = ((uint32_t) scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0]) << 24;
|
||||||
cfg->ssb_table.ssb_mask_list[1].ssb_mask = 0;
|
cfg->ssb_table.ssb_mask_list[1].ssb_mask = 0;
|
||||||
break;
|
break;
|
||||||
case 2 :
|
case 2 :
|
||||||
|
|||||||
@@ -501,7 +501,7 @@ static void config_common(gNB_MAC_INST *nrmac, nr_pdsch_AntennaPorts_t pdsch_Ant
|
|||||||
|
|
||||||
switch (scc->ssb_PositionsInBurst->present) {
|
switch (scc->ssb_PositionsInBurst->present) {
|
||||||
case 1:
|
case 1:
|
||||||
cfg->ssb_table.ssb_mask_list[0].ssb_mask.value = scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0] << 24;
|
cfg->ssb_table.ssb_mask_list[0].ssb_mask.value = ((uint32_t)scc->ssb_PositionsInBurst->choice.shortBitmap.buf[0]) << 24;
|
||||||
cfg->ssb_table.ssb_mask_list[1].ssb_mask.value = 0;
|
cfg->ssb_table.ssb_mask_list[1].ssb_mask.value = 0;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
|
|||||||
@@ -156,21 +156,16 @@ size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset
|
|||||||
for (int i = 1; i < gNB->ul_bler.harq_round_max; i++)
|
for (int i = 1; i < gNB->ul_bler.harq_round_max; i++)
|
||||||
output += snprintf(output, end - output, "/%"PRIu64, stats->ul.rounds[i]);
|
output += snprintf(output, end - output, "/%"PRIu64, stats->ul.rounds[i]);
|
||||||
|
|
||||||
char deltaMCS_str[100]="\0";
|
|
||||||
|
|
||||||
if (UE->current_UL_BWP.pusch_Config && UE->current_UL_BWP.pusch_Config->pusch_PowerControl->deltaMCS) {
|
|
||||||
sprintf(deltaMCS_str,"deltaMCS %d\n",UE->mac_stats.deltaMCS);
|
|
||||||
}
|
|
||||||
output += snprintf(output,
|
output += snprintf(output,
|
||||||
end - output,
|
end - output,
|
||||||
", ulsch_errors %"PRIu64", ulsch_DTX %d, BLER %.5f MCS (%d) %d (Qm %d %s dB) NPRB %d SNR %d.%d dB\n",
|
", ulsch_errors %"PRIu64", ulsch_DTX %d, BLER %.5f MCS (%d) %d (Qm %d deltaMCS %d dB) NPRB %d SNR %d.%d dB\n",
|
||||||
stats->ul.errors,
|
stats->ul.errors,
|
||||||
stats->ulsch_DTX,
|
stats->ulsch_DTX,
|
||||||
sched_ctrl->ul_bler_stats.bler,
|
sched_ctrl->ul_bler_stats.bler,
|
||||||
UE->current_UL_BWP.mcs_table,
|
UE->current_UL_BWP.mcs_table,
|
||||||
sched_ctrl->ul_bler_stats.mcs,
|
sched_ctrl->ul_bler_stats.mcs,
|
||||||
nr_get_Qm_ul(sched_ctrl->ul_bler_stats.mcs,UE->current_UL_BWP.mcs_table),
|
nr_get_Qm_ul(sched_ctrl->ul_bler_stats.mcs,UE->current_UL_BWP.mcs_table),
|
||||||
deltaMCS_str,
|
UE->mac_stats.deltaMCS,
|
||||||
UE->mac_stats.NPRB,
|
UE->mac_stats.NPRB,
|
||||||
sched_ctrl->pusch_snrx10 / 10,
|
sched_ctrl->pusch_snrx10 / 10,
|
||||||
sched_ctrl->pusch_snrx10 % 10);
|
sched_ctrl->pusch_snrx10 % 10);
|
||||||
|
|||||||
@@ -30,6 +30,7 @@
|
|||||||
#include "LOG/log.h"
|
#include "LOG/log.h"
|
||||||
|
|
||||||
#include "common/utils/time_stat.h"
|
#include "common/utils/time_stat.h"
|
||||||
|
#include "common/utils/assertions.h"
|
||||||
|
|
||||||
static void nr_rlc_entity_get_stats(
|
static void nr_rlc_entity_get_stats(
|
||||||
nr_rlc_entity_t *entity,
|
nr_rlc_entity_t *entity,
|
||||||
|
|||||||
@@ -207,6 +207,15 @@ void max_retx_reached_ue(void *max_retx_reached_data,
|
|||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef _STANDALONE_TESTING_
|
||||||
|
|
||||||
|
void exit_function(const char *file, const char *function, const int line, const char *s, const int assert)
|
||||||
|
{
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
int test_main(void)
|
int test_main(void)
|
||||||
{
|
{
|
||||||
nr_rlc_entity_t *gnb = NULL;
|
nr_rlc_entity_t *gnb = NULL;
|
||||||
|
|||||||
@@ -1092,9 +1092,10 @@ static int8_t handle_dlsch(NR_UE_MAC_INST_t *mac, nr_downlink_indication_t *dl_i
|
|||||||
if (get_softmodem_params()->emulate_l1)
|
if (get_softmodem_params()->emulate_l1)
|
||||||
dl_info->rx_ind->rx_indication_body[pdu_id].pdsch_pdu.harq_pid = g_harq_pid;
|
dl_info->rx_ind->rx_indication_body[pdu_id].pdsch_pdu.harq_pid = g_harq_pid;
|
||||||
|
|
||||||
update_harq_status(mac,
|
if (mac->ra.ra_state != nrRA_WAIT_RAR) // no HARQ for MSG2
|
||||||
dl_info->rx_ind->rx_indication_body[pdu_id].pdsch_pdu.harq_pid,
|
update_harq_status(mac,
|
||||||
dl_info->rx_ind->rx_indication_body[pdu_id].pdsch_pdu.ack_nack);
|
dl_info->rx_ind->rx_indication_body[pdu_id].pdsch_pdu.harq_pid,
|
||||||
|
dl_info->rx_ind->rx_indication_body[pdu_id].pdsch_pdu.ack_nack);
|
||||||
if(dl_info->rx_ind->rx_indication_body[pdu_id].pdsch_pdu.ack_nack)
|
if(dl_info->rx_ind->rx_indication_body[pdu_id].pdsch_pdu.ack_nack)
|
||||||
nr_ue_send_sdu(mac, dl_info, pdu_id);
|
nr_ue_send_sdu(mac, dl_info, pdu_id);
|
||||||
|
|
||||||
|
|||||||
@@ -1518,6 +1518,11 @@ static int handle_rrcSetupComplete(const protocol_ctxt_t *const ctxt_pP,
|
|||||||
uint8_t xid = setup_complete->rrc_TransactionIdentifier;
|
uint8_t xid = setup_complete->rrc_TransactionIdentifier;
|
||||||
UE->xids[xid] = RRC_ACTION_NONE;
|
UE->xids[xid] = RRC_ACTION_NONE;
|
||||||
|
|
||||||
|
if (setup_complete->criticalExtensions.present != NR_RRCSetupComplete__criticalExtensions_PR_rrcSetupComplete) {
|
||||||
|
LOG_E(NR_RRC, "malformed RRCSetupComplete received from UE %lx\n", ctxt_pP->rntiMaybeUEid);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
NR_RRCSetupComplete_IEs_t *setup_complete_ies = setup_complete->criticalExtensions.choice.rrcSetupComplete;
|
NR_RRCSetupComplete_IEs_t *setup_complete_ies = setup_complete->criticalExtensions.choice.rrcSetupComplete;
|
||||||
|
|
||||||
if (setup_complete_ies->ng_5G_S_TMSI_Value != NULL) {
|
if (setup_complete_ies->ng_5G_S_TMSI_Value != NULL) {
|
||||||
|
|||||||
@@ -20,6 +20,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "openair2/RRC/NR_UE/rrc_proto.h"
|
#include "openair2/RRC/NR_UE/rrc_proto.h"
|
||||||
|
#include "executables/softmodem-common.h"
|
||||||
|
|
||||||
void init_SI_timers(NR_UE_RRC_SI_INFO *SInfo)
|
void init_SI_timers(NR_UE_RRC_SI_INFO *SInfo)
|
||||||
{
|
{
|
||||||
@@ -573,7 +574,8 @@ void handle_rlf_sync(NR_UE_Timers_Constants_t *tac,
|
|||||||
else {
|
else {
|
||||||
// OUT_OF_SYNC
|
// OUT_OF_SYNC
|
||||||
tac->N311_cnt = 0;
|
tac->N311_cnt = 0;
|
||||||
if(nr_timer_is_active(&tac->T300) ||
|
if(get_softmodem_params()->phy_test ||
|
||||||
|
nr_timer_is_active(&tac->T300) ||
|
||||||
nr_timer_is_active(&tac->T301) ||
|
nr_timer_is_active(&tac->T301) ||
|
||||||
nr_timer_is_active(&tac->T304) ||
|
nr_timer_is_active(&tac->T304) ||
|
||||||
nr_timer_is_active(&tac->T310) ||
|
nr_timer_is_active(&tac->T310) ||
|
||||||
|
|||||||
@@ -120,9 +120,7 @@ gNBs =
|
|||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
#p0_nominal = -90;
|
#p0_nominal = -90;
|
||||||
p0_nominal = -118;
|
p0_nominal = -118;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 3;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 0x0001000100010001L;
|
ssb_PositionsInBurst_Bitmap = 0x0001000100010001L;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 3;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 0x0001000100010001L;
|
ssb_PositionsInBurst_Bitmap = 0x0001000100010001L;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 3;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 3;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 0x0001000100010001L;
|
ssb_PositionsInBurst_Bitmap = 0x0001000100010001L;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -116,9 +116,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -117,9 +117,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -117,9 +117,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 0x1;
|
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 0x1;
|
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 15;
|
ssb_PositionsInBurst_Bitmap = 15;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -113,9 +113,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -113,9 +113,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 0x1;
|
ssb_PositionsInBurst_Bitmap = 0x1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -113,9 +113,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 255;
|
ssb_PositionsInBurst_Bitmap = 255;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 255;
|
ssb_PositionsInBurst_Bitmap = 255;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -114,9 +114,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -117,9 +117,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
ssb_PositionsInBurst_Bitmap = 1; #0x80;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -116,9 +116,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -162,9 +162,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
+1
-3
@@ -126,9 +126,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 0;
|
hoppingId = 0;
|
||||||
p0_nominal = -96;
|
p0_nominal = -96;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 0x10001L;
|
ssb_PositionsInBurst_Bitmap = 0x10001L;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -145,9 +145,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -127,9 +127,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -146,9 +146,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -150,9 +150,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -115,9 +115,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -117,9 +117,6 @@ gNBs =
|
|||||||
p0_nominal = -70;
|
p0_nominal = -70;
|
||||||
n_TimingAdvanceOffset = 0;
|
n_TimingAdvanceOffset = 0;
|
||||||
|
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -118,9 +118,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -70;
|
p0_nominal = -70;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 3;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -111,9 +111,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -117,9 +117,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
@@ -112,9 +112,7 @@ gNBs =
|
|||||||
pucchGroupHopping = 0;
|
pucchGroupHopping = 0;
|
||||||
hoppingId = 40;
|
hoppingId = 40;
|
||||||
p0_nominal = -90;
|
p0_nominal = -90;
|
||||||
# ssb_PositionsInBurs_BitmapPR
|
|
||||||
# 1=short, 2=medium, 3=long
|
|
||||||
ssb_PositionsInBurst_PR = 2;
|
|
||||||
ssb_PositionsInBurst_Bitmap = 1;
|
ssb_PositionsInBurst_Bitmap = 1;
|
||||||
|
|
||||||
# ssb_periodicityServingCell
|
# ssb_periodicityServingCell
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user