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
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Metrics
Environments
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
OpenXG-RAN
Commits
c8c80323
Commit
c8c80323
authored
Sep 04, 2018
by
Raymond Knopp
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
initial DU part for F1AP_setup_resp
parent
c56eb9ed
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
69 additions
and
3 deletions
+69
-3
openair2/ENB_APP/enb_app.c
openair2/ENB_APP/enb_app.c
+49
-3
openair2/ENB_APP/enb_config.c
openair2/ENB_APP/enb_config.c
+20
-0
No files found.
openair2/ENB_APP/enb_app.c
View file @
c8c80323
...
@@ -217,8 +217,7 @@ void *eNB_app_task(void *args_p)
...
@@ -217,8 +217,7 @@ void *eNB_app_task(void *args_p)
configure_rrc
(
enb_id
);
configure_rrc
(
enb_id
);
if
(
RC
.
nb_macrlc_inst
>
0
&&
mac_has_f1
[
enb_id
]
==
1
)
RC
.
rrc
[
enb_id
]
->
node_type
=
ngran_eNB_DU
;
if
(
RC
.
nb_macrlc_inst
>
0
&&
mac_has_f1
[
enb_id
]
==
1
)
RC
.
rrc
[
enb_id
]
->
node_type
=
ngran_eNB_DU
;
else
pdcp_layer_init
();
pdcp_layer_init
();
}
}
...
@@ -252,9 +251,12 @@ void *eNB_app_task(void *args_p)
...
@@ -252,9 +251,12 @@ void *eNB_app_task(void *args_p)
# if defined(ENABLE_USE_MME)
# if defined(ENABLE_USE_MME)
case
S1AP_REGISTER_ENB_CNF
:
case
S1AP_REGISTER_ENB_CNF
:
AssertFatal
(
RC
.
rrc
[
0
]
->
node_type
!=
ngran_eNB_DU
,
"Should not have received S1AP_REGISTER_ENB_CNF
\n
"
);
LOG_I
(
ENB_APP
,
"[eNB %d] Received %s: associated MME %d
\n
"
,
instance
,
ITTI_MSG_NAME
(
msg_p
),
LOG_I
(
ENB_APP
,
"[eNB %d] Received %s: associated MME %d
\n
"
,
instance
,
ITTI_MSG_NAME
(
msg_p
),
S1AP_REGISTER_ENB_CNF
(
msg_p
).
nb_mme
);
S1AP_REGISTER_ENB_CNF
(
msg_p
).
nb_mme
);
DevAssert
(
register_enb_pending
>
0
);
DevAssert
(
register_enb_pending
>
0
);
register_enb_pending
--
;
register_enb_pending
--
;
...
@@ -291,6 +293,50 @@ void *eNB_app_task(void *args_p)
...
@@ -291,6 +293,50 @@ void *eNB_app_task(void *args_p)
break
;
break
;
case
F1AP_SETUP_RESP
:
AssertFatal
(
RC
.
rrc
[
0
]
->
node_type
==
ngran_eNB_DU
,
"Should not have received F1AP_REGISTER_ENB_CNF
\n
"
);
LOG_I
(
ENB_APP
,
"[eNB %d] Received %s: associated ngran_eNB_CU %s with %d cells to activate
\n
"
,
instance
,
ITTI_MSG_NAME
(
msg_p
),
F1AP_SETUP_RESP
(
msg_p
).
gNB_CU_name
,
F1AP_SETUP_RESP
(
msg_p
).
num_cells_to_activate
);
handle_f1ap_setup_resp
(
&
F1AP_SETUP_RESP
(
msg_p
));
DevAssert
(
register_enb_pending
>
0
);
register_enb_pending
--
;
/* Check if at least eNB is registered with one MME */
if
(
F1AP_SETUP_RESP
(
msg_p
).
num_cells_to_activate
>
0
)
{
registered_enb
++
;
}
/* Check if all register eNB requests have been processed */
if
(
register_enb_pending
==
0
)
{
if
(
registered_enb
==
enb_nb
)
{
/* If all eNB cells are registered, start L2L1 task */
MessageDef
*
msg_init_p
;
msg_init_p
=
itti_alloc_new_message
(
TASK_ENB_APP
,
INITIALIZE_MESSAGE
);
itti_send_msg_to_task
(
TASK_L2L1
,
INSTANCE_DEFAULT
,
msg_init_p
);
}
else
{
LOG_W
(
ENB_APP
,
" %d eNB not associated with a MME, retrying registration in %d seconds ...
\n
"
,
enb_nb
-
registered_enb
,
ENB_REGISTER_RETRY_DELAY
);
/* Restart the eNB registration process in ENB_REGISTER_RETRY_DELAY seconds */
if
(
timer_setup
(
ENB_REGISTER_RETRY_DELAY
,
0
,
TASK_ENB_APP
,
INSTANCE_DEFAULT
,
TIMER_ONE_SHOT
,
NULL
,
&
enb_register_retry_timer_id
)
<
0
)
{
LOG_E
(
ENB_APP
,
" Can not start eNB register retry timer, use
\"
sleep
\"
instead!
\n
"
);
sleep
(
ENB_REGISTER_RETRY_DELAY
);
/* Restart the registration process */
registered_enb
=
0
;
register_enb_pending
=
eNB_app_register
(
RC
.
rrc
[
0
]
->
node_type
,
enb_id_start
,
enb_id_end
);
//, enb_properties_p);
}
}
}
break
;
case
S1AP_DEREGISTERED_ENB_IND
:
case
S1AP_DEREGISTERED_ENB_IND
:
LOG_W
(
ENB_APP
,
"[eNB %d] Received %s: associated MME %d
\n
"
,
instance
,
ITTI_MSG_NAME
(
msg_p
),
LOG_W
(
ENB_APP
,
"[eNB %d] Received %s: associated MME %d
\n
"
,
instance
,
ITTI_MSG_NAME
(
msg_p
),
S1AP_DEREGISTERED_ENB_IND
(
msg_p
).
nb_mme
);
S1AP_DEREGISTERED_ENB_IND
(
msg_p
).
nb_mme
);
...
...
openair2/ENB_APP/enb_config.c
View file @
c8c80323
...
@@ -2706,3 +2706,23 @@ void RCConfig(void) {
...
@@ -2706,3 +2706,23 @@ void RCConfig(void) {
RC
.
nb_RU
=
RUParamList
.
numelt
;
RC
.
nb_RU
=
RUParamList
.
numelt
;
}
}
void
handle_f1ap_setup_resp
(
f1ap_setup_resp_t
*
resp
)
{
int
i
,
j
,
si_ind
;
AssertFatal
(
1
==
0
,
"Shouldn't get here yet
\n
"
);
/*
for (j=0;j<resp->num_cells_to_activate;j++) {
for (i=0;i<RC.nb_inst;i++) {
rrc_eNB_carrier_data_t *carrier = &RC.rrc[i]->carrier[0];
// identify local index of cell j by plmn identity
if (check_plmn_identity(carrier, resp->mcc[j], resp->mnc[j], resp->mnc_digit_length[j])>0 &&
resp->nrpci[j] == carrier->physCellId) {
// copy system information and decode it to perform MAC/L1 common configuration
for (si_ind=0;si_ind<resp->num_SI[j];si_ind++) {
}
}
*/
}
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