Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
Hi Martin, hi all,

I'm sorry for delayed replies. That's not because I don't care - I
just have very tight schedule at this moment.

On Tue, May 24, 2011 at 10:04, Martin Braun martin.br...@kit.edu wrote:
 On Mon, May 23, 2011 at 11:50:52PM +0400, Alexander Chemeris wrote:
 Hi community,

 Hi Alex,

 Our WiMAX Scanner project (http://code.google.com/p/wimax-scanner/)
 approaches the moment when we should start writing C/C++ code - our
 Matlab model decodes broadcast messages from all recordings we have on
 hands.

 That's great. I think GNU Radio would benefit from having big, cool
 projects.

I believe so too. But first, big cool projects should make sure
GnuRadio fits :)

 Here's my thoughts and experiences:

 At this point we have to make a choice - rely on GnuRadio or create
 our own framework. Until recently I was sure would create our own
 framework, but recent discussions on this list made me think GnuRadio
 may be an option. So, I'm looking for the community help with the the
 following questions:

 1) How well is GnuRadio suited for packet data processing? WiMAX is
 essentially a packet-oriented system.

 What you're writing is receiver-only, right? In that case, GNU Radio
 will be able to handle all your data just fine. It gets tricky when you
 have a transceiver with timing-sensitive operations, but it seems your
 project would work well. GNU Radio is pretty agnostic of the data moved
 between blocks.

WiMAX receiver is our current goal, but we aim ultimately at creating
a full 4G modem. And want to create real working modem, not just an
offline model. We plan to port our code to some powerful DSP later to
make it run in real-time. That's why we want to stay with C/C++ -
Python is not a common guest at DSP.

 2) We don't want to use Python. Is there anything we can't do without
 it? And where can we find examples of C++-only flowgraphs?

 There are some examples in gnuradio-examples/c++. It's really not that
 hard, and I've done some C++-only projects with great success.

Thanks. I'll look into them.

 However, let me ask why you don't want to use Python. Is it because you
 want a final product that works without Python, or do you have a real
 'allergy'?

See explanation above about our intention to port to DSP.
Also I believe that it's better to avoid such mixes, because it forces
people to learn language which they don't know.

 Because I recommend that *even* for a C++-only project, you still use
 Python for unit tests. Also, this gives you the opportunity to quickly
 click together tests using GRC. This will make development a *lot*
 easier.
 Side note: Porting from Matlab to Python is much simpler than going from
 Matlab to C++ (for porting your unit tests).

Yes, using Python for unit tests may be a good idea. But it has a
downside - it means that people still have to learn Python.

 3) Right now all our code is open-source, but we must leave an option
 for proprietary plugins. How can we make this possible?

 4) Related to (3) - how can we make sure our protocol stack can be
 embedded into a closed-source application/system?

 IANAL, TINLA. I'm guessing your best bet would be to separate the
 actual DSP code from the GNU Radio bindings and have very lean GNU Radio
 blocks (being GPL) which only call your module. Still, I don't know how
 or if you may link code across licenses.

That's the question - how to link across licenses.

 You will have to get legal help here, I would not rely on anything said
 on this list.

In many cases opinion of the community leader plays no smaller role
then license itself. If Linus didn't state that he think proprietary
modules are allowed, Linux would have a very different role now.

-- 
Regards,
Alexander Chemeris.

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
On Wed, May 25, 2011 at 22:29, Michael Dickens m...@alum.mit.edu wrote:
 Hi Alexander - I think Martin  Tom covered that GNU Radio is quite capable
 of being programmed for the basic receiver processing.  You might need to play
 around a bit with your DSP blocks, but otherwise I think GNU Radio's data
 processing is up to the task.

Yes, with an exception that we our receiver is not basic (e.g. see
comment about DL-MAP) and we also need transmitter, and integration
with MAC level, ugh.

 On May 23, 2011, at 3:50 PM, Alexander Chemeris wrote:
 3) Right now all our code is open-source, but we must leave an option
 for proprietary plugins. How can we make this possible?

 4) Related to (3) - how can we make sure our protocol stack can be
 embedded into a closed-source application/system?

 IANAL and TINAL.  I think, as has been said, you'll really want to consult a 
 lawyer to figure out how to best meet your needs.

 GNU Radio is licensed solely under the GPLv3, which is written with the 
 intent that -anything directly- using source or binary becomes part of a 
 greater work and hence would also fall under this or an equivalent license 
 (e.g., if used in a sold product).  In the case of GNU Radio, that means any 
 C++ code that links with GNU Radio's libraries, or Python script that makes 
 use of GNU Radio's Python / SWIG files / libraries.  To the best of my 
 knowledge, because GNU Radio is not dual-licensed, neither can greater 
 works derived from it.  Ettus' UHD code is (will be?) an example of a dual 
 license (GPL for the primary source, or some other license allowing you to do 
 closed source for your needs when you pay to license the code from Ettus);  
 Qt tries to do this dual-license as well -- I don't know how well they 
 succeed, but they do try.

 IMHO, you have 3 primary choices for keeping your code closed source:

 (0) Do not use GNU Radio; use some other project that has a less restrictive 
 license.

Yes, this is an option.

 (1) Do not distribute a product or service that uses the code: Nobody will 
 care how you license your code so long as you / your company does not sell or 
 distribute your product -- e.g., if you use it just in house for testing and 
 evaluation, then you can license it however you want.  However, I doubt that 
 this is what you're looking for: why develop such a product, but not sell or 
 distribute it?  That brings us to:

Right.

 (2) Make sure your code does not -directly- rely on GNU Radio's headers, 
 Python scripts, or compiled libraries: Use currently available GNU Radio 
 blocks as much as you can (or, those written and released by others), and 
 then create a pipe or socket connection to your specific code.  Because your 
 code does not rely -directly- on GNU Radio's codebase / libraries, it forms 
 an independent work  thus you can license it as you choose.  That said, this 
 method is certainly a nuisance and, depending what blocks are available 
 versus what you need, it might also be impractical (never impossible :).

Let me clarify.
We will publish our main source code as open-source (we already do for
our Matlab models). But we want (1) to allow other parties to replace
some parts of our open-source code with their proprietary blocks and
(2) more importantly - allow creation of proprietary solutions to be
based on this code. So far, (2) would require you to create a
socket/IPC based API and use it to embed into a larger system - though
this implies that you add latency in your processing path. Requirement
(1) may go the same way, as long as it's only for some blocks, but
again - this may add latency. I'm not yet sure how bad is this added
latency, but in general, latency is an important characteristic for
4G.

