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
常顺宇
OpenXG-RAN
Commits
dbe32083
Commit
dbe32083
authored
Mar 16, 2018
by
Haruki NAOI
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix: eNB can not accept attach more than 257 times.
parent
f1f3b8a0
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
50 additions
and
18 deletions
+50
-18
openair1/PHY/LTE_TRANSPORT/dci_tools.c
openair1/PHY/LTE_TRANSPORT/dci_tools.c
+12
-4
openair1/SCHED/fapi_l1.c
openair1/SCHED/fapi_l1.c
+14
-5
openair1/SCHED/phy_procedures_lte_eNb.c
openair1/SCHED/phy_procedures_lte_eNb.c
+10
-2
openair2/LAYER2/MAC/eNB_scheduler_RA.c
openair2/LAYER2/MAC/eNB_scheduler_RA.c
+7
-3
openair2/RRC/LITE/rrc_eNB.c
openair2/RRC/LITE/rrc_eNB.c
+7
-4
No files found.
openair1/PHY/LTE_TRANSPORT/dci_tools.c
View file @
dbe32083
...
...
@@ -1054,8 +1054,12 @@ void fill_dci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,DCI_ALLOC_t *dci
if
((
rel8
->
rnti_type
==
2
)
&&
(
rel8
->
rnti
!=
SI_RNTI
)
&&
(
rel8
->
rnti
!=
P_RNTI
))
dci_alloc
->
ra_flag
=
1
;
UE_id
=
find_dlsch
(
rel8
->
rnti
,
eNB
,
SEARCH_EXIST_OR_FREE
);
AssertFatal
(
UE_id
!=-
1
,
"no free or exiting dlsch_context
\n
"
);
AssertFatal
(
UE_id
<
NUMBER_OF_UE_MAX
,
"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)
\n
"
,
UE_id
,
NUMBER_OF_UE_MAX
);
if
(
(
UE_id
<
0
)
||
(
UE_id
>=
NUMBER_OF_UE_MAX
)
){
LOG_E
(
PHY
,
"illegal UE_id found!!! rnti %04x UE_id %d
\n
"
,
rel8
->
rnti
,
UE_id
);
return
;
}
//AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n");
//AssertFatal(UE_id<NUMBER_OF_UE_MAX,"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX);
dlsch0
=
eNB
->
dlsch
[
UE_id
][
0
];
dlsch1
=
eNB
->
dlsch
[
UE_id
][
1
];
...
...
@@ -2298,8 +2302,12 @@ void fill_mdci_and_dlsch(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,mDCI_ALLOC_t *d
if
(
rel13
->
rnti_type
==
2
)
dci_alloc
->
ra_flag
=
1
;
UE_id
=
find_dlsch
(
rel13
->
rnti
,
eNB
,
SEARCH_EXIST_OR_FREE
);
AssertFatal
(
UE_id
!=-
1
,
"no free or exiting dlsch_context
\n
"
);
AssertFatal
(
UE_id
<
NUMBER_OF_UE_MAX
,
"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)
\n
"
,
UE_id
,
NUMBER_OF_UE_MAX
);
if
(
(
UE_id
<
0
)
||
(
UE_id
>=
NUMBER_OF_UE_MAX
)
){
LOG_E
(
PHY
,
"illegal UE_id found!!! rnti %04x UE_id %d
\n
"
,
rel13
->
rnti
,
UE_id
);
return
;
}
//AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n");
//AssertFatal(UE_id<NUMBER_OF_UE_MAX,"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX);
dlsch0
=
eNB
->
dlsch
[
UE_id
][
0
];
dlsch0_harq
=
dlsch0
->
harq_processes
[
rel13
->
harq_process
];
...
...
openair1/SCHED/fapi_l1.c
View file @
dbe32083
...
...
@@ -137,8 +137,12 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
int
harq_pid
;
UE_id
=
find_dlsch
(
rel8
->
rnti
,
eNB
,
SEARCH_EXIST_OR_FREE
);
AssertFatal
(
UE_id
!=-
1
,
"no free or exiting dlsch_context
\n
"
);
AssertFatal
(
UE_id
<
NUMBER_OF_UE_MAX
,
"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)
\n
"
,
UE_id
,
NUMBER_OF_UE_MAX
);
if
(
(
UE_id
<
0
)
||
(
UE_id
>=
NUMBER_OF_UE_MAX
)
){
LOG_E
(
PHY
,
"illegal UE_id found!!! rnti %04x UE_id %d
\n
"
,
rel8
->
rnti
,
UE_id
);
return
;
}
//AssertFatal(UE_id!=-1,"no free or exiting dlsch_context\n");
//AssertFatal(UE_id<NUMBER_OF_UE_MAX,"returned UE_id %d >= %d(NUMBER_OF_UE_MAX)\n",UE_id,NUMBER_OF_UE_MAX);
dlsch0
=
eNB
->
dlsch
[
UE_id
][
0
];
dlsch1
=
eNB
->
dlsch
[
UE_id
][
1
];
...
...
@@ -176,9 +180,14 @@ void handle_nfapi_dlsch_pdu(PHY_VARS_eNB *eNB,eNB_rxtx_proc_t *proc,
dlsch0_harq
->
pdsch_start
=
eNB
->
pdcch_vars
[
proc
->
subframe_tx
&
1
].
num_pdcch_symbols
;
if
(
dlsch0_harq
->
round
==
0
)
{
//get pointer to SDU if this a new SDU
AssertFatal
(
sdu
!=
NULL
,
"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d : sdu is null for pdu_index %d
\n
"
,
proc
->
frame_tx
,
proc
->
subframe_tx
,
rel8
->
rnti
,
UE_id
,
harq_pid
,
dl_config_pdu
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
);
if
(
sdu
==
NULL
)
{
LOG_E
(
PHY
,
"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d : sdu is null for pdu_index %d
\n
"
,
proc
->
frame_tx
,
proc
->
subframe_tx
,
rel8
->
rnti
,
UE_id
,
harq_pid
,
dl_config_pdu
->
dlsch_pdu
.
dlsch_pdu_rel8
.
pdu_index
);
return
;
}
//AssertFatal(sdu!=NULL,"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d : sdu is null for pdu_index %d\n",
// proc->frame_tx,proc->subframe_tx,rel8->rnti,UE_id,harq_pid,
// dl_config_pdu->dlsch_pdu.dlsch_pdu_rel8.pdu_index);
if
(
rel8
->
rnti
!=
0xFFFF
)
LOG_D
(
PHY
,
"NFAPI: frame %d, subframe %d: programming dlsch for round 0, rnti %x, UE_id %d, harq_pid %d
\n
"
,
proc
->
frame_tx
,
proc
->
subframe_tx
,
rel8
->
rnti
,
UE_id
,
harq_pid
);
if
(
codeword_index
==
0
)
dlsch0_harq
->
pdu
=
sdu
;
...
...
openair1/SCHED/phy_procedures_lte_eNb.c
View file @
dbe32083
...
...
@@ -1690,7 +1690,11 @@ void fill_ulsch_cqi_indication(PHY_VARS_eNB *eNB,uint16_t frame,uint8_t subframe
void
fill_ulsch_harq_indication
(
PHY_VARS_eNB
*
eNB
,
LTE_UL_eNB_HARQ_t
*
ulsch_harq
,
uint16_t
rnti
,
int
frame
,
int
subframe
,
int
bundling
)
{
int
UE_id
=
find_dlsch
(
rnti
,
eNB
,
SEARCH_EXIST
);
AssertFatal
(
UE_id
>=
0
,
"UE_id doesn't exist
\n
"
);
if
(
(
UE_id
<
0
)
||
(
UE_id
>=
NUMBER_OF_UE_MAX
)
){
LOG_E
(
PHY
,
"illegal UE_id found!!! rnti %04x UE_id %d
\n
"
,
rnti
,
UE_id
);
return
;
}
//AssertFatal(UE_id>=0,"UE_id doesn't exist\n");
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
nfapi_harq_indication_pdu_t
*
pdu
=
&
eNB
->
UL_INFO
.
harq_ind
.
harq_pdu_list
[
eNB
->
UL_INFO
.
harq_ind
.
number_of_harqs
];
...
...
@@ -1759,7 +1763,11 @@ void fill_uci_harq_indication(PHY_VARS_eNB *eNB,
uint16_t
tdd_multiplexing_mask
)
{
int
UE_id
=
find_dlsch
(
uci
->
rnti
,
eNB
,
SEARCH_EXIST
);
AssertFatal
(
UE_id
>=
0
,
"UE_id doesn't exist
\n
"
);
if
(
(
UE_id
<
0
)
||
(
UE_id
>=
NUMBER_OF_UE_MAX
)
){
LOG_E
(
PHY
,
"illegal UE_id found!!! rnti %04x UE_id %d
\n
"
,
uci
->
rnti
,
UE_id
);
return
;
}
//AssertFatal(UE_id>=0,"UE_id doesn't exist\n");
pthread_mutex_lock
(
&
eNB
->
UL_INFO_mutex
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_RA.c
View file @
dbe32083
...
...
@@ -782,9 +782,13 @@ generate_Msg4(module_id_t module_idP, int CC_idP, frame_t frameP,
// Get RRCConnectionSetup for Piggyback
rrc_sdu_length
=
mac_rrc_data_req
(
module_idP
,
CC_idP
,
frameP
,
CCCH
,
1
,
// 1 transport block
&
cc
[
CC_idP
].
CCCH_pdu
.
payload
[
0
],
ENB_FLAG_YES
,
module_idP
,
0
);
// not used in this case
AssertFatal
(
rrc_sdu_length
>
0
,
"[MAC][eNB Scheduler] CCCH not allocated
\n
"
);
if
(
rrc_sdu_length
<=
0
)
{
LOG_D
(
MAC
,
"[MAC][eNB Scheduler] CCCH not allocated
\n
%d"
,
rrc_sdu_length
);
return
;
}
//AssertFatal(rrc_sdu_length > 0,
//"[MAC][eNB Scheduler] CCCH not allocated\n");
LOG_D
(
MAC
,
...
...
openair2/RRC/LITE/rrc_eNB.c
View file @
dbe32083
...
...
@@ -927,6 +927,7 @@ void release_UE_in_freeList(module_id_t mod_id)
int
i
,
j
,
CC_id
,
pdu_number
;
protocol_ctxt_t
ctxt
;
LTE_eNB_ULSCH_t
*
ulsch
=
NULL
;
LTE_eNB_DLSCH_t
*
dlsch
=
NULL
;
nfapi_ul_config_request_body_t
*
ul_req_tmp
=
NULL
;
PHY_VARS_eNB
*
eNB_PHY
=
NULL
;
struct
rrc_eNB_ue_context_s
*
ue_context_pP
=
NULL
;
...
...
@@ -966,10 +967,12 @@ void release_UE_in_freeList(module_id_t mod_id)
memset
(
&
eNB_PHY
->
uci_vars
[
i
],
0
,
sizeof
(
LTE_eNB_UCI
));
}
}
ulsch
=
eNB_PHY
->
ulsch
[
i
];
if
((
ulsch
!=
NULL
)
&&
(
ulsch
->
rnti
==
rnti
)){
LOG_I
(
RRC
,
"clean_eNb_ulsch ulsch[%d] UE %x
\n
"
,
i
,
rnti
);
clean_eNb_ulsch
(
ulsch
);
for
(
i
=
0
;
i
<
NUMBER_OF_UE_MAX
;
i
++
)
{
dlsch
=
eNB_PHY
->
dlsch
[
i
][
0
];
if
((
dlsch
!=
NULL
)
&&
(
dlsch
->
rnti
==
rnti
)){
LOG_I
(
RRC
,
"clean_eNb_dlsch dlsch[%d] UE %x
\n
"
,
i
,
rnti
);
clean_eNb_dlsch
(
dlsch
);
}
}
for
(
j
=
0
;
j
<
10
;
j
++
){
...
...
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