This page contains documentation of the BOTA Bulk-Over-The-Air service and its C API library.
The BOTA Bulk-Over-The-Air service is a UDP based service running over the embeNET wireless communication protocol. The BOTA service is used to transfer large amounts of data (bulk data) from the border router (Sender) to possibly multiple remote nodes (Recipients). It is based on the embeNET wireless network and uses UDP transport mechanism. The diagram below presents the overall software architecture:
The bulk data to be transferred is stored in some sort of memory (bulk memory). The BOTA protocol instance in the border router (BOTA Sender) is given read access to this memory. It is also provided with additional operational memory for storing transfer-related information, called transfer space. The BOTA user (application) is responsible for providing both bulk memory and transfer space. Once the transfer is started, the BOTA Sender instance communicates with the BOTA protocol instances in nodes (BOTA Recipient) through the embeNET wireless network using UDP transport protocol. The BOTA Recipient is given read and write access to the bulk memory, where it stores the received bulk data.
The main responsibility of the BOTA protocol is to transfer large amounts of data from the border router to the nodes in such a way that the remote nodes receive a complete set of data that they can check for integrity.
The BOTA protocol leverages the capability of the embeNET wireless network to handle multicast traffic to speed up the transfer process. Thanks to this the packet load necessary to handle the transfer is greatly reduced compared to unicast traffic.
The BOTA protocol uses a call out mechanism to determine the recipients of the transfer that are capable of receiving the bulk data. Each called out node can accept or reject the transfer. Only nodes that accept the transfer are taken into further consideration during the actual data transmission.
The BOTA protocol implements the mechanism to detect unreachable nodes and remove them from the transfer process, since such nodes block the transfer to other nodes.
The BOTA protocol allows continuous monitoring of the bulk transfer to each node.
The following sections constitute a simple tutorial on how to use BOTA:
This provided C API library has two separate components: