Skip to content

Commit

Permalink
[radio] fix connectivity issues caused by an accidental deletion in `…
Browse files Browse the repository at this point in the history
…radio.c` (#776)
  • Loading branch information
lmnotran authored Jan 23, 2024
1 parent f2448dc commit e6651a1
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 5 deletions.
4 changes: 2 additions & 2 deletions script/build
Original file line number Diff line number Diff line change
Expand Up @@ -279,10 +279,10 @@ main()
for t in "${OT_CMAKE_NINJA_TARGET[@]}"; do [[ $t =~ .*rcp.* ]] && rcp_targets+=("$t") || soc_targets+=("$t"); done

# Build ot-rcp targets
if contains "ot-rcp-uart" "${rcp_targets[@]}"; then
if contains "ot-rcp-uart" "${rcp_targets[@]-}"; then
build_rcp_uart -DEFR32_PLATFORM="${platform}" -DBOARD="${board}" "${options[@]}"
fi
if contains "ot-rcp-spi" "${rcp_targets[@]}"; then
if contains "ot-rcp-spi" "${rcp_targets[@]-}"; then
build_rcp_spi -DEFR32_PLATFORM="${platform}" -DBOARD="${board}" "${options[@]}"
fi
# Build soc targets
Expand Down
14 changes: 11 additions & 3 deletions src/src/radio.c
Original file line number Diff line number Diff line change
Expand Up @@ -678,10 +678,16 @@ static bool isFilterMaskValid(uint8_t mask)
if (
// Case 1
((mask & RADIO_BCAST_PANID_FILTER_MASK) || (mask & RADIO_BCAST_ADDR_FILTER_MASK)) ||
// Case 2
((mask & 0x0F) == (mask >> 4)) ||
// Case 2 - Find any non-broadcast PAN ID match and get ready to compare it
((((mask & (RADIO_INDEX0_PANID_FILTER_MASK | RADIO_INDEX1_PANID_FILTER_MASK | RADIO_INDEX2_PANID_FILTER_MASK))
>> RADIO_PANID_FILTER_SHIFT)
&
// To see if it coincides with any address matches for same IID
(RADIO_GET_ADDR_FILTER_MASK(mask) >> RADIO_ADDR_FILTER_SHIFT))
!= 0)
||
// Case 3
(((mask & 0x0F) == 0) || ((mask >> 4) == 0)))
(((RADIO_GET_PANID_FILTER_MASK(mask)) == 0) || ((RADIO_GET_ADDR_FILTER_MASK(mask)) == 0)))
{
valid = true;
}
Expand Down Expand Up @@ -1715,6 +1721,8 @@ otError otPlatRadioTransmit(otInstance *aInstance, otRadioFrame *aFrame)
// this results in calling the SE interface from a critical section which is not permitted.
#if OPENTHREAD_RADIO && OPENTHREAD_CONFIG_MULTIPAN_RCP_ENABLE == 1
radioProcessTransmitSecurity(sTxFrame, sTxFrame->mIid);
#else
radioProcessTransmitSecurity(sTxFrame, 0);
#endif
#endif // OPENTHREAD_CONFIG_THREAD_VERSION >= OT_THREAD_VERSION_1_2

Expand Down

0 comments on commit e6651a1

Please sign in to comment.