linux-wpan.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Koen Zandberg <koen@bergzand.net>
To: Stefan Schmidt <stefan@datenfreihafen.org>,
	Christopher Friedt <chrisfriedt@gmail.com>
Cc: linux-wpan@vger.kernel.org,
	Andrei Emeltchenko <andrei.emeltchenko@intel.com>
Subject: Re: wpanusb?
Date: Fri, 5 Jun 2020 13:07:43 +0200	[thread overview]
Message-ID: <0ccbc151-cf8e-cd56-28f8-f1594d226056@bergzand.net> (raw)
In-Reply-To: <e5d22300-fccc-5a0f-6776-5438bfad57e1@datenfreihafen.org>


[-- Attachment #1.1: Type: text/plain, Size: 3441 bytes --]

Hello

On 03-06-2020 20:18, Stefan Schmidt wrote:
> Hello.
>
> Happy to see that we finally have the critical mass to get this moved
> forward. :-)
>
> Here is my take on what I think needs to be done.
>
> On a first review I found nothing wrong with the design. It needs
> further extending and flexibility in my opinion, though.
I would suggest using USB bulk endpoints for both the tx and rx paths.
An interrupt IN endpoint might be useful for events from the radio back
to the host such as ack information from a transmit. This way we can
keep the control messages to configuration only. This is similar to how
USB ethernet devices are using different USB endpoints. I also see
issues with transferring large 802.15.4g frames over control endpoints.
Something similar like CDC-ECM would be my preference here: Split the
frame in multiple bulk transfers and detect the end of the frame by a
transfer size not equal to the endpoint size.
>
> o Add a GET_EXTENDED_ADDR command to receive the extended address
> provided by the transceiver itself, or firmware in some way.
+1
>
> o Adding a GET_CAPABILITIES command to query device capabilities
>  during init to enable and set needed ieee802154_ops based on the
> device. Given that we aim to support as many transceivers as possible
> we can't rely on static device knowledge to configure wpanusb correctly.
Does it make sense to include also a "protocol" version here, to allow
extending the feature set of the driver later without causing
compatibility issues between the firmware and the kernel?
>
> o Add opcode for set_lbt in USB spec
This requires some clarification for me how the radio should be
configured. Is this just a CSMA/CCA switch?
>
> o Add opcode for set_frame_retries USB spec. (If a transceiver does
> not support AutoACK in hardware do Zephyr and RIOT support a software
> fallback to handle AutoACK?)
This can be implemented in RIOT. I don't think there is something in
place at the moment, most of our radios support this in hardware, but I
see no technical reason why not to support this.
>
> o How are we going to handle transceiver which allow MTUs > 127? Not a
> high priority as the kernel part does not support this either right now.
There is some preliminary support for 802.15.4g radios in RIOT. I know
some developers that would prefer not to have to have the MTU limited to
127 bytes :)
>
> o Do Zephyr or RIOT expose additional functionality we should support
> here?
>
> o Koen, you offered to look into implementing the firmware support for
> the USB spec in RIOT. Does the spec fit what RIOT has as abstraction
> for ieee802154?

Yes, implementing configuration settings as USB control messages makes
glueing them to the radio abstraction layer very easy. For now RIOT has
configuration for:

 - reading and writing channel/page settings
 - read/write to addresses, both long and short
 - PAN ID
 - TX power settings
 - reading the max PSDU size
 - Ack config settings
 - CCA and CSMA configuration, enabling/disabling, retries and backoff
exponent (max/min)
 - CCA threshold and mode

Furthermore, it is possible to get frame metadata such as the received
signal strength and the number of retries required for the frame
transmit. All these settings depend a bit on the radio hardware features
of course, but thats what we have the GET_CAPABILITIES for.

Koen



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2020-06-05 11:08 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-25 12:39 wpanusb? Christopher Friedt
2020-05-26 19:38 ` wpanusb? Stefan Schmidt
2020-05-29 19:33   ` wpanusb? Christopher Friedt
2020-05-30 11:33     ` wpanusb? Stefan Schmidt
2020-05-30 15:08       ` wpanusb? Christopher Friedt
2020-05-30 18:10         ` wpanusb? Koen Zandberg
2020-05-31 16:13           ` wpanusb? Christopher Friedt
2020-06-03 18:18             ` wpanusb? Stefan Schmidt
2020-06-05 11:07               ` Koen Zandberg [this message]
2020-06-07 12:17                 ` wpanusb? Stefan Schmidt
2020-07-06 14:42                   ` wpanusb? Stefan Schmidt
     [not found]                     ` <CAF4BF-TdLpg6hCc8iiR40tGmV9C5EPDF6c6Qr5m5CfDWOVJUMA@mail.gmail.com>
2020-07-23  8:15                       ` wpanusb? Stefan Schmidt
2020-07-24 13:26                       ` wpanusb? Stefan Schmidt
2020-07-24 13:41                 ` wpanusb? Stefan Schmidt
2020-09-26 12:28                   ` wpanusb? Stefan Schmidt
2020-09-26 12:47                     ` wpanusb? Christopher Friedt
2020-09-27  8:59                       ` wpanusb? Stefan Schmidt
2020-10-15 20:16                         ` wpanusb? Christopher Friedt
2020-11-03 16:47                           ` wpanusb? Stefan Schmidt

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=0ccbc151-cf8e-cd56-28f8-f1594d226056@bergzand.net \
    --to=koen@bergzand.net \
    --cc=andrei.emeltchenko@intel.com \
    --cc=chrisfriedt@gmail.com \
    --cc=linux-wpan@vger.kernel.org \
    --cc=stefan@datenfreihafen.org \
    /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;
as well as URLs for NNTP newsgroup(s).