Commit 9fb9ac53 authored by laurent's avatar laurent

UE primary sync ok, DU upper layers disabled, UE DCI decoding nok (partial)

parent 32e19dbb
...@@ -485,6 +485,8 @@ void phy_procedures_eNB_TX_process(uint8_t *bufferZone, int nbBlocks, PHY_VARS_e ...@@ -485,6 +485,8 @@ void phy_procedures_eNB_TX_process(uint8_t *bufferZone, int nbBlocks, PHY_VARS_e
eNB->pdcch_vars[subframe&1].num_pdcch_symbols=hDL(bufferZone)->num_pdcch_symbols; eNB->pdcch_vars[subframe&1].num_pdcch_symbols=hDL(bufferZone)->num_pdcch_symbols;
eNB->pdcch_vars[subframe&1].num_dci=hDL(bufferZone)->num_dci; eNB->pdcch_vars[subframe&1].num_dci=hDL(bufferZone)->num_dci;
uint8_t num_mdci = eNB->mpdcch_vars[subframe&1].num_dci = hDL(bufferZone)->num_mdci; uint8_t num_mdci = eNB->mpdcch_vars[subframe&1].num_dci = hDL(bufferZone)->num_mdci;
eNB->pbch_configured=true;
memcpy(eNB->pbch_pdu,hDL(bufferZone)->pbch_pdu, 4);
// Remove all scheduled DL, we will populate from the CU sending // Remove all scheduled DL, we will populate from the CU sending
for (int UE_id=0; UE_id<NUMBER_OF_UE_MAX; UE_id++) { for (int UE_id=0; UE_id<NUMBER_OF_UE_MAX; UE_id++) {
...@@ -684,6 +686,8 @@ void phy_procedures_eNB_TX_extract(uint8_t *bufferZone, PHY_VARS_eNB *eNB, L1_rx ...@@ -684,6 +686,8 @@ void phy_procedures_eNB_TX_extract(uint8_t *bufferZone, PHY_VARS_eNB *eNB, L1_rx
uint8_t num_pdcch_symbols = eNB->pdcch_vars[subframe&1].num_pdcch_symbols; uint8_t num_pdcch_symbols = eNB->pdcch_vars[subframe&1].num_pdcch_symbols;
uint8_t num_dci = eNB->pdcch_vars[subframe&1].num_dci; uint8_t num_dci = eNB->pdcch_vars[subframe&1].num_dci;
uint8_t num_mdci = eNB->mpdcch_vars[subframe&1].num_dci; uint8_t num_mdci = eNB->mpdcch_vars[subframe&1].num_dci;
memcpy(hDL(bufferZone)->pbch_pdu,eNB->pbch_pdu,4);
LOG_D(PHY,"num_pdcch_symbols %"PRIu8",number dci %"PRIu8"\n",num_pdcch_symbols, num_dci); LOG_D(PHY,"num_pdcch_symbols %"PRIu8",number dci %"PRIu8"\n",num_pdcch_symbols, num_dci);
if (NFAPI_MODE==NFAPI_MONOLITHIC || NFAPI_MODE==NFAPI_MODE_PNF) { if (NFAPI_MODE==NFAPI_MONOLITHIC || NFAPI_MODE==NFAPI_MODE_PNF) {
...@@ -691,6 +695,7 @@ void phy_procedures_eNB_TX_extract(uint8_t *bufferZone, PHY_VARS_eNB *eNB, L1_rx ...@@ -691,6 +695,7 @@ void phy_procedures_eNB_TX_extract(uint8_t *bufferZone, PHY_VARS_eNB *eNB, L1_rx
hDL(bufferZone)->num_dci=num_dci; hDL(bufferZone)->num_dci=num_dci;
hDL(bufferZone)->num_mdci=num_mdci; hDL(bufferZone)->num_mdci=num_mdci;
hDL(bufferZone)->amp=AMP; hDL(bufferZone)->amp=AMP;
LOG_D(PHY, "pbch configured: %d\n", eNB->pbch_configured);
} }
if (do_meas==1) stop_meas(&eNB->dlsch_common_and_dci); if (do_meas==1) stop_meas(&eNB->dlsch_common_and_dci);
......
...@@ -109,9 +109,10 @@ void init_RU_proc(RU_t *ru) { ...@@ -109,9 +109,10 @@ void init_RU_proc(RU_t *ru) {
if (fs6) { if (fs6) {
if ( strncasecmp(fs6,"cu", 2) == 0 ) if ( strncasecmp(fs6,"cu", 2) == 0 )
threadCreate(&t, cu_fs6, (void *)ru, "MainCu", -1, OAI_PRIORITY_RT_MAX); threadCreate(&t, cu_fs6, (void *)ru, "MainCu", -1, OAI_PRIORITY_RT_MAX);
else if ( strncasecmp(fs6,"du", 2) == 0 ) else if ( strncasecmp(fs6,"du", 2) == 0 ) {
threadCreate(&t, du_fs6, (void *)ru, "MainDu", -1, OAI_PRIORITY_RT_MAX); threadCreate(&t, du_fs6, (void *)ru, "MainDu", -1, OAI_PRIORITY_RT_MAX);
}
else else
AssertFatal(false, "environement variable fs6 is not cu or du"); AssertFatal(false, "environement variable fs6 is not cu or du");
} else } else
...@@ -638,8 +639,8 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) { ...@@ -638,8 +639,8 @@ void rx_rf(RU_t *ru,int *frame,int *subframe) {
} else { } else {
if (proc->timestamp_rx - old_ts != fp->samples_per_tti) { if (proc->timestamp_rx - old_ts != fp->samples_per_tti) {
LOG_E(HW,"impossible shift in RFSIM\n"); LOG_E(HW,"impossible shift in RFSIM\n");
ru->ts_offset += (proc->timestamp_rx - old_ts - fp->samples_per_tti); //ru->ts_offset += (proc->timestamp_rx - old_ts - fp->samples_per_tti);
proc->timestamp_rx = ts-ru->ts_offset; //proc->timestamp_rx = ts-ru->ts_offset;
} }
} }
......
...@@ -52,6 +52,7 @@ typedef struct { ...@@ -52,6 +52,7 @@ typedef struct {
} fs6_ul_t; } fs6_ul_t;
typedef struct { typedef struct {
uint8_t pbch_pdu[4];
int num_pdcch_symbols; int num_pdcch_symbols;
int num_dci; int num_dci;
DCI_ALLOC_t dci_alloc[32]; DCI_ALLOC_t dci_alloc[32];
......
...@@ -155,7 +155,6 @@ int sendSubFrame(UDPsock_t *sock, void *bufferZone, ssize_t secondHeaderSize, ui ...@@ -155,7 +155,6 @@ int sendSubFrame(UDPsock_t *sock, void *bufferZone, ssize_t secondHeaderSize, ui
nbBlocks--; nbBlocks--;
} while (nbBlocks); } while (nbBlocks);
LOG_D(HW,"Sent: TS: %lu, frame: %d, subframe: %d\n", LOG_D(HW,"Sent: TS: %lu\n", UDPheader->timestamp);
UDPheader->timestamp, *(((int *)UDPheader)+1), *(((int *)UDPheader)+2));
return 0; return 0;
} }
...@@ -49,6 +49,9 @@ int create_tasks(uint32_t enb_nb) { ...@@ -49,6 +49,9 @@ int create_tasks(uint32_t enb_nb) {
int rc; int rc;
if (enb_nb == 0) return 0; if (enb_nb == 0) return 0;
bool fs6Du=false;
if ( getenv("fs6") != NULL && strncasecmp( getenv("fs6"), "du", 2) == 0 )
fs6Du=true;
LOG_I(ENB_APP, "Creating ENB_APP eNB Task\n"); LOG_I(ENB_APP, "Creating ENB_APP eNB Task\n");
rc = itti_create_task (TASK_ENB_APP, eNB_app_task, NULL); rc = itti_create_task (TASK_ENB_APP, eNB_app_task, NULL);
...@@ -64,7 +67,7 @@ int create_tasks(uint32_t enb_nb) { ...@@ -64,7 +67,7 @@ int create_tasks(uint32_t enb_nb) {
} }
if (EPC_MODE_ENABLED && !NODE_IS_DU(type)) { if (EPC_MODE_ENABLED && !NODE_IS_DU(type) && !fs6Du ) {
rc = itti_create_task(TASK_S1AP, s1ap_eNB_task, NULL); rc = itti_create_task(TASK_S1AP, s1ap_eNB_task, NULL);
AssertFatal(rc >= 0, "Create task for S1AP failed\n"); AssertFatal(rc >= 0, "Create task for S1AP failed\n");
if (!(get_softmodem_params()->emulate_rf)){ if (!(get_softmodem_params()->emulate_rf)){
......
...@@ -593,8 +593,10 @@ int main( int argc, char **argv ) { ...@@ -593,8 +593,10 @@ int main( int argc, char **argv ) {
/* initializes PDCP and sets correct RLC Request/PDCP Indication callbacks /* initializes PDCP and sets correct RLC Request/PDCP Indication callbacks
* for monolithic/F1 modes */ * for monolithic/F1 modes */
if ( getenv("fs6") == NULL || strncasecmp( getenv("fs6"), "du", 2) != 0 ) //if ( getenv("fs6") != NULL && strncasecmp( getenv("fs6"), "du", 2) == 0 )
init_pdcp(); //RC.rrc[0]->node_type=ngran_eNB_DU;
init_pdcp();
if (create_tasks(1) < 0) { if (create_tasks(1) < 0) {
printf("cannot create ITTI tasks\n"); printf("cannot create ITTI tasks\n");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment