Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Oleg Hahm
Hi Alex!

On Fri, Jun 16, 2017 at 10:43:05PM +0200, Alexander Aring wrote:
> On Fri, Jun 16, 2017 at 09:45:25PM +0200, Oleg Hahm wrote:
> > Using at86rf2xx's extended operating mode allows you to figure out if an ACK
> > was received or not, but not all models allows you to read if and how many
> > retransmissions were necessary.
> 
> Question here is:
> 
> Is "how many retransmissions were necessary" is a required information
> for IEEE 802.15.4 MLME-ops? If so, then the transceiver hardware has a
> lack of support to implement IEEE 802.15.4, if not then this is some
> "extra" feature. Not sure if this information is required. Required
> information for some MLME-ops is if finally there was an ACK or NOT, no
> matter how many retransmissions was involved.

Hm, you can still use the base operation mode and implement "everything"
(i.e., ACK handling, retransmissions etc.) yourself. Hence, the transceiver
hardware is capable - it's just a matter of implementation comfort.

> Such "extra" feature could only be useful to check how reliable a peer
> is, maybe?.

True.

Cheers,
Oleg
-- 
printk(KERN_WARNING "%s: Thanks, I feel much better now!\n", dev->name);
linux-2.6.6/drivers/net/de620.c
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Alexander Aring
Hi,

On Fri, Jun 16, 2017 at 09:45:25PM +0200, Oleg Hahm wrote:
> Hi Alex!
> 
> On Fri, Jun 16, 2017 at 09:21:18PM +0200, Alexander Aring wrote:
> > On Fri, Jun 16, 2017 at 11:57:01AM +0200, Oleg wrote:
> > > On 2017-06-16 11:27, Baptiste Clenet wrote:
> > > > Yes Thomas I haven't tried yet but I don't think transceiver stores it.
> > > > Joakim, OpenThread requires it as explained here:
> > > > https://github.com/RIOT-OS/RIOT/pull/7149#issuecomment-308342978
> > > 
> > > Sorry, I don't get the explanation. Why does OpenThread needs the pointer 
> > > to
> > > the ACK frame?
> > > 
> > 
> > Some IEEE 802.15.4 MLME-ops requires if the ack was received or not.
> > This need be handled by upper layers e.g. a SoftMAC layer of IEEE
> > 802.15.4. So actually if ARET is supported by hardware and it's an
> > SoftMAC transceiver it should have the possibility to read out some
> > status register of handled ARET algorithm on hardware side if ACK was
> > there or not (because MLME-ops requires this information). If hardware
> > can't report and is a SoftMAC transceiver with ARET support and can't
> > handle MLME-ops on hardware side: you have a problem.
> 
> Using at86rf2xx's extended operating mode allows you to figure out if an ACK
> was received or not, but not all models allows you to read if and how many
> retransmissions were necessary.
> 

Question here is:

Is "how many retransmissions were necessary" is a required information
for IEEE 802.15.4 MLME-ops? If so, then the transceiver hardware has a
lack of support to implement IEEE 802.15.4, if not then this is some
"extra" feature. Not sure if this information is required. Required
information for some MLME-ops is if finally there was an ACK or NOT, no
matter how many retransmissions was involved.

Such "extra" feature could only be useful to check how reliable a peer
is, maybe?.

- Alex
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Oleg Hahm
Hi Alex!

On Fri, Jun 16, 2017 at 09:21:18PM +0200, Alexander Aring wrote:
> On Fri, Jun 16, 2017 at 11:57:01AM +0200, Oleg wrote:
> > On 2017-06-16 11:27, Baptiste Clenet wrote:
> > > Yes Thomas I haven't tried yet but I don't think transceiver stores it.
> > > Joakim, OpenThread requires it as explained here:
> > > https://github.com/RIOT-OS/RIOT/pull/7149#issuecomment-308342978
> > 
> > Sorry, I don't get the explanation. Why does OpenThread needs the pointer to
> > the ACK frame?
> > 
> 
> Some IEEE 802.15.4 MLME-ops requires if the ack was received or not.
> This need be handled by upper layers e.g. a SoftMAC layer of IEEE
> 802.15.4. So actually if ARET is supported by hardware and it's an
> SoftMAC transceiver it should have the possibility to read out some
> status register of handled ARET algorithm on hardware side if ACK was
> there or not (because MLME-ops requires this information). If hardware
> can't report and is a SoftMAC transceiver with ARET support and can't
> handle MLME-ops on hardware side: you have a problem.

