Re: [Discuss-gnuradio] Enabling the cognitive radio with GNU Radio+USRP

2010-04-12 Thread Tom Rondeau

On 3/7/2010 3:31 PM, Eric Blossom wrote:

On Thu, Mar 04, 2010 at 02:45:54PM -0500, Jakub Moskal wrote:
   

Hi everyone,

I am trying to use the GNU-Radio+USRP to implement a cognitive radio
use case in which radios exchange information (XML-based documents)
between each other in order to achieve a defined goal (e.g. to improve
connectivity), without disturbing the usual communication. I have
several questions regarding this scenario..

In a packet-based communication (e.g. tunnel.py) I imagine that I
could transmit my own packets which would include the cognitive
information and then receive them on the other end. It would require
some special marking of the packets (binary level?) to distinguish the
cognitive information from the regular data, so that it could be
filtered out on the receiver side. I looked into the tunnel.py, but it
seems that it doesn't implement anything higher than the MAC layer -
therefore I cannot use it to reliably transfer data, packets get lost
or are too small and I would have to split/merge data manually. Would
it be possible to combine the tunnel.py with the TCP source/sinks in
order to achieve a reliable link?
 

In reality, you'd need some kind of FEC to get the packet error rate
down to something you can deal with.  Then you could run TCP across
the interface.  No need for TCP sources or sinks.  You've got a
(virtual) network interface with an IP address.  Just run something
that uses TCP on that IP address.
   


Definitely follow Eric's advice and apply some kind of FEC to reduce the 
packet error rate. When you've done that, the tunnel.py provides you 
with a TUN/TAP interface, which is a networking interface like eth0 
(that is, once you get it working with your Mac, for which I can't be of 
any help). This will allow you to use a TCP/IP interface to the GNU 
Radio physical layer. Instead of trying to interleave your cognitive 
radio control bits into the PHY-layer stream, you should be able to use 
a TCP port specifically for those purposes. So you'd have two logical 
links on the TCP layer over the single physical link.


Tom




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Enabling the cognitive radio with GNU Radio+USRP

2010-04-12 Thread Jakub Moskal
Tom,

That is actually what I was going to do. I installed Ubuntu as a dual
boot on my Mac and I must say the installation of gnuradio went very
smooth, much faster than on the OSX. Too bad this approach is not
platform-independent, although it will do for now.

Thank you for the advice!
Jakub

