Age | Commit message (Collapse) | Author | Files | Lines |
|
The following private methods are unused in
yardstick/network_services/vnf_generic/vnf/sample_vnf.py:SampleVNF
* _build_ports(self)
* _get_route_data(self, route_index, route_type)
* _get_port0localip6(self)
* _get_port1localip6(self)
* _get_port0prefixlen6(self)
* _get_port1prefixlen6(self)
* _get_port0gateway6(self)
* _get_port1gateway6(self)
They are being removed as:
* _get_port* functions are already implemented and used in MultiPortConfig
* _get_route_data is an auxillary functions used by the previous ones
* _build_ports is implemented in the helpers
JIRA: YARDSTICK-1122
Change-Id: Ie7a706cd87b610ea56f89214118a02e612a70dc0
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
(cherry picked from commit 50bcd3e477bc29abb43ed73643d551ff55a73403)
|
|
|
|
JIRA: YARDSTICK-1035
Do not hardcode NIC/interface speed in PROX test. Test assumes
NIC used is 10Gbps. This is incorrect. It could support 1Gbps,
10Gbps, 25Gbps, 40Gbps or something else.
This is used to calculate pps (Packets Per Second)
In Baremetal the NIC speed could be extracted. however when
run on a virtual machine this is not possible.
Solution:
Add in options section of test file.
eg.
Options:
interface_speed_gbps: 10
Where 10 refers to a 10Gbps. In a setup where multiple interfaces
are used. This will refer to the speed of the slowest connection.
Change-Id: I89ab16479a2cdd1d79e52cbcc5a972762c60d057
Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
|
|
The amount of hugepages claimed for a Sample VNF is always 16GB. This
value is excesive for most of the Sample VNF applications (except for vPE).
Making this parameter configurable we allow to spawn smaller VMs by using
less hugepages (in case of StandAlone and OpenStack deployments).
Because this parameter depends on the Scenario and the type of VNF executed,
the parameter is located in:
scenarios: {options: hugepages_gb} # number of GB of hugepages claimed
PENDING: document this new parameter. A new userguide section should be
created to document all "scenario" sections and parameters.
JIRA: YARDSTICK-1061
Change-Id: I6f082e105289bd01781be18f2fecbe0ba2fdfdee
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Removes the unnecessary main() functions from tests.
Also removes shebang (#!) where it appears at the top of files.
JIRA: YARDSTICK-861
Change-Id: I79180d1eb9c5bce640142dd62ce28c7437c1b210
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
|
|
Change-Id: Ie956d8064a8fbcbd3d56c5a79c4c613d35184af4
JIRA: YARDSTICK-942
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
|
|
If no devices are present we can't detect MAC address so
we can't match Heat ports to interfaces.
If only the driver is missing we can try to probe the driver using
lspci. We can use lspci to ask the kernel what driver it should use
for the PCI device.
If we can't probe at all because the device is already bound, we can
use dpkd-devind to find all the PCI address we care about and create a
map with PCI device and real kernel driver.
Then we can dpdk force rebind to the kernel driver.
Once we have rebound to the kernel driver we can detect
MAC address and all the other attributes that are required.
Fix VnfSshHelper to allow override of wait timeout
And a bunch of other refactors that got swept up in this
JIRA: YARDSTICK-835
Change-Id: I14cb657ed289a77941d048345d06ced5b5d5da52
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Added topology and traffic profile templates
Added support for using JinJa2 templates in topology definition
Added support for static pipeline configs for SampleVNFs
JIRA: YARDSTICK-1043
Change-Id: Iab99fd5b5ad69ca32ee70b9fe47779387ad27e7f
Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
"traffic_profile" modules should be imported only once. Every time
TrafficProfile.get is called, the modules under
"yardstick.network_services.traffic_profiles" are loaded [1]. Instead
of this, the modules should be registered only once the first time
"yardstick.network_services.traffic_profiles.base" is loaded. This
will reduce the execution time and will avoid unnecessary calls.
[1] https://github.com/opnfv/yardstick/blob/d2c7cc4e9768ed003257a95c92cdb278d516761b/yardstick/network_services/traffic_profile/base.py#L36-L37
JIRA: YARDSTICK-951
Change-Id: Ia3565378ba3a1377fcb0aea8bda50ef8189414fd
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
|
|
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>
|
|
|
|
Change-Id: Ie1da572e2ac00e380b25f8e22f5aa9059dcb5238
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: Ieb58167d8b20e0de32578b3df105a141507869d5
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
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>
|
|
|
|
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>
|
|
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>
|
|
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>
|
|
|
|
Change-Id: Id19df79b4d27aab1a83d8350ce6395e87c13472b
JIRA: YARDSTICK-903
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
|
|
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>
|
|
JIRA: YARDSTICK-903
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
Change-Id: Id7912b5ddee36e7366bcfa824379853efd0a89f1
|
|
* 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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
network_services.vnf_generic.vnf.prox_helpers.ProxSocketHelper.rx_stats"
|
|
|
|
* 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>
|
|
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>
|
|
Change-Id: Id8aa734fee431d90cbdc1e0eb2173784ada822fe
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
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>
|
|
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>
|
|
Change-Id: Ie770ca69ebdc66589ed6ca5c25bfc9a75afb8938
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
Change-Id: I1f457c9c24f2ca84dde61b64f58edaff8952670a
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
|
|
Change-Id: I8674caa15c9fc32cfacb17f558da5fb31094877e
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
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>
|
|
Change-Id: I27bcc41c855f34fb1fd0332fc24e7bf0b2af4ec2
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
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>
|
|
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>
|
|
|
|
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>
|
|
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>
|
|
Change-Id: Ia934128777d2839f6d2b940857c266fc3e2bd4a1
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
Change-Id: Ia9722604b7c8ae23e784e780f113d012de544d4b
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|