image: optimize Device Firmware Upgrade (DFU)

Optimize the DFU process by queuing multiple chunks of the
image at once. The window of outstanding requsts is slowly
increased until errors are seen.

The process is started with a minimum window size of outstanding
requests. As the successful responses come in the size is increased.

Internal map is maintained to track if the CoAP server (device)
has missed a chunk and repeatedly requests for it in the response.

As several requests are outstanding at the same time, this
optimizes particularly Bluetooth transport.

Serial and Mtech LORA is updated for compliance with the updated
interface, although they use underlying synchronous transmit/receive
functionality.

Signed-off-by: Naveen Kaje <naveen.kaje@juul.com>
12 files changed
tree: 3a4ec2fe2fcd119b913e5d2fee7bd721ad7fe7dd
  1. docs/
  2. newtmgr/
  3. nmxact/
  4. .gitignore
  5. .rat-excludes
  6. go.mod
  7. go.sum
  8. LICENSE
  9. Makefile
  10. NOTICE
  11. README.md
  12. RELEASE_NOTES.md
README.md

Newtmgr

Newt Manager (newtmgr) is the application tool that enables a user to communicate with and manage remote devices running the Mynewt OS. It uses a connection profile to establish a connection with a device and sends command requests to the device. The newtmgr tool documentation can be found under /docs which are published at http://mynewt.apache.org/latest/os/modules/devmgmt/newtmgr.html

Building

Build the newtmgr tool as follows:

  1. Unpack newtmgr source.
  2. Rename resulting apache-mynewt-newtmgr-1.3.0 directory to $GOPATH/src/mynewt.apache.org/newtmgr
  3. cd $GOPATH/src/mynewt.apache.org/newtmgr/newtmgr
  4. GO111MODULE=on go build