[riot-devel] Raw communication between native nodes
aar at pengutronix.de
Wed Jun 22 21:19:33 CEST 2016
On 06/22/2016 05:28 PM, Jose Alamos wrote:
> I was wondering if there's a way to send raw data between nodes running on
> native. I need to send OpenThread packets between nodes (through a radio
> abstraction), and I'm having problems with TAP interface since they only
> process ethernet frames.
> I tried to hack a little bit (put these OT packets in ethernet frames) but
> is not working well. Basically, I need to emulate a radio device.
> Is there an easy way to achieve this?
some of you maybe knowing that I am working on a RIOT native 802154raw
transceiver driver which works with AF_PACKET RAW linux-wpan interfaces.
At the end it should work like the following:
First I need to describe a special virtual 802.15.4 driver, it's named
fakelb (maybe such idea can also be implemented in RIOT).
It works similar like the hwsim80211 driver in linux (but less
functionality, I also was thinking to make a better implementation of
fakelb and name it hwsim802154).
With such driver you can create "virtual phy's" in Linux.
E.g. 2 phy's,
wpan node interface wpan node interface
wpan-phy0 <--L1(memcpy)--> wpan-phy1
- mac820154: Our 802154 SoftMAC stack
- 6LoWPAN/etc: upper layer IPv6, foo stack
- wpan node interface: a wpan node interface which does filtering
Now with a 802154raw native RIOT driver the following would be possible:
RIOT native (Userspace)
| 6LoWPAN/etc 6LoWPAN/etc
| | |
wpan monitor interface wpan node interface wpan node interface
| | |
| mac802154 mac802154
| | |
wpan-phy2 <-L1(memcpy)-> wpan-phy0 <--L1(memcpy)--> wpan-phy1
In this setup you can ping from Linux IPv6 stack the RIOT Stack which
running in userspace.
I think your use case would be look like the following which is also
RIOT native (Userspace) OpenThread native (Userspace)
AF_PACKET RAW AF_PACKET RAW
wpan monitor interface wpan monitor interface
wpan-phy0 <----L1(memcpy)----> wpan-phy1
Then you could connect RIOT native with openthread native over the
fakelb driver (maybe also add Linux nodes or more RIOT/OpenThread
I know somebody is working for adding such virtual driver in OpenThread,
but I think they want to use real hardware for that (which I don't
recommend). This is just for stack testing, there exists unsolved issues
with ACK handling etc and you really don't want to bypass the great
Linux IPv6 Stack :-).
I cc the guy/girl which wants to add this stuff to OpenThread.
More information about the devel