Updated lower limit of 'inter' when recovering hop interval.#7
Conversation
|
I think you are right. Originally, this check was introduced to avoid errors as our sniffer may receive both packets (TX/IDLE packet) from central and (RX/ACK packet) from peripheral devices. It may be a good idea to update this value to its theoretical minimum (i.e. 216), but since we are performing this test on a unique channel (not reused in the hopping sequence), we would obviously avoid to catch two packets belonging to a single connection event. In my opinion, this fix will also work but will also remove the fact that we are trying to avoid false-positive measures. I don't see the need to apply this fix, unless it improves the performance of Bltejack. It is more of a cosmetic fix to me (yet correct and motivated fix too, i cannot deny), and I will consider fixing this in the next release of this firmware. Yes, I'm still working on it, but since it implies modifying large parts of this version, I would prefer delay this fix and test it along some other modifications I'm currently working on. |
|
Did you mean we only receive packets which PDU is empty, like TX/IDEL packets and RX/ACK packets, when recovering hop interval (and channel map, hop increment)? And this is implemented by configuring NRF_RADIO->PCNF1 in |
|
If so, why we configure /* Packet configuration */
NRF_RADIO->PCNF1 = (
(((37UL) << RADIO_PCNF1_MAXLEN_Pos) & RADIO_PCNF1_MAXLEN_Msk) | /* Maximum length of payload in bytes [0-255] */
(((0UL) << RADIO_PCNF1_STATLEN_Pos) & RADIO_PCNF1_STATLEN_Msk) | /* Expand the payload with N bytes in addition to LENGTH [0-255] */
(((3UL) << RADIO_PCNF1_BALEN_Pos) & RADIO_PCNF1_BALEN_Msk) | /* Base address length in number of bytes. */
(((RADIO_PCNF1_ENDIAN_Little) << RADIO_PCNF1_ENDIAN_Pos) & RADIO_PCNF1_ENDIAN_Msk) | /* Endianess of the S0, LENGTH, S1 and PAYLOAD fields. */
(((1UL) << RADIO_PCNF1_WHITEEN_Pos) & RADIO_PCNF1_WHITEEN_Msk) /* Enable packet whitening */
); |
We expect a complete hop sequence cycle when recovering the hop interval. So the
intershould be greater than(HOPSEQ_PERIOD - 1) * MIN_HOPINTER) = 216, whichHOPSEQ_PERIODis 37 andMIN_HOPINTERis7.5 ms / 1.25 ms = 6.In any case I would like to hear your opinions. 😊