--- a/120410-dce-umip-support.patch Wed Apr 11 11:21:19 2012 +0900
+++ b/120410-dce-umip-support.patch Wed Apr 11 12:41:12 2012 +0900
@@ -1,8 +1,8 @@
support umip(mip6d) with ns-3-linux for NEMO/MIP6
-diff -r e503e546d382 model/dce-fd.cc
---- a/model/dce-fd.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/dce-fd.cc Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/dce-fd.cc
+--- a/model/dce-fd.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/model/dce-fd.cc Wed Apr 11 12:38:04 2012 +0900
@@ -367,11 +367,30 @@
}
@@ -34,9 +34,9 @@
int dce_bind (int fd, const struct sockaddr *my_addr, socklen_t addrlen)
{
Thread *current = Current ();
-diff -r e503e546d382 model/dce-manager.cc
---- a/model/dce-manager.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/dce-manager.cc Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/dce-manager.cc
+--- a/model/dce-manager.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/model/dce-manager.cc Wed Apr 11 12:38:04 2012 +0900
@@ -1096,6 +1096,22 @@
libpthread_setup = (void (*)(const struct Libc *))(symbol);
libpthread_setup (libc);
@@ -60,9 +60,9 @@
// finally, call into 'main'.
h = ld->Load (filename, RTLD_GLOBAL);
-diff -r e503e546d382 model/dce-poll.cc
---- a/model/dce-poll.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/dce-poll.cc Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/dce-poll.cc
+--- a/model/dce-poll.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/model/dce-poll.cc Wed Apr 11 12:38:04 2012 +0900
@@ -180,7 +180,12 @@
}
}
@@ -77,9 +77,9 @@
{
current->err = EINVAL;
return -1;
-diff -r e503e546d382 model/dce-signal.cc
---- a/model/dce-signal.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/dce-signal.cc Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/dce-signal.cc
+--- a/model/dce-signal.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/model/dce-signal.cc Wed Apr 11 12:38:04 2012 +0900
@@ -3,6 +3,7 @@
#include "process.h"
#include "ns3/log.h"
@@ -88,7 +88,7 @@
#include <vector>
#include <errno.h>
-@@ -98,6 +99,18 @@
+@@ -98,6 +99,17 @@
return 0;
}
@@ -96,7 +96,6 @@
+int dce_sigwait (const sigset_t *set, int *sig)
+{
+ int ret = 0;
-+ // current->process->signalHandlers.push_back (handler);
+
+ Waiter waiter;
+ waiter.SetTimeout (Seconds (0.0));
@@ -107,9 +106,9 @@
int dce_sigprocmask(int how, const sigset_t *set, sigset_t *oldset)
{
Thread *current = Current ();
-diff -r e503e546d382 model/dce-signal.h
---- a/model/dce-signal.h Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/dce-signal.h Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/dce-signal.h
+--- a/model/dce-signal.h Wed Apr 11 10:56:47 2012 +0900
++++ b/model/dce-signal.h Wed Apr 11 12:38:04 2012 +0900
@@ -17,6 +17,7 @@
int dce_pthread_kill (pthread_t thread, int sig);
void dce_abort ();
@@ -118,9 +117,9 @@
#ifdef __cplusplus
}
-diff -r e503e546d382 model/dce-time.cc
---- a/model/dce-time.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/dce-time.cc Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/dce-time.cc
+--- a/model/dce-time.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/model/dce-time.cc Wed Apr 11 12:38:04 2012 +0900
@@ -54,3 +54,12 @@
return asctime_r (tm, Current ()->process->asctime_result);
@@ -134,9 +133,9 @@
+ *tp = UtilsTimeToTimespec (UtilsSimulationTimeToTime (Now ()));
+ return 0;
+}
-diff -r e503e546d382 model/dce-time.h
---- a/model/dce-time.h Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/dce-time.h Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/dce-time.h
+--- a/model/dce-time.h Wed Apr 11 10:56:47 2012 +0900
++++ b/model/dce-time.h Wed Apr 11 12:38:04 2012 +0900
@@ -3,6 +3,7 @@
#include "sys/dce-time.h"
@@ -154,9 +153,9 @@
#ifdef __cplusplus
}
-diff -r e503e546d382 model/dce.cc
---- a/model/dce.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/dce.cc Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/dce.cc
+--- a/model/dce.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/model/dce.cc Wed Apr 11 12:38:04 2012 +0900
@@ -22,6 +22,8 @@
#include <getopt.h>
#include <limits.h>
@@ -266,9 +265,9 @@
#ifdef HAVE_GETCPUFEATURES
extern "C"
{
-diff -r e503e546d382 model/elf-cache.cc
---- a/model/elf-cache.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/elf-cache.cc Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/elf-cache.cc
+--- a/model/elf-cache.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/model/elf-cache.cc Wed Apr 11 12:38:04 2012 +0900
@@ -26,6 +26,9 @@
overriden.from = "libpthread.so.0";
overriden.to = "libpthread-ns3.so";
@@ -279,20 +278,9 @@
}
std::string
-diff -r e503e546d382 model/libc-dce.cc
---- a/model/libc-dce.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/libc-dce.cc Wed Apr 11 09:28:15 2012 +0900
-@@ -52,6 +52,7 @@
- #include <netdb.h>
- #include <net/if.h>
- #include <netinet/in.h>
-+#include <netinet/ether.h>
- #include <poll.h>
- #include <semaphore.h>
- #include <signal.h>
-diff -r e503e546d382 model/libc-ns3.h
---- a/model/libc-ns3.h Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/libc-ns3.h Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/libc-ns3.h
+--- a/model/libc-ns3.h Wed Apr 11 10:56:47 2012 +0900
++++ b/model/libc-ns3.h Wed Apr 11 12:38:04 2012 +0900
@@ -73,6 +73,7 @@
NATIVE (ntohl)
NATIVE (ntohs)
@@ -367,17 +355,17 @@
// setjmp.h
NATIVE (__sigsetjmp)
-diff -r e503e546d382 model/librt-ns3.version
+diff -r 61ddc5520f14 model/librt-ns3.version
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ b/model/librt-ns3.version Wed Apr 11 09:28:15 2012 +0900
++++ b/model/librt-ns3.version Wed Apr 11 12:38:04 2012 +0900
@@ -0,0 +1,4 @@
+NS3 {
+global:
+ librt_setup;
+};
-diff -r e503e546d382 model/linux-socket-fd-factory.cc
---- a/model/linux-socket-fd-factory.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/linux-socket-fd-factory.cc Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/linux-socket-fd-factory.cc
+--- a/model/linux-socket-fd-factory.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/model/linux-socket-fd-factory.cc Wed Apr 11 12:38:04 2012 +0900
@@ -464,6 +464,7 @@
void
LinuxSocketFdFactory::SetTask (std::string path, std::string value)
@@ -394,20 +382,9 @@
while (!m_earlySysfs.empty ())
{
-diff -r e503e546d382 model/linux-socket-fd.cc
---- a/model/linux-socket-fd.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/linux-socket-fd.cc Wed Apr 11 09:28:15 2012 +0900
-@@ -177,6 +177,7 @@
- return 0;
- break;
- default:
-+ return 0;
- //XXX commands missing
- NS_FATAL_ERROR ("fcntl not implemented on socket");
- return -1;
-diff -r e503e546d382 model/net/dce-if.h
---- a/model/net/dce-if.h Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/net/dce-if.h Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/net/dce-if.h
+--- a/model/net/dce-if.h Wed Apr 11 10:56:47 2012 +0900
++++ b/model/net/dce-if.h Wed Apr 11 12:38:04 2012 +0900
@@ -7,6 +7,7 @@
#endif
@@ -416,22 +393,20 @@
#ifdef __cplusplus
-diff -r e503e546d382 model/ns3-socket-fd-factory.cc
---- a/model/ns3-socket-fd-factory.cc Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/ns3-socket-fd-factory.cc Wed Apr 11 09:28:15 2012 +0900
-@@ -142,7 +142,8 @@
- }
+diff -r 61ddc5520f14 model/ns3-socket-fd-factory.cc
+--- a/model/ns3-socket-fd-factory.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/model/ns3-socket-fd-factory.cc Wed Apr 11 12:38:04 2012 +0900
+@@ -143,6 +143,7 @@
else
{
-- NS_FATAL_ERROR ("unsupported domain");
-+ // NS_FATAL_ERROR ("unsupported domain");
+ NS_FATAL_ERROR ("unsupported domain");
+ return 0;
}
return socket;
-diff -r e503e546d382 model/sys/dce-socket.h
---- a/model/sys/dce-socket.h Mon Apr 09 10:03:33 2012 +0900
-+++ b/model/sys/dce-socket.h Wed Apr 11 09:28:15 2012 +0900
+diff -r 61ddc5520f14 model/sys/dce-socket.h
+--- a/model/sys/dce-socket.h Wed Apr 11 10:56:47 2012 +0900
++++ b/model/sys/dce-socket.h Wed Apr 11 12:38:04 2012 +0900
@@ -28,6 +28,7 @@
ssize_t dce_sendmsg(int s, const struct msghdr *msg, int flags);
int dce_getsockname(int s, struct sockaddr *name, socklen_t *namelen);
@@ -440,18 +415,34 @@
#ifdef __cplusplus
}
-diff -r e503e546d382 wscript
---- a/wscript Mon Apr 09 10:03:33 2012 +0900
-+++ b/wscript Wed Apr 11 09:28:15 2012 +0900
-@@ -26,7 +26,7 @@
- ns3waf.check_modules(conf, ['point-to-point', 'tap-bridge', 'netanim'], mandatory = False)
- ns3waf.check_modules(conf, ['wifi', 'point-to-point', 'csma', 'mobility'], mandatory = False)
- ns3waf.check_modules(conf, ['point-to-point-layout'], mandatory = False)
-- ns3waf.check_modules(conf, ['topology-read', 'applications'], mandatory = False)
-+ ns3waf.check_modules(conf, ['topology-read', 'applications', 'visualizer'], mandatory = False)
- conf.check_tool('compiler_cc')
- conf.check(header_name='stdint.h', define_name='HAVE_STDINT_H', mandatory=False)
- conf.check(header_name='inttypes.h', define_name='HAVE_INTTYPES_H', mandatory=False)
+diff -r 61ddc5520f14 test/test-select.cc
+--- a/test/test-select.cc Wed Apr 11 10:56:47 2012 +0900
++++ b/test/test-select.cc Wed Apr 11 12:38:04 2012 +0900
+@@ -43,9 +43,20 @@
+ struct timeval timeout =
+ { 0, 0 };
+ int nfds = select (timerfd + 1, &fds, NULL, NULL, &timeout);
+- close (timerfd);
+ // no fds must be ready and select() should complete without errors
+ TEST_ASSERT_EQUAL (nfds, 0);
++
++ timeout.tv_sec = 1;
++ timeout.tv_usec = 0;
++ // select(2):
++ // Some code calls select() with all three sets empty, nfds zero, and a
++ // non-NULL timeout as a fairly portable way to sleep with subsecond
++ // precision.
++ nfds = select (0, &fds, NULL, NULL, &timeout);
++ // no fds must be ready and select() should complete without errors
++ TEST_ASSERT_EQUAL (nfds, 0);
++
++ close (timerfd);
+ }
+
+ static bool
+diff -r 61ddc5520f14 wscript
+--- a/wscript Wed Apr 11 10:56:47 2012 +0900
++++ b/wscript Wed Apr 11 12:38:04 2012 +0900
@@ -71,6 +71,17 @@
conf.end_msg(libpthread, True)
conf.env['LIBPTHREAD_FILE'] = libpthread