Linux IEEE 802.15.4 and 6LoWPAN development
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Alexander Aring <aahringo@redhat.com>
Cc: Alexander Aring <alex.aring@gmail.com>,
	Stefan Schmidt <stefan@datenfreihafen.org>,
	linux-wpan - ML <linux-wpan@vger.kernel.org>,
	David Girault <david.girault@qorvo.com>,
	Romuald Despres <romuald.despres@qorvo.com>,
	Frederic Blain <frederic.blain@qorvo.com>,
	Nicolas Schodet <nico@ni.fr.eu.org>,
	Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Subject: Re: [PATCH wpan-tools 0/7] iwpan: Support scanning/beaconing
Date: Fri, 26 Aug 2022 12:50:20 +0200	[thread overview]
Message-ID: <20220826125020.414964fd@xps-13> (raw)
In-Reply-To: <CAK-6q+jy75nUH1dzr5KCFnLJ=QALLv5keXboTtbjQ7uh-KWwGg@mail.gmail.com>

Hi Alexander,

aahringo@redhat.com wrote on Thu, 25 Aug 2022 21:22:48 -0400:

> Hi,
> 
> On Thu, Aug 25, 2022 at 8:55 AM Miquel Raynal <miquel.raynal@bootlin.com> wrote:
> >
> > Hi Alexander,
> >
> > aahringo@redhat.com wrote on Tue, 23 Aug 2022 21:36:23 -0400:
> >  
> > > Hi,
> > >
> > > On Fri, Aug 19, 2022 at 1:07 PM Miquel Raynal <miquel.raynal@bootlin.com> wrote:  
> > > >
> > > > Hi Alexander,
> > > >
> > > > aahringo@redhat.com wrote on Sun, 3 Jul 2022 21:18:40 -0400:
> > > >  
> > > > > Hi,
> > > > >
> > > > > On Fri, Jul 1, 2022 at 10:39 AM Miquel Raynal <miquel.raynal@bootlin.com> wrote:  
> > > > > >
> > > > > > Hello,
> > > > > >
> > > > > > This series follows the work done in the Linux kernel stack: now that
> > > > > > the core knows about the different netlink commands and attributes in
> > > > > > order to support scanning and beaconing requests from end-to-end, here
> > > > > > are the userspace changes to be able to use it.
> > > > > >
> > > > > > Here is a list of the new available features.
> > > > > >
> > > > > > * Sending (or stopping) beacons. Intervals ranging from 0 to 14 are
> > > > > >   valid for passively sending beacons at regular intervals. An interval
> > > > > >   of 15 would request the core to answer BEACON_REQ.
> > > > > >   # iwpan dev coord0 beacons send interval 2 # send BEACON at a fixed rate
> > > > > >   # iwpan dev coord0 beacons send interval 15 # answer BEACON_REQ only
> > > > > >   # iwpan dev coord0 beacons stop # apply to both cases
> > > > > >
> > > > > > * Scanning all the channels or only a subset:
> > > > > >   # iwpan dev wpan1 scan type passive duration 3 # will not trigger BEACON_REQ
> > > > > >   # iwpan dev wpan1 scan type active duration 3 # will trigger BEACON_REQ
> > > > > >
> > > > > > * During scans, there is a dedicated netlink channel event to listen to
> > > > > >   in order to get events like "a new coordinator was discovered" or "the
> > > > > >   scan is over". When beacons from new devices are received, the tool
> > > > > >   would print something like:
> > > > > >   PAN 0xabcd (on coord1)
> > > > > >         coordinator 0xe673d7a3f3a87ccc
> > > > > >         page 0
> > > > > >         channel 13
> > > > > >         preamble code 0
> > > > > >         mean prf 0
> > > > > >         superframe spec. 0x4f11
> > > > > >         LQI 0
> > > > > >
> > > > > > * It is also possible to monitor the events with:
> > > > > >   # iwpan event
> > > > > >
> > > > > > * As well as triggering a non blocking scan:
> > > > > >   # iwpan dev wpan1 scan trigger type passive duration 3
> > > > > >   # iwpan dev wpan1 scan done
> > > > > >   # iwpan dev wpan1 scan abort  
> > > > >
> > > > > why do we need an abort?  
> > > >
> > > > Perhaps the tool --help would have helped to get the naming, but we
> > > > need:
> > > > - a command to start a scan, either use:
> > > >   * "scan" alone and it is synchronous, I mean the command returns when
> > > >     the scan is over
> > > >   or
> > > >   * "scan trigger" which is asynchronous, and returns immediately after
> > > >     starting the operation
> > > > - if the scan was started asynchronously with the "trigger" keyword,
> > > >   the "done" command will wait until the scan is over (maybe this one
> > > >   needs to be renamed?)
> > > > - if the user made a mistake and do not want to remain blocked for
> > > >   several minutes (a scan can last for very long time), we need the
> > > >   "abort" command to tell the kernel to stop and return to a standard
> > > >   state. Once this has been processed and the scan effectively stopped,
> > > >   the kernel will send a nl command saying the scan is over (which
> > > >   "scan done" would capture)
> > > >  
> > >
> > > For me, trigger and done should be for the simple cli use case in one
> > > command like "scan list". It will block them and trigger any scan
> > > event popping up. The user can send SIGINT to stop scanning?
> > >
> > > Although there should be still available an asynchronous way which is
> > > for me "scan trigger" (non-blocking) and the user can do "iwpan
> > > monitor" to observe upcoming events (all inclusive scan) and tell
> > > optionally "scan done" to stop scanning if necessary (which probably
> > > also produces an event to notify all listeners e.g. iwpan monitor).
> > >
> > > However I think most people using iwpan want to trigger and wait and
> > > the cli is filling up events and blocks until it's done (that would be
> > > a combination with trigger/monitor into one command).
> > >
> > > Both solutions should be possible over cli?  
> >
> > Yes, that's what I was saying, the two solutions are already supported.
> > The iwpan tool is being enhanced with the "scan" composite command,
> > - either "scan" is given an additional keyword and makes just that
> >   (trigger, abort, done) and returns as soon as this precise
> >   command is done (eg. it returns almost immediately on "trigger")  
> 
> But why do we need to have a done command?
> 
> Sorry, I still don't get that.