On Mon, Apr 12, 2010 at 8:44 AM, Tom Rondeau trondeau1...@gmail.com wrote:
 On 3/7/2010 3:31 PM, Eric Blossom wrote:

 On Thu, Mar 04, 2010 at 02:45:54PM -0500, Jakub Moskal wrote:


 Hi everyone,

 I am trying to use the GNU-Radio+USRP to implement a cognitive radio
 use case in which radios exchange information (XML-based documents)
 between each other in order to achieve a defined goal (e.g. to improve
 connectivity), without disturbing the usual communication. I have
 several questions regarding this scenario..

 In a packet-based communication (e.g. tunnel.py) I imagine that I
 could transmit my own packets which would include the cognitive
 information and then receive them on the other end. It would require
 some special marking of the packets (binary level?) to distinguish the
 cognitive information from the regular data, so that it could be
 filtered out on the receiver side. I looked into the tunnel.py, but it
 seems that it doesn't implement anything higher than the MAC layer -
 therefore I cannot use it to reliably transfer data, packets get lost
 or are too small and I would have to split/merge data manually. Would
 it be possible to combine the tunnel.py with the TCP source/sinks in
 order to achieve a reliable link?


 In reality, you'd need some kind of FEC to get the packet error rate
 down to something you can deal with.  Then you could run TCP across
 the interface.  No need for TCP sources or sinks.  You've got a
 (virtual) network interface with an IP address.  Just run something
 that uses TCP on that IP address.


 Definitely follow Eric's advice and apply some kind of FEC to reduce the
 packet error rate. When you've done that, the tunnel.py provides you with a
 TUN/TAP interface, which is a networking interface like eth0 (that is, once
 you get it working with your Mac, for which I can't be of any help). This
 will allow you to use a TCP/IP interface to the GNU Radio physical layer.
 Instead of trying to interleave your cognitive radio control bits into the
 PHY-layer stream, you should be able to use a TCP port specifically for
 those purposes. So you'd have two logical links on the TCP layer over the
 single physical link.

 Tom




 ___
 Discuss-gnuradio mailing list
 Discuss-gnuradio@gnu.org
 http://lists.gnu.org/mailman/listinfo/discuss-gnuradio



___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Enabling the cognitive radio with GNU Radio+USRP

2010-03-07 Thread Eric Blossom
On Thu, Mar 04, 2010 at 02:45:54PM -0500, Jakub Moskal wrote:
 Hi everyone,
 
 I am trying to use the GNU-Radio+USRP to implement a cognitive radio
 use case in which radios exchange information (XML-based documents)
 between each other in order to achieve a defined goal (e.g. to improve
 connectivity), without disturbing the usual communication. I have
 several questions regarding this scenario..
 
 In a packet-based communication (e.g. tunnel.py) I imagine that I
 could transmit my own packets which would include the cognitive
 information and then receive them on the other end. It would require
 some special marking of the packets (binary level?) to distinguish the
 cognitive information from the regular data, so that it could be
 filtered out on the receiver side. I looked into the tunnel.py, but it
 seems that it doesn't implement anything higher than the MAC layer -
 therefore I cannot use it to reliably transfer data, packets get lost
 or are too small and I would have to split/merge data manually. Would
 it be possible to combine the tunnel.py with the TCP source/sinks in
 order to achieve a reliable link?

In reality, you'd need some kind of FEC to get the packet error rate
down to something you can deal with.  Then you could run TCP across
the interface.  No need for TCP sources or sinks.  You've got a
(virtual) network interface with an IP address.  Just run something
that uses TCP on that IP address.

 It looks like some of the examples don't use the concept of a packet
 (eg. usrp_tv_rcv.py) -- how would I add my own data and filter it in
 such streams? Would it require writing a C++ block? If so, how would I
 ensure the reliability then?

Good question, see below for reading suggestions.

 I have a CS background and the digital communication is rather new to
 me, I would appreciate any help or links to resources.

To really grok s/w radio, folks need to have a decent clue about
software, dsp, digital comms and RF.  Sounds like you've got the
software part wired, so that's handled.  Other folks come with the
digital comms background but lacking experience in s/w.  There's always
something new to learn :-)

Take a look at this list of suggested reading, and spend some time
with a few things that capture your interest:

  http://gnuradio.org/redmine/wiki/gnuradio/SuggestedReading

For DSP, I'd suggest starting with Lyons.  For Digital Comms, try Sklar.

 Thanks,
 Jakub

You're welcome!
Eric


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Enabling the cognitive radio with GNU Radio+USRP

2010-03-06 Thread Michael Dickens

On Mar 4, 2010, at 2:45 PM, Jakub Moskal wrote:

Last question.. I own to USRPs and I successfully installed the
gnuradio with grc on two MacBooks (10.6.2). Examples run fine, but
when it comes to the tunnel.py I cannot make the TUN/TAP interface to
work on OSX, has anyone had luck with that? I browsed the list
archives, but I couldn't find a tutorial to make it happen. After
reading the 
http://lists.gnu.org/archive/html/discuss-gnuradio/2009-01/msg00047.html
I tried the tuntaposx and Tunnelblick, but with no luck. For now I
replaced the tun/tap with a STOMP/JMS layer.



I have no answers to your previous questions, but I'll address the one  
above.  tap/tun on OSX works differently than it does on Linux; I  
don't remember the details.  I've (still, as per the link about) never  
gotten it to work for me, though admittedly I haven't tried very hard  
either.  If you can find a way of doing the equivalence of tap/tun on  
OSX, then I say go for it  good for you  let us know what it was   
how you did it. - MLD




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] Enabling the cognitive radio with GNU Radio+USRP