Using at86rf2xx's extended operating mode allows you to figure out if an ACK
was received or not, but not all models allows you to read if and how many
retransmissions were necessary.

Cheers,
Oleg
-- 
printk (KERN_ERR "%s: Oops - your private data area is hosed!\n", ...)
linux-2.6.6/drivers/net/ewrk3.c
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Oleg
Hi Baptiste!

On Fri, Jun 16, 2017 at 07:07:17PM +0200, Baptiste Clenet wrote:
> If you get deeper, I think they use it to get the power of the
> transmission and may be something else that I missed:
> https://github.com/openthread/openthread/blob/master/src/core/mac/mac.cpp#L993

Thanks for the pointer. So, OpenThread is basically not interested in the ACK
itself, but the accompanying information like RSSI and/or LQI. Well, in that
case, I guess there's no way around using the base mode of the at86rf2xx.
Thomas once started a branch for that which seemed to work fine at a first
glance: https://github.com/thomaseichinger/RIOT/tree/feat/rf2xx_basic_netdev2

Not sure how much work would be required to rebase it on current master. One
would also need to check if OpenThread also takes care about sending ACKs and
retransmissions itself.

Cheers,
Oleg
-- 
"The idea is to keep the green alien landing craft from taking up humans from
the ground and changing them into mutants. A mutant is very dangerous to you,
because it flies faster than you do and shoots at you."
Beastie Boys, Time To Build
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Alexander Aring
Hi,

On Fri, Jun 16, 2017 at 07:07:17PM +0200, Baptiste Clenet wrote:
> OpenThread asks all new platform to use new function:
> otPlatRadioTxDone that requires ACK frame.
> 
> If you get deeper, I think they use it to get the power of the
> transmission and may be something else that I missed:
> https://github.com/openthread/openthread/blob/master/src/core/mac/mac.cpp#L993
> 

yes, but the power is not part of ack frame payload. It's just the
receive power measured when ARET was done "or something like that", or?

And they do it to collect some per peer statistics about how reliable/link
quality a neighbor is (I suppose). E.g. doing routing decisions
afterwards.

- Alex
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Alexander Aring
Hi,

On Fri, Jun 16, 2017 at 09:21:18PM +0200, Alexander Aring wrote:
> Hi Oleg,
> 
> On Fri, Jun 16, 2017 at 11:57:01AM +0200, Oleg wrote:
> > Hi Baptiste!
> > 
> > On 2017-06-16 11:27, Baptiste Clenet wrote:
> > > Yes Thomas I haven't tried yet but I don't think transceiver stores it.
> > > Joakim, OpenThread requires it as explained here:
> > > https://github.com/RIOT-OS/RIOT/pull/7149#issuecomment-308342978
> > 
> > Sorry, I don't get the explanation. Why does OpenThread needs the pointer to
> > the ACK frame?
> > 
> 

doh! Thought about why they need ackframe there or not, but it's about
payload... sorry.

- Alex
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Alexander Aring
Hi Oleg,

On Fri, Jun 16, 2017 at 11:57:01AM +0200, Oleg wrote:
> Hi Baptiste!
> 
> On 2017-06-16 11:27, Baptiste Clenet wrote:
> > Yes Thomas I haven't tried yet but I don't think transceiver stores it.
> > Joakim, OpenThread requires it as explained here:
> > https://github.com/RIOT-OS/RIOT/pull/7149#issuecomment-308342978
> 
> Sorry, I don't get the explanation. Why does OpenThread needs the pointer to
> the ACK frame?
> 

Some IEEE 802.15.4 MLME-ops requires if the ack was received or not.
This need be handled by upper layers e.g. a SoftMAC layer of IEEE
802.15.4. So actually if ARET is supported by hardware and it's an
SoftMAC transceiver it should have the possibility to read out some
status register of handled ARET algorithm on hardware side if ACK was
there or not (because MLME-ops requires this information). If hardware
can't report and is a SoftMAC transceiver with ARET support and can't
handle MLME-ops on hardware side: you have a problem.

