nrf_802154: rev e45bb47f0a4a43b69d19a145bdf15001d67e02dd
This commit updates revision of the nrf_802154 component. Signed-off-by: Jędrzej Ciupis <jedrzej.ciupis@nordicsemi.no>
This commit is contained in:
parent
a5f11c3386
commit
4362d0fcdb
|
@ -1005,6 +1005,15 @@ bool nrf_802154_ack_data_clear(const uint8_t * p_addr,
|
|||
bool extended,
|
||||
nrf_802154_ack_data_t data_type);
|
||||
|
||||
/**
|
||||
* @brief Removes all addresses of a given length from the ACK data list.
|
||||
*
|
||||
* @param[in] extended Indication if all extended addresses or all short addresses are
|
||||
* to be removed from the list.
|
||||
* @param[in] data_type Type of data that is to be cleared for all addresses of a given length.
|
||||
*/
|
||||
void nrf_802154_ack_data_remove_all(bool extended, nrf_802154_ack_data_t data_type);
|
||||
|
||||
/**
|
||||
* @brief Enables or disables setting a pending bit in automatically transmitted ACK frames.
|
||||
*
|
||||
|
|
|
@ -817,6 +817,12 @@ bool nrf_802154_delayed_trx_receive(uint64_t rx_time,
|
|||
uint8_t channel,
|
||||
uint32_t id)
|
||||
{
|
||||
if (dly_rx_data_by_id_search(id) != NULL)
|
||||
{
|
||||
/* DRX with given id is already present. */
|
||||
return false;
|
||||
}
|
||||
|
||||
dly_op_data_t * p_dly_rx_data = available_dly_rx_slot_get();
|
||||
bool result = false;
|
||||
|
||||
|
|
|
@ -841,6 +841,11 @@ bool nrf_802154_ack_data_clear(const uint8_t * p_addr,
|
|||
return nrf_802154_ack_data_for_addr_clear(p_addr, extended, data_type);
|
||||
}
|
||||
|
||||
void nrf_802154_ack_data_remove_all(bool extended, nrf_802154_ack_data_t data_type)
|
||||
{
|
||||
nrf_802154_ack_data_reset(extended, data_type);
|
||||
}
|
||||
|
||||
void nrf_802154_auto_pending_bit_set(bool enabled)
|
||||
{
|
||||
nrf_802154_ack_data_enable(enabled);
|
||||
|
|
|
@ -471,6 +471,12 @@ typedef enum
|
|||
SPINEL_PROP_VENDOR_NORDIC_NRF_802154_RX_ON_WHEN_IDLE_SET =
|
||||
SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 67,
|
||||
|
||||
/**
|
||||
* Vendor property for nrf_802154_ack_data_remove_all serialization.
|
||||
*/
|
||||
SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ACK_DATA_REMOVE_ALL =
|
||||
SPINEL_PROP_VENDOR_NORDIC_NRF_802154__BEGIN + 68,
|
||||
|
||||
} spinel_prop_vendor_key_t;
|
||||
|
||||
/**
|
||||
|
@ -1018,46 +1024,46 @@ typedef enum
|
|||
#define SPINEL_DATATYPE_NRF_802154_TRANSMIT_AT_CANCEL_RET SPINEL_DATATYPE_BOOL_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_auto_pending_bit_set.
|
||||
* @brief Spinel data type description for nrf_802154_auto_pending_bit_set.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_AUTO_PENDING_BIT_SET SPINEL_DATATYPE_BOOL_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_pending_bit_for_addr_set.
|
||||
* @brief Spinel data type description for nrf_802154_pending_bit_for_addr_set.
|
||||
*
|
||||
* SPINEL_DATATYPE_ARRAY_S encoding is not implemented, SPINEL_DATATYPE_DATA_S has to be used instead.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_SET SPINEL_DATATYPE_DATA_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_pending_bit_for_addr_set return value.
|
||||
* @brief Spinel data type description for nrf_802154_pending_bit_for_addr_set return value.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_SET_RET SPINEL_DATATYPE_BOOL_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_pending_bit_for_addr_clear.
|
||||
* @brief Spinel data type description for nrf_802154_pending_bit_for_addr_clear.
|
||||
*
|
||||
* SPINEL_DATATYPE_ARRAY_S encoding is not implemented, SPINEL_DATATYPE_DATA_S has to be used instead.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_CLEAR SPINEL_DATATYPE_DATA_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_pending_bit_for_addr_set return value.
|
||||
* @brief Spinel data type description for nrf_802154_pending_bit_for_addr_set return value.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_CLEAR_RET SPINEL_DATATYPE_BOOL_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_pending_bit_for_addr_reset.
|
||||
* @brief Spinel data type description for nrf_802154_pending_bit_for_addr_reset.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_PENDING_BIT_FOR_ADDR_RESET SPINEL_DATATYPE_BOOL_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_src_addr_matching_method_set.
|
||||
* @brief Spinel data type description for nrf_802154_src_addr_matching_method_set.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_SRC_ADDR_MATCHING_METHOD_SET SPINEL_DATATYPE_UINT8_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_ack_data_set.
|
||||
* @brief Spinel data type description for nrf_802154_ack_data_set.
|
||||
*
|
||||
* SPINEL_DATATYPE_ARRAY_S encoding is not implemented, SPINEL_DATATYPE_DATA_S has to be used instead.
|
||||
*/
|
||||
|
@ -1067,12 +1073,12 @@ typedef enum
|
|||
SPINEL_DATATYPE_UINT8_S /* Type of the data */ \
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_ack_data_set return value.
|
||||
* @brief Spinel data type description for nrf_802154_ack_data_set return value.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_ACK_DATA_SET_RET SPINEL_DATATYPE_BOOL_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_ack_data_clear.
|
||||
* @brief Spinel data type description for nrf_802154_ack_data_clear.
|
||||
*
|
||||
* SPINEL_DATATYPE_ARRAY_S encoding is not implemented, SPINEL_DATATYPE_DATA_S has to be used instead.
|
||||
*/
|
||||
|
@ -1081,10 +1087,17 @@ typedef enum
|
|||
SPINEL_DATATYPE_UINT8_S /* Type of the data */
|
||||
|
||||
/**
|
||||
* @brief Spinel data type desription for nrf_802154_ack_data_clear return value.
|
||||
* @brief Spinel data type description for nrf_802154_ack_data_clear return value.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_ACK_DATA_CLEAR_RET SPINEL_DATATYPE_BOOL_S
|
||||
|
||||
/**
|
||||
* @brief Spinel data type description for nrf_802154_ack_data_remove_all.
|
||||
*/
|
||||
#define SPINEL_DATATYPE_NRF_802154_ACK_DATA_REMOVE_ALL \
|
||||
SPINEL_DATATYPE_BOOL_S /* Extended/short address */ \
|
||||
SPINEL_DATATYPE_UINT8_S /* Type of the data */
|
||||
|
||||
/**
|
||||
* @brief Spinel data type description for nrf_802154_transmit_csma_ca_raw.
|
||||
*/
|
||||
|
|
|
@ -867,6 +867,33 @@ bail:
|
|||
return ack_data_clear_res;
|
||||
}
|
||||
|
||||
void nrf_802154_ack_data_remove_all(bool extended, nrf_802154_ack_data_t data_type)
|
||||
{
|
||||
nrf_802154_ser_err_t res;
|
||||
|
||||
SERIALIZATION_ERROR_INIT(error);
|
||||
|
||||
NRF_802154_SPINEL_LOG_BANNER_CALLING();
|
||||
NRF_802154_SPINEL_LOG_VAR_NAMED("%s", (extended ? "true" : "false"), "extended");
|
||||
|
||||
nrf_802154_spinel_response_notifier_lock_before_request(
|
||||
SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ACK_DATA_REMOVE_ALL);
|
||||
|
||||
res = nrf_802154_spinel_send_cmd_prop_value_set(
|
||||
SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ACK_DATA_REMOVE_ALL,
|
||||
SPINEL_DATATYPE_NRF_802154_ACK_DATA_REMOVE_ALL,
|
||||
extended,
|
||||
data_type);
|
||||
|
||||
SERIALIZATION_ERROR_CHECK(res, error, bail);
|
||||
|
||||
res = status_ok_await(CONFIG_NRF_802154_SER_DEFAULT_RESPONSE_TIMEOUT);
|
||||
SERIALIZATION_ERROR_CHECK(res, error, bail);
|
||||
|
||||
bail:
|
||||
SERIALIZATION_ERROR_RAISE_IF_FAILED(error);
|
||||
}
|
||||
|
||||
void nrf_802154_auto_pending_bit_set(bool enabled)
|
||||
{
|
||||
nrf_802154_ser_err_t res;
|
||||
|
|
|
@ -863,6 +863,30 @@ static nrf_802154_ser_err_t spinel_decode_prop_nrf_802154_ack_data_clear(
|
|||
ack_data_clear_res);
|
||||
}
|
||||
|
||||
static nrf_802154_ser_err_t spinel_decode_prop_nrf_802154_ack_data_remove_all(
|
||||
const void * p_property_data,
|
||||
size_t property_data_len)
|
||||
{
|
||||
bool extended;
|
||||
nrf_802154_ack_data_t data_type;
|
||||
spinel_ssize_t siz;
|
||||
|
||||
siz = spinel_datatype_unpack(p_property_data,
|
||||
property_data_len,
|
||||
SPINEL_DATATYPE_NRF_802154_ACK_DATA_REMOVE_ALL,
|
||||
&extended,
|
||||
&data_type);
|
||||
|
||||
if (siz < 0)
|
||||
{
|
||||
return NRF_802154_SERIALIZATION_ERROR_DECODING_FAILURE;
|
||||
}
|
||||
|
||||
nrf_802154_ack_data_remove_all(extended, data_type);
|
||||
|
||||
return nrf_802154_spinel_send_prop_last_status_is(SPINEL_STATUS_OK);
|
||||
}
|
||||
|
||||
#if NRF_802154_CSMA_CA_ENABLED
|
||||
|
||||
/**
|
||||
|
@ -2101,6 +2125,10 @@ nrf_802154_ser_err_t nrf_802154_spinel_decode_cmd_prop_value_set(const void * p_
|
|||
return spinel_decode_prop_nrf_802154_ack_data_clear(p_property_data,
|
||||
property_data_len);
|
||||
|
||||
case SPINEL_PROP_VENDOR_NORDIC_NRF_802154_ACK_DATA_REMOVE_ALL:
|
||||
return spinel_decode_prop_nrf_802154_ack_data_remove_all(p_property_data,
|
||||
property_data_len);
|
||||
|
||||
case SPINEL_PROP_VENDOR_NORDIC_NRF_802154_SECURITY_GLOBAL_FRAME_COUNTER_SET:
|
||||
return spinel_decode_prop_nrf_802154_security_global_frame_counter_set(p_property_data,
|
||||
property_data_len);
|
||||
|
|
Loading…
Reference in New Issue