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.
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:
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.
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)
HowTos.
Guides on building/installing OpenWRT and Homenet3D v0.2. The
instructions
are specifically for the TP-Link WR-1034ND and QEMU ARM/MIPS but should
work for other routers.
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.
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 |
No longer maintained. Pre-2018 was maintained and authorised by Grenville Armitage, garmitage@swin.edu.au