An XML Front-End for ns-3


An XML Front-End for ns-3 George Riley and Josh Pelkey Georgia Institute of Technology


• • • • • • Motivation Approach Details of XML interface Problems with the Approach Alternative Approaches Summary


• • • • A primary effort from the NSF funding for ns-3 is “educational use”.

The ns-3 simulator requires tools for compiling, linking, and in some cases C++ programming skills.

The majority of classroom educators at college level, either at undergraduate or graduate level are unlikely to have these compiling/linking tools readily available, and are not in fact skilled in these areas.

– Often rely on undergraduate or graduate “teaching assistants”, who may or may not have programming skills.

In order to promote “educational use”, we must have a simple way, using tools that are readily available to nearly all users (eg. Text editor)


• • • • • • Describe the ns-3 simulation scenario using the well-known Extensible Markup Language (XML).

Implement an XML parser that both understands the XML syntax, and the meaning of the ns-3 objects specified The XML parser will read the complete XML file, validate that it is correct, then create the ns-3 objects (nodes, links, protocol stacks, routing objects, and applications) The parser will produce meaningful and detailed error messages when erroneous specifications are detected.

Allows command line arguments to vary independent variables, to illustrate effects of network parameters. A difficulty is that the XML syntax is not easily adapted to concepts such as loops, repetitions, and references to other XML elements

Details of XML Interface

• The XML root element is the


element – Attribute “


” – Subelements: •


• • • • •

randomgenerators topology applications animation statistics



• Attributes are: –


• Name of ns-3 attribute –


• Default value if not specified –


• Help text



• Subelements – exponential • Name • Mean • limit – Uniform • Name • Min • Max – Normal • Name • Mean • variance – Constant • Name • Value

randomgenerators example

• • • • • •

Topology Element

• • Attributes – autoIPV4 – GODRouting – NIXRouting – autoIPV4Base – autoIPV4mask Subelements – Queue element – P2plink element – Node element – Connect p2p – Dumbbell

Applications Element

• Subelements – Onoff – Constantbitrate – Bulksend

Statistics Element

• • Log subelement, attributes: – Repeat – Name – Stat – At – Frequency Example: –

Problems with this Approach

• • • • • Windows!

– The vast majority of teaching faculty use windows. We will have to have a windows versio • John Abraham has already ported most of ns-3 to the win32 API Animation!

– Not only topology and packets, but various metrics (queue occupancy, sequence number for TCP, etc) Still need detailed understanding of how ns-3 pieces fit together Lack of “real-time” statistics (ie. Queue occupancy over time as simulation is running).

Requires new code in ns3xml for each release (with new topology, applications, queues, etc).

Alternative Approaches

• • Drag and drop GUI – Still need some “save file format”, so perhaps the drag and drop GUI could produce ns3xml format.

Pre-compile many “scenarios” and use command line arguments for setting independent variables.

– Presupposes we an predict in advance all possible teaching scenarios. Seems unlikely


• • • Ns3xml is still work in progress Usefulness and ease of use in the classroom is yet to be demonstrated Proof is in the pudding.

– We will monitor when and if other teaching faculty download and use ns3xml