FreeCalypso > hg > fc-tourmaline
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 { |