# HG changeset patch # User Mychaela Falconia # Date 1764877235 0 # Node ID 54f0f1b74c25cc2935794f7f689f53826f0826a7 # Parent 27df1cef042c774eaa966a50fc34c0d9187120d7 libgsmhr1 TFO: require BFI=0 and SID=0 for homing In order for a received frame to be recognized as DHF, we need not only the correct bit pattern, but also BFI=0 and SID=0. The BFI=0 requirement should be obvious, while the SID=0 requirement is needed only for HR codec. With FR and EFR, SID classification comes from the payload bits and no separate check is needed - but in HR we get an out-of-band SID ternary flag. When SID=1, no payload bits are used at all; when SID=2, we use only the first 33 bits of the payload. Therefore, it is proper to conditionalize DHF acceptance on SID=0. We already implemented this logic in the just finished full decoder; now bring TFO code into agreement. diff -r 27df1cef042c -r 54f0f1b74c25 libgsmhr1/tfo.c --- a/libgsmhr1/tfo.c Thu Dec 04 19:05:38 2025 +0000 +++ b/libgsmhr1/tfo.c Thu Dec 04 19:40:35 2025 +0000 @@ -25,7 +25,7 @@ dl[19] = 1; } /* homing logic */ - if (!ul[18] && + if (ul[18] == 0 && ul[20] == 0 && !memcmp(ul, gsmhr_dhf_params, sizeof(int16_t) * GSMHR_NUM_PARAMS)) gsmhr_rxfe_reset(st); }