[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20181114160126.4445-1-starnight@g.ncu.edu.tw>
Date: Thu, 15 Nov 2018 00:01:20 +0800
From: Jian-Hong Pan <starnight@...cu.edu.tw>
To: Andreas Färber <afaerber@...e.de>,
"David S . Miller" <davem@...emloft.net>
Cc: netdev@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org,
Marcel Holtmann <marcel@...tmann.org>,
Dollar Chen <dollar.chen@...ec.com>,
Ken Yu <ken.yu@...wireless.com>, linux-wpan@...r.kernel.org,
Stefan Schmidt <stefan@...enfreihafen.org>,
Jian-Hong Pan <starnight@...cu.edu.tw>
Subject: [PATCH V3 0/7] 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 (7):
net: lorawan: Add macro and definition for LoRaWAN
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 | 49 ++
include/linux/socket.h | 5 +-
include/uapi/linux/if_arp.h | 1 +
include/uapi/linux/if_ether.h | 1 +
net/Kconfig | 2 +
net/Makefile | 2 +
net/core/dev.c | 4 +-
net/lorawan/Kconfig | 10 +
net/lorawan/Makefile | 2 +
net/lorawan/socket.c | 688 ++++++++++++++++++++++++++++
net/maclorawan/Kconfig | 14 +
net/maclorawan/Makefile | 2 +
net/maclorawan/crypto.c | 209 +++++++++
net/maclorawan/crypto.h | 27 ++
net/maclorawan/mac.c | 520 +++++++++++++++++++++
net/maclorawan/maclorawan.h | 199 ++++++++
net/maclorawan/main.c | 605 ++++++++++++++++++++++++
security/selinux/hooks.c | 4 +-
security/selinux/include/classmap.h | 4 +-
20 files changed, 2474 insertions(+), 5 deletions(-)
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
--
2.19.1
Powered by blists - more mailing lists