Have questions? Stuck? Please check our FAQ for some common questions and answers.

Description

Packet_out is one of the most important content of SDN controller. It is the most frequent message between the controller and the openflow switch.

This test will create a switch connected to a controller, through the switch, we send different rates of packet_in message to the controller to measure the controller's processing power of packet_in.

There's two content should measure:

      1、The maximum packet_out rate

      2、The latency of packet_out

We configure one million packet_in packets on the IxNetwork and send them to the controller through different rates to analyze the packet_out rate and latency.

The rate is in accordance with the sequence 5000、10000、15000、20000 ... ...

Auxiliary channel is not support by ONOS, wo use primary channel here.

Suggestions

  1. The transmission frequency of packet_in
    We suggest the packet_in interval is 50ms, that is 20 copies of packet_in messages are send in one second, every copy contains numbers of packet_in packets, and this can be configured in IxNetwork.
  2. Environment
    This test result depends on the test environment, the results measured in different environments will be very different, in the VM environment and the physical environment the results of the test difference of nearly 10 times.

Preparation

  • Features install

    onos> feature:install onos-drivers
    onos> feature:install onos-openflow
    onos> feature:install onos-openflow-base
    onos> feature:install onos-app-fwd



Test steps

      1. Config IxNetwork with one switch and two hosts. Set the packet_in messages of the switch, the interval is 50ms, total 1000000 packets, using ICMP or ARP packets.

      2. Start the controller with the features install.

      3. Start the OF protocol of the switch.

      4. Wait until the channel is established and Echo message interaction started.

      5. Start the capture of IxNetwork.

      6. Enable packet_in, wait until all of the packet_in messages are sent and  no packet_out messages receive.

      7. Stop the capture, analyse the messages captured. First verify the number of packet_out message N, N should be equal to 1 million, if N is less than 1 million, restart this test with smaller packet_in rate. Second, calculate the time difference between the first packet_out message and the last packet_out message T, the packet_out rate can be calculated by N/T. Third, calculate the time delay of each packet_in-packet_out pair as t1、t2、t3 ... ... , of course this can be caculate by decentralized way(select ten sets of pairs), at last calculate the latency by t1+t2+t3 ... ... /N.

      8. Clean the configuration of controllers and IxNetwork.

      9. Repeat test step 1-9 for five times.

      10. Restart the test with another packet_in rate.

Test Results

 

IxNetwork current packet_in rate is only up to 30000 p/s, can not measure the maximum packet_in processing rate of controller. Therefore, we use BII test suite tested results to show.

 

  • Packet_out rate and latency

    Packet_in rate (p/s)Packet_out rate (p/s)Latency(ms)
    500050021.13
    10000100100.6
    15000149991.06
    20000199452.49
    25000249680.84
    30000298761.73
    35000348533.56
    40000402606.62
    450004142589.88
    5000044123159.55
    5500045825227.57
    6000046168331.21
    6500046558451.97
    7000047024540.5
    7500048766590.97
    8000046436754.88
    8500048437810.88
    9000048586901.75
    9500048232Packet loss occurs
    10000045921Packet loss occurs
  • Histogram of Packet_out rate



  • Histogram of Packet_out latency



As we can see from the result, the maximum packet_out rate is 40000-50000 p/s, when the packet_in rate exceeds 40000 p/s, latency will increase with the rate of packet_in greatly increased. When packet_in rate exceeds 90000 p/s, packet loss occurs.

Therefore, we conclude that the best processing performance of packet_out of ONOS is less than or equal to 40000 p/s.



 

 

 

 

 


 

 



 

      

 

 

 

 

 

 

  • No labels