About Us People Current Research Publications Funding Download SMesh Spines Spread Secure Spread |
SMesh source code and binariesSMesh is licensed under the SMesh Open-Source License. SMesh requires a device that runs Linux and has a 802.11 wireless interface. We tested it on x86, Linksys WRT54G and Meraki routers. Here is an overview of the operating modes of SMesh. The latest stable version is 2.3. If you intend to build SMesh from source, you also need to download Spines 3.1 or later.SMesh Redundant Multipath kernel modulesSMesh Redundant Multipath adds kernel support for forwarding data packets to the mobile client through multiple paths. CPU utilization decreases significantly when using SMesh with these modules, allowing low-cost routers to fully utilize the available bandwidth on the wireless networks. A user-space implementation of a routing protocol that uses redundant multipath, as described in our paper, is available in the Spines distribution. These modules are available under the GNU GPL license.
iproute shared libraryChanging kernel routing tables from a C program requires system calls that are limitted and sometimes outdated when moving from one version of Linux to another. The common "ip route" shell command is the best way of manipulating routing tables in Linux. However, calling the shell version of the software incurs a significant overhead on low-cost routers (per route update, 40 ms, compared to only 1 ms when using this library on WRT54 routers). This library provides a direct interface to process the "ip route" command with the same usage as the shell version, but without going through the shell. This software is available under the GNU GPL license.Supported HardwareSMesh on ADI Pronghorn instructions.SMesh on Meraki instructions. Supported models of the Linksys router are all Linux based versions as per the table below. Tested models include a (T) at the end of the line.
WRT54G Models
CDF0 = WRT54G v1.0 / ADM6996L Chipset / CPU 125Mhz
WRT54GLCDF1 = WRT54G v1.0 / ADM6996L Chipset / CPU 125Mhz CDF2 = WRT54G v1.1 / ADM6996L Chipset / CPU 125Mhz CDF3 = WRT54G v1.1 / ADM6996L Chipset / CPU 125Mhz CDF5 = WRT54G v2.0 / ADM6996L Chipset / CPU 200Mhz (T) CDF7 = WRT54G v2.2 / BCM5325EKQM Chipset / CPU 200Mhz (T) CDF8 = WRT54G v3.0 / BCM5325EKQM Chipset / CPU 200Mhz (T) CDF9 = WRT54G v3.1 / BCM5325EKQM Chipset / CPU 200Mhz (T) CDFA = WRT54G v4.0 / BCM5352E Chipset / CPU 200Mhz (T)
Note: WRT54G v5.0 has 2Mb/8Mb RAM. It uses VxWorks OS and is incompatible with 3rd party
firmware and SMesh.
CL7A = WRT54GL / BCM5352E Chipset / CPU 200Mhz (T)
WRT54GS
CGN0 = WRT54GS v1.0 / ADM6996L Chipset / CPU 200Mhz
CGN1 = WRT54GS v1.0 / ADM6996L Chipset / CPU 200Mhz CGN2 = WRT54GS v1.1 / BCM5325EKQM Chipset / CPU 200Mhz CGN3 = WRT54GS v2.0 / BCM5325EKQM Chipset / CPU 200Mhz CGN4 = WRT54GS v2.1 / BCM5325EKQM Chipset / CPU 200Mhz CGN5 = WRT54GS v3.0 / BCM5352E Chipset / CPU 200Mhz CGN6 = WRT54GS v4.0 / BCM5352E Chipset / CPU 200Mhz |