Interesting thing is how Linux kernel allows proprietary modules. If I
understand this correctly (IANAL), it's because kernel's API is
clearly defined and kernel it's considered, that it's a kernel native
feature - to be able load and run modules, just like it's for
applications. With this logic, it's possible to allow modules with
GnuRadio if there are a clearly defined external API. But note, that
the kernel is licensed under GPLv2, and GnuRadio is under GPLv3 - I'm
not sure whether this trick works for the latter.

 I don't know of another way to look at this issue -- maybe someone on this 
 list is more enlightened?

 That said: Unless you feel strongly that your work truly needs to be 
 proprietary, then why not just create a project on the CGRAN or your 
 preferred area (e.g., github)  make your work public -- it will benefit many 
 others in the SDR / DSP world (and, likely, beyond).

We're more concerned about others to use our work. That's what is
missing for many GnuRadio projects - we build software for ourselves.
We want to create a software which will be used by many.

 Good luck, and please do keep the list informed on your project -- it sounds 
 quite interesting! - MLD

Thanks! I'll do my best keeping the community informed.

Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
On Wed, May 25, 2011 at 23:21, Jeff Brower jbro...@signalogic.com wrote:
 Michael-

 Hi Alexander - I think Martin  Tom covered that GNU Radio
 is quite capable of being programmed for the basic receiver
 processing.  You might need to play around a bit with your
 DSP blocks, but otherwise I think GNU Radio's data
 processing is up to the task.

 On May 23, 2011, at 3:50 PM, Alexander Chemeris wrote:
 3) Right now all our code is open-source, but we must
 leave an option
 for proprietary plugins. How can we make this possible?

 4) Related to (3) - how can we make sure our protocol
 stack can be
 embedded into a closed-source application/system?

 IANAL and TINAL.  I think, as has been said, you'll
 really want to consult a lawyer to figure out how to
 best meet your needs.

 GNU Radio is licensed solely under the GPLv3, which is
 written with the intent that -anything directly- using
 source or binary becomes part of a greater work and
 hence would also fall under this or an equivalent
 license (e.g., if used in a sold product).  In the
 case of GNU Radio, that means any C++ code that links
 with GNU Radio's libraries, or Python script that
 makes use of GNU Radio's Python / SWIG files /
 libraries.  To the best of my knowledge, because GNU
 Radio is not dual-licensed, neither can greater
 works derived from it.  Ettus' UHD code is (will be?)
 an example of a dual license (GPL for the primary
 source, or some other license allowing you to do
 closed source for your needs when
 you pay to license the code from Ettus);  Qt tries
 to do this dual-license as well -- I don't know how
 well they succeed, but they do try.

 IMHO, you have 3 primary choices for keeping your code
 closed source:

 (0) Do not use GNU Radio; use some other project that
 has a less restrictive license.

 (1) Do not distribute a product or service that uses
 the code: Nobody will care how you license your code
 so long as you / your company does not sell or
 distribute your product -- e.g., if you use it just
 in house for testing and evaluation, then you can
 license it however you want.  However, I doubt that
 this is what you're looking for: why develop such
 a product, but not sell or distribute it?  That
 brings us to:

 (2) Make sure your code does not -directly- rely on
 GNU Radio's headers, Python scripts, or compiled
 libraries: Use currently available GNU Radio blocks
 as much as you can (or, those written and released
 by others), and then create a pipe or socket
 connection to your specific code.  Because your
 code does not rely -directly- on GNU Radio's
 codebase / libraries, it forms an independent work
  thus you can license it as you choose.  That said,
 this method is certainly a nuisance and, depending
 what blocks are available versus what you need, it
 might also be impractical (never impossible :).

 This is where I think licensing discussions tend to go off track.  Legal 
 precedents have clearly established
 requirements for interoperability.  In that context, the key point is not 
 what code links to, but where it resides
 and what shape it takes.  Linking based arguments are fuzzy and argued ad 
 infinitum until at least one such case
 reaches the Supreme Court -- not likely any time soon.  If code resides 
 across a network, across a bus (i.e. on a PCIe
 card inside the GNU radio host server), or some other clearly non-GNU radio 
 location then interoperability becomes the
 metric.  It doesn't matter what header files or libraries (or whether the 
 libraries are static or shared object, etc)
 were used to create an interface to the code that is physically separate  -- 
 in that case, the code is clearly out of
 the scope of the license.

 I've mentioned on the forum before the need for ways to insert proprietary 
 code within the GNU radio framework, as
 have others.  For example, is it possible for GNU radio users to insert code 
 blocks into the FPGA data flow, for
 instance if FPGA Verilog code contained user defined stubs or simple 
 reference examples to serve as a starting
 point?  Could an Nvidia accelerator be used?  To me, it's a matter of 
 imagination, creativity, and persistence -- if
 GNU radio developers believe in the need for proprietary IP within their 
 framework, then it can be done.  So far,
 evidently, they don't believe.

 Alexander is asking excellent questions and I'm surprised at the tepid 
 response -- he's got like 4 replies so far?
 He's the prototype GNU radio user who needs to maintain his group's IP, he 
 should be receiving how to's, not
 INALs.

Jeff, thanks. Yes, I'm trying to solve a bigger problem then just my
personal case. And you're right - if we want to see serious projects
to use GnuRadio, then there must be how-to's and examples.


-- 
Regards,
Alexander Chemeris.

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
On Thu, May 26, 2011 at 18:10, Marcus D. Leech mle...@ripnet.com wrote:
 On 26/05/2011 9:55 AM, Michael Dickens wrote:

 It would be great if you could share with the list example code snippets
 of how you do the pipes.  For example: Where in an online repository one can
 find such code.

 I think that's what Jeff was getting at: that we are providing IANAL
 advice rather than code examples.  I, for one, have never actually tried the
 pipes -- I've just heard that they are possible and that using them does not
 form a greater work in the GPL sense. - MLD


 ___

 Actually, my SIDSuite code uses this a little bit, in that data recording is
 handled outside of Gnu Radio.  The basic idea is that there's
  a shell script that sets up the environment (creates the FIFO files, starts
 the external programs in the background, etc), then the
  Gnu Radio flow-graph is called.  The flow-graphs just use File Source and
 File Sink with buffering turned off--as far as Gnu Radio
  is concerned, it's writing to a file, but in fact, it's a FIFO file or
 named pipe.

 See:

 http://www.sbrac.org/files/sidsuite.tar.gz

 It doesn't do it as much as other code that I've written, but it gives one a
 flavour for how the pipes are used.

