wiki:Tutorials/c0WiFi/Tutorial3

Version 8 (modified by nilanjan, 10 years ago) ( diff )

Wifi Tutorial: Access point with multiple clients

This tutorial shows how an experiment script configures an access point (AP) and multiple clients for performance testing with iperf. In this experiment script we'll use an OMF feature to define an application header for iperf and run this application on the AP and access points.

Experiment Script

The experiment script is shown below. Near the top of the script we define an application header for iperf. After which we define two groups - the first group (AP) consists of a single node to be configured as an access point. The second group (client) can be single or multiple node(s) to be configured as wifi clients. Both groups add the iperf application and configure the wireless interfaces accordingly. At the bottom of the script, the nodes in the all the groups are brought up and the applications are executed.

     1  #
     2  # Tutorial experiment
     3  #
     4  defProperty('accesspoint', 'node1-1', "node ID for access point")
     5  defProperty('client', 'node1-2', "node ID for client nodes")
     6  defProperty('duration', 60, "Seconds to run the application.")
     7
     8  defApplication('iperf', 'iperf-oml2') do |app|
     9
    10    app.version(2, 10, 0)
    11    app.shortDescription = 'Iperf traffic generator and bandwidth measurement tool'
    12    app.description = %{Iperf is a traffic generator and bandwidth measurement
    13  tool. It provides generators producing various forms of packet streams and port
    14  for sending these packets via various transports, such as TCP and UDP.
    15  }
    16    app.path = "/usr/bin/iperf-oml2"
    17
    18    app.defProperty('interval', 'pause n seconds between periodic bandwidth reports', '-i',
    19                    :type => :double, :unit => "seconds", :default => '1.')
    20    app.defProperty('len', 'set length read/write buffer to n (default 8 KB)', '-l',
    21                    :type => :integer, :unit => "KiBytes")
    22    app.defProperty('print_mss', 'print TCP maximum segment size (MTU - TCP/IP header)', '-m',
    23                    :type => :boolean)
    24    app.defProperty('output', 'output the report or error message to this specified file', '-o',
    25                    :type => :string)
    26    app.defProperty('port', 'set server port to listen on/connect to to n (default 5001)', '-p',
    27                    :type => :integer)
    28    app.defProperty('udp', 'use UDP rather than TCP', '-u',
    29                    :type => :boolean,
    30                    :order => 2)
    31    app.defProperty('window', 'TCP window size (socket buffer size)', '-w',
    32                    :type => :integer, :unit => "Bytes")
    33    app.defProperty('bind', 'bind to <host>, an interface or multicast address', '-B',
    34                    :type => :string)
    35    app.defProperty('compatibility', 'for use with older versions does not sent extra msgs', '-C',
    36                    :type => :boolean)
    37    app.defProperty('mss', 'set TCP maximum segment size (MTU - 40 bytes)', '-M',
    38                    :type => :integer, :unit => "Bytes")
    39    app.defProperty('nodelay', 'set TCP no delay, disabling Nagle\'s Algorithm', '-N',
    40                    :type => :boolean)
    41    app.defProperty('IPv6Version', 'set the domain to IPv6', '-V',
    42                    :type => :boolean)
    43    app.defProperty('reportexclude', 'exclude C(connection) D(data) M(multicast) S(settings) V(server) reports', '-x',
    44                    :type => :string, :unit => "[CDMSV]")
    45    app.defProperty('reportstyle', 'C or c for CSV report, O or o for OML', '-y',
    46                    :type => :string, :unit => "[CcOo]", :default => "o") # Use OML reporting by default
    47
    48    app.defProperty('oml-server', 'OML server for collecting data','--oml-server')
    49    app.defProperty('oml-id', 'ID for this oml client','--oml-id')
    50    app.defProperty('oml-exp-id', 'ID for this experiment','--oml-exp-id')
    51
    52    app.defProperty('server', 'run in server mode', '-s',
    53                    :type => :boolean)
    54
    55    app.defProperty('bandwidth', 'set target bandwidth to n bits/sec (default 1 Mbit/sec)', '-b',
    56                    :type => :string, :unit => "Mbps")
    57    app.defProperty('client', 'run in client mode, connecting to <host>', '-c',
    58                    :type => :string,
    59                    :order => 1)
    60    app.defProperty('dualtest', 'do a bidirectional test simultaneously', '-d',
    61                    :type => :boolean)
    62    app.defProperty('num', 'number of bytes to transmit (instead of -t)', '-n',
    63                    :type => :integer, :unit => "Bytes")
    64    app.defProperty('tradeoff', 'do a bidirectional test individually', '-r',
    65                    :type => :boolean)
    66    app.defProperty('time', 'time in seconds to transmit for (default 10 secs)', '-t',
    67                    :type => :integer, :unit => "seconds")
    68    app.defProperty('fileinput', 'input the data to be transmitted from a file', '-F',
    69                    :type => :string)
    70    app.defProperty('stdin', 'input the data to be transmitted from stdin', '-I',
    71                    :type => :boolean)
    72    app.defProperty('listenport', 'port to recieve bidirectional tests back on', '-L',
    73                    :type => :integer)
    74    app.defProperty('parallel', 'number of parallel client threads to run', '-P',
    75                    :type => :integer)
    76    app.defProperty('ttl', 'time-to-live, for multicast (default 1)', '-T',
    77                    :type => :integer,
    78                    :default => 1)
    79    app.defProperty('linux-congestion', 'set TCP congestion control algorithm (Linux only)', '-Z',
    80                    :type => :boolean)
    81
    82  app.defMeasurement("application"){ |m|
    83      m.defMetric('pid', :integer, 'Main process identifier')
    84      m.defMetric('version', :string, 'Iperf version')
    85      m.defMetric('cmdline', :string, 'Iperf invocation command line')
    86      m.defMetric('starttime_s', :integer, 'Time the application was received (s)')
    87      m.defMetric('starttime_us', :integer, 'Time the application was received (us)')
    88  }
    89
    90  app.defMeasurement("settings"){ |m|
    91      m.defMetric('pid', :integer, 'Main process identifier')
    92      m.defMetric('server_mode', :integer, '1 if in server mode, 0 otherwise')
    93      m.defMetric('bind_address', :string, 'Address to bind')
    94      m.defMetric('multicast', :integer, '1 if listening to a Multicast group')
    95      m.defMetric('multicast_ttl', :integer, 'Multicast TTL if relevant')
    96      m.defMetric('transport_protocol', :integer, 'Transport protocol (IANA number)')
    97      m.defMetric('window_size', :integer, 'TCP window size')
    98      m.defMetric('buffer_size', :integer, 'UDP buffer size')
    99  }
   100
   101  app.defMeasurement("connection"){ |m|
   102      m.defMetric('pid', :integer, 'Main process identifier')
   103      m.defMetric('connection_id', :integer, 'Connection identifier (socket)')
   104      m.defMetric('local_address', :string, 'Local network address')
   105      m.defMetric('local_port', :integer, 'Local port')
   106      m.defMetric('remote_address', :string, 'Remote network address')
   107      m.defMetric('remote_port', :integer, 'Remote port')
   108  }
   109
   110  app.defMeasurement("transfer"){ |m|
   111      m.defMetric('pid', :integer, 'Main process identifier')
   112      m.defMetric('connection_id', :integer, 'Connection identifier (socket)')
   113      m.defMetric('begin_interval', :double, 'Start of the averaging interval (Iperf timestamp)')
   114      m.defMetric('end_interval', :double, 'End of the averaging interval (Iperf timestamp)')
   115      m.defMetric('size', :uint64, 'Amount of transmitted data [Bytes]')
   116  }
   117
   118  app.defMeasurement("losses"){ |m|
   119      m.defMetric('pid', :integer, 'Main process identifier')
   120      m.defMetric('connection_id', :integer, 'Connection identifier (socket)')
   121      m.defMetric('begin_interval', :double, 'Start of the averaging interval (Iperf timestamp)')
   122      m.defMetric('end_interval', :double, 'End of the averaging interval (Iperf timestamp)')
   123      m.defMetric('total_datagrams', :integer, 'Total number of datagrams')
   124      m.defMetric('lost_datagrams', :integer, 'Number of lost datagrams')
   125  }
   126
   127  app.defMeasurement("jitter"){ |m|
   128      m.defMetric('pid', :integer, 'Main process identifier')
   129      m.defMetric('connection_id', :integer, 'Connection identifier (socket)')
   130      m.defMetric('begin_interval', :double, 'Start of the averaging interval (Iperf timestamp)')
   131      m.defMetric('end_interval', :double, 'End of the averaging interval (Iperf timestamp)')
   132      m.defMetric('jitter', :double, 'Average jitter [ms]')
   133  }
   134
   135  app.defMeasurement("packets"){ |m|
   136      m.defMetric('pid', :integer, 'Main process identifier')
   137      m.defMetric('connection_id', :integer, 'Connection identifier (socket)')
   138      m.defMetric('packet_id', :integer, 'Packet sequence number for datagram-oriented protocols')
   139      m.defMetric('packet_size', :integer, 'Packet size')
   140      m.defMetric('packet_time_s', :integer, 'Time the packet was processed (s)')
   141      m.defMetric('packet_time_us', :integer, 'Time the packet was processed (us)')
   142      m.defMetric('packet_sent_time_s', :integer, 'Time the packet was sent (s) for datagram-oriented protocols')
   143      m.defMetric('packet_sent_time_us', :integer, 'Time the packet was sent (us) for datagram-oriented protocols')
   144  }
   145
   146  end
   147
   148
   149
   150  defGroup('AP', property.accesspoint) do |node|
   151    node.addApplication("iperf") do |app|
   152      app.setProperty('server', true)
   153    end
   154    node.net.w0.mode = "master"
   155    node.net.w0.type = 'g'
   156    node.net.w0.channel = "6"
   157    node.net.w0.essid = "TEST1234"
   158    node.net.w0.ip = "192.168.0.254"
   159  end
   160
   161  defGroup('client', property.client) do |node|
   162    node.addApplication("iperf") do |app|
   163      app.setProperty('client', "192.168.0.254")
   164      app.setProperty('time', 20)
   165      app.setProperty('interval', 5)
   166      #app.setProperty('reportstyle','O')
   167      #app.setProperty('oml-server', "oml:3003")
   168      #app.setProperty('oml-id', "#{Experiment.ID}")
   169      #app.setProperty('oml-exp-id', "#{Experiment.ID}")
   170    end
   171    node.net.w0.mode = "managed"
   172    node.net.w0.type = 'g'
   173    node.net.w0.channel = "6"
   174    node.net.w0.essid = "TEST1234"
   175    node.net.w0.ip = "192.168.0.%index%"
   176  end
   177
   178  onEvent(:ALL_UP_AND_INSTALLED) do |event|
   179    info "Wifi Multi Client Iperf Experiment"
   180    wait 10
   181    allGroups.startApplications
   182    info "All my Applications are started now..."
   183    wait property.duration
   184    allGroups.stopApplications
   185    info "All my Applications are stopped now."
   186    Experiment.done
   187  end

