Skip to main content

Module packages

Module packages 

Source
Expand description

The LoRaWAN application layer packages: what a server and a device say to each other on top of the link layer, TS003, TS004, TS005 and TS006.

A package is a small command language spoken on a port of its own. Every package shares the same shape: a message carries one or more commands, each an identifier byte followed by a payload whose length the identifier fixes, and a device runs them in order and answers each one. The identifier means one command going down and another coming up, so reading a message takes the Direction it traveled, exactly as a MAC command does.

Each package announces itself: PackageVersion is the answer every package gives to the version request every package defines, carrying the identifier of the package and the version of it the device implements.

  • clock: application layer clock synchronization, TS003-2.0.0, on port clock::PORT. A device tells the server what time it thinks it is and the server answers with the correction.
  • firmware: firmware management, TS006-1.0.0, on port firmware::PORT. A server asks what a device is running, what upgrade image it holds, and schedules the reboot that installs it.
  • fragment: fragmented data block transport, TS004-2.0.0, on port fragment::PORT. A block too large for one frame goes across in pieces, with coded fragments that let a device solve for the ones it missed.
  • multicast: remote multicast setup, TS005-2.0.0, on port multicast::PORT. A group of devices is given one address and one key, and a window in which they all listen at once.

These messages are unicast: a device drops them silently when they arrive on a multicast address.

Modules§

clock
Application layer clock synchronization, TS003-2.0.0.
firmware
Firmware management, TS006-1.0.0.
fragment
Fragmented data block transport, TS004-2.0.0.
multicast
Remote multicast setup, TS005-2.0.0.

Structs§

PackageVersion
The answer every package gives to its own version request.