Cool!
It would be truly great to see a simplified example of this in the
GnuRadio repository, and at least somehow mentioned on the wiki.

 The other trick that I use is to use the XMLRPC server stuff that Josh put
 in GRC--it allows you to set flowgraph variables from an
  outside program, which is really great!

Hum. Any examples?

I also wonder - have you quantified overhead of those methods - in
latency, jitter, memory, etc?

-- 
Regards,
Alexander Chemeris.

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
Anti-tivoization is one of main differences (but not the only), but
it's about a different issue.
http://en.wikipedia.org/wiki/Tivoization

On Sat, May 28, 2011 at 05:14, Colby Boyer colby.bo...@gmail.com wrote:
 Isn't the main difference between v2 and v3 the Tivo Exception as
 the call it? Not sure.

 I guess I should add  IANAL.  TINLA.

 :P

 On Fri, May 27, 2011 at 3:32 PM, Marcus D. Leech mle...@ripnet.com wrote:
 How do the companies write closed-source drivers for the Linux Kernel
 without running into GPL2 issues? I can only recall that there is a
 user-land and a kernel-land driver, where the kernel-land is the
 only part that is open source. Is this correct?

 Perhaps that method could work well?


 I thought GPLV2 was less onerous in this regard, and that case-law had
 established that a loadable kernel driver didn't necessarily get
  infected by the GPL virus.  IANAL.  TINLA.  Etc.

 The last kernel driver I worked on we were planning to open-source as a way
 of encouraging people to buy  our (very closed-source!) chips.
  Project fell apart before we hit market.  Sigh.

 --
 Marcus Leech
 Principal Investigator
 Shirleys Bay Radio Astronomy Consortium
 http://www.sbrac.org




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




-- 
Regards,
Alexander Chemeris.

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Marcus D. Leech
 Cool! It would be truly great to see a simplified example of this in
 the GnuRadio repository, and at least somehow mentioned on the wiki. 
Yes, I suppose it would.  I'll put it on my list, but so many other
things to do :-(

 The other trick that I use is to use the XMLRPC server stuff that Josh put
 in GRC--it allows you to set flowgraph variables from an
  outside program, which is really great!
 
 Hum. Any examples?

 I also wonder - have you quantified overhead of those methods - in
 latency, jitter, memory, etc?

   
Well, in terms of the FIFO I/O, they're pretty-darned efficient in
Linux, at least as efficient as disk I/O,
  although since FIFOs (named pipes) are implemented in kernel memory,
they're typically a lot
  faster.

I've never needed the XMLRPC stuff to go real fast, since I typically
use it to modify flow-graph
  parameters that change infrequently.  One of the things I use it for
in one of my applications that I
  did for a customer is for active RFI excision for a science
application.  The flow-graph produces
  a spectral estimate which is sent over a FIFO to an external program
that analyses the spectrum, and
  then, if necessary, sends back parameters for a multi-notch filter
into the flow-graph.


-- 
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org



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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
Hi community,

On Mon, May 23, 2011 at 23:50, Alexander Chemeris
alexander.cheme...@gmail.com wrote:
 Hi community,

 Our WiMAX Scanner project (http://code.google.com/p/wimax-scanner/)
 approaches the moment when we should start writing C/C++ code - our
 Matlab model decodes broadcast messages from all recordings we have on
 hands.

 At this point we have to make a choice - rely on GnuRadio or create
 our own framework. Until recently I was sure would create our own
 framework, but recent discussions on this list made me think GnuRadio
 may be an option. So, I'm looking for the community help with the the
 following questions:

 1) How well is GnuRadio suited for packet data processing? WiMAX is
 essentially a packet-oriented system.

 2) We don't want to use Python. Is there anything we can't do without
 it? And where can we find examples of C++-only flowgraphs?

 3) Right now all our code is open-source, but we must leave an option
 for proprietary plugins. How can we make this possible?

 4) Related to (3) - how can we make sure our protocol stack can be
 embedded into a closed-source application/system?

I want to add some more questions:

5) How well is GnuRadio suited for real-time operation?

5.1) Specifically - is memory allocated from heap with malloc() or it
supports non-blocking memory pools?

5.2) Can the whole flowgraph be executed from a single thread to
minimize cross-thread communication overhead (and jitter)?

-- 
Regards,
Alexander Chemeris.

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
On Sat, May 28, 2011 at 18:23, Marcus D. Leech mle...@ripnet.com wrote:
 Cool! It would be truly great to see a simplified example of this in
 the GnuRadio repository, and at least somehow mentioned on the wiki.
 Yes, I suppose it would.  I'll put it on my list, but so many other
 things to do :-(

 The other trick that I use is to use the XMLRPC server stuff that Josh put
 in GRC--it allows you to set flowgraph variables from an
  outside program, which is really great!

 Hum. Any examples?

 I also wonder - have you quantified overhead of those methods - in
 latency, jitter, memory, etc?


 Well, in terms of the FIFO I/O, they're pretty-darned efficient in
 Linux, at least as efficient as disk I/O,
  although since FIFOs (named pipes) are implemented in kernel memory,
 they're typically a lot
  faster.

Problem here is that FIFO's are not very well suited for real-time
operation, IIRC. Have you tried a shared memory and shared signals
across applications?

 I've never needed the XMLRPC stuff to go real fast, since I typically
 use it to modify flow-graph
  parameters that change infrequently.  One of the things I use it for
 in one of my applications that I
  did for a customer is for active RFI excision for a science
 application.  The flow-graph produces
  a spectral estimate which is sent over a FIFO to an external program
 that analyses the spectrum, and
  then, if necessary, sends back parameters for a multi-notch filter
 into the flow-graph.

Good idea. With only one problem - XML is a bit of overhead for
real-time application messaging :)

I wonder - have anyone considered using Google's Protocol Buffers or a
similar messaging scheme with fast serialization/deserialization?
http://code.google.com/apis/protocolbuffers/docs/overview.html


