zephyr/samples/net/wpanusb
Tomasz Bursztyka 83ed3a29be net/ieee802154: Modify radio TX function signature
The cause for this change is TCP. Until now, the radio strategy driver
(ALOHA or CSMA) was providing the actual nbuf, and not the buffer
fragment, counting on the fact that the loop was using
net_buf_frag_del() which made so, iteration after iteration, buffer
framgent to be always buf->frags. The problem with this logic is loosing
the fragments that might be still referenced by TCP, in case the whole
buffer did not make it so TCP can retry later and so on.

Instead, TX now takes the nbuf and the actual frag to send. It could
have been working with just a pointer on the data, and the whole length
of the frame. But it has been avoided due to possible future devices,
that will be smarter and run CSMA directly in the hw, thus it will
require to access the whole buffer list through the nbuf.

Change-Id: I8d77b1e13b648c0ec3645cb2d55d1910d00381ea
Signed-off-by: Tomasz Bursztyka <tomasz.bursztyka@linux.intel.com>
2017-01-27 12:35:53 +02:00
..
src net/ieee802154: Modify radio TX function signature 2017-01-27 12:35:53 +02:00
Makefile samples: remove obsolete KERNEL_TYPE 2016-12-20 01:12:43 +00:00
README wpanusb: Export ieee802.14.5 over USB 2016-12-02 12:40:46 +02:00
prj.conf ieee802154: conf: add common log level 2017-01-13 10:29:00 +01:00
wpan-radio-spec.txt wpanusb: Update wpan protocol document 2016-12-02 12:41:05 +02:00

README

This application exports ieee802154 radio over USB to be used in other
Operation Systems like Linux. In this scenario Linux SoftMAC driver would
be used implementing ieee802154 stack inside Linux.

When connected to Linux it is recognized by Linux with wpanusb kernel
driver as:

...
T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=ff(vend.) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=8086 ProdID=ff03 Rev=01.00
C:  #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 1 Cls=ff(vend.) Sub=00 Prot=00 Driver=wpanusb
...

bring it up with:

#!/bin/sh

PHY=`iwpan phy | grep wpan_phy | cut -d' ' -f2`

echo 'Using phy' $PHY

iwpan dev wpan0 set pan_id 0xabcd
iwpan dev wpan0 set short_addr 0xbeef
iwpan phy $PHY set channel 0 26
ip link add link wpan0 name lowpan0 type lowpan
ip link set wpan0 up
ip link set lowpan0 up