Forum: GNU Radio gr-extras: tuntap : How to use ?

Posted by Iain Young, G7III (Guest)
on 2012-10-03 19:22
(Received via mailing list)
Hi Folks,

Finally getting around to playing with some of the stuff in gr-extras.

Having compiled 3.6.2, and the extras, I found the tuntap block, and
was hoping to use it to implement some RF Networking with the GMSK
modules.

I found the tuntap block, and noticed that it had an input and output.
I was expecting my flowgraph to take the userspace end of the network
interface, with the other end being the network device.

I found the presentation from the recent conference on a basic MAC
layer, and that seemed to imply the input could be almost anything,
but didn't leave me any the wiser as to exactly how to use it.

What I was hoping to do was essentially this (and a similiar) RX chain:

tuntap --> packet framer --> GMSK_Mod --> USRP

But the input to the tuntap block has confused me. Can I just give
it a Null source ? (With the block picking up data from the network
device ?)


Also, even when connecting it to a source, I seem to have another
issue, as I get this error at runtime:

RuntimeError: gr_make_tuntap: tun_alloc failed

Despite having the /dev/net/tun device, and it being writable by the
user running the flow graph. This happens if I specify "Automatic" or
a specific network device.

Anyone want to point me in the right direction ? Or even anyone have
an example ?


Best Regards

Iain
Posted by Josh Blum (Guest)
on 2012-10-03 19:58
(Received via mailing list)
On 10/03/2012 10:21 AM, Iain Young, G7III wrote:
> interface, with the other end being the network device.
>
> I found the presentation from the recent conference on a basic MAC
> layer, and that seemed to imply the input could be almost anything,
> but didn't leave me any the wiser as to exactly how to use it.
>

Basically, the TUN/TAP block was there for the purposes of replacing
tunnel.py. Few people *actually* want to pipe stuff through a virtual
ethernet interface.

For the example, we will probably replace that block with the "socket
msg" block. You can just open netcat on the host/port and use it like a
wireless IM chat session :-) There will soon be a demonstration video w/
the MAC layer stuff presented.

> What I was hoping to do was essentially this (and a similiar) RX chain:
>
> tuntap --> packet framer --> GMSK_Mod --> USRP
>

Instead, try the "socket to blob" block. Outside the flowgraph, open a
socket and send packets.

> But the input to the tuntap block has confused me. Can I just give
> it a Null source ? (With the block picking up data from the network
> device ?)
>
>

I pushed a change adding <optional>1</optional> to the input and output
ports. You shouldnt need to actually connect.

> an example ?
>

I think you need to run as root to allocate tun/tap stuff. I copied the
tun_alloc from here: /usr/src/linux/Documentation/networking/tuntap.txt

-josh
Posted by Iain Young, G7III (Guest)
on 2012-10-04 20:24
(Received via mailing list)
On 03/10/12 18:57, Josh Blum wrote:
>> but didn't leave me any the wiser as to exactly how to use it.
>>
>
> Basically, the TUN/TAP block was there for the purposes of replacing
> tunnel.py. Few people *actually* want to pipe stuff through a virtual
> ethernet interface.

Heh, I always did like to be different :)

> For the example, we will probably replace that block with the "socket
> msg" block. You can just open netcat on the host/port and use it like a
> wireless IM chat session :-) There will soon be a demonstration video w/
> the MAC layer stuff presented.

I shall look forward to that


> ports. You shouldnt need to actually connect.
Great, thanks. Everything now works as expected, and wireshark receives
ethernet frames from my RX tun interface, when I connect the GMSK
Modulator and Demodulator together back-to-back. And yes, it also works
with the Socket-to-Blob blocks :)

Now I just have to figure out what filtering, amplification, levels,
and frequency offsets I need to make it work via my USRP and also
soundcard interfaces.

Not had much success yet, and my rates are somewhat more narrow-band
than most examples out there. Ah well, I'll figure it out at somepoint


Thanks again

Iain
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.