Some of the (research oriented) hardware/software tools that I have developed:

 

  • Urban Simulation of Pervasive Communications
    GIS-enabled routing and simulation system with data from OpenStreetMap that can be applied to the study of pervasive sensing applications. Click on the figure below to see a short demostration where mobile and fixed sensors collaborate in the detection of a hyphotetical hazardous substance emission around the college area. For demonstration purposes, mobiles move at a very high speed (mp4 video).



  •  

  • EPUMS
    EPUMS is a sensor network for high-frequency enery and power consumption monitoring of large number of computing or network equipment, such as datacenters and computing clusters. A dedicated Linux-kernel driver allows operating system and user-level processes to become energy aware. For more information, please follow this link.


  •  

  • INES
    INES is an event-driven computer simulator, written from scratch in C++, that is suitable both for general network simulation (wired and wireless networks) and for network-environment interaction simulation. link.


  •  

  • MATEMA: Mobile ad hoc networks testbed manager
    MATEMA is an emulation layer that simulates various physical layer features, such as mobility, radio propagation, obstacles, energy consumption, etc. It is a tool created with the aim of facilitating the development and initial validation of MANET protocols, for instance by removing the need of physically moving devices. The system was tested with the AHCPN implementation mentioned above. MATEMA has a GUI and allows the user either to supply ahead experiment details (following the NS-2 format) or to interactive manipulate the nodes. It was developed in Java (manager side) and C (device side). A poster describing the system can be found here.


  •  

  • AHCPN: Mobile ad hoc CPN linux kernel module
    Unlike the CPN module, I decided to wrote the AHCPN module with direct compatibility to IP networks. For this, I encapsulated the implementation of the protocol in a "virtual" device driver that becomes visible to any layer-3 implementation (e.g. visible and configurable through ifconfig), therefore able to transport IP datagrams. Testing and experimentation was mainly done with Familiar Linux 0.8.2 with HP 5500 and HP5550 IPAQ devices on a testbed of 8 devices. Some additional testing was also done with regular Linuxes mounted on robots.

  •  

  • CPN (Cognitive Packet Networks) Linux kernel module (2001)
    I wrote this module originally for the Linux kernel 2.4, but it has been continuously updated and extended by many students and researchers so there is a version for 2.6 available now and that is running on the SAN network testbed. The module allows for loading and unloading an implementation of CPN offering an alternative protocol stack to TCP/IP to applications, basically constructing a network router in Linux. Applications may use the module by working with the usual BSD socket interface. By selecting the AF_CPN family on socket creation, applications can benefit from the features offered by CPN, such as, QoS-driven self-aware routing. Also, I wrote a tunneling program to send IP traffic through a CPN testbed. In addition, I developed a network visualizer to monitor in near real time the paths in used by the flows.

    I have a couple of video clips of former CPN testbeds (of 6 and 26 nodes respectively) at UCF transporting a video stream, while adapting the paths (application layer acks create an opposite traffic flow that video packets attempt to dynamically avoid). Click on the images below for the clips (mp4, work with Quicktime):

    The SAN testbed currently runs an updated CPN module at ICL for a variety of traffic types

  •  

  • NS-2 extensions
    Implemented the following MANET protocols for NS-2: AHCPN and LDRP