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
spbro
OpenXG-RAN
Commits
ec8d2fa5
Commit
ec8d2fa5
authored
Jun 30, 2023
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/NR_UE_RRC_handling_RA' into integration_2023_w26
parents
98fda17e
e45da1a6
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
41 additions
and
9 deletions
+41
-9
openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
+2
-0
openair2/COMMON/mac_messages_def.h
openair2/COMMON/mac_messages_def.h
+2
-0
openair2/COMMON/mac_messages_types.h
openair2/COMMON/mac_messages_types.h
+9
-1
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+1
-1
openair2/RRC/NR_UE/L2_interface_ue.c
openair2/RRC/NR_UE/L2_interface_ue.c
+5
-7
openair2/RRC/NR_UE/rrc_UE.c
openair2/RRC/NR_UE/rrc_UE.c
+21
-0
openair2/RRC/NR_UE/rrc_proto.h
openair2/RRC/NR_UE/rrc_proto.h
+1
-0
No files found.
openair1/SIMULATION/NR_PHY/nr_dummy_functions.c
View file @
ec8d2fa5
...
...
@@ -32,6 +32,8 @@ void nr_mac_rrc_sync_ind(const module_id_t module_id,
const
frame_t
frame
,
const
bool
in_sync
)
{}
void
nr_mac_rrc_ra_ind
(
const
module_id_t
mod_id
,
int
frame
,
bool
success
)
{}
void
rrc_data_ind
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
const
rb_id_t
Srb_id
,
const
sdu_size_t
sdu_sizeP
,
...
...
openair2/COMMON/mac_messages_def.h
View file @
ec8d2fa5
...
...
@@ -48,6 +48,8 @@ MESSAGE_DEF(RRC_MAC_MCCH_DATA_IND, MESSAGE_PRIORITY_MED_PLUS, RrcMacMcchDat
MESSAGE_DEF
(
RRC_MAC_PCCH_DATA_REQ
,
MESSAGE_PRIORITY_MED_PLUS
,
RrcMacPcchDataReq
,
rrc_mac_pcch_data_req
)
MESSAGE_DEF
(
NR_RRC_MAC_RA_IND
,
MESSAGE_PRIORITY_MED_PLUS
,
NRRrcMacRaInd
,
nr_rrc_mac_ra_ind
)
/* RRC configures DRX context (MAC timers) of a UE */
MESSAGE_DEF
(
RRC_MAC_DRX_CONFIG_REQ
,
MESSAGE_PRIORITY_MED
,
rrc_mac_drx_config_req_t
,
rrc_mac_drx_config_req
)
...
...
openair2/COMMON/mac_messages_types.h
View file @
ec8d2fa5
...
...
@@ -54,7 +54,9 @@
#define RRC_MAC_MCCH_DATA_IND(mSGpTR) (mSGpTR)->ittiMsg.rrc_mac_mcch_data_ind
#define RRC_MAC_PCCH_DATA_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_mac_pcch_data_req
#define RRC_MAC_DRX_CONFIG_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_mac_drx_config_req
#define NR_RRC_MAC_RA_IND(mSGpTR) (mSGpTR)->ittiMsg.nr_rrc_mac_ra_ind
#define RRC_MAC_DRX_CONFIG_REQ(mSGpTR) (mSGpTR)->ittiMsg.rrc_mac_drx_config_req
// Some constants from "LAYER2/MAC/defs.h"
#define BCCH_SDU_SIZE (512)
...
...
@@ -65,6 +67,12 @@
//-------------------------------------------------------------------------------------------//
// Messages between RRC and MAC layers
typedef
struct
NRRrcMacRaInd_s
{
uint32_t
frame
;
bool
RA_succeeded
;
}
NRRrcMacRaInd
;
typedef
struct
RrcMacInSyncInd_s
{
uint32_t
frame
;
uint8_t
sub_frame
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
View file @
ec8d2fa5
...
...
@@ -896,7 +896,6 @@ void nr_ra_succeeded(const module_id_t mod_id, const uint8_t gNB_index, const fr
if
(
ra
->
cfra
)
{
LOG_I
(
MAC
,
"[UE %d][%d.%d][RAPROC] RA procedure succeeded. CF-RA: RAR successfully received.
\n
"
,
mod_id
,
frame
,
slot
);
nr_rrc_RA_succeeded
(
mod_id
,
gNB_index
);
mac
->
state
=
UE_CONNECTED
;
ra
->
RA_window_cnt
=
-
1
;
}
else
{
...
...
@@ -911,6 +910,7 @@ void nr_ra_succeeded(const module_id_t mod_id, const uint8_t gNB_index, const fr
LOG_D
(
MAC
,
"In %s: [UE %d] clearing RA_active flag...
\n
"
,
__FUNCTION__
,
mod_id
);
ra
->
RA_active
=
0
;
ra
->
ra_state
=
RA_SUCCEEDED
;
nr_mac_rrc_ra_ind
(
mod_id
,
frame
,
true
);
}
// Handling failure of RA procedure @ MAC layer
...
...
openair2/RRC/NR_UE/L2_interface_ue.c
View file @
ec8d2fa5
...
...
@@ -155,12 +155,10 @@ int8_t nr_mac_rrc_data_req_ue(const module_id_t Mod_idP,
return
0
;
}
int8_t
nr_rrc_RA_succeeded
(
const
module_id_t
mod_id
,
const
uint8_t
gNB_index
)
void
nr_mac_rrc_ra_ind
(
const
module_id_t
mod_id
,
int
frame
,
bool
success
)
{
if
(
NR_UE_rrc_inst
[
mod_id
].
timers_and_constants
.
T304_active
==
true
)
{
LOG_W
(
NR_RRC
,
"T304 was stoped with value %i
\n
"
,
NR_UE_rrc_inst
[
mod_id
].
timers_and_constants
.
T304_cnt
);
NR_UE_rrc_inst
[
mod_id
].
timers_and_constants
.
T304_active
=
false
;
NR_UE_rrc_inst
[
mod_id
].
timers_and_constants
.
T304_cnt
=
0
;
}
return
0
;
MessageDef
*
message_p
=
itti_alloc_new_message
(
TASK_MAC_UE
,
0
,
NR_RRC_MAC_RA_IND
);
NR_RRC_MAC_RA_IND
(
message_p
).
frame
=
frame
;
NR_RRC_MAC_RA_IND
(
message_p
).
RA_succeeded
=
success
;
itti_send_msg_to_task
(
TASK_RRC_NRUE
,
GNB_MODULE_ID_TO_INSTANCE
(
mod_id
),
message_p
);
}
openair2/RRC/NR_UE/rrc_UE.c
View file @
ec8d2fa5
...
...
@@ -2249,6 +2249,18 @@ int32_t nr_rrc_ue_establish_drb(module_id_t ue_mod_idP,
return
0
;
}
void
nr_rrc_handle_ra_indication
(
unsigned
int
mod_id
,
bool
ra_succeeded
)
{
NR_UE_Timers_Constants_t
*
timers
=
&
NR_UE_rrc_inst
[
mod_id
].
timers_and_constants
;
if
(
ra_succeeded
&&
timers
->
T304_active
==
true
)
{
// successful Random Access procedure triggered by reconfigurationWithSync
timers
->
T304_active
=
false
;
timers
->
T304_cnt
=
0
;
// TODO handle the rest of procedures as described in 5.3.5.3 for when
// reconfigurationWithSync is included in spCellConfig
}
}
void
*
rrc_nrue_task
(
void
*
args_p
)
{
MessageDef
*
msg_p
;
...
...
@@ -2293,6 +2305,15 @@ void *rrc_nrue_task(void *args_p)
nr_rrc_handle_timers
(
timers
);
break
;
case
NR_RRC_MAC_RA_IND
:
LOG_D
(
NR_RRC
,
"[UE %d] Received %s: frame %d
\n
RA %s"
,
ue_mod_id
,
ITTI_MSG_NAME
(
msg_p
),
NR_RRC_MAC_RA_IND
(
msg_p
).
frame
,
NR_RRC_MAC_RA_IND
(
msg_p
).
RA_succeeded
?
"successful"
:
"failed"
);
nr_rrc_handle_ra_indication
(
ue_mod_id
,
NR_RRC_MAC_RA_IND
(
msg_p
).
RA_succeeded
);
break
;
case
NR_RRC_MAC_BCCH_DATA_IND
:
LOG_D
(
NR_RRC
,
"[UE %d] Received %s: frameP %d, gNB %d
\n
"
,
ue_mod_id
,
ITTI_MSG_NAME
(
msg_p
),
NR_RRC_MAC_BCCH_DATA_IND
(
msg_p
).
frame
,
NR_RRC_MAC_BCCH_DATA_IND
(
msg_p
).
gnb_index
);
...
...
openair2/RRC/NR_UE/rrc_proto.h
View file @
ec8d2fa5
...
...
@@ -116,6 +116,7 @@ int8_t nr_mac_rrc_data_ind_ue(const module_id_t module_id,
void
nr_mac_rrc_sync_ind
(
const
module_id_t
module_id
,
const
frame_t
frame
,
const
bool
in_sync
);
void
nr_mac_rrc_ra_ind
(
const
module_id_t
mod_id
,
int
frame
,
bool
success
);
/**\brief
\param module_id module 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