#
# Create an application representation from scratch
#
require 'handler/appDefinition'
a = AppDefinition.create('test:app:otg')
a.name = "otg"
a.version(1, 1, 2)
a.shortDescription = "Programmable traffic generator"
a.description = <<TEXT
OTG is a configurable traffic generator. It contains generators
producing various forms of packet streams and port for sending
these packets via various transports, such as TCP and UDP.
TEXT
# addProperty(name, description, mnemonic, type, isDynamic = false, constraints = nil)
a.addProperty('protocol', 'Protocol to use [udp|tcp]', nil, String, false)
a.addProperty('generator', "Generator to use [cbr|expoo]'; nil, String, false)
#UDP/TCP
a.addProperty("port", "Local port to bind to [int]", nil, Integer, false)
a.addProperty("dsthostname", "Name of destination host [string]", nil, String, false)
a.addProperty("dstport", "Destination port to send to", nil, String, false)
a.addProperty("broadcast", "broadcast on/off", nil, String, false)
# RAW
a.addProperty("txdev","the device to tranmsit packets", nil, String, false)
a.addProperty("dstmacaddr", "MAC address of the destination", nil, String, false)
# CBR Generator
a.addProperty("size", "Size of packet [bytes]", nil, Integer, false)
a.addProperty("interval", "Internval between consecutive packets [msec]", nil, Integer, false)
a.addProperty("rate", "Data rate of the flow [kbps]", nil, Integer, false)
# Exponential On/Off traffic generator
a.addProperty("ontime", "average burst length in milliseconds", nil, Integer, false)
a.addProperty("offtime", "average idle time in milliseconds", nil, Integer, false)
a.addMeasurement("senderport", nil, [
['pkt_seqno', 'long'],
['pkt_size', 'long'],
['gen_timestamp', Float],
['tx_timestamp', 'long']
])
#a.aptName = 'orbit-otg'
a.path = "/usr/bin/otg"
if $0 == __FILE__
require 'stringio'
require 'rexml/document'
include REXML
sio = StringIO.new()
a.to_xml.write(sio, 2)
sio.rewind
puts sio.read
sio.rewind
doc = Document.new(sio)
t = AppDefinition.from_xml(doc.root)
puts
puts "-------------------------"
puts
t.to_xml.write($stdout, 2)
end
Last modified
19 years ago
Last modified on Aug 13, 2006, 3:02:52 AM
Note:
See TracWiki
for help on using the wiki.
