diff options
-rw-r--r-- | 3rd_party/ixia/ixnetrfc2544.tcl | 4 | ||||
-rwxr-xr-x | 3rd_party/ixia/ixnetrfc2544v2.tcl | 8 | ||||
-rwxr-xr-x | conf/01_testcases.conf | 4 | ||||
-rw-r--r-- | conf/03_traffic.conf | 5 | ||||
-rw-r--r-- | core/vswitch_controller_p2p.py | 8 | ||||
-rw-r--r-- | docs/release/release-notes/index.rst | 17 | ||||
-rw-r--r-- | docs/release/release-notes/release-notes.rst (renamed from docs/release/release-notes/vsperf-release.rst) | 9 | ||||
-rw-r--r-- | docs/testing/developer/design/LICENSE (renamed from docs/configguide/LICENSE) | 0 | ||||
-rw-r--r-- | docs/testing/developer/design/factory_and_loader.png (renamed from docs/design/factory_and_loader.png) | bin | 25586 -> 25586 bytes | |||
-rw-r--r-- | docs/testing/developer/design/traffic_controller.png (renamed from docs/design/traffic_controller.png) | bin | 57868 -> 57868 bytes | |||
-rw-r--r-- | docs/testing/developer/design/trafficgen_integration_guide.rst (renamed from docs/design/trafficgen_integration_guide.rst) | 0 | ||||
-rw-r--r-- | docs/testing/developer/design/vsperf.png (renamed from docs/design/vsperf.png) | bin | 93029 -> 93029 bytes | |||
-rw-r--r-- | docs/testing/developer/design/vswitchperf_design.rst (renamed from docs/design/vswitchperf_design.rst) | 11 | ||||
-rw-r--r-- | docs/testing/developer/index.rst (renamed from docs/index.rst) | 61 | ||||
-rw-r--r-- | docs/testing/developer/requirements/LICENSE (renamed from docs/design/LICENSE) | 0 | ||||
-rw-r--r-- | docs/testing/developer/requirements/ietf_draft/LICENSE (renamed from docs/requirements/ietf_draft/LICENSE) | 0 | ||||
-rw-r--r-- | docs/testing/developer/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-00.xml (renamed from docs/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-00.xml) | 0 | ||||
-rw-r--r-- | docs/testing/developer/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-01.xml (renamed from docs/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-01.xml) | 0 | ||||
-rw-r--r-- | docs/testing/developer/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-00.xml (renamed from docs/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-00.xml) | 0 | ||||
-rw-r--r-- | docs/testing/developer/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-01.xml (renamed from docs/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-01.xml) | 0 | ||||
-rw-r--r-- | docs/testing/developer/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-02.xml (renamed from docs/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-02.xml) | 0 | ||||
-rw-r--r-- | docs/testing/developer/requirements/vm2vm_alternative_benchmark.png (renamed from docs/requirements/vm2vm_alternative_benchmark.png) | bin | 104244 -> 104244 bytes | |||
-rw-r--r-- | docs/testing/developer/requirements/vm2vm_benchmark.png (renamed from docs/requirements/vm2vm_benchmark.png) | bin | 80797 -> 80797 bytes | |||
-rw-r--r-- | docs/testing/developer/requirements/vm2vm_hypervisor_benchmark.png (renamed from docs/requirements/vm2vm_hypervisor_benchmark.png) | bin | 122975 -> 122975 bytes | |||
-rw-r--r-- | docs/testing/developer/requirements/vm2vm_virtual_interface_benchmark.png (renamed from docs/requirements/vm2vm_virtual_interface_benchmark.png) | bin | 99544 -> 99544 bytes | |||
-rw-r--r-- | docs/testing/developer/requirements/vswitchperf_ltd.rst (renamed from docs/requirements/vswitchperf_ltd.rst) | 0 | ||||
-rw-r--r-- | docs/testing/developer/requirements/vswitchperf_ltp.rst (renamed from docs/requirements/vswitchperf_ltp.rst) | 10 | ||||
-rw-r--r-- | docs/testing/developer/results/results.rst (renamed from docs/results/results.rst) | 10 | ||||
-rw-r--r-- | docs/testing/developer/results/scenario.rst (renamed from docs/results/scenario.rst) | 20 | ||||
-rw-r--r-- | docs/testing/user/configguide/LICENSE (renamed from docs/requirements/LICENSE) | 0 | ||||
-rw-r--r-- | docs/testing/user/configguide/TCLServerProperties.png (renamed from docs/configguide/TCLServerProperties.png) | bin | 11667 -> 11667 bytes | |||
-rw-r--r-- | docs/testing/user/configguide/index.rst | 51 | ||||
-rw-r--r-- | docs/testing/user/configguide/installation.rst (renamed from docs/configguide/installation.rst) | 0 | ||||
-rw-r--r-- | docs/testing/user/configguide/trafficgen.rst (renamed from docs/configguide/trafficgen.rst) | 0 | ||||
-rw-r--r-- | docs/testing/user/configguide/upgrade.rst (renamed from docs/configguide/upgrade.rst) | 0 | ||||
-rw-r--r-- | docs/testing/user/userguide/index.rst | 10 | ||||
-rw-r--r-- | docs/testing/user/userguide/integration.rst (renamed from docs/userguide/integration.rst) | 0 | ||||
-rw-r--r-- | docs/testing/user/userguide/teststeps.rst (renamed from docs/userguide/teststeps.rst) | 0 | ||||
-rw-r--r-- | docs/testing/user/userguide/testusage.rst (renamed from docs/userguide/testusage.rst) | 0 | ||||
-rw-r--r-- | docs/testing/user/userguide/yardstick.rst (renamed from docs/userguide/yardstick.rst) | 0 | ||||
-rw-r--r-- | testcases/testcase.py | 2 | ||||
-rw-r--r-- | tools/functions.py | 14 | ||||
-rwxr-xr-x | vsperf | 2 |
43 files changed, 154 insertions, 92 deletions
diff --git a/3rd_party/ixia/ixnetrfc2544.tcl b/3rd_party/ixia/ixnetrfc2544.tcl index faab5a68..5dccae3f 100644 --- a/3rd_party/ixia/ixnetrfc2544.tcl +++ b/3rd_party/ixia/ixnetrfc2544.tcl @@ -1,7 +1,7 @@ #!/usr/bin/env tclsh # Copyright (c) 2014, Ixia -# Copyright (c) 2015-2016, Intel Corporation +# Copyright (c) 2015-2017, Intel Corporation # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -120,8 +120,6 @@ proc startRfc2544Test { testSpec trafficSpec } { if {($multipleStreams < 0)} { set multipleStreams 0 - } elseif {($multipleStreams > 65535)} { - set multipleStreams 65535 } if {$multipleStreams} { diff --git a/3rd_party/ixia/ixnetrfc2544v2.tcl b/3rd_party/ixia/ixnetrfc2544v2.tcl index cc5a6946..5758f0e4 100755 --- a/3rd_party/ixia/ixnetrfc2544v2.tcl +++ b/3rd_party/ixia/ixnetrfc2544v2.tcl @@ -1,7 +1,7 @@ #!/usr/bin/env tclsh # Copyright (c) 2014, Ixia -# Copyright (c) 2015-2016, Intel Corporation +# Copyright (c) 2015-2017, Intel Corporation # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -115,11 +115,7 @@ proc startRfc2544Test { testSpec trafficSpec } { set numflows 64000 if {$multipleStreams} { - if {($multipleStreams > 65535)} { - set numflows 65535 - } else { - set numflows $multipleStreams - } + set numflows $multipleStreams set multipleStreams increment } else { set multipleStreams singleValue diff --git a/conf/01_testcases.conf b/conf/01_testcases.conf index 4851b043..2d5ab93e 100755 --- a/conf/01_testcases.conf +++ b/conf/01_testcases.conf @@ -1,4 +1,4 @@ -# Copyright 2015-2016 Intel Corporation. +# Copyright 2015-2017 Intel Corporation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -270,7 +270,7 @@ PERFORMANCE_TESTS = [ "Parameters" : { "TRAFFIC" : { "traffic_type" : "rfc2544_throughput", - "multistream" : "8000", + "multistream" : 8000, }, }, }, diff --git a/conf/03_traffic.conf b/conf/03_traffic.conf index ccc98e3b..baded627 100644 --- a/conf/03_traffic.conf +++ b/conf/03_traffic.conf @@ -1,4 +1,4 @@ -# Copyright 2015 Intel Corporation. +# Copyright 2015-2017 Intel Corporation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -39,7 +39,8 @@ LOG_FILE_TRAFFIC_GEN = 'traffic-gen.log' # 'multistream' - Defines number of flows simulated by traffic generator. # Value 0 disables multistream feature # Data type: int -# Supported values: 0-65535 +# Supported values: 0-65536 for 'L4' stream type +# unlimited for 'L2' and 'L3' stream types # Default value: 0. # 'stream_type' - Stream type is an extension of the "multistream" feature. # If multistream is disabled, then stream type will be diff --git a/core/vswitch_controller_p2p.py b/core/vswitch_controller_p2p.py index de3fcc0d..0d41b145 100644 --- a/core/vswitch_controller_p2p.py +++ b/core/vswitch_controller_p2p.py @@ -1,4 +1,4 @@ -# Copyright 2015 Intel Corporation. +# Copyright 2015-2017 Intel Corporation. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -147,7 +147,7 @@ class VswitchControllerP2P(IVswitchController): if self._traffic['stream_type'] == 'L2': # iterate through destimation MAC address dst_mac_value = netaddr.EUI(self._traffic['l2']['dstmac']).value - for i in range(int(self._traffic['multistream'])): + for i in range(self._traffic['multistream']): tmp_mac = netaddr.EUI(dst_mac_value + i) tmp_mac.dialect = netaddr.mac_unix_expanded flow_template.update({'dl_dst':tmp_mac}) @@ -156,7 +156,7 @@ class VswitchControllerP2P(IVswitchController): elif self._traffic['stream_type'] == 'L3': # iterate through destimation IP address dst_ip_value = netaddr.IPAddress(self._traffic['l3']['dstip']).value - for i in range(int(self._traffic['multistream'])): + for i in range(self._traffic['multistream']): tmp_ip = netaddr.IPAddress(dst_ip_value + i) flow_template.update({'dl_type':'0x0800', 'nw_dst':tmp_ip}) # optimize flow insertion by usage of cache @@ -164,7 +164,7 @@ class VswitchControllerP2P(IVswitchController): elif self._traffic['stream_type'] == 'L4': # read transport protocol from configuration and iterate through its destination port proto = _PROTO_TCP if self._traffic['l3']['proto'].lower() == 'tcp' else _PROTO_UDP - for i in range(int(self._traffic['multistream'])): + for i in range(self._traffic['multistream']): flow_template.update({'dl_type':'0x0800', 'nw_proto':proto, 'tp_dst':i}) # optimize flow insertion by usage of cache self._vswitch.add_flow(bridge, flow_template, cache='on') diff --git a/docs/release/release-notes/index.rst b/docs/release/release-notes/index.rst new file mode 100644 index 00000000..84f350c4 --- /dev/null +++ b/docs/release/release-notes/index.rst @@ -0,0 +1,17 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) OPNFV, Intel Corporation and others. + +.. _vswitchperf-releasenotes: + +================================================== +VSPERF Release Notes +================================================== + +.. toctree:: + :numbered: + :maxdepth: 2 + + release-notes.rst + +Build date: |today| diff --git a/docs/release/release-notes/vsperf-release.rst b/docs/release/release-notes/release-notes.rst index 52a01abc..c2dff390 100644 --- a/docs/release/release-notes/vsperf-release.rst +++ b/docs/release/release-notes/release-notes.rst @@ -2,9 +2,6 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) OPNFV, Intel Corporation, AT&T and others. -******************** -VSPERF Release Notes -******************** OPNFV Danube Release ==================== @@ -205,9 +202,3 @@ follow once the community has digested the initial release. - Framework support for different VNFs - Python3 - Support for biDirectional functionality for ixnet interface - -Missing -======= - -- xmlunit output is currently disabled - diff --git a/docs/configguide/LICENSE b/docs/testing/developer/design/LICENSE index 7bc572ce..7bc572ce 100644 --- a/docs/configguide/LICENSE +++ b/docs/testing/developer/design/LICENSE diff --git a/docs/design/factory_and_loader.png b/docs/testing/developer/design/factory_and_loader.png Binary files differindex 290c0af6..290c0af6 100644 --- a/docs/design/factory_and_loader.png +++ b/docs/testing/developer/design/factory_and_loader.png diff --git a/docs/design/traffic_controller.png b/docs/testing/developer/design/traffic_controller.png Binary files differindex 598296ec..598296ec 100644 --- a/docs/design/traffic_controller.png +++ b/docs/testing/developer/design/traffic_controller.png diff --git a/docs/design/trafficgen_integration_guide.rst b/docs/testing/developer/design/trafficgen_integration_guide.rst index 382cedcb..382cedcb 100644 --- a/docs/design/trafficgen_integration_guide.rst +++ b/docs/testing/developer/design/trafficgen_integration_guide.rst diff --git a/docs/design/vsperf.png b/docs/testing/developer/design/vsperf.png Binary files differindex 4af2ac62..4af2ac62 100644 --- a/docs/design/vsperf.png +++ b/docs/testing/developer/design/vsperf.png diff --git a/docs/design/vswitchperf_design.rst b/docs/testing/developer/design/vswitchperf_design.rst index da7ec6fd..aa7fb342 100644 --- a/docs/design/vswitchperf_design.rst +++ b/docs/testing/developer/design/vswitchperf_design.rst @@ -21,11 +21,11 @@ Usage Example Connectivity to DUT --------------------------- -Establish connectivity to the VSPERF DUT Linux host, such as the DUT in Pod 3, -by following the steps in `Testbed POD3 -<https://wiki.opnfv.org/get_started/pod_3_-_characterize_vswitch_performance>`__ +Establish connectivity to the VSPERF DUT Linux host. If this is in an OPNFV lab +following the steps provided by `Pharos <https://www.opnfv.org/community/projects/pharos>`_ + to `access the POD <https://wiki.opnfv.org/display/pharos/Pharos+Lab+Support>`_ -The steps cover booking the DUT and establishing the VSPERF environment. +The followign steps establish the VSPERF environment. Example Command Lines --------------------- @@ -305,7 +305,8 @@ Detailed description of ``TRAFFIC`` dictionary items follows: 'multistream' - Defines number of flows simulated by traffic generator. Value 0 disables multistream feature Data type: int - Supported values: 0-65535 + Supported values: 0-65536 for 'L4' stream type + unlimited for 'L2' and 'L3' stream types Default value: 0. 'stream_type' - Stream type is an extension of the "multistream" feature. If multistream is disabled, then stream type will be diff --git a/docs/index.rst b/docs/testing/developer/index.rst index 889d4ab6..c89f27fc 100644 --- a/docs/index.rst +++ b/docs/testing/developer/index.rst @@ -7,6 +7,7 @@ ====== VSPERF ====== + VSPERF is an OPNFV testing project. VSPERF provides an automated test-framework and comprehensive test suite based on @@ -27,64 +28,44 @@ setup of the network and/or for control of the test-generator and test execution * Artifacts: https://artifacts.opnfv.org/vswitchperf.html * Continuous Integration status: https://build.opnfv.org/ci/view/vswitchperf/ -****************************** -VSPERF Installation Guide -****************************** - -.. toctree:: - :caption: VSPERF Installation Guide - :maxdepth: 5 - :numbered: 5 - - ./configguide/installation.rst - ./configguide/upgrade.rst - ./configguide/trafficgen.rst -****************************** -VSPERF User Guide -****************************** +**************************** +VSPERF Developer Guide +**************************** .. toctree:: - :caption: VSPERF User Guide + :caption: VSPERF Developer Guide :maxdepth: 5 :numbered: 5 - ./userguide/testusage.rst - ./userguide/teststeps.rst - ./userguide/integration.rst - Yardstick integration <./userguide/yardstick.rst> + ./design/trafficgen_integration_guide.rst + ./design/vswitchperf_design.rst + + ./requirements/vswitchperf_ltd.rst + ./requirements/vswitchperf_ltp.rst -************** -VSPERF Design -************** +***************************** +VSPERF - IETF Internet Draft +***************************** .. toctree:: - :caption: VSPERF Design + :caption: IETF Internet Draft :maxdepth: 5 :numbered: 5 - ./design/vswitchperf_design.rst - ./design/trafficgen_integration_guide.rst +`Benchmarking Virtual Switches in OPNFV <https://tools.ietf.org/html/draft-ietf-bmwg-vswitch-opnfv-01>`_ -******************* -VSPERF Requirements -******************* +Drafts (xml) are maintained in IETF repo. https://tools.ietf.org/html/ + +******************************** +VSPERF Scenarios and CI Results +******************************** .. toctree:: - :caption: VSPERF Requirements + :caption: VSPERF Scenarios & Results :maxdepth: 5 :numbered: 5 - ./requirements/vswitchperf_ltp.rst - ./requirements/vswitchperf_ltd.rst - -************** -VSPERF Results -************** - -.. toctree:: - :maxdepth: 3 - ./results/scenario.rst ./results/results.rst diff --git a/docs/design/LICENSE b/docs/testing/developer/requirements/LICENSE index 7bc572ce..7bc572ce 100644 --- a/docs/design/LICENSE +++ b/docs/testing/developer/requirements/LICENSE diff --git a/docs/requirements/ietf_draft/LICENSE b/docs/testing/developer/requirements/ietf_draft/LICENSE index 7fc9ae14..7fc9ae14 100644 --- a/docs/requirements/ietf_draft/LICENSE +++ b/docs/testing/developer/requirements/ietf_draft/LICENSE diff --git a/docs/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-00.xml b/docs/testing/developer/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-00.xml index 2259b23c..2259b23c 100644 --- a/docs/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-00.xml +++ b/docs/testing/developer/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-00.xml diff --git a/docs/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-01.xml b/docs/testing/developer/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-01.xml index c8a3d99b..c8a3d99b 100644 --- a/docs/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-01.xml +++ b/docs/testing/developer/requirements/ietf_draft/draft-ietf-bmwg-vswitch-opnfv-01.xml diff --git a/docs/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-00.xml b/docs/testing/developer/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-00.xml index b5f7f833..b5f7f833 100644 --- a/docs/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-00.xml +++ b/docs/testing/developer/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-00.xml diff --git a/docs/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-01.xml b/docs/testing/developer/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-01.xml index a9405a77..a9405a77 100644 --- a/docs/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-01.xml +++ b/docs/testing/developer/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-01.xml diff --git a/docs/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-02.xml b/docs/testing/developer/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-02.xml index 9157763e..9157763e 100644 --- a/docs/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-02.xml +++ b/docs/testing/developer/requirements/ietf_draft/draft-vsperf-bmwg-vswitch-opnfv-02.xml diff --git a/docs/requirements/vm2vm_alternative_benchmark.png b/docs/testing/developer/requirements/vm2vm_alternative_benchmark.png Binary files differindex d21334ba..d21334ba 100644 --- a/docs/requirements/vm2vm_alternative_benchmark.png +++ b/docs/testing/developer/requirements/vm2vm_alternative_benchmark.png diff --git a/docs/requirements/vm2vm_benchmark.png b/docs/testing/developer/requirements/vm2vm_benchmark.png Binary files differindex 3a85e51f..3a85e51f 100644 --- a/docs/requirements/vm2vm_benchmark.png +++ b/docs/testing/developer/requirements/vm2vm_benchmark.png diff --git a/docs/requirements/vm2vm_hypervisor_benchmark.png b/docs/testing/developer/requirements/vm2vm_hypervisor_benchmark.png Binary files differindex b5b76e8a..b5b76e8a 100644 --- a/docs/requirements/vm2vm_hypervisor_benchmark.png +++ b/docs/testing/developer/requirements/vm2vm_hypervisor_benchmark.png diff --git a/docs/requirements/vm2vm_virtual_interface_benchmark.png b/docs/testing/developer/requirements/vm2vm_virtual_interface_benchmark.png Binary files differindex 55294af6..55294af6 100644 --- a/docs/requirements/vm2vm_virtual_interface_benchmark.png +++ b/docs/testing/developer/requirements/vm2vm_virtual_interface_benchmark.png diff --git a/docs/requirements/vswitchperf_ltd.rst b/docs/testing/developer/requirements/vswitchperf_ltd.rst index e1372520..e1372520 100644 --- a/docs/requirements/vswitchperf_ltd.rst +++ b/docs/testing/developer/requirements/vswitchperf_ltd.rst diff --git a/docs/requirements/vswitchperf_ltp.rst b/docs/testing/developer/requirements/vswitchperf_ltp.rst index 2b74d676..e5147bea 100644 --- a/docs/requirements/vswitchperf_ltp.rst +++ b/docs/testing/developer/requirements/vswitchperf_ltp.rst @@ -1295,13 +1295,9 @@ vsperf also identified an alternative configuration for the final step: Environment/infrastructure ============================ -Intel is providing a hosted test-bed with nine bare-metal environments -allocated to different OPNFV projects. Currently a number of servers in -`Intel POD 3 <https://wiki.opnfv.org/display/pharos/Intel+Pod3>`__ are -allocated to vsperf: - - * pod3-wcp-node3 and pod3-wcp-node4 which are used for CI jobs. - * pod3-node6 which is used as a vsperf sandbox environment. +VSPERF CI jobs are run using the OPNFV lab infrastructure as described by the +'Pharos Project <https://www.opnfv.org/community/projects/pharos>`_ . +A VSPERF POD is described here https://wiki.opnfv.org/display/pharos/VSPERF+in+Intel+Pharos+Lab+-+Pod+12 vsperf CI --------- diff --git a/docs/results/results.rst b/docs/testing/developer/results/results.rst index 1fd6d443..df9c52cb 100644 --- a/docs/results/results.rst +++ b/docs/testing/developer/results/results.rst @@ -2,12 +2,12 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) OPNFV, Intel Corporation, AT&T and others. -OPNFV Brahmaputra Results +OPNFV Test Results ========================= -The vsperf CI jobs that were used to obtain the -results can be found at https://wiki.opnfv.org/wiki/vsperf_results. +VSPERF CI jobs are run daily and sample results can be found at +https://wiki.opnfv.org/display/vsperf/Vsperf+Results -The following table maps the results in the test dashboard to the appropriate +The following example maps the results in the test dashboard to the appropriate test case in the VSPERF Framework and specifies the metric the vertical/Y axis is plotting. **Please note**, the presence of dpdk within a test name signifies that the vswitch under test was OVS with DPDK, while its absence indicates that @@ -34,5 +34,5 @@ pvvp_b2b_ovsdpdkuser pvvp_back2back Throughput (FPS) vhost-user pvvp_b2b_ovsvirtio pvvp_back2back Throughput (FPS) virtio-net ===================== ===================== ================== =============== -The loopback application in the VNF used for PVP and PVVP scenarios was DPDK +The loopback application in the VNF was used for PVP and PVVP scenarios was DPDK testpmd. diff --git a/docs/results/scenario.rst b/docs/testing/developer/results/scenario.rst index 49ff626a..a57d6a03 100644 --- a/docs/results/scenario.rst +++ b/docs/testing/developer/results/scenario.rst @@ -2,12 +2,13 @@ .. http://creativecommons.org/licenses/by/4.0 .. (c) OPNFV, Intel Corporation, AT&T and others. -OPNFV Brahmaputra Scenarios -=========================== -Available Tests and aspects of scenarios: +VSPERF Test Scenarios +===================== + +Predefined Tests run with CI: ===================== =========================================================== - Framework Test Definition + Test Definition ===================== =========================================================== phy2phy_tput :ref:`PacketLossRatio <PacketLossRatio>` for :ref:`Phy2Phy <Phy2Phy>` back2back :ref:`BackToBackFrames <BackToBackFrames>` for :ref:`Phy2Phy <Phy2Phy>` @@ -24,14 +25,14 @@ phy2phy_cpu_load :ref:`CPU0PacketLoss <CPU0PacketLoss>` for :ref:`Phy2Phy < phy2phy_mem_load Same as :ref:`CPU0PacketLoss <CPU0PacketLoss>` but using a memory intensive app ===================== =========================================================== -Supported deployment scenarios: +Deployment topologies: * :ref:`Phy2Phy <Phy2Phy>`: Physical port -> vSwitch -> Physical port. * :ref:`PVP <PVP>`: Physical port -> vSwitch -> VNF -> vSwitch -> Physical port. * :ref:`PVVP <PVVP>`: Physical port -> vSwitch -> VNF -> vSwitch -> VNF -> vSwitch -> Physical port. -Loopback applications in the Guest can be: +Loopback applications in the Guest: * `DPDK testpmd <http://dpdk.org/doc/guides/testpmd_app_ug/index.html>`_. * Linux Bridge. @@ -39,7 +40,8 @@ Loopback applications in the Guest can be: Supported traffic generators: +* Spirent Testcenter * Ixia: IxOS and IxNet. -* Spirent. -* Dummy. - +* Xena +* MoonGen +* Dummy diff --git a/docs/requirements/LICENSE b/docs/testing/user/configguide/LICENSE index 7bc572ce..7bc572ce 100644 --- a/docs/requirements/LICENSE +++ b/docs/testing/user/configguide/LICENSE diff --git a/docs/configguide/TCLServerProperties.png b/docs/testing/user/configguide/TCLServerProperties.png Binary files differindex 682de7c5..682de7c5 100644 --- a/docs/configguide/TCLServerProperties.png +++ b/docs/testing/user/configguide/TCLServerProperties.png diff --git a/docs/testing/user/configguide/index.rst b/docs/testing/user/configguide/index.rst new file mode 100644 index 00000000..4e082261 --- /dev/null +++ b/docs/testing/user/configguide/index.rst @@ -0,0 +1,51 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) OPNFV, Intel Corporation, AT&T, Red Hat, Spirent, Ixia and others. + +.. OPNFV VSPERF Documentation master file. + +====== +VSPERF +====== + +VSPERF is an OPNFV testing project. + +VSPERF provides an automated test-framework and comprehensive test suite based on +industry standards for measuring data-plane performance of Telco NFV switching +technologies as well as physical and virtual network interfaces (NFVI). The VSPERF +architecture is switch and traffic generator agnostic and provides full control of +software component versions and configurations as well as test-case customization. + +The Danube release of VSPERF includes improvements in documentation and capabilities. +This includes additional test-cases such as RFC 5481 Latency test and RFC-2889 +address-learning-rate test. Hardware traffic generator support is now provided for +Spirent and Xena in addition to Ixia. The Moongen software traffic generator is also +now fully supported. VSPERF can be used in a variety of modes for configuration and +setup of the network and/or for control of the test-generator and test execution. + +* Wiki: https://wiki.opnfv.org/characterize_vswitch_performance_for_telco_nfv_use_cases +* Repository: https://git.opnfv.org/vswitchperf +* Artifacts: https://artifacts.opnfv.org/vswitchperf.html +* Continuous Integration status: https://build.opnfv.org/ci/view/vswitchperf/ + +****************************** +VSPERF User Guide +****************************** + +.. toctree:: + :caption: VSPERF User Guide + :maxdepth: 5 + :numbered: 5 + + ./installation.rst + ./upgrade.rst + ./trafficgen.rst + + ../userguide/testusage.rst + ../userguide/teststeps.rst + ../userguide/integration.rst + ../userguide/yardstick.rst + +Indices +======= +* :ref:`search` diff --git a/docs/configguide/installation.rst b/docs/testing/user/configguide/installation.rst index 1965a8f5..1965a8f5 100644 --- a/docs/configguide/installation.rst +++ b/docs/testing/user/configguide/installation.rst diff --git a/docs/configguide/trafficgen.rst b/docs/testing/user/configguide/trafficgen.rst index 4e42b2be..4e42b2be 100644 --- a/docs/configguide/trafficgen.rst +++ b/docs/testing/user/configguide/trafficgen.rst diff --git a/docs/configguide/upgrade.rst b/docs/testing/user/configguide/upgrade.rst index cf92572c..cf92572c 100644 --- a/docs/configguide/upgrade.rst +++ b/docs/testing/user/configguide/upgrade.rst diff --git a/docs/testing/user/userguide/index.rst b/docs/testing/user/userguide/index.rst new file mode 100644 index 00000000..5c6886bf --- /dev/null +++ b/docs/testing/user/userguide/index.rst @@ -0,0 +1,10 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. (c) OPNFV, Intel Corporation, AT&T, Red Hat, Spirent, Ixia and others. + +.. OPNFV VSPERF Documentation master file. + + +Indices +======= +* :ref:`search` diff --git a/docs/userguide/integration.rst b/docs/testing/user/userguide/integration.rst index 83b29da6..83b29da6 100644 --- a/docs/userguide/integration.rst +++ b/docs/testing/user/userguide/integration.rst diff --git a/docs/userguide/teststeps.rst b/docs/testing/user/userguide/teststeps.rst index 870c3d80..870c3d80 100644 --- a/docs/userguide/teststeps.rst +++ b/docs/testing/user/userguide/teststeps.rst diff --git a/docs/userguide/testusage.rst b/docs/testing/user/userguide/testusage.rst index c6037aaf..c6037aaf 100644 --- a/docs/userguide/testusage.rst +++ b/docs/testing/user/userguide/testusage.rst diff --git a/docs/userguide/yardstick.rst b/docs/testing/user/userguide/yardstick.rst index b5e5c72d..b5e5c72d 100644 --- a/docs/userguide/yardstick.rst +++ b/docs/testing/user/userguide/yardstick.rst diff --git a/testcases/testcase.py b/testcases/testcase.py index 5446d0d9..75ed1a5c 100644 --- a/testcases/testcase.py +++ b/testcases/testcase.py @@ -140,6 +140,8 @@ class TestCase(object): self._traffic.update({'bidir': bidirectional, 'tunnel_type': self._tunnel_type,}) + self._traffic = functions.check_traffic(self._traffic) + # Packet Forwarding mode self._vswitch_none = S.getValue('VSWITCH').strip().lower() == 'none' diff --git a/tools/functions.py b/tools/functions.py index d00200d9..05bde54f 100644 --- a/tools/functions.py +++ b/tools/functions.py @@ -21,6 +21,8 @@ import glob import shutil from conf import settings as S +MAX_L4_FLOWS = 65536 + # # Support functions # @@ -139,3 +141,15 @@ def settings_update_paths(): tools['dpdk_src'] = S.getValue('PATHS')['dpdk']['src']['path'] S.setValue('TOOLS', tools) + +def check_traffic(traffic): + """Check traffic definition and correct it if needed. + """ + # in case of UDP ports we have only 65536 (0-65535) unique options + if traffic['multistream'] > MAX_L4_FLOWS and \ + traffic['stream_type'] == 'L4': + logging.getLogger().warning('Requested amount of L4 flows %s is bigger than ' + 'number of transport protocol ports. It was set ' + 'to %s.', traffic['multistream'], MAX_L4_FLOWS) + traffic['multistream'] = MAX_L4_FLOWS + return traffic @@ -626,6 +626,8 @@ def main(): # set traffic details, so they can be passed to traffic ctl traffic = copy.deepcopy(settings.getValue('TRAFFIC')) + traffic = functions.check_traffic(traffic) + traffic_ctl = component_factory.create_traffic( traffic['traffic_type'], loader.get_trafficgen_class()) |