nimble/ll: Simplify/refactor PDU RX flow in scanner

This refactors PDU RX flow through scanner to make it simpler and also
fix some bugs. Until now both rx_isr_end and rx_pkt_in has common code
for both legacy and ext adv PDUs with many nested conditions added over
time so it was not too easy to follow it.

Both routines are now split into few helpers, most notably have separate
path for legacy and ext adv PDUs which greatly reduces number of various
checks in code, like "is it a ext adv PDU?" over and over again. Once
required data are extracted from PDU they are run through common routine
to resolve addresses and apply all filtering policies including privacy
mode which was not supported by old code.

Finally, rx_pkt_in should execute faster since it relies on flags set by
rx_isr_end more to strip some unnecessary processing.
This commit is contained in:
Andrzej Kaczmarek
2020-01-07 21:06:47 +01:00
parent ee2ce17b35
commit ec86d1fdb8
File diff suppressed because it is too large Load Diff