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
lizhongxiao
OpenXG-RAN
Commits
b36e4c10
Commit
b36e4c10
authored
Aug 29, 2022
by
hscuser
Committed by
jperaldi
Nov 17, 2022
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Initial Code changes to enhance SS for Multi-Cell
parent
0222a74a
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
76 additions
and
64 deletions
+76
-64
openair2/LAYER2/MAC/eNB_scheduler_RA.c
openair2/LAYER2/MAC/eNB_scheduler_RA.c
+2
-2
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
+4
-4
openair2/LAYER2/MAC/main.c
openair2/LAYER2/MAC/main.c
+1
-1
openair2/LAYER2/rlc_v2/rlc_oai_api.c
openair2/LAYER2/rlc_v2/rlc_oai_api.c
+2
-2
openair2/RRC/LTE/L2_interface.c
openair2/RRC/LTE/L2_interface.c
+1
-1
openair2/RRC/LTE/L2_interface_common.c
openair2/RRC/LTE/L2_interface_common.c
+1
-1
openair2/RRC/LTE/rrc_eNB.c
openair2/RRC/LTE/rrc_eNB.c
+1
-1
openair3/SS/ss_eNB_drb_task.c
openair3/SS/ss_eNB_drb_task.c
+5
-5
openair3/SS/ss_eNB_port_man_task.c
openair3/SS/ss_eNB_port_man_task.c
+1
-1
openair3/SS/ss_eNB_srb_task.c
openair3/SS/ss_eNB_srb_task.c
+5
-5
openair3/SS/ss_eNB_sys_task.c
openair3/SS/ss_eNB_sys_task.c
+28
-28
openair3/SS/ss_eNB_sysind_task.c
openair3/SS/ss_eNB_sysind_task.c
+3
-3
openair3/SS/ss_eNB_vng_task.c
openair3/SS/ss_eNB_vng_task.c
+2
-2
openair3/SS/ss_eNB_vtp_task.c
openair3/SS/ss_eNB_vtp_task.c
+2
-1
openair3/SS/ss_gNB_srb_task.c
openair3/SS/ss_gNB_srb_task.c
+5
-5
targets/ARCH/SS/ss_config.h
targets/ARCH/SS/ss_config.h
+11
-0
targets/RT/USER/lte-enb.c
targets/RT/USER/lte-enb.c
+2
-2
No files found.
openair2/LAYER2/MAC/eNB_scheduler_RA.c
View file @
b36e4c10
...
@@ -915,7 +915,7 @@ generate_Msg4(module_id_t module_idP,
...
@@ -915,7 +915,7 @@ generate_Msg4(module_id_t module_idP,
UE_RNTI
(
module_idP
,
UE_id
),
1
,
// 1 transport block
UE_RNTI
(
module_idP
,
UE_id
),
1
,
// 1 transport block
&
cc
[
CC_idP
].
CCCH_pdu
.
payload
[
0
],
0
);
// not used in this case
&
cc
[
CC_idP
].
CCCH_pdu
.
payload
[
0
],
0
);
// not used in this case
if
((
rrc_sdu_length
>
0
)
||
(
RC
.
ss
.
CBRA_flag
&&
(
RC
.
ss
.
mode
>
SS_ENB
)))
{
if
((
rrc_sdu_length
>
0
)
||
(
RC
.
ss
.
ss_cell_list
[
0
].
CBRA_flag
&&
(
RC
.
ss
.
mode
>
SS_ENB
)))
{
LOG_D
(
MAC
,
LOG_D
(
MAC
,
"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d
\n
"
,
"[eNB %d][RAPROC] CC_id %d Frame %d, subframeP %d: UE_id %d, rrc_sdu_length %d
\n
"
,
module_idP
,
CC_idP
,
frameP
,
subframeP
,
UE_id
,
rrc_sdu_length
);
module_idP
,
CC_idP
,
frameP
,
subframeP
,
UE_id
,
rrc_sdu_length
);
...
@@ -1427,7 +1427,7 @@ initiate_ra_proc(module_id_t module_idP,
...
@@ -1427,7 +1427,7 @@ initiate_ra_proc(module_id_t module_idP,
module_idP
,
CC_id
,
frameP
,
ra
[
i
].
Msg2_frame
,
module_idP
,
CC_id
,
frameP
,
ra
[
i
].
Msg2_frame
,
ra
[
i
].
Msg2_subframe
,
i
,
ra
[
i
].
rnti
,
ra
[
i
].
state
);
ra
[
i
].
Msg2_subframe
,
i
,
ra
[
i
].
rnti
,
ra
[
i
].
state
);
if
(
RC
.
ss
.
l1macind
.
rachpreamble_enable
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
l1macind
.
rachpreamble_enable
)
{
{
// Populate and send the SS_SYSTEM_IND to System Simulator
// Populate and send the SS_SYSTEM_IND to System Simulator
MessageDef
*
m
=
itti_alloc_new_message
(
TASK_MAC_ENB
,
0
,
SS_SYSTEM_IND
);
MessageDef
*
m
=
itti_alloc_new_message
(
TASK_MAC_ENB
,
0
,
SS_SYSTEM_IND
);
...
...
openair2/LAYER2/MAC/eNB_scheduler_ulsch.c
View file @
b36e4c10
...
@@ -875,8 +875,8 @@ rx_sdu(const module_id_t enb_mod_idP,
...
@@ -875,8 +875,8 @@ rx_sdu(const module_id_t enb_mod_idP,
rx_lcids
[
i
]);
rx_lcids
[
i
]);
if
(
RC
.
ss
.
mode
>
SS_ENB
)
if
(
RC
.
ss
.
mode
>
SS_ENB
)
{
{
RC
.
ss
.
mac_rlc_data_ind_frame
=
frameP
;
RC
.
ss
.
ss_cell_list
[
0
].
mac_rlc_data_ind_frame
=
frameP
;
RC
.
ss
.
mac_rlc_data_ind_subframe
=
subframeP
;
RC
.
ss
.
ss_cell_list
[
0
].
mac_rlc_data_ind_subframe
=
subframeP
;
}
}
mac_rlc_data_ind
(
enb_mod_idP
,
current_rnti
,
enb_mod_idP
,
frameP
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
rx_lcids
[
i
],
(
char
*
)
payload_ptr
,
rx_lengths
[
i
],
1
,
NULL
);
//(unsigned int*)crc_status);
mac_rlc_data_ind
(
enb_mod_idP
,
current_rnti
,
enb_mod_idP
,
frameP
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
rx_lcids
[
i
],
(
char
*
)
payload_ptr
,
rx_lengths
[
i
],
1
,
NULL
);
//(unsigned int*)crc_status);
UE_info
->
eNB_UE_stats
[
CC_idP
][
UE_id
].
num_pdu_rx
[
rx_lcids
[
i
]]
+=
1
;
UE_info
->
eNB_UE_stats
[
CC_idP
][
UE_id
].
num_pdu_rx
[
rx_lcids
[
i
]]
+=
1
;
...
@@ -971,8 +971,8 @@ rx_sdu(const module_id_t enb_mod_idP,
...
@@ -971,8 +971,8 @@ rx_sdu(const module_id_t enb_mod_idP,
}
}
if
(
RC
.
ss
.
mode
>
SS_ENB
)
if
(
RC
.
ss
.
mode
>
SS_ENB
)
{
{
RC
.
ss
.
mac_rlc_data_ind_frame
=
frameP
;
RC
.
ss
.
ss_cell_list
[
0
].
mac_rlc_data_ind_frame
=
frameP
;
RC
.
ss
.
mac_rlc_data_ind_subframe
=
subframeP
;
RC
.
ss
.
ss_cell_list
[
0
].
mac_rlc_data_ind_subframe
=
subframeP
;
}
}
mac_rlc_data_ind
(
enb_mod_idP
,
current_rnti
,
enb_mod_idP
,
frameP
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
rx_lcids
[
i
],
(
char
*
)
payload_ptr
,
rx_lengths
[
i
],
1
,
NULL
);
mac_rlc_data_ind
(
enb_mod_idP
,
current_rnti
,
enb_mod_idP
,
frameP
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
rx_lcids
[
i
],
(
char
*
)
payload_ptr
,
rx_lengths
[
i
],
1
,
NULL
);
UE_info
->
eNB_UE_stats
[
CC_idP
][
UE_id
].
num_pdu_rx
[
rx_lcids
[
i
]]
+=
1
;
UE_info
->
eNB_UE_stats
[
CC_idP
][
UE_id
].
num_pdu_rx
[
rx_lcids
[
i
]]
+=
1
;
...
...
openair2/LAYER2/MAC/main.c
View file @
b36e4c10
...
@@ -303,7 +303,7 @@ void *mac_enb_task(void *arg)
...
@@ -303,7 +303,7 @@ void *mac_enb_task(void *arg)
case
SS_L1MACIND_CTRL
:
case
SS_L1MACIND_CTRL
:
LOG_I
(
MAC
,
"MAC Task Received SS_L1MACIND_CTRL
\n
"
);
LOG_I
(
MAC
,
"MAC Task Received SS_L1MACIND_CTRL
\n
"
);
RC
.
ss
.
l1macind
.
rachpreamble_enable
=
received_msg
->
ittiMsg
.
ss_l1macind_ctrl
.
rachpreamble_enable
;
RC
.
ss
.
ss_cell_list
[
0
].
l1macind
.
rachpreamble_enable
=
received_msg
->
ittiMsg
.
ss_l1macind_ctrl
.
rachpreamble_enable
;
break
;
break
;
case
TERMINATE_MESSAGE
:
case
TERMINATE_MESSAGE
:
...
...
openair2/LAYER2/rlc_v2/rlc_oai_api.c
View file @
b36e4c10
...
@@ -405,8 +405,8 @@ rb_found:
...
@@ -405,8 +405,8 @@ rb_found:
/* used fields? */
/* used fields? */
ctx
.
module_id
=
ue
->
module_id
;
ctx
.
module_id
=
ue
->
module_id
;
ctx
.
rnti
=
ue
->
rnti
;
ctx
.
rnti
=
ue
->
rnti
;
ctx
.
frame
=
RC
.
ss
.
mac_rlc_data_ind_frame
;
/* Populating the frame received from Lower layer */
ctx
.
frame
=
RC
.
ss
.
ss_cell_list
[
0
].
mac_rlc_data_ind_frame
;
/* Populating the frame received from Lower layer */
ctx
.
subframe
=
RC
.
ss
.
mac_rlc_data_ind_subframe
;
/* Populating the subframe received from Lower layer */
ctx
.
subframe
=
RC
.
ss
.
ss_cell_list
[
0
].
mac_rlc_data_ind_subframe
;
/* Populating the subframe received from Lower layer */
is_enb
=
rlc_manager_get_enb_flag
(
rlc_ue_manager
);
is_enb
=
rlc_manager_get_enb_flag
(
rlc_ue_manager
);
ctx
.
enb_flag
=
is_enb
;
ctx
.
enb_flag
=
is_enb
;
...
...
openair2/RRC/LTE/L2_interface.c
View file @
b36e4c10
...
@@ -340,7 +340,7 @@ mac_rrc_data_ind(
...
@@ -340,7 +340,7 @@ mac_rrc_data_ind(
ctxt
.
brOption
=
brOption
;
ctxt
.
brOption
=
brOption
;
//#ifdef ENB_SS
//#ifdef ENB_SS
if
(
RC
.
ss
.
mode
>=
SS_SOFTMODEM
&&
RC
.
ss
.
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
mode
>=
SS_SOFTMODEM
&&
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
LOG_I
(
RRC
,
"RRC Sending CCCH PDU_IND to SS
\n
"
);
LOG_I
(
RRC
,
"RRC Sending CCCH PDU_IND to SS
\n
"
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
0
,
SS_RRC_PDU_IND
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
0
,
SS_RRC_PDU_IND
);
...
...
openair2/RRC/LTE/L2_interface_common.c
View file @
b36e4c10
...
@@ -122,7 +122,7 @@ rrc_data_ind(
...
@@ -122,7 +122,7 @@ rrc_data_ind(
ctxt_pP
->
rnti
);
ctxt_pP
->
rnti
);
//#ifdef ENB_SS
//#ifdef ENB_SS
if
(
RC
.
ss
.
mode
>=
SS_SOFTMODEM
&&
RC
.
ss
.
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
mode
>=
SS_SOFTMODEM
&&
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
LOG_I
(
RRC
,
"L2 Interface Sending DCCH PDU_IND to SS
\n
"
);
LOG_I
(
RRC
,
"L2 Interface Sending DCCH PDU_IND to SS
\n
"
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
0
,
SS_RRC_PDU_IND
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_RRC_ENB
,
0
,
SS_RRC_PDU_IND
);
...
...
openair2/RRC/LTE/rrc_eNB.c
View file @
b36e4c10
...
@@ -10490,7 +10490,7 @@ void *rrc_enb_process_itti_msg(void *notUsed) {
...
@@ -10490,7 +10490,7 @@ void *rrc_enb_process_itti_msg(void *notUsed) {
}
}
security_mode_command_send
=
TRUE
;
security_mode_command_send
=
TRUE
;
as_security_conf_ciphering
=
FALSE
;
as_security_conf_ciphering
=
FALSE
;
if
(
RC
.
ss
.
CBRA_flag
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
CBRA_flag
)
{
{
RRCConnSetup_PDU_Present
=
FALSE
;
RRCConnSetup_PDU_Present
=
FALSE
;
}
}
...
...
openair3/SS/ss_eNB_drb_task.c
View file @
b36e4c10
...
@@ -231,14 +231,14 @@ ss_eNB_read_from_drb_socket(acpCtx_t ctx){
...
@@ -231,14 +231,14 @@ ss_eNB_read_from_drb_socket(acpCtx_t ctx){
LOG_A
(
ENB_APP
,
"[SS_DRB][DRB_COMMON_REQ] acpDrbProcessFromSSDecSrv Failed
\n
"
);
LOG_A
(
ENB_APP
,
"[SS_DRB][DRB_COMMON_REQ] acpDrbProcessFromSSDecSrv Failed
\n
"
);
break
;
break
;
}
}
if
(
RC
.
ss
.
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
LOG_A
(
ENB_APP
,
"[SS_DRB][DRB_COMMON_REQ] DRB_COMMON_REQ Received in CELL_ACTIVE
\n
"
);
LOG_A
(
ENB_APP
,
"[SS_DRB][DRB_COMMON_REQ] DRB_COMMON_REQ Received in CELL_ACTIVE
\n
"
);
ss_task_handle_drb_pdu_req
(
req
);
ss_task_handle_drb_pdu_req
(
req
);
}
}
else
else
{
{
LOG_W
(
ENB_APP
,
"[SS_DRB][DRB_COMMON_REQ] received in SS state %d
\n
"
,
RC
.
ss
.
State
);
LOG_W
(
ENB_APP
,
"[SS_DRB][DRB_COMMON_REQ] received in SS state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
acpDrbProcessFromSSFreeSrv
(
req
);
acpDrbProcessFromSSFreeSrv
(
req
);
...
@@ -272,19 +272,19 @@ void *ss_eNB_drb_process_itti_msg(void *notUsed)
...
@@ -272,19 +272,19 @@ void *ss_eNB_drb_process_itti_msg(void *notUsed)
if
(
origin_task
==
TASK_SS_PORTMAN
)
if
(
origin_task
==
TASK_SS_PORTMAN
)
{
{
LOG_D
(
ENB_APP
,
"[SS_DRB] DUMMY WAKEUP recevied from PORTMAN state %d
\n
"
,
RC
.
ss
.
State
);
LOG_D
(
ENB_APP
,
"[SS_DRB] DUMMY WAKEUP recevied from PORTMAN state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
else
else
{
{
LOG_A
(
ENB_APP
,
"[SS_DRB] Received SS_DRB_PDU_IND from RRC PDCP
\n
"
);
LOG_A
(
ENB_APP
,
"[SS_DRB] Received SS_DRB_PDU_IND from RRC PDCP
\n
"
);
if
(
RC
.
ss
.
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
ss_send_drb_data
(
&
received_msg
->
ittiMsg
.
ss_drb_pdu_ind
);
ss_send_drb_data
(
&
received_msg
->
ittiMsg
.
ss_drb_pdu_ind
);
}
}
else
else
{
{
LOG_A
(
ENB_APP
,
"ERROR [SS_DRB][SS_DRB_PDU_IND] received in SS state %d
\n
"
,
RC
.
ss
.
State
);
LOG_A
(
ENB_APP
,
"ERROR [SS_DRB][SS_DRB_PDU_IND] received in SS state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
}
}
...
...
openair3/SS/ss_eNB_port_man_task.c
View file @
b36e4c10
...
@@ -363,7 +363,7 @@ static inline void ss_eNB_read_from_socket(acpCtx_t ctx)
...
@@ -363,7 +363,7 @@ static inline void ss_eNB_read_from_socket(acpCtx_t ctx)
{
{
// No message (timeout on socket)
// No message (timeout on socket)
//Send Dummy Wake up ITTI message to SRB task.
//Send Dummy Wake up ITTI message to SRB task.
if
(
RC
.
ss
.
mode
>=
SS_SOFTMODEM
&&
RC
.
ss
.
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
mode
>=
SS_SOFTMODEM
&&
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
LOG_A
(
ENB_SS
,
"[SS-PORTMAN] Sending Wake up signal to SRB task
\n
"
);
LOG_A
(
ENB_SS
,
"[SS-PORTMAN] Sending Wake up signal to SRB task
\n
"
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_SS_PORTMAN
,
0
,
SS_RRC_PDU_IND
);
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_SS_PORTMAN
,
0
,
SS_RRC_PDU_IND
);
...
...
openair3/SS/ss_eNB_srb_task.c
View file @
b36e4c10
...
@@ -354,13 +354,13 @@ ss_eNB_read_from_srb_socket(acpCtx_t ctx)
...
@@ -354,13 +354,13 @@ ss_eNB_read_from_srb_socket(acpCtx_t ctx)
LOG_A
(
ENB_SS
,
"[SS_SRB][EUTRA_RRC_PDU_REQ] acpSysSrbProcessFromSSDecSrv Failed
\n
"
);
LOG_A
(
ENB_SS
,
"[SS_SRB][EUTRA_RRC_PDU_REQ] acpSysSrbProcessFromSSDecSrv Failed
\n
"
);
break
;
break
;
}
}
if
(
RC
.
ss
.
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
ss_task_handle_rrc_pdu_req
(
req
);
ss_task_handle_rrc_pdu_req
(
req
);
}
}
else
else
{
{
LOG_A
(
ENB_SS
,
"ERROR [SS_SRB][EUTRA_RRC_PDU_REQ] received in SS state %d
\n
"
,
RC
.
ss
.
State
);
LOG_A
(
ENB_SS
,
"ERROR [SS_SRB][EUTRA_RRC_PDU_REQ] received in SS state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
acpSysSrbProcessFromSSFreeSrv
(
req
);
acpSysSrbProcessFromSSFreeSrv
(
req
);
...
@@ -452,19 +452,19 @@ void *ss_eNB_srb_process_itti_msg(void *notUsed)
...
@@ -452,19 +452,19 @@ void *ss_eNB_srb_process_itti_msg(void *notUsed)
if
(
origin_task
==
TASK_SS_PORTMAN
)
if
(
origin_task
==
TASK_SS_PORTMAN
)
{
{
LOG_D
(
ENB_APP
,
"[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d
\n
"
,
RC
.
ss
.
State
);
LOG_D
(
ENB_APP
,
"[SS_SRB] DUMMY WAKEUP receviedfrom PORTMAN state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
else
else
{
{
LOG_A
(
ENB_SS
,
"[SS_SRB] Received SS_RRC_PDU_IND from RRC
\n
"
);
LOG_A
(
ENB_SS
,
"[SS_SRB] Received SS_RRC_PDU_IND from RRC
\n
"
);
if
(
RC
.
ss
.
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
ss_send_srb_data
(
&
received_msg
->
ittiMsg
.
ss_rrc_pdu_ind
);
ss_send_srb_data
(
&
received_msg
->
ittiMsg
.
ss_rrc_pdu_ind
);
}
}
else
else
{
{
LOG_A
(
ENB_SS
,
"ERROR [SS_SRB][EUTRA_RRC_PDU_IND] received in SS state %d
\n
"
,
RC
.
ss
.
State
);
LOG_A
(
ENB_SS
,
"ERROR [SS_SRB][EUTRA_RRC_PDU_IND] received in SS state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
}
}
...
...
openair3/SS/ss_eNB_sys_task.c
View file @
b36e4c10
...
@@ -494,8 +494,8 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure)
...
@@ -494,8 +494,8 @@ int sys_add_reconfig_cell(struct CellConfigInfo_Type *AddOrReconfigure)
else
else
{
{
RRC_CONFIGURATION_REQ
(
msg_p
).
RlcPduCCCH_Present
=
false
;
RRC_CONFIGURATION_REQ
(
msg_p
).
RlcPduCCCH_Present
=
false
;
if
(
RC
.
ss
.
State
==
SS_STATE_NOT_CONFIGURED
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
==
SS_STATE_NOT_CONFIGURED
)
RC
.
ss
.
CBRA_flag
=
TRUE
;
RC
.
ss
.
ss_cell_list
[
0
].
CBRA_flag
=
TRUE
;
}
}
}
}
}
}
...
@@ -646,7 +646,7 @@ static void send_sys_cnf(enum ConfirmationResult_Type_Sel resType,
...
@@ -646,7 +646,7 @@ static void send_sys_cnf(enum ConfirmationResult_Type_Sel resType,
int
sys_handle_cell_config_req
(
struct
CellConfigRequest_Type
*
Cell
)
int
sys_handle_cell_config_req
(
struct
CellConfigRequest_Type
*
Cell
)
{
{
int
status
=
false
;
int
status
=
false
;
int
returnState
=
RC
.
ss
.
State
;
int
returnState
=
RC
.
ss
.
ss_cell_list
[
0
].
State
;
enum
SystemConfirm_Type_Sel
cnfType
=
SystemConfirm_Type_Cell
;
enum
SystemConfirm_Type_Sel
cnfType
=
SystemConfirm_Type_Cell
;
enum
ConfirmationResult_Type_Sel
resType
=
ConfirmationResult_Type_Success
;
enum
ConfirmationResult_Type_Sel
resType
=
ConfirmationResult_Type_Success
;
bool
resVal
=
TRUE
;
bool
resVal
=
TRUE
;
...
@@ -664,7 +664,7 @@ int sys_handle_cell_config_req(struct CellConfigRequest_Type *Cell)
...
@@ -664,7 +664,7 @@ int sys_handle_cell_config_req(struct CellConfigRequest_Type *Cell)
cell_config_done_indication
();
cell_config_done_indication
();
}
}
//TODO Change it later to move to cell configuration
//TODO Change it later to move to cell configuration
if
(
RC
.
ss
.
State
==
SS_STATE_NOT_CONFIGURED
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
==
SS_STATE_NOT_CONFIGURED
)
{
{
returnState
=
SS_STATE_CELL_CONFIGURED
;
returnState
=
SS_STATE_CELL_CONFIGURED
;
}
}
...
@@ -698,7 +698,7 @@ int sys_handle_cell_config_req(struct CellConfigRequest_Type *Cell)
...
@@ -698,7 +698,7 @@ int sys_handle_cell_config_req(struct CellConfigRequest_Type *Cell)
*/
*/
static
int
sys_handle_radiobearer_list
(
struct
RadioBearer_Type_RadioBearerList_Type_Dynamic
*
BearerList
)
static
int
sys_handle_radiobearer_list
(
struct
RadioBearer_Type_RadioBearerList_Type_Dynamic
*
BearerList
)
{
{
int
returnState
=
RC
.
ss
.
State
;
int
returnState
=
RC
.
ss
.
ss_cell_list
[
0
].
State
;
enum
SystemConfirm_Type_Sel
cnfType
=
SystemConfirm_Type_RadioBearerList
;
enum
SystemConfirm_Type_Sel
cnfType
=
SystemConfirm_Type_RadioBearerList
;
enum
ConfirmationResult_Type_Sel
resType
=
ConfirmationResult_Type_Success
;
enum
ConfirmationResult_Type_Sel
resType
=
ConfirmationResult_Type_Success
;
bool
resVal
=
TRUE
;
bool
resVal
=
TRUE
;
...
@@ -1068,7 +1068,7 @@ static int sys_handle_radiobearer_list(struct RadioBearer_Type_RadioBearerList_T
...
@@ -1068,7 +1068,7 @@ static int sys_handle_radiobearer_list(struct RadioBearer_Type_RadioBearerList_T
*/
*/
int
sys_handle_pdcp_count_req
(
struct
PDCP_CountReq_Type
*
PdcpCount
)
int
sys_handle_pdcp_count_req
(
struct
PDCP_CountReq_Type
*
PdcpCount
)
{
{
int
returnState
=
RC
.
ss
.
State
;
int
returnState
=
RC
.
ss
.
ss_cell_list
[
0
].
State
;
int
send_res
=
-
1
;
int
send_res
=
-
1
;
switch
(
PdcpCount
->
d
)
switch
(
PdcpCount
->
d
)
...
@@ -1635,25 +1635,25 @@ static void sys_handle_as_security_req(struct AS_Security_Type *ASSecurity)
...
@@ -1635,25 +1635,25 @@ static void sys_handle_as_security_req(struct AS_Security_Type *ASSecurity)
*/
*/
static
void
ss_task_sys_handle_req
(
struct
SYSTEM_CTRL_REQ
*
req
,
ss_set_timinfo_t
*
tinfo
)
static
void
ss_task_sys_handle_req
(
struct
SYSTEM_CTRL_REQ
*
req
,
ss_set_timinfo_t
*
tinfo
)
{
{
int
enterState
=
RC
.
ss
.
State
;
int
enterState
=
RC
.
ss
.
ss_cell_list
[
0
].
State
;
int
exitState
=
RC
.
ss
.
State
;
int
exitState
=
RC
.
ss
.
ss_cell_list
[
0
].
State
;
if
(
req
->
Common
.
CellId
)
if
(
req
->
Common
.
CellId
)
SS_context
.
eutra_cellId
=
req
->
Common
.
CellId
;
SS_context
.
eutra_cellId
=
req
->
Common
.
CellId
;
LOG_A
(
ENB_SS
,
"[SYS] Current SS_STATE %d received SystemRequest_Type %d eutra_cellId %d cnf_flag %d
\n
"
,
LOG_A
(
ENB_SS
,
"[SYS] Current SS_STATE %d received SystemRequest_Type %d eutra_cellId %d cnf_flag %d
\n
"
,
RC
.
ss
.
State
,
req
->
Request
.
d
,
SS_context
.
eutra_cellId
,
req
->
Common
.
ControlInfo
.
CnfFlag
);
RC
.
ss
.
ss_cell_list
[
0
].
State
,
req
->
Request
.
d
,
SS_context
.
eutra_cellId
,
req
->
Common
.
ControlInfo
.
CnfFlag
);
switch
(
RC
.
ss
.
State
)
switch
(
RC
.
ss
.
ss_cell_list
[
0
].
State
)
{
{
case
SS_STATE_NOT_CONFIGURED
:
case
SS_STATE_NOT_CONFIGURED
:
if
(
req
->
Request
.
d
==
SystemRequest_Type_Cell
)
if
(
req
->
Request
.
d
==
SystemRequest_Type_Cell
)
{
{
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_Cell received
\n
"
);
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_Cell received
\n
"
);
exitState
=
sys_handle_cell_config_req
(
&
(
req
->
Request
.
v
.
Cell
));
exitState
=
sys_handle_cell_config_req
(
&
(
req
->
Request
.
v
.
Cell
));
RC
.
ss
.
State
=
exitState
;
RC
.
ss
.
ss_cell_list
[
0
].
State
=
exitState
;
}
}
else
else
{
{
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
RC
.
ss
.
State
,
req
->
Request
.
d
);
RC
.
ss
.
ss_cell_list
[
0
].
State
,
req
->
Request
.
d
);
}
}
break
;
break
;
case
SS_STATE_CELL_CONFIGURED
:
case
SS_STATE_CELL_CONFIGURED
:
...
@@ -1661,12 +1661,12 @@ static void ss_task_sys_handle_req(struct SYSTEM_CTRL_REQ *req, ss_set_timinfo_t
...
@@ -1661,12 +1661,12 @@ static void ss_task_sys_handle_req(struct SYSTEM_CTRL_REQ *req, ss_set_timinfo_t
{
{
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_RadioBearerList received
\n
"
);
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_RadioBearerList received
\n
"
);
exitState
=
sys_handle_radiobearer_list
(
&
(
req
->
Request
.
v
.
RadioBearerList
));
exitState
=
sys_handle_radiobearer_list
(
&
(
req
->
Request
.
v
.
RadioBearerList
));
RC
.
ss
.
State
=
exitState
;
RC
.
ss
.
ss_cell_list
[
0
].
State
=
exitState
;
}
}
else
else
{
{
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
RC
.
ss
.
State
,
req
->
Request
.
d
);
RC
.
ss
.
ss_cell_list
[
0
].
State
,
req
->
Request
.
d
);
}
}
break
;
break
;
case
SS_STATE_CELL_BROADCASTING
:
case
SS_STATE_CELL_BROADCASTING
:
...
@@ -1678,12 +1678,12 @@ static void ss_task_sys_handle_req(struct SYSTEM_CTRL_REQ *req, ss_set_timinfo_t
...
@@ -1678,12 +1678,12 @@ static void ss_task_sys_handle_req(struct SYSTEM_CTRL_REQ *req, ss_set_timinfo_t
case
SystemRequest_Type_Cell
:
case
SystemRequest_Type_Cell
:
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_Cell received
\n
"
);
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_Cell received
\n
"
);
exitState
=
sys_handle_cell_config_req
(
&
(
req
->
Request
.
v
.
Cell
));
exitState
=
sys_handle_cell_config_req
(
&
(
req
->
Request
.
v
.
Cell
));
RC
.
ss
.
State
=
exitState
;
RC
.
ss
.
ss_cell_list
[
0
].
State
=
exitState
;
break
;
break
;
case
SystemRequest_Type_RadioBearerList
:
case
SystemRequest_Type_RadioBearerList
:
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_RadioBearerList received in SS_STATE_CELL_ACTIVE state
\n
"
);
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_RadioBearerList received in SS_STATE_CELL_ACTIVE state
\n
"
);
exitState
=
sys_handle_radiobearer_list
(
&
(
req
->
Request
.
v
.
RadioBearerList
));
exitState
=
sys_handle_radiobearer_list
(
&
(
req
->
Request
.
v
.
RadioBearerList
));
RC
.
ss
.
State
=
exitState
;
RC
.
ss
.
ss_cell_list
[
0
].
State
=
exitState
;
break
;
break
;
case
SystemRequest_Type_CellAttenuationList
:
case
SystemRequest_Type_CellAttenuationList
:
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_CellAttenuationList received
\n
"
);
LOG_A
(
ENB_SS
,
"[SYS] SystemRequest_Type_CellAttenuationList received
\n
"
);
...
@@ -1741,22 +1741,22 @@ static void ss_task_sys_handle_req(struct SYSTEM_CTRL_REQ *req, ss_set_timinfo_t
...
@@ -1741,22 +1741,22 @@ static void ss_task_sys_handle_req(struct SYSTEM_CTRL_REQ *req, ss_set_timinfo_t
else
else
{
{
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
RC
.
ss
.
State
,
req
->
Request
.
d
);
RC
.
ss
.
ss_cell_list
[
0
].
State
,
req
->
Request
.
d
);
}
}
break
;
break
;
case
SS_STATE_AS_RBS_ACTIVE
:
case
SS_STATE_AS_RBS_ACTIVE
:
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
RC
.
ss
.
State
,
req
->
Request
.
d
);
RC
.
ss
.
ss_cell_list
[
0
].
State
,
req
->
Request
.
d
);
break
;
break
;
default:
default:
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
LOG_A
(
ENB_SS
,
"[SYS] Error ! SS_STATE %d Invalid SystemRequest_Type %d received
\n
"
,
RC
.
ss
.
State
,
req
->
Request
.
d
);
RC
.
ss
.
ss_cell_list
[
0
].
State
,
req
->
Request
.
d
);
break
;
break
;
}
}
LOG_A
(
ENB_SS
,
"[SYS] Current SS_STATE %d New SS_STATE %d received SystemRequest_Type %d
\n
"
,
LOG_A
(
ENB_SS
,
"[SYS] Current SS_STATE %d New SS_STATE %d received SystemRequest_Type %d
\n
"
,
enterState
,
RC
.
ss
.
State
,
req
->
Request
.
d
);
enterState
,
RC
.
ss
.
ss_cell_list
[
0
].
State
,
req
->
Request
.
d
);
}
}
/*
/*
* Function : valid_sys_msg
* Function : valid_sys_msg
...
@@ -1786,12 +1786,12 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
...
@@ -1786,12 +1786,12 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
// return FALSE;
// return FALSE;
// }
// }
LOG_A
(
ENB_SS
,
"[SYS] received req : %d for cell %d RC.ss.state %d
\n
"
,
LOG_A
(
ENB_SS
,
"[SYS] received req : %d for cell %d RC.ss.s
s_cell_list[0].S
tate %d
\n
"
,
req
->
Request
.
d
,
req
->
Common
.
CellId
,
RC
.
ss
.
State
);
req
->
Request
.
d
,
req
->
Common
.
CellId
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
switch
(
req
->
Request
.
d
)
switch
(
req
->
Request
.
d
)
{
{
case
SystemRequest_Type_Cell
:
case
SystemRequest_Type_Cell
:
if
(
RC
.
ss
.
State
>=
SS_STATE_NOT_CONFIGURED
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_NOT_CONFIGURED
)
{
{
valid
=
TRUE
;
valid
=
TRUE
;
sendDummyCnf
=
FALSE
;
sendDummyCnf
=
FALSE
;
...
@@ -1803,7 +1803,7 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
...
@@ -1803,7 +1803,7 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
}
}
break
;
break
;
case
SystemRequest_Type_EnquireTiming
:
case
SystemRequest_Type_EnquireTiming
:
if
(
RC
.
ss
.
State
==
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
==
SS_STATE_CELL_ACTIVE
)
{
{
valid
=
TRUE
;
valid
=
TRUE
;
sendDummyCnf
=
FALSE
;
sendDummyCnf
=
FALSE
;
...
@@ -1811,7 +1811,7 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
...
@@ -1811,7 +1811,7 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
}
}
break
;
break
;
case
SystemRequest_Type_CellAttenuationList
:
case
SystemRequest_Type_CellAttenuationList
:
if
(
RC
.
ss
.
State
==
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
==
SS_STATE_CELL_ACTIVE
)
{
{
valid
=
TRUE
;
valid
=
TRUE
;
sendDummyCnf
=
FALSE
;
sendDummyCnf
=
FALSE
;
...
@@ -1831,7 +1831,7 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
...
@@ -1831,7 +1831,7 @@ bool valid_sys_msg(struct SYSTEM_CTRL_REQ *req)
reqCnfFlag_g
=
req
->
Common
.
ControlInfo
.
CnfFlag
;
reqCnfFlag_g
=
req
->
Common
.
ControlInfo
.
CnfFlag
;
break
;
break
;
case
SystemRequest_Type_PdcpCount
:
case
SystemRequest_Type_PdcpCount
:
if
(
RC
.
ss
.
State
==
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
==
SS_STATE_CELL_ACTIVE
)
{
{
valid
=
TRUE
;
valid
=
TRUE
;
sendDummyCnf
=
FALSE
;
sendDummyCnf
=
FALSE
;
...
@@ -2071,12 +2071,12 @@ void *ss_eNB_sys_task(void *arg)
...
@@ -2071,12 +2071,12 @@ void *ss_eNB_sys_task(void *arg)
// Set the state to NOT_CONFIGURED for Cell Config processing mode
// Set the state to NOT_CONFIGURED for Cell Config processing mode
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM
)
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM
)
{
{
RC
.
ss
.
State
=
SS_STATE_NOT_CONFIGURED
;
RC
.
ss
.
ss_cell_list
[
0
].
State
=
SS_STATE_NOT_CONFIGURED
;
}
}
// Set the state to CELL_ACTIVE for SRB processing mode
// Set the state to CELL_ACTIVE for SRB processing mode
else
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM_SRB
)
else
if
(
RC
.
ss
.
mode
==
SS_SOFTMODEM_SRB
)
{
{
RC
.
ss
.
State
=
SS_STATE_CELL_ACTIVE
;
RC
.
ss
.
ss_cell_list
[
0
].
State
=
SS_STATE_CELL_ACTIVE
;
}
}
while
(
1
)
while
(
1
)
{
{
...
...
openair3/SS/ss_eNB_sysind_task.c
View file @
b36e4c10
...
@@ -278,19 +278,19 @@ void *ss_eNB_sysind_process_itti_msg(void *notUsed)
...
@@ -278,19 +278,19 @@ void *ss_eNB_sysind_process_itti_msg(void *notUsed)
if
(
origin_task
==
TASK_SS_PORTMAN
)
if
(
origin_task
==
TASK_SS_PORTMAN
)
{
{
LOG_D
(
ENB_APP
,
"[SS_SYSIND] DUMMY WAKEUP receviedfrom PORTMAN state %d
\n
"
,
RC
.
ss
.
State
);
LOG_D
(
ENB_APP
,
"[SS_SYSIND] DUMMY WAKEUP receviedfrom PORTMAN state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
else
else
{
{
LOG_A
(
ENB_SS
,
"[SS_SYSIND] Received SS_SYSTEM_IND
\n
"
);
LOG_A
(
ENB_SS
,
"[SS_SYSIND] Received SS_SYSTEM_IND
\n
"
);
if
(
RC
.
ss
.
State
>=
SS_STATE_CELL_CONFIGURED
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_CONFIGURED
)
{
{
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
ss_send_sysind_data
(
&
received_msg
->
ittiMsg
.
ss_system_ind
);
ss_send_sysind_data
(
&
received_msg
->
ittiMsg
.
ss_system_ind
);
}
}
else
else
{
{
LOG_E
(
ENB_SS
,
"[SS_SYSIND][SS_SYSTEM_IND] received in SS state %d
\n
"
,
RC
.
ss
.
State
);
LOG_E
(
ENB_SS
,
"[SS_SYSIND][SS_SYSTEM_IND] received in SS state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
}
}
result
=
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_msg
),
received_msg
);
result
=
itti_free
(
ITTI_MSG_ORIGIN_ID
(
received_msg
),
received_msg
);
...
...
openair3/SS/ss_eNB_vng_task.c
View file @
b36e4c10
...
@@ -200,8 +200,8 @@ ss_eNB_read_from_vng_socket(acpCtx_t ctx)
...
@@ -200,8 +200,8 @@ ss_eNB_read_from_vng_socket(acpCtx_t ctx)
break
;
break
;
}
}
if
(
RC
.
ss
.
State
<
SS_STATE_CELL_ACTIVE
)
{
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
<
SS_STATE_CELL_ACTIVE
)
{
LOG_A
(
ENB_SS
,
"[SS-VNG] Request received in an invalid state: %d
\n
"
,
RC
.
ss
.
State
);
LOG_A
(
ENB_SS
,
"[SS-VNG] Request received in an invalid state: %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
break
;
break
;
}
}
/** TODO: Dump message here */
/** TODO: Dump message here */
...
...
openair3/SS/ss_eNB_vtp_task.c
View file @
b36e4c10
...
@@ -488,7 +488,8 @@ void* ss_eNB_vtp_task(void *arg) {
...
@@ -488,7 +488,8 @@ void* ss_eNB_vtp_task(void *arg) {
ss_eNB_wait_first_msg
();
ss_eNB_wait_first_msg
();
RC
.
ss
.
vtp_ready
=
1
;
SS_context
.
vtp_enabled
=
1
;
RC
.
ss
.
ss_cell_list
[
0
].
vtp_ready
=
1
;
ss_enable_vtp
();
ss_enable_vtp
();
sleep
(
1
);
sleep
(
1
);
while
(
1
)
{
while
(
1
)
{
...
...
openair3/SS/ss_gNB_srb_task.c
View file @
b36e4c10
...
@@ -300,13 +300,13 @@ ss_gNB_read_from_srb_socket(acpCtx_t ctx)
...
@@ -300,13 +300,13 @@ ss_gNB_read_from_srb_socket(acpCtx_t ctx)
LOG_A
(
GNB_APP
,
"[SS_SRB][NR_RRC_PDU_REQ] acpNrSysSrbProcessFromSSDecSrv Failed
\n
"
);
LOG_A
(
GNB_APP
,
"[SS_SRB][NR_RRC_PDU_REQ] acpNrSysSrbProcessFromSSDecSrv Failed
\n
"
);
break
;
break
;
}
}
if
(
RC
.
ss
.
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
ss_task_handle_rrc_pdu_req
(
req
);
ss_task_handle_rrc_pdu_req
(
req
);
}
}
else
else
{
{
LOG_A
(
GNB_APP
,
"ERROR [SS_SRB][NR_RRC_PDU_REQ] received in SS state %d
\n
"
,
RC
.
ss
.
State
);
LOG_A
(
GNB_APP
,
"ERROR [SS_SRB][NR_RRC_PDU_REQ] received in SS state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
acpNrSysSrbProcessFromSSFreeSrv
(
req
);
acpNrSysSrbProcessFromSSFreeSrv
(
req
);
...
@@ -361,7 +361,7 @@ void ss_gNB_srb_init(void)
...
@@ -361,7 +361,7 @@ void ss_gNB_srb_init(void)
buffer
=
(
unsigned
char
*
)
acpMalloc
(
size
);
buffer
=
(
unsigned
char
*
)
acpMalloc
(
size
);
assert
(
buffer
);
assert
(
buffer
);
RC
.
ss
.
State
=
SS_STATE_CELL_ACTIVE
;
RC
.
ss
.
ss_cell_list
[
0
].
State
=
SS_STATE_CELL_ACTIVE
;
itti_subscribe_event_fd
(
TASK_SS_SRB
,
fd1
);
itti_subscribe_event_fd
(
TASK_SS_SRB
,
fd1
);
itti_mark_task_ready
(
TASK_SS_SRB
);
itti_mark_task_ready
(
TASK_SS_SRB
);
...
@@ -393,14 +393,14 @@ void *ss_gNB_srb_process_itti_msg(void *notUsed)
...
@@ -393,14 +393,14 @@ void *ss_gNB_srb_process_itti_msg(void *notUsed)
#endif
#endif
{
{
LOG_A
(
GNB_APP
,
"[SS_SRB] Received SS_NRRRC_PDU_IND from RRC
\n
"
);
LOG_A
(
GNB_APP
,
"[SS_SRB] Received SS_NRRRC_PDU_IND from RRC
\n
"
);
if
(
RC
.
ss
.
State
>=
SS_STATE_CELL_ACTIVE
)
if
(
RC
.
ss
.
ss_cell_list
[
0
].
State
>=
SS_STATE_CELL_ACTIVE
)
{
{
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
instance_g
=
ITTI_MSG_DESTINATION_INSTANCE
(
received_msg
);
ss_send_srb_data
(
&
received_msg
->
ittiMsg
.
ss_nrrrc_pdu_ind
);
ss_send_srb_data
(
&
received_msg
->
ittiMsg
.
ss_nrrrc_pdu_ind
);
}
}
else
else
{
{
LOG_A
(
GNB_APP
,
"ERROR [SS_SRB][NR_RRC_PDU_IND] received in SS state %d
\n
"
,
RC
.
ss
.
State
);
LOG_A
(
GNB_APP
,
"ERROR [SS_SRB][NR_RRC_PDU_IND] received in SS state %d
\n
"
,
RC
.
ss
.
ss_cell_list
[
0
].
State
);
}
}
}
}
...
...
targets/ARCH/SS/ss_config.h
View file @
b36e4c10
...
@@ -43,6 +43,15 @@ typedef enum ss_mode {
...
@@ -43,6 +43,15 @@ typedef enum ss_mode {
#define SS_SOFTMODEM (0x01)
#define SS_SOFTMODEM (0x01)
#define SS_SOFTMODEM_SRB (0x02)
#define SS_SOFTMODEM_SRB (0x02)
#endif
#endif
typedef
struct
ss_cell_config_s
{
/** State info */
int
State
;
int
vtp_ready
;
int
CBRA_flag
;
int
mac_rlc_data_ind_frame
;
int
mac_rlc_data_ind_subframe
;
ss_l1macind_ctrl_t
l1macind
;
}
ss_cell_config_t
;
typedef
struct
ss_config_s
{
typedef
struct
ss_config_s
{
/** SS mode of operation */
/** SS mode of operation */
...
@@ -71,6 +80,8 @@ typedef struct ss_config_s {
...
@@ -71,6 +80,8 @@ typedef struct ss_config_s {
int
mac_rlc_data_ind_frame
;
int
mac_rlc_data_ind_frame
;
int
mac_rlc_data_ind_subframe
;
int
mac_rlc_data_ind_subframe
;
ss_l1macind_ctrl_t
l1macind
;
ss_l1macind_ctrl_t
l1macind
;
/** Cell Config Array */
ss_cell_config_t
ss_cell_list
[
8
];
}
ss_config_t
;
}
ss_config_t
;
typedef
enum
{
typedef
enum
{
...
...
targets/RT/USER/lte-enb.c
View file @
b36e4c10
...
@@ -278,8 +278,8 @@ static inline int rxtx(PHY_VARS_eNB *eNB,
...
@@ -278,8 +278,8 @@ static inline int rxtx(PHY_VARS_eNB *eNB,
LOG_D
(
PHY
,
"[SS] SS_UPD_TIM_INFO from L1_Thread to SYS task itti_send_msg_to_task sfn %d sf %d"
,
LOG_D
(
PHY
,
"[SS] SS_UPD_TIM_INFO from L1_Thread to SYS task itti_send_msg_to_task sfn %d sf %d"
,
eNB
->
UL_INFO
.
subframe
,
eNB
->
UL_INFO
.
frame
);
/** TODO: Need separate logging for SS */
eNB
->
UL_INFO
.
subframe
,
eNB
->
UL_INFO
.
frame
);
/** TODO: Need separate logging for SS */
}
}
MessageDef
*
message_p_vtp
=
itti_alloc_new_message
(
TASK_
ENB_APP
,
0
,
SS_UPD_TIM_INFO
);
MessageDef
*
message_p_vtp
=
itti_alloc_new_message
(
TASK_
VTP
,
INSTANCE_DEFAULT
,
SS_UPD_TIM_INFO
);
if
(
message_p_vtp
&&
RC
.
ss
.
vtp_ready
)
if
(
message_p_vtp
&&
RC
.
ss
.
ss_cell_list
[
0
].
vtp_ready
)
{
{
SS_UPD_TIM_INFO
(
message_p_vtp
).
sf
=
eNB
->
UL_INFO
.
subframe
;
SS_UPD_TIM_INFO
(
message_p_vtp
).
sf
=
eNB
->
UL_INFO
.
subframe
;
SS_UPD_TIM_INFO
(
message_p_vtp
).
sfn
=
eNB
->
UL_INFO
.
frame
;
SS_UPD_TIM_INFO
(
message_p_vtp
).
sfn
=
eNB
->
UL_INFO
.
frame
;
...
...
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