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

October 13th 2015: Further development of "Homenet3D for OpenWRT" is now publicly hosted here on Bitbucket.
August 22, 2014: "Homenet3D for OpenWRT" v0.3 is our new prototype of the Homenet3D idea. Figure 1 shows v0.3 representing the current system state of one or more OpenWRT devices inside a virtual world.

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

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 for the master router. (see Figure 2)

Fig 2. Screenshot -- Homenet3D for OpenWRT v0.3 Web Interface

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

Watch the embedded video(v0.2) for more insight (v0.3 coming soon):


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 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.3 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.3.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.3.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/hnet3d

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

The two pre-built images provided are running a 'demo' script to simulate changes in router state. If you are building your own image the Homenet3D package will install the demo script as a daemon but will not enable it. Instead the system state will be real values and a 'sys-state' deamon will be started automatically.

Both 'demo' and 'sys-state' have init scripts to stop/start/restart them: /etc/init.d/[demo|sys-state] [stop|start|restart]

Additional documentation:

Try it: Using the TP Link WR1043ND Router

Homent3D for OpenWRT has also been built and tested on the TP-Link TL-WR1043NDv1 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.

Note: The TL-WR1043ND version 1 has been superceded by version 2. Homenet3D for OpenWrt should be for this router, but has not been tested as of yet.

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 3 shows how the system is broken down into state types: System, Network, Memory, NAT table, Leases, Wired, Wireless and Devices. The system state information is stored as part of a group of entities. Each group represents one router device and all the state information it contains. In the virtual world each 3D object gets assigned one of more state types which defines what set of information that object will represent.

For example the Object labeled "System" in the video above has two state types: System and Network. So the entity label "System" displays the System information: hostname, model, uptime, etc; as well as the Network information: interface IP addresses, active connections, etc.

Wired and Wireless state types associate all information about the wired and wireless devices, respectively, currently connected to the system. The entities with Wired or Wireless state types will spawn child device entities that detail each individual attached device. The Wired, Wireless and Device entities leverage the lease information that belongs to the group.

Fig 3. OpenWRT System State Type Mapping (v0.3)

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

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

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 5).

Fig 5. OpenWRT -- Client Communication Diagram (v0.3)

Useful downloads

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

  • Flash your router with the TP-Link WR-1043ND firmware image (v0.3)
  • 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: Tuesday 13-Oct-2015 13:46:42 AEDT | Maintained by: Grenville Armitage (garmitage@swin.edu.au) | Authorised by: Grenville Armitage (garmitage@swin.edu.au)