-- 
Regards,
Alexander Chemeris.

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Michael Dickens
On May 28, 2011, at 11:26 AM, Alexander Chemeris wrote:
 5) How well is GnuRadio suited for real-time operation?

In a general sense, yes, GNU Radio is well suited for real-time signal 
processing of data streams.  That said: Real time is only meaningful knowing 
the performance criteria.  What sort of performance do you require processing 
for?

 5.1) Specifically - is memory allocated from heap with malloc() or it
 supports non-blocking memory pools?

IIRC (Tom? Eric?): GNU Radio uses the standard C++ new command for most 
memory allocations -- and thus it is memory from the heap.  One can always 
overload this method globally or locally if required, to provide memory from 
pools or other means.

 5.2) Can the whole flowgraph be executed from a single thread to
 minimize cross-thread communication overhead (and jitter)?

Yes.  Your choices are a single thread for all or 1 thread per block. - MLD


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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
On Sat, May 28, 2011 at 19:38, Michael Dickens m...@alum.mit.edu wrote:
 On May 28, 2011, at 11:26 AM, Alexander Chemeris wrote:
 5) How well is GnuRadio suited for real-time operation?

 In a general sense, yes, GNU Radio is well suited for real-time signal 
 processing of data streams.  That said: Real time is only meaningful 
 knowing the performance criteria.  What sort of performance do you require 
 processing for?

Real-time is not about performance, but about predictability ;)
I have to be sure that my flowgraph always executes before the
deadline is hit. So everything that introduces jitter is a no-no.

 5.1) Specifically - is memory allocated from heap with malloc() or it
 supports non-blocking memory pools?

 IIRC (Tom? Eric?): GNU Radio uses the standard C++ new command for most 
 memory allocations -- and thus it is memory from the heap.  One can always 
 overload this method globally or locally if required, to provide memory from 
 pools or other means.

Is this new called during the flowgraph execution loop? It's too
bad, if it is. Standard memory allocation schemes introduce random
delays in a thread execution. And implementation of a lock-free memory
allocator is a complex task. We used memory pools instead, but this
requires special care - you can't replace a new with memory pool
get() with a regexp.

 5.2) Can the whole flowgraph be executed from a single thread to
 minimize cross-thread communication overhead (and jitter)?

 Yes.  Your choices are a single thread for all or 1 thread per block. - MLD

Great.

-- 
Regards,
Alexander Chemeris.

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Marcus D. Leech

Problem here is that FIFO's are not very well suited for real-time
operation, IIRC. Have you tried a shared memory and shared signals
across applications?

It depends on what you mean by real time.  Certainly FIFO I/O will be 
slower than
  intra-flowgraph ring buffers, but not so horribly sluggish and 
latency prone that they

  can't be used for a large class of real-time applications.

I use them extensively in a radio astronomy application, and they don't 
seem to add any
  noticable latency above the already-not-spectacular latency within 
Gnu Radio.


Good idea. With only one problem - XML is a bit of overhead for
real-time application messaging :)

Are you concerned about parsing overhead?  And what do you mean by real time??
  Are you concerned about reacting to stimuli on microsecond timescales? In 
which case,
  deep thought would certainly be required about the entire architecture, and 
not just
  the protocol syntax.


I wonder - have anyone considered using Google's Protocol Buffers or a
similar messaging scheme with fast serialization/deserialization?
http://code.google.com/apis/protocolbuffers/docs/overview.html


Don't know anything about it.  Might be worth looking at for *someone*.





--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org



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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Marcus D. Leech
Real-time is not about performance, but about predictability ;) I have 
to be sure that my flowgraph always executes before the deadline is 
hit. So everything that introduces jitter is a no-no. 
In general, Gnu Radio executes on general-purpose OSes, which means that 
there will *always* be microsecond-to-milllisecond scale
  jitter in executing code.  If you want 100s-of-nanosecond to 
microsecond scale execution timing predicability, Gnu Radio is going to
  be the least of your worries, in my experience.  The kernel can 
prempt you at any time to deal with interrupts, etc.


--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org



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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
On Sat, May 28, 2011 at 19:52, Marcus D. Leech mle...@ripnet.com wrote:
 Problem here is that FIFO's are not very well suited for real-time
 operation, IIRC. Have you tried a shared memory and shared signals
 across applications?

 It depends on what you mean by real time.  Certainly FIFO I/O will be
 slower than
  intra-flowgraph ring buffers, but not so horribly sluggish and latency
 prone that they
  can't be used for a large class of real-time applications.

I mean Soft Real-Time:
http://en.wikipedia.org/wiki/Real-time_computing#Hard.2C_firm.2C_and_soft_real-time

So, I actually do care about two parameters:
1) Real-timeness - i.e. whether using of this primitive can
introduce unexpected delays into execution.
2) Latency and throughput - if real-timeness requirement is met,
then I want to know how well performance of the primitive is.

 I use them extensively in a radio astronomy application, and they don't seem
 to add any
  noticable latency above the already-not-spectacular latency within Gnu
 Radio.

Is there information about what is the biggest latency-injector in GnuRadio?

 Good idea. With only one problem - XML is a bit of overhead for
 real-time application messaging :)

 Are you concerned about parsing overhead?  And what do you mean by real
 time??
  Are you concerned about reacting to stimuli on microsecond timescales? In
 which case,
  deep thought would certainly be required about the entire architecture, and
 not just
  the protocol syntax.

That's what I try to do right now - evaluate whether GnuRadio can
perform well enough in general :)

I probably spent too much time developing VoIP media processing where
you can hear every non-realtimness with your ears. But RF processing
should be no less real-time, imho.

-- 
Regards,
Alexander Chemeris.

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Alexander Chemeris
On Sat, May 28, 2011 at 19:59, Marcus D. Leech mle...@ripnet.com wrote:
 Real-time is not about performance, but about predictability ;) I have to
 be sure that my flowgraph always executes before the deadline is hit. So
 everything that introduces jitter is a no-no.

 In general, Gnu Radio executes on general-purpose OSes, which means that
 there will *always* be microsecond-to-milllisecond scale
  jitter in executing code.  If you want 100s-of-nanosecond to microsecond
 scale execution timing predicability, Gnu Radio is going to
  be the least of your worries, in my experience.  The kernel can prempt you
 at any time to deal with interrupts, etc.

