aboutsummaryrefslogtreecommitdiffstats
path: root/yardstick/benchmark/scenarios/networking
AgeCommit message (Collapse)AuthorFilesLines
2018-10-02NSB PROX NFVi Test does not stop after reaching expected precisionDanielMartinBuckley1-0/+3
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>
2018-08-27Add source and destination seed value in IXIA RFC2544Rodolfo Alonso Hernandez1-2/+5
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>
2018-08-16Fix setting `flow` configuration in TC yamlMytnyk, Volodymyr1-2/+6
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>
2018-08-02Add UDP ports configuration to IXIA traffic profileMyron Sosyak1-0/+1
- 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>
2018-07-27Refactor remote command execution in vsperf_dpdkMiikka Koistinen1-22/+12
* 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>
2018-07-27Refactor remote command execution in vsperfMiikka Koistinen1-10/+7
* 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>
2018-07-23Improve NetworkServiceTestCase._get_ip_flow_range() functionRodolfo Alonso Hernandez1-25/+24
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>
2018-07-13Create a SampleVNF MQ consumer classRodolfo Alonso Hernandez1-1/+1
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>
2018-07-05Enable traffic generator PID in "NSPerf" scenario setupRodolfo Alonso Hernandez1-15/+18
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>
2018-06-29NFVI support for standalone, baremetal and heat contextsChornyi, TarasX1-1/+3
JIRA: YARDSTICK-1257 Change-Id: I6733bd49ac91985e8f3d7722e6990e8733bb430e Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
2018-06-26Merge "Refactor remote command execution in pktgen_dpdk"Emma Foley1-4/+1
2018-06-26Merge "Refactor remote command execution in pktgen"Rex Lee1-83/+35
2018-06-19Refactor remote command execution in pktgen_dpdkMiikka Koistinen1-4/+1
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>
2018-06-19Refactor remote command execution in pktgenMiikka Koistinen1-83/+35
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>
2018-06-18Refactor RFC2455 TRex traffic profile injectionRodolfo Alonso Hernandez1-1/+1
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>
2018-06-18Add "duration" parameter to test case definitionRodolfo Alonso Hernandez1-8/+12
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>
2018-06-15Convert SLA asserts to raisesMiikka Koistinen12-78/+80
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>
2018-06-01Move IncorrectConfig, IncorrectSetup and IncorrectNodeSetup to exceptionsRodolfo Alonso Hernandez1-12/+15
JIRA: YARDSTICK-1218 Change-Id: I804065e9bce3e728f5bf9e756a78df8fd28f74ac Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-05-14Do not start collectd twice when SampleVNF is running on BaremetalChornyi, TarasX1-1/+1
JIRA: YARDSTICK-1167 Change-Id: I7591bbb2a84ee4039a20c5da2914f1e374299015 Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
2018-03-23Merge "TC042 bug fix"Ross Brattain3-31/+40
2018-03-21Add "Scenario" class wait methods for runnersRodolfo Alonso Hernandez1-0/+9
"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>
2018-03-21TC042 bug fixliyin3-31/+40
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>
2018-03-15Merge "support for Bottlenecks soak throughputs"Jing Lu1-1/+3
2018-03-15support for Bottlenecks soak throughputsYang Yu1-1/+3
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>
2018-03-07Merge "Add l2fwd module in Tgen mode"Jack Chan2-0/+440
2018-03-01NSB: move interface probe to VNF, and attempt driver-only probe firstRoss Brattain1-169/+14
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>
2018-03-01vFW scale-up template.Mytnyk, Volodymyr1-7/+16
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>
2018-03-01Add arguments to the traffic profile renderRodolfo Alonso Hernandez1-4/+6
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>
2018-03-01Import "traffic_profile" modules only onceRodolfo Alonso Hernandez1-57/+29
"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>
2018-02-28Deprecate authentication variable OS_TENANT_NAMERodolfo Alonso Hernandez1-9/+7
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>
2018-02-28Add l2fwd module in Tgen modeAce Lee2-0/+440
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>
2017-10-12Support to add multiple src/dst ports in flowDeepak S1-0/+6
Change-Id: I888a6029efaad8308de8df6b6787dd46af5f1c55 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-10-12ping: always save rtt data, influxdb ignore empty dataRoss Brattain1-8/+27
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>
2017-10-12Merge "Use "protocol" parameters in iperf3 yaml and task file"Ross Brattain1-8/+12
2017-10-11Use "protocol" parameters in iperf3 yaml and task fileAce Lee1-8/+12
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>
2017-10-10TC008 Interrupt Affinity FixJing Zhang1-3/+8
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>
2017-10-04rewrite _generate_pod_yaml to combine name and pkey settingRoss Brattain1-16/+13
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>
2017-10-03NSB PROX test hang fixesRoss Brattain1-5/+19
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-02add collectd resource node capabilityRoss Brattain1-6/+6
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>
2017-09-29Merge "NSB: ignore VNF node if there is no VNF model"Ross Brattain1-1/+5
2017-09-28vnf_generic: Fix str object has no attribute itemsDino Madarang1-4/+8
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>
2017-09-28NSB: ignore VNF node if there is no VNF modelRoss Brattain1-1/+5
Change-Id: I571289c744441a6114c6d45ac6cbd7cfc0dafef2 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-27Merge "[PATCH] Patch for Yardstick arm64 netperf_install.bash"Ross Brattain1-0/+42
2017-09-26Merge "Enable IP_ROUTING for netperf UDP_STREAM test"Ross Brattain1-0/+4
2017-09-25[PATCH] Patch for Yardstick arm64 netperf_install.bashTrevor Tao1-0/+42
Change-Id: Ic384c4603e7482f150fd4c4d2d6a6448a45ddb9e Signed-off-by: Trevor Tao <trevor.tao@arm.com>
2017-09-20Merge "Generate pod.yaml from current context"Ross Brattain1-0/+34
2017-09-20Merge "Heat: use pkey from string instead of key_filename"Ross Brattain1-0/+11
2017-09-20Enable IP_ROUTING for netperf UDP_STREAM testTrevor Tao1-0/+4
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>
2017-09-18Heat: use pkey from string instead of key_filenameRoss Brattain1-0/+11
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>
2017-09-18NSB: count from 0, vnf_0, tg_9, private->uplink, public->downlinkRoss Brattain1-4/+4
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>