comparison src/cs/layer1/cfile/l1_cmplx.c @ 304:58c7961bd0b0 default tip

TCH tap: extend DL sniffing feature to support CSD modes Our debug feature for TCH DL sniffing reads the content of the DSP's a_dd_0 buffer (or a_dd_1 for TCH/H subchannel 1) at appropriate times and forwards captured bits to the host. This feature was originally implemented for TCH/FS, TCH/EFS and TCH/HS - now extend it to cover TCH/F data modes too.
author Mychaela Falconia <falcon@freecalypso.org>
date Mon, 25 Nov 2024 23:33:27 +0000
parents edcb8364d45b
children
comparison
equal deleted inserted replaced
303:f76436d19a7a 304:58c7961bd0b0
9282 if (l1_stats.type == PLAY_UL && 9282 if (l1_stats.type == PLAY_UL &&
9283 (channel_mode == TCH_FS_MODE || channel_mode == TCH_24F_MODE 9283 (channel_mode == TCH_FS_MODE || channel_mode == TCH_24F_MODE
9284 || channel_mode == TCH_EFR_MODE)) 9284 || channel_mode == TCH_EFR_MODE))
9285 play_trace(); 9285 play_trace();
9286 #endif 9286 #endif
9287 if (tch_dl_sniff_mode && 9287 if (tch_dl_sniff_mode)
9288 (channel_mode == TCH_FS_MODE || channel_mode == TCH_EFR_MODE))
9289 { 9288 {
9290 tch_send_downlink_bits(l1s_dsp_com.dsp_ndb_ptr->a_dd_0, 20, 9289 switch (channel_mode) {
9291 channel_mode, fn_mod_104); 9290 case TCH_FS_MODE:
9291 case TCH_EFR_MODE:
9292 tch_send_downlink_bits(l1s_dsp_com.dsp_ndb_ptr->a_dd_0, 20,
9293 channel_mode, fn_mod_104);
9294 break;
9295 case TCH_24F_MODE:
9296 tch_send_downlink_bits(l1s_dsp_com.dsp_ndb_ptr->a_dd_0, 8,
9297 channel_mode, fn_mod_104);
9298 break;
9299 }
9292 } 9300 }
9293 9301
9294 // FACCH: Check A_FD information block. 9302 // FACCH: Check A_FD information block.
9295 //------------------------------------- 9303 //-------------------------------------
9296 9304
9539 #if TRACE_TYPE==3 9547 #if TRACE_TYPE==3
9540 if (l1_stats.type == PLAY_UL && 9548 if (l1_stats.type == PLAY_UL &&
9541 (channel_mode == TCH_48F_MODE || channel_mode == TCH_96_MODE || channel_mode == TCH_144_MODE)) 9549 (channel_mode == TCH_48F_MODE || channel_mode == TCH_96_MODE || channel_mode == TCH_144_MODE))
9542 play_trace(); 9550 play_trace();
9543 #endif 9551 #endif
9552 if (tch_dl_sniff_mode)
9553 {
9554 switch (channel_mode) {
9555 case TCH_48F_MODE:
9556 tch_send_downlink_bits(l1s_dsp_com.dsp_ndb_ptr->a_dd_0, 11,
9557 channel_mode, fn_mod_104);
9558 break;
9559 case TCH_96_MODE:
9560 tch_send_downlink_bits(l1s_dsp_com.dsp_ndb_ptr->a_dd_0, 18,
9561 channel_mode, fn_mod_104);
9562 break;
9563 case TCH_144_MODE:
9564 tch_send_downlink_bits(l1s_dsp_com.dsp_ndb_ptr->a_dd_0, 22,
9565 channel_mode, fn_mod_104);
9566 break;
9567 }
9568 }
9544 9569
9545 // Check A_DD_0 information block only if no FACCH. 9570 // Check A_DD_0 information block only if no FACCH.
9546 b_blud = (l1s_dsp_com.dsp_ndb_ptr->a_dd_0[0] & (1<<B_BLUD)) >> B_BLUD; 9571 b_blud = (l1s_dsp_com.dsp_ndb_ptr->a_dd_0[0] & (1<<B_BLUD)) >> B_BLUD;
9547 if(b_blud == TRUE) 9572 if(b_blud == TRUE)
9548 { 9573 {