Hi all,
As this is my first interaction with the NS community, allow me start by
briefly introducing myself. My name is Lawrence and I'm working on
wrapping up my PhD which is focused on datacenter congestion control.
There's more about me at [1].
I've almost completed a from-scratch port of FreeBSD 9's network stack
into the NSC (currently TCP only). I'll be using it with NS3 to run some
simulations which will complement the work I'm doing with my physical
FreeBSD testbed. I hope to share my NSC work at some point, and I've
been in touch with Sam who is aware of what I'm up to.
I've been lurking on both the users and developers lists for a little
while, and have an initial contribution to make which is attached. In
short, two of the lte model sources conditionally define the log2()
function when compiled on FreeBSD, which is no longer necessary on newer
FreeBSD versions and breaks the build.
I haven't extensively checked the __FreeBSD_version numbers in the patch
(which I snarfed as is from another FreeBSD port which had a similar
problem with redefining log2()), but I have no reason to believe they're
wrong and the patch fixes the build for me on my FreeBSD 9.0-STABLE
desktop built from FreeBSD svn r237942 sources.
I'm committing all my work across NSC and NS3 to private Mercurial
repositories which shadow the main NSC and NS3 repositories. I should
state up front that time is very scarce for me at the moment, so while
I'll try to share what I can as I go, and engage in improving my
contributions if feedback is given, I may be very slow to react or
postpone acting until the thesis is out the door.
Cheers,
Lawrence
http://caia.swin.edu.au/[1]
http://caia.swin.edu.au/cv/lstewart/# HG changeset patch
# User lstewart
# Date 1341477248 -36000
# Branch lstewart-freebsd
# Node ID 44484512ad282fd06727681d4d53459154944a12
# Parent f43017db07ecc58d9c0e4609533ed687df36cafd
FreeBSD svn r216211 added log2() in what was 9-CURRENT at the time. It was then
merged to 8-STABLE as r219323 and 7-STABLE as r226457. Catch up with this change
by tightening the conditions under which log2() is redefined in some NS3 lte
sources. This allows NS3 to build on FreeBSD systems which either do or do
not have log2() defined in math.h.
diff -r f43017db07ec -r 44484512ad28 src/lte/model/pf-ff-mac-scheduler.cc
--- a/src/lte/model/pf-ff-mac-scheduler.cc Mon Jun 25 11:52:17 2012 -0700
+++ b/src/lte/model/pf-ff-mac-scheduler.cc Thu Jul 05 18:34:08 2012 +1000
@@ -19,7 +19,14 @@
*/
#ifdef __FreeBSD__
+#include <sys/param.h>
+
+#if __FreeBSD_version <= 704101 || \
+ (__FreeBSD_version >= 800000 && __FreeBSD_version < 802502) || \
+ (__FreeBSD_version >= 900000 && __FreeBSD_version < 900027)
#define log2(x) (log(x) / M_LN2)
+#endif
+
#endif /* __FreeBSD__ */
#include <ns3/log.h>
diff -r f43017db07ec -r 44484512ad28 src/lte/model/rr-ff-mac-scheduler.cc
--- a/src/lte/model/rr-ff-mac-scheduler.cc Mon Jun 25 11:52:17 2012 -0700
+++ b/src/lte/model/rr-ff-mac-scheduler.cc Thu Jul 05 18:34:08 2012 +1000
@@ -19,7 +19,14 @@
*/
#ifdef __FreeBSD__
+#include <sys/param.h>
+
+#if __FreeBSD_version <= 704101 || \
+ (__FreeBSD_version >= 800000 && __FreeBSD_version < 802502) || \
+ (__FreeBSD_version >= 900000 && __FreeBSD_version < 900027)
#define log2(x) (log(x) / M_LN2)
+#endif
+
#endif /* __FreeBSD__ */
#include <ns3/log.h>