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
923c5f9d
Commit
923c5f9d
authored
Nov 30, 2020
by
hardy
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/rlc-v2-tick' into integration_2020_wk49
parents
279a721d
6f9fe268
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
41 additions
and
16 deletions
+41
-16
openair2/LAYER2/MAC/eNB_scheduler.c
openair2/LAYER2/MAC/eNB_scheduler.c
+2
-0
openair2/LAYER2/MAC/ue_procedures.c
openair2/LAYER2/MAC/ue_procedures.c
+3
-0
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+10
-0
openair2/LAYER2/rlc_v2/rlc_oai_api.c
openair2/LAYER2/rlc_v2/rlc_oai_api.c
+24
-16
targets/RT/USER/lte-ru.c
targets/RT/USER/lte-ru.c
+2
-0
No files found.
openair2/LAYER2/MAC/eNB_scheduler.c
View file @
923c5f9d
...
@@ -914,7 +914,9 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
...
@@ -914,7 +914,9 @@ eNB_dlsch_ulsch_scheduler(module_id_t module_idP,
#if (!defined(PRE_SCD_THREAD))
#if (!defined(PRE_SCD_THREAD))
if
(
!
NODE_IS_DU
(
RC
.
rrc
[
module_idP
]
->
node_type
))
{
if
(
!
NODE_IS_DU
(
RC
.
rrc
[
module_idP
]
->
node_type
))
{
void
rlc_tick
(
int
,
int
);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
module_idP
,
ENB_FLAG_YES
,
NOT_A_RNTI
,
frameP
,
subframeP
,
module_idP
);
PROTOCOL_CTXT_SET_BY_MODULE_ID
(
&
ctxt
,
module_idP
,
ENB_FLAG_YES
,
NOT_A_RNTI
,
frameP
,
subframeP
,
module_idP
);
rlc_tick
(
frameP
,
subframeP
);
pdcp_run
(
&
ctxt
);
pdcp_run
(
&
ctxt
);
pdcp_mbms_run
(
&
ctxt
);
pdcp_mbms_run
(
&
ctxt
);
rrc_rx_tx
(
&
ctxt
,
CC_id
);
rrc_rx_tx
(
&
ctxt
,
CC_id
);
...
...
openair2/LAYER2/MAC/ue_procedures.c
View file @
923c5f9d
...
@@ -3099,6 +3099,9 @@ ue_scheduler(const module_id_t module_idP,
...
@@ -3099,6 +3099,9 @@ ue_scheduler(const module_id_t module_idP,
}
}
}
}
void
rlc_tick
(
int
,
int
);
rlc_tick
(
rxFrameP
%
1024
,
rxSubframeP
);
//#endif
//#endif
UE_mac_inst
[
module_idP
].
txFrame
=
txFrameP
;
UE_mac_inst
[
module_idP
].
txFrame
=
txFrameP
;
UE_mac_inst
[
module_idP
].
txSubframe
=
txSubframeP
;
UE_mac_inst
[
module_idP
].
txSubframe
=
txSubframeP
;
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
923c5f9d
...
@@ -923,3 +923,13 @@ void nr_rlc_tick(int frame, int subframe)
...
@@ -923,3 +923,13 @@ void nr_rlc_tick(int frame, int subframe)
nr_rlc_current_time
++
;
nr_rlc_current_time
++
;
}
}
}
}
/* This is a hack, to compile the gNB.
* TODO: remove it. The solution is to cleanup cmake_targets/CMakeLists.txt
*/
void
rlc_tick
(
int
a
,
int
b
)
{
LOG_E
(
RLC
,
"%s:%d:%s: this code should not be reached
\n
"
,
__FILE__
,
__LINE__
,
__FUNCTION__
);
exit
(
1
);
}
openair2/LAYER2/rlc_v2/rlc_oai_api.c
View file @
923c5f9d
...
@@ -177,14 +177,6 @@ mac_rlc_status_resp_t mac_rlc_status_ind(
...
@@ -177,14 +177,6 @@ mac_rlc_status_resp_t mac_rlc_status_ind(
mac_rlc_status_resp_t
ret
;
mac_rlc_status_resp_t
ret
;
rlc_entity_t
*
rb
;
rlc_entity_t
*
rb
;
/* TODO: handle time a bit more properly */
if
(
rlc_current_time_last_frame
!=
frameP
||
rlc_current_time_last_subframe
!=
subframeP
)
{
rlc_current_time
++
;
rlc_current_time_last_frame
=
frameP
;
rlc_current_time_last_subframe
=
subframeP
;
}
rlc_manager_lock
(
rlc_ue_manager
);
rlc_manager_lock
(
rlc_ue_manager
);
ue
=
rlc_manager_get_ue
(
rlc_ue_manager
,
rntiP
);
ue
=
rlc_manager_get_ue
(
rlc_ue_manager
,
rntiP
);
...
@@ -244,14 +236,6 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
...
@@ -244,14 +236,6 @@ rlc_buffer_occupancy_t mac_rlc_get_buffer_occupancy_ind(
exit
(
1
);
exit
(
1
);
}
}
/* TODO: handle time a bit more properly */
if
(
rlc_current_time_last_frame
!=
frameP
||
rlc_current_time_last_subframe
!=
subframeP
)
{
rlc_current_time
++
;
rlc_current_time_last_frame
=
frameP
;
rlc_current_time_last_subframe
=
subframeP
;
}
rlc_manager_lock
(
rlc_ue_manager
);
rlc_manager_lock
(
rlc_ue_manager
);
ue
=
rlc_manager_get_ue
(
rlc_ue_manager
,
rntiP
);
ue
=
rlc_manager_get_ue
(
rlc_ue_manager
,
rntiP
);
...
@@ -1028,3 +1012,27 @@ rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const x)
...
@@ -1028,3 +1012,27 @@ rlc_op_status_t rrc_rlc_remove_ue (const protocol_ctxt_t* const x)
return
RLC_OP_STATUS_OK
;
return
RLC_OP_STATUS_OK
;
}
}
void
rlc_tick
(
int
frame
,
int
subframe
)
{
int
expected_next_frame
;
int
expected_next_subframe
;
if
(
frame
!=
rlc_current_time_last_frame
||
subframe
!=
rlc_current_time_last_subframe
)
{
/* warn if discontinuity in ticks */
expected_next_subframe
=
(
rlc_current_time_last_subframe
+
1
)
%
10
;
if
(
expected_next_subframe
==
0
)
expected_next_frame
=
(
rlc_current_time_last_frame
+
1
)
%
1024
;
else
expected_next_frame
=
rlc_current_time_last_frame
;
if
(
expected_next_frame
!=
frame
||
expected_next_subframe
!=
subframe
)
LOG_W
(
RLC
,
"rlc_tick: discontinuity (expected %d.%d, got %d.%d)
\n
"
,
expected_next_frame
,
expected_next_subframe
,
frame
,
subframe
);
rlc_current_time
++
;
rlc_current_time_last_frame
=
frame
;
rlc_current_time_last_subframe
=
subframe
;
}
}
targets/RT/USER/lte-ru.c
View file @
923c5f9d
...
@@ -2017,6 +2017,7 @@ void *ru_thread_synch(void *arg) {
...
@@ -2017,6 +2017,7 @@ void *ru_thread_synch(void *arg) {
#if defined(PRE_SCD_THREAD)
#if defined(PRE_SCD_THREAD)
void
*
pre_scd_thread
(
void
*
param
)
{
void
*
pre_scd_thread
(
void
*
param
)
{
void
rlc_tick
(
int
,
int
);
static
int
eNB_pre_scd_status
;
static
int
eNB_pre_scd_status
;
protocol_ctxt_t
ctxt
;
protocol_ctxt_t
ctxt
;
int
frame
;
int
frame
;
...
@@ -2051,6 +2052,7 @@ void *pre_scd_thread( void *param ) {
...
@@ -2051,6 +2052,7 @@ void *pre_scd_thread( void *param ) {
AssertFatal
((
ret
=
pthread_mutex_unlock
(
&
ru
->
proc
.
mutex_pre_scd
))
==
0
,
"mutex_unlock returns %d
\n
"
,
ret
);
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
);
rlc_tick
(
frame
,
subframe
);
pdcp_run
(
&
ctxt
);
pdcp_run
(
&
ctxt
);
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
for
(
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
...
...
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