b224a099fd
The RSSI value in net_pkt (net_pkt_cb_ieee802154.rssi) was used inconsistently across drivers. Some drivers did cast a signed dBm value directly to net_pkt's unsigned byte value. Others were assigning the negative value of the signed dBm value and again others were offsetting and stretching the signed dBm value linearly onto the full unsigned byte range. This change standardizes net_pkt's rssi attribute to represent RSSI on the RX path as an unsigned integer ranging from 0 (–174 dBm) to 254 (80 dBm) and lets 255 represent an "unknown RSSI" (IEEE 802.15.4-2020, section 6.16.2.8). On the TX path the rssi attribute will always be zero. Out-of-range values will be truncated to max/min values. The change also introduces conversion functions to and from signed dBm values and introduces these consistently to all existing call sites. The "unknown RSSI" value is represented as INT16_MIN in this case. In some cases drivers had to be changed to calculate dBm values from internal hardware specific representations. The conversion functions are fully covered by unit tests. Fixes: #58494 Signed-off-by: Florian Grandel <fgrandel@code-for-humans.de> |
||
---|---|---|
.. | ||
6lo_fragment | ||
custom_l2 | ||
l2 |