As part of a broader organisational restructure, data networking research at Swinburne University of Technology has moved from the Centre for Advanced Internet Architecture (CAIA) to the Internet For Things (I4T) Research Lab.

Although CAIA no longer exists, this website reflects CAIA's activities and outputs between March 2002 and February 2017, and is being maintained as a service to the broader data networking research community.

Homenet3D for OpenWRT

June 27, 2014: "Homenet3D for OpenWRT" v0.2 is our new prototype of the Homenet3D idea. Figure 1 shows v0.2 representing the current system state of an OpenWRT device inside a virtual world.

Fig 1. Screenshot -- Homenet3D for OpenWRT v0.2

The world can (in principle) be viewed on any WebGL-enabled web browser. The user's mouse (or touch screen controls) can be used to rotate and zoom/pan the view. Hovering the cursor over each named objects will cause more detailed related information to popup on screen. Clicking on the words "Web Interface" (top right corner) will launch the usual OpenWRT GUI.

Our choice of 3D world is still rudimentary, and clearly an area ready for new ideas. Our v0.2 code is intended as a platform for future experiments in browser-side 3D visualisation techniques.

Watch the embedded video for more insight:


Background: OpenWRT

OpenWRT is a Linux distribution for embedded devices. It is commonly used to replace the factory firmware found on residential Internet routers. By replacing the factory firmware, users gain access to additional configuration options and are able to extend the functionality of the router by installing new software. The OpenWRT SDK was used to build Homenet3D binary packages and Homenet3d-OpenWRT firmware for the TP-Link WR-1043ND.

Although we have built and tested Homenet3D for the WR-1043ND and QEMU ARM and MIPS emulations, OpenWRT supports many home routers and it should be possible to build Homenet3D for your platform using our build instructions.

Try it: Using OpenWRT on QEMU

In order to establish that the Homenet3D software was compatible with the common architectures of home routers, we made use of the QEMU operating system emulation tool. This allowed us to test easily ARM and MIPS architectures.

The following steps allow you to easily try v0.2 for yourself. Install QEMU version 1.6.0 or later, download our prebuilt ARM (MD5) or MIPS (MD5) kernel image and use the appropriate command below to start OpenWRT under QEMU:

ARM:

qemu-system-arm -M realview-pbx-a9 -kernel homenet3d-openwrt-arm-v0.2.elf -m 128m -nographic -redir tcp:2200::22 -redir tcp:8080::80 -redir tcp:10001::10001

MIPS:

qemu-system-mipsel -M malta -kernel homenet3d-openwrt-mips-v0.2.elf -m 128m -nographic -redir tcp:2200::22 -redir tcp:8080::80 -redir tcp:10001::10001

Make sure any local firewall (on the machine running QEMU) allows TCP connections to ports 2200, 8080 and 10001. Then from a browser on your host machine go to: http://127.0.0.1:8080/www-threejs

Note: To exit out of the QEMU console press Ctrl-A then X. See here for more information.

A script (/root/demo.lua) can be run to simulate (very roughly) state updates of a router.

Additional documentation:

Try it: Using the TP Link WR1043ND Router

Homent3D for OpenWRT has also been built and tested on the TP-Link TL-WR1043ND Gigabit Ethernet residential router. The WR1043ND features one WAN port, four LAN ports and support for 802.11b/g/n wireless. It is based on the Qualcomm Atheros AR9132 SoC (MIPS) running at 400Mhz. There is 8MB of flash storage and 32MB of system RAM. Homenet3D binary packages and firmware images for this router can be found in the downloads section. The OpenWRT page about the WR-1043ND can be found here.

What is Homenet3D?

Homenet3D is a tool that translates a home network and it's state into a virtual 3D world in order to make a more user-friendly, more intuitive way to interpret and interact with the state of the home network.

Homenet3D for OpenWRT leverages WebGL, WebSockets and Javascript to communicate network state and render it in any WebGL capable web browser (Tested with Google Chrome/Mozilla Firefox).

The block diagram in Figure 2 shows how the system is broken down into entities: System, Memory (1 entity for each), Leases, Wired, Wireless and Devices.Each entity has it's own information that it displays (e.g. for the System entity there is the device's hostname and uptime as well as the network interface information for WAN and LAN). Wired and Wireless entities house all information about the wireless and wired devices currently connected to the system. Both the Wired and Wireless entities spawn child device entities that detail each individual attached device. The Wired, Wireless and Device entities leverage the lease information housed in the Leases entity.

Fig 2. OpenWRT System State Entity Mapping (v0.2)

Using OpenWRT's Lua-based UCI (Unified Configuration Interface) and some basic shell scripts, network state is communicated internally with the router via a local UDP socket (Figure 3). This UDP communication happens internally to the router while system state updates are propagated to the remote clients using WebSockets.

Fig 3. System State Communication Diagram (v0.2)

Viewing the virtual world is as easy as having a WebGL enabled web-browser. When the virtual world webpage loads it loads HTML and Javascript files over HTTP (port 80) but from then on the state of the world is communicated over WebSockets (port 10001) and all world visualisations are rendered by client-side Javascript functions (Figure 4).

Fig 4. OpenWRT -- Client Communication Diagram (v0.2)

Useful downloads

If you have a TP-Link WR-1043ND:

  • Flash your router with the TP-Link WR-1043ND firmware image (v0.2)
  • Or build & add specific packages from source (if you're already running OpenWRT Barrier Breaker)

Other OpenWRT-compatible platforms:

Documentation

Homenet3D for OpenWRT Source Files

VM Image for OpenWRT development/build environment

If you do not already have the build environment set up, get the VirtualBox VM image below. This is a VirtualBox appliance that can be imported to your local VirtualBox install.

The default user login details are:

  • Username: homenet3d
  • Password: home123

Previous Version

Program Members


cisco logo

This project has been made possible in part by a gift from The Cisco University Research Program Fund, a corporate advised fund of Silicon Valley Community Foundation, for a project titled "Low cost home network monitoring using “3D virtual environments".

Last Updated: Saturday 19-Jul-2014 06:49:52 AEST | Maintained by: Grenville Armitage (garmitage@swin.edu.au) | Authorised by: Grenville Armitage (garmitage@swin.edu.au)