This is a brief introduction. I may add more details when 1): I have the time and 2): I feel appropriate to do so, since some details are related to ongoing research of WiSeR group . If you’re interested in knowing more, you can send me an email.
Multi-radio multi-channel mac for wireless mesh network (ongoing)
Now everybody uses 802.11 WLAN routers. And some of you might have heard of the application of wireless mesh network, such as the great work from meraki . For 802.11 WLAN based network, a simple fact is that by using multiple radios operating on multiple channels, we can greatly improve the performance of the network. However, due to the dynamic nature of traffic load in wireless mesh networks, the optimal channel and link assignment of radios may change over time. If we can capture this change dynamically, we might be able to further improve network performance. However dynamic MRMC wireless mesh is still highly experimental, and there is a huge gap between theoretical development and system implementation/measurement. So we decide to carry out an attempt to bridge this gap. Hence this piece of work. To simplify network design, we followed an simplified model that assign fix channels to certain radios on wireless routers as “anchor” radios, while allowing other radios to “hop” around different channels. The challenge is to get closer to making the optimal decisions in a distributed way. We try to let the wireless routers to extract key information from traffic load history, packet transmission/reception record, hello packets from neighbors and then use intelligent strategy to best estimate channel variation and coordinate with neighbors.
Here is code and documentation. Grateful for any suggestions:)
WiserMesh testbed deployment and measurement
WiserMesh testbed is a small scale wireless mesh tesbed in our group. It consists of a dozen of PC Engines Wireless Router Application Platform . It’s first planned and developed by Vivek and my advisor . I upgraded it with the latest OpenWrt build and add-on antennas, developed a new control framework(which will be mentioned below), and am responsible for its deployment and maintenance. I did a lot of measurement on this testbed for various research projects and I gained strong first hand wireless mesh system experience from it.
WiserMesh control framework
I developed this together with Dr. Cunqing Hua.
In order to automate experiment on our wireless mesh routers, we need a control framework that enables us to control all nodes in the network programmingly from a central controller, and monitor the status of them at real time. Instead of resorting to a comprehensive but heavy weighted approach such as the orbit node handler, we want something light weighted and agile. Dr. Cunqing Hua found a very interesting python module pexpect, which spawns worker threads to talk to Linux nodes through ssh, and provides control/synchronization for those threads. With the help of it we can rely mainly on sshd on to handle our request on the Linux nodes, although a light weight process is still needed on the node to report its address to the server and restart the node when it halts. We built our control framework about this idea. The framework can let us write simple python scripts to query current node status, select a subset from available nodes, issue shell commands to it, get feedback, and log the whole session. Fine grained synchronization control is supported. I paid special attention to the separation of roles between python classes and shell scripts to minimize the number of new python APIs the user needs to learn and maximize the reuse of shell scripts for a normal ssh session.
Wireless sensor programming
An earlier effort of me to kick start the telosb sensor programming. I programmed in tinyos to use the ADC in telosb sensor CPU to sample analog input and record it in sensor memory or send wirelessly to a PC. Various technical parameters like the processing speed of sensor, wireless link throughput, ADC sample frequency and on board memory usage are investigated. The effort proved the technical capability of telosb sensor and produced the first prototype for the Wireless Structure Health Monitoring project.
Optimization in matlab & python
There were two major projects in optimization for me: one is to take over a prior effort in my group to use RMTS method, which is a general method to construct robust mapping from multi-dimensional space to a real value, to locate a wireless agent’s location with strengths of received signals of it from access points. I dived into the theory and code and investigated the possibility of improvement. This was the first project for me in WiSeR group, and although it is finally terminated, I gained import experience for all phases of a serious mathematical modeling and its validation. The second project is to aid the GBD optimization in our MRMC channel assignment work. We coded in python and went back and forth to consider the correctness of different tweaks of GBD for our own application. I also took optimization and machine learning course to better prepare myself for those kind of task.
NS2 and QUALNET programming
NS2 is the most popular network simulator in network research community. It’s the product of a unique binding of TCL script language and C++. An object can have implementation in both languages and the final behavior of it is determined by the aggregation of logic from both. I programmed NS2 in an effort to develop an distributed routing protocol for vehicular ad-hoc network . QUALNET is another popular network simulator. It’s built using a special multi-thread discrete event simulation language called parsec . In my opinion QUALNET is much more powerful but its popularity is affected by its (partially) closed source feature. I hacked QUALNET to use link quality traces from testbed measurement in its simulation, for the research in the MRMC channel assignment paper . Due to its partially closed source nature, a hack like this is more complicated than those on its open source peers. I first gave myself a quick tutorial of parsec mechanism, then exploited the powerful debugging ability of eclipse to finish this task.
Linux server administration (every now and then)
I designed the online collaboration web portal for WiSeR group using drupal. I’m the administrator of the group’s computational server and wisermesh tesbed control server. And, as mentioned above, I also administrate the linux boards in wisermesh testbed.
Hobby projects
Those were just for fun. I wish I had more time for them.
- A blue file system on android. It turns out that android actually has a lot of restrictions for hacking its Linux kernel, at least in 2008. This project was halted by then for this reason. But I’ll always be interested in open mobile platform and the possibilities on it.