1.2.5.19 ADP_DATA_CFM_PARAMS Struct

C

typedef struct
{
    /* The handle of the NSDU confirmed by this primitive */
    uintptr_t nsduHandle;
    /* The status code (result) of a previous ADP Data Request */
    uint8_t status;
} ADP_DATA_CFM_PARAMS;

Summary

Defines the Parameters for the ADP Data Confirm event handler function.

Description

The structure contains the fields reported by the ADP Data Confirm event handler function.

Field description:

  • nsduHandle. The handle associated with the NSDU being confirmed.

  • status. The result of the last NSDU transmission.

Returned values for status are:

  • G3_SUCCESS (0x00)

    • Returned when the last requested transmission succeeded.

  • G3_INVALID_REQUEST (0xA1)

    • Data request is called before device has joined a network. Suggested action: Wait for Bootstrap process to complete before calling data request.

  • G3_FAILED (0xA2)

    • Data request is correctly handled by ADP layer, but MAC layer has no resources in such moment to handle it. Suggested action: wait a random time in application level to let the MAC layer free some resources and try sending again.

  • G3_ROUTE_ERROR (0xA5)

    • When ADP_DataRequest is called for a destination to which there is no route, and one of the following happens:

      • Route discovery is not allowed due to request parameters or IB configuration. Suggested action: Allow route discovery, or perform ADP_RouteDiscoveryRequest from upper layer before calling ADP_DataRequest.

      • Route discovery is allowed, and such discovery fails to find a route. Suggested action: Wait for a route to be available (or explicitly look for it using ADP_RouteDiscoveryRequest primitive), and then retry sending data.

  • G3_NO_BUFFERS (0xB4)

    • This value is returned when the ADP_DataRequest primitive is called, but the stack has no free resources to handle it. It can be due to the fact that all transmission buffers are being used, or because a route discovery is needed before data sending and there are no resources to perform the discovery (other discovery processes running are using the resources). Suggested action: wait a random time in application level to let the stack free some resources and try sending again.

  • MAC_WRP_STATUS_UNSUPPORTED_SECURITY (0xDF)

    • This value is reported when there is an Encryption Error. Suggested action: Check that ADP_IB_SECURITY_LEVEL has a correct value.

  • MAC_WRP_STATUS_CHANNEL_ACCESS_FAILURE (0xE1)

    • This value is reported when CSMA retires are exhausted. Suggested action: Retry transmission after a random time.

  • MAC_WRP_STATUS_DENIED (0xE2)

    • This value is reported when Tx is aborted by MAC layer. Suggested action: Retry transmission after a random time.

  • MAC_WRP_STATUS_SECURITY_ERROR (0xE4)

    • This value is reported when there is an Encryption Error. Suggested action: Check Security configuration correctness.

  • MAC_WRP_STATUS_NO_ACK (0xE9)

    • This value is reported in case ACK is not received and route discovery is not allowed when calling ADP_DataRequest. If discovery is allowed, a route will be created and data sent, or in case route is not found, a G3_ROUTE_ERROR will be reported. Suggested action: Trigger a Route Discovery process from application, as it has not been automatically triggered by the stack.

  • MAC_WRP_STATUS_TRANSACTION_OVERFLOW (0xF1)

    • This value is reported when Device is already transmitting. Suggested action: Retry transmission after a random time.

  • MAC_WRP_STATUS_UNAVAILABLE_KEY (0xF3)

    • This value is reported when there is an Encryption Error due to Encryption Key used. Suggested action: Check that ADP_IB_ACTIVE_KEY_INDEX has a correct value.

  • MAC_WRP_STATUS_LIMIT_REACHED (0xFA)

    • This value is reported when MAC layer ran out of transmitting resources. Suggested action: Retry transmission after a random time.

Remarks

None.