You can do with sub-ms jitter on a decent Linux kernel. We performed a
tons of experiments with our VoIP media processing code (sipXmediaLib)
to make sure our processing is real-time.

-- 
Regards,
Alexander Chemeris.

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Marcus D. Leech

Is there information about what is the biggest latency-injector in GnuRadio?

Nearly all of the basic computational blocks are as blazing-fast as they 
can be on a general-purpose
  CPU.  The biggest latency injector is the scheduler in general, and 
the buffer management part of
  that scheduler in particular.  The Gnu Radio architecture is 
optimized for throughput, not latency, which
  means *BIG* ring-buffers between blocks, and a complicated mechanism 
for calculating the shape of

  those ring buffers.

Scheduling across multiple threads is *great* for throughput, to be 
sure, but it complicates optimization in

  other directions.  This is not an easy problem to solve.

 the protocol syntax.


That's what I try to do right now - evaluate whether GnuRadio can
perform well enough in general :)

I probably spent too much time developing VoIP media processing where
you can hear every non-realtimness with your ears. But RF processing
should be no less real-time, imho.

It depends very much on the type of RF processing you're doing.  Gnu 
Radio is used for a *large* number of different applications--some of
  those applications are a more-awkward fit, and some fit really well. 
 RF signal processing doesn't have a single set of universal 
constraints that
  everyone can agree on are vital.  Even among different types of 
telecom applications, there isn't general agreement--some have
  quite-sloppy requirements for latency, while others have very tight 
requirements for latency.


For my use of Gnu Radio, I care very much about overall throughput-type 
performance, and reliability of the data.  I dont' have a stimulus
  response type of model that needs to respond on timescales of a few 
sample times.  But others have much-tighter requirements.  I don't
  need to know in real-time, for example, that the ionosphere has 
changed reflectivity by 1%--I'm perfectly happy to find out about that
  up to several seconds after it's happened :-)  In my science 
application that does active RFI-excision, it needs to respond on very lazy
  timescales, since one spends perhaps several days building up an RFI 
map (and the corresponding notch filter coefficients) before

  commencing real science.

But there have certainly been plenty of other folks on this list trying 
to get a good feel for the shape of the real-timeness of Gnu Radio,
  and whether it would be suitable out of the box for their 
application.  All I can suggest is to try some experiments on various host

  hardware, with the latest code, and see where it takes you.


--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org



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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Almohanad Fayez

 

 I thought the 1 thread execution scheduler was deprecated in gnuradio?


 

 al fayez


-Original Message-
From: Michael Dickens m...@alum.mit.edu
To: Alexander Chemeris alexander.cheme...@gmail.com
Cc: Gnuradio-discuss discuss-gnuradio@gnu.org
Sent: Sat, May 28, 2011 11:38 am
Subject: Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?


On May 28, 2011, at 11:26 AM, Alexander Chemeris wrote:
 5) How well is GnuRadio suited for real-time operation?

In a general sense, yes, GNU Radio is well suited for real-time signal 
processing of data streams.  That said: Real time is only meaningful knowing 
the performance criteria.  What sort of performance do you require processing 
for?

 5.1) Specifically - is memory allocated from heap with malloc() or it
 supports non-blocking memory pools?

IIRC (Tom? Eric?): GNU Radio uses the standard C++ new command for most 
memory 
allocations -- and thus it is memory from the heap.  One can always overload 
this method globally or locally if required, to provide memory from pools or 
other means.

 5.2) Can the whole flowgraph be executed from a single thread to
 minimize cross-thread communication overhead (and jitter)?

Yes.  Your choices are a single thread for all or 1 thread per block. - MLD


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

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-28 Thread Marcus D. Leech


 I thought the 1 thread execution scheduler was deprecated in gnuradio?

 al fayez

You may still turn it off, but the TPB scheduling policy is now the default.



-- 
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-27 Thread Jeff Brower
Marcus-

 Alexander is asking excellent questions and I'm surprised at the tepid
 response -- he's got like 4 replies so far? He's the prototype GNU
 radio user who needs to maintain his group's IP, he should be
 receiving how to's, not INALs. -Jeff
 Actually, IANAL is a perfectly-valid response.  IP licensing
 arrangements are complicated and studded with sinkholes and minefields.

 I've avoided the issue (I hope!) in my proprietary stuff that uses Gnu
 Radio by doing two things:

   o minimizing the stuff that I do inside the flow-graph if I can
 conveniently do it outside
   o speaking to the flowgraph via named pipes and moving the
 proprietary and user-goop into non Gnu Radio compiled
  code.

 This is probably the safest thing that somebody who isn't a lawyer can
 do without consulting an (expensive) IPR lawyer.

I agree this is a good approach with clear intent.  Especially if you can show 
things would work the same way if the
pipes connected over Ethernet to another server that did not have GNU radio 
installed.

Maybe if GRC had some blocks for this purpose...

-Jeff


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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-27 Thread Colby Boyer
On Fri, May 27, 2011 at 2:31 PM, Jeff Brower jbro...@signalogic.com wrote:
 Marcus-

 Alexander is asking excellent questions and I'm surprised at the tepid
 response -- he's got like 4 replies so far? He's the prototype GNU
 radio user who needs to maintain his group's IP, he should be
 receiving how to's, not INALs. -Jeff
 Actually, IANAL is a perfectly-valid response.  IP licensing
 arrangements are complicated and studded with sinkholes and minefields.

 I've avoided the issue (I hope!) in my proprietary stuff that uses Gnu
 Radio by doing two things:

       o minimizing the stuff that I do inside the flow-graph if I can
 conveniently do it outside
       o speaking to the flowgraph via named pipes and moving the
 proprietary and user-goop into non Gnu Radio compiled
          code.

 This is probably the safest thing that somebody who isn't a lawyer can
 do without consulting an (expensive) IPR lawyer.

 I agree this is a good approach with clear intent.  Especially if you can 
 show things would work the same way if the
 pipes connected over Ethernet to another server that did not have GNU radio 
 installed.

 Maybe if GRC had some blocks for this purpose...

 -Jeff


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


How do the companies write closed-source drivers for the Linux Kernel
without running into GPL2 issues? I can only recall that there is a
user-land and a kernel-land driver, where the kernel-land is the
only part that is open source. Is this correct?

