[Ns-developers] GSL for ns-3

Tom Henderson tomh at tomh.org
Thu May 28 11:12:37 PDT 2009


>-----Original Message-----
>From: Pei, Guangyu [mailto:Guangyu.Pei at boeing.com]
>Sent: Thursday, May 28, 2009 08:01 AM
>To: 'ns-developers'
>Subject: [Ns-developers] Code review request for 802.11b physical model
>
>Hi, 
>
>I would like to ask for review of the 802.11b physical model. The
>repository is located at: http://code.nsnam.org/pei/ns-3-80211b/. 
>
>This tree implements the following: 1) 4 data modes of 802.11b; 2) a
>channel model with fixed receiving signal strength.
>This model also makes use of GNU Scientific Library as an optional
>component to provide accurate symbol error rate calculations for CCK
>modes based on theoretical work from M. Pursley and T. Royster.

One issue that Gary's model raises is whether we ought to make GNU Scientific Library (GSL) a mandatory ns-3 library.  Craig's random variable validation code (not yet in the main tree) also makes use of GSL, and it probably would be a nice resource to have around for various computations.

To date, we've avoided introducing third-party library requirements on ns-3.  Adding GSL probably depends on how readily available it is on our supported platforms.  It seems to be easily available and packaged on Linux, other Unix variants (BSD), and Cygwin for Windows, but I don't have first hand experience with those other systems. 

If GSL remains optional, for the 802.11b model, since Gary's GSL code (the 5.5 and 11 Mb/s 802.11b models) is interleaved with other non-gsl code, there seem to be two options:

1) use the preprocessor to conditionally compile a GSL and non-GSL model for the 802.11b models involved  <- This is the option implemented in Gary's current patch

2) refactor the Wifi error model source files and use the build system to just conditionally select the right source file depending on whether GSL is enabled (in the same manner that, for instance, GTK-related code is compiled)

As a matter of policy, we could also choose to use a lower fidelity model when GSL is not there, or cause a program termination if the user tried to use the 5.5 or 11 Mb/s models without GSL.  We adopted the first choice with a lower fidelity model, and added a NS_LOG_WARN () statement to that effect.

Any support for or against including GSL as a required ns-3 prerequisite?

Tom





More information about the Ns-developers mailing list