Skip to content

net: lorawan: Add LoRaWAN soft MAC module

Jian-Hong Pan linux-arm-kernel linux-devicetree linux-spi linux-wpan lkml netdev 5 versions – In review

Get series with b4
b4 am [email protected]

Versions newest first · linked by author and title

  1. v5 Latest6 patches 24 repliesIn review
  2. v46 patches 2 repliesSuperseded
  3. v37 patches 6 repliesSuperseded
Earlier versions · 2
VersionPostedPatchesRepliesStatus
v27 patches2 repliesSuperseded
v1 RFC3 patches6 repliesSuperseded

Patches in v5 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/6net: lorawan: Add LoRaWAN socket moduleinclude/linux/lora/lorawan_netdev.h net/lorawan/Kconfig net/lorawan/Makefile +1 more+750 -03 replies
2/6net: lorawan: Add LoRaWAN API declaration for LoRa devicesinclude/linux/lora/lorawan.h+131 -00 replies
3/6net: maclorawan: Add maclorawan module declarationnet/maclorawan/maclorawan.h+202 -00 replies
4/6net: maclorawan: Implement the crypto of maclorawan modulenet/maclorawan/crypto.c net/maclorawan/crypto.h+239 -00 replies
5/6net: maclorawan: Implement maclorawan class modulenet/maclorawan/Kconfig net/maclorawan/Makefile net/maclorawan/mac.c +1 more+1177 -013 replies
6/6net: lorawan: List LORAWAN in menuconfignet/Kconfig net/Makefile+4 -07 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v5 yet.

Read the v5 thread

Cover letter [PATCH v5 0/6] net: lorawan: Add LoRaWAN soft MAC module

LoRaWAN(TM) is the MAC layer defined by LoRa Alliance(TM) over LoRa devices. LoRa is one of Low-Power Wide-Area Network (LPWAN) technology.

LoRaWAN networks typically are laid out in a star-of-stars topology in which gateways relay messages between end-devices and a central network server at the backend. Gateways are connected to the network server via standard IP connections while end-devices use single hop LoRa(TM) or FSK communication to one or many gateways.

A LoRa network distinguishes between a basic LoRaWAN (named Class A) and optional features (Class B, Class C ...):
* Bi-directional end-devices (Class A)
* Bi-directional end-devices with scheduled receive slots (Class B)
* Bi-directional end-devices with maximal receive slots (Class C)

This patch set add LoRaWAN class module implementing the stack, especially the soft MAC, between socket APIs and LoRa device drivers.

socket APIs:
send and receive the data
------------------------------------------------------------------------
LoRaWAN class module implements soft MAC:
append the header/footer, encryption/decryption, timing slot and MAC commands
------------------------------------------------------------------------
LoRa device drivers:
send and receive the messages for MAC layer
------------------------------------------------------------------------
LoRa devices

This module starts from simple and implements partial Class A end-devices features defined in LoRaWAN(TM) Specification Ver. 1.0.2. More features and complexity, for example regional parameters, confirmed data messages, join request/accept messages for Over-The-Air Activation, MAC commands ... will be added in the future.

Jian-Hong Pan (6):
net: lorawan: Add LoRaWAN socket module
net: lorawan: Add LoRaWAN API declaration for LoRa devices
net: maclorawan: Add maclorawan module declaration
net: maclorawan: Implement the crypto of maclorawan module
net: maclorawan: Implement maclorawan class module
net: lorawan: List LORAWAN in menuconfig

 include/linux/lora/lorawan.h        | 131 ++++++
 include/linux/lora/lorawan_netdev.h |  52 +++
 net/Kconfig                         |   2 +
 net/Makefile                        |   2 +
 net/lorawan/Kconfig                 |  10 +
 net/lorawan/Makefile                |   2 +
 net/lorawan/socket.c                | 686 ++++++++++++++++++++++++++++
 net/maclorawan/Kconfig              |  14 +
 net/maclorawan/Makefile             |   2 +
 net/maclorawan/crypto.c             | 212 +++++++++
 net/maclorawan/crypto.h             |  27 ++
 net/maclorawan/mac.c                | 555 ++++++++++++++++++++++
 net/maclorawan/maclorawan.h         | 202 ++++++++
 net/maclorawan/main.c               | 606 ++++++++++++++++++++++++
 14 files changed, 2503 insertions(+)
 create mode 100644 include/linux/lora/lorawan.h
 create mode 100644 include/linux/lora/lorawan_netdev.h
 create mode 100644 net/lorawan/Kconfig
 create mode 100644 net/lorawan/Makefile
 create mode 100644 net/lorawan/socket.c
 create mode 100644 net/maclorawan/Kconfig
 create mode 100644 net/maclorawan/Makefile
 create mode 100644 net/maclorawan/crypto.c
 create mode 100644 net/maclorawan/crypto.h
 create mode 100644 net/maclorawan/mac.c
 create mode 100644 net/maclorawan/maclorawan.h
 create mode 100644 net/maclorawan/main.c
Signature · 1 line
2.20.0