Common BOTA definitions. More...
Data Structures | |
struct | BotaTransferRequest |
Structure defining the TRANSFER.request packet. More... | |
struct | BotaTransferConfirmation |
Structure defining the TRANSFER.confirmation packet. More... | |
struct | BotaBulkWriteRequest |
Structure defining the BULK_WRITE.request packet. More... | |
struct | BotaBulkMissingRequest |
Structure defining the BULK_MISSING.request packet. More... | |
struct | BotaBulkMissingConfirmation |
Structure defining the BULK_MISSING.confirmation packet. More... | |
struct | BotaValidateRequest |
Structure defining the VALIDATE.request packet. More... | |
struct | BotaValidateConfirmation |
Structure defining the VALIDATE.confirmation packet. More... | |
Macros | |
#define | BOTA_PACKED __attribute__((packed)) |
#define | BOTA_STATIC_ASSERT(...) static_assert(__VA_ARGS__) |
#define | BOTA_SENDER_MAX_TRANSFERS 2 |
Maximum number of simultaneous transfers that is supported. More... | |
#define | BOTA_SENDER_MAX_MISSING_CHUNKS 100 |
Maximum number of missing data chunks that can be tracked at once per transfer. More... | |
#define | BOTA_RECIPIENT_MAX_TRANSFERS 2 |
Maximum number of simultaneous transfers that is supported. More... | |
#define | BOTA_RECIPIENT_MAX_MISSING_CHUNKS 50 |
Maximum number of missing data chunks that can be tracked at once per transfer. More... | |
#define | BOTA_RECIPIENT_BULK_MISSING_REQUEST_SEND_INTERVAL_MS 45000 |
BOTA timings - RECIPIENT. More... | |
#define | BOTA_RECIPIENT_BULK_MISSING_REQUEST_SEND_RANDOMIZATION_MS 15000 |
BULK_MISSING.request randomization (first transmission of BULK_MISSING.request will be after randomized time) More... | |
#define | BOTA_RECIPIENT_BULK_MISSING_REQUEST_SEND_RETRIES 20 |
how many times BULK_MISSING.request will be send until transfer abort More... | |
#define | BOTA_RECIPIENT_TRANSFER_CONFIRMATION_SEND_RANDOMIZATION_MS 5000 |
TRANSFER.confirmation randomization. More... | |
#define | BOTA_RECIPIENT_VALIDATE_CONFIRMATION_SEND_RANDOMIZATION_MS 5000 |
VALIDATE.confirmation randomization. More... | |
#define | BOTA_RECIPIENT_TRANSFER_TIMEOUT_MS (24 * 3600 * 1000) |
inactivity timeout during transfer that leads to aborting the transfer More... | |
#define | BOTA_RECIPIENT_TRANSFER_OVERWRITE_TIMEOUT_MS (5 * 60 * 1000) |
inactivity timeout during transfer that makes it possible to overwrite the transfer with new one More... | |
#define | BOTA_SENDER_DEFAULT_BULK_WRITE_SENDING_INTERVAL_MS 3000 |
Default timings for BOTA Sender. More... | |
#define | BOTA_SENDER_DEFAULT_TRANSFER_REQUEST_SENDING_DELAY_SEC 20 |
Default TRANSFER.request sending delay (in seconds) after last TRANSFER.confirmation was received. More... | |
#define | BOTA_SENDER_DEFAULT_TRANSFER_VALIDATE_REQUEST_PAUSE_SEC 60 |
Default value of how long to wait (in seconds) from last BULK_WRITE.request to the first VALIDATE.request. More... | |
#define | BOTA_SENDER_DEFAULT_TRANSFER_VALIDATE_REQUEST_SENDING_DELAY_SEC 20 |
Default VALIDATE.request sending delay (in seconds) after last VALIDATE.confirmation was received. More... | |
#define | BOTA_SENDER_DEFAULT_TRANSFER_REQUEST_RETRIES 3 |
Default setting of how many times TRANSFER.request will be sent. More... | |
#define | BOTA_SENDER_DEFAULT_TRANSFER_VALIDATE_REQUEST_RETRIES 3 |
Default setting of how many times VALIDATE.request will be sent. More... | |
#define | BOTA_TRANSFER_INVALID 0 |
Invalid transfer identifier. More... | |
#define | BOTA_MAX_TRANSFER_INFO_SIZE 32 |
Maximum size of the user data associated with the transfer. More... | |
#define | BOTA_CHUNK_SIZE 72 |
Size of a single data chunk sent in a single UDP packet. More... | |
#define | BOTA_MAX_OFFSETS_IN_BULK_MISSING_REQUEST 18 |
Maximum number of offsets in BULK_MISSING.request packet. More... | |
#define | BOTA_DEFAULT_PORT (0xf0b2) |
Default UDP port number for the BOTA service. More... | |
#define | BOTA_SENDER_ESTIMATED_TRANSFER_DURATION(bulkSize) |
Helper macro to estimate total transfer duration (in ms) More... | |
Typedefs | |
typedef uint16_t | BotaTransferId |
BOTA transfer identifier used to identify and distinguish the transfers. More... | |
typedef uint32_t | BotaMemoryAddr |
Address in the Bulk memory. More... | |
typedef void(* | BotaReadFunc) (BotaMemoryAddr addr, void *dst, size_t size, BotaTransferId transferId) |
typedef void(* | BotaWriteFunc) (BotaMemoryAddr addr, const void *src, size_t size, BotaTransferId transferId) |
typedef uint64_t(* | BotaTimeFunc) (void) |
Common BOTA definitions.
#define BOTA_PACKED __attribute__((packed)) |
#define BOTA_STATIC_ASSERT | ( | ... | ) | static_assert(__VA_ARGS__) |
#define BOTA_SENDER_MAX_TRANSFERS 2 |
Maximum number of simultaneous transfers that is supported.
#define BOTA_SENDER_MAX_MISSING_CHUNKS 100 |
Maximum number of missing data chunks that can be tracked at once per transfer.
#define BOTA_RECIPIENT_MAX_TRANSFERS 2 |
Maximum number of simultaneous transfers that is supported.
#define BOTA_RECIPIENT_MAX_MISSING_CHUNKS 50 |
Maximum number of missing data chunks that can be tracked at once per transfer.
#define BOTA_RECIPIENT_BULK_MISSING_REQUEST_SEND_INTERVAL_MS 45000 |
BOTA timings - RECIPIENT.
BULK_MISSING.request send time interval
#define BOTA_RECIPIENT_BULK_MISSING_REQUEST_SEND_RANDOMIZATION_MS 15000 |
BULK_MISSING.request randomization (first transmission of BULK_MISSING.request will be after randomized time)
#define BOTA_RECIPIENT_BULK_MISSING_REQUEST_SEND_RETRIES 20 |
how many times BULK_MISSING.request will be send until transfer abort
#define BOTA_RECIPIENT_TRANSFER_CONFIRMATION_SEND_RANDOMIZATION_MS 5000 |
TRANSFER.confirmation randomization.
#define BOTA_RECIPIENT_VALIDATE_CONFIRMATION_SEND_RANDOMIZATION_MS 5000 |
VALIDATE.confirmation randomization.
#define BOTA_RECIPIENT_TRANSFER_TIMEOUT_MS (24 * 3600 * 1000) |
inactivity timeout during transfer that leads to aborting the transfer
#define BOTA_RECIPIENT_TRANSFER_OVERWRITE_TIMEOUT_MS (5 * 60 * 1000) |
inactivity timeout during transfer that makes it possible to overwrite the transfer with new one
#define BOTA_SENDER_DEFAULT_BULK_WRITE_SENDING_INTERVAL_MS 3000 |
Default timings for BOTA Sender.
Default BULK_WRITE.request sending delay (in ms), limits the overall data transfer
#define BOTA_SENDER_DEFAULT_TRANSFER_REQUEST_SENDING_DELAY_SEC 20 |
Default TRANSFER.request sending delay (in seconds) after last TRANSFER.confirmation was received.
#define BOTA_SENDER_DEFAULT_TRANSFER_VALIDATE_REQUEST_PAUSE_SEC 60 |
Default value of how long to wait (in seconds) from last BULK_WRITE.request to the first VALIDATE.request.
#define BOTA_SENDER_DEFAULT_TRANSFER_VALIDATE_REQUEST_SENDING_DELAY_SEC 20 |
Default VALIDATE.request sending delay (in seconds) after last VALIDATE.confirmation was received.
#define BOTA_SENDER_DEFAULT_TRANSFER_REQUEST_RETRIES 3 |
Default setting of how many times TRANSFER.request will be sent.
#define BOTA_SENDER_DEFAULT_TRANSFER_VALIDATE_REQUEST_RETRIES 3 |
Default setting of how many times VALIDATE.request will be sent.
#define BOTA_TRANSFER_INVALID 0 |
Invalid transfer identifier.
#define BOTA_MAX_TRANSFER_INFO_SIZE 32 |
Maximum size of the user data associated with the transfer.
#define BOTA_CHUNK_SIZE 72 |
Size of a single data chunk sent in a single UDP packet.
#define BOTA_MAX_OFFSETS_IN_BULK_MISSING_REQUEST 18 |
Maximum number of offsets in BULK_MISSING.request packet.
#define BOTA_DEFAULT_PORT (0xf0b2) |
Default UDP port number for the BOTA service.
#define BOTA_SENDER_ESTIMATED_TRANSFER_DURATION | ( | bulkSize | ) |
Helper macro to estimate total transfer duration (in ms)
typedef uint16_t BotaTransferId |
BOTA transfer identifier used to identify and distinguish the transfers.
typedef uint32_t BotaMemoryAddr |
Address in the Bulk memory.
typedef void(* BotaReadFunc) (BotaMemoryAddr addr, void *dst, size_t size, BotaTransferId transferId) |
Function that reads the destination memory for the BOTA service (callback).
[in] | addr | address from which to read |
[in] | dst | place to store the read data |
[in] | size | size of the data to read (in number of bytes) |
[in] | transferId | id of the transfer that requests the data |
typedef void(* BotaWriteFunc) (BotaMemoryAddr addr, const void *src, size_t size, BotaTransferId transferId) |
Function that writes the destination memory for the BOTA service (callback).
[in] | addr | address to which to write |
[in] | src | data to be written |
[in] | size | size of the data to write (in number of bytes) |
[in] | transferId | id of the transfer that provides the data |
typedef uint64_t(* BotaTimeFunc) (void) |
BOTA time provider callback function.
enum BotaResult |
Possible BOTA function results.
enum BotaTransferReaction |
Possible recipient reactions to a new BOTA transfer.
enum BotaPacketType |
Possible BOTA packet types.