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
Michael Black
OpenXG-RAN
Commits
99e006f7
Commit
99e006f7
authored
Dec 15, 2021
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
testing with UM/No Harq
parent
171408bc
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
28 additions
and
27 deletions
+28
-27
openair2/GNB_APP/MACRLC_nr_paramdef.h
openair2/GNB_APP/MACRLC_nr_paramdef.h
+3
-2
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+2
-0
openair2/GNB_APP/gnb_paramdef.h
openair2/GNB_APP/gnb_paramdef.h
+4
-2
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+3
-3
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+3
-3
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+1
-0
openair2/RRC/NR/MESSAGES/asn1_msg.c
openair2/RRC/NR/MESSAGES/asn1_msg.c
+7
-14
openair2/RRC/NR/MESSAGES/asn1_msg.h
openair2/RRC/NR/MESSAGES/asn1_msg.h
+1
-1
openair2/RRC/NR/nr_rrc_defs.h
openair2/RRC/NR/nr_rrc_defs.h
+1
-0
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+2
-1
No files found.
openair2/GNB_APP/MACRLC_nr_paramdef.h
View file @
99e006f7
...
...
@@ -64,7 +64,7 @@
#define CONFIG_STRING_MACRLC_DL_BLER_TARGET_LOWER "dl_bler_target_lower"
#define CONFIG_STRING_MACRLC_DL_RD2_BLER_THRESHOLD "dl_rd2_bler_threshold"
#define CONFIG_STRING_MACRLC_DL_MAX_MCS "dl_max_mcs"
#define CONFIG_STRING_MACRLC_HARQ_ROUND_MAX "harq_round_max"
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* MacRLC configuration parameters */
...
...
@@ -97,6 +97,7 @@
{CONFIG_STRING_MACRLC_DL_BLER_TARGET_LOWER, "Lower threshold of BLER to increase DL MCS", 0, dblptr:NULL, defdblval:0.05, TYPE_DOUBLE, 0}, \
{CONFIG_STRING_MACRLC_DL_RD2_BLER_THRESHOLD, "Threshold of RD2/RETX2 BLER to decrease DL MCS", 0, dblptr:NULL, defdblval:0.01, TYPE_DOUBLE, 0}, \
{CONFIG_STRING_MACRLC_DL_MAX_MCS, "Maximum DL MCS that should be used", 0, u8ptr:NULL, defintval:28, TYPE_UINT8, 0}, \
{CONFIG_STRING_MACRLC_HARQ_ROUND_MAX, "Maximum number of HARQ rounds", 0, u8ptr:NULL, defintval:4, TYPE_UINT8, 0} \
}
#define MACRLC_CC_IDX 0
#define MACRLC_TRANSPORT_N_PREFERENCE_IDX 1
...
...
@@ -124,6 +125,6 @@
#define MACRLC_DL_BLER_TARGET_LOWER_IDX 23
#define MACRLC_DL_RD2_BLER_THRESHOLD_IDX 24
#define MACRLC_DL_MAX_MCS_IDX 25
#define MACRLC_HARQ_ROUND_MAX_IDX 26
/*---------------------------------------------------------------------------------------------------------------------------------------------------------*/
#endif
openair2/GNB_APP/gnb_config.c
View file @
99e006f7
...
...
@@ -759,6 +759,7 @@ void RCconfig_nr_macrlc() {
RC
.
nrmac
[
j
]
->
dl_bler_target_lower
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_DL_BLER_TARGET_LOWER_IDX
].
dblptr
);
RC
.
nrmac
[
j
]
->
dl_rd2_bler_threshold
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_DL_RD2_BLER_THRESHOLD_IDX
].
dblptr
);
RC
.
nrmac
[
j
]
->
dl_max_mcs
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_DL_MAX_MCS_IDX
].
u8ptr
);
RC
.
nrmac
[
j
]
->
harq_round_max
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_HARQ_ROUND_MAX_IDX
].
u8ptr
);
RC
.
nrmac
[
j
]
->
num_ulprbbl
=
num_prbbl
;
LOG_I
(
NR_MAC
,
"Blacklisted PRBS %d
\n
"
,
num_prbbl
);
memcpy
(
RC
.
nrmac
[
j
]
->
ulprbbl
,
prbbl
,
275
*
sizeof
(
prbbl
[
0
]));
...
...
@@ -1041,6 +1042,7 @@ void RCconfig_NRRRC(MessageDef *msg_p, uint32_t i, gNB_RRC_INST *rrc) {
rrc
->
nr_cellid
=
(
uint64_t
)
*
(
GNBParamList
.
paramarray
[
i
][
GNB_NRCELLID_IDX
].
u64ptr
);
rrc
->
um_on_default_drb
=
*
(
GNBParamList
.
paramarray
[
i
][
GNB_UMONDEFAULTDRB_IDX
].
uptr
);
if
(
strcmp
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
),
"local_mac"
)
==
0
)
{
}
else
if
(
strcmp
(
*
(
GNBParamList
.
paramarray
[
i
][
GNB_TRANSPORT_S_PREFERENCE_IDX
].
strptr
),
"cudu"
)
==
0
)
{
...
...
openair2/GNB_APP/gnb_paramdef.h
View file @
99e006f7
...
...
@@ -121,7 +121,7 @@ typedef enum {
#define GNB_CONFIG_STRING_NRCELLID "nr_cellid"
#define GNB_CONFIG_STRING_MINRXTXTIMEPDSCH "min_rxtxtime_pdsch"
#define GNB_CONFIG_STRING_ULPRBBLACKLIST "ul_prbblacklist"
#define GNB_CONFIG_STRING_UMONDEFAULTDRB "um_on_default_drb"
/*-----------------------------------------------------------------------------------------------------------------------------------------*/
/* cell configuration parameters */
...
...
@@ -149,7 +149,8 @@ typedef enum {
{GNB_CONFIG_STRING_DOCSIRS, NULL, 0, iptr:NULL, defintval:0, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_NRCELLID, NULL, 0, u64ptr:NULL, defint64val:1, TYPE_UINT64, 0}, \
{GNB_CONFIG_STRING_MINRXTXTIMEPDSCH, NULL, 0, iptr:NULL, defintval:2, TYPE_INT, 0}, \
{GNB_CONFIG_STRING_ULPRBBLACKLIST, NULL, 0, strptr:NULL, defstrval:"", TYPE_STRING, 0} \
{GNB_CONFIG_STRING_ULPRBBLACKLIST, NULL, 0, strptr:NULL, defstrval:"", TYPE_STRING, 0}, \
{GNB_CONFIG_STRING_UMONDEFAULTDRB, NULL, 0, uptr:NULL, defuintval:0, TYPE_UINT, 0} \
}
#define GNB_GNB_ID_IDX 0
...
...
@@ -174,6 +175,7 @@ typedef enum {
#define GNB_NRCELLID_IDX 19
#define GNB_MINRXTXTIMEPDSCH_IDX 20
#define GNB_ULPRBBLACKLIST_IDX 21
#define GNB_UMONDEFAULTDRB_IDX 22
#define TRACKING_AREA_CODE_OKRANGE {0x0001,0xFFFD}
#define GNBPARAMS_CHECK { \
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
99e006f7
...
...
@@ -611,7 +611,7 @@ bool allocate_dl_retransmission(module_id_t module_id,
/* Find a free CCE */
bool
freeCCE
=
find_free_CCE
(
module_id
,
slot
,
UE_id
);
if
(
!
freeCCE
)
{
LOG_
D
(
MAC
,
"%4d.%2d
could not find CCE for DL DCI retransmission UE %d/RNTI %04x
\n
"
,
LOG_
I
(
MAC
,
"%4d.%2d allocate_dl_transmission:
could not find CCE for DL DCI retransmission UE %d/RNTI %04x
\n
"
,
frame
,
slot
,
UE_id
,
UE_info
->
rnti
[
UE_id
]);
return
false
;
}
...
...
@@ -746,7 +746,7 @@ void pf_dl(module_id_t module_id,
/* Find a free CCE */
bool
freeCCE
=
find_free_CCE
(
module_id
,
slot
,
UE_id
);
if
(
!
freeCCE
)
{
LOG_
D
(
NR_MAC
,
"%4d.%2d could not find CCE for DL DCI UE %d/RNTI %04x
\n
"
,
frame
,
slot
,
UE_id
,
rnti
);
LOG_
I
(
NR_MAC
,
"%4d.%2d could not find CCE for DL DCI UE %d/RNTI %04x
\n
"
,
frame
,
slot
,
UE_id
,
rnti
);
continue
;
}
/* reduce max_num_ue once we are sure UE can be allocated, i.e., has CCE */
...
...
@@ -963,7 +963,7 @@ void nr_schedule_ue_spec(module_id_t module_id,
harq
->
is_waiting
=
true
;
UE_info
->
mac_stats
[
UE_id
].
dlsch_rounds
[
harq
->
round
]
++
;
LOG_
D
(
NR_MAC
,
LOG_
I
(
NR_MAC
,
"%4d.%2d [DLSCH/PDSCH/PUCCH] UE %d RNTI %04x DCI L %d start %3d RBs %3d startSymbol %2d nb_symbol %2d dmrspos %x MCS %2d TBS %4d HARQ PID %2d round %d RV %d NDI %d dl_data_to_ULACK %d (%d.%d) PUCCH allocation %d TPC %d
\n
"
,
frame
,
slot
,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
99e006f7
...
...
@@ -576,7 +576,7 @@ static void handle_dl_harq(module_id_t mod_id,
add_tail_nr_list
(
&
UE_info
->
UE_sched_ctrl
[
UE_id
].
available_dl_harq
,
harq_pid
);
harq
->
round
=
0
;
harq
->
ndi
^=
1
;
}
else
if
(
harq
->
round
>=
MAX_HARQ_ROUNDS
-
1
)
{
}
else
if
(
harq
->
round
>=
RC
.
nrmac
[
mod_id
]
->
harq_round_max
-
1
)
{
add_tail_nr_list
(
&
UE_info
->
UE_sched_ctrl
[
UE_id
].
available_dl_harq
,
harq_pid
);
harq
->
round
=
0
;
harq
->
ndi
^=
1
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
99e006f7
...
...
@@ -550,7 +550,7 @@ void handle_nr_ul_harq(const int CC_idP,
remove_front_nr_list
(
&
sched_ctrl
->
feedback_ul_harq
);
sched_ctrl
->
ul_harq_processes
[
harq_pid
].
is_waiting
=
false
;
if
(
sched_ctrl
->
ul_harq_processes
[
harq_pid
].
round
>=
MAX_HARQ_ROUNDS
-
1
)
{
if
(
sched_ctrl
->
ul_harq_processes
[
harq_pid
].
round
>=
gNB_mac
->
harq_round_max
-
1
)
{
abort_nr_ul_harq
(
mod_id
,
UE_id
,
harq_pid
);
}
else
{
sched_ctrl
->
ul_harq_processes
[
harq_pid
].
round
++
;
...
...
@@ -571,7 +571,7 @@ void handle_nr_ul_harq(const int CC_idP,
harq_pid
,
crc_pdu
->
rnti
);
add_tail_nr_list
(
&
sched_ctrl
->
available_ul_harq
,
harq_pid
);
}
else
if
(
harq
->
round
>=
MAX_HARQ_ROUNDS
-
1
)
{
}
else
if
(
harq
->
round
>=
gNB_mac
->
harq_round_max
-
1
)
{
abort_nr_ul_harq
(
mod_id
,
UE_id
,
harq_pid
);
LOG_D
(
NR_MAC
,
"RNTI %04x: Ulharq id %d crc failed in all rounds
\n
"
,
...
...
@@ -1481,7 +1481,7 @@ void nr_schedule_ulsch(module_id_t module_id, frame_t frame, sub_frame_t slot)
sched_ctrl
->
last_ul_frame
=
sched_pusch
->
frame
;
sched_ctrl
->
last_ul_slot
=
sched_pusch
->
slot
;
LOG_
D
(
NR_MAC
,
LOG_
I
(
NR_MAC
,
"ULSCH/PUSCH: %4d.%2d RNTI %04x UL sched %4d.%2d DCI L %d start %2d RBS %3d startSymbol %2d nb_symbol %2d dmrs_pos %x MCS %2d TBS %4d HARQ PID %2d round %d RV %d NDI %d est %6d sched %6d est BSR %6d TPC %d
\n
"
,
frame
,
slot
,
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
99e006f7
...
...
@@ -781,6 +781,7 @@ typedef struct gNB_MAC_INST_s {
double
dl_bler_target_lower
;
double
dl_rd2_bler_threshold
;
uint8_t
dl_max_mcs
;
uint8_t
harq_round_max
;
}
gNB_MAC_INST
;
#endif
/*__LAYER2_NR_MAC_GNB_H__ */
openair2/RRC/NR/MESSAGES/asn1_msg.c
View file @
99e006f7
...
...
@@ -1258,7 +1258,7 @@ void fill_initial_SpCellConfig(rnti_t rnti,
ss2
->
nrofCandidates
=
calloc
(
1
,
sizeof
(
*
ss2
->
nrofCandidates
));
ss2
->
nrofCandidates
->
aggregationLevel1
=
NR_SearchSpace__nrofCandidates__aggregationLevel1_n0
;
ss2
->
nrofCandidates
->
aggregationLevel2
=
NR_SearchSpace__nrofCandidates__aggregationLevel2_n2
;
ss2
->
nrofCandidates
->
aggregationLevel4
=
NR_SearchSpace__nrofCandidates__aggregationLevel4_n
1
;
ss2
->
nrofCandidates
->
aggregationLevel4
=
NR_SearchSpace__nrofCandidates__aggregationLevel4_n
0
;
ss2
->
nrofCandidates
->
aggregationLevel8
=
NR_SearchSpace__nrofCandidates__aggregationLevel8_n0
;
ss2
->
nrofCandidates
->
aggregationLevel16
=
NR_SearchSpace__nrofCandidates__aggregationLevel16_n0
;
ss2
->
searchSpaceType
=
calloc
(
1
,
sizeof
(
*
ss2
->
searchSpaceType
));
...
...
@@ -1317,7 +1317,7 @@ void fill_initial_SpCellConfig(rnti_t rnti,
}
void
fill_mastercellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_CellGroupConfig_t
*
ue_context_mastercellGroup
)
{
void
fill_mastercellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_CellGroupConfig_t
*
ue_context_mastercellGroup
,
int
use_rlc_um_for_drb
)
{
cellGroupConfig
->
cellGroupId
=
0
;
cellGroupConfig
->
rlc_BearerToReleaseList
=
NULL
;
...
...
@@ -1377,18 +1377,11 @@ void fill_mastercellGroupConfig(NR_CellGroupConfig_t *cellGroupConfig, NR_CellGr
rlc_BearerConfig_drb
->
servedRadioBearer
->
choice
.
drb_Identity
=
1
;
rlc_BearerConfig_drb
->
reestablishRLC
=
NULL
;
rlc_Config_drb
=
calloc
(
1
,
sizeof
(
NR_RLC_Config_t
));
rlc_Config_drb
->
present
=
NR_RLC_Config_PR_am
;
rlc_Config_drb
->
choice
.
am
=
calloc
(
1
,
sizeof
(
*
rlc_Config_drb
->
choice
.
am
));
rlc_Config_drb
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
=
calloc
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
*
(
rlc_Config_drb
->
choice
.
am
->
dl_AM_RLC
.
sn_FieldLength
)
=
NR_SN_FieldLengthAM_size18
;
rlc_Config_drb
->
choice
.
am
->
dl_AM_RLC
.
t_Reassembly
=
NR_T_Reassembly_ms80
;
rlc_Config_drb
->
choice
.
am
->
dl_AM_RLC
.
t_StatusProhibit
=
NR_T_StatusProhibit_ms10
;
rlc_Config_drb
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
=
calloc
(
1
,
sizeof
(
NR_SN_FieldLengthAM_t
));
*
(
rlc_Config_drb
->
choice
.
am
->
ul_AM_RLC
.
sn_FieldLength
)
=
NR_SN_FieldLengthAM_size18
;
rlc_Config_drb
->
choice
.
am
->
ul_AM_RLC
.
t_PollRetransmit
=
NR_T_PollRetransmit_ms80
;
rlc_Config_drb
->
choice
.
am
->
ul_AM_RLC
.
pollPDU
=
NR_PollPDU_p64
;
rlc_Config_drb
->
choice
.
am
->
ul_AM_RLC
.
pollByte
=
NR_PollByte_kB125
;
rlc_Config_drb
->
choice
.
am
->
ul_AM_RLC
.
maxRetxThreshold
=
NR_UL_AM_RLC__maxRetxThreshold_t8
;
if
(
use_rlc_um_for_drb
)
nr_drb_config
(
rlc_Config_drb
,
NR_RLC_Config_PR_um_Bi_Directional
);
else
nr_drb_config
(
rlc_Config_drb
,
NR_RLC_Config_PR_am
);
rlc_BearerConfig_drb
->
rlc_Config
=
rlc_Config_drb
;
logicalChannelConfig_drb
=
calloc
(
1
,
sizeof
(
NR_LogicalChannelConfig_t
));
logicalChannelConfig_drb
->
ul_SpecificParameters
=
calloc
(
1
,
sizeof
(
*
logicalChannelConfig_drb
->
ul_SpecificParameters
));
...
...
openair2/RRC/NR/MESSAGES/asn1_msg.h
View file @
99e006f7
...
...
@@ -99,7 +99,7 @@ void fill_initial_cellGroupConfig(rnti_t rnti,
NR_ServingCellConfigCommon_t
*
scc
,
rrc_gNB_carrier_data_t
*
carrier
);
void
fill_mastercellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_CellGroupConfig_t
*
ue_context_mastercellGroup
);
void
fill_mastercellGroupConfig
(
NR_CellGroupConfig_t
*
cellGroupConfig
,
NR_CellGroupConfig_t
*
ue_context_mastercellGroup
,
int
use_rlc_um_for_drb
);
uint8_t
do_RRCSetup
(
rrc_gNB_ue_context_t
*
const
ue_context_pP
,
uint8_t
*
const
buffer
,
...
...
openair2/RRC/NR/nr_rrc_defs.h
View file @
99e006f7
...
...
@@ -514,6 +514,7 @@ typedef struct gNB_RRC_INST_s {
int
srb1_max_retx_threshold
;
int
srb1_timer_reordering
;
int
srb1_timer_status_prohibit
;
int
um_on_default_drb
;
int
srs_enable
[
MAX_NUM_CCs
];
uint16_t
sctp_in_streams
;
uint16_t
sctp_out_streams
;
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
99e006f7
...
...
@@ -1109,7 +1109,8 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
memset
(
buffer
,
0
,
RRC_BUF_SIZE
);
cellGroupConfig
=
calloc
(
1
,
sizeof
(
NR_CellGroupConfig_t
));
fill_mastercellGroupConfig
(
cellGroupConfig
,
ue_context_pP
->
ue_context
.
masterCellGroup
);
fill_mastercellGroupConfig
(
cellGroupConfig
,
ue_context_pP
->
ue_context
.
masterCellGroup
,
rrc
->
um_on_default_drb
);
size
=
do_RRCReconfiguration
(
ctxt_pP
,
buffer
,
xid
,
*
SRB_configList2
,
...
...
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