Weisheng Si
Director of Academic Program - Postgrad ICT
Senior Lecturer in Networking
School of Computer, Data and Mathematical Sciences, WSU
Post: Bldg ER, Parramatta South Campus, Parramatta, NSW 2150
E:  w.si   a-t   WesternSydney.edu.au

A Little Open Source Software


♦   A module for constructing Harary graph accepted by NetworkX, 2019 

I implemented a Python module for generating Haray graph, which is an important type of graph that maximizes node connectivity with given number of edges. This module became part of NetworkX (a well-received Python package for studying Complex Networks) in 2019.

The usage and documentation of this module can be searched and found at the reference page of NetworkX.


♦   A package for constructing Theta graphs and Yao graphs accepted by CGAL, 2016

We (with Quincy Tse) implemented a software package for constructing Theta graph and Yao graph in C++. Specifically, this package provides functors for constructing Yao graph and Theta graph, given a set of vertices on the plane and the directions of cone boundaries.

Both exact and inexact constructions are supported. In exact construction, the cone boundaries are calculated using the roots of polynomials, thus avoiding the use of Pi, which cannot be represented exactly. In inexact construction, the cone boundaries are calculated using an approximate floating point Pi value, which is still accurate enough for most applications. Moreover, for visualization purpose, this package provides a function to generate the data and script files used by Gnuplot to plot the constructed graphs.

This package became part of the well-known Computational Geometry Algorithm Library (CGAL) in 2016. The usage of this package can be found at its user manual at CGAL.


♦   Saving energy for Ethernet switches, 2011-2012 

I implemented a distributed approach to save energy for Ethernet switches in data centers under ns-2. Its source codes are here. In this release, both the C++ codes for the implementation and the TCL scripts for doing experiments under ns-2 are included. Below explains how to install and use this software.

------------------------------------------------------------------
To install, please follow the steps below.
------------------------------------------------------------------
Under the ns-2.35 directory:
1. tar vxf tcql.tar
2. Modify Makefile by doing the follows.
for the variable OBJ_CC, add tools/crc.o and classifier/utiltimer.o
3. touch tcl/lib/ns-lib.tcl
4. make
------------------------------------------------------------------
To experiment under a fat tree topology, please follow the steps below.
------------------------------------------------------------------
Under the directory tcl/ex/tcql:
1. ns <pareto.tcl> <#pod> <speed in M> <high_len> <low_util>
E.g.: ns pareto.tcl 4 200M 100 0.1

♦   A broadcast routing protocol called TreeDCB, 2010-2011 

I implemented a new broadcast routing protocol called TreeDCB under the ns-2 simulator and made its source codes available at http://sourceforge.net/projects/tdcb. This protocol is described in one of my conference papers (see publications). In this release, both the C++ codes for the TreeDCB implementation and the TCL scripts for experimenting TreeDCB under ns-2 are included. They can help others to implement similar protocols under ns-2. Below explains how to install and use this software.

------------------------------------------------------------------
To install and run tdcb, please follow the steps below.
------------------------------------------------------------------
1. Under the ns-2.34 directory:
tar vxf tdcb.tar
2. Modify other ns-2 source files according to 'howto-tdcb-ns2.txt' in the tar file.
3. Under the directory ns-2.34:
touch tcl/lib/ns-lib.tcl
make
4. Under the directory tcl/ex/tdcb:
# generate node placement and movement scenario
rwp <NodeNumber> <NodeDensity> <MaxSpeed>
# start simulation ns tdcb.tcl <NodeNumber> <NodeDensity> <MaxSpeed>
e.g.
rwp 100 150 5
ns tdcb.tcl 100 150 5

♦   Some of my experiences with ns-2 are summarized here.