Here's brief run down with some details from top to bottom.

  • In Lines 4-6 we use defProperty to define a few experiment properties along with default values which allows the script to be executed with arguments passed from the command line.
  • From Lines 8 - 146 we use defApplication to define the application header for iperf.

Here we defined a reference name iperf that can be used later in the script.

defApplication('iperf', 'iperf-oml2') do |app|

The actual path to the iperf application in the node is defined.

app.path = "/usr/bin/iperf-oml2"

The numerous defProperty that follows defines a reference to the various arguments for the application. In the following definition the reference name interval is mapped to the application argument specified with the -i flag. The default value and the other properties can also be specified.

app.defProperty('interval', 'pause n seconds between periodic bandwidth reports', '-i',
                  :type => :double, :unit => "seconds", :default => '1.')
  • We define a reference name AP for the access point node using defGroup
    defGroup('AP', property.accespoint) do |node|
      node.addApplication("iperf") do |app|
        app.setProperty('server', true)
      end
      node.net.w0.mode = "master"
      node.net.w0.type = 'g'
      node.net.w0.channel = "6"
      node.net.w0.essid = "TEST1234"
      node.net.w0.ip = "192.168.0.254"
    end
    
    Several things are happening here:
    1. The group name AP references the node specified in property.master. This group only consists of a single node.
    2. node.addApplication connects the previously defined iperf application to this node with the specified arguments and values using setProperty. The iperf application is configured as a server.
    3. The wireless card properties are set using with the node.net.w0 parameters. Here we set node.net.w0.mode to master to configure the wireless card as an access point. Other relevant parameters are also set here as well.
  • Likewise we use defGroup again to define a reference name client for the client node(s).
    defGroup('client', property.client) do |node|
      node.addApplication("iperf") do |app|
        app.setProperty('client', "192.168.0.254")
        app.setProperty('time', 20)
        app.setProperty('interval', 5)
      end
      node.net.w0.mode = "managed"
      node.net.w0.type = 'g'
      node.net.w0.channel = "6"
      node.net.w0.essid = "TEST1234"
      node.net.w0.ip = "192.168.0.%index%"
    end
    
    1. The group name client references the node(s) specified in property.client. This group can have multiple nodes.
    2. node.addApplication connects the previously defined iperf application to the node(s). iperf is configured as a client connection to the specified ip address.
    3. The wireless card properties are set using with the node.net.w0 parameters. Note that we set node.net.w0.mode to managed to configure the wireless card as client. Other relevant parameters are also set here as well. Since we can have multiple nodes in a group we specify node.net.w0.ip with the last byte of the IP address as %index%. In this way each node will have a unique address.
  • At the end of the script once all the nodes are at the same point and all applications have been initialized, an event is triggered to continue and execute the remaining steps. The 10 second delay before the call to startApplications, this allows time for the clients to establish a wifi connection with the access point before continuing. Iperf is started on all the nodes, execution of experiment script is delayed again giving time to collect experiment data. Finally all applications are stopped and the experiment exits out.
    onEvent(:ALL_UP_AND_INSTALLED) do |event|
      info "Wifi Multi Client Iperf Experiment"
      wait 10
      allGroups.startApplications
      info "All my Applications are started now..."
      wait property.duration
      allGroups.stopApplications
      info "All my Applications are stopped now."
      Experiment.done
    end
    

