defProperty('source1', "nodeA", "ID of a resource") defProperty('source2', "nodeB", "ID of a resource") #defProperty('sink2', "nodeB", "ID of a sink") #defProperty('sink3', "nodeC", "ID of a sink") #defProperty('sink4', "nodeD", "ID of a sink") #defProperty('sink5', "nodeE", "ID of a sink") defProperty('sinkaddr11', '10.10.1.1', "Ping destination address") defProperty('sinkaddr12', '10.10.1.2', "Ping destination address") defApplication('ping_app', 'pingmonitor') do |a| a.path = "/root/pingWrap.rb" a.version(1, 2, 0) a.shortDescription = "Wrapper around ping" a.description = "ping application" a.defProperty('dest_addr', 'Address to ping', '-a', {:type => :string, :dynamic => false}) a.defProperty('count', 'Number of times to ping', '-c', {:type => :integer, :dynamic => false}) a.defProperty('interval', 'Interval between pings in s', '-i', {:type => :integer, :dynamic => false}) a.defMeasurement('myping') do |m| #a.defMeasurement('myping', '') do |m| m.defMetric('dest_addr',:string) m.defMetric('ttl',:int) m.defMetric('rtt',:float) m.defMetric('rtt_unit',:string) end end defGroup('Source1', property.source1) do |node| node.addApplication("ping_app") do |app| app.setProperty('dest_addr', property.sinkaddr12) app.setProperty('count', 30) app.setProperty('interval', 1) app.measure('myping', :samples => 1) end end defGroup('Source2', property.source2) do |node| node.addApplication("ping_app") do |app| app.setProperty('dest_addr', property.sinkaddr11) app.setProperty('count', 30) app.setProperty('interval', 1) app.measure('myping', :samples => 1) end end #defGroup('Sink1', property.sink1) do |node| #end #defGroup('Sink2', property.sink2) do |node| #end #defGroup('Sink3', property.sink3) do |node| #end #defGroup('Sink4', property.sink4) do |node| #end #defGroup('Sink5', property.sink5) do |node| #end onEvent(:ALL_UP_AND_INSTALLED) do |event| info "Starting the ping" allGroups.startApplications wait 30 info "Stopping the ping" allGroups.stopApplications Experiment.done end defGraph 'RTT' do |g| g.ms('myping').select(:oml_seq, :dest_addr, :rtt)#.where(:dest_addr => "192.168.5.12") g.caption "RTT of received packets." g.type 'line_chart3' g.mapping :x_axis => :oml_seq, :y_axis => :rtt, :group_by => :dest_addr # g.group_by(:dest_addr) g.xaxis :legend => 'oml_seq' g.yaxis :legend => 'rtt', :ticks => {:format => 's'} end