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
6d165912
Commit
6d165912
authored
Feb 25, 2022
by
Robert Schmidt
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/episys-ul-info-cleanup' into integration_2022_wk08_b
parents
2736d0fe
4398630d
Changes
5
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
277 additions
and
267 deletions
+277
-267
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
+7
-3
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+15
-0
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
+245
-256
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
+6
-5
openair2/RRC/LTE/MESSAGES/asn1_msg.c
openair2/RRC/LTE/MESSAGES/asn1_msg.c
+4
-3
No files found.
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
View file @
6d165912
...
@@ -90,8 +90,11 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
...
@@ -90,8 +90,11 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
rx_ind
->
pdu_list
[
j
].
pdu
=
CALLOC
(
tx_req_body
->
pdu_length
,
sizeof
(
*
rx_ind
->
pdu_list
[
j
].
pdu
));
rx_ind
->
pdu_list
[
j
].
pdu
=
CALLOC
(
tx_req_body
->
pdu_length
,
sizeof
(
*
rx_ind
->
pdu_list
[
j
].
pdu
));
memcpy
(
rx_ind
->
pdu_list
[
j
].
pdu
,
tx_req_body
->
pdu
,
tx_req_body
->
pdu_length
*
sizeof
(
*
rx_ind
->
pdu_list
[
j
].
pdu
));
memcpy
(
rx_ind
->
pdu_list
[
j
].
pdu
,
tx_req_body
->
pdu
,
tx_req_body
->
pdu_length
*
sizeof
(
*
rx_ind
->
pdu_list
[
j
].
pdu
));
rx_ind
->
pdu_list
[
j
].
rnti
=
pusch_config_pdu
->
rnti
;
rx_ind
->
pdu_list
[
j
].
rnti
=
pusch_config_pdu
->
rnti
;
rx_ind
->
pdu_list
[
j
].
timing_advance
=
scheduled_response
->
tx_request
->
tx_config
.
timing_advance
;
/* TODO: Implement channel modeling to abstract TA and CQI. For now,
rx_ind
->
pdu_list
[
j
].
ul_cqi
=
scheduled_response
->
tx_request
->
tx_config
.
ul_cqi
;
we hard code the values below since they are set in L1 and we are
abstracting L1. */
rx_ind
->
pdu_list
[
j
].
timing_advance
=
31
;
rx_ind
->
pdu_list
[
j
].
ul_cqi
=
255
;
char
buffer
[
1024
];
char
buffer
[
1024
];
hexdump
(
rx_ind
->
pdu_list
[
j
].
pdu
,
rx_ind
->
pdu_list
[
j
].
pdu_length
,
buffer
,
sizeof
(
buffer
));
hexdump
(
rx_ind
->
pdu_list
[
j
].
pdu
,
rx_ind
->
pdu_list
[
j
].
pdu_length
,
buffer
,
sizeof
(
buffer
));
LOG_D
(
NR_MAC
,
"Hexdump of pdu %s before queuing rx_ind
\n
"
,
LOG_D
(
NR_MAC
,
"Hexdump of pdu %s before queuing rx_ind
\n
"
,
...
@@ -113,7 +116,7 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
...
@@ -113,7 +116,7 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
crc_ind
->
crc_list
[
j
].
num_cb
=
pusch_config_pdu
->
pusch_data
.
num_cb
;
crc_ind
->
crc_list
[
j
].
num_cb
=
pusch_config_pdu
->
pusch_data
.
num_cb
;
crc_ind
->
crc_list
[
j
].
rnti
=
pusch_config_pdu
->
rnti
;
crc_ind
->
crc_list
[
j
].
rnti
=
pusch_config_pdu
->
rnti
;
crc_ind
->
crc_list
[
j
].
tb_crc_status
=
0
;
crc_ind
->
crc_list
[
j
].
tb_crc_status
=
0
;
crc_ind
->
crc_list
[
j
].
timing_advance
=
scheduled_response
->
tx_request
->
tx_config
.
timing_advance
;
crc_ind
->
crc_list
[
j
].
timing_advance
=
31
;
crc_ind
->
crc_list
[
j
].
ul_cqi
=
255
;
crc_ind
->
crc_list
[
j
].
ul_cqi
=
255
;
}
}
...
@@ -204,6 +207,7 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
...
@@ -204,6 +207,7 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
}
}
}
}
}
}
dl_config
->
number_pdus
=
0
;
}
}
}
}
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
6d165912
...
@@ -3832,6 +3832,21 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
...
@@ -3832,6 +3832,21 @@ int nr_ue_process_rar(nr_downlink_indication_t *dl_info, NR_UL_TIME_ALIGNMENT_t
LOG_A
(
NR_MAC
,
"[UE %d][RAPROC][%d.%d] Found RAR with the intended RAPID %d
\n
"
,
mod_id
,
frame
,
slot
,
rarh
->
RAPID
);
LOG_A
(
NR_MAC
,
"[UE %d][RAPROC][%d.%d] Found RAR with the intended RAPID %d
\n
"
,
mod_id
,
frame
,
slot
,
rarh
->
RAPID
);
rar
=
(
NR_MAC_RAR
*
)
(
dlsch_buffer
+
n_subheaders
+
(
n_subPDUs
-
1
)
*
sizeof
(
NR_MAC_RAR
));
rar
=
(
NR_MAC_RAR
*
)
(
dlsch_buffer
+
n_subheaders
+
(
n_subPDUs
-
1
)
*
sizeof
(
NR_MAC_RAR
));
ra
->
RA_RAPID_found
=
1
;
ra
->
RA_RAPID_found
=
1
;
if
(
get_softmodem_params
()
->
emulate_l1
)
{
/* When we are emulating L1 with multiple UEs, the rx_indication will have
multiple RAR PDUs. The code would previously handle each of these PDUs,
but it should only be handling the single RAR that matches the current
UE. */
LOG_I
(
NR_MAC
,
"RAR PDU found for our UE with PDU index %d
\n
"
,
pdu_id
);
dl_info
->
rx_ind
->
number_pdus
=
1
;
if
(
pdu_id
!=
0
)
{
memcpy
(
&
dl_info
->
rx_ind
->
rx_indication_body
[
0
],
&
dl_info
->
rx_ind
->
rx_indication_body
[
pdu_id
],
sizeof
(
fapi_nr_rx_indication_body_t
));
}
mac
->
nr_ue_emul_l1
.
expected_rar
=
false
;
memset
(
mac
->
nr_ue_emul_l1
.
index_has_rar
,
0
,
sizeof
(
mac
->
nr_ue_emul_l1
.
index_has_rar
));
}
break
;
break
;
}
}
if
(
rarh
->
E
==
0
)
{
if
(
rarh
->
E
==
0
)
{
...
...
openair2/NR_PHY_INTERFACE/NR_IF_Module.c
View file @
6d165912
This diff is collapsed.
Click to expand it.
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
View file @
6d165912
...
@@ -296,11 +296,11 @@ static void copy_dl_tti_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi_
...
@@ -296,11 +296,11 @@ static void copy_dl_tti_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi_
{
{
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
dl_info
->
module_id
);
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
dl_info
->
module_id
);
mac
->
nr_ue_emul_l1
.
expected_sib
=
false
;
mac
->
nr_ue_emul_l1
.
expected_sib
=
false
;
memset
(
mac
->
nr_ue_emul_l1
.
index_has_sib
,
0
,
sizeof
(
*
mac
->
nr_ue_emul_l1
.
index_has_sib
));
memset
(
mac
->
nr_ue_emul_l1
.
index_has_sib
,
0
,
sizeof
(
mac
->
nr_ue_emul_l1
.
index_has_sib
));
mac
->
nr_ue_emul_l1
.
expected_rar
=
false
;
mac
->
nr_ue_emul_l1
.
expected_rar
=
false
;
memset
(
mac
->
nr_ue_emul_l1
.
index_has_rar
,
0
,
sizeof
(
*
mac
->
nr_ue_emul_l1
.
index_has_rar
));
memset
(
mac
->
nr_ue_emul_l1
.
index_has_rar
,
0
,
sizeof
(
mac
->
nr_ue_emul_l1
.
index_has_rar
));
mac
->
nr_ue_emul_l1
.
expected_dci
=
false
;
mac
->
nr_ue_emul_l1
.
expected_dci
=
false
;
memset
(
mac
->
nr_ue_emul_l1
.
index_has_dci
,
0
,
sizeof
(
*
mac
->
nr_ue_emul_l1
.
index_has_dci
));
memset
(
mac
->
nr_ue_emul_l1
.
index_has_dci
,
0
,
sizeof
(
mac
->
nr_ue_emul_l1
.
index_has_dci
));
int
pdu_idx
=
0
;
int
pdu_idx
=
0
;
int
num_pdus
=
dl_tti_request
->
dl_tti_request_body
.
nPDUs
;
int
num_pdus
=
dl_tti_request
->
dl_tti_request_body
.
nPDUs
;
...
@@ -424,7 +424,7 @@ static void copy_tx_data_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi
...
@@ -424,7 +424,7 @@ static void copy_tx_data_req_to_dl_info(nr_downlink_indication_t *dl_info, nfapi
if
(
!
dl_info
->
rx_ind
)
if
(
!
dl_info
->
rx_ind
)
{
{
dl_info
->
rx_ind
=
CALLOC
(
1
,
sizeof
(
fapi_nr_rx_indication_t
));
dl_info
->
rx_ind
=
CALLOC
(
num_pdus
,
sizeof
(
fapi_nr_rx_indication_t
));
}
}
AssertFatal
(
dl_info
->
rx_ind
!=
NULL
,
"%s: Out of memory in calloc"
,
__FUNCTION__
);
AssertFatal
(
dl_info
->
rx_ind
!=
NULL
,
"%s: Out of memory in calloc"
,
__FUNCTION__
);
fapi_nr_rx_indication_t
*
rx_ind
=
dl_info
->
rx_ind
;
fapi_nr_rx_indication_t
*
rx_ind
=
dl_info
->
rx_ind
;
...
@@ -1038,6 +1038,7 @@ int handle_dci(module_id_t module_id, int cc_id, unsigned int gNB_index, frame_t
...
@@ -1038,6 +1038,7 @@ int handle_dci(module_id_t module_id, int cc_id, unsigned int gNB_index, frame_t
// Note: sdu should always be processed because data and timing advance updates are transmitted by the UE
// Note: sdu should always be processed because data and timing advance updates are transmitted by the UE
int8_t
handle_dlsch
(
nr_downlink_indication_t
*
dl_info
,
NR_UL_TIME_ALIGNMENT_t
*
ul_time_alignment
,
int
pdu_id
){
int8_t
handle_dlsch
(
nr_downlink_indication_t
*
dl_info
,
NR_UL_TIME_ALIGNMENT_t
*
ul_time_alignment
,
int
pdu_id
){
if
(
get_softmodem_params
()
->
emulate_l1
)
dl_info
->
rx_ind
->
rx_indication_body
[
pdu_id
].
pdsch_pdu
.
harq_pid
=
g_harq_pid
;
dl_info
->
rx_ind
->
rx_indication_body
[
pdu_id
].
pdsch_pdu
.
harq_pid
=
g_harq_pid
;
update_harq_status
(
dl_info
->
module_id
,
update_harq_status
(
dl_info
->
module_id
,
...
...
openair2/RRC/LTE/MESSAGES/asn1_msg.c
View file @
6d165912
...
@@ -4293,9 +4293,10 @@ ssize_t do_nrMeasurementReport(uint8_t *buffer,
...
@@ -4293,9 +4293,10 @@ ssize_t do_nrMeasurementReport(uint8_t *buffer,
LTE_MeasResultListEUTRA_t
*
measResultListEUTRA2
=&
measResultNeighCells
->
choice
.
measResultListEUTRA
;
LTE_MeasResultListEUTRA_t
*
measResultListEUTRA2
=&
measResultNeighCells
->
choice
.
measResultListEUTRA
;
asn1cSequenceAdd
(
measResultListEUTRA2
->
list
,
struct
LTE_MeasResultEUTRA
,
measresulteutra_list
);
asn1cSequenceAdd
(
measResultListEUTRA2
->
list
,
struct
LTE_MeasResultEUTRA
,
measresulteutra_list
);
measresulteutra_list
->
physCellId
=
phy_id
;
measresulteutra_list
->
physCellId
=
phy_id
;
//asn1cCalloc(measresulteutra_list->cgi_Info, measresult_cgi2);
/* TODO: This asn1cCalloc leaks memory but also masks a bug.
//measresult_cgi2->cellGlobalId= {0};
If we delete this asn1cCalloc statement, eNB will crash in NSA mode.
//measresult_cgi2->trackingAreaCode= {0};
Please don't delete the following line unless the bug has been found. */
asn1cCalloc
(
measresulteutra_list
->
cgi_Info
,
measresult_cgi2
);
struct
LTE_MeasResultEUTRA__measResult
*
measResult
=
&
measresulteutra_list
->
measResult
;
struct
LTE_MeasResultEUTRA__measResult
*
measResult
=
&
measresulteutra_list
->
measResult
;
asn1cCallocOne
(
measResult
->
rsrpResult
,
rsrp_tar
);
asn1cCallocOne
(
measResult
->
rsrpResult
,
rsrp_tar
);
asn1cCallocOne
(
measResult
->
rsrqResult
,
rsrq_tar
);
asn1cCallocOne
(
measResult
->
rsrqResult
,
rsrq_tar
);
...
...
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