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
canghaiwuhen
OpenXG-RAN
Commits
5df92275
Commit
5df92275
authored
Nov 01, 2019
by
masayuki.harada
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'remotes/origin/develop' into feature_tm3
parents
db3dbe89
855d7ed3
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
28 additions
and
18 deletions
+28
-18
common/utils/ocp_itti/intertask_interface.cpp
common/utils/ocp_itti/intertask_interface.cpp
+1
-1
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
+19
-1
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+2
-2
openair2/LAYER2/RLC/rlc.c
openair2/LAYER2/RLC/rlc.c
+2
-2
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+4
-12
No files found.
common/utils/ocp_itti/intertask_interface.cpp
View file @
5df92275
...
@@ -48,7 +48,7 @@ extern "C" {
...
@@ -48,7 +48,7 @@ extern "C" {
// AssertFatal(leP!=NULL,"");
// AssertFatal(leP!=NULL,"");
if
(
leP
!=
NULL
)
{
if
(
leP
!=
NULL
)
{
free
(
leP
);
free
(
leP
);
LOG_
I
(
TMR
,
"intertask_interface free_mem_block is called, after free leP is %p
\n
"
,
leP
);
LOG_
D
(
TMR
,
"intertask_interface free_mem_block is called, after free leP is %p
\n
"
,
leP
);
leP
=
NULL
;
//prevent double free
leP
=
NULL
;
//prevent double free
}
else
{
}
else
{
LOG_I
(
TMR
,
"intertask_interface free_mem_block is called, but before free leP is NULL
\n
"
);
LOG_I
(
TMR
,
"intertask_interface free_mem_block is called, but before free leP is NULL
\n
"
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_fairRR.c
View file @
5df92275
...
@@ -111,6 +111,8 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
...
@@ -111,6 +111,8 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
mac_rlc_status_resp_t
rlc_status
;
mac_rlc_status_resp_t
rlc_status
;
uint16_t
step_size
=
2
;
uint16_t
step_size
=
2
;
N_RB_DL
=
to_prb
(
RC
.
mac
[
module_idP
]
->
common_channels
[
CC_id
].
mib
->
message
.
dl_Bandwidth
);
N_RB_DL
=
to_prb
(
RC
.
mac
[
module_idP
]
->
common_channels
[
CC_id
].
mib
->
message
.
dl_Bandwidth
);
int
header_length_last
;
int
header_length_total
;
if
(
N_RB_DL
==
50
)
step_size
=
3
;
if
(
N_RB_DL
==
50
)
step_size
=
3
;
...
@@ -123,6 +125,7 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
...
@@ -123,6 +125,7 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
if
(
pre_scd_activeUE
[
UE_id
]
!=
TRUE
)
if
(
pre_scd_activeUE
[
UE_id
]
!=
TRUE
)
continue
;
continue
;
header_length_total
=
0
;
// store dlsch buffer
// store dlsch buffer
// clear logical channel interface variables
// clear logical channel interface variables
UE_template
.
dl_buffer_total
=
0
;
UE_template
.
dl_buffer_total
=
0
;
...
@@ -137,8 +140,18 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
...
@@ -137,8 +140,18 @@ void pre_scd_nb_rbs_required( module_id_t module_idP,
#endif
#endif
);
);
UE_template
.
dl_buffer_total
+=
rlc_status
.
bytes_in_buffer
;
//storing the total dlsch buffer
UE_template
.
dl_buffer_total
+=
rlc_status
.
bytes_in_buffer
;
//storing the total dlsch buffer
if
(
rlc_status
.
bytes_in_buffer
>
0
){
header_length_last
=
1
+
1
+
(
rlc_status
.
bytes_in_buffer
>=
128
);
header_length_total
+=
header_length_last
;
}
}
}
if
(
header_length_total
)
{
header_length_total
-=
header_length_last
;
header_length_total
++
;
}
UE_template
.
dl_buffer_total
+=
header_length_total
;
// end of store dlsch buffer
// end of store dlsch buffer
// assgin rbs required
// assgin rbs required
// Calculate the number of RBs required by each UE on the basis of logical channel's buffer
// Calculate the number of RBs required by each UE on the basis of logical channel's buffer
...
@@ -1834,7 +1847,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -1834,7 +1847,7 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
}
}
}
else
{
/* This is a potentially new SDU opportunity */
}
else
{
/* This is a potentially new SDU opportunity */
// 1st TB
// 1st TB
first_TB_pdu_create_flg
=
0
;
ue_sched_ctl
->
swap_flag
[
CC_id
][
harq_pid
]
=
0
;
ue_sched_ctl
->
swap_flag
[
CC_id
][
harq_pid
]
=
0
;
rlc_status
.
bytes_in_buffer
=
0
;
rlc_status
.
bytes_in_buffer
=
0
;
...
@@ -2360,6 +2373,11 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
...
@@ -2360,6 +2373,11 @@ schedule_ue_spec_fairRR(module_id_t module_idP,
first_TB_pdu_create_flg
=
1
;
first_TB_pdu_create_flg
=
1
;
}
//1st TB end
}
//1st TB end
else
{
LOG_D
(
MAC
,
"[eNB %d][DLSCH] Frame %d Subframe %d UE_id %x/%d sdu_length_total %d header_len_dcch %d header_len_dtch %d TBS %d
\n
"
,
module_idP
,
frameP
,
subframeP
,
rnti
,
UE_id
,
sdu_length_total
,
header_len_dcch
,
header_len_dtch
,
TBS
);
}
// printf("dl sfn=%d, sf=%d, buffer=%d, TBS=%d\n", frameP, subframeP, UE_list->UE_template[CC_id][UE_id].dl_buffer_total, UE_list->eNB_UE_stats[CC_id][UE_id].TBS[select_tb]);
// printf("dl sfn=%d, sf=%d, buffer=%d, TBS=%d\n", frameP, subframeP, UE_list->UE_template[CC_id][UE_id].dl_buffer_total, UE_list->eNB_UE_stats[CC_id][UE_id].TBS[select_tb]);
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
5df92275
...
@@ -200,10 +200,10 @@ rx_sdu(const module_id_t enb_mod_idP,
...
@@ -200,10 +200,10 @@ rx_sdu(const module_id_t enb_mod_idP,
UE_id
,
UE_id
,
current_rnti
);
current_rnti
);
//
if (ul_cqi > 200) { // too high energy pattern
if
(
ul_cqi
>
200
)
{
// too high energy pattern
UE_scheduling_control
->
pusch_snr
[
CC_idP
]
=
ul_cqi
;
UE_scheduling_control
->
pusch_snr
[
CC_idP
]
=
ul_cqi
;
LOG_W
(
MAC
,
"[MAC] Too high energy pattern
\n
"
);
LOG_W
(
MAC
,
"[MAC] Too high energy pattern
\n
"
);
//
}
}
if
(
UE_scheduling_control
->
round_UL
[
CC_idP
][
harq_pid
]
==
3
)
{
if
(
UE_scheduling_control
->
round_UL
[
CC_idP
][
harq_pid
]
==
3
)
{
UE_scheduling_control
->
ul_scheduled
&=
(
~
(
1
<<
harq_pid
));
UE_scheduling_control
->
ul_scheduled
&=
(
~
(
1
<<
harq_pid
));
...
...
openair2/LAYER2/RLC/rlc.c
View file @
5df92275
...
@@ -473,7 +473,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t *const ctxt_pP,
...
@@ -473,7 +473,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t *const ctxt_pP,
break
;
break
;
case
RLC_MODE_UM
:
case
RLC_MODE_UM
:
#if 0
/* TODO: this is a hack, needs better solution. Let's not use too
/* TODO: this is a hack, needs better solution. Let's not use too
* much memory and store at maximum 5 millions bytes.
* much memory and store at maximum 5 millions bytes.
*/
*/
...
@@ -482,7 +482,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t *const ctxt_pP,
...
@@ -482,7 +482,7 @@ rlc_op_status_t rlc_data_req (const protocol_ctxt_t *const ctxt_pP,
free_mem_block(sdu_pP, __func__);
free_mem_block(sdu_pP, __func__);
return RLC_OP_STATUS_OUT_OF_RESSOURCES;
return RLC_OP_STATUS_OUT_OF_RESSOURCES;
}
}
#endif
new_sdu_p
=
get_free_mem_block
(
sdu_sizeP
+
sizeof
(
struct
rlc_um_data_req_alloc
),
__func__
);
new_sdu_p
=
get_free_mem_block
(
sdu_sizeP
+
sizeof
(
struct
rlc_um_data_req_alloc
),
__func__
);
if
(
new_sdu_p
!=
NULL
)
{
if
(
new_sdu_p
!=
NULL
)
{
...
...
targets/RT/USER/lte-ru.c
View file @
5df92275
...
@@ -1935,7 +1935,6 @@ void *pre_scd_thread( void *param ) {
...
@@ -1935,7 +1935,6 @@ void *pre_scd_thread( void *param ) {
int
CC_id
;
int
CC_id
;
int
Mod_id
;
int
Mod_id
;
RU_t
*
ru
=
(
RU_t
*
)
param
;
RU_t
*
ru
=
(
RU_t
*
)
param
;
int
ret
;
// L2-emulator can work only one eNB
// L2-emulator can work only one eNB
if
(
NFAPI_MODE
==
NFAPI_MODE_VNF
)
if
(
NFAPI_MODE
==
NFAPI_MODE_VNF
)
...
@@ -1945,20 +1944,15 @@ void *pre_scd_thread( void *param ) {
...
@@ -1945,20 +1944,15 @@ void *pre_scd_thread( void *param ) {
frame
=
0
;
frame
=
0
;
subframe
=
4
;
subframe
=
4
;
thread_top_init
(
"pre_scd_thread"
,
0
,
870000
,
1000000
,
1000000
);
thread_top_init
(
"pre_scd_thread"
,
1
,
870000
,
1000000
,
1000000
);
while
(
!
oai_exit
)
{
while
(
!
oai_exit
)
{
if
(
wait_on_condition
(
&
ru
->
proc
.
mutex_pre_scd
,
&
ru
->
proc
.
cond_pre_scd
,
&
ru
->
proc
.
instance_pre_scd
,
"pre_scd_thread"
)
<
0
)
break
;
if
(
oai_exit
)
{
if
(
oai_exit
)
{
break
;
break
;
}
}
AssertFatal
((
ret
=
pthread_mutex_lock
(
&
ru
->
proc
.
mutex_pre_scd
))
==
0
,
"mutex_lock returns %d
\n
"
,
ret
);
if
(
ru
->
proc
.
instance_pre_scd
<
0
)
{
pthread_cond_wait
(
&
ru
->
proc
.
cond_pre_scd
,
&
ru
->
proc
.
mutex_pre_scd
);
}
AssertFatal
((
ret
=
pthread_mutex_unlock
(
&
ru
->
proc
.
mutex_pre_scd
))
==
0
,
"mutex_unlock returns %d
\n
"
,
ret
);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
Mod_id
,
ENB_FLAG_YES
,
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
Mod_id
,
ENB_FLAG_YES
,
NOT_A_RNTI
,
frame
,
subframe
,
Mod_id
);
NOT_A_RNTI
,
frame
,
subframe
,
Mod_id
);
pdcp_run
(
&
ctxt
);
pdcp_run
(
&
ctxt
);
...
@@ -1978,9 +1972,7 @@ void *pre_scd_thread( void *param ) {
...
@@ -1978,9 +1972,7 @@ void *pre_scd_thread( void *param ) {
subframe
++
;
subframe
++
;
}
}
AssertFatal
((
ret
=
pthread_mutex_lock
(
&
ru
->
proc
.
mutex_pre_scd
))
==
0
,
"mutex_lock returns %d
\n
"
,
ret
);
if
(
release_thread
(
&
ru
->
proc
.
mutex_pre_scd
,
&
ru
->
proc
.
instance_pre_scd
,
"pre_scd_thread"
)
<
0
)
break
;
ru
->
proc
.
instance_pre_scd
--
;
AssertFatal
((
ret
=
pthread_mutex_unlock
(
&
ru
->
proc
.
mutex_pre_scd
))
==
0
,
"mutex_unlock returns %d
\n
"
,
ret
);
}
}
eNB_pre_scd_status
=
0
;
eNB_pre_scd_status
=
0
;
...
...
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