For my Linux experiments I tried to implement to make an upper layer
report if ACK was there or not, see [0]. I didn't implement MLME-ops it
was to keep per peer stats about link quality. Further this information
for upper layer (mac802154) it's necessary for some IEEE 802.15.4 MLME-ops
handled by this layer.

I think OpenThread needs also this information for some of "future or
already?" handled MLME-ops.

---

What I have also in plans is... I need that also on an user space POSIX
socket on linux. This requires obviously a synced transmit handling in
user space for e.g. IEEE 802.15.4 sockets or even IPv6 Sockets. I want to
handle such information over the "socket error queue" [1] which allows a
synced xmit on user space level and even request if the transmitted
frame/ipv6 packet got an acked frame back. Okay for IPv6 lot of more
stuff need to be handled e.g. ACK handling report with fragmentation.
But for IEEE 802.15.4 sockets I need this handling for running user space
stacks e.g. RIOT in user space on a registered Linux 802.15.4 PHY. Which
is actually a necessary use-case which I found, same can be adapted for
IPv6/6LoWPAN (maybe somebody will specified protocols to check on L2 ack
handling, I don't know if such thing exists).

Note: the above idea was stolen from wireless (802.11) Linux subsystem,
see [3].

- Alex

[0] 
https://github.com/linux-wpan/linux-wpan-next/blob/for-mcr/drivers/net/ieee802154/at86rf230.c#L658
[1] https://linux.die.net/man/2/recv - MSG_ERRQUEUE
[3] http://www.spinics.net/lists/netdev/msg176415.html
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Baptiste Clenet
OpenThread asks all new platform to use new function:
otPlatRadioTxDone that requires ACK frame.

If you get deeper, I think they use it to get the power of the
transmission and may be something else that I missed:
https://github.com/openthread/openthread/blob/master/src/core/mac/mac.cpp#L993

2017-06-16 11:57 GMT+02:00 Oleg :
> Hi Baptiste!
>
> On 2017-06-16 11:27, Baptiste Clenet wrote:
>>
>> Yes Thomas I haven't tried yet but I don't think transceiver stores it.
>> Joakim, OpenThread requires it as explained here:
>> https://github.com/RIOT-OS/RIOT/pull/7149#issuecomment-308342978
>
>
> Sorry, I don't get the explanation. Why does OpenThread needs the pointer to
> the ACK frame?
>
> Cheers,
> Oleg



-- 
Baptiste
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] devel Digest, Vol 52, Issue 14

2017-06-16 Thread Michael Gielda
Hi Craig,

This would be welcome also from the RISC-V Foundation's side (and some
other people who I know might be interested). I am on the marketing
committee and we're always happy to see new activity, the more choice of
OS, the better.