2010-03-06 Thread Jakub Moskal
Michael,

Thank you for the response. What I am doing right now is forwarding
the packets from the tunnel.py to a JMS (Java Message Service) server
using the STOMP (http://stomp.codehaus.org/) protocol, available for
python. JMS server is pushing packets from its clients to the
tunnel.py. What JMS gives me is the asynchronous message-based
communication and reliability. The JMS server can talk to clients
written in a variety of languages (Java, C, C++, C#, Ruby, Perl,
Python, PHP). At this point the only issue is that I forward packets
from the PHY/MAC layer almost directly to the application layer.. I
guess using the TUN/TAP would forward packets through the kernel's
network stack and provide implementation of the higher levels of the
OSI model, so I wouldn't have to worry about things like lost packets
and segmentation..

Jakub

On Sat, Mar 6, 2010 at 8:13 PM, Michael Dickens m...@alum.mit.edu wrote:
 On Mar 4, 2010, at 2:45 PM, Jakub Moskal wrote:

 Last question.. I own to USRPs and I successfully installed the
 gnuradio with grc on two MacBooks (10.6.2). Examples run fine, but
 when it comes to the tunnel.py I cannot make the TUN/TAP interface to
 work on OSX, has anyone had luck with that? I browsed the list
 archives, but I couldn't find a tutorial to make it happen. After
 reading the
 http://lists.gnu.org/archive/html/discuss-gnuradio/2009-01/msg00047.html
 I tried the tuntaposx and Tunnelblick, but with no luck. For now I
 replaced the tun/tap with a STOMP/JMS layer.


 I have no answers to your previous questions, but I'll address the one
 above.  tap/tun on OSX works differently than it does on Linux; I don't
 remember the details.  I've (still, as per the link about) never gotten it
 to work for me, though admittedly I haven't tried very hard either.  If you
 can find a way of doing the equivalence of tap/tun on OSX, then I say go for
 it  good for you  let us know what it was  how you did it. - MLD




___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio


[Discuss-gnuradio] Enabling the cognitive radio with GNU Radio+USRP

2010-03-04 Thread Jakub Moskal
Hi everyone,

I am trying to use the GNU-Radio+USRP to implement a cognitive radio
use case in which radios exchange information (XML-based documents)
between each other in order to achieve a defined goal (e.g. to improve
connectivity), without disturbing the usual communication. I have
several questions regarding this scenario..

In a packet-based communication (e.g. tunnel.py) I imagine that I
could transmit my own packets which would include the cognitive
information and then receive them on the other end. It would require
some special marking of the packets (binary level?) to distinguish the
cognitive information from the regular data, so that it could be
filtered out on the receiver side. I looked into the tunnel.py, but it
seems that it doesn't implement anything higher than the MAC layer -
therefore I cannot use it to reliably transfer data, packets get lost
or are too small and I would have to split/merge data manually. Would
it be possible to combine the tunnel.py with the TCP source/sinks in
order to achieve a reliable link?

It looks like some of the examples don't use the concept of a packet
(eg. usrp_tv_rcv.py) -- how would I add my own data and filter it in
such streams? Would it require writing a C++ block? If so, how would I
ensure the reliability then?

Last question.. I own to USRPs and I successfully installed the
gnuradio with grc on two MacBooks (10.6.2). Examples run fine, but
when it comes to the tunnel.py I cannot make the TUN/TAP interface to
work on OSX, has anyone had luck with that? I browsed the list
archives, but I couldn't find a tutorial to make it happen. After
reading the 
http://lists.gnu.org/archive/html/discuss-gnuradio/2009-01/msg00047.html
I tried the tuntaposx and Tunnelblick, but with no luck. For now I
replaced the tun/tap with a STOMP/JMS layer.

I have a CS background and the digital communication is rather new to
me, I would appreciate any help or links to resources.

Thanks,
Jakub


___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
http://lists.gnu.org/mailman/listinfo/discuss-gnuradio