Perhaps that method could work well?

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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-27 Thread Marcus D. Leech

How do the companies write closed-source drivers for the Linux Kernel
without running into GPL2 issues? I can only recall that there is a
user-land and a kernel-land driver, where the kernel-land is the
only part that is open source. Is this correct?

Perhaps that method could work well?


I thought GPLV2 was less onerous in this regard, and that case-law had 
established that a loadable kernel driver didn't necessarily get

  infected by the GPL virus.  IANAL.  TINLA.  Etc.

The last kernel driver I worked on we were planning to open-source as a 
way of encouraging people to buy  our (very closed-source!) chips.

  Project fell apart before we hit market.  Sigh.

--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org



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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-27 Thread Colby Boyer
Isn't the main difference between v2 and v3 the Tivo Exception as
the call it? Not sure.

I guess I should add  IANAL.  TINLA.

:P

On Fri, May 27, 2011 at 3:32 PM, Marcus D. Leech mle...@ripnet.com wrote:
 How do the companies write closed-source drivers for the Linux Kernel
 without running into GPL2 issues? I can only recall that there is a
 user-land and a kernel-land driver, where the kernel-land is the
 only part that is open source. Is this correct?

 Perhaps that method could work well?


 I thought GPLV2 was less onerous in this regard, and that case-law had
 established that a loadable kernel driver didn't necessarily get
  infected by the GPL virus.  IANAL.  TINLA.  Etc.

 The last kernel driver I worked on we were planning to open-source as a way
 of encouraging people to buy  our (very closed-source!) chips.
  Project fell apart before we hit market.  Sigh.

 --
 Marcus Leech
 Principal Investigator
 Shirleys Bay Radio Astronomy Consortium
 http://www.sbrac.org




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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-27 Thread Jeff Brower
Colby-

 How do the companies write closed-source drivers for the Linux Kernel
 without running into GPL2 issues? I can only recall that there is a
 user-land and a kernel-land driver, where the kernel-land is the
 only part that is open source. Is this correct?

 Perhaps that method could work well?

You can find many opinions either way.  But as you mention, the reality on the 
ground is that commercial outfits
often distribute binary-only versions of libraries and drivers, whether the 
license they're under actually permits
that or not.  Their argument that providing driver source would disclose 
proprietary information about their hardware
is difficult to refute.  Nvidia is one example.

I continue to think future legal rulings will invoke interoperability to 
clarify this.  Numerous people want to
interoperate with Linux and still maintain their sauce as secret.  Building 
cards that insert into servers is one
obvious example.  A smaller group of people want to interoperate similarly with 
GNU radio.  Yes there are no lawyers
posting here, but my point is these users should be supported in some formal, 
encouraged way.

-Jeff

 I thought GPLV2 was less onerous in this regard, and that case-law had
 established that a loadable kernel driver didn't necessarily get
infected by the GPL virus.  IANAL.  TINLA.  Etc.

 The last kernel driver I worked on we were planning to open-source as a
 way of encouraging people to buy  our (very closed-source!) chips.
Project fell apart before we hit market.  Sigh.



 --
 Marcus Leech
 Principal Investigator
 Shirleys Bay Radio Astronomy Consortium
 http://www.sbrac.org


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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-26 Thread Marcus D. Leech

On 26/05/2011 9:55 AM, Michael Dickens wrote:


It would be great if you could share with the list example code snippets of how 
you do the pipes.  For example: Where in an online repository one can find such 
code.

I think that's what Jeff was getting at: that we are providing IANAL advice rather than 
code examples.  I, for one, have never actually tried the pipes -- I've just heard that they are 
possible and that using them does not form a greater work in the GPL sense. - MLD


___
Actually, my SIDSuite code uses this a little bit, in that data 
recording is handled outside of Gnu Radio.  The basic idea is that there's
  a shell script that sets up the environment (creates the FIFO files, 
starts the external programs in the background, etc), then the
  Gnu Radio flow-graph is called.  The flow-graphs just use File 
Source and File Sink with buffering turned off--as far as Gnu Radio
  is concerned, it's writing to a file, but in fact, it's a FIFO file 
or named pipe.


See:

http://www.sbrac.org/files/sidsuite.tar.gz

It doesn't do it as much as other code that I've written, but it gives 
one a flavour for how the pipes are used.


The other trick that I use is to use the XMLRPC server stuff that Josh 
put in GRC--it allows you to set flowgraph variables from an

  outside program, which is really great!




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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-25 Thread Michael Dickens
Hi Alexander - I think Martin  Tom covered that GNU Radio is quite capable of 
being programmed for the basic receiver processing.  You might need to play 
around a bit with your DSP blocks, but otherwise I think GNU Radio's data 
processing is up to the task.

On May 23, 2011, at 3:50 PM, Alexander Chemeris wrote:
 3) Right now all our code is open-source, but we must leave an option
 for proprietary plugins. How can we make this possible?
 
 4) Related to (3) - how can we make sure our protocol stack can be
 embedded into a closed-source application/system?

IANAL and TINAL.  I think, as has been said, you'll really want to consult a 
lawyer to figure out how to best meet your needs.

GNU Radio is licensed solely under the GPLv3, which is written with the intent 
that -anything directly- using source or binary becomes part of a greater 
work and hence would also fall under this or an equivalent license (e.g., if 
used in a sold product).  In the case of GNU Radio, that means any C++ code 
that links with GNU Radio's libraries, or Python script that makes use of GNU 
Radio's Python / SWIG files / libraries.  To the best of my knowledge, because 
GNU Radio is not dual-licensed, neither can greater works derived from it.  
Ettus' UHD code is (will be?) an example of a dual license (GPL for the primary 
source, or some other license allowing you to do closed source for your needs 
when you pay to license the code from Ettus);  Qt tries to do this dual-license 
as well -- I don't know how well they succeed, but they do try.

IMHO, you have 3 primary choices for keeping your code closed source:

(0) Do not use GNU Radio; use some other project that has a less restrictive 
license.

(1) Do not distribute a product or service that uses the code: Nobody will care 
how you license your code so long as you / your company does not sell or 
distribute your product -- e.g., if you use it just in house for testing and 
evaluation, then you can license it however you want.  However, I doubt that 
this is what you're looking for: why develop such a product, but not sell or 
distribute it?  That brings us to:

(2) Make sure your code does not -directly- rely on GNU Radio's headers, Python 
scripts, or compiled libraries: Use currently available GNU Radio blocks as 
much as you can (or, those written and released by others), and then create a 
pipe or socket connection to your specific code.  Because your code does not 
rely -directly- on GNU Radio's codebase / libraries, it forms an independent 
work  thus you can license it as you choose.  That said, this method is 
certainly a nuisance and, depending what blocks are available versus what you 
need, it might also be impractical (never impossible :).

I don't know of another way to look at this issue -- maybe someone on this list 
is more enlightened?

That said: Unless you feel strongly that your work truly needs to be 
proprietary, then why not just create a project on the CGRAN or your preferred 
area (e.g., github)  make your work public -- it will benefit many others in 
the SDR / DSP world (and, likely, beyond).

Good luck, and please do keep the list informed on your project -- it sounds 
quite interesting! - MLD


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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-25 Thread Jeff Brower
Michael-

 Hi Alexander - I think Martin  Tom covered that GNU Radio
 is quite capable of being programmed for the basic receiver
 processing.  You might need to play around a bit with your
 DSP blocks, but otherwise I think GNU Radio's data
 processing is up to the task.

 On May 23, 2011, at 3:50 PM, Alexander Chemeris wrote:
 3) Right now all our code is open-source, but we must
 leave an option
 for proprietary plugins. How can we make this possible?

 4) Related to (3) - how can we make sure our protocol
 stack can be
 embedded into a closed-source application/system?

 IANAL and TINAL.  I think, as has been said, you'll
 really want to consult a lawyer to figure out how to
 best meet your needs.

 GNU Radio is licensed solely under the GPLv3, which is
 written with the intent that -anything directly- using
 source or binary becomes part of a greater work and
 hence would also fall under this or an equivalent
 license (e.g., if used in a sold product).  In the
 case of GNU Radio, that means any C++ code that links
 with GNU Radio's libraries, or Python script that
 makes use of GNU Radio's Python / SWIG files /
 libraries.  To the best of my knowledge, because GNU
 Radio is not dual-licensed, neither can greater
 works derived from it.  Ettus' UHD code is (will be?)
 an example of a dual license (GPL for the primary
 source, or some other license allowing you to do
 closed source for your needs when
 you pay to license the code from Ettus);  Qt tries
 to do this dual-license as well -- I don't know how
 well they succeed, but they do try.

 IMHO, you have 3 primary choices for keeping your code
 closed source:

 (0) Do not use GNU Radio; use some other project that
 has a less restrictive license.

 (1) Do not distribute a product or service that uses
 the code: Nobody will care how you license your code
 so long as you / your company does not sell or
 distribute your product -- e.g., if you use it just
 in house for testing and evaluation, then you can
 license it however you want.  However, I doubt that
 this is what you're looking for: why develop such
 a product, but not sell or distribute it?  That
 brings us to:

 (2) Make sure your code does not -directly- rely on
 GNU Radio's headers, Python scripts, or compiled
 libraries: Use currently available GNU Radio blocks
 as much as you can (or, those written and released
 by others), and then create a pipe or socket
 connection to your specific code.  Because your
 code does not rely -directly- on GNU Radio's
 codebase / libraries, it forms an independent work
  thus you can license it as you choose.  That said,
 this method is certainly a nuisance and, depending
 what blocks are available versus what you need, it
 might also be impractical (never impossible :).

This is where I think licensing discussions tend to go off track.  Legal 
precedents have clearly established
requirements for interoperability.  In that context, the key point is not what 
code links to, but where it resides
and what shape it takes.  Linking based arguments are fuzzy and argued ad 
infinitum until at least one such case
reaches the Supreme Court -- not likely any time soon.  If code resides across 
a network, across a bus (i.e. on a PCIe
card inside the GNU radio host server), or some other clearly non-GNU radio 
location then interoperability becomes the
metric.  It doesn't matter what header files or libraries (or whether the 
libraries are static or shared object, etc)
were used to create an interface to the code that is physically separate  -- in 
that case, the code is clearly out of
the scope of the license.

I've mentioned on the forum before the need for ways to insert proprietary code 
within the GNU radio framework, as
have others.  For example, is it possible for GNU radio users to insert code 
blocks into the FPGA data flow, for
instance if FPGA Verilog code contained user defined stubs or simple 
reference examples to serve as a starting
point?  Could an Nvidia accelerator be used?  To me, it's a matter of 
imagination, creativity, and persistence -- if
GNU radio developers believe in the need for proprietary IP within their 
framework, then it can be done.  So far,
evidently, they don't believe.

Alexander is asking excellent questions and I'm surprised at the tepid response 
-- he's got like 4 replies so far? 
He's the prototype GNU radio user who needs to maintain his group's IP, he 
should be receiving how to's, not
INALs.

-Jeff

 I don't know of another way to look at this issue -- maybe someone on this 
 list is more enlightened?

 That said: Unless you feel strongly that your work truly needs to be 
 proprietary, then why not just create a project
 on the CGRAN or your preferred area (e.g., github)  make your work public -- 
 it will benefit many others in the SDR /
 DSP world (and, likely, beyond).

 Good luck, and please do keep the list informed on your project -- it sounds 
 quite interesting! - MLD



Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-25 Thread Marcus D. Leech
Alexander is asking excellent questions and I'm surprised at the tepid 
response -- he's got like 4 replies so far? He's the prototype GNU 
radio user who needs to maintain his group's IP, he should be 
receiving how to's, not INALs. -Jeff
Actually, IANAL is a perfectly-valid response.  IP licensing 
arrangements are complicated and studded with sinkholes and minefields.


I've avoided the issue (I hope!) in my proprietary stuff that uses Gnu 
Radio by doing two things:


 o minimizing the stuff that I do inside the flow-graph if I can 
conveniently do it outside
 o speaking to the flowgraph via named pipes and moving the 
proprietary and user-goop into non Gnu Radio compiled

code.

This is probably the safest thing that somebody who isn't a lawyer can 
do without consulting an (expensive) IPR lawyer.


--
Marcus Leech
Principal Investigator
Shirleys Bay Radio Astronomy Consortium
http://www.sbrac.org



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


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-24 Thread Martin Braun
On Mon, May 23, 2011 at 11:50:52PM +0400, Alexander Chemeris wrote:
 Hi community,

