From af651b44a9802f1aa7db81f06f4ba67305d3ad06 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Fri, 17 Apr 2009 13:45:25 +0200 Subject: [PATCH 1/3] register a correct TypeId --- src/devices/wifi/rraa-wifi-manager.cc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/devices/wifi/rraa-wifi-manager.cc b/src/devices/wifi/rraa-wifi-manager.cc index 85e9a6c0d..93285a4fa 100644 --- a/src/devices/wifi/rraa-wifi-manager.cc +++ b/src/devices/wifi/rraa-wifi-manager.cc @@ -29,6 +29,8 @@ NS_LOG_COMPONENT_DEFINE ("RraaWifiManager"); namespace ns3 { + +NS_OBJECT_ENSURE_REGISTERED(RraaWifiManager); RraaWifiRemoteStation::RraaWifiRemoteStation (Ptr stations) : m_stations (stations) @@ -188,7 +190,7 @@ RraaWifiRemoteStation::ARts (void) TypeId RraaWifiManager::GetTypeId (void) { - static TypeId tid = TypeId ("RraaWifiManager") + static TypeId tid = TypeId ("ns3::RraaWifiManager") .SetParent () .AddConstructor () .AddAttribute ("Basic", From b3507de41fe70930c02ac013480c626ff4497063 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Fri, 17 Apr 2009 14:06:20 +0200 Subject: [PATCH 2/3] output rraa simulation --- examples/wifi-adhoc.cc | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/examples/wifi-adhoc.cc b/examples/wifi-adhoc.cc index f9d73f19a..6f0e0bc54 100644 --- a/examples/wifi-adhoc.cc +++ b/examples/wifi-adhoc.cc @@ -263,6 +263,12 @@ int main (int argc, char *argv[]) dataset = experiment.Run (wifi, wifiPhy, wifiChannel); gnuplot.AddDataset (dataset); + NS_LOG_DEBUG ("rraa"); + experiment = Experiment ("rraa"); + wifi.SetRemoteStationManager ("ns3::RraaWifiManager"); + dataset = experiment.Run (wifi, wifiPhy, wifiChannel); + gnuplot.AddDataset (dataset); + NS_LOG_DEBUG ("ideal"); experiment = Experiment ("ideal"); wifi.SetRemoteStationManager ("ns3::IdealWifiManager"); From eb76ef65e953a1db95d3bfc8521865f551e3ab68 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Fri, 17 Apr 2009 15:22:41 +0200 Subject: [PATCH 3/3] bug 552: build with gcc 4.4 --- src/core/log.h | 1 + src/devices/emu/emu-encode-decode.cc | 1 + src/devices/tap-bridge/tap-creator.cc | 20 ++++++++++++-------- src/devices/tap-bridge/tap-encode-decode.cc | 1 + 4 files changed, 15 insertions(+), 8 deletions(-) diff --git a/src/core/log.h b/src/core/log.h index 4f62eb47e..ef141f351 100644 --- a/src/core/log.h +++ b/src/core/log.h @@ -23,6 +23,7 @@ #include #include +#include namespace ns3 { diff --git a/src/devices/emu/emu-encode-decode.cc b/src/devices/emu/emu-encode-decode.cc index 49b044099..f61c50d03 100644 --- a/src/devices/emu/emu-encode-decode.cc +++ b/src/devices/emu/emu-encode-decode.cc @@ -20,6 +20,7 @@ #include #include #include +#include namespace ns3 { diff --git a/src/devices/tap-bridge/tap-creator.cc b/src/devices/tap-bridge/tap-creator.cc index a80606e56..fd18752d2 100644 --- a/src/devices/tap-bridge/tap-creator.cc +++ b/src/devices/tap-bridge/tap-creator.cc @@ -138,13 +138,17 @@ AsciiToMac48 (const char *str, uint8_t addr[6]) } } -static void -SetInetAddress (sockaddr *ad, uint32_t networkOrder) +static sockaddr +CreateInetAddress (uint32_t networkOrder) { - struct sockaddr_in *sin = (struct sockaddr_in*)ad; - sin->sin_family = AF_INET; - sin->sin_port = 0; // unused - sin->sin_addr.s_addr = htonl (networkOrder); + union { + struct sockaddr any_socket; + struct sockaddr_in si; + } s; + s.si.sin_family = AF_INET; + s.si.sin_port = 0; // unused + s.si.sin_addr.s_addr = htonl (networkOrder); + return s.any_socket; } static void @@ -330,7 +334,7 @@ CreateTap (const char *dev, const char *gw, const char *ip, const char *mac, con // // Set the IP address of the new interface/device. // - SetInetAddress (&ifr.ifr_addr, AsciiToIpv4 (ip)); + ifr.ifr_addr = CreateInetAddress (AsciiToIpv4 (ip)); status = ioctl (fd, SIOCSIFADDR, &ifr); ABORT_IF (status == -1, "Could not set IP address", true); LOG ("Set device IP address to " << ip); @@ -338,7 +342,7 @@ CreateTap (const char *dev, const char *gw, const char *ip, const char *mac, con // // Set the net mask of the new interface/device // - SetInetAddress (&ifr.ifr_netmask, AsciiToIpv4 (netmask)); + ifr.ifr_netmask = CreateInetAddress (AsciiToIpv4 (netmask)); status = ioctl (fd, SIOCSIFNETMASK, &ifr); ABORT_IF (status == -1, "Could not set net mask", true); LOG ("Set device Net Mask to " << netmask); diff --git a/src/devices/tap-bridge/tap-encode-decode.cc b/src/devices/tap-bridge/tap-encode-decode.cc index 9d85519ab..d6a03588d 100644 --- a/src/devices/tap-bridge/tap-encode-decode.cc +++ b/src/devices/tap-bridge/tap-encode-decode.cc @@ -20,6 +20,7 @@ #include #include #include +#include namespace ns3 {