aboutsummaryrefslogtreecommitdiffstats
path: root/tests/unit/network_services/vnf_generic/vnf
AgeCommit message (Collapse)AuthorFilesLines
2018-02-28Merge "Improve SampleVNF hugepages setup"Abhijit Sinha1-36/+21
2018-02-28Merge "Addition of storage of extra counters for Grafana"Abhijit Sinha2-15/+21
2018-02-28Addition of storage of extra counters for GrafanaDanielMartinBuckley2-15/+21
JIRA: YARDSTICK-1036 This stores a number of extra counters in influxdb for Prox test cases. It also stores existing counters with a "succcess_" tag. Previously throughput where stored without success or failure indication. Also "Result_" counters are also stored. These can now be used by Grafana to graph output. Change-Id: Ie5636c14ecbab1b53a988bdfbd47ddd1fcdbd695 Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
2018-02-16Merge "Remove tool provisioning from DpdkVnfSetupEnvHelper._setup_dpdk"Rodolfo Alonso Hernandez1-28/+25
2018-02-14NSB: fix test_vpe_vnf.pyRoss Brattain1-1/+1
Change-Id: Ie1da572e2ac00e380b25f8e22f5aa9059dcb5238 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-14NSB: fix pylint warnings in test_tg_ixloadRoss Brattain1-2/+9
Change-Id: Ieb58167d8b20e0de32578b3df105a141507869d5 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-12Remove tool provisioning from DpdkVnfSetupEnvHelper._setup_dpdkRodolfo Alonso Hernandez1-28/+25
Both "uio" and "igb_uio" drivers are present in the VM image generated using "./nsb_setup.sh" script. "igb_uio" driver is compiled along with the DPDK library compilation. Tool "nsb_setup.sh" provisioning and execution should be removed from this function because there is not needed anymore. In case "igb_uio" driver is not loaded, an exception should be raised. JIRA: YARDSTICK-999 Change-Id: I89174f84ac36d8231587402c96751746cb18e290 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-12Merge "vpe: convert DPKD_PORT to LINK ID"Emma Foley1-0/+5
2018-02-06vpe: convert DPKD_PORT to LINK IDRoss Brattain1-0/+5
http://dpdk.org/doc/guides/sample_app_ug/ip_pipeline.html#application-resources-present-in-the-configuration-file LINK instances are created implicitly based on the PORT_MASK application startup argument. LINK0 is the first port enabled in the PORT_MASK, port 1 is the next one, etc. The LINK ID is different than the DPDK PMD-level NIC port ID, which is the actual position in the bitmask mentioned above. For example, if bit 5 is the first bit set in the bitmask, then LINK0 is having the PMD ID of 5. This mechanism creates a contiguous LINK ID space and isolates the configuration file against changes in the board PCIe slots where NICs are plugged in. Change-Id: I6e449272cfcfb2b2a75c246f7f569e3f923da245 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-06Improve SampleVNF hugepages setupRodolfo Alonso Hernandez1-36/+21
The goal of this function is to: - Read the default hugepage size. - Set 16GB of hugepages. - Check if the status of the last action. According to [1], the default hugepage size could be read in "/proc/meminfo", always in kB. Then "/proc/sys/vm/nr_hugepages" could be used to set the number of default hugepages. [1] https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt JIRA: YARDSTICK-997 Change-Id: I762d1b16294ba1c1c2feee56610819ac358c7410 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-05Remove references to "dpdk_nic_bind" utilityRodolfo Alonso Hernandez4-44/+1
In DPDK 16.07 [1], "dpdk_nic_bind" utility was renamed to "dpdk-devbind". This patch removes all references to this previous naming to avoid confusions. [1] https://dpdk-guide.gitlab.io/dpdk-guide/setup/binding.html JIRA: YARDSTICK-995 Change-Id: I827c4c11c9e9e519f33f21b80459e7d65e51545e Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-01-26Merge "Replace assertEqual(x, True|False) with assert[True|False](x)"Ross Brattain1-1/+1
2018-01-25Replace assertEqual(x, True|False) with assert[True|False](x)Emma Foley1-1/+1
Change-Id: Id19df79b4d27aab1a83d8350ce6395e87c13472b JIRA: YARDSTICK-903 Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2018-01-25Replace assertEquals with assertEqualEmma Foley3-4/+4
unittest.assertEquals is deprecated[1], and has been replaced with unittest.assertEqual. [1] https://docs.python.org/2/library/unittest.html#deprecated-aliases Change-Id: I9c6320e3a9ec5528036b529a9c32fc48b0bcfd62 JIRA: YARDSTICK-864 Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2018-01-25Make files pep8 compliant before using assertTrue|FalseEmma Foley1-2/+1
JIRA: YARDSTICK-903 Signed-off-by: Emma Foley <emma.l.foley@intel.com> Change-Id: Id7912b5ddee36e7366bcfa824379853efd0a89f1
2018-01-23Rename ResourceProfile.check_if_sa_running()Emma Foley3-11/+14
* Update log message and rename method to make debugging easier * Fix pep8 violations in touched files JIRA: YARDSTICK-859 Change-Id: Id138d72cd8557ffacd5dcc81d06feeb484e13625 Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2018-01-04Remove tool provisioning in PROX helperRodolfo Alonso Hernandez3-81/+74
Tool provisioning in PROX setup environment helper is not needed [1]. The tool (PROX traffic injector) is already provided during the VNF building: ./ansible/nsb_setup.yml --> ./ansible/build_yardstick_image.yml --> ./ansible/ubuntu_server_cloudimg_modify_samplevnfs.yml --> ./ansible/roles/install_samplevnf [1]https://github.com/opnfv/yardstick/blob/master/yardstick/network_services/vnf_generic/vnf/prox_helpers.py#L641 JIRA: YARDSTICK-872 Change-Id: I0f925a7967a35a97901fbe5053793a791a7b1b01 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-01-03Make GenericVNF an abstract classRodolfo Alonso Hernandez13-397/+255
GenericVNF class is now an abstract class. Only optional methods are implemented. Mandatory methods: - instantiate - wait_for_instantiate - terminate - scale - collect_kpi. JIRA: YARDSTICK-866 Change-Id: Ia8766f9f98816e11894d1e72b0f3bd573d091d99 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2017-12-19Variable local_iface_name is read before it is setJiri Prokes1-4/+4
Moving variable setting before reading Verified via TC: yardstick/samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml JIRA: YARDSTICK-899 Change-Id: Ia2feac1ed4e67dccd02446ba27afc9d40e87be35 Signed-off-by: Jiri Prokes <jirix.x.prokes@intel.com>
2017-12-16samples: Add generic L3 forwarder testsDino Madarang1-0/+267
A generic throughput test case that can be used as a stub code for a Linux-based VNF configured as an L3 forwarder. Supported context: * Standalone OVSDPDK and SRIOV * Baremetal Code changes: * Allow pmd-cpu-mask and lcore mask for OVS DPDK * router_vnf.py - configures interface IP addresses and static arp entries using ip command * NFVi KPIs * Allow cputune tag for standalone context to be able to PIN on NUMA 1 cpus SRIOV Test cases: * RFC2544 Ethernet framesizes, 128K Flows * 2,4 and 6 ports * 2 and 3 vcpus per port * OVSDPDK Test cases: * RFC2544 Ethernet framesizes, 128K Flows * 2 and 4 ports * 2 vcpus per port * 2 PMD threads per port TODO: * Documentation * Add 6 ports tests References: * router_vnf.py is based on sample_vnf.py * tc_*.yaml files are based on acl/vfw test case files Added unitests Added get_stats to parse ip -s link Change-Id: Id1b969d5420dfcab7c1e695acbd2cd1655747efe Signed-off-by: Dino Simeon Madarang <dinox.madarang@intel.com> Signed-off-by: Kavindya Deegala <kavindya.s.deegala@intel.com> Reviewed-by: Alain Jebara <alain.jebara@intel.com> Reviewed-by: Deepak S <deepak.s@linux.intel.com> Reviewed-by: Emma Foley <emma.l.foley@intel.com> Reviewed-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com> Reviewed-by: Ross Brattain <ross.b.brattain@intel.com> Reviewed-by: Edward MacGillivray <edward.s.macgillivray@intel.com> Signed-off-by: Dhaval Patel <dhaval.r.patel@intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-11-17Make GenericTrafficGen class abstractRodolfo Alonso Hernandez2-74/+33
GenericTrafficGen class is now an abstract class. Only optional methods are implemented. - 'run_traffic' and 'terminate' are mandatory. - 'listen_traffic', 'verify_traffic' and 'wait_for_instance' are optional. By default these methods doesn't execute any action. JIRA: YARDSTICK-853 Change-Id: I2befdaa337af79cc2364bdd7c66183c31c5ab69a Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2017-11-14NSB TRex: convert DPDK port number to logical TRex port numberRoss Brattain1-0/+54
when we create TRex config we sort based on PCI bus address and create a logical port ordering. We need to save this port ordering and re-use it everywhere. redirect vnfd_helper.port_num() to resource_helper.port_num() to use the logical mapping Change-Id: Ibff628556d5e11e686e15716a66a3210758c4ff0 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-11-10Merge "Remove ↵Ross Brattain1-14/+0
network_services.vnf_generic.vnf.prox_helpers.ProxSocketHelper.rx_stats"
2017-11-09Merge "NSB Prox LW_AFTR Test"Ross Brattain1-0/+115
2017-11-08Remove network_services.vnf_generic.vnf.prox_helpers.ProxSocketHelper.rx_statsEmma Foley1-14/+0
* Remove the method which is unused and is marked as deprecated. Change-Id: Ie64084fcd26985283c664445b173a757d3d908ab JIRA: YARDSTICK-838 Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2017-11-07NSB Prox LW_AFTR TestDanielMartinBuckley1-0/+115
JIRA: YARDSTICK-802 Addition of PROX LW_AFTR basked on PROX/DATS v037 test_104_lw_aftr.py - This support BM and Openstack Heat - This supports 4 Ports ONLY - Grafana Dashboards included - Code Coverage / Unit testing Change-Id: If2170ab458bf687256d5f1a1e840a3b9d2788ef7 Signed-off-by: Daniel MArtin Buckley <daniel.m.buckley@intel.com> Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com>
2017-11-02test_sample_vnf: mock timeRoss Brattain1-1/+2
Change-Id: Id8aa734fee431d90cbdc1e0eb2173784ada822fe Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-31NSB: remove validate_cpu_cfg and all app cpu methodsRoss Brattain1-106/+0
We don't really know what core we are going to use for the VNF before we generate the MultiPortConfig, so these methods are incorrect. We may need some more advanced method to validate the vCPU topology, but that will probably happen in the MultiPortConfig Change-Id: Ifee7ae4589ce0fce67771fb8d8b8dce0a0f06409 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-19BugFix: Negative dropped packets in Prox testsAbhijit Sinha1-2/+2
Removed the abs function which can potentially mask negative dropped packets. Dropped packets in Prox workload VNF = rx_packets - tx_packets Change-Id: I510a351e899cdf9a1f366d632b9f0528b1d9dcce Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com>
2017-10-17Enable static cgnapt functionality.Deepak S2-13/+3
Change-Id: Ie770ca69ebdc66589ed6ca5c25bfc9a75afb8938 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-10-13Relocate iniparser to yardstick.network_services.helpersEdward MacGillivray2-226/+1
Change-Id: I1f457c9c24f2ca84dde61b64f58edaff8952670a Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
2017-10-11Move arp route tbl to script and update defailt vnf config filesDeepak S1-0/+1
Change-Id: I8674caa15c9fc32cfacb17f558da5fb31094877e Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-06NSB Prox vPE TestAbhijit Sinha1-51/+118
JIRA: YARDSTICK-802 Addition of Prox vPE test case - The tests supports BM, Openstack Heat - Supports 4 ports - Grafana dashboards included - Added support for parameters.lua for prox additional files - Unit tests for code coverage Change-Id: I5cccb351dacba88a293ae4b8aba1f0a803d62e6d Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com> Signed-off-by: Daniel MArtin Buckley <daniel.m.buckley@intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-04Disable VNF deploy by defaultDeepak S2-2/+6
Change-Id: I27bcc41c855f34fb1fd0332fc24e7bf0b2af4ec2 Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-03NSB PROX test hang fixesRoss Brattain7-26/+35
The PROX tests were hanging in the duration runner. These are fixes for various errors: raise error in collect_kpi if VNF is down move prox dpdk_rebind after collectd stop fix dpdk nicbind rebind to group by drivers prox: raise error in collect_kpi if the VNF is down prox: add VNF_TYPE for consistency sample_vnf: debug and fix kill_vnf pkill is not matching some executable names, add some debug process dumps and try switching back to killall until we can find the issue sample_vnf: add default timeout, so we can override default 3600 SSH timeout collect_kpi is the point at which we check the VNFs and TGs for failures or exits queues are the problem make sure we aren't silently blocking on non-empty queues by canceling join thread in subprocess fixup duration runner to close queues and other attempt to stop duration runner from hanging VnfdHelper: memoize port_num resource: fail if ssh can't connect at the end of 3600 second test our ssh connection is dead, so we can't actually stop collectd unless we reconnect fix stop() logic to ignore ssh errors Change-Id: I6c8e682a80cb9d00362e2fef4a46df080f304e55 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-02Enable multi-port perf in trex as TGDeepak S3-15/+11
set TRex -c option for threads per port based on hardware number of queues. We can't auto-detect number of queues and we can't use more than one thread per core on systems with single-queue interfaces, so move the option to the config file options: tg_0: queues_per_port: 2 also enable trex debug by removing >/dev/null redirection options: tg_0: trex_server_debug: true Change-Id: I46da187849282bf28f4ef5b333e1ae890e202768 Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-28Merge "Addition of Prox NSB BNG and BNG-QoS test"Ross Brattain1-251/+561
2017-09-28Addition of Prox NSB BNG and BNG-QoS testAbhijit Sinha1-251/+561
JIRA: YARDSTICK-802 Added Prox BNG and BNG-QoS Test - The tests supports BM, Openstack Heat - Supports 4 ports - Test added for BNG traffic profile - Fixed the Prox heat test cases with proper upstream and downstream links - Grafana Dashboard for BNG & BNG-QoS added - Increased the test Duration to 300 TODO: - Test does not Terminate correctly Update: Added new helper class for run_test: Genric, MPLS and BNG tests. Change-Id: Ib40811bedb45a3c3030643943f32679a4044e076 Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com> Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
2017-09-27collectd: write config file from Jinja2 templateRoss Brattain1-2/+8
We have the collectd.conf inside the python package so instead of copying it from various places, write the template directly to the remote system. collectd: read collect.conf template with pkgresources read the collectd.conf file as a string directly and upload without creating temp file use Jinja2 template, disable failing plugins use proper Jinja2 template, disable the plugins that were failing to load and blocking startup add support for per-testcase collectd.conf config using YAML add support for custom interval, default is 25 seconds Change-Id: Id904f7b7c9f41a9dd7adf5dfa06c064d65c25d2d Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-25Fix vPE VNF characterization issues.Deepak S1-10/+130
Change-Id: Ia934128777d2839f6d2b940857c266fc3e2bd4a1 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-09-22tg_rfc2544_ixia: log exceptions and fix list iterRoss Brattain1-7/+11
Change-Id: Ia9722604b7c8ae23e784e780f113d012de544d4b Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-20tg_rfc2544_ixia: use traffic id from JSON to update macRoss Brattain1-4/+5
we were using raw sort index of the interfaces to set the MAC address, but we should be using the traffic id from the static JSON instead. Change-Id: I13284db04abb3eaf8c9826974a9e5aa1c37b3891 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-20cgnapt: mock time.sleep in unitestsRoss Brattain1-2/+4
Change-Id: I26957977e6dcd0392078a543a6907a550711c702 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-20Merge "prox: fix TG KPIs"Ross Brattain2-9/+8
2017-09-20prox: fix TG KPIsRoss Brattain2-9/+8
The problem is that we share the same ProxResourceHelper for both VNF and TG. For VNF we want to talk to resource.py and get collectd KPIs. For TG we need to read from the queue the TG calculated KPIs and we also want collectd KPIs. workaround is to use a different method name collect_collectd_kpi for VNFs Change-Id: Icc2132758e37ce210f5600a0cd433077930208e5 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-20prox: use find_relative_file when uploadingRoss Brattain1-1/+1
the prox files were being found correctly. if we use find_relative_file they will lookup relative to the task_path Change-Id: Ifde5d07df5ccfbfeba015b2f43bd8b53e89a00b7 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-19prox: pass prox_config_dict between Processes using queueRoss Brattain3-67/+54
we generate the prox_config_dict in the _run Process, but we also need it in the _traffic_runner Process to get core info. use a queue to pass the config list between the processes enable collect_kpi Change-Id: Ibaf41d606e559a87addf43d6ddaed206dbd2d20c Signed-off-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
2017-09-18NSB: count from 0, vnf_0, tg_9, private->uplink, public->downlinkRoss Brattain11-59/+59
Also rename private to uplink, public to downlink for scale-out template we need to count from 0 so we can use range() without +1/-1 errors vnf_0, vnf_1 tg_0, tg_1 also fix Ixia defaults Change-Id: I6aecfbb95f99af20f012a9df19c19be77d1b5b77 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
2017-09-17Fixing vPE config creation anf bring up issues.Deepak S1-2/+0
Change-Id: Icf7a01a053495e6d96bd664d6ceda8964fa437eb Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-14NSB: fix port topologyMartin Banszel15-557/+820
Add a new PortPair class to resolve the topology into list of public and private ports. Before we were calculating public/private in multiple locations and using different conventions. In addition for all the DPDK test we need to use the DPDK port number and no rely on interface ordering or interface naming conventions. We used to use xe0 -> 0, xe1 -> 1, etc. This is not the DPDK port number. Use the new dpdknicbind_helper class to parse the output of dpdk-devbind.py to find the actual DPDK port number at runtime. We then use this DPDK port number to correctly calculate the port_mask_hex. The port mask maps the DPDK port num (PMD ID) to the LINK ID used in the pipeline config We also need to make sure we only use the interfaces matched to the topology and not use all the interfaces, because in some cases we will have unused interfaces. In particular TRex always requires an even number of interfaces, so for single port TRex tests we have to create the second port and not use it. Thus we had to modify the traffic generator stats code to only dump stats for used ports and no unused ports. Ixia was using interface ordering to map to Ixia ports, instead we use the dpdk_port_num which must be hardcoded for Ixia. Renamed traffic_profile.execute to traffic_profile.execute_traffic so we can trace the code easier. We pass the port used by the traffic profile to generate_samples so we don't get stats for unused ports. Fixed up vPE config creation and bring up issues. Fixed up CGNAPT and UDP_Replay to work correctly. Tested with 4-port scale-out Change-Id: I2e4f328bff2904108081e92a4bf712333fa73869 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>