From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jiri Pirko Subject: Re: [PATCH v5 5/6] net: maclorawan: Implement maclorawan class module Date: Tue, 18 Dec 2018 15:27:56 +0100 Message-ID: <20181218142756.GA2031@nanopsycho> References: <20181216101858.9585-6-starnight@g.ncu.edu.tw> <20181217140233.GG2096@nanopsycho> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: Andreas =?iso-8859-1?Q?F=E4rber?= , "David S . Miller" , Alan Cox , linux-lpwan@lists.infradead.org, netdev@vger.kernel.org, ", "linux-kernel@vger.kernel.org>," , Marcel Holtmann , Dollar Chen , Ken Yu , linux-wpan - ML To: Jian-Hong Pan Return-path: Received: from mail-wr1-f65.google.com ([209.85.221.65]:41657 "EHLO mail-wr1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726833AbeLROff (ORCPT ); Tue, 18 Dec 2018 09:35:35 -0500 Received: by mail-wr1-f65.google.com with SMTP id x10so16129278wrs.8 for ; Tue, 18 Dec 2018 06:35:33 -0800 (PST) Content-Disposition: inline In-Reply-To: Sender: netdev-owner@vger.kernel.org List-ID: Tue, Dec 18, 2018 at 03:27:09PM CET, starnight@g.ncu.edu.tw wrote: >> Sun, Dec 16, 2018 at 11:18:59AM CET, starnight@g.ncu.edu.tw wrote: >> >LoRaWAN defined by LoRa Alliance(TM) is the MAC layer over LoRa devices. >> > >> >This patch implements part of Class A end-devices SoftMAC defined in >> >LoRaWAN(TM) Specification Ver. 1.0.2: >> >1. End-device receive slot timing >> >2. Only single channel and single data rate for now >> >3. Unconfirmed data up/down message types >> > >> >On the other side, it defines the basic interface and operation >> >functions for compatible LoRa device drivers. >> > >> >Signed-off-by: Jian-Hong Pan >> >--- >> >V2: >> >- Split the LoRaWAN class module patch in V1 into LoRaWAN socket and >> > LoRaWAN Soft MAC modules >> >- Modify for Big/Little-Endian >> >- Use SPDX license identifiers >> > >> >V3: >> >- Remove the decoration word - inline of the functions >> >- Order local variables from longest to shortest line in the functions >> >- Change the calling mac_cb function to lrw_get_mac_cb macro >> > >> >V4: >> >- Fix the delay period between RX window#1 and window#2 >> >- Fix by coding style report from scripts/checkpatch.pl >> > >> >V5: >> >- Initial rx_skb_list when it is allocated with LoRa hardware >> >- Check the sk_buff's data length before access it >> >- Deal FPort field and decrypt payload in lrw_parse_frame function >> >- Drop the recieved frame if parse failed >> >- Fix the bug which passes wrong skb properties from maclorawan to lorawan module >> > >> > net/maclorawan/Kconfig | 14 + >> > net/maclorawan/Makefile | 2 + >> > net/maclorawan/mac.c | 555 ++++++++++++++++++++++++++++++++++++ >> > net/maclorawan/main.c | 606 ++++++++++++++++++++++++++++++++++++++++ >> > 4 files changed, 1177 insertions(+) >> > create mode 100644 net/maclorawan/Kconfig >> > create mode 100644 net/maclorawan/Makefile >> > create mode 100644 net/maclorawan/mac.c >> > create mode 100644 net/maclorawan/main.c >> >> >> I don't get it. In patch "Add LoRaWAN API declaration for LoRa devices" >> you add headers for "API" and here you implement functions. That is just >> weird. Does it mean you can have other implementations? > >LoRaWAN defined by LoRa Alliance(TM) is the MAC layer over LoRa PHY. >This part is soft-MAC as Andreas mentioned >http://lists.infradead.org/pipermail/linux-lpwan/2018-December/000010.html Okay, that does not answer my concern about header file in one patch and the actual implementation of functions in another one. > >> Also, you don't really have any user of this API in the set. Please >> introduce at least 1 driver, preferably more (I see that Andreas has >> multiple ones in his patchset). You cannot push kernel infrastructure >> without kernel user. > >The soft-MAC is suitable for the LoRa chips' device drivers, like >sx1276/77/78/79, RFM95/96/97/98W ... >Still waiting for Andreas' sx1276 version 2 patch and more discussion. >For example, how to make PF_LORA and PF_LORAWAN like Ethernet, PF_INET >and PF_INET6 don't need separate devices either, both use eth0. >https://lkml.org/lkml/2018/8/3/266 Then you should push this is RFC or together with Andreases work in a single patchset. Infra without users cannot be merged. > >Jian-Hong Pan