vHost devices executed tests

Anuket Project

vHost devices executed tests

Test Environment details:

  • Bare Metal,  Ubuntu 16.04.1 LTS

Repo/branch used:

DPDK stats: DPDK vhost interface to retrieve stats.

Tests precondition:

  • Latest DPDK installed (17.02, also try with DPDK 16.04).

DPDK configuration:

Collectd configuration:

LoadPlugin dpdkstat
<Plugin dpdkstat>
  <EAL>
    Coremask "0x2"
    MemoryChannels "4"
    ProcessType "secondary"
    FilePrefix "rte"
  </EAL>
#  SharedMemObj "dpdk_collectd_stats_0"
  EnabledPortMask 0xffff
#  PortName "interface1"
#  PortName "interface2"
</Plugin>

Table#1: DPDK stats vhost interface tests.

#

Test summary

Steps

 Expected

Test Result

Comments

#

Test summary

Steps

 Expected

Test Result

Comments

1

Verify vhost DPDK stats upon collectd restart.

  1. Start collectd. Start testpmd.

  2. Stop collectd.

  3. Start collectd.

  1. DPDK stats are updated.

  2. DPDK stats are not updated.

  3. DPDK stats are updated.

 

 

2

Verify vhost DPDK stats with different time interval.

  1. Change time interval to 1 second. Start collectd, testpmd.

  2. Change time interval in range 2-90 seconds.
    Restart collectd.

  1. DPDK stats are updated every second.

  2. DPDK stats are updated every new defined time interval.

 

 

3

Verify vhost DPDK stats with default configuration.

  1. Comment out "<Plugin dpdkstat>" section in collectd.conf.
    Start collectd, testpmd.

  2. Define "collectd configuration" in collectd.conf file.
    Restart collectd service.

  1. Collectd started with default configuration, with warnings?
    DPDK stats are updated every time interval.

  2. Collectd started with given configuration.
    DPDK stats are updated every time interval.

 

 

4

Verify vhost DPDK stats counters number for available driver.

  1. Start collectd, testpmd.

  2. Get all available vhost DPDK stats counters.

  3. Provide list of counters available and driver.

  1. Collectd started without errors.

  2. Record number of counters.

  3. Number and counters available.

 

MT: Please note the number of stats supported for a vhost port - will be only a subset of that of a physical port.

SA: Just will dump counters for driver tested.

5

Verify vhost DPDK Xstats counters number for available driver.

  1. Start collectd, testpmd.

  2. Get all available vhost DPDK Xstats counters.

  3. Compare them with DPDK Xstats counters.

  1. Collectd started without errors.

  2. Record number of counters.

  3. Number and counters names are the same?

 

 

6

Verify vhost DPDK stats for Rx packets/bytes counters.

  1. Start collectd, testpmd.

  2. Send traffic toward vhost port.

  1. Collectd started without errors.

  2. Vhost DPDK statistic for Rx packets bytes is same as sent, shown by collectd plugin.

 

 

7

Verify vhost DPDK stats for packets with different size.

  1. Start collectd, testpmd.

  2. Send packets toward vhost with different packet size [bytes]: 64, 128, 256, 512, 1024, 1518.

  3. Try to send packets with size [bytes]: 60, 2048, 10000.

  1. Collectd started.

  2. Vhost DPDK statistic for Rx packets sizes is same as sent, shown by collectd plugin.

  3. Vhost DPDK statistic for Rx packets sizes is same as sent, shown by collectd plugin.

 

 

8

Verify vhost DPDK stats for unicast/multicast/broadcast packets.

  1. Start collectd, testpmd.

  2. Send packets toward vhost: unicast, multicast, broadcast.

  1. Collectd started.

  2. Vhost DPDK statistic for unicast/multicast/broadcast is same as sent, shown by collectd plugin.

 

 

9

Verify vhost DPDK Xstats not available for DPDK 16.04.

  1. Install separately DPDK 16.04.

  2. Reconfigure system to work with DPDK 16.04.

  3. Get vhost DPDK stats.

  1. Success.

  2. Success (hopefully).

  3. Xstats counters are not available for vhost DPDK.

 

 

DPDK events: DPDK vhost interface to retrieve link status.

Collectd configuration:

<Plugin "dpdkevents">
  <EAL>
     Coremask "0xf"
     MemoryChannels "4"
     ProcessType "secondary"
     FilePrefix "rte"
  </EAL>
  <Event "link_status">
     SendEventsOnUpdate true
     EnabledPortMask 0xffff
     SendNotification false
  </Event>
</Plugin>

Table#2: DPDK events vhost interface tests.

 #

Test summary

Steps

 Expected

Test Result

Comments

 #

Test summary

Steps

 Expected

Test Result

Comments

1

Verify vhost DPDK metrics upon SendEventsOnUpdate set to true/false.

  1. Set "SendEventsOnUpdate true" in collectd.conf.

  2. Start collectd, testpmd.

  3. Set port up/down/up.

  4. Set "SendEventsOnUpdate false" in collectd.conf. Restart collectd.

  5. Set port up/down.

3. Verify link status is dispatched as statistic accordingly.

5. Verify link status is not dispatched as statistic.

 

 

2

Verify vhost DPDK metrics are not collected for ports disabled by EnabledPortMask.

  1. Set "EnabledPortMask 0xFE". This will disable port 0.

  2. Start collectd. Start testpmd.

  3. Set port up/down and wait read interval.

  4. Set "EnabledPortMask field to 0x01". Restart collectd.

  5. Set port up/down and wait read interval.

