240 likes | 375 Views
Using ns-3 emulation to experiment with Wireless Mesh Network Routing: Lessons learned. José Núñez-Martínez Research Engineer Centre Tecnologic de Telecomunicacions de Catalunya 25/03/2011. Goal of this talk.
E N D
Using ns-3 emulation to experiment with Wireless Mesh Network Routing:Lessons learned José Núñez-Martínez Research Engineer Centre Tecnologic de Telecomunicacions de Catalunya 25/03/2011
Goal of this talk Give the implementation details of porting the implementation of a routing protocol to a real WMN testbed by means of ns-3 emulation framework Initial results on the the performance evaluation of the ns-3 emulation framework in a real testbed
Outline • Testbed Setup • Ns-3 WMR • Main changes in the routing protocol • Performance Evaluation • Conclusions
Outline • Testbed Setup • Ns-3 WMR • Implications in the routing protocol • Performance Evaluation • Conclusions
Wireless Mesh Node • Motherboard: • Portwell Mini-ITX 1.6Ghz processor • Storage: • 80Gb PATA hard disk. • Wireless Interfaces • up to four mini-PCI CM9 atheros wireless • 54Mbps • 5Ghz band pseudo ad-hoc mode, one antenna • 3G Femtocell connected through Ethernet iface via Switch • OS • Linux Fedora Core 2.6.32 • Madwifi 0.9.4
Wireless Mesh Testbed • Deployed in the first floor of the CTTC building • An approximate area of 1200 square meters • 12 WiFi nodes acting as Wireless Mesh Routers • Static and non-power constrained • Backbone wireless mesh network • Using 1 WiFi interface and 1 Ethernet to connect Femtocells • WifiMesh initially set up to single radio single channel • Network control via Ethernet LAN Controller for remote management purposes
Testbed Routing Configuration • Flows directed to a Femtocell • Add static routes to packets directed to the Femtocell connected by Ethernet Interface • Backpressure to route packets to another Femtocell not directly connected by Ethernet Interface • Flows coming from a Femtocell • Static Default route added to reach the WMR directly connected via Ethernet Interface • Static Default route of the GW in the mesh to reach Core Network • Flows originated at the WMR • Generate them within ns-3
Outline • Testbed Setup • Ns-3 WMR • Implications in the routing protocol • Performance Evaluation of ns3 • Conclusions
Ns-3 WMR configuration • EmuNetDevice associated to each interface • associated to ath0 Ptr<EmuNetDevice> device = CreateObject<EmuNetDevice> (); device->SetAttribute ("Address", Mac48AddressValue ("00:0b:6b:81:ce:2a"); device->SetAttribute ("DeviceName", StringValue (deviceName)); • Static Routing and Backpressure Routing • Static routing more priority than backpressure routing and removed routes associated in static routing to use backpressure routing list.Add (staticRouting, 10); // static routing list.Add (backpressure, 0); //dynamic backpressure routing staticRouting->RemoveRoute (1); //so that backpressure would be used to route within the WMN
Ns-3 WMR configuration • To disable ARP in the testbed, fix static ARP entries in the node interfaces • Create ARP cache Ptr<ArpCache> arp = CreateObject<ArpCache> (); arp->SetAliveTimeout (Seconds(3600*24*365)); • Add ARP cache entry Mac48Address macAddr = Mac48Address("00:0b:6b:81:ce:2a"); Ipv4Address ipAddr = Ipv4Address("10.3.40.193"); ArpCache::Entry * entry = arp->Add(ipAddr); entry->MarkWaitReply(0); entry->MarkAlive(macAddr); • Associate Arp Cache to the IP interface • ipIface->SetAttribute("ArpCache", PointerValue(arp));
Outline • Testbed Setup • Ns-3 WMR • Implications in the routing protocol • Ns-3 Emulation Performance Evaluation • Conclusions
Dynamic Backpressure Routing protocol Implementation • EMU_MODE/SIMU_MODE • depending on the mode there are some changes in the routing protocol module backpressure.Set("Mode", EnumValue(EMU_MODE)); • Due to the particularities of dynamic backpressure routing there are some coding differences • Interaction with WiFi MAC Queues • Routing Protocol require some adjustments in emulation mode
Transmission Opportunities in EMU_MODE • Recall that packets coming from upper//lower layers are not necessarily immediately forwarded • Instead of this they are stored waiting for transmission opportunities • In SIMU_MODE a callback from WiFiMAC layer is launched whenever there are free data slots in the WiFiMAC Layer • In this case the real host has to tell somehow to ns-3 whether there is a new transmission opportunity or not
Interacion between NS-3 and Madwifi driver • Madwifi patched to trigger interruption • Create a file in /proc/sys/ • Patch madwifi driver to Write in /proc/sys/ file when the HW buffer is full • Another write event when HW buffer is not full • In the ns-3 dynamic backpressure routing module create a thread waiting for some write event on a file in /proc/sys/ • Use select() system call waiting for a write event • Continuous transmission opportunity in the routing module by default • When the thread is unblocked and previously was idle transmission opportunities are locked
Outline • Testbed Setup • Ns-3 WMR • Implications in the routing protocol • Ns-3 Emulation Performance Evaluation • Conclusions
NS-3 Mac Spoofing • Be careful with the selected MAC address to spoof • BSSID_MASK: mask to set up potential mac addresses of the VAPS associated to a WiFi card • Not every random mac address is appropriate at least for WiFi cards • In madWiFi higher bits of the mac address identify the VAP • With MAC addresses which do not satisfy BSSID_MASK the WiFi card discard data packets though some of them are able to be processed
NS-3 performance Processing • Linux host saturating a WiFi interface in 802.11a mode 4000pkts per second payload 1024bytes • Ns-3 WMR processing packets • EmuNetDeviceRxQueueSize • Performance degradation due to queue drops in EmuNetDevice • Appropiate EmuNetDevice queue size
NS-3 performance Sending • Ns-3 WMR saturating WiFiinterface • Performance at the receiver • UDP traffic 4000pkts per second during 30seconds
Outline • Testbed Setup • Ns-3 WMR • Implications in the routing protocol • Ns-3 Emulation Performance Evaluation • Conclusions
Conclusions • Implementation particularities of the routing protocol and ns3 WMR router configuration • Main issues with respect to ns-3 simulation are given by the interaction with the testbed • But essentials of the routing protocol do not change • HELLO messages, routingalgorithm • Initial ns-3 Emulation Performance Evaluation is satisfactory but more tests are needed • Delays
Thanks for your kind attention! • Questions? José Núñez-Martínez Research Engineer Centre Tecnologic de Telecomunicacions de Catalunya jose.nunez@cttc.cat
Receiving and Transmitting • Ns-3 WMR receiving and transmitting 2000 packetssecond • Wificardprioritizespacketreception (i.e., red flow) • Ns-3 WMR receiving and transmitting at a rate of 1000 packets per second