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
b58791be
Commit
b58791be
authored
Dec 12, 2022
by
francescomani
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixing l2 simulator and addressing review comments
parent
0f57c8e6
Changes
12
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
79 additions
and
192 deletions
+79
-192
executables/nr-ue.c
executables/nr-ue.c
+15
-111
openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
+0
-1
openair1/PHY/defs_nr_UE.h
openair1/PHY/defs_nr_UE.h
+0
-1
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
+51
-36
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
+2
-0
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
+0
-2
openair2/LAYER2/NR_MAC_UE/mac_defs.h
openair2/LAYER2/NR_MAC_UE/mac_defs.h
+0
-2
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
+0
-1
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
+0
-4
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
+0
-7
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
+11
-21
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
+0
-6
No files found.
executables/nr-ue.c
View file @
b58791be
This diff is collapsed.
Click to expand it.
openair1/PHY/NR_UE_TRANSPORT/nr_prach.c
View file @
b58791be
...
...
@@ -515,7 +515,6 @@ int32_t generate_nr_prach(PHY_VARS_NR_UE *ue, uint8_t gNB_id, int frame, uint8_t
LOG_M
(
"Prach_txsig.m"
,
"txs"
,(
int16_t
*
)(
&
ue
->
common_vars
.
txdata
[
0
][
prach_start
]),
2
*
(
prach_start
+
prach_len
),
1
,
1
)
#endif
ue
->
prach_vars
[
gNB_id
]
->
active
=
false
;
return
signal_energy
((
int
*
)
prach
,
256
);
}
openair1/PHY/defs_nr_UE.h
View file @
b58791be
...
...
@@ -764,7 +764,6 @@ typedef struct nr_phy_data_s {
typedef
struct
nr_rxtx_thread_data_s
{
UE_nr_rxtx_proc_t
proc
;
PHY_VARS_NR_UE
*
UE
;
NR_UE_SCHED_MODE_t
ue_sched_mode
;
int
writeBlockSize
;
}
nr_rxtx_thread_data_t
;
...
...
openair1/SCHED_NR_UE/fapi_nr_ue_l1.c
View file @
b58791be
...
...
@@ -49,6 +49,7 @@ const char *ul_pdu_type[]={"PRACH", "PUCCH", "PUSCH", "SRS"};
queue_t
nr_rx_ind_queue
;
queue_t
nr_crc_ind_queue
;
queue_t
nr_uci_ind_queue
;
queue_t
nr_rach_ind_queue
;
static
void
fill_uci_2_3_4
(
nfapi_nr_uci_pucch_pdu_format_2_3_4_t
*
pdu_2_3_4
,
fapi_nr_ul_config_pucch_pdu
*
pucch_pdu
)
...
...
@@ -108,29 +109,56 @@ static void free_uci_inds(nfapi_nr_uci_indication_t *uci_ind)
}
int8_t
nr_ue_scheduled_response_stub
(
nr_scheduled_response_t
*
scheduled_response
)
{
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
0
);
if
(
scheduled_response
!=
NULL
)
{
if
(
scheduled_response
->
ul_config
!=
NULL
)
{
if
(
scheduled_response
!=
NULL
)
{
if
(
scheduled_response
->
ul_config
!=
NULL
)
{
fapi_nr_ul_config_request_t
*
ul_config
=
scheduled_response
->
ul_config
;
AssertFatal
(
ul_config
->
number_pdus
<
sizeof
(
ul_config
->
ul_config_list
)
/
sizeof
(
ul_config
->
ul_config_list
[
0
]),
"Too many ul_config pdus %d"
,
ul_config
->
number_pdus
);
for
(
int
i
=
0
;
i
<
ul_config
->
number_pdus
;
++
i
)
{
for
(
int
i
=
0
;
i
<
ul_config
->
number_pdus
;
++
i
)
{
LOG_D
(
NR_PHY
,
"In %s: processing type %d PDU of %d total UL PDUs (ul_config %p)
\n
"
,
__FUNCTION__
,
ul_config
->
ul_config_list
[
i
].
pdu_type
,
ul_config
->
number_pdus
,
ul_config
);
uint8_t
pdu_type
=
ul_config
->
ul_config_list
[
i
].
pdu_type
;
switch
(
pdu_type
)
{
case
(
FAPI_NR_UL_CONFIG_TYPE_PUSCH
):
{
switch
(
pdu_type
)
{
case
FAPI_NR_UL_CONFIG_TYPE_PRACH
:
{
fapi_nr_ul_config_prach_pdu
*
prach_pdu
=
&
ul_config
->
ul_config_list
[
i
].
prach_config_pdu
;
nfapi_nr_rach_indication_t
*
rach_ind
=
CALLOC
(
1
,
sizeof
(
*
rach_ind
));
rach_ind
->
sfn
=
scheduled_response
->
frame
;
rach_ind
->
slot
=
scheduled_response
->
slot
;
rach_ind
->
header
.
message_id
=
NFAPI_NR_PHY_MSG_TYPE_RACH_INDICATION
;
uint8_t
pdu_index
=
0
;
rach_ind
->
pdu_list
=
CALLOC
(
1
,
sizeof
(
*
rach_ind
->
pdu_list
));
rach_ind
->
number_of_pdus
=
1
;
rach_ind
->
pdu_list
[
pdu_index
].
phy_cell_id
=
prach_pdu
->
phys_cell_id
;
rach_ind
->
pdu_list
[
pdu_index
].
symbol_index
=
prach_pdu
->
prach_start_symbol
;
rach_ind
->
pdu_list
[
pdu_index
].
slot_index
=
prach_pdu
->
prach_slot
;
rach_ind
->
pdu_list
[
pdu_index
].
freq_index
=
prach_pdu
->
num_ra
;
rach_ind
->
pdu_list
[
pdu_index
].
avg_rssi
=
128
;
rach_ind
->
pdu_list
[
pdu_index
].
avg_snr
=
0xff
;
// invalid for now
rach_ind
->
pdu_list
[
pdu_index
].
num_preamble
=
1
;
const
int
num_p
=
rach_ind
->
pdu_list
[
pdu_index
].
num_preamble
;
rach_ind
->
pdu_list
[
pdu_index
].
preamble_list
=
calloc
(
num_p
,
sizeof
(
nfapi_nr_prach_indication_preamble_t
));
rach_ind
->
pdu_list
[
pdu_index
].
preamble_list
[
0
].
preamble_index
=
prach_pdu
->
ra_PreambleIndex
;
rach_ind
->
pdu_list
[
pdu_index
].
preamble_list
[
0
].
timing_advance
=
0
;
rach_ind
->
pdu_list
[
pdu_index
].
preamble_list
[
0
].
preamble_pwr
=
0xffffffff
;
if
(
!
put_queue
(
&
nr_rach_ind_queue
,
rach_ind
))
{
for
(
int
pdu_index
=
0
;
pdu_index
<
rach_ind
->
number_of_pdus
;
pdu_index
++
)
free
(
rach_ind
->
pdu_list
[
pdu_index
].
preamble_list
);
free
(
rach_ind
->
pdu_list
);
free
(
rach_ind
);
}
LOG_D
(
NR_MAC
,
"We have successfully filled the rach_ind queue with the recently filled rach ind
\n
"
);
break
;
}
case
(
FAPI_NR_UL_CONFIG_TYPE_PUSCH
):
{
nfapi_nr_rx_data_indication_t
*
rx_ind
=
CALLOC
(
1
,
sizeof
(
*
rx_ind
));
nfapi_nr_crc_indication_t
*
crc_ind
=
CALLOC
(
1
,
sizeof
(
*
crc_ind
));
nfapi_nr_ue_pusch_pdu_t
*
pusch_config_pdu
=
&
ul_config
->
ul_config_list
[
i
].
pusch_config_pdu
;
if
(
scheduled_response
->
tx_request
)
{
if
(
scheduled_response
->
tx_request
)
{
AssertFatal
(
scheduled_response
->
tx_request
->
number_of_pdus
<
sizeof
(
scheduled_response
->
tx_request
->
tx_request_body
)
/
sizeof
(
scheduled_response
->
tx_request
->
tx_request_body
[
0
]),
"Too many tx_req pdus %d"
,
scheduled_response
->
tx_request
->
number_of_pdus
);
...
...
@@ -139,8 +167,7 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
rx_ind
->
slot
=
scheduled_response
->
ul_config
->
slot
;
rx_ind
->
number_of_pdus
=
scheduled_response
->
tx_request
->
number_of_pdus
;
rx_ind
->
pdu_list
=
CALLOC
(
rx_ind
->
number_of_pdus
,
sizeof
(
*
rx_ind
->
pdu_list
));
for
(
int
j
=
0
;
j
<
rx_ind
->
number_of_pdus
;
j
++
)
{
for
(
int
j
=
0
;
j
<
rx_ind
->
number_of_pdus
;
j
++
)
{
fapi_nr_tx_request_body_t
*
tx_req_body
=
&
scheduled_response
->
tx_request
->
tx_request_body
[
j
];
rx_ind
->
pdu_list
[
j
].
handle
=
pusch_config_pdu
->
handle
;
rx_ind
->
pdu_list
[
j
].
harq_id
=
pusch_config_pdu
->
pusch_data
.
harq_process_id
;
...
...
@@ -160,8 +187,7 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
crc_ind
->
sfn
=
scheduled_response
->
ul_config
->
sfn
;
crc_ind
->
slot
=
scheduled_response
->
ul_config
->
slot
;
crc_ind
->
crc_list
=
CALLOC
(
crc_ind
->
number_crcs
,
sizeof
(
*
crc_ind
->
crc_list
));
for
(
int
j
=
0
;
j
<
crc_ind
->
number_crcs
;
j
++
)
{
for
(
int
j
=
0
;
j
<
crc_ind
->
number_crcs
;
j
++
)
{
crc_ind
->
crc_list
[
j
].
handle
=
pusch_config_pdu
->
handle
;
crc_ind
->
crc_list
[
j
].
harq_id
=
pusch_config_pdu
->
pusch_data
.
harq_process_id
;
LOG_D
(
NR_MAC
,
"This is the harq pid %d for crc_list[%d]
\n
"
,
crc_ind
->
crc_list
[
j
].
harq_id
,
j
);
...
...
@@ -179,11 +205,9 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
scheduled_response
->
frame
,
scheduled_response
->
slot
,
crc_ind
->
sfn
,
crc_ind
->
slot
,
pusch_config_pdu
->
mcs_index
);
}
if
(
!
put_queue
(
&
nr_rx_ind_queue
,
rx_ind
))
{
if
(
!
put_queue
(
&
nr_rx_ind_queue
,
rx_ind
))
{
LOG_E
(
NR_MAC
,
"Put_queue failed for rx_ind
\n
"
);
for
(
int
i
=
0
;
i
<
rx_ind
->
number_of_pdus
;
i
++
)
{
for
(
int
i
=
0
;
i
<
rx_ind
->
number_of_pdus
;
i
++
)
{
free
(
rx_ind
->
pdu_list
[
i
].
pdu
);
rx_ind
->
pdu_list
[
i
].
pdu
=
NULL
;
}
...
...
@@ -193,8 +217,7 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
free
(
rx_ind
);
rx_ind
=
NULL
;
}
if
(
!
put_queue
(
&
nr_crc_ind_queue
,
crc_ind
))
{
if
(
!
put_queue
(
&
nr_crc_ind_queue
,
crc_ind
))
{
LOG_E
(
NR_MAC
,
"Put_queue failed for crc_ind
\n
"
);
free
(
crc_ind
->
crc_list
);
crc_ind
->
crc_list
=
NULL
;
...
...
@@ -203,32 +226,26 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
}
LOG_D
(
PHY
,
"In %s: Filled queue rx/crc_ind which was filled by ulconfig.
\n
"
,
__FUNCTION__
);
scheduled_response
->
tx_request
->
number_of_pdus
=
0
;
}
break
;
}
case
FAPI_NR_UL_CONFIG_TYPE_PUCCH
:
{
case
FAPI_NR_UL_CONFIG_TYPE_PUCCH
:
{
nfapi_nr_uci_indication_t
*
uci_ind
=
CALLOC
(
1
,
sizeof
(
*
uci_ind
));
uci_ind
->
header
.
message_id
=
NFAPI_NR_PHY_MSG_TYPE_UCI_INDICATION
;
uci_ind
->
sfn
=
scheduled_response
->
frame
;
uci_ind
->
slot
=
scheduled_response
->
slot
;
uci_ind
->
num_ucis
=
1
;
uci_ind
->
uci_list
=
CALLOC
(
uci_ind
->
num_ucis
,
sizeof
(
*
uci_ind
->
uci_list
));
for
(
int
j
=
0
;
j
<
uci_ind
->
num_ucis
;
j
++
)
{
for
(
int
j
=
0
;
j
<
uci_ind
->
num_ucis
;
j
++
)
{
LOG_D
(
NR_MAC
,
"ul_config->ul_config_list[%d].pucch_config_pdu.n_bit = %d
\n
"
,
i
,
ul_config
->
ul_config_list
[
i
].
pucch_config_pdu
.
n_bit
);
if
(
ul_config
->
ul_config_list
[
i
].
pucch_config_pdu
.
n_bit
>
3
&&
mac
->
nr_ue_emul_l1
.
num_csi_reports
>
0
)
{
if
(
ul_config
->
ul_config_list
[
i
].
pucch_config_pdu
.
n_bit
>
3
&&
mac
->
nr_ue_emul_l1
.
num_csi_reports
>
0
)
{
uci_ind
->
uci_list
[
j
].
pdu_type
=
NFAPI_NR_UCI_FORMAT_2_3_4_PDU_TYPE
;
uci_ind
->
uci_list
[
j
].
pdu_size
=
sizeof
(
nfapi_nr_uci_pucch_pdu_format_2_3_4_t
);
nfapi_nr_uci_pucch_pdu_format_2_3_4_t
*
pdu_2_3_4
=
&
uci_ind
->
uci_list
[
j
].
pucch_pdu_format_2_3_4
;
fill_uci_2_3_4
(
pdu_2_3_4
,
&
ul_config
->
ul_config_list
[
i
].
pucch_config_pdu
);
}
else
{
else
{
nfapi_nr_uci_pucch_pdu_format_0_1_t
*
pdu_0_1
=
&
uci_ind
->
uci_list
[
j
].
pucch_pdu_format_0_1
;
uci_ind
->
uci_list
[
j
].
pdu_type
=
NFAPI_NR_UCI_FORMAT_0_1_PDU_TYPE
;
uci_ind
->
uci_list
[
j
].
pdu_size
=
sizeof
(
nfapi_nr_uci_pucch_pdu_format_0_1_t
);
...
...
@@ -248,12 +265,10 @@ int8_t nr_ue_scheduled_response_stub(nr_scheduled_response_t *scheduled_response
pdu_0_1
->
harq
->
harq_confidence_level
=
0
;
pdu_0_1
->
harq
->
harq_list
=
CALLOC
(
pdu_0_1
->
harq
->
num_harq
,
sizeof
(
*
pdu_0_1
->
harq
->
harq_list
));
int
harq_pid
=
-
1
;
for
(
int
k
=
0
;
k
<
NR_MAX_HARQ_PROCESSES
;
k
++
)
{
for
(
int
k
=
0
;
k
<
NR_MAX_HARQ_PROCESSES
;
k
++
)
{
if
(
mac
->
nr_ue_emul_l1
.
harq
[
k
].
active
&&
mac
->
nr_ue_emul_l1
.
harq
[
k
].
active_dl_harq_sfn
==
uci_ind
->
sfn
&&
mac
->
nr_ue_emul_l1
.
harq
[
k
].
active_dl_harq_slot
==
uci_ind
->
slot
)
{
mac
->
nr_ue_emul_l1
.
harq
[
k
].
active_dl_harq_slot
==
uci_ind
->
slot
)
{
mac
->
nr_ue_emul_l1
.
harq
[
k
].
active
=
false
;
harq_pid
=
k
;
AssertFatal
(
harq_index
<
pdu_0_1
->
harq
->
num_harq
,
"Invalid harq_index %d
\n
"
,
harq_index
);
...
...
openair1/SCHED_NR_UE/phy_procedures_nr_ue.c
View file @
b58791be
...
...
@@ -1323,6 +1323,8 @@ void nr_ue_prach_procedures(PHY_VARS_NR_UE *ue, UE_nr_rxtx_proc_t *proc, uint8_t
ue
->
tx_power_dBm
[
nr_slot_tx
],
dB_fixed
(
prach_power
),
ue
->
prach_vars
[
gNB_id
]
->
amp
);
ue
->
prach_vars
[
gNB_id
]
->
active
=
false
;
}
VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME
(
VCD_SIGNAL_DUMPER_FUNCTIONS_PHY_PROCEDURES_UE_TX_PRACH
,
VCD_FUNCTION_OUT
);
...
...
openair2/LAYER2/NR_MAC_COMMON/nr_mac_common.h
View file @
b58791be
...
...
@@ -32,10 +32,8 @@
#define __LAYER2_NR_MAC_COMMON_H__
#include "NR_MIB.h"
#include "NR_PDSCH-Config.h"
#include "NR_CellGroupConfig.h"
#include "nr_mac.h"
#include "openair1/PHY/impl_defs_nr.h"
#include "common/utils/nr/nr_common.h"
typedef
enum
{
...
...
openair2/LAYER2/NR_MAC_UE/mac_defs.h
View file @
b58791be
...
...
@@ -280,8 +280,6 @@ typedef struct {
uint8_t
RA_active
;
/// Random-access preamble index
int
ra_PreambleIndex
;
/// Flag for the Msg1 generation: enabled at every occurrence of nr prach slot
RA_state_t
generate_nr_prach
;
// When multiple SSBs per RO is configured, this indicates which one is selected in this RO -> this is used to properly compute the PRACH preamble
uint8_t
ssb_nb_in_ro
;
...
...
openair2/LAYER2/NR_MAC_UE/nr_ra_procedures.c
View file @
b58791be
...
...
@@ -31,7 +31,6 @@
*/
/* RRC */
#include "NR_RACH-ConfigCommon.h"
#include "RRC/NR_UE/rrc_proto.h"
/* MAC */
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_procedures.c
View file @
b58791be
...
...
@@ -39,10 +39,6 @@
/* RRC*/
#include "RRC/NR_UE/rrc_proto.h"
#include "NR_RACH-ConfigCommon.h"
#include "NR_RACH-ConfigGeneric.h"
#include "NR_FrequencyInfoDL.h"
#include "NR_PDCCH-ConfigCommon.h"
/* MAC */
#include "NR_MAC_COMMON/nr_mac.h"
...
...
openair2/LAYER2/NR_MAC_UE/nr_ue_scheduler.c
View file @
b58791be
...
...
@@ -35,13 +35,6 @@
/* exe */
#include <common/utils/nr/nr_common.h>
/* RRC*/
#include "RRC/NR_UE/rrc_proto.h"
#include "NR_RACH-ConfigCommon.h"
#include "NR_RACH-ConfigGeneric.h"
#include "NR_FrequencyInfoDL.h"
#include "NR_PDCCH-ConfigCommon.h"
/* MAC */
#include "NR_MAC_COMMON/nr_mac.h"
#include "NR_MAC_COMMON/nr_mac_common.h"
...
...
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.c
View file @
b58791be
...
...
@@ -692,8 +692,7 @@ void check_and_process_dci(nfapi_nr_dl_tti_request_t *dl_tti_request,
if
(
pthread_mutex_lock
(
&
mac
->
mutex_dl_info
))
abort
();
if
(
dl_tti_request
)
{
if
(
dl_tti_request
)
{
frame
=
dl_tti_request
->
SFN
;
slot
=
dl_tti_request
->
Slot
;
LOG_D
(
NR_PHY
,
"[%d, %d] dl_tti_request
\n
"
,
frame
,
slot
);
...
...
@@ -705,40 +704,34 @@ void check_and_process_dci(nfapi_nr_dl_tti_request_t *dl_tti_request,
incoming tx_data_request is also destined for the current UE. If the
RAR hasn't been processed yet, we do not want to be filtering the
tx_data_requests. */
if
(
tx_data_request
)
{
if
(
tx_data_request
)
{
if
(
mac
->
nr_ue_emul_l1
.
expected_sib
||
mac
->
nr_ue_emul_l1
.
expected_rar
||
mac
->
nr_ue_emul_l1
.
expected_dci
)
{
mac
->
nr_ue_emul_l1
.
expected_dci
)
{
frame
=
tx_data_request
->
SFN
;
slot
=
tx_data_request
->
Slot
;
LOG_D
(
NR_PHY
,
"[%d, %d] PDSCH in tx_request
\n
"
,
frame
,
slot
);
copy_tx_data_req_to_dl_info
(
&
mac
->
dl_info
,
tx_data_request
);
}
else
{
else
{
LOG_D
(
NR_MAC
,
"Unexpected tx_data_req
\n
"
);
}
free_and_zero
(
tx_data_request
);
}
else
if
(
ul_dci_request
)
{
else
if
(
ul_dci_request
)
{
frame
=
ul_dci_request
->
SFN
;
slot
=
ul_dci_request
->
Slot
;
LOG_D
(
NR_PHY
,
"[%d, %d] ul_dci_request
\n
"
,
frame
,
slot
);
copy_ul_dci_data_req_to_dl_info
(
&
mac
->
dl_info
,
ul_dci_request
);
free_and_zero
(
ul_dci_request
);
}
else
if
(
ul_tti_request
)
{
else
if
(
ul_tti_request
)
{
frame
=
ul_tti_request
->
SFN
;
slot
=
ul_tti_request
->
Slot
;
LOG_T
(
NR_PHY
,
"[%d, %d] ul_tti_request
\n
"
,
frame
,
slot
);
copy_ul_tti_data_req_to_dl_info
(
&
mac
->
dl_info
,
ul_tti_request
);
}
else
{
else
{
if
(
pthread_mutex_unlock
(
&
mac
->
mutex_dl_info
))
abort
();
LOG_T
(
NR_MAC
,
"All indications were NULL in %s
\n
"
,
__FUNCTION__
);
return
;
...
...
@@ -762,15 +755,12 @@ void check_and_process_dci(nfapi_nr_dl_tti_request_t *dl_tti_request,
ul_info
.
slot_rx
=
slot
;
ul_info
.
slot_tx
=
(
slot
+
slot_ahead
)
%
slots_per_frame
;
ul_info
.
frame_tx
=
(
ul_info
.
slot_rx
+
slot_ahead
>=
slots_per_frame
)
?
ul_info
.
frame_rx
+
1
:
ul_info
.
frame_rx
;
ul_info
.
ue_sched_mode
=
SCHED_PUSCH
;
if
(
mac
->
scc
||
mac
->
scc_SIB
)
{
if
(
mac
->
scc
||
mac
->
scc_SIB
)
{
if
(
is_nr_UL_slot
(
mac
->
scc
?
mac
->
scc
->
tdd_UL_DL_ConfigurationCommon
:
mac
->
scc_SIB
->
tdd_UL_DL_ConfigurationCommon
,
ul_info
.
slot_tx
,
mac
->
frame_type
)
&&
mac
->
ra
.
ra_state
!=
RA_SUCCEEDED
)
{
mac
->
frame_type
)
&&
mac
->
ra
.
ra_state
!=
RA_SUCCEEDED
)
{
nr_ue_scheduler
(
NULL
,
&
ul_info
);
nr_ue_prach_scheduler
(
ul_info
.
module_id
,
ul_info
.
frame_tx
,
ul_info
.
slot_tx
);
}
...
...
@@ -1137,8 +1127,8 @@ int nr_ue_ul_indication(nr_uplink_indication_t *ul_info){
NR_UE_MAC_INST_t
*
mac
=
get_mac_inst
(
module_id
);
NR_TDD_UL_DL_ConfigCommon_t
*
tdd_UL_DL_ConfigurationCommon
=
mac
->
scc
!=
NULL
?
mac
->
scc
->
tdd_UL_DL_ConfigurationCommon
:
mac
->
scc_SIB
->
tdd_UL_DL_ConfigurationCommon
;
LOG_T
(
NR_MAC
,
"In %s():%d not calling scheduler
. sched mode = %d and
mac->ra.ra_state = %d
\n
"
,
__FUNCTION__
,
__LINE__
,
ul_info
->
ue_sched_mode
,
mac
->
ra
.
ra_state
);
LOG_T
(
NR_MAC
,
"In %s():%d not calling scheduler mac->ra.ra_state = %d
\n
"
,
__FUNCTION__
,
__LINE__
,
mac
->
ra
.
ra_state
);
ret
=
nr_ue_scheduler
(
NULL
,
ul_info
);
if
(
is_nr_UL_slot
(
tdd_UL_DL_ConfigurationCommon
,
ul_info
->
slot_tx
,
mac
->
frame_type
)
&&
!
get_softmodem_params
()
->
phy_test
)
{
...
...
openair2/NR_UE_PHY_INTERFACE/NR_IF_Module.h
View file @
b58791be
...
...
@@ -46,11 +46,6 @@ extern slot_rnti_mcs_s slot_rnti_mcs[NUM_NFAPI_SLOT];
typedef
struct
NR_UL_TIME_ALIGNMENT
NR_UL_TIME_ALIGNMENT_t
;
typedef
enum
{
SCHED_PUSCH
,
SCHED_PUCCH
,
}
NR_UE_SCHED_MODE_t
;
typedef
struct
{
/// module id
module_id_t
module_id
;
...
...
@@ -112,7 +107,6 @@ typedef struct {
/// dci reception indication structure
fapi_nr_dci_indication_t
*
dci_ind
;
NR_UE_SCHED_MODE_t
ue_sched_mode
;
void
*
phy_data
;
}
nr_uplink_indication_t
;
...
...
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