3. Verify that link status is not dispatched for port this port.

5. Verify link status is dispatched for this port.

 

 

3

Verify vhost DPDK metrics not collected for ports disabled by EnabledPortMask and disabled by SendEventsOnUpdate.

  1. Set "EnabledPortMask 0xFE", "SendEventsOnUpdate false".

  2. Start collectd. Start testpmd.

  3. Set port up/down and wait read interval.

3. Verify link status is not dispatched as statistic accordingly.

 

 

4

Verify link status is collected according to defined PortName field.

  1. Set "PortName 'test_port' " value.

  2. Start collectd. Start testpmd.

  3. Set port up/down/up.
     

3. Verify link status is dispatched for port name 'test_port'.

 

 

5

Verify vhost DPDK link status correct notification is sent when SendNotification and SendEventsOnUpdate are true.

  1. Set "SendEventsOnUpdate true", "SendNotification true".

  2. Start collectd. Start testpmd.

  3. Set port up/down/up.

3. Verify link status is dispatched only when link state is changed.

Verify notification about link status changed is present in syslog.

 

 

6

Verify vhost DPDK link status correct notification is sent when SendNotification is true and SendEventsOnUpdate is false.

  1. Set "SendEventsOnUpdate false", "SendNotification true".

  2. Start collectd. Start testpmd.

  3. Set port up/down/up.

3. Verify link status is dispatched every read interval.

Verify notification about link status changed is present in syslog.

 

 

7

Verify vhost DPDK link status is collected when default dpdkevents configuration is applied.

  1. In collectd.conf leave only "LoadPlugin "dpdkevents" line.

  2. Start collectd. Start testpmd.

2. Verify link status is dispatched as statistic every read interval.

 

 

8

Verify vhost DPDK events plugin attemps to reconnect to primary process every read interval.

  1. Start collectd. Start testpmd.

  2. Wait for at least one read interval.

  3. Stop testpmd.

3. Check syslog for attempts to reconnect to primary process every read interval.

 

 

9

Verify vhost DPDK events plugin dispatch values every 5ms.

  1. Set read interval for dpdkevents plugin to 0.005 seconds.

  2. Start testpmd. Start collectd.

  3. Wait for at least one read interval.

3. Verify values are dispatched every 5 ms.

 

 

10

Verify vhost DPDK events plugin stops collecting link status data after primary process is stopped and resumes collecting when primary process is started again.

  1. Start collectd. Start testpmd.

  2. Wait for at least one read interval.

  3. Stop testpmd.

  4. Start testpmd.

3. Wait read interval and check that no data is dispatched.

4. Wait read interval and check that data is dispatched.

 

 

 

OVS stats: native vhost interface (tap device) and DPDK vhost interface to retrieve statistic.

 

OVS stats: DPDK vhost interface to retrieve statistic.

Tests precondition:

  • OVS (with DPDK) is started with OVS bridge/port added  to configuration.

OVS/DPDK vhost tap configuration:

  • OVS with DPDK is build/configured.

Collectd configuration:

  • <Plugin ovs_stats> 

  •  

    • Port "6640"

    • Address "127.0.0.1"

    • Socket "/var/run/openvswitch/db.sock"

    • Bridges "br0"

          </Plugin> 

Table#4: OVS stats DPDK vhost interface tests.

#

Test summary

Steps

 Expected

Test Result

Comments

#

Test summary

Steps

 Expected

Test Result

Comments

1

Verify vhost OVS stats upon collectd restart.

  1. Start collectd.

  2. Stop collectd.

  3. Start collectd.

  1. OVS stats updated, is same as in collectd plugin.

  2. OVS stats not updated by collectd plugin.

  3. OVS stats updated, is same as in collectd plugin.

 

 

2

Verify vhost OVS stats with different time interval.

  1. Change time interval to 1 second. Start collectd, testpmd.

  2. Change time interval in range 2-90 seconds.
    Restart collectd.

  1. OVS stats updated every second.

  2. OVS stats updated every new defined time interval.
    OVS stats is same as in collectd plugin.

 

 

3

Verify vhost OVS stats with default configuration.

  1. Comment out "<Plugin ovs_stats>" section in collectd.conf.
    Start collectd, testpmd.

  2. Define "collectd configuration" in collectd.conf file.
    Restart collectd service.

  1. Collectd started with default configuration, check syslog.
    OVS stats updated every time interval by collectd.

  2. Collectd started with given configuration.
    OVS stats are updated every time interval by collectd.

 

 

4

Verify vhost OVS stats for Rx packets/bytes counters.

  1. Start collectd.

  2. Send traffic toward vhost port.

  1. Collectd started without errors.

  2. Vhost OVS statistic for Rx packets bytes is same as sent, shown by collectd plugin.

 

 

5

Verify vhost OVS stats for packets with different size.

  1. Start collectd.

  2. Send packets toward vhost with different packet size [bytes]: 64, 128, 256, 512, 1024, 1518.

  3. Try to send packets with size [bytes]: 60, 2048, 10000.

  1. Collectd started.

  2. Vhost OVS statistic for Rx packets sizes is same as sent, shown by collectd plugin.

  3. Vhost OVS statistic for Rx packets sizes is same as sent, shown by collectd plugin.

 

 

6

Verify vhost OVS stats for unicast/multicast/broadcast packets.

  1. Start collectd.

  2. Send packets toward vhost: unicast, multicast, broadcast.

  1. Collectd started.

  2. Vhost OVS statistic for unicast/multicast/broadcast is same as sent, shown by collectd plugin.