Received: by 2002:a05:6a10:af89:0:0:0:0 with SMTP id iu9csp2961363pxb; Mon, 17 Jan 2022 09:03:33 -0800 (PST) X-Google-Smtp-Source: ABdhPJyRTawEntRcfOSBNaoDBG8itdmiijKlghP+dbCcIewpHVdmX+wIFfJnmesn5WUaDuqbPt/r X-Received: by 2002:a63:da4e:: with SMTP id l14mr12501913pgj.220.1642439013030; Mon, 17 Jan 2022 09:03:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1642439013; cv=none; d=google.com; s=arc-20160816; b=xoomowlVbQO++XUIGlRYzm1fqVEnuJjFrp+qwKGjbtttYBQZTKElvzm7740zv1Vry3 Jc26V7FHXbRrh0GXhclE+o3ZhA6ilzbrz6zDuP3cdRyIG7+fDLBzueRp7/VqiOm/ASzD 8kBALqDEGcTyvlAdLYIB+G+PR2pcaI6Bye6JmsVXXL1Ifw76eVADMQmeGnnJKh5uXMpD oMpdjsYuCEqsBDxomJQpLlK+FbCqNq4DSFq4tMrWV8fLH7R6lEfspp8cs9Cawa/GCh3+ f7xDOZpiuzhbTV/sRHBGfMiisCqGRNbfjEIIXNEiYX9pj2rBRcSkJ9vPfBBgRyAhcaDq 0GbA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :organization:references:in-reply-to:message-id:subject:cc:to:from :date; bh=tKS6iky+TsXL/dtX5drMcDSDpLrSixhrf1ZJ8oU9d3M=; b=ejH/09RyOYWVYrEIFBiVsxST3UGHI5B+x5Zk2ADh0f9i+wPsY5hkkG1lhE1eorLG78 mJgiJPnl4p5GOKUTzpLUcGtdxNHblwQQdfiMmpNWPPemhnMIwrbRCOA5onG7B2wqTNR4 Dh8GVLlBnhKLYuPhE/hMoNuIo8kHuVihx8+Jflorh1pAjkJo7k2GV7pp5vHSF/nNxDV1 e3x0pv533KZglJwMUxBp2GTKckN6DEtLcjSLMux2D2BkioSHNA7wgC8LFEl2cBZe0QyI 5OcdXhMLYOlB6TR4UEwjOXmSMeEmKdVr+PAVOjZnlHaDPUSwU1Br67Ad+AulIA4KnsnV CW1w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id x186si14185010pgd.224.2022.01.17.09.03.24; Mon, 17 Jan 2022 09:03:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-wireless-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-wireless-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233740AbiAQJMy convert rfc822-to-8bit (ORCPT + 70 others); Mon, 17 Jan 2022 04:12:54 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50458 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233409AbiAQJMw (ORCPT ); Mon, 17 Jan 2022 04:12:52 -0500 Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [IPv6:2001:4b98:dc4:8::223]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EC27CC061574; Mon, 17 Jan 2022 01:12:50 -0800 (PST) Received: (Authenticated sender: miquel.raynal@bootlin.com) by mail.gandi.net (Postfix) with ESMTPSA id 97F3560012; Mon, 17 Jan 2022 09:12:46 +0000 (UTC) Date: Mon, 17 Jan 2022 10:12:45 +0100 From: Miquel Raynal To: Alexander Aring Cc: Stefan Schmidt , linux-wpan - ML , "David S. Miller" , Jakub Kicinski , "open list:NETWORKING [GENERAL]" , Michael Hennerich , Harry Morris , Varka Bhadram , Xue Liu , Alan Ott , David Girault , Romuald Despres , Frederic Blain , Nicolas Schodet , Thomas Petazzoni , "linux-wireless@vger.kernel.org Wireless" Subject: Re: [wpan-next v2 08/27] net: ieee802154: Drop symbol duration settings when the core does it already Message-ID: <20220117101245.1946e474@xps13> In-Reply-To: References: <20220112173312.764660-1-miquel.raynal@bootlin.com> <20220112173312.764660-9-miquel.raynal@bootlin.com> <20220113121645.434a6ef6@xps13> <20220114112113.63661251@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.7 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-wireless@vger.kernel.org Hi Alexander, alex.aring@gmail.com wrote on Sun, 16 Jan 2022 18:21:16 -0500: > Hi, > > On Fri, 14 Jan 2022 at 05:21, Miquel Raynal wrote: > > > > Hi Alexander, > > > > alex.aring@gmail.com wrote on Thu, 13 Jan 2022 18:34:00 -0500: > > > > > Hi, > > > > > > On Thu, 13 Jan 2022 at 06:16, Miquel Raynal wrote: > > > > > > > > Hi Alexander, > > > > > > > > alex.aring@gmail.com wrote on Wed, 12 Jan 2022 17:26:14 -0500: > > > > > > > > > Hi, > > > > > > > > > > On Wed, 12 Jan 2022 at 12:33, Miquel Raynal wrote: > > > > > > > > > > > > The core now knows how to set the symbol duration in a few cases, when > > > > > > drivers correctly advertise the protocols used on each channel. For > > > > > > these drivers, there is no more need to bother with symbol duration, so > > > > > > just drop the duplicated code. > > > > > > > > > > > > Signed-off-by: Miquel Raynal > > > > > > --- > > > > > > drivers/net/ieee802154/ca8210.c | 1 - > > > > > > drivers/net/ieee802154/mcr20a.c | 2 -- > > > > > > 2 files changed, 3 deletions(-) > > > > > > > > > > > > diff --git a/drivers/net/ieee802154/ca8210.c b/drivers/net/ieee802154/ca8210.c > > > > > > index 82b2a173bdbd..d3a9e4fe05f4 100644 > > > > > > --- a/drivers/net/ieee802154/ca8210.c > > > > > > +++ b/drivers/net/ieee802154/ca8210.c > > > > > > @@ -2977,7 +2977,6 @@ static void ca8210_hw_setup(struct ieee802154_hw *ca8210_hw) > > > > > > ca8210_hw->phy->cca.mode = NL802154_CCA_ENERGY_CARRIER; > > > > > > ca8210_hw->phy->cca.opt = NL802154_CCA_OPT_ENERGY_CARRIER_AND; > > > > > > ca8210_hw->phy->cca_ed_level = -9800; > > > > > > - ca8210_hw->phy->symbol_duration = 16 * 1000; > > > > > > ca8210_hw->phy->lifs_period = 40; > > > > > > ca8210_hw->phy->sifs_period = 12; > > > > > > ca8210_hw->flags = > > > > > > diff --git a/drivers/net/ieee802154/mcr20a.c b/drivers/net/ieee802154/mcr20a.c > > > > > > index 8aa87e9bf92e..da2ab19cb5ee 100644 > > > > > > --- a/drivers/net/ieee802154/mcr20a.c > > > > > > +++ b/drivers/net/ieee802154/mcr20a.c > > > > > > @@ -975,7 +975,6 @@ static void mcr20a_hw_setup(struct mcr20a_local *lp) > > > > > > > > > > > > dev_dbg(printdev(lp), "%s\n", __func__); > > > > > > > > > > > > - phy->symbol_duration = 16 * 1000; > > > > > > phy->lifs_period = 40; > > > > > > phy->sifs_period = 12; > > > > > > > > > > > > @@ -1010,7 +1009,6 @@ static void mcr20a_hw_setup(struct mcr20a_local *lp) > > > > > > phy->current_page = 0; > > > > > > /* MCR20A default reset value */ > > > > > > phy->current_channel = 20; > > > > > > - phy->symbol_duration = 16 * 1000; > > > > > > phy->supported.tx_powers = mcr20a_powers; > > > > > > phy->supported.tx_powers_size = ARRAY_SIZE(mcr20a_powers); > > > > > > phy->cca_ed_level = phy->supported.cca_ed_levels[75]; > > > > > > > > > > What's about the atrf86230 driver? > > > > > > > > I couldn't find reliable information about what this meant: > > > > > > > > /* SUB:0 and BPSK:0 -> BPSK-20 */ > > > > /* SUB:1 and BPSK:0 -> BPSK-40 */ > > > > /* SUB:0 and BPSK:1 -> OQPSK-100/200/400 */ > > > > /* SUB:1 and BPSK:1 -> OQPSK-250/500/1000 */ > > > > > > > > None of these comments match the spec so I don't know what to put > > > > there. If you know what these protocols are, I will immediately > > > > provide this information into the driver and ensure the core handles > > > > these durations properly before dropping the symbol_durations settings > > > > from the code. > > > > > > I think those are from the transceiver datasheets (which are free to > > > access). Can you not simply merge them or is there a conflict? > > > > Actually I misread the driver, it supports several kind of chips with > > different channel settings and this disturbed me. I downloaded the > > datasheet and figured that the number after the protocol is the bit > > rate. This helped me to make the connection with what I already know, > > so both atusb and atrf86230 drivers have been converted too. > > and what is about hwsim? I think the table gets too large then... I'm sorry but I don't follow you here, what do you mean by "the table gets too large"? > that's why I was thinking of moving that somehow to the regdb, however > this is another project as I said and this way is fine. Maybe we use a > kind of fallback then? The hwsim phy isn't really any 802.15.4 PHY, > it's just memcpy() but it would be nice to be able to test scan with > it. So far I understand it is already possible to make something with > hwsim here but what about the zero symbol rate and the "waiting > period" is zero? Before this series: many drivers would not set the symbol duration properly. In this case the scan will likely not work because wait periods will be too short. But that's how it is, we miss some information. But for hwsim, I've handled a lot of situations so yes, there are still channels that won't have a proper symbol duration because I just don't know them, but for most of them (several pages) it will work like a charm. > > btw: > Also for testing with hwsim and the missing features which currently > exist. Can we implement some user space test program which replies > (active scan) or sends periodically something out via AF_PACKET raw > and a monitor interface that should work to test if it is working? We already have all this handled, no need for extra software. You can test active and passive scans between two hwsim devices already: # iwpan dev wpan0 beacons send interval 15 # iwpan dev wpan1 scan type active duration 1 # iwpan dev wpan0 beacons stop or # iwpan dev wpan0 beacons send interval 1 # iwpan dev wpan1 scan type passive duration 2 # iwpan dev wpan0 beacons stop > Ideally we could do that very easily with scapy (not sure about their > _upstream_ 802.15.4 support). I hope I got that right that there is > still something missing but we could fake it in such a way (just for > hwsim testing). I hope the above will match your expectations. Thanks, Miquèl