Commit f416f68d authored by Raymond Knopp's avatar Raymond Knopp

Merge branch 'l1-sidelink' of https://gitlab.eurecom.fr/matzakos/LTE-D2D into l1-sidelink

parents ccec4ffc fdf5c99b
......@@ -401,7 +401,7 @@ void generate_sldch(PHY_VARS_UE *ue,SLDCH_t *sldch,int frame_tx,int subframe_tx)
(void*)sldch,
sizeof(SLDCH_t));
LOG_I(PHY,"SLDCH configuration %lu bytes, TBS payload %d bytes => %lu bytes\n",
LOG_D(PHY,"SLDCH configuration %lu bytes, TBS payload %d bytes => %lu bytes\n",
sizeof(SLDCH_t)-sizeof(uint8_t*),
sldch->payload_length,
sldch_header_len+sizeof(SLDCH_t)-sizeof(uint8_t*)+sldch->payload_length);
......@@ -591,7 +591,7 @@ void check_and_generate_psdch(PHY_VARS_UE *ue,int frame_tx,int subframe_tx) {
if (absSF_modP != ((b_1i*N_TX_SLD)+sldch->j)) return;
nprb = 2*a_ji;
LOG_D(PHY,"Generating SLDCH in SFN.SF %d.%d (O %d, P %d, n_psdch %d, Nf %d, Ni %d, j %d, a_ji %d) \n",frame_tx,subframe_tx,O,P,sldch->n_psdch,Nf,Ni,sldch->j,a_ji);
LOG_D(PHY,"Generating SLDCH in SFN.SF %d.%d (O %d, P %d, n_psdch %d, Nf %d, Ni %d, j %d, a_ji %d) \n",frame_tx,subframe_tx,O,P,sldch->n_psdch,Nf,Ni,sldch->j,a_ji);
}
else {
......@@ -606,4 +606,6 @@ void check_and_generate_psdch(PHY_VARS_UE *ue,int frame_tx,int subframe_tx) {
ue->psdch_generated=1;
sldch->j++;
sldch->j&=3;
if (sldch->j==0) ue->sldch_active=0;
}
......@@ -829,6 +829,7 @@ void pscch_decoding(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc,int frame_rx,int subfra
write_output("rxsig0_7_5kHz.m","rxs0_7_5kHz",rxdata_7_5kHz[0],ue->frame_parms.samples_per_tti,1,1);
#endif
for (int l=0; l<Nsymb; l++) slot_fep_ul(&ru_tmp,l,(subframe_rx<<1)+slot,0);
proc->sl_fep_done = 1;
}
// extract symbols from slot
for (int l=0; l<Nsymb; l++) {
......
......@@ -1315,6 +1315,7 @@ typedef struct {
int sldch_received[MAX_SLDCH];
int sldch_rxcnt[MAX_SLDCH];
int sldch_txcnt[MAX_SLDCH];
int sldch_active;
int16_t **sl_rxdataF[RX_NB_TH_MAX];
int16_t **sl_rxdata_7_5kHz[RX_NB_TH_MAX];
int16_t *slsch_dlsch_llr;
......
......@@ -2368,7 +2368,8 @@ void phy_procedures_UE_SL_TX(PHY_VARS_UE *ue,UE_rxtx_proc_t *proc) {
// check for SLDCH
AssertFatal(0==pthread_mutex_lock(&ue->sldch_mutex),"");
if ((ue->sldch = ue_get_sldch(ue->Mod_id,ue->CC_id,frame_tx,subframe_tx)) != NULL) check_and_generate_psdch(ue,frame_tx,subframe_tx);
if ((ue->sldch_active ==0) && (ue->sldch = ue_get_sldch(ue->Mod_id,ue->CC_id,frame_tx,subframe_tx)) != NULL) ue->sldch_active = 1;
if (ue->sldch_active == 1) check_and_generate_psdch(ue,frame_tx,subframe_tx);
AssertFatal(0==pthread_mutex_unlock(&ue->sldch_mutex),"");
//LOG_D(PHY,"ULSCH (after sldch) : signal F energy %d dB (txdataF %p)\n",dB_fixed(signal_energy(&ue->common_vars.txdataF[0][subframe_tx*14*ue->frame_parms.ofdm_symbol_size],14*ue->frame_parms.ofdm_symbol_size)),&ue->common_vars.txdataF[0][subframe_tx*14*ue->frame_parms.ofdm_symbol_size]);
......
......@@ -289,7 +289,7 @@ mac_rrc_data_ind_ue(
//TTN (for D2D)
if(srb_idP == SL_DISCOVERY) {
LOG_I(RRC,"[UE %d] Received SDU (%d bytes) for SL_DISCOVERY on SRB %d from eNB %d\n",module_idP, sdu_lenP, srb_idP,eNB_indexP);
LOG_D(RRC,"[UE %d] Received SDU (%d bytes) for SL_DISCOVERY on SRB %d from eNB %d\n",module_idP, sdu_lenP, srb_idP,eNB_indexP);
decode_SL_Discovery_Message(&ctxt, eNB_indexP, sduP, sdu_lenP);
}
#endif // Re114
......
......@@ -5563,7 +5563,7 @@ void *rrc_control_socket_thread_fct(void *arg)
//from the main program, listen for the incoming messages from control socket (ProSe App)
prose_addr_len = sizeof(prose_app_addr);
while (1) {
LOG_I(RRC,"Listening to incoming connection from ProSe App \n");
LOG_D(RRC,"Listening to incoming connection from ProSe App \n");
// receive a message from ProSe App
memset(receive_buf, 0, BUFSIZE);
n = recvfrom(ctrl_sock_fd, receive_buf, BUFSIZE, 0,
......@@ -6593,13 +6593,13 @@ void *rrc_control_socket_thread_fct(void *arg)
case PC5_DISCOVERY_MESSAGE:
#ifdef DEBUG_CTRL_SOCKET
LOG_I(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
LOG_D(RRC,"[PC5DiscoveryMessage] Received on socket from ProSe App (msg type: %d)\n",sl_ctrl_msg_recv->type);
#endif
//prepare SL_Discovery buffer
if (UE_rrc_inst) {
memcpy((void*)&UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.Payload[0], (void*)&sl_ctrl_msg_recv->sidelinkPrimitive.pc5_discovery_message.payload[0], PC5_DISCOVERY_PAYLOAD_SIZE);
UE_rrc_inst[module_id].SL_Discovery[0].Tx_buffer.payload_size = PC5_DISCOVERY_PAYLOAD_SIZE;
LOG_I(RRC,"[PC5DiscoveryMessage] Copied %d bytes\n",PC5_DISCOVERY_PAYLOAD_SIZE);
LOG_D(RRC,"[PC5DiscoveryMessage] Copied %d bytes\n",PC5_DISCOVERY_PAYLOAD_SIZE);
}
break;
default:
......
......@@ -791,6 +791,8 @@ int main( int argc, char **argv )
get_options ();
if (SLonly == 1 || synchRef==1) sidelink_active=1;
#if T_TRACER
T_init(T_port, 1-T_nowait, T_dont_fork);
#endif
......@@ -854,6 +856,15 @@ int main( int argc, char **argv )
#endif
#endif
#ifdef Rel14
if (sidelink_active == 1) {
printf ("RRC control socket\n");
rrc_control_socket_init();
printf ("PDCP PC5S socket\n");
pdcp_pc5_socket_init();
}
#endif
#if !defined(ENABLE_ITTI)
// to make a graceful exit when ctrl-c is pressed
signal(SIGSEGV, signal_handler);
......@@ -885,7 +896,6 @@ int main( int argc, char **argv )
NB_INST=1;
PHY_vars_UE_g = malloc(sizeof(PHY_VARS_UE**));
PHY_vars_UE_g[0] = malloc(sizeof(PHY_VARS_UE*)*MAX_NUM_CCs);
if (SLonly == 1 || synchRef==1) sidelink_active=1;
PHY_vars_UE_g[0][CC_id] = init_ue_vars(frame_parms[CC_id], 0,abstraction_flag,sidelink_active);
UE[CC_id] = PHY_vars_UE_g[0][CC_id];
printf("PHY_vars_UE_g[0][%d] = %p\n",CC_id,UE[CC_id]);
......
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