Also in my role in Antmicro, we are building workshop badges based on
SiFive E310 for the next RISC-V workshop in the Bay Area so it'd be cool to
have the RIOT port running there too (currently we're using Zephyr).

If you do manage to launch that effort, be sure to remind us to put you in
the software status list:
https://github.com/riscv/riscv-wiki/wiki/RISC-V-Software-Status

Best regards,
Michael



> Date: Thu, 15 Jun 2017 08:53:03 -0700
> From: "Thomas Eichinger" 
> To: "RIOT OS kernel developers" 
> Subject: Re: [riot-devel] RIOT port to RISC-V?
> Message-ID: <7ce74894-6066-4f2f-b5a8-5b718061a...@riot-os.org>
> Content-Type: text/plain; format=flowed
>
> Hi Craig,
>
> That's great news and I am stoked to see support for RISC-V in RIOT.
>
> To my knowledge nobody put real effort into that yet. (I'm happy to be
> corrected!)
> If you need help or guidance on porting please don't hesitate to ask on
> this list.
>
> Thanks and good luck for your funding proposal,
>
> Thomas
>
> On 15 Jun 2017, at 2:53 PDT(-0700), Craig S. Steele wrote:
>
> > I am preparing a funding proposal in the U.S., and am contemplating a
> > port of RIOT to the 32-bit RISC-V architecture.  We have HiFive
> > development boards from SiFive.com, as well as FPGA platforms, to work
> > on a project trying to provide hardware security support for 32-bit
> > RISC-V MCU variants.
> >
> > It is helpful for the proposal process to know if anyone else is
> > working on such a port to RISC-V.  I have seen a question about that
> > last year on the developers' email list, but have seen no indication
> > that anyone is actually working on this port.  If anyone is aware of
> > any such effort at present, I'd appreciate that information.
> >
> > Thanks in advance,
> >
> > Craig Steele
> > ___
> > devel mailing list
> > devel@riot-os.org
> > https://lists.riot-os.org/mailman/listinfo/devel
>
>

-- 
Michael Gielda
mobile: +48 504 631 956
Antmicro Ltd | www.antmicro.com
Zwierzyniecka 3, 60-813 Poznan, Poland
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Oleg

Hi Baptiste!

On 2017-06-16 11:27, Baptiste Clenet wrote:

Yes Thomas I haven't tried yet but I don't think transceiver stores it.
Joakim, OpenThread requires it as explained here:
https://github.com/RIOT-OS/RIOT/pull/7149#issuecomment-308342978


Sorry, I don't get the explanation. Why does OpenThread needs the 
pointer to the ACK frame?


Cheers,
Oleg
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Baptiste Clenet
Yes Thomas I haven't tried yet but I don't think transceiver stores it.
Joakim, OpenThread requires it as explained here:
https://github.com/RIOT-OS/RIOT/pull/7149#issuecomment-308342978

Shuguo, this a hack solution. There is a way to use old function which
does not required the ACK frame so we're going to use as long as it is
possible.

2017-06-16 9:47 GMT+02:00 Shuguo Zhuo :
> I guess if you only want to use the ACK frame as an input of the function,
> given that it is hard to get from the extended mode, then, maybe one
> solution is that you can manually build one yourself (you can get the
> sequence number from the hardware) and pass it to the function.
>
> Cheers,
> Shuguo
>
> 
>
> 发件人: "Joakim Nohlgård" 
> 收件人: "RIOT OS kernel developers" 
> 发送时间: 星期四, 2017年 6 月 15日 下午 10:55:03
> 主题: Re: [riot-devel] At86rf2xx ACK frame
>
>
> Why do you need the actual ACK frame? It's only like 3 bytes + FCS and
> doesn't really contain anything interesting. The only interesting
> information is that the frame with the given sequence id was received
> properly, which is exactly the same information you get from the transceiver
> hardware.
>
> Regards,
> Joakim
>
> On Jun 15, 2017 8:18 AM, "Baptiste Clenet"  wrote:
>
> Which mean that automated ACK by the transceiver is fine.
> 1 - RIOT sends a frame
> 2 - Transceiver receives an ACK and transmit a
> AT86RF2XX_TRX_STATE__TRAC_SUCCESS
> 3 - Here I want to get the ACK frame content
> 4 - Use it with openthread (Have a look here [1] to understand why we need
> it)
>
> [1]
> https://github.com/openthread/openthread/blob/master/include/openthread/platform/radio.h#L404
>
> Cheers,
>
> 2017-06-13 15:46 GMT+02:00 Baptiste Clenet :
>> 2017-06-13 14:45 GMT+02:00 Oleg :
>>> Hi Baptiste!
>>>
>>> On 2017-06-13 12:30, Baptiste Clenet wrote:

 On netdev event: NETDEV_EVENT_TX_COMPLETE (after
 AT86RF2XX_TRX_STATE__TRAC_SUCCESS state), how may I get the ACK frame
 received by at86rf2xx?
>>>
>>>
>>> The ACK frame is processed automatically by the transceiver. There is no
>>> way
>>> to access it using the extended mode. If you use the base mode, you will
>>> have to send and process the ACK yourself.
>>>
>>
>> Ok I don't want to process the ACK myself, I only want to get the
>> frame on AT86RF2XX_TRX_STATE__TRAC_SUCCESS state. Is the ACK frame
>> store in a register/frame buffer? Or do we must use base mode to get
>> the ACK frame.
>>
>>>
>>> Cheers,
>>> Oleg
>>> ___
>>> devel mailing list
>>> devel@riot-os.org
>>> https://lists.riot-os.org/mailman/listinfo/devel
>>
>>
>>
>> --
>> Baptiste
>
>
>
> --
> Baptiste
> ___
> devel mailing list
> devel@riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel
>
>
>
> ___
> devel mailing list
> devel@riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel
>
>
>
> ___
> devel mailing list
> devel@riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel
>



-- 
Baptiste
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel


Re: [riot-devel] At86rf2xx ACK frame

2017-06-16 Thread Shuguo Zhuo
I guess if you only want to use the ACK frame as an input of the function, 
given that it is hard to get from the extended mode, then, maybe one solution 
is that you can manually build one yourself (you can get the sequence number 
from the hardware) and pass it to the function. 

Cheers, 
Shuguo 

- 原始邮件 -

> 发件人: "Joakim Nohlgård" 
> 收件人: "RIOT OS kernel developers" 
> 发送时间: 星期四, 2017年 6 月 15日 下午 10:55:03
> 主题: Re: [riot-devel] At86rf2xx ACK frame

> Why do you need the actual ACK frame? It's only like 3 bytes + FCS and
> doesn't really contain anything interesting. The only interesting
> information is that the frame with the given sequence id was received
> properly, which is exactly the same information you get from the transceiver
> hardware.

> Regards,
> Joakim

> On Jun 15, 2017 8:18 AM, "Baptiste Clenet" < bapcle...@gmail.com > wrote:

> > Which mean that automated ACK by the transceiver is fine.
> 
> > 1 - RIOT sends a frame
> 
> > 2 - Transceiver receives an ACK and transmit a
> > AT86RF2XX_TRX_STATE__TRAC_SUCCESS
> 
> > 3 - Here I want to get the ACK frame content
> 
> > 4 - Use it with openthread (Have a look here [1] to understand why we need
> > it)
> 

> > [1]
> > https://github.com/openthread/openthread/blob/master/include/openthread/platform/radio.h#L404
> 

> > Cheers,
> 

> > 2017-06-13 15:46 GMT+02:00 Baptiste Clenet < bapcle...@gmail.com >:
> 
> > > 2017-06-13 14:45 GMT+02:00 Oleg < o...@riot-os.org >:
> 
> > >> Hi Baptiste!
> 
> > >>
> 
> > >> On 2017-06-13 12:30, Baptiste Clenet wrote:
> 
> > >>>
> 
> > >>> On netdev event: NETDEV_EVENT_TX_COMPLETE (after
> 
> > >>> AT86RF2XX_TRX_STATE__TRAC_SUCCESS state), how may I get the ACK frame
> 
> > >>> received by at86rf2xx?
> 
> > >>
> 
> > >>
> 
> > >> The ACK frame is processed automatically by the transceiver. There is no
> > >> way
> 
> > >> to access it using the extended mode. If you use the base mode, you will
> 
> > >> have to send and process the ACK yourself.
> 
> > >>
> 
> > >
> 
> > > Ok I don't want to process the ACK myself, I only want to get the
> 
> > > frame on AT86RF2XX_TRX_STATE__TRAC_SUCCESS state. Is the ACK frame
> 
> > > store in a register/frame buffer? Or do we must use base mode to get
> 
> > > the ACK frame.
> 
> > >
> 
> > >>
> 
> > >> Cheers,
> 
> > >> Oleg
> 
> > >> ___
> 
> > >> devel mailing list
> 
> > >> devel@riot-os.org
> 
> > >> https://lists.riot-os.org/mailman/listinfo/devel
> 
> > >
> 
> > >
> 
> > >
> 
> > > --
> 
> > > Baptiste
> 

> > --
> 
> > Baptiste
> 
> > ___
> 
> > devel mailing list
> 
> > devel@riot-os.org
> 
> > https://lists.riot-os.org/mailman/listinfo/devel
> 

> ___
> devel mailing list
> devel@riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel
___
devel mailing list
devel@riot-os.org
https://lists.riot-os.org/mailman/listinfo/devel