Age | Commit message (Collapse) | Author | Files | Lines |
|
JIRA: YARDSTICK-1419
When using prox_binsearch algorithm, a binary search is
performed, increasing lower bound when step was successful
and decreasing upper bound when the step was a failure.
This runs until the test_precision (as specified in the
traffic profile) is reached. When the test precision
is reached, the test is not completed until the
runner duration is reached.
As runner duration is usually high (e.g. 1800sec), the
tests take much too long to execute.
This makes it difficult to create test suites.
Change-Id: I6cc503a09fb534a556c61c805e6df4786bb8cc4b
Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
|
|
Add source and destination seed value in IXIA RFC2544 traffic profile.
The default value for both parameters is 1.
JIRA: YARDSTICK-1401
Change-Id: I3351194c8be9ac42cbf5655996d50b9b69884c72
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
The `flow` configuration is not applied to the traffic
profile if `seed` or `count` option is missing in the
TC definition.
- Fix `seed` backward compatibility.
JIRA: YARDSTICK-1383
Change-Id: Ic874fb2be1c13009f94eb3a80194bfe81d7a923b
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
- Implemented handling of UDP source and destination ports from
IXIA traffic profile.
- UDP ports can be defined as a single value or as a random range.
Ports range is configured with two parameters 'fixed_bits' and
'mask_bits'.
- For example '8-48' range definition will create a repeatable
pattern of four values that fall within the range of 8 and 56.
JIRA: YARDSTICK-1363
Change-Id: I0ace722f6be843ea79c3d3f4de22cb8fa5669d4f
Signed-off-by: Myron Sosyak <myronx.sosyak@intel.com>
Signed-off-by: Pshyk Serhiy <serhiyx.pshyk@intel.com>
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
* Remove unneeded variables
* Do not raise RuntimeError when a remote command fails, instead
leave it for the yardstick ssh module to handle.
* Prevent CsvReader from raising StopIteration if csv output cannot be
parsed. The SLA validation will take care of errors in that case.
JIRA: YARDSTICK-1166
Change-Id: I9e353d39dfd3bd27407dde32744ce71b5762e84e
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
* Remove unneeded variables
* Do not raise RuntimeError when a remote command fails, instead leave
it for the yardstick ssh module to handle.
* Prevent CsvReader from raising StopIteration if csv output cannot be
parsed. The SLA validation will take care of errors in that case.
JIRA: YARDSTICK-1166
Change-Id: I6cf550bd7bc8f511b3c0f25c67f8caab18bccd28
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
Improve the method to calculate the CIDR IP address range (first one,
last one). IPv4Network or IPv6Network hosts() is an iterator throught
the list of valid IPs. If the network is too big, the generation of a
list [1] can be very expensive.
[1]https://github.com/opnfv/yardstick/blob/master/yardstick/benchmark/scenarios/networking/vnf_generic.py#L90
JIRA: YARDSTICK-1339
Change-Id: I9352b2e7ff4925c246df8b40ecf43e8dc96c42d2
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
This new class is designed to be used in a ``GenericVNF`` object (VNF
or traffic generator) in a builder pattern. This consumer class will
be instantiated when initializing the ``GenericVNF`` derived object.
The ``GenericVNFConsumer`` endpoint is the ``GenericVNF``derived object
itself.
``GenericVNFEndpoint`` is an interface class to be inherited in a
``GenericVNF`` child object; the VNF object will implement the endpoints
methods.
NewVNF(GenericVNF, GenericVNFEndpoint):
def __init__(self, name, vnfd, task_id):
...
self._consumer = vnf_base.GenericVNFConsumer([task_id], self)
self._consumer.start_rpc_server()
JIRA: YARDSTICK-1293
Change-Id: I1bcd980352099e9ebefdab0c96d51aa46f6a1e54
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Now "NSPerf" scenario will inform about the traffic generator PIDs after
setup process. With this information, IterationIPC runner will be able
to receive the messages sent by those traffic generators and control
the main iteration loop.
The following example, using vFW as VNF and OpenStack as context, makes
use of this new runner implementation:
/samples/vnf_samples/nsut/vfw/
tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex_iterationipc.yaml
JIRA: YARDSTICK-1127
Change-Id: I46b1368bc209680b88ff9fb5c3b9beadf6271ac9
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1257
Change-Id: I6733bd49ac91985e8f3d7722e6990e8733bb430e
Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
|
|
|
|
|
|
PktgenDPDKLatency.run will raise a RuntimeError if a remote command
fails. This commit makes it use the already existing exception raising
mechanism in yardstick's ssh client.
JIRA: YARDSTICK-1166
Change-Id: I3a3c7691399044b174f5d040c015c9b907b2fe5d
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
Some remote commands in Pktgen are executed without checking the exit
status. This patch makes all remote commands check exit value, and
removes unused variables that are captured from remote command
executions.
JIRA: YARDSTICK-1166
Change-Id: I42a667ebd22d086887d61e1671bc569b03c59d33
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
The TRex RFC2455 traffic profile configures the duration of the traffic
injection. Once the traffic is started, the traffic profile should poll
the traffic injector client for the injection status. When the injection
is finished, the traffic execution should end.
Instead of this, the traffic profile waits a fixed time (using time.sleep
method) and then stops the traffic. This approach is not accurate and may
cause shorter injection periods.
JIRA: YARDSTICK-1197
Change-Id: I5090df81ef4ec7945ff6c1aff070656b48e0fe77
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Add "duration" parameter to test case definition, in scenario:options
section. This parameter will be rendered in the traffic profile.
If the parameter is not present in the test case scenario options, the
default time written in the traffic profile options will be 30 seconds
(TrafficProfile.DEFAULT_DURATION = 30). If the traffic profile
injection time is not defined, the default injection time will be 30
seconds.
testcase:scenario:options:duration (default = 30)
render --> traffic_profile:duration
parse --> TrafficProfile.duration (default = 30)
Target traffic profiles (RFC2544):
- RFC2544Profile
- IXIARFC2544Profile
JIRA: YARDSTICK-1194
Change-Id: I968922e6bb882d7ee15aa1c4db4037face7a3492
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
This commit converts Python assertions to a custom exception in all
places where SLA validation is checked with an assertion.
This commit also fixes all emerged pylint errors.
JIRA: YARDSTICK-966
Change-Id: If771ed03b2cbc0a43a57fcfb9293f18740b3ff80
Signed-off-by: Miikka Koistinen <miikka.koistinen@nokia.com>
|
|
JIRA: YARDSTICK-1218
Change-Id: I804065e9bce3e728f5bf9e756a78df8fd28f74ac
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1167
Change-Id: I7591bbb2a84ee4039a20c5da2914f1e374299015
Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
|
|
|
|
"Duration" and "Iteration" runners execute a passive wait during the
execution of the work process. This wait time is done at the end of
the scenario "run" method execution.
This patch adds a pre-run and post-run wait period, which will
depends on the Scenario executed. The wait time will be always the
same, but the execution order (pre-wait time, run method, post-wait
time) will depends on the Scenario.
By default, any Scenario will execute the "run" method and them will
wait the specified time.
NetworkServicesTestCase Scenario will wait the specified time and them
will execute the "run" method to retrieve the KPIs.
JIRA: YARDSTICK-1067
Change-Id: I6ad6bfc6978815b6b2d4df63f2ac2f8815fb5b8a
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA:YARDSTICK-786
yardstick DPDK image have problems to build.
We will fix this by using nsb image
the pktgen DPDK testcase will use sampleVNF image
Change-Id: I24b7b6a9acfe21ec956fa9c4ee7ebe7ae1787dbb
Signed-off-by: liyin <liyin11@huawei.com>
|
|
|
|
JIRA: YARDSTICK-1049
Changes:
1. NetperfNode -> Netperf, it seems that yardstick-image has not
correctly complied Netperf since cpuutil is not available,
resulting that LOCAL_CPU_UTIL=-1 for the output. Will create
another JIRA ticket for this.
Change-Id: I26a85f4aafcc5d5e1eda3e04272ecf3b059238fc
Signed-off-by: Yang Yu <Gabriel.yuyang@huawei.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>
|
|
In order to render configurable traffic profiles in NSB test cases,
a new variable is introduced: "extra_arg". The content of
this variable is added to the VNFD render data, under a key called
"extra_args".
This will allow the user to define Jinja templates for traffic profiles.
E.g.:
$ cat test_case_definition.yml
scenarios:
- type: NSPerf
traffic_profile: traffic_profile.yml
extra_args:
vports: 10
$ cat traffic_profile.yml
{% set vports = get(extra_args, 'vports', '0') or 4 %}
{% for vport in range(vports|int) %}
uplink_{{vport}}:
data...
{% endfor %}
JIRA: YARDSTICK-946
Change-Id: Ib3c1f2d89efa012772edf2156e97d5f4742a6b80
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@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>
|
|
OS_TENANT_NAME was deprecated as authentication variable in Keystone
when moved from v2 to v3, in Icehouse (2014). Because this project doesn't
support oldest versions, by default the only identification API version
supported is v3.
JIRA: YARDSTICK-902
Change-Id: I273fb0151ba583f7c8a5a809e5e8864e92c27d31
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-796
Add l2fwd testcase in Tgen mode(Moongen)
fix offiline problem in Tgen mode.
Change-Id: I2ee224157a4f1d78e85fcae192a65afd33a1a515
Signed-off-by: Ace Lee <liyin11@huawei.com>
|
|
Change-Id: I888a6029efaad8308de8df6b6787dd46af5f1c55
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
If the SLA was failing we were raising AssertionError and not storing
the rtt in the data dict. This caused influxdb parse errors because the
data was empty.
Fixup influxdb to ignore records with no data, so we don't try to parse
no data.
Change the ping logic to always record the rtt result even if the SLA
was not met.
Also fixup ping logic in cases where ping does not return results. If
SLA is defined use SLA * 10 otherwise use large float that doesn't break
the grafana scale too much, maybe 999999
JIRA: YARDSTICK-809
Change-Id: Id2d51216581644a80e8c7b9aa98919a766008adf
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
JIRA: YARDSTICK-755
There is a history problem that iperf use udp to set a net protocol.
This code will change it to protocol.
so you could use 'tcp','udp' and other protocol.
Change-Id: I1a101013dfe58165a3ed08aa77f0aa2f73d57a12
Signed-off-by: Ace Lee <liyin11@huawei.com>
|
|
The smp_affinity takes hex mask, currently it is given hex number.
Change-Id: Id738bfe10551dad1f5df48910a230b12f50d1b3d
JIRA: YARDSTICK-818
Signed-off-by: Jing Zhang <jing.c.zhang@nokia.com>
|
|
just deepcopy and change. This will probably break in
the future if we use anything other than dicts and list.
Change-Id: I9a9b0c5b09b3e3ebd7ed593bf6339ea030605f93
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>
|
|
allow manually adding collectd nodes using Node context.
if a node is present with a collectd config dict then
we can create a ResourceProfile object for it
and connect to collectd.
example
nodes:
-
name: compute_0
role: Compute
ip: 1.1.1.1
user: root
password: r00t
collectd:
interval: 5
plugins:
ovs_stats: {}
Change-Id: Ie0c00fdb58373206071daa1fb13faf175c4313e0
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
When an IP range is specified in src_ip/dst_ip like:
src_ip:
- '152.16.100.180-152.16.100.181'
yardstick would return str object has no attribute items error.
This change will return the IP range as is if type is str.
Change-Id: I3b097777f0d85b0600207157bebba18987ea2275
Signed-off-by: Dino Simeon Madarang <dinox.madarang@intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: I571289c744441a6114c6d45ac6cbd7cfc0dafef2
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
|
|
Change-Id: Ic384c4603e7482f150fd4c4d2d6a6448a45ddb9e
Signed-off-by: Trevor Tao <trevor.tao@arm.com>
|
|
|
|
|
|
To avoid the following ERROR when netperf test between
2 different subnets:
ERROR netperf: send_omni: send_data failed: Network is unreachable
For detail, please see:
https://serverfault.com/questions/802320/netperf-iptables-\
masquerade-network-unreachable
Or:
https://stackoverflow.com/questions/11981480/error-in-running-\
netperf-udp-stream-over-openvpn
Change-Id: I62b202844861440deaf3bf0f65b41561bd87ae87
Signed-off-by: Trevor Tao <trevor.tao@arm.com>
|
|
Instead of using a key_filename for Heat, we can
read the key as a string directly using pkg_resources.resource_string()
This will enable us to save Heat stacks as pod.yaml, because
we can embedded the key into the pod.yaml directly.
Change-Id: I16baaba17dab845ee0846f97678733bae33cb463
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
|
|
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>
|