An XML Front-End for ns-3

An XML Front-End for ns-3
George Riley and Josh Pelkey
Georgia Institute of Technology
Details of XML interface
Problems with the Approach
Alternative Approaches
• 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 ns3 element
– Attribute “StopAt”
– Subelements:
cmdline element
• Attributes are:
– name
• Name of ns-3 attribute
– default
• Default value if not specified
– help
• Help text
randomgenerators element
• Subelements
– exponential
• Name
• Mean
• limit
– Uniform
• Name
• Min
• Max
– Normal
• Name
• Mean
• variance
– Constant
• Name
• Value
randomgenerators example
<randomgenerators runNumber = "$runNumber" seed =
"123456" >
<exponential name = "exp1" mean = "1.0" limit
= "100.0" />
name = "uni1" min = "0.0" max =
"1.0" />
name = "norm1" mean = "0.0"
variance = "1.0" />
name = "const1" value = "0.0" />
Topology Element
• Attributes
• Subelements
Queue element
P2plink element
Node element
Connect p2p
Applications Element
• Subelements
– Onoff
– Constantbitrate
– Bulksend
Statistics Element
• Log subelement, attributes:
– Repeat
– Name
– Stat
– At
– Frequency
• Example:
<log repeat = "10" name = "sinkRx" stat =
"$packetsinkapp$0$totalBytesRx" at = "1.0" frequency =
"1.0" />
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
• 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
Related flashcards
Create Flashcards