Skip to content

Commit 502c9ff

Browse files
Damian-Nordicmmahadevan108
authored andcommitted
drivers: ieee802154_nrf5: skip Enh Ack conf for invalid short address
If the invalid short address (0xfffe) is specified, configure the Enhanced Ack just for the extended address. This is needed because Header IEs for Enhanced Ack must be configured before the short address has been assigned to the child. Signed-off-by: Damian Krolik <damian.krolik@nordicsemi.no>
1 parent 91d9cc2 commit 502c9ff

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

drivers/ieee802154/ieee802154_nrf5.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -934,7 +934,10 @@ static int nrf5_configure(const struct device *dev,
934934
sys_memcpy_swap(ext_addr_le, config->ack_ie.ext_addr, EXTENDED_ADDRESS_SIZE);
935935

936936
if (config->ack_ie.header_ie == NULL || config->ack_ie.header_ie->length == 0) {
937-
nrf_802154_ack_data_clear(short_addr_le, false, NRF_802154_ACK_DATA_IE);
937+
if (config->ack_ie.short_addr != IEEE802154_NO_SHORT_ADDRESS_ASSIGNED) {
938+
nrf_802154_ack_data_clear(short_addr_le, false,
939+
NRF_802154_ACK_DATA_IE);
940+
}
938941
nrf_802154_ack_data_clear(ext_addr_le, true, NRF_802154_ACK_DATA_IE);
939942
} else {
940943
element_id = ieee802154_header_ie_get_element_id(config->ack_ie.header_ie);
@@ -955,10 +958,13 @@ static int nrf5_configure(const struct device *dev,
955958
return -ENOTSUP;
956959
}
957960

958-
nrf_802154_ack_data_set(short_addr_le, false, config->ack_ie.header_ie,
959-
config->ack_ie.header_ie->length +
960-
IEEE802154_HEADER_IE_HEADER_LENGTH,
961-
NRF_802154_ACK_DATA_IE);
961+
if (config->ack_ie.short_addr != IEEE802154_NO_SHORT_ADDRESS_ASSIGNED) {
962+
nrf_802154_ack_data_set(
963+
short_addr_le, false, config->ack_ie.header_ie,
964+
config->ack_ie.header_ie->length +
965+
IEEE802154_HEADER_IE_HEADER_LENGTH,
966+
NRF_802154_ACK_DATA_IE);
967+
}
962968
nrf_802154_ack_data_set(ext_addr_le, true, config->ack_ie.header_ie,
963969
config->ack_ie.header_ie->length +
964970
IEEE802154_HEADER_IE_HEADER_LENGTH,

0 commit comments

Comments
 (0)