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.
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:
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]
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)
HowTos.
Guides on building/installing OpenWRT and Homenet3D v0.3. 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:
Tuesday 13-Oct-2015 13:46:42 AEDT |
No longer maintained. Pre-2018 was maintained and authorised by Grenville Armitage, garmitage@swin.edu.au