Merge remote-tracking branch 'origin/break_dci_processing_function_in_smaller_pieces' into integration_2023_w41
This commit is contained in:
@@ -239,19 +239,6 @@ typedef struct {
|
|||||||
nfapi_vendor_extension_tlv_t vendor_extension;
|
nfapi_vendor_extension_tlv_t vendor_extension;
|
||||||
} nfapi_nr_config_request_t;
|
} nfapi_nr_config_request_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
typedef enum {
|
|
||||||
NFAPI_NR_DL_DCI_FORMAT_1_0 = 0,
|
|
||||||
NFAPI_NR_DL_DCI_FORMAT_1_1,
|
|
||||||
NFAPI_NR_DL_DCI_FORMAT_2_0,
|
|
||||||
NFAPI_NR_DL_DCI_FORMAT_2_1,
|
|
||||||
NFAPI_NR_DL_DCI_FORMAT_2_2,
|
|
||||||
NFAPI_NR_DL_DCI_FORMAT_2_3,
|
|
||||||
NFAPI_NR_UL_DCI_FORMAT_0_0,
|
|
||||||
NFAPI_NR_UL_DCI_FORMAT_0_1
|
|
||||||
} nfapi_nr_dci_format_e;
|
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
NFAPI_NR_RNTI_new = 0,
|
NFAPI_NR_RNTI_new = 0,
|
||||||
NFAPI_NR_RNTI_C,
|
NFAPI_NR_RNTI_C,
|
||||||
|
|||||||
@@ -25,10 +25,6 @@
|
|||||||
#include "PHY/defs_gNB.h"
|
#include "PHY/defs_gNB.h"
|
||||||
#include "PHY/NR_REFSIG/nr_refsig.h"
|
#include "PHY/NR_REFSIG/nr_refsig.h"
|
||||||
|
|
||||||
uint16_t nr_get_dci_size(nfapi_nr_dci_format_e format,
|
|
||||||
nfapi_nr_rnti_type_e rnti_type,
|
|
||||||
uint16_t N_RB);
|
|
||||||
|
|
||||||
void nr_generate_dci_top(processingData_L1tx_t *msgTx,
|
void nr_generate_dci_top(processingData_L1tx_t *msgTx,
|
||||||
int slot,
|
int slot,
|
||||||
int32_t *txdataF,
|
int32_t *txdataF,
|
||||||
|
|||||||
@@ -447,7 +447,8 @@ typedef enum {
|
|||||||
NR_DL_DCI_FORMAT_2_2,
|
NR_DL_DCI_FORMAT_2_2,
|
||||||
NR_DL_DCI_FORMAT_2_3,
|
NR_DL_DCI_FORMAT_2_3,
|
||||||
NR_UL_DCI_FORMAT_0_0,
|
NR_UL_DCI_FORMAT_0_0,
|
||||||
NR_UL_DCI_FORMAT_0_1
|
NR_UL_DCI_FORMAT_0_1,
|
||||||
|
NR_DCI_NONE
|
||||||
} nr_dci_format_t;
|
} nr_dci_format_t;
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
|
|||||||
@@ -161,12 +161,17 @@ int nr_get_sf_periodicBSRTimer(uint8_t bucketSize);
|
|||||||
*/
|
*/
|
||||||
int nr_get_sf_retxBSRTimer(uint8_t retxBSR_Timer);
|
int nr_get_sf_retxBSRTimer(uint8_t retxBSR_Timer);
|
||||||
|
|
||||||
int8_t nr_ue_process_dci(module_id_t module_id, int cc_id, uint8_t gNB_index, frame_t frame, int slot, dci_pdu_rel15_t *dci, fapi_nr_dci_indication_pdu_t *dci_ind);
|
int8_t nr_ue_process_dci(module_id_t module_id,
|
||||||
|
int cc_id,
|
||||||
|
frame_t frame,
|
||||||
|
int slot,
|
||||||
|
dci_pdu_rel15_t *dci,
|
||||||
|
fapi_nr_dci_indication_pdu_t *dci_ind);
|
||||||
int nr_ue_process_dci_indication_pdu(module_id_t module_id, int cc_id, int gNB_index, frame_t frame, int slot, fapi_nr_dci_indication_pdu_t *dci);
|
int nr_ue_process_dci_indication_pdu(module_id_t module_id, int cc_id, int gNB_index, frame_t frame, int slot, fapi_nr_dci_indication_pdu_t *dci);
|
||||||
int8_t nr_ue_process_csirs_measurements(module_id_t module_id, frame_t frame, int slot, fapi_nr_csirs_measurements_t *csirs_measurements);
|
int8_t nr_ue_process_csirs_measurements(module_id_t module_id,
|
||||||
|
frame_t frame,
|
||||||
uint32_t get_ssb_frame(uint32_t test);
|
int slot,
|
||||||
|
fapi_nr_csirs_measurements_t *csirs_measurements);
|
||||||
void nr_ue_aperiodic_srs_scheduling(NR_UE_MAC_INST_t *mac, long resource_trigger, int frame, int slot);
|
void nr_ue_aperiodic_srs_scheduling(NR_UE_MAC_INST_t *mac, long resource_trigger, int frame, int slot);
|
||||||
|
|
||||||
bool trigger_periodic_scheduling_request(NR_UE_MAC_INST_t *mac,
|
bool trigger_periodic_scheduling_request(NR_UE_MAC_INST_t *mac,
|
||||||
@@ -415,6 +420,6 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
|
|||||||
dci_pdu_rel15_t *dci,
|
dci_pdu_rel15_t *dci,
|
||||||
RAR_grant_t *rar_grant,
|
RAR_grant_t *rar_grant,
|
||||||
uint16_t rnti,
|
uint16_t rnti,
|
||||||
const nr_dci_format_t *dci_format);
|
const nr_dci_format_t dci_format);
|
||||||
#endif
|
#endif
|
||||||
/** @}*/
|
/** @}*/
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -422,7 +422,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
|
|||||||
dci_pdu_rel15_t *dci,
|
dci_pdu_rel15_t *dci,
|
||||||
RAR_grant_t *rar_grant,
|
RAR_grant_t *rar_grant,
|
||||||
uint16_t rnti,
|
uint16_t rnti,
|
||||||
const nr_dci_format_t *dci_format)
|
const nr_dci_format_t dci_format)
|
||||||
{
|
{
|
||||||
|
|
||||||
int f_alloc;
|
int f_alloc;
|
||||||
@@ -534,23 +534,23 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
|
|||||||
pusch_config_pdu->bwp_size = current_UL_BWP->BWPSize;
|
pusch_config_pdu->bwp_size = current_UL_BWP->BWPSize;
|
||||||
|
|
||||||
/* Transform precoding */
|
/* Transform precoding */
|
||||||
pusch_config_pdu->transform_precoding = get_transformPrecoding(current_UL_BWP, *dci_format, 0);
|
pusch_config_pdu->transform_precoding = get_transformPrecoding(current_UL_BWP, dci_format, 0);
|
||||||
|
|
||||||
/*DCI format-related configuration*/
|
/*DCI format-related configuration*/
|
||||||
int target_ss;
|
int target_ss;
|
||||||
if (*dci_format == NR_UL_DCI_FORMAT_0_0) {
|
if (dci_format == NR_UL_DCI_FORMAT_0_0) {
|
||||||
target_ss = NR_SearchSpace__searchSpaceType_PR_common;
|
target_ss = NR_SearchSpace__searchSpaceType_PR_common;
|
||||||
if ((pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled) &&
|
if ((pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled) &&
|
||||||
pusch_config_pdu->nr_of_symbols < 3)
|
pusch_config_pdu->nr_of_symbols < 3)
|
||||||
pusch_config_pdu->num_dmrs_cdm_grps_no_data = 1;
|
pusch_config_pdu->num_dmrs_cdm_grps_no_data = 1;
|
||||||
else
|
else
|
||||||
pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2;
|
pusch_config_pdu->num_dmrs_cdm_grps_no_data = 2;
|
||||||
} else if (*dci_format == NR_UL_DCI_FORMAT_0_1) {
|
} else if (dci_format == NR_UL_DCI_FORMAT_0_1) {
|
||||||
target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
target_ss = NR_SearchSpace__searchSpaceType_PR_ue_Specific;
|
||||||
ul_layers_config(mac, pusch_config_pdu, dci, *dci_format);
|
ul_layers_config(mac, pusch_config_pdu, dci, dci_format);
|
||||||
ul_ports_config(mac, &dmrslength, pusch_config_pdu, dci, *dci_format);
|
ul_ports_config(mac, &dmrslength, pusch_config_pdu, dci, dci_format);
|
||||||
} else {
|
} else {
|
||||||
LOG_E(NR_MAC, "In %s: UL grant from DCI format %d is not handled...\n", __FUNCTION__, *dci_format);
|
LOG_E(NR_MAC, "In %s: UL grant from DCI format %d is not handled...\n", __FUNCTION__, dci_format);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -564,7 +564,7 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
|
|||||||
|
|
||||||
pusch_config_pdu->scid = 0;
|
pusch_config_pdu->scid = 0;
|
||||||
pusch_config_pdu->ul_dmrs_scrambling_id = mac->physCellId;
|
pusch_config_pdu->ul_dmrs_scrambling_id = mac->physCellId;
|
||||||
if(*dci_format == NR_UL_DCI_FORMAT_0_1)
|
if (dci_format == NR_UL_DCI_FORMAT_0_1)
|
||||||
pusch_config_pdu->scid = dci->dmrs_sequence_initialization.val;
|
pusch_config_pdu->scid = dci->dmrs_sequence_initialization.val;
|
||||||
|
|
||||||
/* TRANSFORM PRECODING ------------------------------------------------------------------------------------------*/
|
/* TRANSFORM PRECODING ------------------------------------------------------------------------------------------*/
|
||||||
@@ -620,9 +620,15 @@ int nr_config_pusch_pdu(NR_UE_MAC_INST_t *mac,
|
|||||||
|
|
||||||
/* MCS TABLE */
|
/* MCS TABLE */
|
||||||
if (pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled) {
|
if (pusch_config_pdu->transform_precoding == NR_PUSCH_Config__transformPrecoder_disabled) {
|
||||||
pusch_config_pdu->mcs_table = get_pusch_mcs_table(pusch_Config ? pusch_Config->mcs_Table : NULL, 0, *dci_format, rnti_type, target_ss, false);
|
pusch_config_pdu->mcs_table =
|
||||||
|
get_pusch_mcs_table(pusch_Config ? pusch_Config->mcs_Table : NULL, 0, dci_format, rnti_type, target_ss, false);
|
||||||
} else {
|
} else {
|
||||||
pusch_config_pdu->mcs_table = get_pusch_mcs_table(pusch_Config ? pusch_Config->mcs_TableTransformPrecoder : NULL, 1, *dci_format, rnti_type, target_ss, false);
|
pusch_config_pdu->mcs_table = get_pusch_mcs_table(pusch_Config ? pusch_Config->mcs_TableTransformPrecoder : NULL,
|
||||||
|
1,
|
||||||
|
dci_format,
|
||||||
|
rnti_type,
|
||||||
|
target_ss,
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* NDI */
|
/* NDI */
|
||||||
|
|||||||
@@ -87,7 +87,6 @@ int eth_socket_init_raw(openair0_device *device) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* initialize destination address */
|
/* initialize destination address */
|
||||||
bzero((void *)&(eth->local_addrc_ll), sizeof(struct sockaddr_ll));
|
|
||||||
bzero((void *)&(eth->local_addrd_ll), sizeof(struct sockaddr_ll));
|
bzero((void *)&(eth->local_addrd_ll), sizeof(struct sockaddr_ll));
|
||||||
bzero((void *)&(eth->if_index), sizeof(struct ifreq));
|
bzero((void *)&(eth->if_index), sizeof(struct ifreq));
|
||||||
|
|
||||||
@@ -98,17 +97,12 @@ int eth_socket_init_raw(openair0_device *device) {
|
|||||||
for (int i=0;i<eth->num_fd;i++)
|
for (int i=0;i<eth->num_fd;i++)
|
||||||
if (ioctl(eth->sockfdd[i], SIOCGIFINDEX, &(eth->if_index)) < 0)
|
if (ioctl(eth->sockfdd[i], SIOCGIFINDEX, &(eth->if_index)) < 0)
|
||||||
perror("SIOCGIFINDEX");
|
perror("SIOCGIFINDEX");
|
||||||
|
|
||||||
eth->local_addrc_ll.sll_family = AF_PACKET;
|
|
||||||
eth->local_addrc_ll.sll_ifindex = eth->if_index.ifr_ifindex;
|
|
||||||
eth->local_addrd_ll.sll_family = AF_PACKET;
|
eth->local_addrd_ll.sll_family = AF_PACKET;
|
||||||
eth->local_addrd_ll.sll_ifindex = eth->if_index.ifr_ifindex;
|
eth->local_addrd_ll.sll_ifindex = eth->if_index.ifr_ifindex;
|
||||||
/* hear traffic from specific protocol*/
|
/* hear traffic from specific protocol*/
|
||||||
eth->local_addrc_ll.sll_protocol = htons((short)device->eth_params->my_portc);
|
|
||||||
eth->local_addrd_ll.sll_protocol = htons((short)device->eth_params->my_portd);
|
eth->local_addrd_ll.sll_protocol = htons((short)device->eth_params->my_portd);
|
||||||
|
|
||||||
eth->local_addrc_ll.sll_halen = ETH_ALEN;
|
|
||||||
eth->local_addrc_ll.sll_pkttype = PACKET_OTHERHOST;
|
|
||||||
eth->local_addrd_ll.sll_halen = ETH_ALEN;
|
eth->local_addrd_ll.sll_halen = ETH_ALEN;
|
||||||
eth->local_addrd_ll.sll_pkttype = PACKET_OTHERHOST;
|
eth->local_addrd_ll.sll_pkttype = PACKET_OTHERHOST;
|
||||||
eth->addr_len = sizeof(struct sockaddr_ll);
|
eth->addr_len = sizeof(struct sockaddr_ll);
|
||||||
|
|||||||
@@ -80,14 +80,6 @@ typedef struct {
|
|||||||
struct sockaddr_in local_addrd;
|
struct sockaddr_in local_addrd;
|
||||||
/*!\brief address length for both UDP and RAW socket*/
|
/*!\brief address length for both UDP and RAW socket*/
|
||||||
int addr_len;
|
int addr_len;
|
||||||
/*!\brief destination address (control) for RAW socket*/
|
|
||||||
struct sockaddr_ll dest_addrc_ll;
|
|
||||||
/*!\brief local address (control) for RAW socket*/
|
|
||||||
struct sockaddr_ll local_addrc_ll;
|
|
||||||
/*!\brief destination address (user) for RAW socket*/
|
|
||||||
struct sockaddr_ll dest_addrd_ll;
|
|
||||||
/*!\brief local address (user) for RAW socket*/
|
|
||||||
struct sockaddr_ll local_addrd_ll;
|
|
||||||
/*!\brief inteface index for RAW socket*/
|
/*!\brief inteface index for RAW socket*/
|
||||||
struct ifreq if_index;
|
struct ifreq if_index;
|
||||||
/*!\brief timeout ms */
|
/*!\brief timeout ms */
|
||||||
@@ -146,7 +138,9 @@ typedef struct {
|
|||||||
/*!\brief precomputed ethernet header (control) */
|
/*!\brief precomputed ethernet header (control) */
|
||||||
struct ether_header ehc;
|
struct ether_header ehc;
|
||||||
/*!\brief precomputed ethernet header (data) */
|
/*!\brief precomputed ethernet header (data) */
|
||||||
struct ether_header ehd;
|
struct ether_header ehd;
|
||||||
|
/*!\brief local address (user) for RAW socket*/
|
||||||
|
struct sockaddr_ll local_addrd_ll;
|
||||||
} eth_state_t;
|
} eth_state_t;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user