Commit e762ed5d authored by Raymond Knopp's avatar Raymond Knopp

experimental changes v3

parent 9b442e05
...@@ -119,17 +119,14 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { ...@@ -119,17 +119,14 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
blockoffsetF += fp->ofdm_symbol_size; blockoffsetF += fp->ofdm_symbol_size;
} }
} else if (packet_type == IF4p5_PULCALIB) { } else if (packet_type == IF4p5_PULCALIB) {
LOG_D(PHY,"send UL_IF4p5: RU %d frame %d, subframe %d\n",ru->idx,frame,subframe); LOG_D(PHY,"send PULCALIB_IF4p5: RU %d frame %d, subframe %d\n",ru->idx,frame,subframe);
if (subframe_select(fp,subframe)==SF_S) { AssertFatal(subframe_select(fp,subframe==SF_S), "calling PULCALIB in non-S subframe\n");
nsym=fp->ul_symbols_in_S_subframe; db_fulllength = 12*fp->N_RB_UL;
db_fulllength = 12*fp->N_RB_UL; db_halflength = (db_fulllength)>>1;
db_halflength = (db_fulllength)>>1; slotoffsetF += (fp->ofdm_symbol_size*3);
//slotoffsetF = 1;//(subframe)*(fp->ofdm_symbol_size)*((fp->Ncp==1) ? 12 : 14) + 1; blockoffsetF += (fp->ofdm_symbol_size*3);
//blockoffsetF = slotoffsetF + fp->ofdm_symbol_size - db_halflength - 1;
slotoffsetF += (fp->ofdm_symbol_size*(fp->symbols_per_tti-nsym));
blockoffsetF += (fp->ofdm_symbol_size*(fp->symbols_per_tti-nsym));
}
if (eth->flags == ETH_RAW_IF4p5_MODE) { if (eth->flags == ETH_RAW_IF4p5_MODE) {
packet_header = (IF4p5_header_t *)(tx_buffer + MAC_HEADER_SIZE_BYTES); packet_header = (IF4p5_header_t *)(tx_buffer + MAC_HEADER_SIZE_BYTES);
...@@ -141,7 +138,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { ...@@ -141,7 +138,7 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
gen_IF4p5_ul_header(packet_header, packet_type, frame, subframe); gen_IF4p5_ul_header(packet_header, packet_type, frame, subframe);
AssertFatal(txdataF[0]!=NULL,"txdataF_BF[0] is null\n"); AssertFatal(txdataF[0]!=NULL,"txdataF_BF[0] is null\n");
for (symbol_id=0; symbol_id<nsym; symbol_id++) { for (symbol_id=3; symbol_id<11; symbol_id=10) {
for (int antenna_id=0; antenna_id<ru->nb_tx; antenna_id++) { for (int antenna_id=0; antenna_id<ru->nb_tx; antenna_id++) {
for (element_id=0; element_id<db_halflength; element_id++) { for (element_id=0; element_id<db_halflength; element_id++) {
i = (uint16_t*) &txdataF[antenna_id][blockoffsetF+element_id]; i = (uint16_t*) &txdataF[antenna_id][blockoffsetF+element_id];
...@@ -167,8 +164,8 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) { ...@@ -167,8 +164,8 @@ void send_IF4p5(RU_t *ru, int frame, int subframe, uint16_t packet_type) {
perror("ETHERNET write for IF4p5_PULCALIB\n"); perror("ETHERNET write for IF4p5_PULCALIB\n");
} }
if (ru->idx<=1) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0+ru->idx, 0 ); if (ru->idx<=1) VCD_SIGNAL_DUMPER_DUMP_FUNCTION_BY_NAME( VCD_SIGNAL_DUMPER_FUNCTIONS_TRX_WRITE_IF0+ru->idx, 0 );
slotoffsetF += fp->ofdm_symbol_size; slotoffsetF += fp->ofdm_symbol_size*7;
blockoffsetF += fp->ofdm_symbol_size; blockoffsetF += fp->ofdm_symbol_size*7;
} }
} else if ((packet_type == IF4p5_PULFFT)|| } else if ((packet_type == IF4p5_PULFFT)||
(packet_type == IF4p5_PULTICK)){ (packet_type == IF4p5_PULTICK)){
......
...@@ -157,7 +157,17 @@ void remove_7_5_kHz(RU_t *ru,uint8_t slot) ...@@ -157,7 +157,17 @@ void remove_7_5_kHz(RU_t *ru,uint8_t slot)
(2*frame_parms->nb_prefix_samples)+ (2*frame_parms->nb_prefix_samples)+
frame_parms->nb_prefix_samples0], frame_parms->nb_prefix_samples0],
(frame_parms->ofdm_symbol_size + frame_parms->nb_prefix_samples)*sizeof(int32_t)); (frame_parms->ofdm_symbol_size + frame_parms->nb_prefix_samples)*sizeof(int32_t));
} }
if (ru->is_slave == 0 && slot == 3){
memcpy((void*)&rxdata_7_5kHz[aa][(10*frame_parms->ofdm_symbol_size)+
(10*frame_parms->nb_prefix_samples)+
frame_parms->nb_prefix_samples0],
(void*)&rxdata[aa][slot_offset+ru->N_TA_offset+
(10*frame_parms->ofdm_symbol_size)+
(9*frame_parms->nb_prefix_samples)+
frame_parms->nb_prefix_samples0],
(frame_parms->ofdm_symbol_size + frame_parms->nb_prefix_samples)*sizeof(int32_t));
}
} }
} }
...@@ -714,7 +714,7 @@ void ru_fep_full_2thread(RU_t *ru) { ...@@ -714,7 +714,7 @@ void ru_fep_full_2thread(RU_t *ru) {
} }
if (proc->subframe_rx==1 && ru->is_slave==0) { if (proc->subframe_rx==1 && ru->is_slave==0) {
//LOG_I(PHY,"******************** Master receives DMRS from slave\n");
ulsch_extract_rbs_single(ru->common.rxdataF, ulsch_extract_rbs_single(ru->common.rxdataF,
calibration->rxdataF_ext, calibration->rxdataF_ext,
0, 0,
......
...@@ -158,7 +158,7 @@ static inline void fh_if4p5_south_out(RU_t *ru) { ...@@ -158,7 +158,7 @@ static inline void fh_if4p5_south_out(RU_t *ru) {
if (subframe_select(&ru->frame_parms,ru->proc.subframe_tx)!=SF_UL) { if (subframe_select(&ru->frame_parms,ru->proc.subframe_tx)!=SF_UL) {
send_IF4p5(ru,ru->proc.frame_tx, ru->proc.subframe_tx, IF4p5_PDLFFT); send_IF4p5(ru,ru->proc.frame_tx, ru->proc.subframe_tx, IF4p5_PDLFFT);
ru->south_out_cnt++; ru->south_out_cnt++;
//printf("south_out_cnt %d, frame %d, subframe %d, RU %d\n",ru->south_out_cnt,ru->proc.frame_tx,ru->proc.subframe_tx,ru->idx); LOG_I(PHY,"south_out_cnt %d, frame %d, subframe %d, RU %d\n",ru->south_out_cnt,ru->proc.frame_tx,ru->proc.subframe_tx,ru->idx);
} }
/*if (ru == RC.ru[0] || ru == RC.ru[1]) { /*if (ru == RC.ru[0] || ru == RC.ru[1]) {
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_RU+ru->idx, ru->proc.frame_tx ); VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME( VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_TX0_RU+ru->idx, ru->proc.frame_tx );
...@@ -419,7 +419,7 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) { ...@@ -419,7 +419,7 @@ void fh_if4p5_north_asynch_in(RU_t *ru,int *frame,int *subframe) {
symbol_number = 0; symbol_number = 0;
symbol_mask = 0; symbol_mask = 0;
symbol_mask_full = ((subframe_select(fp,*subframe) == SF_S) ? (1<<fp->dl_symbols_in_S_subframe) : (1<<fp->symbols_per_tti))-1; symbol_mask_full = ((subframe_select(fp,*subframe) == SF_S) ? (1<<fp->dl_symbols_in_S_subframe) : (1<<fp->symbols_per_tti))-1;
LOG_D(PHY,"fh_if4p5_north_asynch_in: RU %d, frame %d, subframe %d\n",ru->idx,*frame,*subframe); LOG_D(PHY,"fh_if4p5_north_asynch_in: RU %d, frame %d, subframe %d, packet_type %x\n",ru->idx,*frame,*subframe,packet_type);
do { do {
recv_IF4p5(ru, &frame_tx, &subframe_tx, &packet_type, &symbol_number); recv_IF4p5(ru, &frame_tx, &subframe_tx, &packet_type, &symbol_number);
LOG_D(PHY,"income frame.subframe %d.%d, our frame.subframe.symbol_number %d.%d.%d (symbol mask %x)\n",frame_tx,subframe_tx,*frame,*subframe,symbol_number,symbol_mask); LOG_D(PHY,"income frame.subframe %d.%d, our frame.subframe.symbol_number %d.%d.%d (symbol mask %x)\n",frame_tx,subframe_tx,*frame,*subframe,symbol_number,symbol_mask);
...@@ -501,11 +501,11 @@ void fh_if4p5_north_out(RU_t *ru) { ...@@ -501,11 +501,11 @@ void fh_if4p5_north_out(RU_t *ru) {
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_NORTH_OUT, proc->subframe_rx ); VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_SUBFRAME_NUMBER_IF4P5_NORTH_OUT, proc->subframe_rx );
VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_NORTH_OUT, proc->frame_rx ); VCD_SIGNAL_DUMPER_DUMP_VARIABLE_BY_NAME(VCD_SIGNAL_DUMPER_VARIABLES_FRAME_NUMBER_IF4P5_NORTH_OUT, proc->frame_rx );
} }
LOG_D(PHY,"fh_if4p5_north_out: Sending IF4p5_PULFFT SFN.SF %d.%d\n",proc->frame_rx,proc->subframe_rx);
if ((fp->frame_type == TDD) && (subframe_select(fp,subframe)!=SF_UL)) { if ((fp->frame_type == TDD) && (subframe_select(fp,subframe)!=SF_UL)) {
/// **** in TDD during DL send_IF4 of ULTICK to RCC **** /// /// **** in TDD during DL send_IF4 of ULTICK to RCC **** ///
//send_IF4p5(ru, proc->frame_rx, proc->subframe_rx, IF4p5_PULTICK); //send_IF4p5(ru, proc->frame_rx, proc->subframe_rx, IF4p5_PULTICK);
send_IF4p5(ru, proc->frame_rx, proc->subframe_rx, IF4p5_PULCALIB); send_IF4p5(ru, proc->frame_rx, proc->subframe_rx, IF4p5_PULCALIB);
LOG_D(PHY,"fh_if4p5_north_out: Sending IF4p5_PULCALIB SFN.SF %d.%d\n",proc->frame_rx,proc->subframe_rx);
ru->north_out_cnt++; ru->north_out_cnt++;
return; return;
} }
...@@ -803,9 +803,10 @@ void tx_rf(RU_t *ru) { ...@@ -803,9 +803,10 @@ void tx_rf(RU_t *ru) {
siglen+sf_extension, siglen+sf_extension,
ru->nb_tx, ru->nb_tx,
flags); flags);
LOG_I(PHY,"************** RU_id %d,RU_tag %d,timestamp %d,offset %d,extension %d,olo %d\n",ru->idx,ru->tag,proc->timestamp_tx,ru->ts_offset,sf_extension, //LOG_I(PHY,"************** RU_id %d,RU_tag %d,timestamp %d,offset %d,extension %d,olo %d\n",ru->idx,ru->tag,proc->timestamp_tx,ru->ts_offset,sf_extension,
proc->timestamp_tx+ru->ts_offset-ru->openair0_cfg.tx_sample_advance-sf_extension); // proc->timestamp_tx+ru->ts_offset-ru->openair0_cfg.tx_sample_advance-sf_extension);
if (ru->is_slave==1 && ru->state==RU_RUN && proc->frame_tx%ru->p==ru->tag-1 && SF_type == SF_S) { if (ru->is_slave==1 && ru->state==RU_RUN && proc->frame_tx%ru->p==ru->tag-1 && proc->subframe_tx==1) {
//LOG_I(PHY,"******** subframe %d Slave sends DMRS\n",proc->subframe_tx);
txs = ru->rfdevice.trx_write_func(&ru->rfdevice, txs = ru->rfdevice.trx_write_func(&ru->rfdevice,
proc->timestamp_tx+(ru->ts_offset+10*1024+80+10*72)-ru->openair0_cfg.tx_sample_advance-sf_extension, proc->timestamp_tx+(ru->ts_offset+10*1024+80+10*72)-ru->openair0_cfg.tx_sample_advance-sf_extension,
txp1, txp1,
......
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