====== Testbed design ====== ===== Overview ===== Current configuration is based on 23 nodes deployed across two buildings, implementing two local indoor wireless mesh networks interconnected by an outdoor WiFi point-to-multipoint wireless link. Mesh routers build and maintain the multi-hop wireless back-haul and provide end-users with a standard 802.11 Access Point. Internet connectivity is delivered by a dedicated mesh routers equipped with an high bandwidth connection to the Internet backbone. A third tier providing Internet connectivity by means of a Point-to-Multipoint wireless technology (e.g. WiMAX, WiFi, or UMTS) is also supported. {{:artwork:testbed.png?500|}} The WING testbed is built on top of the Roofnet platform. Roofnet is an experimental WMN developed by the MIT and deployed in Cambridge, Massachusetts. Roofnet routes packets using a DSR-like routing protocol called SrcRR exploiting the Estimated Transmission Time (ETT) as routing metric and optimized for network scalability and throughput rather than for supporting mobility. The default Roofnet configuration has been extended with additional modules responsible for: * [[directions:traffic_aggregation|Adaptive traffic aggregation]], a packet concatenation scheme capable of boosting the voice capacity of the network. * [[directions:opportunistic_scheduling|Opportunistic scheduling]], an opportunistic scheduler addressing the //IEEE 802.11 performance anomaly//. * [[directions:qos_provisioning|QoS Provisioning]], a DiffServ-based framework providing soft QoS bounds. * [[directions:channel_assignment|Multi-Radio]], a dynamic channel selection scheme capable of exploiting multiple radios in order to build and maintain the wireless backhaul. ===== Software Architecture ===== [[http://openwrt.org|OpenWRT]] has been selected as operative system for our testbed. OpenWRT provides an automated system to download the source code (both kernel and the userland tools) and compile it to work on any supported platform. Moreover, it is characterized by a small memory and disk footprint making it suitable for a wide rage of networking devices. Finally, it provides hardware configuration and maintenance abstraction through a custom system and package configuration facility called UCI. Notwithstanding the fact that the PCEngines processor boards are based on the x86 architecture and then they do not require cross-compilation, we decided to use OpenWRT in order to abstract ourself from the underlying hardware architecture making the WING wireless mesh networking toolkit platform agnostic. The following picture sketches the overall wireless mesh router architecture. {{:artwork:router_architecture.png?500|}} As it can be seen from the picture, the node supports multiple backhauling technologies (Wired, WiFi, and UMTS). The software can seamlessly switch from one backhaul link the the other. However, due to the use of Network Address Translation (NAT) techniques at the mesh gateway, existing connections exploiting stateful protocols, such as TCP, are terminated when the backhaul link is switched. Routing software is implemented using the [[http://www.read.cs.ucla.edu/click/|Click]] modular router. ===== Features ===== ==== Multi-radio support ==== Multiple radio interfaces support delivers improved spatial reuse and enhanced system throughput. An interference and traffic aware channel assignment algorithm is used in order to dynamically assign the operating frequencies. ==== MIMO ==== The recently standardized IEEE 802.11n technology is used in order to improve throughput and coverage in outdoor scenarios. ==== Auto-configuration ==== WING nodes can automatically detect if they are relays or gateways. The node auto-configures itself as gateway if an IP address can be obtained using DHCP over one the supported uplink backends. Currently the following uplink technologies are supported: * Wired, Ethernet. The //eth0// interface is the default uplink technology used by the WING nodes. Power-over-Ethernet is supported for streamlined outdoor deployment. * Wireless, IEEE 802.11. In dual radio setups the second wireless interface can be configured in client mode and used to implement a three tiers architecture. Some manual intervention may be required in order to configured the network SSID and the WPA/WEP key. * Wireless, UMTS. On boards equipped with a UMTS/CDMA modem a 3G network can be used as uplink technology. At the moment only the Huawei E169 UMTS Modem (USB interface) is supported. Some manual configuration may be required in order to configure the provider specific parameters. ==== Three-tiers architecture ==== Internet connectivity is provided by the Mesh Gateways using either wired or wireless links. This is useful in three-tiers architectures where the gateways are connected to a bandwidth aggregation point using point-to-multipoint wireless links, Currently supported technologies are: WiFi, WiMax, and UMTS. ==== QoS Support ==== WING implements several QoS enhancements aimed at improving the voice capacity of the system and at providing performance isolation among competing flows in noisy environments. Traffic differentiation is provided by means of a multi-queue system based on the [[http://en.wikipedia.org/wiki/Differentiated_services|DiffServ]] framework. The Per-Hop Behavior (PHB) must be specified by the source by encoding a 6-bit value—called the Differentiated Services Code Point (DSCP)—into the 8-bit Differentiated Services (DS) field of the IP packet header. The following treatment is then applied by the mesh routers: ^ DSCP (decimal) ^ PHB ^ Weights ^ Description ^ Applications ^ | 0 | Default | 1 | Best effort | Any | | 18 | AF21 | 2 | Opportunistic link scheduling | Video streaming | | 26 | AF31 | 3 | Traffic aggregation and opportunistic link scheduling (high-delay) | Audio streaming | | 34 | AF41 | 3 | Traffic aggregation and opportunistic link scheduling (low-delay) | VoIP | ===== Hardware ===== Mesh routers are built exploiting three different types of processor boards: * PCEngines ALIX 2C2, 500MHz x86 CPU, 256MB of RAM * PCEngines WRAP 1E, 233MHz x86 CPU, 128MB of RAM * Gateworks Cambria GW2358-4, 667MHz ARM CPU, 128MB of RAM Operating system and application are stored on a 1 GB Compact Flash card for the PCEngines processor boards and on the 32 MB embedded flash memory for the Gateworks boards (in this case a 4GB Compact Flash is used to provided additional storage. It is worth noting that the full WING firmware including development and testing tools (traffic generator, loggers, etc.) requires 16MB of storage space. A stripped down version of the firmware without development and testing tools requires less than 4MB of storage. Connectivity is provided by 2 Ethernet channels, 2/4 miniPCI slots (PCEngines/Gateworks) and one serial port. PCEngines ALIX/WRAP boards are equipped with two Mikrotik R52 WiFi IEEE 802.11a/b/g cards based on the Atheros AR2412 chipset. Gateworks boards are equipped with two Ubiquiti SR71-A WiFi IEEE 802.11a/b/g/n cards based on the Atheros AR9160 chipset. On the PCEngines platform one interface builds and maintains the multi-hop wireless backhaul, while the other interface can be configured either in Client or in Master mode. The former configuration allows the node to share an already available WiFi connection with the entire WMN while the latter configuration is used to provide a standard IEEE 802.11 Access Point. Single interface setups are also supported, however, in this case the device acts as a pure relay node. Dual and single NIC nodes can coexists in the same network. On the Gateworks platform both interface are used to build and maintain the multi-hop wireless backhaul implementing a true multi-radio/multi-channel WMN exploiting dynamic channel assignment. An additional WiFi interface can also be used to provide Internet connectivity to the network. Nodes currently used in the testbed: * 6 PCEngines [[hardware:alix|ALIX]] 2C2. Indoor dual radio mesh router. * 4 PCEngines [[hardware:wrap|WRAP]] 1E. Indoor dual radio mesh router. * 6 PCEngines [[hardware:wrap|WRAP]] 1E. Indoor single radio mesh router. In this configuration the same wireless interface manages the multi-hop wireless backhaul and provides access the end-users. * 3 PCEngines [[hardware:ptmp|ALIX]] 2C2. Outdoor point-to-multipoint wireless distribution system. * 6 Gateworks [[hardware:gw2358|GW2358-4]]. Indoor multi-channel mesh router.