Executing the Experiment Script

An overview on running experiment scripts on the orbit testbed can be found on the Getting Started Page. In order to run this experiment script, load baseline.ndz image on nodes with wifi cards. Check the Status Page' on the Control Panel to select any particular type of wifi card.

nilanjan@console.grid:~/EXP$ omf load -i baseline.ndz -t node15-1,node16-1,node17-1,node19-1,node20-1

After the nodes have finished imaging, turn the nodes on. The topology used here is system:topo:imaged which selected the prior set of node that were successfully imaged.

nilanjan@console.grid:~/EXP$ omf tell -a on -t system:topo:imaged

To run this experiment with 2 clients nodes:

nilanjan@console.grid:~/EXP$ omf exec test:exp:tutorial:wifi-ap-iperf.rb -- --accesspoint node15-1 --client node16-1,node17-1 --duration 60

The output of this script should be similar to the following:

 INFO NodeHandler: OMF Experiment Controller 5.4 (git 3fb37b9)
 INFO NodeHandler: Reading configuration file /etc/omf-expctl-5.4/services.yaml
 INFO NodeHandler: Add domain http - http://internal1.orbit-lab.org:5054/
 INFO NodeHandler: Add domain http - http://repository1.orbit-lab.org:5054/
 INFO NodeHandler: Slice ID: default_slice (default)
 INFO NodeHandler: Experiment ID: default_slice-2014-10-09t10.15.22.101-04.00
 INFO NodeHandler: Message authentication is disabled
 INFO Experiment: load system:exp:stdlib
 INFO property.resetDelay: resetDelay = 230 (Fixnum)
 INFO property.resetTries: resetTries = 1 (Fixnum)
 INFO Experiment: load system:exp:eventlib
 INFO Experiment: load system:exp:winlib
 INFO Experiment: load wifi-ap-iperf.rb
 INFO property.accesspoint: accesspoint = "node15-1" (String)
 INFO property.client: client = "node16-1,node17-1" (String)
 INFO property.duration: duration = 60 (Fixnum)
 INFO ALL_UP_AND_INSTALLED: Event triggered. Starting the associated tasks.
 INFO exp: Wifi Multi Client Iperf Experiment
 INFO exp: Request from Experiment Script: Wait for 10s....
 INFO node17-1.grid.orbit-lab.org: Device 'net/w0' reported Not-Associated
 INFO node16-1.grid.orbit-lab.org: Device 'net/w0' reported 00:60:B3:AC:2B:D5
 INFO exp: All my Applications are started now...
 INFO exp: Request from Experiment Script: Wait for 60s....
 INFO node17-1.grid.orbit-lab.org: Device 'net/w0' reported 00:60:B3:AC:2B:D5
 INFO exp: All my Applications are stopped now.
 INFO EXPERIMENT_DONE: Event triggered. Starting the associated tasks.
 INFO NodeHandler:
 INFO NodeHandler: Shutting down experiment, please wait...
 INFO NodeHandler:
 INFO run: Experiment default_slice-2014-10-09t10.15.22.101-04.00 finished after 1:20