My bad, I changed the command and I forgot to update my draft.

> > - or, no additional command is provided (only the parameters for the
> >   scan) and the command does an equivalent to "trigger + monitor +
> >   done" which blocks after launching the scan, shows the results when
> >   they arrive, and returns once the scan is finished.  
> 
> "trigger + monitor" there is no done command needed here or? The
> process should unblock when it's done, and for SIGINT/SIGKILL send an
> abort?

> Maybe a done event when the scan is "successful" finished and
> everything that was there in the channel/page combinations was scanned
> without an abort.
> 
> We need to consider that other processes listen to events? They should
> be aware of what's happening there? There should be some event
> sequence going on "trigger event" + "loop of found something event" +
> "either abort or done"?
> 
> >
> > Do you want something more? I just miss a "monitor" command I guess, I
> > may add it.
> >  
> 
> Yea, monitor sounds like ip monitor, udevadm monitor, etc. to listen
> to all those 802.15.4 subsystem events. I would take a look into it
> for any scan results. At the end you should be able to do a blocked
> scan and monitor at the same time and they should at least provide
> similar events.
> Probably the blocked scan with nicer output and filtered and the
> monitor is for everything that is going on in 802.15.4 there.

I've updated the tools so that we have:

* "scan trigger" which does not block
* "scan monitor" which displays with a pretty output the new
  coordinators and stops blocking when the scan is over (either because
  it reached the last channel to scan, or it got aborted)
* "scan abort" which stops an ongoing scan
* "scan" which is the same as "scan trigger; scan monitor", and will
  send an abort command if interrupted with SIGINT

On the other side there was in the previous versions a command "iwpan
event" which I just renamed "iwpan monitor" which follows anything
802154 related and displays a single line each time, it looks like:
# iwpan monitor -t // -t is an option to display timestamps
1661510897.820505: coord1 (phy #1): scan started
1661510903.874055: coord1 (phy #1): new coordinator detected: PAN 0xabcd, addr 0x42aab7e343ea5c0f
1661510908.953874: coord1 (phy #1): scan finished
1661510915.437030: coord1 (phy #1): scan started
1661510916.242412: coord1 (phy #1): scan aborted

This should address all the needs.

Thanks,
Miquèl

  reply	other threads:[~2022-08-26 10:50 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-01 14:34 [PATCH wpan-tools 0/7] iwpan: Support scanning/beaconing Miquel Raynal
2022-07-01 14:34 ` [PATCH wpan-tools 1/7] iwpan: Fix the channels printing Miquel Raynal
2022-07-01 14:34 ` [PATCH wpan-tools 2/7] iwpan: Export iwpan_debug Miquel Raynal
2022-07-01 14:34 ` [PATCH wpan-tools 3/7] iwpan: Fix a comment Miquel Raynal
2022-07-01 14:34 ` [PATCH wpan-tools 4/7] iwpan: Remove duplicated SECTION Miquel Raynal
2022-08-01 23:30   ` Alexander Aring
2022-07-01 14:34 ` [PATCH wpan-tools 5/7] iwpan: Synchronize nl802154 header with the Linux kernel Miquel Raynal
2022-07-01 14:34 ` [PATCH wpan-tools 6/7] iwpan: Add full scan support Miquel Raynal
2022-07-01 14:34 ` [PATCH wpan-tools 7/7] iwpan: Add events support Miquel Raynal
2022-07-04  1:18 ` [PATCH wpan-tools 0/7] iwpan: Support scanning/beaconing Alexander Aring
2022-08-02  0:05   ` Alexander Aring
2022-08-19 17:06   ` Miquel Raynal
2022-08-24  1:36     ` Alexander Aring
2022-08-25 12:55       ` Miquel Raynal
2022-08-26  1:22         ` Alexander Aring
2022-08-26 10:50           ` Miquel Raynal [this message]
2022-08-28 13:55             ` Alexander Aring
2022-08-29  8:37               ` Miquel Raynal
2022-08-29 12:57                 ` Alexander Aring
2022-08-31  3:17                   ` Alexander Aring
2022-08-31 15:17                     ` Miquel Raynal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220826125020.414964fd@xps-13 \
    --to=miquel.raynal@bootlin.com \
    --cc=aahringo@redhat.com \
    --cc=alex.aring@gmail.com \
    --cc=david.girault@qorvo.com \
    --cc=frederic.blain@qorvo.com \
    --cc=linux-wpan@vger.kernel.org \
    --cc=nico@ni.fr.eu.org \
    --cc=romuald.despres@qorvo.com \
    --cc=stefan@datenfreihafen.org \
    --cc=thomas.petazzoni@bootlin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox