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
Michael Black
OpenXG-RAN
Commits
ca066686
Commit
ca066686
authored
Mar 21, 2022
by
luis_pereira87
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Handle RRC processing time at gNB
parent
720af7a4
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
130 additions
and
26 deletions
+130
-26
openair2/GNB_APP/gnb_config.c
openair2/GNB_APP/gnb_config.c
+1
-2
openair2/LAYER2/NR_MAC_gNB/config.c
openair2/LAYER2/NR_MAC_gNB/config.c
+20
-3
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
+3
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
+7
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
+14
-9
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+22
-0
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
+1
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
+3
-1
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+2
-1
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+9
-0
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
+2
-1
openair2/RRC/NR/nr_rrc_defs.h
openair2/RRC/NR/nr_rrc_defs.h
+5
-1
openair2/RRC/NR/rrc_gNB.c
openair2/RRC/NR/rrc_gNB.c
+39
-4
openair2/RRC/NR/rrc_gNB_nsa.c
openair2/RRC/NR/rrc_gNB_nsa.c
+2
-3
No files found.
openair2/GNB_APP/gnb_config.c
View file @
ca066686
...
@@ -2066,8 +2066,7 @@ void configure_gnb_du_mac(int inst) {
...
@@ -2066,8 +2066,7 @@ void configure_gnb_du_mac(int inst) {
NULL
,
NULL
,
0
,
0
,
0
,
// rnti
0
,
// rnti
(
NR_CellGroupConfig_t
*
)
NULL
NULL
);
);
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/config.c
View file @
ca066686
...
@@ -449,6 +449,25 @@ void config_common(int Mod_idP, int ssb_SubcarrierOffset, rrc_pdsch_AntennaPorts
...
@@ -449,6 +449,25 @@ void config_common(int Mod_idP, int ssb_SubcarrierOffset, rrc_pdsch_AntennaPorts
}
}
int
nr_mac_enable_ue_rrc_processing_timer
(
module_id_t
Mod_idP
,
rnti_t
rnti
,
NR_SubcarrierSpacing_t
subcarrierSpacing
,
uint32_t
rrc_reconfiguration_delay
)
{
if
(
rrc_reconfiguration_delay
>
0
)
{
const
int
UE_id
=
find_nr_UE_id
(
Mod_idP
,
rnti
);
if
(
UE_id
>=
0
)
{
NR_UE_info_t
*
UE_info
=
&
RC
.
nrmac
[
Mod_idP
]
->
UE_info
;
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
if
(
sched_ctrl
->
rrc_processing_timer
==
0
)
{
const
uint16_t
sf_ahead
=
(
uint16_t
)
ceil
(
6
.
0
/
(
float
)(
0x01
<<
subcarrierSpacing
));
const
uint16_t
sl_ahead
=
sf_ahead
*
(
0x01
<<
subcarrierSpacing
);
sched_ctrl
->
rrc_processing_timer
=
(
rrc_reconfiguration_delay
<<
subcarrierSpacing
)
+
sl_ahead
;
LOG_I
(
NR_MAC
,
"Activating RRC processing timer for UE %d
\n
"
,
UE_id
);
}
}
else
{
LOG_W
(
NR_MAC
,
"Could not find UE for RNTI 0x%04x
\n
"
,
rnti
);
return
-
1
;
}
}
return
0
;
}
int
rrc_mac_config_req_gNB
(
module_id_t
Mod_idP
,
int
rrc_mac_config_req_gNB
(
module_id_t
Mod_idP
,
int
ssb_SubcarrierOffset
,
int
ssb_SubcarrierOffset
,
...
@@ -692,8 +711,6 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
...
@@ -692,8 +711,6 @@ int rrc_mac_config_req_gNB(module_id_t Mod_idP,
}
}
}
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG
,
VCD_FUNCTION_OUT
);
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_RRC_MAC_CONFIG
,
VCD_FUNCTION_OUT
);
return
(
0
);
return
0
;
}
// END rrc_mac_config_req_gNB
}
// END rrc_mac_config_req_gNB
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler.c
View file @
ca066686
...
@@ -346,6 +346,9 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
...
@@ -346,6 +346,9 @@ void gNB_dlsch_ulsch_scheduler(module_id_t module_idP,
LOG_I
(
NR_MAC
,
"Frame.Slot %d.%d
\n
%s
\n
"
,
frame
,
slot
,
stats_output
);
LOG_I
(
NR_MAC
,
"Frame.Slot %d.%d
\n
%s
\n
"
,
frame
,
slot
,
stats_output
);
}
}
// This updates the timers running at MAC layer
nr_mac_update_timers
(
module_idP
,
frame
,
slot
);
// This schedules MIB
// This schedules MIB
schedule_nr_mib
(
module_idP
,
frame
,
slot
);
schedule_nr_mib
(
module_idP
,
frame
,
slot
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_RA.c
View file @
ca066686
...
@@ -1946,6 +1946,13 @@ void nr_check_Msg4_Ack(module_id_t module_id, int CC_id, frame_t frame, sub_fram
...
@@ -1946,6 +1946,13 @@ void nr_check_Msg4_Ack(module_id_t module_id, int CC_id, frame_t frame, sub_fram
LOG_A
(
NR_MAC
,
"(ue %i, rnti 0x%04x) Received Ack of RA-Msg4. CBRA procedure succeeded!
\n
"
,
UE_id
,
ra
->
rnti
);
LOG_A
(
NR_MAC
,
"(ue %i, rnti 0x%04x) Received Ack of RA-Msg4. CBRA procedure succeeded!
\n
"
,
UE_id
,
ra
->
rnti
);
UE_info
->
active
[
UE_id
]
=
true
;
UE_info
->
active
[
UE_id
]
=
true
;
UE_info
->
Msg4_ACKed
[
UE_id
]
=
true
;
UE_info
->
Msg4_ACKed
[
UE_id
]
=
true
;
const
NR_SIB1_t
*
sib1
=
RC
.
nrmac
[
module_id
]
->
common_channels
[
0
].
sib1
?
RC
.
nrmac
[
module_id
]
->
common_channels
[
0
].
sib1
->
message
.
choice
.
c1
->
choice
.
systemInformationBlockType1
:
NULL
;
NR_BWP_t
*
genericParameters
=
get_dl_bwp_genericParameters
(
sched_ctrl
->
active_bwp
,
RC
.
nrmac
[
module_id
]
->
common_channels
[
0
].
ServingCellConfigCommon
,
sib1
);
// 3GPP TS 38.331 Section 12 Table 12.1-1: UE performance requirements for RRC procedures for UEs
sched_ctrl
->
rrc_processing_timer
=
(
NR_RRC_SETUP_DELAY_MS
<<
genericParameters
->
subcarrierSpacing
);
// RRCSetup 10 ms
}
}
else
{
else
{
LOG_I
(
NR_MAC
,
"(ue %i, rnti 0x%04x) RA Procedure failed at Msg4!
\n
"
,
UE_id
,
ra
->
rnti
);
LOG_I
(
NR_MAC
,
"(ue %i, rnti 0x%04x) RA Procedure failed at Msg4!
\n
"
,
UE_id
,
ra
->
rnti
);
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_dlsch.c
View file @
ca066686
...
@@ -488,17 +488,22 @@ void nr_store_dlsch_buffer(module_id_t module_id,
...
@@ -488,17 +488,22 @@ void nr_store_dlsch_buffer(module_id_t module_id,
const
int
lcid
=
sched_ctrl
->
dl_lc_ids
[
i
];
const
int
lcid
=
sched_ctrl
->
dl_lc_ids
[
i
];
const
uint16_t
rnti
=
UE_info
->
rnti
[
UE_id
];
const
uint16_t
rnti
=
UE_info
->
rnti
[
UE_id
];
LOG_D
(
NR_MAC
,
"In %s: UE %d/%x: LCID %d
\n
"
,
__FUNCTION__
,
UE_id
,
rnti
,
lcid
);
LOG_D
(
NR_MAC
,
"In %s: UE %d/%x: LCID %d
\n
"
,
__FUNCTION__
,
UE_id
,
rnti
,
lcid
);
if
(
lcid
==
DL_SCH_LCID_DTCH
&&
sched_ctrl
->
rrc_processing_timer
>
0
)
{
continue
;
}
start_meas
(
&
RC
.
nrmac
[
module_id
]
->
rlc_status_ind
);
start_meas
(
&
RC
.
nrmac
[
module_id
]
->
rlc_status_ind
);
sched_ctrl
->
rlc_status
[
lcid
]
=
mac_rlc_status_ind
(
module_id
,
sched_ctrl
->
rlc_status
[
lcid
]
=
mac_rlc_status_ind
(
module_id
,
rnti
,
rnti
,
module_id
,
module_id
,
frame
,
frame
,
slot
,
slot
,
ENB_FLAG_YES
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
MBMS_FLAG_NO
,
lcid
,
lcid
,
0
,
0
,
0
);
0
);
stop_meas
(
&
RC
.
nrmac
[
module_id
]
->
rlc_status_ind
);
stop_meas
(
&
RC
.
nrmac
[
module_id
]
->
rlc_status_ind
);
if
(
sched_ctrl
->
rlc_status
[
lcid
].
bytes_in_buffer
==
0
)
if
(
sched_ctrl
->
rlc_status
[
lcid
].
bytes_in_buffer
==
0
)
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
ca066686
...
@@ -2604,6 +2604,11 @@ void nr_csirs_scheduling(int Mod_idP,
...
@@ -2604,6 +2604,11 @@ void nr_csirs_scheduling(int Mod_idP,
for
(
int
UE_id
=
UE_list
->
head
;
UE_id
>=
0
;
UE_id
=
UE_list
->
next
[
UE_id
])
{
for
(
int
UE_id
=
UE_list
->
head
;
UE_id
>=
0
;
UE_id
=
UE_list
->
next
[
UE_id
])
{
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
if
(
sched_ctrl
->
rrc_processing_timer
>
0
)
{
continue
;
}
NR_CellGroupConfig_t
*
CellGroup
=
UE_info
->
CellGroup
[
UE_id
];
NR_CellGroupConfig_t
*
CellGroup
=
UE_info
->
CellGroup
[
UE_id
];
if
(
!
CellGroup
||
!
CellGroup
->
spCellConfig
||
!
CellGroup
->
spCellConfig
->
spCellConfigDedicated
||
if
(
!
CellGroup
||
!
CellGroup
->
spCellConfig
||
!
CellGroup
->
spCellConfig
->
spCellConfigDedicated
||
...
@@ -2791,6 +2796,23 @@ void nr_csirs_scheduling(int Mod_idP,
...
@@ -2791,6 +2796,23 @@ void nr_csirs_scheduling(int Mod_idP,
}
}
}
}
void
nr_mac_update_timers
(
module_id_t
module_id
,
frame_t
frame
,
sub_frame_t
slot
)
{
NR_UE_info_t
*
UE_info
=
&
RC
.
nrmac
[
module_id
]
->
UE_info
;
const
NR_list_t
*
UE_list
=
&
UE_info
->
list
;
for
(
int
UE_id
=
UE_list
->
head
;
UE_id
>=
0
;
UE_id
=
UE_list
->
next
[
UE_id
])
{
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
if
(
sched_ctrl
->
rrc_processing_timer
>
0
)
{
sched_ctrl
->
rrc_processing_timer
--
;
if
(
sched_ctrl
->
rrc_processing_timer
==
0
)
{
LOG_I
(
NR_MAC
,
"(%d.%d) De-activating RRC processing timer for UE %d
\n
"
,
frame
,
slot
,
UE_id
);
sched_ctrl
->
update_pdsch_ps
=
true
;
sched_ctrl
->
update_pusch_ps
=
true
;
}
}
}
}
/*void fill_nfapi_coresets_and_searchspaces(NR_CellGroupConfig_t *cg,
/*void fill_nfapi_coresets_and_searchspaces(NR_CellGroupConfig_t *cg,
nfapi_nr_coreset_t *coreset,
nfapi_nr_coreset_t *coreset,
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_srs.c
View file @
ca066686
...
@@ -125,7 +125,7 @@ void nr_schedule_srs(int module_id, frame_t frame) {
...
@@ -125,7 +125,7 @@ void nr_schedule_srs(int module_id, frame_t frame) {
sched_ctrl
->
sched_srs
.
slot
=
-
1
;
sched_ctrl
->
sched_srs
.
slot
=
-
1
;
sched_ctrl
->
sched_srs
.
srs_scheduled
=
false
;
sched_ctrl
->
sched_srs
.
srs_scheduled
=
false
;
if
(
!
UE_info
->
Msg4_ACKed
[
UE_id
])
{
if
(
!
UE_info
->
Msg4_ACKed
[
UE_id
]
||
sched_ctrl
->
rrc_processing_timer
>
0
)
{
continue
;
continue
;
}
}
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_uci.c
View file @
ca066686
...
@@ -702,7 +702,9 @@ void nr_csi_meas_reporting(int Mod_idP,
...
@@ -702,7 +702,9 @@ void nr_csi_meas_reporting(int Mod_idP,
for
(
int
UE_id
=
UE_list
->
head
;
UE_id
>=
0
;
UE_id
=
UE_list
->
next
[
UE_id
])
{
for
(
int
UE_id
=
UE_list
->
head
;
UE_id
>=
0
;
UE_id
=
UE_list
->
next
[
UE_id
])
{
const
NR_CellGroupConfig_t
*
CellGroup
=
UE_info
->
CellGroup
[
UE_id
];
const
NR_CellGroupConfig_t
*
CellGroup
=
UE_info
->
CellGroup
[
UE_id
];
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
NR_UE_sched_ctrl_t
*
sched_ctrl
=
&
UE_info
->
UE_sched_ctrl
[
UE_id
];
if
(
sched_ctrl
->
ul_failure
==
1
&&
get_softmodem_params
()
->
phy_test
==
0
)
continue
;
if
((
sched_ctrl
->
rrc_processing_timer
>
0
)
||
(
sched_ctrl
->
ul_failure
==
1
&&
get_softmodem_params
()
->
phy_test
==
0
))
{
continue
;
}
if
(
!
CellGroup
||
!
CellGroup
->
spCellConfig
||
!
CellGroup
->
spCellConfig
->
spCellConfigDedicated
||
if
(
!
CellGroup
||
!
CellGroup
->
spCellConfig
||
!
CellGroup
->
spCellConfig
->
spCellConfigDedicated
||
!
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
)
continue
;
!
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
)
continue
;
const
NR_CSI_MeasConfig_t
*
csi_measconfig
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
;
const
NR_CSI_MeasConfig_t
*
csi_measconfig
=
CellGroup
->
spCellConfig
->
spCellConfigDedicated
->
csi_MeasConfig
->
choice
.
setup
;
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
ca066686
...
@@ -1201,8 +1201,9 @@ void pf_ul(module_id_t module_id,
...
@@ -1201,8 +1201,9 @@ void pf_ul(module_id_t module_id,
const
bool
do_sched
=
nr_UE_is_to_be_scheduled
(
module_id
,
0
,
UE_id
,
sched_pusch
->
frame
,
sched_pusch
->
slot
);
const
bool
do_sched
=
nr_UE_is_to_be_scheduled
(
module_id
,
0
,
UE_id
,
sched_pusch
->
frame
,
sched_pusch
->
slot
);
LOG_D
(
NR_MAC
,
"pf_ul: do_sched UE %d => %s
\n
"
,
UE_id
,
do_sched
?
"yes"
:
"no"
);
LOG_D
(
NR_MAC
,
"pf_ul: do_sched UE %d => %s
\n
"
,
UE_id
,
do_sched
?
"yes"
:
"no"
);
if
(
B
==
0
&&
!
do_sched
)
if
(
(
B
==
0
&&
!
do_sched
)
||
(
sched_ctrl
->
rrc_processing_timer
>
0
))
{
continue
;
continue
;
}
/* Schedule UE on SR or UL inactivity and no data (otherwise, will be scheduled
/* Schedule UE on SR or UL inactivity and no data (otherwise, will be scheduled
* based on data to transmit) */
* based on data to transmit) */
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
ca066686
...
@@ -46,6 +46,11 @@ void config_common(int Mod_idP,
...
@@ -46,6 +46,11 @@ void config_common(int Mod_idP,
int
pusch_AntennaPorts
,
int
pusch_AntennaPorts
,
NR_ServingCellConfigCommon_t
*
scc
);
NR_ServingCellConfigCommon_t
*
scc
);
int
nr_mac_enable_ue_rrc_processing_timer
(
module_id_t
Mod_idP
,
rnti_t
rnti
,
NR_SubcarrierSpacing_t
subcarrierSpacing
,
uint32_t
rrc_reconfiguration_delay
);
int
rrc_mac_config_req_gNB
(
module_id_t
Mod_idP
,
int
rrc_mac_config_req_gNB
(
module_id_t
Mod_idP
,
int
ssb_SubcarrierOffset
,
int
ssb_SubcarrierOffset
,
rrc_pdsch_AntennaPorts_t
pdsch_AntennaPorts
,
rrc_pdsch_AntennaPorts_t
pdsch_AntennaPorts
,
...
@@ -64,6 +69,10 @@ void clear_nr_nfapi_information(gNB_MAC_INST * gNB,
...
@@ -64,6 +69,10 @@ void clear_nr_nfapi_information(gNB_MAC_INST * gNB,
frame_t
frameP
,
frame_t
frameP
,
sub_frame_t
subframeP
);
sub_frame_t
subframeP
);
void
nr_mac_update_timers
(
module_id_t
module_id
,
frame_t
frame
,
sub_frame_t
slot
);
void
gNB_dlsch_ulsch_scheduler
(
module_id_t
module_idP
,
void
gNB_dlsch_ulsch_scheduler
(
module_id_t
module_idP
,
frame_t
frame_rxP
,
sub_frame_t
slot_rxP
);
frame_t
frame_rxP
,
sub_frame_t
slot_rxP
);
...
...
openair2/LAYER2/NR_MAC_gNB/nr_mac_gNB.h
View file @
ca066686
...
@@ -646,12 +646,13 @@ typedef struct {
...
@@ -646,12 +646,13 @@ typedef struct {
/// UL HARQ processes that await retransmission
/// UL HARQ processes that await retransmission
NR_list_t
retrans_ul_harq
;
NR_list_t
retrans_ul_harq
;
NR_UE_mac_ce_ctrl_t
UE_mac_ce_ctrl
;
// MAC CE related information
NR_UE_mac_ce_ctrl_t
UE_mac_ce_ctrl
;
// MAC CE related information
/// number of active DL LCs
/// number of active DL LCs
uint8_t
dl_lc_num
;
uint8_t
dl_lc_num
;
/// order in which DLSCH scheduler should allocate LCs
/// order in which DLSCH scheduler should allocate LCs
uint8_t
dl_lc_ids
[
NR_MAX_NUM_LCID
];
uint8_t
dl_lc_ids
[
NR_MAX_NUM_LCID
];
/// Timer for RRC processing procedures
uint32_t
rrc_processing_timer
;
}
NR_UE_sched_ctrl_t
;
}
NR_UE_sched_ctrl_t
;
typedef
struct
{
typedef
struct
{
...
...
openair2/RRC/NR/nr_rrc_defs.h
View file @
ca066686
...
@@ -96,6 +96,10 @@ typedef struct nr_uid_linear_allocator_s {
...
@@ -96,6 +96,10 @@ typedef struct nr_uid_linear_allocator_s {
#define PROTOCOL_NR_RRC_CTXT_FMT PROTOCOL_CTXT_FMT
#define PROTOCOL_NR_RRC_CTXT_FMT PROTOCOL_CTXT_FMT
#define PROTOCOL_NR_RRC_CTXT_ARGS(CTXT_Pp) PROTOCOL_NR_CTXT_ARGS(CTXT_Pp)
#define PROTOCOL_NR_RRC_CTXT_ARGS(CTXT_Pp) PROTOCOL_NR_CTXT_ARGS(CTXT_Pp)
// 3GPP TS 38.331 Section 12 Table 12.1-1: UE performance requirements for RRC procedures for UEs
#define NR_RRC_SETUP_DELAY_MS 10
#define NR_RRC_RECONFIGURATION_DELAY_MS 10
#define NR_RRC_BWP_SWITCHING_DELAY_MS 6
#define NR_UE_MODULE_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!!
#define NR_UE_MODULE_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!!
#define NR_UE_INDEX_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!! used to be -1
#define NR_UE_INDEX_INVALID ((module_id_t) ~0) // FIXME attention! depends on type uint8_t!!! used to be -1
...
@@ -372,7 +376,7 @@ typedef struct gNB_RRC_UE_s {
...
@@ -372,7 +376,7 @@ typedef struct gNB_RRC_UE_s {
rb_id_t
gnb_gtp_ebi
[
S1AP_MAX_E_RAB
];
rb_id_t
gnb_gtp_ebi
[
S1AP_MAX_E_RAB
];
rb_id_t
gnb_gtp_psi
[
S1AP_MAX_E_RAB
];
rb_id_t
gnb_gtp_psi
[
S1AP_MAX_E_RAB
];
//GTPV1 F1-U TUNNELS
//GTPV1 F1-U TUNNELS
uint32_t
incoming_teid
[
S1AP_MAX_E_RAB
];
uint32_t
incoming_teid
[
S1AP_MAX_E_RAB
];
uint32_t
ul_failure_timer
;
uint32_t
ul_failure_timer
;
uint32_t
ue_release_timer
;
uint32_t
ue_release_timer
;
...
...
openair2/RRC/NR/rrc_gNB.c
View file @
ca066686
...
@@ -729,6 +729,13 @@ rrc_gNB_generate_defaultRRCReconfiguration(
...
@@ -729,6 +729,13 @@ rrc_gNB_generate_defaultRRCReconfiguration(
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
if
(
NODE_IS_DU
(
rrc
->
node_type
)
||
NODE_IS_MONOLITHIC
(
rrc
->
node_type
))
{
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
->
ue_context
.
rnti
,
*
rrc
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
NR_RRC_RECONFIGURATION_DELAY_MS
);
}
/* Free all NAS PDUs */
/* Free all NAS PDUs */
for
(
int
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_pdusessions
;
i
++
)
{
for
(
int
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_pdusessions
;
i
++
)
{
if
(
ue_context_pP
->
ue_context
.
pduSession
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
if
(
ue_context_pP
->
ue_context
.
pduSession
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
...
@@ -995,6 +1002,13 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
...
@@ -995,6 +1002,13 @@ rrc_gNB_generate_dedicatedRRCReconfiguration(
cellGroupConfig
);
cellGroupConfig
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
if
(
NODE_IS_DU
(
rrc
->
node_type
)
||
NODE_IS_MONOLITHIC
(
rrc
->
node_type
))
{
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
->
ue_context
.
rnti
,
*
rrc
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
NR_RRC_RECONFIGURATION_DELAY_MS
);
}
/* Free all NAS PDUs */
/* Free all NAS PDUs */
for
(
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_pdusessions
;
i
++
)
{
for
(
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_pdusessions
;
i
++
)
{
if
(
ue_context_pP
->
ue_context
.
pduSession
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
if
(
ue_context_pP
->
ue_context
.
pduSession
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
...
@@ -1168,6 +1182,13 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
...
@@ -1168,6 +1182,13 @@ rrc_gNB_modify_dedicatedRRCReconfiguration(
NULL
);
NULL
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,
(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,
(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
if
(
NODE_IS_DU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
)
||
NODE_IS_MONOLITHIC
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
->
ue_context
.
rnti
,
*
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
NR_RRC_RECONFIGURATION_DELAY_MS
);
}
/* Free all NAS PDUs */
/* Free all NAS PDUs */
for
(
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_modify_pdusessions
;
i
++
)
{
for
(
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_modify_pdusessions
;
i
++
)
{
if
(
ue_context_pP
->
ue_context
.
modify_pdusession
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
if
(
ue_context_pP
->
ue_context
.
modify_pdusession
[
i
].
param
.
nas_pdu
.
buffer
!=
NULL
)
{
...
@@ -1269,8 +1290,15 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
...
@@ -1269,8 +1290,15 @@ rrc_gNB_generate_dedicatedRRCReconfiguration_release(
NULL
);
NULL
);
ue_context_pP
->
ue_context
.
pdu_session_release_command_flag
=
1
;
ue_context_pP
->
ue_context
.
pdu_session_release_command_flag
=
1
;
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
if
(
NODE_IS_DU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
)
||
NODE_IS_MONOLITHIC
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
->
ue_context
.
rnti
,
*
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
NR_RRC_RECONFIGURATION_DELAY_MS
);
}
/* Free all NAS PDUs */
/* Free all NAS PDUs */
if
(
nas_length
>
0
)
{
if
(
nas_length
>
0
)
{
...
@@ -1819,8 +1847,15 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
...
@@ -1819,8 +1847,15 @@ rrc_gNB_process_RRCConnectionReestablishmentComplete(
NULL
,
NULL
,
NULL
,
NULL
,
NULL
);
NULL
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
LOG_DUMPMSG
(
NR_RRC
,
DEBUG_RRC
,(
char
*
)
buffer
,
size
,
"[MSG] RRC Reconfiguration
\n
"
);
if
(
NODE_IS_DU
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
)
||
NODE_IS_MONOLITHIC
(
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
node_type
))
{
nr_mac_enable_ue_rrc_processing_timer
(
ctxt_pP
->
module_id
,
ue_context_pP
->
ue_context
.
rnti
,
*
RC
.
nrrrc
[
ctxt_pP
->
module_id
]
->
carrier
.
servingcellconfigcommon
->
ssbSubcarrierSpacing
,
NR_RRC_RECONFIGURATION_DELAY_MS
);
}
/* Free all NAS PDUs */
/* Free all NAS PDUs */
for
(
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_pdusessions
;
i
++
)
{
for
(
i
=
0
;
i
<
ue_context_pP
->
ue_context
.
nb_of_pdusessions
;
i
++
)
{
...
...
openair2/RRC/NR/rrc_gNB_nsa.c
View file @
ca066686
...
@@ -241,9 +241,8 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
...
@@ -241,9 +241,8 @@ void rrc_add_nsa_user(gNB_RRC_INST *rrc,struct rrc_gNB_ue_context_s *ue_context_
cipher_algo
,
cipher_algo
,
NR_SecurityConfig__keyToUse_secondary
);
NR_SecurityConfig__keyToUse_secondary
);
}
}
NR_ServingCellConfig_t
*
scc
=
ue_context_p
->
ue_context
.
spCellConfig
NR_ServingCellConfig_t
*
scc
=
ue_context_p
->
ue_context
.
spCellConfig
?
?
ue_context_p
->
ue_context
.
spCellConfig
->
spCellConfigDedicated
ue_context_p
->
ue_context
.
spCellConfig
->
spCellConfigDedicated
:
NULL
;
:
NULL
;
fill_default_reconfig
(
carrier
->
servingcellconfigcommon
,
fill_default_reconfig
(
carrier
->
servingcellconfigcommon
,
scc
,
scc
,
reconfig_ies
,
reconfig_ies
,
...
...
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