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
fa5ca8d7
Commit
fa5ca8d7
authored
Oct 02, 2024
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/756-segfault-in-l1_rx_thread' into integration_2024_w40
parents
c2535df3
27d073d4
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
38 additions
and
33 deletions
+38
-33
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
+8
-5
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
+18
-15
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
+1
-1
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
+10
-11
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
+1
-1
No files found.
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_primitives.c
View file @
fa5ca8d7
...
...
@@ -3175,21 +3175,23 @@ void send_initial_ul_rrc_message(int rnti, const uint8_t *sdu, sdu_size_t sdu_le
mac
->
mac_rrc
.
initial_ul_rrc_message_transfer
(
0
,
&
ul_rrc_msg
);
}
void
prepare_initial_ul_rrc_message
(
gNB_MAC_INST
*
mac
,
NR_UE_info_t
*
UE
)
bool
prepare_initial_ul_rrc_message
(
gNB_MAC_INST
*
mac
,
NR_UE_info_t
*
UE
)
{
NR_SCHED_ENSURE_LOCKED
(
&
mac
->
sched_lock
);
/* activate SRB0 */
if
(
!
nr_rlc_activate_srb0
(
UE
->
rnti
,
UE
,
send_initial_ul_rrc_message
))
return
false
;
/* create this UE's initial CellGroup */
int
CC_id
=
0
;
int
srb_id
=
1
;
const
NR_ServingCellConfigCommon_t
*
scc
=
mac
->
common_channels
[
CC_id
].
ServingCellConfigCommon
;
const
NR_ServingCellConfig_t
*
sccd
=
mac
->
common_channels
[
CC_id
].
pre_ServingCellConfig
;
NR_CellGroupConfig_t
*
cellGroupConfig
=
get_initial_cellGroupConfig
(
UE
->
uid
,
scc
,
sccd
,
&
mac
->
radio_config
);
ASN_STRUCT_FREE
(
asn_DEF_NR_CellGroupConfig
,
UE
->
CellGroup
);
UE
->
CellGroup
=
cellGroupConfig
;
/* activate SRB0 */
nr_rlc_activate_srb0
(
UE
->
rnti
,
UE
,
send_initial_ul_rrc_message
);
/* the cellGroup sent to CU specifies there is SRB1, so create it */
DevAssert
(
cellGroupConfig
->
rlc_BearerToAddModList
->
list
.
count
==
1
);
const
NR_RLC_BearerConfig_t
*
bearer
=
cellGroupConfig
->
rlc_BearerToAddModList
->
list
.
array
[
0
];
...
...
@@ -3199,6 +3201,7 @@ void prepare_initial_ul_rrc_message(gNB_MAC_INST *mac, NR_UE_info_t *UE)
int
priority
=
bearer
->
mac_LogicalChannelConfig
->
ul_SpecificParameters
->
priority
;
nr_lc_config_t
c
=
{.
lcid
=
bearer
->
logicalChannelIdentity
,
.
priority
=
priority
};
nr_mac_add_lcid
(
&
UE
->
UE_sched_ctrl
,
&
c
);
return
true
;
}
void
nr_mac_trigger_release_timer
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
NR_SubcarrierSpacing_t
subcarrier_spacing
)
...
...
openair2/LAYER2/NR_MAC_gNB/gNB_scheduler_ulsch.c
View file @
fa5ca8d7
...
...
@@ -444,20 +444,23 @@ static int nr_process_mac_pdu(instance_t module_idP,
mac_len
=
6
;
}
LOG_D
(
MAC
,
"[RAPROC] Received SDU for CCCH length %d for UE %04x
\n
"
,
mac_len
,
UE
->
rnti
);
prepare_initial_ul_rrc_message
(
RC
.
nrmac
[
module_idP
],
UE
);
mac_rlc_data_ind
(
module_idP
,
UE
->
rnti
,
module_idP
,
frameP
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
0
,
(
char
*
)
(
pduP
+
mac_subheader_len
),
mac_len
,
1
,
NULL
);
LOG_I
(
MAC
,
"[RAPROC] Received SDU for CCCH length %d for UE %04x
\n
"
,
mac_len
,
UE
->
rnti
);
if
(
prepare_initial_ul_rrc_message
(
RC
.
nrmac
[
module_idP
],
UE
))
{
mac_rlc_data_ind
(
module_idP
,
UE
->
rnti
,
module_idP
,
frameP
,
ENB_FLAG_YES
,
MBMS_FLAG_NO
,
0
,
(
char
*
)
(
pduP
+
mac_subheader_len
),
mac_len
,
1
,
NULL
);
}
else
{
LOG_E
(
NR_MAC
,
"prepare_initial_ul_rrc_message() returned false, cannot forward CCCH message
\n
"
);
}
break
;
case
UL_SCH_LCID_DTCH
...
(
UL_SCH_LCID_DTCH
+
28
):
...
...
@@ -498,7 +501,7 @@ static int nr_process_mac_pdu(instance_t module_idP,
break
;
default:
LOG_E
(
NR_MAC
,
"R
eceived unknown MAC header (LCID = 0x%02x)
\n
"
,
rx_lcid
);
LOG_E
(
NR_MAC
,
"R
NTI %0x, received unknown MAC header (LCID = 0x%02x)
\n
"
,
UE
->
rnti
,
rx_lcid
);
return
-
1
;
break
;
}
...
...
openair2/LAYER2/NR_MAC_gNB/mac_proto.h
View file @
fa5ca8d7
...
...
@@ -449,7 +449,7 @@ size_t dump_mac_stats(gNB_MAC_INST *gNB, char *output, size_t strlen, bool reset
long
get_lcid_from_drbid
(
int
drb_id
);
long
get_lcid_from_srbid
(
int
srb_id
);
void
prepare_initial_ul_rrc_message
(
gNB_MAC_INST
*
mac
,
NR_UE_info_t
*
UE
);
bool
prepare_initial_ul_rrc_message
(
gNB_MAC_INST
*
mac
,
NR_UE_info_t
*
UE
);
void
send_initial_ul_rrc_message
(
int
rnti
,
const
uint8_t
*
sdu
,
sdu_size_t
sdu_len
,
void
*
data
);
void
finish_nr_dl_harq
(
NR_UE_sched_ctrl_t
*
sched_ctrl
,
int
harq_pid
);
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.c
View file @
fa5ca8d7
...
...
@@ -983,10 +983,17 @@ void deliver_sdu_srb0(void *deliver_sdu_data, struct nr_rlc_entity_t *entity,
s0
->
send_initial_ul_rrc_message
(
s0
->
ue_id
,
(
unsigned
char
*
)
buf
,
size
,
s0
->
data
);
}
void
nr_rlc_activate_srb0
(
int
ue_id
,
bool
nr_rlc_activate_srb0
(
int
ue_id
,
void
*
data
,
void
(
*
send_initial_ul_rrc_message
)(
int
ue_id
,
const
uint8_t
*
sdu
,
sdu_size_t
sdu_len
,
void
*
data
))
{
nr_rlc_manager_lock
(
nr_rlc_ue_manager
);
nr_rlc_ue_t
*
ue
=
nr_rlc_manager_get_ue
(
nr_rlc_ue_manager
,
ue_id
);
if
(
ue
->
srb0
!=
NULL
)
{
LOG_W
(
RLC
,
"SRB0 already exists for UE %x, do nothing
\n
"
,
ue_id
);
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
return
false
;
}
struct
srb0_data
*
srb0_data
=
calloc
(
1
,
sizeof
(
struct
srb0_data
));
AssertFatal
(
srb0_data
,
"out of memory
\n
"
);
...
...
@@ -994,21 +1001,13 @@ void nr_rlc_activate_srb0(int ue_id,
srb0_data
->
data
=
data
;
srb0_data
->
send_initial_ul_rrc_message
=
send_initial_ul_rrc_message
;
nr_rlc_manager_lock
(
nr_rlc_ue_manager
);
nr_rlc_ue_t
*
ue
=
nr_rlc_manager_get_ue
(
nr_rlc_ue_manager
,
ue_id
);
if
(
ue
->
srb0
!=
NULL
)
{
LOG_W
(
RLC
,
"SRB0 already exists for UE %d, do nothing
\n
"
,
ue_id
);
free
(
srb0_data
);
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
return
;
}
nr_rlc_entity_t
*
nr_rlc_tm
=
new_nr_rlc_entity_tm
(
10000
,
deliver_sdu_srb0
,
srb0_data
);
deliver_sdu_srb0
,
srb0_data
);
nr_rlc_ue_add_srb_rlc_entity
(
ue
,
0
,
nr_rlc_tm
);
LOG_I
(
RLC
,
"Activated srb0 for UE %d
\n
"
,
ue_id
);
nr_rlc_manager_unlock
(
nr_rlc_ue_manager
);
return
true
;
}
rlc_op_status_t
rrc_rlc_config_req
(
const
protocol_ctxt_t
*
const
ctxt_pP
,
...
...
openair2/LAYER2/nr_rlc/nr_rlc_oai_api.h
View file @
fa5ca8d7
...
...
@@ -62,7 +62,7 @@ void nr_rlc_activate_avg_time_to_tx(const int ue_id, const logical_chan_id_t cha
void
nr_rlc_srb_recv_sdu
(
const
int
ue_id
,
const
logical_chan_id_t
channel_id
,
unsigned
char
*
buf
,
int
size
);
void
nr_rlc_activate_srb0
(
int
ue_id
,
bool
nr_rlc_activate_srb0
(
int
ue_id
,
void
*
data
,
void
(
*
send_initial_ul_rrc_message
)(
int
rnti
,
const
uint8_t
*
sdu
,
sdu_size_t
sdu_len
,
void
*
data
));
...
...
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