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
wangwenhui
OpenXG-RAN
Commits
1547a45e
Commit
1547a45e
authored
Jan 26, 2018
by
Xu Bo
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'remotes/origin/issue255_256_257_tmp' into ues_test
parents
0105373c
23b5b6ac
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
51 deletions
+45
-51
openair2/LAYER2/MAC/defs.h
openair2/LAYER2/MAC/defs.h
+1
-4
openair2/RRC/LITE/proto.h
openair2/RRC/LITE/proto.h
+0
-2
openair2/RRC/LITE/rrc_eNB.c
openair2/RRC/LITE/rrc_eNB.c
+43
-43
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+1
-2
No files found.
openair2/LAYER2/MAC/defs.h
View file @
1547a45e
...
...
@@ -972,7 +972,6 @@ typedef struct {
boolean_t
active
[
NUMBER_OF_UE_MAX
];
}
UE_list_t
;
#ifdef UE_EXPANSION
/*! \brief deleting control information*/
typedef
struct
{
///rnti of UE
...
...
@@ -988,7 +987,6 @@ typedef struct {
int
head_freelist
;
///the head position of the delete list
int
tail_freelist
;
///the tail position of the delete list
}
UE_free_list_t
;
#endif
/*! \brief eNB common channels */
typedef
struct
{
...
...
@@ -1140,9 +1138,8 @@ typedef struct eNB_MAC_INST_s {
time_stats_t
rx_ulsch_sdu
;
// include rlc_data_ind
/// processing time of eNB PCH scheduler
time_stats_t
schedule_pch
;
#ifdef UE_EXPANSION
UE_free_list_t
UE_free_list
;
#endif
}
eNB_MAC_INST
;
/*
...
...
openair2/RRC/LITE/proto.h
View file @
1547a45e
...
...
@@ -490,11 +490,9 @@ void openair_rrc_top_init_ue(
uint8_t
HO_active
);
#ifdef UE_EXPANSION
pthread_mutex_t
lock_ue_freelist
;
void
remove_UE_from_freelist
(
module_id_t
mod_id
,
rnti_t
rnti
);
void
put_UE_in_freelist
(
module_id_t
mod_id
,
rnti_t
rnti
,
boolean_t
removeFlag
);
void
release_UE_in_freeList
(
module_id_t
mod_id
);
#endif
/** @}*/
openair2/RRC/LITE/rrc_eNB.c
View file @
1547a45e
...
...
@@ -887,8 +887,6 @@ rrc_eNB_free_UE(const module_id_t enb_mod_idP,const struct rrc_eNB_ue_context_s*
}
}
#ifdef UE_EXPANSION
void
remove_UE_from_freelist
(
module_id_t
mod_id
,
rnti_t
rnti
)
{
...
...
@@ -988,7 +986,7 @@ void release_UE_in_freeList(module_id_t mod_id)
}
}
}
#endif
//-----------------------------------------------------------------------------
void
rrc_eNB_process_RRCConnectionSetupComplete
(
...
...
@@ -1895,44 +1893,46 @@ rrc_eNB_process_RRCConnectionReestablishmentComplete(
PDCP_TRANSMISSION_MODE_CONTROL
);
// delete UE data of prior RNTI. UE use current RNTI.
protocol_ctxt_t
ctxt_prior
=
*
ctxt_pP
;
ctxt_prior
.
rnti
=
reestablish_rnti
;
LTE_eNB_ULSCH_t
*
ulsch
=
NULL
;
nfapi_ul_config_request_body_t
*
ul_req_tmp
=
NULL
;
PHY_VARS_eNB
*
eNB_PHY
=
NULL
;
eNB_MAC_INST
*
eNB_MAC
=
RC
.
mac
[
ctxt_prior
.
module_id
];
for
(
int
CC_id
=
0
;
CC_id
<
MAX_NUM_CCs
;
CC_id
++
)
{
eNB_PHY
=
RC
.
eNB
[
ctxt_prior
.
module_id
][
CC_id
];
for
(
int
i
=
0
;
i
<
NUMBER_OF_UE_MAX
;
i
++
)
{
ulsch
=
eNB_PHY
->
ulsch
[
i
];
if
((
ulsch
!=
NULL
)
&&
(
ulsch
->
rnti
==
ctxt_prior
.
rnti
)){
LOG_I
(
RRC
,
"clean_eNb_ulsch UE %x
\n
"
,
ctxt_prior
.
rnti
);
//clean_eNb_ulsch(ulsch);
ulsch
->
rnti
=
0
;
break
;
}
}
for
(
int
j
=
0
;
j
<
10
;
j
++
){
ul_req_tmp
=
&
eNB_MAC
->
UL_req_tmp
[
CC_id
][
j
].
ul_config_request_body
;
if
(
ul_req_tmp
){
int
pdu_number
=
ul_req_tmp
->
number_of_pdus
;
for
(
int
pdu_index
=
pdu_number
-
1
;
pdu_index
>=
0
;
pdu_index
--
){
if
(
ul_req_tmp
->
ul_config_pdu_list
[
pdu_index
].
ulsch_pdu
.
ulsch_pdu_rel8
.
rnti
==
ctxt_prior
.
rnti
){
LOG_I
(
RRC
,
"remove UE %x from ul_config_pdu_list %d/%d
\n
"
,
ctxt_prior
.
rnti
,
pdu_index
,
pdu_number
);
if
(
pdu_index
<
pdu_number
-
1
){
memcpy
(
&
ul_req_tmp
->
ul_config_pdu_list
[
pdu_index
],
&
ul_req_tmp
->
ul_config_pdu_list
[
pdu_index
+
1
],
(
pdu_number
-
1
-
pdu_index
)
*
sizeof
(
nfapi_ul_config_request_pdu_t
));
}
ul_req_tmp
->
number_of_pdus
--
;
}
}
}
}
}
rrc_mac_remove_ue
(
ctxt_prior
.
module_id
,
ctxt_prior
.
rnti
);
rrc_rlc_remove_ue
(
&
ctxt_prior
);
pdcp_remove_UE
(
&
ctxt_prior
);
// protocol_ctxt_t ctxt_prior = *ctxt_pP;
// ctxt_prior.rnti = reestablish_rnti;
//
// LTE_eNB_ULSCH_t *ulsch = NULL;
// nfapi_ul_config_request_body_t *ul_req_tmp = NULL;
// PHY_VARS_eNB *eNB_PHY = NULL;
// eNB_MAC_INST *eNB_MAC = RC.mac[ctxt_prior.module_id];
// for (int CC_id = 0; CC_id < MAX_NUM_CCs; CC_id++) {
// eNB_PHY = RC.eNB[ctxt_prior.module_id][CC_id];
// for (int i=0; i<NUMBER_OF_UE_MAX; i++) {
// ulsch = eNB_PHY->ulsch[i];
// if((ulsch != NULL) && (ulsch->rnti == ctxt_prior.rnti)){
// LOG_I(RRC, "clean_eNb_ulsch UE %x \n", ctxt_prior.rnti);
// clean_eNb_ulsch(ulsch);
// break;
// }
// }
//
// for(int j = 0; j < 10; j++){
// ul_req_tmp = &eNB_MAC->UL_req_tmp[CC_id][j].ul_config_request_body;
// if(ul_req_tmp){
// int pdu_number = ul_req_tmp->number_of_pdus;
// for(int pdu_index = pdu_number-1; pdu_index >= 0; pdu_index--){
// if(ul_req_tmp->ul_config_pdu_list[pdu_index].ulsch_pdu.ulsch_pdu_rel8.rnti == ctxt_prior.rnti){
// LOG_I(RRC, "remove UE %x from ul_config_pdu_list %d/%d\n", ctxt_prior.rnti, pdu_index, pdu_number);
// if(pdu_index < pdu_number -1){
// memcpy(&ul_req_tmp->ul_config_pdu_list[pdu_index], &ul_req_tmp->ul_config_pdu_list[pdu_index+1], (pdu_number-1-pdu_index) * sizeof(nfapi_ul_config_request_pdu_t));
// }
// ul_req_tmp->number_of_pdus--;
// }
// }
// }
// }
// }
// rrc_mac_remove_ue(ctxt_prior.module_id, ctxt_prior.rnti);
// rrc_rlc_remove_ue(&ctxt_prior);
// pdcp_remove_UE(&ctxt_prior);
// add UE info to freeList for RU_thread to remove the UE instead of remove it here
LOG_I
(
RRC
,
"[RRCConnectionReestablishment]put UE %x into freeList
\n
"
,
reestablish_rnti
);
put_UE_in_freelist
(
ctxt_pP
->
module_id
,
reestablish_rnti
,
0
);
}
//-----------------------------------------------------------------------------
...
...
@@ -6725,9 +6725,9 @@ rrc_enb_task(
int
CC_id
;
protocol_ctxt_t
ctxt
;
#ifdef UE_EXPANSION
pthread_mutex_init
(
&
lock_ue_freelist
,
NULL
);
#endif
itti_mark_task_ready
(
TASK_RRC_ENB
);
LOG_I
(
RRC
,
"Entering main loop of RRC message task
\n
"
);
while
(
1
)
{
...
...
targets/RT/USER/lte-enb.c
View file @
1547a45e
...
...
@@ -169,9 +169,8 @@ static inline int rxtx(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc, char *thread_nam
#endif
}
#ifdef UE_EXPANSION
release_UE_in_freeList
(
eNB
->
Mod_id
);
#endif
// UE-specific RX processing for subframe n
phy_procedures_eNB_uespec_RX
(
eNB
,
proc
,
no_relay
);
...
...
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