A detailed output of the experiment along with iperf's output are aggregated in a log file: /tmp/default_slice-2014-10-09t10.15.22.101-04.00.log or in general /tmp/Experiment ID.log. Partial contents of this file is shown below:

2014-10-09 10:15:38 INFO nodeHandler::exp: All my Applications are started now...
2014-10-09 10:15:38 INFO nodeHandler::exp: Request from Experiment Script: Wait for 60s....
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STARTED from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: ''
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STARTED from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: ''
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STARTED from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: ''
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: '------------------------------------------------------------'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: '------------------------------------------------------------'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: 'Server listening on TCP port 5001'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: 'TCP window size: 85.3 KiByte (default)'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: 'Client connecting to 192.168.0.254, TCP port 5001'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: 'TCP window size: 21.0 KiByte (default)'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: '------------------------------------------------------------'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: '[  7] local 192.168.0.254 port 5001 connected with 192.168.0.2 port 45466'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: '------------------------------------------------------------'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: '[  6] local 192.168.0.2 port 45466 connected with 192.168.0.254 port 5001'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: '------------------------------------------------------------'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: '[  8] local 192.168.0.254 port 5001 connected with 192.168.0.3 port 47013'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: 'Client connecting to 192.168.0.254, TCP port 5001'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: 'TCP window size: 21.0 KiByte (default)'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: '------------------------------------------------------------'
2014-10-09 10:15:39 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: '[  6] local 192.168.0.3 port 47013 connected with 192.168.0.254 port 5001'
2014-10-09 10:15:40 DEBUG nodeHandler::AgentCommands: DEV_EVENT CELL_ID from: 'net/w0' (node17-1.grid.orbit-lab.org) - msg: '00:60:B3:AC:2B:D5'
2014-10-09 10:15:40 INFO nodeHandler::node::node17-1.grid.orbit-lab.org: Device 'net/w0' reported 00:60:B3:AC:2B:D5
2014-10-09 10:15:44 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: '[ ID] Interval       Transfer     Bandwidth'
2014-10-09 10:15:44 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: '[  6]  0.0- 5.0 sec  2.88 MiBytes  4.82 Mbits/sec'
2014-10-09 10:15:44 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: '[ ID] Interval       Transfer     Bandwidth'
2014-10-09 10:15:44 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: '[  6]  0.0- 5.0 sec  4.62 MiBytes  7.76 Mbits/sec'
2014-10-09 10:15:49 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: '[  6]  5.0-10.0 sec  2.00 MiBytes  3.36 Mbits/sec'
2014-10-09 10:15:49 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: '[  6]  5.0-10.0 sec  4.38 MiBytes  7.34 Mbits/sec'
2014-10-09 10:15:54 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: '[  6] 10.0-15.0 sec  2.62 MiBytes  4.40 Mbits/sec'
2014-10-09 10:15:54 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: '[  6] 10.0-15.0 sec  2.75 MiBytes  4.61 Mbits/sec'
2014-10-09 10:15:59 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: '[  6] 15.0-20.0 sec  3.00 MiBytes  5.03 Mbits/sec'
2014-10-09 10:15:59 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: '[  6]  0.0-20.1 sec  10.6 MiBytes  4.43 Mbits/sec'
2014-10-09 10:15:59 DEBUG nodeHandler::AgentCommands: APP_EVENT DONE.OK from: 'iperf#2' (node16-1.grid.orbit-lab.org) - msg: 'status: 0'
2014-10-09 10:15:59 DEBUG nodeHandler::NodeApp: Application 'iperf#2' on 'node16-1.grid.orbit-lab.org' finished successfully (end of application)
2014-10-09 10:15:59 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: '[ ID] Interval       Transfer     Bandwidth'
2014-10-09 10:15:59 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: '[  7]  0.0-20.3 sec  10.6 MiBytes  4.40 Mbits/sec'
2014-10-09 10:15:59 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: '[  6] 15.0-20.0 sec  3.75 MiBytes  6.29 Mbits/sec'
2014-10-09 10:15:59 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: '[  6]  0.0-20.1 sec  15.6 MiBytes  6.51 Mbits/sec'
2014-10-09 10:15:59 DEBUG nodeHandler::AgentCommands: APP_EVENT STDOUT from: 'iperf#1' (node15-1.grid.orbit-lab.org) - msg: '[  8]  0.0-20.2 sec  15.6 MiBytes  6.49 Mbits/sec'
2014-10-09 10:15:59 DEBUG nodeHandler::AgentCommands: APP_EVENT DONE.OK from: 'iperf#2' (node17-1.grid.orbit-lab.org) - msg: 'status: 0'
2014-10-09 10:15:59 DEBUG nodeHandler::NodeApp: Application 'iperf#2' on 'node17-1.grid.orbit-lab.org' finished successfully (end of application)
2014-10-09 10:16:38 DEBUG nodeHandler::nodeSetPath: Stop all applications

Attachments (1)

Download all attachments as: .zip

Note: See TracWiki for help on using the wiki.