Enable data poll triggered indirect retransmissions to a sleepy child (#1432)

If transmission of an indirect frame (frame to a sleepy child)
fails, the sender retransmits the frame following the reception of
a new data request command (a new data poll) from the sleepy child.

It is ensured that the re-transmissions use the same security frame
counter, key id, and data sequence number as the earlier attempts.
To realize this, info about the indirect transmissions (such as attempt
counter, frame counter, key id) is saved in the child table.

In `openthread-core-default-config.h` a set of new OpenThread options
are added to allow the maximum number of attempts to be configured
for both direct and indirect transmissions.
This commit is contained in:
Abtin Keshavarzian
2017-03-08 12:35:27 -08:00
committed by Jonathan Hui
parent 746a40a340
commit 98f9eaf8da
10 changed files with 248 additions and 37 deletions
+2
View File
@@ -105,8 +105,10 @@ typedef struct RadioPacket
uint8_t mChannel; ///< Channel used to transmit/receive the frame.
int8_t mPower; ///< Transmit/receive power in dBm.
uint8_t mLqi; ///< Link Quality Indicator for received frames.
uint8_t mMaxTxAttempts; ///< Max number of transmit attempts for an outbound frame.
bool mSecurityValid: 1; ///< Security Enabled flag is set and frame passes security checks.
bool mDidTX: 1; ///< Set to true if this packet sent from the radio. Ignored by radio driver.
bool mIsARetx: 1; ///< Set to true if this packet is a retransmission. Should be ignored by radio driver.
} RadioPacket;
/**