Age | Commit message (Collapse) | Author | Files | Lines |
|
we get vld_id from the topology, we
don't need it in Heat context
Change-Id: I42c2309dda919e5b2026065dda851555df76ba57
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: I6cf8675c83fc081dd22ae7896e63ff7725ed3c13
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
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>
|
|
|
|
|
|
|
|
Change-Id: I346f6064c39cb5662c2b17ca0f520addbe5eae4c
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
|
|
JIRA: YARDSTICK-802
Added Prox L3FWD and Packet buffering tests
- The tests supports BM and Openstack Heat
- L3FWD tests suports 2 and 4 ports
- Packet flow buffering test is a 1 port test
- Grafana Dashboards are added
TODO: Latency stats are missing in KPI collection
Need to invetigate that
Coverage if needed!
Change-Id: I216a170488d5578622cf8c3748a6277b380f016a
Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com>
|
|
- Added a PROTOCOL_MAP to map the protocol names to codes -- the scapy
requires the code, it fails if the proto is set e.g. to 'udp'
- ip addresses must be str, not unicode -- explicit conversion to str
added
- removed unittest for setup_vnf_environment in test_tg_trex.py as
it is the same function as already tested in test_sample_vnf.py
- traffic_profile refactored -- code repetition decreased, unittest
adapted
Known issues:
- there is a an attempt to stop already stopped trex. It fires an
exception that stop command is issued on the disconnected client.
Change-Id: I87e9029630f48b30e8f5b4f9d88ab3b25fd65f03
Signed-off-by: Martin Banszel <martinx.banszel@intel.com>
|
|
|
|
Change-Id: If679333dc1cb9e041a332fb374c55f72eaab1b28
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 L2Fwd, MPLS test cases for BM and Heat.
updates:
Most of tg_prox and prox_vnf were absorbed into the base classes.
delete most of ProxDpdkVnfSetupEnvHelper, it is handled by DpdkVnfSetupEnvHelper baseclass
use standard _build_pipeline_kwargs methods
don't use terminate() use baseclass version
add new method kill_vnf that runs pkill -x
replace resource_helper.execute() with vnf_execture for dumping stats
In order to share code between tg_prox and vnf_prox
refactor to have tg_prox hold and wrap a ProxApproxVnf instance and call
methods on that class. Do this instead of multiple-inheritance.
Implement ProxApproxVnf.terminate() using prox socket command
based exit, (stop_all, quit, force_quit).
vnf_execute calls resource_helper.execute() which calls
socket methods on the sut object.
Since tg_prox wraps the VNF object, we can call
terminate on the VNF object and it should work correctly.
move prox config generation to parent process
we need to get core number info from config file
inside the TG processes, so we need to generate
the config in the parent process so the data is
copied to the child during the fork.
moved more config file methods to the setup_helper class.
we run force_quit after quit, so the socket should already be closed
this will trigger socket error, so add _ignore_errors option for
vnf_execute to ignore socket errors
Fixed the terminate issue. Added MPLS tests.
Added TG Stats in_packet/out_packet
Fixed compile (pep8) issues
Fixed MPLS TG port stats, in/out packets
Added Grafana dashboards for L2FWD and MPLS
Traffic profiles modified for tolerated loss and
precision as per DATS tests.
Added unit test case for Mpls
Single port test stats collection support.
Change-Id: Idd9493f597c668a3bb7d90e167e6a418546106e8
Signed-off-by: Abhijit Sinha <abhijit.sinha@intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: Ieafefb5501dc3a20fee41726a7daa9e4bb28599f
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
Change-Id: Ibed8bf057a76f55a9e4cc5c55a104350e43a2a6e
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
Change-Id: I49e9c5c69bc997d3ba33387e691459c167f3e4bc
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
|
|
|
|
Change-Id: I834d733aff2da5af12db08f4159be2e9c6361aab
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
Change-Id: I4f476d16dd11a12f5ffa9047af78d2236a4fbbc2
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
Change-Id: I3ec1a6d3710d44df5ddac6bd8967d28ad58e8d33
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
- added common method to get relative paths
- added 'Ixia' APP_NAME
Change-Id: I7966798bab71af66d3efbeb1e13b07e8fbb41e88
Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
|
|
Properly re-using network_type from model.
Change-Id: I40180eb53080a360b4099c034038eac67716f8d1
Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
|
|
Change-Id: I6778dac0c60f090238ed1f4860470e62a64c7d69
Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
|
|
Change-Id: I13464d997ff9aba09a6cff7d3ff62f29df770a38
Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
|
|
use yardstick-samplevnfs image name
always create DPDK flavor, we require 1 socket, 10 cores
remove hardcoded external network
add gateway_ip: null to prevent multiple default gateways ssh bug with Heat
add enable_dhcp: false
Change-Id: I85787b72bf6ebf1c330f20f50f7a7a2b12aa995e
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
This patch adds the framesize and flow into test option instead of
adding a seperate file to avoid the multiple file update incase of ip
change.
Change-Id: Ic473c73773ad36422ecc02618b8c646a5336b70a
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
Change-Id: Ic1f13c0d28c1a1b01bbf3c8a6a618a5b3ab5bbeb
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: I8d7cea75aa864c37a058a154a38c9828ea5da434
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
PROX was added to samplevnf project
https://git.opnfv.org/samplevnf/tree/VNFs/DPPD-PROX
JIRA: YARDSTICK-638
Change-Id: If9875b1130c6bed87deb8720b0d8b28ede9289d9
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
The class name is IxiaTrafficGen
Change-Id: Ie18be44c7b58d50f13e9a5df50afa3e02fc0cce3
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
Change-Id: I598f6f98f94f70334139966cc170832c90ea9aa6
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
Change-Id: I32ca166cd6d818b57bbcfaf7c7e5a65b7147ba8d
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: I0f5555a1674a5ecb7e2afb508d495b7872c90757
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
|
|
Change-Id: I33de47ac6ca353d6c69f0d166809b4c95d3fd90f
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Change-Id: I09bcb3f2c4b945283070d442589d3bf00468abbc
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
Refactored main NSB VNF classes accroding to class diagram
https://wiki.opnfv.org/display/yardstick/NSB+class+diagram
All the SampleVNFs have been separated and placed under
the SampleVNF class.
Added AutoConnectSSH to automatically create SSH conneciton on demand.
Added VnfdHelper class to wrap the VNFD dictionary in prepartion for
class-based modeling.
Extracted DpdkVnfSetupEnvHelper for DPDK based VNF setup.
Extracted Stats and other client config to ResourceHelper
Had to replace dict_key_flatten with deepgetitem due to Python 2.7
Jinja2 infinite recursion.
Change-Id: Ia8840e9c44cdbdf39aab6b02e6d2176b31937dc9
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
This patch performs following tasks
- getting dpdk_nic_bind path
- setup ovs,dpdk ports,vhostuserports,
- creation of vm,
- apache2 licence
- test cases for ovsdpdk
- Changes to standalone context - update unit test cases
Change-Id: I54e4062eb440b8677625e4abe6e0579d9fd54d41
Signed-off-by: Bindya N <bindya.narayan@intel.com>
|
|
First we add mac_address, subnet_cidr to Heat template outputs
Then we convert those into a form for NSB and add vld_id.
NSB also requires PCI Bus ID, kernel driver
and dpdk_port_num. We get this by ssh-ing
into instance and dumping sysfs
We also need to fix allow for ssh key auth,
and implement relative path file loading
so NSB can find all its YAML files
JIRA: YARDSTICK-580
Change history:
don't hide heat create tracebacks we need tracebacks for debug
vnf_generic: add task_path to scenario so we can load relative paths
for vnf_generic we want to be able to load yaml relative to the
task path
For example:
traffic_profile: ../../traffic_profiles/fixed.yaml
topology: ping_tg_topology.yaml # TODO: look in relative path where the tc.yaml is found
These need to be relative to samples/vnf_samples/nsut/ping/tc_ping_heat_context.yaml
Add a scenario["task_path"] entry
heat: log actual exception
vnf_generic: replace list with set and iterate over values()
some general refactors to remove redundact lookups and
type conversions
heat: provide mac_address, device_id and network_id from outputs
We may need more information to dynamically
determine test topology.
Towards this end return more info in the heat template.
We can return mac_address, device_id and network_id.
Once we have this info we can add it to the context_cfg
as an interfaces dict.
add sample vnf ping multi-network test
this test requires 3 network, one for mgmt
and the other two for NSB traffic tests
We have to make sure we don't use DPDK
on mgmt interface because DPDK unbinds
the driver
heat: convert networks to OrderedDict
so we can lookups networks as well as
iterate over them in consisitent order
heat: and vld_id to networks for vnf_generic
vnf_generic uses vld_id Virtual Link Descriptor ID
to identify interfaces
Add the key to the networks dict
and store in Networks object
implement relative path file loading in vnf_generic
in multiple places we need to load a file
relative to the task path, so add
open_relative_file_path
and modify load_vnf_model to include the scenario_cfg
parameter so we have access to task_path
DRAFT: heat timeout support
Heat stack in CI job failed due to some Nova issue.
But then apparently yardstick kept running and took 180mins to timeout
https://build.opnfv.org/ci/view/bottlenecks/job/bottlenecks-compass-posca_stress_ping-baremetal-daily-master/16/console
We can add a Heat create timeout and fail faster if there is an error.
The question is how long should we wait for a Heat stack to deploy. We
can set a default and allow override in the heat context config, if
users make complicated stacks
heat: get netmask and gateway from heat outputs
we have do some tricky business with finding
the subnet cidr and converting it into netmask
vnf_generic: get vpci, driver and dpdk_port_num
use a big old find command to dump all the sysfs
netdev info nicely. This was re-used from autotest FCoE tests.
r"""find /sys/devices/pci* -type d -name net -exec sh -c '{ grep -sH ^ \
+$1/ifindex $1/address $1/operstate $1/device/vendor $1/device/device \
+$1/device/subsystem_vendor $1/device/subsystem_device ; \
+printf "%s/driver:" $1 ; basename $(readlink -s $1/device/driver); } \
+' sh \{\}/* \;
This finds all PCI devices that are network devices, then
dumps all the relevant info using /bin/sh.
Then we parse this into a 'netdevs' dict inside the node_dict
and also convert into VNF fields we need.
vnf_generic: set node name for kpis
node is a dict, so we have to use node_name
vnfdgen: we CANNOT use TaskTemplate.render
because it does not allow for missing variables, we need to allow
password for key_filename to be undefined
remove default ssh password hack, once rendering is fixed
add new example tc_external_ping_heat_context
Change-Id: If1fe0c1a2ab0a5be17e40790a66f28f706fa44d6
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
|
|
we need to be following defautl paramiko rules,
first use pkey, then key_filenames (autodetecting ~/.ssh/ keys),
then password
We have too much boilerplate redudant code everywhere, we need
to standardize on a factory function that takes a node dict.
Using Python3 ChainMap we can layer overrides and defaults.
VNF descriptors have to default key_filename, password to Python None.
The only way to do this is to omit key values if the variable is not
defined, this way the dict will not have the value and it will
default to Python None
Add python2 chainmap backport
Updated unittest mocking to use ssh.SSH.from_node
Change-Id: I80b0cb606e593b33e317c9e5e8ed0b74da591514
Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
|
|
TestCases:
- 64B TC
- 1518B TC
- IMIX TC
JIRA: YARDSTICK-520
Change-Id: Ic7842de8afb0f5c222de42f99bf70af29442c94a
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
JIRA: YARDSTICK-520
Change-Id: I1c683236a7fb946873418fb67f63500e1ba8fc91
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
This patch uses trex trafficgen example to define dynamic traffic profiles
and how it can be mapped to real world traffic.
JIRA: YARDSTICK-492
Change-Id: Ica24957ebf43315a8d81adabd4745c27d3c7c36a
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|
|
This patch defines
- 2tg-topology-baremetal.yaml --> Define topology
- pod.yaml -> sample pod.yaml describing TG & VNF unit details
- tc.yaml --> test case in yardstick format (scenarios/context)
- tg_ping_tpl.yaml --> VNF descriptor explaining how units are connected,
eg Host (Xe0) --> Target (Xe0)
Host (Xe1) --> Target (Xe1)
JIRA: YARDSTICK-491
Change-Id:I41b69f457a6caa58d806cac9af8e831752ad314d
Signed-off-by: Deepak S <deepak.s@linux.intel.com>
|