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
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
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
spbro
OpenXG-RAN
Commits
5686b2a2
Commit
5686b2a2
authored
May 24, 2024
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/phr_handling_for_develop' into integration_2024_w21c
parents
8820a575
ec326e85
Changes
10
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
239 additions
and
94 deletions
+239
-94
openair1/PHY/MODULATION/nr_modulation.c
openair1/PHY/MODULATION/nr_modulation.c
+44
-42
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+5
-2
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+28
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+5
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+2
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+121
-32
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+1
-1
openair2/LAYER2/NR_MAC_gNB/main.c
openair2/LAYER2/NR_MAC_gNB/main.c
+12
-3
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+9
-0
openair2/RRC/NR/nr_rrc_config.c
openair2/RRC/NR/nr_rrc_config.c
+12
-8
No files found.
openair1/PHY/MODULATION/nr_modulation.c
View file @
5686b2a2
...
...
@@ -123,7 +123,7 @@ void nr_modulation(uint32_t *in,
uint8_t
*
in_bytes
=
(
uint8_t
*
)
in
;
uint64_t
*
in64
=
(
uint64_t
*
)
in
;
int64_t
*
out64
=
(
int64_t
*
)
out
;
uint32_t
i
;
uint32_t
i
=
0
;
#if defined(__SSE2__)
simde__m128i
*
nr_mod_table128
;
...
...
@@ -173,47 +173,49 @@ void nr_modulation(uint32_t *in,
return
;
case
6
:
for
(
i
=
0
;
i
<
length
-
3
*
64
;
i
+=
3
*
64
)
{
uint64_t
x
=
*
in64
++
;
uint64_t
x1
=
x
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x
>>
12
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x
>>
24
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x
>>
36
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x
>>
48
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
uint64_t
x2
=
(
x
>>
60
);
x
=
*
in64
++
;
x2
|=
x
<<
4
;
x1
=
x2
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
12
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
24
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
36
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
48
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x2
=
((
x
>>
56
)
&
0xf0
)
|
(
x2
>>
60
);
x
=
*
in64
++
;
x2
|=
x
<<
8
;
x1
=
x2
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
12
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
24
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
36
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
48
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x2
=
((
x
>>
52
)
&
0xff0
)
|
(
x2
>>
60
);
*
out64
++
=
nr_64qam_mod_table
[
x2
];
}
if
(
length
>
(
3
*
64
))
for
(
i
=
0
;
i
<
length
-
3
*
64
;
i
+=
3
*
64
)
{
uint64_t
x
=
*
in64
++
;
uint64_t
x1
=
x
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x
>>
12
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x
>>
24
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x
>>
36
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x
>>
48
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
uint64_t
x2
=
(
x
>>
60
);
x
=
*
in64
++
;
x2
|=
x
<<
4
;
x1
=
x2
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
12
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
24
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
36
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
48
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x2
=
((
x
>>
56
)
&
0xf0
)
|
(
x2
>>
60
);
x
=
*
in64
++
;
x2
|=
x
<<
8
;
x1
=
x2
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
12
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
24
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
36
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x1
=
(
x2
>>
48
)
&
0xfff
;
*
out64
++
=
nr_64qam_mod_table
[
x1
];
x2
=
((
x
>>
52
)
&
0xff0
)
|
(
x2
>>
60
);
*
out64
++
=
nr_64qam_mod_table
[
x2
];
}
while
(
i
+
24
<=
length
)
{
uint32_t
xx
=
0
;
memcpy
(
&
xx
,
in_bytes
+
i
/
8
,
3
);
...
...
openair2/GNB_APP/gnb_config.c
View file @
5686b2a2
...
...
@@ -1302,11 +1302,14 @@ void RCconfig_nr_macrlc(configmodule_interface_t *cfg)
config
.
do_CSIRS
=
*
GNBParamList
.
paramarray
[
0
][
GNB_DO_CSIRS_IDX
].
iptr
;
config
.
do_SRS
=
*
GNBParamList
.
paramarray
[
0
][
GNB_DO_SRS_IDX
].
iptr
;
config
.
force_256qam_off
=
*
GNBParamList
.
paramarray
[
0
][
GNB_FORCE256QAMOFF_IDX
].
iptr
;
config
.
force_UL256qam_off
=
*
GNBParamList
.
paramarray
[
0
][
GNB_FORCEUL256QAMOFF_IDX
].
iptr
;
config
.
use_deltaMCS
=
*
GNBParamList
.
paramarray
[
0
][
GNB_USE_DELTA_MCS_IDX
].
iptr
!=
0
;
LOG_I
(
GNB_APP
,
"CSI-RS %d, SRS %d, 256 QAM %s
\n
"
,
"CSI-RS %d, SRS %d, 256 QAM %s
, delta_MCS %s
\n
"
,
config
.
do_CSIRS
,
config
.
do_SRS
,
config
.
force_256qam_off
?
"force off"
:
"may be on"
);
config
.
force_256qam_off
?
"force off"
:
"may be on"
,
config
.
use_deltaMCS
?
"on"
:
"off"
);
NR_ServingCellConfigCommon_t
*
scc
=
get_scc_config
(
cfg
,
config
.
minRXTXTIME
);
//xer_fprint(stdout, &asn_DEF_NR_ServingCellConfigCommon, scc);
...
...
openair2/GNB_APP/gnb_paramdef.h
View file @
5686b2a2
...
...
@@ -127,6 +127,10 @@ typedef enum {
#define GNB_CONFIG_STRING_FORCE256QAMOFF "force_256qam_off"
#define GNB_CONFIG_STRING_ENABLE_SDAP "enable_sdap"
#define GNB_CONFIG_STRING_DRBS "drbs"
#define GNB_CONFIG_STRING_USE_DELTA_MCS "use_deltaMCS"
#define GNB_CONFIG_HLP_USE_DELTA_MCS "Use deltaMCS-based power headroom reporting in PUSCH-Config"
#define GNB_CONFIG_HLP_FORCEUL256QAMOFF "suppress activation of UL 256 QAM despite UE support"
#define GNB_CONFIG_STRING_FORCEUL256QAMOFF "force_UL256qam_off"
#define GNB_CONFIG_STRING_GNB_DU_ID "gNB_DU_ID"
#define GNB_CONFIG_STRING_GNB_CU_UP_ID "gNB_CU_UP_ID"
...
...
@@ -171,6 +175,8 @@ typedef enum {
{GNB_CONFIG_STRING_DRBS, GNB_CONFIG_HLP_STRING_DRBS, 0, .iptr=NULL, .defintval=1, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_GNB_DU_ID, GNB_CONFIG_HLP_GNB_DU_ID, 0, .u64ptr=NULL, .defint64val=1, TYPE_UINT64, 0}, \
{GNB_CONFIG_STRING_GNB_CU_UP_ID, GNB_CONFIG_HLP_GNB_CU_UP_ID, 0, .u64ptr=NULL, .defint64val=1, TYPE_UINT64, 0}, \
{GNB_CONFIG_STRING_USE_DELTA_MCS, GNB_CONFIG_HLP_USE_DELTA_MCS, 0, .iptr=NULL, .defintval=0, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_FORCEUL256QAMOFF, GNB_CONFIG_HLP_FORCEUL256QAMOFF, 0, .iptr=NULL, .defintval=0, TYPE_INT, 0}, \
}
// clang-format on
...
...
@@ -202,8 +208,10 @@ typedef enum {
#define GNB_FORCE256QAMOFF_IDX 24
#define GNB_ENABLE_SDAP_IDX 25
#define GNB_DRBS 26
#define GNB_GNB_DU_ID_IDX 27
#define GNB_GNB_CU_UP_ID_IDX 28
#define GNB_GNB_DU_ID_IDX 27
#define GNB_GNB_CU_UP_ID_IDX 28
#define GNB_USE_DELTA_MCS_IDX 29
#define GNB_FORCEUL256QAMOFF_IDX 30
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define GNBPARAMS_CHECK { \
...
...
@@ -221,6 +229,24 @@ typedef enum {
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
{ .s5 = { NULL } }, \
}
/*-------------------------------------------------------------------------------------------------------------------------------------------------*/
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
5686b2a2
...
...
@@ -2667,9 +2667,12 @@ void mac_remove_nr_ue(gNB_MAC_INST *nr_mac, rnti_t rnti)
delete_nr_ue_data
(
UE
,
nr_mac
->
common_channels
,
&
UE_info
->
uid_allocator
);
}
uint8_t
nr_get_tpc
(
int
target
,
int
snrx10
,
int
incr
)
// all values passed to this function are in dB x10
uint8_t
nr_get_tpc
(
int
target
,
uint8_t
cqi
,
int
incr
,
int
tx_power
)
{
// all values passed to this function are in dB x10
// al values passed to this function are x10
int
snrx10
=
(
cqi
*
5
)
-
640
-
(
tx_power
*
10
);
LOG_D
(
NR_MAC
,
"tpc : target %d, cqi %d, snrx10 %d, tx_power %d
\n
"
,
target
,
((
int
)
cqi
*
5
)
-
640
,
snrx10
,
tx_power
);
if
(
snrx10
>
target
+
incr
)
return
0
;
// decrease 1dB
if
(
snrx10
<
target
-
(
3
*
incr
))
return
3
;
// increase 3dB
if
(
snrx10
<
target
-
incr
)
return
2
;
// increase 1dB
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
5686b2a2
...
...
@@ -1044,7 +1044,7 @@ void handle_nr_uci_pucch_0_1(module_id_t mod_id,
// tpc (power control) only if we received AckNack
if
(
uci_01
->
harq
.
harq_confidence_level
==
0
&&
uci_01
->
ul_cqi
!=
0xff
)
{
sched_ctrl
->
pucch_snrx10
=
uci_01
->
ul_cqi
*
5
-
640
;
sched_ctrl
->
tpc1
=
nr_get_tpc
(
nrmac
->
pucch_target_snrx10
,
sched_ctrl
->
pucch_snrx10
,
3
0
);
sched_ctrl
->
tpc1
=
nr_get_tpc
(
nrmac
->
pucch_target_snrx10
,
uci_01
->
ul_cqi
,
30
,
0
);
}
else
sched_ctrl
->
tpc1
=
1
;
}
...
...
@@ -1087,7 +1087,7 @@ void handle_nr_uci_pucch_2_3_4(module_id_t mod_id,
// TODO PUCCH2 SNR computation is not correct -> ignore the following
if
(
uci_234
->
ul_cqi
!=
0xff
)
{
sched_ctrl
->
pucch_snrx10
=
uci_234
->
ul_cqi
*
5
-
640
;
sched_ctrl
->
tpc1
=
nr_get_tpc
(
nrmac
->
pucch_target_snrx10
,
sched_ctrl
->
pucch_snrx10
,
3
0
);
sched_ctrl
->
tpc1
=
nr_get_tpc
(
nrmac
->
pucch_target_snrx10
,
uci_234
->
ul_cqi
,
30
,
0
);
}
// TODO: handle SR
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
5686b2a2
This diff is collapsed.
Click to expand it.
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
5686b2a2
...
...
@@ -273,7 +273,7 @@ NR_pusch_dmrs_t get_ul_dmrs_params(const NR_ServingCellConfigCommon_t *scc,
const
NR_tda_info_t
*
tda_info
,
const
int
Layers
);
uint8_t
nr_get_tpc
(
int
target
,
int
snrx10
,
int
inc
r
);
uint8_t
nr_get_tpc
(
int
target
,
uint8_t
cqi
,
int
incr
,
int
tx_powe
r
);
int
get_spf
(
nfapi_nr_config_request_scf_t
*
cfg
);
...
...
openair2/LAYER2/NR_MAC_gNB/main.c
View file @
5686b2a2
...
...
@@ -156,15 +156,24 @@ 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
++
)
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
,
end
-
output
,
", ulsch_errors %"
PRIu64
", ulsch_DTX %d, BLER %.5f MCS (%d) %d
\n
"
,
", ulsch_errors %"
PRIu64
", ulsch_DTX %d, BLER %.5f MCS (%d) %d
(Qm %d %s dB) NPRB %d SNR %d.%d dB
\n
"
,
stats
->
ul
.
errors
,
stats
->
ulsch_DTX
,
sched_ctrl
->
ul_bler_stats
.
bler
,
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
),
deltaMCS_str
,
UE
->
mac_stats
.
NPRB
,
sched_ctrl
->
pusch_snrx10
/
10
,
sched_ctrl
->
pusch_snrx10
%
10
);
output
+=
snprintf
(
output
,
end
-
output
,
"UE %04x: MAC: TX %14"
PRIu64
" RX %14"
PRIu64
" bytes
\n
"
,
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
5686b2a2
...
...
@@ -135,6 +135,8 @@ typedef struct nr_mac_config_t {
int
do_CSIRS
;
int
do_SRS
;
bool
force_256qam_off
;
bool
force_UL256qam_off
;
bool
use_deltaMCS
;
//int pusch_TargetSNRx10;
//int pucch_TargetSNRx10;
}
nr_mac_config_t
;
...
...
@@ -383,6 +385,7 @@ typedef struct NR_sched_pusch {
int
time_domain_allocation
;
NR_tda_info_t
tda_info
;
NR_pusch_dmrs_t
dmrs_info
;
int
phr_txpower_calc
;
}
NR_sched_pusch_t
;
typedef
struct
NR_sched_srs
{
...
...
@@ -551,6 +554,9 @@ typedef struct {
/// PHR info: power headroom level (dB)
int
ph
;
/// PHR info: power headroom level (dB) for 1 PRB
int
ph0
;
/// PHR info: nominal UE transmit power levels (dBm)
int
pcmax
;
...
...
@@ -649,6 +655,9 @@ typedef struct NR_mac_stats {
int
cumul_rsrp
;
uint8_t
num_rsrp_meas
;
char
srs_stats
[
50
];
// Statistics may differ depending on SRS usage
int
pusch_snrx10
;
int
deltaMCS
;
int
NPRB
;
}
NR_mac_stats_t
;
typedef
struct
NR_bler_options
{
...
...
openair2/RRC/NR/nr_rrc_config.c
View file @
5686b2a2
...
...
@@ -1200,6 +1200,7 @@ static void set_dl_mcs_table(int scs,
}
static
struct
NR_SetupRelease_PUSCH_Config
*
config_pusch
(
NR_PUSCH_Config_t
*
pusch_Config
,
const
bool
use_deltaMCS
,
const
NR_ServingCellConfigCommon_t
*
scc
,
const
NR_UE_NR_Capability_t
*
uecap
)
{
...
...
@@ -1256,9 +1257,12 @@ static struct NR_SetupRelease_PUSCH_Config *config_pusch(NR_PUSCH_Config_t *pusc
asn1cSeqAdd
(
&
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToAddModList
->
list
,
plrefRS
);
pusch_Config
->
pusch_PowerControl
->
pathlossReferenceRSToReleaseList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
twoPUSCH_PC_AdjustmentStates
=
NULL
;
if
(
!
pusch_Config
->
pusch_PowerControl
->
deltaMCS
)
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
));
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
NR_PUSCH_PowerControl__deltaMCS_enabled
;
if
(
use_deltaMCS
)
{
if
(
!
pusch_Config
->
pusch_PowerControl
->
deltaMCS
)
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
));
*
pusch_Config
->
pusch_PowerControl
->
deltaMCS
=
NR_PUSCH_PowerControl__deltaMCS_enabled
;
}
else
free
(
pusch_Config
->
pusch_PowerControl
->
deltaMCS
);
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToAddModList
=
NULL
;
pusch_Config
->
pusch_PowerControl
->
sri_PUSCH_MappingToReleaseList
=
NULL
;
pusch_Config
->
frequencyHopping
=
NULL
;
...
...
@@ -1470,7 +1474,7 @@ static void config_uplinkBWP(NR_BWP_Uplink_t *ubwp,
pusch_Config
=
clone_pusch_config
(
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
bwp_loop
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
);
}
ubwp
->
bwp_Dedicated
->
pusch_Config
=
config_pusch
(
pusch_Config
,
scc
,
configuration
->
force_
256qam_off
?
NULL
:
uecap
);
ubwp
->
bwp_Dedicated
->
pusch_Config
=
config_pusch
(
pusch_Config
,
configuration
->
use_deltaMCS
,
scc
,
configuration
->
force_UL
256qam_off
?
NULL
:
uecap
);
long
maxMIMO_Layers
=
servingcellconfigdedicated
&&
servingcellconfigdedicated
->
uplinkConfig
...
...
@@ -2341,7 +2345,7 @@ static NR_SpCellConfig_t *get_initial_SpCellConfig(int uid,
config_pucch_resset1
(
pucch_Config
,
NULL
);
set_pucch_power_config
(
pucch_Config
,
configuration
->
do_CSIRS
);
initialUplinkBWP
->
pusch_Config
=
config_pusch
(
NULL
,
scc
,
NULL
);
initialUplinkBWP
->
pusch_Config
=
config_pusch
(
NULL
,
configuration
->
use_deltaMCS
,
scc
,
NULL
);
long
maxMIMO_Layers
=
uplinkConfig
&&
uplinkConfig
->
pusch_ServingCellConfig
&&
uplinkConfig
->
pusch_ServingCellConfig
->
choice
.
setup
->
ext1
...
...
@@ -2665,7 +2669,7 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
scc
);
NR_BWP_UplinkDedicated_t
*
ul_bwp_Dedicated
=
SpCellConfig
->
spCellConfigDedicated
->
uplinkConfig
->
initialUplinkBWP
;
set_ul_mcs_table
(
configuration
->
force_256qam_off
?
NULL
:
uecap
,
scc
,
ul_bwp_Dedicated
->
pusch_Config
->
choice
.
setup
);
set_ul_mcs_table
(
configuration
->
force_
UL
256qam_off
?
NULL
:
uecap
,
scc
,
ul_bwp_Dedicated
->
pusch_Config
->
choice
.
setup
);
struct
NR_ServingCellConfig__downlinkBWP_ToAddModList
*
DL_BWP_list
=
SpCellConfig
->
spCellConfigDedicated
->
downlinkBWP_ToAddModList
;
...
...
@@ -2683,7 +2687,7 @@ void update_cellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig,
int
bwp_size
=
NRRIV2BW
(
ul_bwp
->
bwp_Common
->
genericParameters
.
locationAndBandwidth
,
MAX_BWP_SIZE
);
if
(
ul_bwp
->
bwp_Dedicated
->
pusch_Config
)
{
NR_PUSCH_Config_t
*
pusch_Config
=
ul_bwp
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
;
set_ul_mcs_table
(
configuration
->
force_256qam_off
?
NULL
:
uecap
,
scc
,
pusch_Config
);
set_ul_mcs_table
(
configuration
->
force_
UL
256qam_off
?
NULL
:
uecap
,
scc
,
pusch_Config
);
if
(
pusch_Config
->
maxRank
==
NULL
)
{
pusch_Config
->
maxRank
=
calloc
(
1
,
sizeof
(
*
pusch_Config
->
maxRank
));
}
...
...
@@ -2878,7 +2882,7 @@ NR_CellGroupConfig_t *get_default_secondaryCellGroup(const NR_ServingCellConfigC
pusch_Config
=
clone_pusch_config
(
servingcellconfigdedicated
->
uplinkConfig
->
uplinkBWP_ToAddModList
->
list
.
array
[
0
]
->
bwp_Dedicated
->
pusch_Config
->
choice
.
setup
);
}
initialUplinkBWP
->
pusch_Config
=
config_pusch
(
pusch_Config
,
servingcellconfigcommon
,
uecap
);
initialUplinkBWP
->
pusch_Config
=
config_pusch
(
pusch_Config
,
configuration
->
use_deltaMCS
,
servingcellconfigcommon
,
uecap
);
long
maxMIMO_Layers
=
servingcellconfigdedicated
->
uplinkConfig
&&
servingcellconfigdedicated
->
uplinkConfig
->
pusch_ServingCellConfig
...
...
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