Hi Alex,
 
 Our WiMAX Scanner project (http://code.google.com/p/wimax-scanner/)
 approaches the moment when we should start writing C/C++ code - our
 Matlab model decodes broadcast messages from all recordings we have on
 hands.

That's great. I think GNU Radio would benefit from having big, cool
projects.
Here's my thoughts and experiences:

 At this point we have to make a choice - rely on GnuRadio or create
 our own framework. Until recently I was sure would create our own
 framework, but recent discussions on this list made me think GnuRadio
 may be an option. So, I'm looking for the community help with the the
 following questions:
 
 1) How well is GnuRadio suited for packet data processing? WiMAX is
 essentially a packet-oriented system.

What you're writing is receiver-only, right? In that case, GNU Radio
will be able to handle all your data just fine. It gets tricky when you
have a transceiver with timing-sensitive operations, but it seems your
project would work well. GNU Radio is pretty agnostic of the data moved
between blocks.

 2) We don't want to use Python. Is there anything we can't do without
 it? And where can we find examples of C++-only flowgraphs?

There are some examples in gnuradio-examples/c++. It's really not that
hard, and I've done some C++-only projects with great success.

However, let me ask why you don't want to use Python. Is it because you
want a final product that works without Python, or do you have a real
'allergy'?
Because I recommend that *even* for a C++-only project, you still use
Python for unit tests. Also, this gives you the opportunity to quickly
click together tests using GRC. This will make development a *lot*
easier.
Side note: Porting from Matlab to Python is much simpler than going from
Matlab to C++ (for porting your unit tests).

 3) Right now all our code is open-source, but we must leave an option
 for proprietary plugins. How can we make this possible?
 
 4) Related to (3) - how can we make sure our protocol stack can be
 embedded into a closed-source application/system?

IANAL, TINLA. I'm guessing your best bet would be to separate the
actual DSP code from the GNU Radio bindings and have very lean GNU Radio
blocks (being GPL) which only call your module. Still, I don't know how
or if you may link code across licenses. 
You will have to get legal help here, I would not rely on anything said
on this list.

Good luck with your project!

MB

-- 
Karlsruhe Institute of Technology (KIT)
Communications Engineering Lab (CEL)

Dipl.-Ing. Martin Braun
Research Associate

Kaiserstraße 12
Building 05.01
76131 Karlsruhe

Phone: +49 721 608-43790
Fax: +49 721 608-46071
www.cel.kit.edu

KIT -- University of the State of Baden-Württemberg and
National Laboratory of the Helmholtz Association



pgpGqd3gIeZ4h.pgp
Description: PGP signature
___
Discuss-gnuradio mailing list
Discuss-gnuradio@gnu.org
https://lists.gnu.org/mailman/listinfo/discuss-gnuradio


Re: [Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-24 Thread Tom Rondeau
On Tue, May 24, 2011 at 7:04 AM, Martin Braun martin.br...@kit.edu wrote:

 On Mon, May 23, 2011 at 11:50:52PM +0400, Alexander Chemeris wrote:
  Hi community,

 Hi Alex,

  Our WiMAX Scanner project (http://code.google.com/p/wimax-scanner/)
  approaches the moment when we should start writing C/C++ code - our
  Matlab model decodes broadcast messages from all recordings we have on
  hands.

 That's great. I think GNU Radio would benefit from having big, cool
 projects.
 Here's my thoughts and experiences:

  At this point we have to make a choice - rely on GnuRadio or create
  our own framework. Until recently I was sure would create our own
  framework, but recent discussions on this list made me think GnuRadio
  may be an option. So, I'm looking for the community help with the the
  following questions:
 
  1) How well is GnuRadio suited for packet data processing? WiMAX is
  essentially a packet-oriented system.

 What you're writing is receiver-only, right? In that case, GNU Radio
 will be able to handle all your data just fine. It gets tricky when you
 have a transceiver with timing-sensitive operations, but it seems your
 project would work well. GNU Radio is pretty agnostic of the data moved
 between blocks.



I know I might be slightly biased here, but, yes, I think you'd be fine
handling the receiver code in GNU Radio. You are going to have to work a bit
on the receiver side packet handling, though, because I know WiMax has the
concept of the downlink map that you have to properly separate. I'd look
into the stream tagging infrastructure that we have now to handling passing
around the necessary information.



  2) We don't want to use Python. Is there anything we can't do without
  it? And where can we find examples of C++-only flowgraphs?

 There are some examples in gnuradio-examples/c++. It's really not that
 hard, and I've done some C++-only projects with great success.

 However, let me ask why you don't want to use Python. Is it because you
 want a final product that works without Python, or do you have a real
 'allergy'?
 Because I recommend that *even* for a C++-only project, you still use
 Python for unit tests. Also, this gives you the opportunity to quickly
 click together tests using GRC. This will make development a *lot*
 easier.
 Side note: Porting from Matlab to Python is much simpler than going from
 Matlab to C++ (for porting your unit tests).


What Martin said. C++ is definitely doable, but you might want to start in
Python, anyway. I've done a handful of C++-based flowgraphs, and it's
relatively trivial to take a flowgraph in Python and convert it to C++, as
long as you recognize anything that you did that is Pythonic in nature.

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


[Discuss-gnuradio] To implement WiMAX with GnuRadio or not?

2011-05-23 Thread Alexander Chemeris
Hi community,

Our WiMAX Scanner project (http://code.google.com/p/wimax-scanner/)
approaches the moment when we should start writing C/C++ code - our
Matlab model decodes broadcast messages from all recordings we have on
hands.

At this point we have to make a choice - rely on GnuRadio or create
our own framework. Until recently I was sure would create our own
framework, but recent discussions on this list made me think GnuRadio
may be an option. So, I'm looking for the community help with the the
following questions:

1) How well is GnuRadio suited for packet data processing? WiMAX is
essentially a packet-oriented system.

2) We don't want to use Python. Is there anything we can't do without
it? And where can we find examples of C++-only flowgraphs?

3) Right now all our code is open-source, but we must leave an option
for proprietary plugins. How can we make this possible?

4) Related to (3) - how can we make sure our protocol stack can be
embedded into a closed-source application/system?


PS I have heavy travel schedule these days and a lot of other duties,
so please excuse me is I respond slow.

-- 
Regards,
Alexander Chemeris.

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