Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
OpenXG-RAN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
OpenXG
OpenXG-RAN
Commits
af6807d3
Commit
af6807d3
authored
May 26, 2021
by
Abhijith
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
pucch errors fixed
parent
1fe40f31
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
64 additions
and
200 deletions
+64
-200
.vscode/launch.json
.vscode/launch.json
+0
-108
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+58
-55
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+2
-2
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
.../GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
+4
-35
No files found.
.vscode/launch.json
deleted
100644 → 0
View file @
1fe40f31
{
//
Use
IntelliSense
to
learn
about
possible
attributes.
//
Hover
to
view
descriptions
of
existing
attributes.
//
For
more
information
,
visit:
https://go.microsoft.com/fwlink/?linkid=
830387
"version"
:
"0.2.0"
,
"configurations"
:
[
{
"name"
:
"(gdb) Launch UE PHY Simu"
,
"type"
:
"cppdbg"
,
"request"
:
"launch"
,
"program"
:
"/home/spclab/SCS60/rem/openairinterface5g/cmake_targets/ran_build/build/nr-uesoftmodem"
,
"args"
:
[
"--rfsimulator.serveraddr"
,
"127.0.0.1"
,
"--rfsim"
,
"--phy-test"
,
"--rrc_config_path"
,
"/home/spclab/SCS60/rem/openairinterface5g/cmake_targets/ran_build/build"
],
"stopAtEntry"
:
false
,
"cwd"
:
"${workspaceFolder}"
,
"environment"
:
[],
"externalConsole"
:
false
,
"MIMode"
:
"gdb"
,
"miDebuggerPath"
:
"/usr/bin/gdb"
,
"setupCommands"
:
[
{
"description"
:
"Enable pretty-printing for gdb"
,
"text"
:
"-enable-pretty-printing"
,
"ignoreFailures"
:
true
}
]
},
{
"name"
:
"(gdb) Launch UE RA"
,
"type"
:
"cppdbg"
,
"request"
:
"launch"
,
"program"
:
"/home/spclab/SCS60/rem/openairinterface5g/cmake_targets/ran_build/build/nr-uesoftmodem"
,
"args"
:
[
"--rfsimulator.serveraddr"
,
"127.0.0.1"
,
"--rfsim"
,
"--do-ra"
,
"--rrc_config_path"
,
"/home/spclab/SCS60/rem/openairinterface5g/cmake_targets/ran_build/build"
],
"stopAtEntry"
:
false
,
"cwd"
:
"${workspaceFolder}"
,
"environment"
:
[],
"externalConsole"
:
false
,
"MIMode"
:
"gdb"
,
"miDebuggerPath"
:
"/usr/bin/gdb"
,
"setupCommands"
:
[
{
"description"
:
"Enable pretty-printing for gdb"
,
"text"
:
"-enable-pretty-printing"
,
"ignoreFailures"
:
true
}
]
},
{
"name"
:
"(gdb) Launch gNB PHY Simu"
,
"type"
:
"cppdbg"
,
"request"
:
"launch"
,
"program"
:
"/home/spclab/SCS60/rem/openairinterface5g/cmake_targets/ran_build/build/nr-softmodem"
,
"args"
:
[
"--rfsimulator.serveraddr"
,
"server"
,
"-O"
,
"/home/spclab/SCS60/rem/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf"
,
"--rfsim"
,
"--phy-test"
],
"stopAtEntry"
:
false
,
"cwd"
:
"${workspaceFolder}"
,
"environment"
:
[],
"externalConsole"
:
false
,
"MIMode"
:
"gdb"
,
"miDebuggerPath"
:
"/usr/bin/gdb"
,
"setupCommands"
:
[
{
"description"
:
"Enable pretty-printing for gdb"
,
"text"
:
"-enable-pretty-printing"
,
"ignoreFailures"
:
true
}
]
},
{
"name"
:
"(gdb) Launch gNB RA"
,
"type"
:
"cppdbg"
,
"request"
:
"launch"
,
"program"
:
"/home/spclab/SCS60/rem/openairinterface5g/cmake_targets/ran_build/build/nr-softmodem"
,
"args"
:
[
"--rfsimulator.serveraddr"
,
"server"
,
"-O"
,
"/home/spclab/SCS60/rem/openairinterface5g/targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf"
,
"--rfsim"
,
"--do-ra"
],
"stopAtEntry"
:
false
,
"cwd"
:
"${workspaceFolder}"
,
"environment"
:
[],
"externalConsole"
:
false
,
"MIMode"
:
"gdb"
,
"miDebuggerPath"
:
"/usr/bin/gdb"
,
"setupCommands"
:
[
{
"description"
:
"Enable pretty-printing for gdb"
,
"text"
:
"-enable-pretty-printing"
,
"ignoreFailures"
:
true
}
]
}
]
}
openair2/GNB_APP/gnb_config.c
View file @
af6807d3
...
...
@@ -421,76 +421,79 @@ for (int j = 0 ;j < 4 ; j++)
/* This function checks dedicated serving cell configuration and performs fixes as needed */
void
fix_scd
(
NR_ServingCellConfig_t
*
scd
)
{
// Check for DL PTRS parameters validity
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
array
[
i
]
<
1
)
||
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
array
[
i
]
>
276
))
{
LOG_I
(
RRC
,
"DL PTRS frequencyDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
free
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
);
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
=
NULL
;
break
;
for
(
int
bwp_i
=
0
;
bwp_i
<
MAX_NUM_BWP
;
bwp_i
++
)
{
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
array
[
i
]
<
1
)
||
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
frequencyDensity
->
list
.
array
[
i
]
>
276
))
{
LOG_I
(
RRC
,
"DL PTRS frequencyDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
free
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
);
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
=
NULL
;
break
;
}
}
}
}
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
array
[
i
]
<
0
)
||
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
array
[
i
]
>
29
))
{
LOG_I
(
RRC
,
"DL PTRS timeDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
free
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
;
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
=
NULL
;
break
;
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
array
[
i
]
<
0
)
||
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
timeDensity
->
list
.
array
[
i
]
>
29
))
{
LOG_I
(
RRC
,
"DL PTRS timeDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
free
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
);
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
=
NULL
;
break
;
}
}
}
}
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
if
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
resourceElementOffset
>
2
)
{
LOG_I
(
RRC
,
"Freeing DL PTRS resourceElementOffset
\n
"
);
free
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
resourceElementOffset
)
;
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
resourceElementOffset
=
NULL
;
}
if
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
epre_Ratio
>
1
)
{
LOG_I
(
RRC
,
"Freeing DL PTRS epre_Ratio
\n
"
);
free
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
epre_Ratio
)
;
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
epre_Ratio
=
NULL
;
if
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
)
{
if
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
resourceElementOffset
>
2
)
{
LOG_I
(
RRC
,
"Freeing DL PTRS resourceElementOffset
\n
"
);
free
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
resourceElementOffset
);
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
resourceElementOffset
=
NULL
;
}
if
(
*
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
epre_Ratio
>
1
)
{
LOG_I
(
RRC
,
"Freeing DL PTRS epre_Ratio
\n
"
);
free
(
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
epre_Ratio
);
scd
->
downlinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pdsch_Config
->
choice
.
setup
->
dmrs_DownlinkForPDSCH_MappingTypeA
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
epre_Ratio
=
NULL
;
}
}
}
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
array
[
i
]
<
1
)
||
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
array
[
i
]
>
276
))
{
LOG_I
(
RRC
,
"UL PTRS frequencyDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
free
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
);
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
=
NULL
;
break
;
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the frequencyDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
array
[
i
]
<
1
)
||
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
frequencyDensity
->
list
.
array
[
i
]
>
276
))
{
LOG_I
(
RRC
,
"UL PTRS frequencyDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
free
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
);
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
=
NULL
;
break
;
}
}
}
}
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
i
]
<
0
)
||
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
i
]
>
29
))
{
LOG_I
(
RRC
,
"UL PTRS timeDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
free
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
);
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
=
NULL
;
break
;
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
// If any of the timeDensity values are not set or are out of bounds, PTRS is assumed to be not present
for
(
int
i
=
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
count
-
1
;
i
>=
0
;
i
--
)
{
if
((
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
i
]
<
0
)
||
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
timeDensity
->
list
.
array
[
i
]
>
29
))
{
LOG_I
(
RRC
,
"UL PTRS timeDensity %d not set. Assuming PTRS not present!
\n
"
,
i
);
free
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
);
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
=
NULL
;
break
;
}
}
}
}
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
if
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
)
{
// Check for UL PTRS parameters validity
if
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
>
2
)
{
if
(
*
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
>
2
)
{
LOG_I
(
RRC
,
"Freeing UL PTRS resourceElementOffset
\n
"
);
free
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
);
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
=
NULL
;
free
(
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
);
scd
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_i
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
->
transformPrecoderDisabled
->
resourceElementOffset
=
NULL
;
}
}
}
}
void
RCconfig_nr_flexran
()
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
af6807d3
...
...
@@ -748,11 +748,11 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
}
/* PTRS */
if
(
mac
->
ULbwp
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
!=
NULL
)
{
if
(
mac
->
ULbwp
[
mac
->
UL_BWP_Id
-
1
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
!=
NULL
)
{
if
(
pusch_config_pdu
->
transform_precoding
==
transform_precoder_disabled
)
{
nfapi_nr_ue_ptrs_ports_t
ptrs_ports_list
;
pusch_config_pdu
->
pusch_ptrs
.
ptrs_ports_list
=
&
ptrs_ports_list
;
valid_ptrs_setup
=
set_ul_ptrs_values
(
mac
->
ULbwp
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
,
valid_ptrs_setup
=
set_ul_ptrs_values
(
mac
->
ULbwp
[
mac
->
UL_BWP_Id
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
->
dmrs_UplinkForPUSCH_MappingTypeB
->
choice
.
setup
->
phaseTrackingRS
->
choice
.
setup
,
pusch_config_pdu
->
rb_size
,
pusch_config_pdu
->
mcs_index
,
pusch_config_pdu
->
mcs_table
,
&
pusch_config_pdu
->
pusch_ptrs
.
ptrs_freq_density
,
&
pusch_config_pdu
->
pusch_ptrs
.
ptrs_time_density
,
&
pusch_config_pdu
->
pusch_ptrs
.
ptrs_ports_list
->
ptrs_re_offset
,
&
pusch_config_pdu
->
pusch_ptrs
.
num_ptrs_ports
,
...
...
targets/PROJECTS/GENERIC-LTE-EPC/CONF/gnb.band78.tm1.106PRB.usrpn300.conf
View file @
af6807d3
...
...
@@ -199,25 +199,9 @@ gNBs =
subcarrierSpacing_1
=
1
;
# frequencyDensity value range: 1-276
dl_ptrsFreqDensity0_0
=
25
;
dl_ptrsFreqDensity1_0
=
75
;
# timeDensity value range: 0-29
dl_ptrsTimeDensity0_0
=
2
;
dl_ptrsTimeDensity1_0
=
4
;
dl_ptrsTimeDensity2_0
=
10
;
# epre_Ratio
# 0 = "00", 1 = "01" in TS 38.214, table 4.1-2
dl_ptrsEpreRatio_0
=
0
;
# resourceElementOffset
# 0 = offset01 1 = offset02, 2 = offset02
# 3GPP TS 38.331 PTRS-DownlinkConfig; TS 38.211 sec. 7.4.1.2.2
dl_ptrsReOffset_0
=
0
;
firstActiveDownlinkBWP
-
Id
=
1
;
#BWP-Id
firstActiveDownlinkBWP
-
Id
=
2
;
#BWP-Id
# bwp-InactivityTimer ENUMERATED {ms2, ms3, ms4, ms5, ms6, ms8, ms10, ms20, ms30,
# ms40,ms50, ms60, ms80,ms100, ms200,ms300, ms500,
...
...
@@ -227,29 +211,14 @@ gNBs =
defaultDownlinkBWP
-
Id
=
1
;
#BWP-Id
# UplinkConfig
firstActiveUplinkBWP
-
Id
=
1
;
#BWP-Id
firstActiveUplinkBWP
-
Id
=
2
;
#BWP-Id
#BWP-Uplink
# UL PTRS related parameters.
# 3GPP TS 38.331 PTRS-UplinkConfig
# frequencyDensity value range: 1-276
ul_ptrsFreqDensity0_0
=
25
;
ul_ptrsFreqDensity1_0
=
75
;
# timeDensity value range: 0-29
ul_ptrsTimeDensity0_0
=
2
;
ul_ptrsTimeDensity1_0
=
4
;
ul_ptrsTimeDensity2_0
=
10
;
# resourceElementOffset
# 0 = offset01 1 = offset02, 2 = offset02
# TS 38.331 PTRS-UplinkConfig; TS 38.211 sec. 6.4.1.2.2.1
ul_ptrsReOffset_0
=
0
;
# maxNrofPorts
# 0 = n1, 1 = n2
ul_ptrsMaxPorts_0
=
0
;
# ptrs-Power
# 0 = p00, 1 = p01, 2 = p10, 3 = p11
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment