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
alex037yang
OpenXG-RAN
Commits
3cb68929
Commit
3cb68929
authored
Feb 02, 2021
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
CU/DU tested with phoenix + B38 RRU (CU and DU via lo)
parent
849c5e0c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
27 additions
and
18 deletions
+27
-18
openair2/ENB_APP/MACRLC_paramdef.h
openair2/ENB_APP/MACRLC_paramdef.h
+9
-7
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+1
-0
openair2/F1AP/f1ap_du_task.c
openair2/F1AP/f1ap_du_task.c
+1
-1
openair2/LAYER2/MAC/eNB_scheduler_RA.c
openair2/LAYER2/MAC/eNB_scheduler_RA.c
+3
-3
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+10
-5
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+2
-2
openair2/LAYER2/MAC/mac.h
openair2/LAYER2/MAC/mac.h
+1
-0
No files found.
openair2/ENB_APP/MACRLC_paramdef.h
View file @
3cb68929
...
...
@@ -56,10 +56,10 @@
#define CONFIG_STRING_MACRLC_LOCAL_S_PORTD "local_s_portd"
#define CONFIG_STRING_MACRLC_REMOTE_S_PORTD "remote_s_portd"
#define CONFIG_STRING_MACRLC_SCHED_MODE "scheduler_mode"
#define CONFIG_
MACRLC_PUSCH10xSNR
"puSch10xSnr"
#define CONFIG_
MACRLC_PUCCH10xSNR
"puCch10xSnr"
#define CONFIG_
STRING_MACRLC_PUSCH10xSNR
"puSch10xSnr"
#define CONFIG_
STRING_MACRLC_PUCCH10xSNR
"puCch10xSnr"
#define CONFIG_STRING_MACRLC_DEFAULT_SCHED_DL_ALGO "default_sched_dl_algo"
#define CONFIG_STRING_MACRLC_UE_MULTIPLE_MAX "ue_multiple_max"
/*-------------------------------------------------------------------------------------------------------------------------------------------------------*/
/* MacRLC configuration parameters */
/* optname helpstr paramflags XXXptr defXXXval type numelt */
...
...
@@ -83,10 +83,11 @@
{CONFIG_STRING_MACRLC_LOCAL_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \
{CONFIG_STRING_MACRLC_REMOTE_S_PORTD, NULL, 0, uptr:NULL, defintval:50021, TYPE_UINT, 0}, \
{CONFIG_STRING_MACRLC_SCHED_MODE, NULL, 0, strptr:NULL, defstrval:"default", TYPE_STRING, 0}, \
{CONFIG_MACRLC_PUSCH10xSNR, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \
{CONFIG_MACRLC_PUCCH10xSNR, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \
{CONFIG_STRING_MACRLC_DEFAULT_SCHED_DL_ALGO, NULL, 0, strptr:NULL, defstrval:"round_robin_dl", TYPE_STRING, 0}, \
}
{CONFIG_STRING_MACRLC_PUSCH10xSNR, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \
{CONFIG_STRING_MACRLC_PUCCH10xSNR, NULL, 0, iptr:NULL, defintval:200, TYPE_INT, 0}, \
{CONFIG_STRING_MACRLC_DEFAULT_SCHED_DL_ALGO, NULL, 0, strptr:NULL, defstrval:"round_robin_dl", TYPE_STRING, 0}, \
{CONFIG_STRING_MACRLC_UE_MULTIPLE_MAX, NULL, 0, iptr:NULL, defintval:4, TYPE_INT, 0}}
#define MACRLC_CC_IDX 0
#define MACRLC_TRANSPORT_N_PREFERENCE_IDX 1
#define MACRLC_LOCAL_N_IF_NAME_IDX 2
...
...
@@ -108,6 +109,7 @@
#define MACRLC_PUSCH10xSNR_IDX 18
#define MACRLC_PUCCH10xSNR_IDX 19
#define MACRLC_DEFAULT_SCHED_DL_ALGO_IDX 20
#define MACRLC_UE_MULTIPLE_MAX_IDX 21
/*---------------------------------------------------------------------------------------------------------------------------------------------------------*/
#endif
openair2/ENB_APP/enb_config.c
View file @
3cb68929
...
...
@@ -216,6 +216,7 @@ void RCconfig_macrlc(int macrlc_has_f1[MAX_MAC_INST]) {
for
(
j
=
0
;
j
<
RC
.
nb_macrlc_inst
;
j
++
)
{
RC
.
mac
[
j
]
->
puSch10xSnr
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_PUSCH10xSNR_IDX
].
iptr
);
RC
.
mac
[
j
]
->
puCch10xSnr
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_PUCCH10xSNR_IDX
].
iptr
);
RC
.
mac
[
j
]
->
ue_multiple_max
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_UE_MULTIPLE_MAX_IDX
].
iptr
);
RC
.
nb_mac_CC
[
j
]
=
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_CC_IDX
].
iptr
);
if
(
strcmp
(
*
(
MacRLC_ParamList
.
paramarray
[
j
][
MACRLC_TRANSPORT_N_PREFERENCE_IDX
].
strptr
),
"local_RRC"
)
==
0
)
{
...
...
openair2/F1AP/f1ap_du_task.c
View file @
3cb68929
...
...
@@ -86,7 +86,7 @@ void du_task_handle_sctp_association_resp(instance_t instance, sctp_new_associat
DevAssert
(
sctp_new_association_resp
!=
NULL
);
if
(
sctp_new_association_resp
->
sctp_state
!=
SCTP_STATE_ESTABLISHED
)
{
LOG_
W
(
F1AP
,
"Received unsuccessful result for SCTP association (%u), instance %d, cnx_id %u
\n
"
,
LOG_
E
(
F1AP
,
"Received unsuccessful result for SCTP association (%u), instance %d, cnx_id %u
\n
"
,
sctp_new_association_resp
->
sctp_state
,
instance
,
sctp_new_association_resp
->
ulp_cnx_id
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_RA.c
View file @
3cb68929
...
...
@@ -908,7 +908,7 @@ generate_Msg4(module_id_t module_idP,
}
// rach_resource_type > 0
else
{
// This is normal LTE case
LOG_
I
(
MAC
,
"generate_Msg4 ra->Msg4_frame SFN/SF: %d.%d, frameP SFN/SF: %d.%d FOR eNB_Mod: %d
\n
"
,
ra
->
Msg4_frame
,
ra
->
Msg4_subframe
,
frameP
,
subframeP
,
module_idP
);
LOG_
D
(
MAC
,
"generate_Msg4 ra->Msg4_frame SFN/SF: %d.%d, frameP SFN/SF: %d.%d FOR eNB_Mod: %d
\n
"
,
ra
->
Msg4_frame
,
ra
->
Msg4_subframe
,
frameP
,
subframeP
,
module_idP
);
if
((
ra
->
Msg4_frame
==
frameP
)
&&
(
ra
->
Msg4_subframe
==
subframeP
))
{
// Get RRCConnectionSetup for Piggyback
...
...
@@ -925,7 +925,7 @@ generate_Msg4(module_id_t module_idP,
module_idP
,
CC_idP
,
frameP
,
subframeP
,
UE_id
,
rrc_sdu_length
);
// AssertFatal(rrc_sdu_length > 0,
// "[MAC][eNB Scheduler] CCCH not allocated, rrc_sdu_length: %d\n", rrc_sdu_length);
LOG_
I
(
MAC
,
"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 with RRC Piggyback (RNTI %x)
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Generating Msg4 with RRC Piggyback (RNTI %x)
\n
"
,
module_idP
,
CC_idP
,
frameP
,
subframeP
,
ra
->
rnti
);
/// Choose first 4 RBs for Msg4, should really check that these are free!
first_rb
=
0
;
...
...
@@ -1093,7 +1093,7 @@ generate_Msg4(module_id_t module_idP,
}
}
// CCE Allocation feasible
}
else
{
LOG_
I
(
MAC
,
LOG_
D
(
MAC
,
"eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: Delaying Msg4 for RRC Piggyback (RNTI %x)
\n
"
,
module_idP
,
CC_idP
,
frameP
,
subframeP
,
ra
->
rnti
);
ra
->
Msg4_subframe
++
;
...
...
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
View file @
3cb68929
...
...
@@ -193,7 +193,7 @@ void dlsch_scheduler_pre_ue_select_fairRR(
// Initialization
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
dlsch_ue_max_num
[
CC_id
]
=
(
uint16_t
)
RC
.
rrc
[
module_idP
]
->
configuration
.
radioresourceconfig
[
CC_id
].
ue_multiple_max
;
dlsch_ue_max_num
[
CC_id
]
=
eNB
->
ue_multiple_max
;
// save origin DL PDU number
DL_req
=
&
eNB
->
DL_req
[
CC_id
].
dl_config_request_body
;
saved_dlsch_dci
[
CC_id
]
=
DL_req
->
number_pdu
;
...
...
@@ -2216,7 +2216,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
//save ulsch dci number
saved_ulsch_dci
[
CC_id
]
=
eNB
->
HI_DCI0_req
[
CC_id
][
subframeP
].
hi_dci0_request_body
.
number_of_dci
;
// maximum multiplicity number
ulsch_ue_max_num
[
CC_id
]
=
RC
.
rrc
[
module_idP
]
->
configuration
.
radioresourceconfig
[
CC_id
].
ue_multiple_max
;
ulsch_ue_max_num
[
CC_id
]
=
eNB
->
ue_multiple_max
;
cc_id_flag
[
CC_id
]
=
0
;
ue_first_num
[
CC_id
]
=
0
;
ul_inactivity_num
[
CC_id
]
=
0
;
...
...
@@ -2243,6 +2243,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
// UL DCI
HI_DCI0_req
=
&
eNB
->
HI_DCI0_req
[
CC_id
][
subframeP
].
hi_dci0_request_body
;
if
(
(
ulsch_ue_select
[
CC_id
].
ue_num
>=
ulsch_ue_max_num
[
CC_id
])
||
(
cc_id_flag
[
CC_id
]
==
1
)
)
{
cc_id_flag
[
CC_id
]
=
1
;
HI_DCI0_req
->
number_of_dci
=
saved_ulsch_dci
[
CC_id
];
...
...
@@ -2257,12 +2258,14 @@ void ulsch_scheduler_pre_ue_select_fairRR(
}
}
cc
=
&
eNB
->
common_channels
[
CC_id
];
//harq_pid
harq_pid
=
subframe2harqpid
(
cc
,(
frameP
+
(
sched_subframeP
<
subframeP
?
1
:
0
)),
sched_subframeP
);
//round
round
=
UE_info
->
UE_sched_ctrl
[
UE_id
].
round_UL
[
CC_id
][
harq_pid
];
if
(
round
>
0
)
{
hi_dci0_pdu
=
&
HI_DCI0_req
->
hi_dci0_pdu_list
[
HI_DCI0_req
->
number_of_dci
+
HI_DCI0_req
->
number_of_hi
];
format_flag
=
2
;
...
...
@@ -2290,6 +2293,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
if
(
bytes_to_schedule
<
0
)
bytes_to_schedule
=
0
;
if
(
UE_id
>
last_ulsch_ue_id
[
CC_id
]
&&
((
ulsch_ue_select
[
CC_id
].
ue_num
+
ue_first_num
[
CC_id
])
<
ulsch_ue_max_num
[
CC_id
])
)
{
if
(
bytes_to_schedule
>
0
)
{
first_ue_id
[
CC_id
][
ue_first_num
[
CC_id
]]
=
UE_id
;
...
...
@@ -2307,7 +2311,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
UE_sched_ctl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
rrc_status
=
mac_eNB_get_rrc_status
(
module_idP
,
rnti
);
LOG_D
(
MAC
,
"%d.%d : rnti %x rrc_status %d, ul_inactivity %d, ul_scheduled %d
\n
"
,
frameP
,
subframeP
,
rnti
,
rrc_status
,
UE_sched_ctl
->
ul_inactivity_timer
,
UE_sched_ctl
->
ul_scheduled
);
if
(
((
UE_sched_ctl
->
ul_inactivity_timer
>
20
)
&&
(
UE_sched_ctl
->
ul_scheduled
==
0
))
||
((
UE_sched_ctl
->
ul_inactivity_timer
>
10
)
&&
(
UE_sched_ctl
->
ul_scheduled
==
0
)
&&
(
rrc_status
<
RRC_CONNECTED
))
||
((
UE_sched_ctl
->
cqi_req_timer
>
300
)
&&
((
rrc_status
>=
RRC_CONNECTED
)))
)
{
...
...
@@ -2417,6 +2421,7 @@ void ulsch_scheduler_pre_ue_select_fairRR(
if
(
bytes_to_schedule
<
0
)
bytes_to_schedule
=
0
;
rrc_status
=
mac_eNB_get_rrc_status
(
module_idP
,
rnti
);
if
(
(
bytes_to_schedule
>
0
)
||
(
UE_info
->
UE_template
[
CC_id
][
UE_id
].
ul_SR
>
0
)
||
((
UE_sched_ctl
->
ul_inactivity_timer
>
20
)
&&
(
UE_sched_ctl
->
ul_scheduled
==
0
))
||
((
UE_sched_ctl
->
ul_inactivity_timer
>
10
)
&&
(
UE_sched_ctl
->
ul_scheduled
==
0
)
&&
(
rrc_status
<
RRC_CONNECTED
))
||
...
...
@@ -2892,7 +2897,7 @@ void schedule_ulsch_rnti_fairRR(module_id_t module_idP,
nfapi_hi_dci0_request_pdu_t
*
hi_dci0_pdu
;
nfapi_ul_config_request_body_t
*
ul_req_tmp
;
nfapi_ul_config_ulsch_harq_information
*
ulsch_harq_information
;
LOG_D
(
MAC
,
"entering ulsch preprocesor
\n
"
);
LOG_D
(
MAC
,
"entering ulsch preprocesor
for %d.%d
\n
"
,
sched_frame
,
sched_subframeP
);
ulsch_scheduler_pre_processor_fairRR
(
module_idP
,
frameP
,
subframeP
,
...
...
@@ -3103,7 +3108,7 @@ void schedule_ulsch_rnti_fairRR(module_id_t module_idP,
T_INT
(
UE_template
->
TBS_UL
[
harq_pid
]),
T_INT
(
ndi
));
if
(
mac_eNB_get_rrc_status
(
module_idP
,
rnti
)
<
RRC_CONNECTED
)
LOG_
D
(
MAC
,
"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled UE %d (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)
\n
"
,
LOG_
I
(
MAC
,
"[eNB %d][PUSCH %d/%x] CC_id %d Frame %d subframeP %d Scheduled UE %d (mcs %d, first rb %d, nb_rb %d, rb_table_index %d, TBS %d, harq_pid %d)
\n
"
,
module_idP
,
harq_pid
,
rnti
,
CC_id
,
frameP
,
subframeP
,
UE_id
,
UE_template
->
mcs_UL
[
harq_pid
],
first_rb
[
CC_id
],
rb_table
[
rb_table_index
],
rb_table_index
,
UE_template
->
TBS_UL
[
harq_pid
],
harq_pid
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
3cb68929
...
...
@@ -410,7 +410,7 @@ rx_sdu(const module_id_t enb_mod_idP,
/* Receiving CRNTI means that the current rnti has to go away */
if
(
old_UE_id
!=
-
1
)
{
if
(
mac_eNB_get_rrc_status
(
enb_mod_idP
,
old_rnti
)
==
RRC_HO_EXECUTION
)
{
LOG_
I
(
MAC
,
"[eNB %d] Frame %d, Subframe %d CC_id %d : (rnti %x UE_id %d) Handover case
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d] Frame %d, Subframe %d CC_id %d : (rnti %x UE_id %d) Handover case
\n
"
,
enb_mod_idP
,
frameP
,
subframeP
,
...
...
@@ -474,7 +474,7 @@ rx_sdu(const module_id_t enb_mod_idP,
/* Received a new rnti */
if
(
ret
==
0
)
{
ra
->
state
=
MSGCRNTI
;
LOG_
I
(
MAC
,
"[eNB %d] Frame %d, Subframe %d CC_id %d : (rnti %x UE_id %d) Received rnti(Msg4)
\n
"
,
LOG_
D
(
MAC
,
"[eNB %d] Frame %d, Subframe %d CC_id %d : (rnti %x UE_id %d) Received rnti(Msg4)
\n
"
,
enb_mod_idP
,
frameP
,
subframeP
,
...
...
openair2/LAYER2/MAC/mac.h
View file @
3cb68929
...
...
@@ -1434,6 +1434,7 @@ typedef struct eNB_MAC_INST_s {
int32_t
puSch10xSnr
;
int32_t
puCch10xSnr
;
int
ue_multiple_max
;
pthread_t
mac_stats_thread
;
}
eNB_MAC_INST
;
...
...
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