aboutsummaryrefslogtreecommitdiffstats
path: root/samples/vnf_samples
AgeCommit message (Collapse)AuthorFilesLines
2017-09-17Added multi-port testcases for vFWDeepak S5-104/+204
Change-Id: I6cf8675c83fc081dd22ae7896e63ff7725ed3c13 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 Banszel25-330/+81
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>
2017-09-08Merge "Adding nfvi flag to enable data collection"Ross Brattain22-0/+23
2017-09-08Merge "Adding latency test for vfw"Ross Brattain2-0/+50
2017-09-07Merge "Adding ixia latency support for dynamic cgnapt"Ross Brattain2-0/+52
2017-09-07Adding ixia latency support for dynamic cgnaptDeepak S2-0/+52
Change-Id: I346f6064c39cb5662c2b17ca0f520addbe5eae4c Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-09-07Merge "updating the traffic profile to enable static cgnapt for ixnet"Ross Brattain5-1/+6
2017-09-06Addition of Prox NSB tests in yardstickAbhijit Sinha17-0/+1195
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>
2017-09-05Add fixes for heat deployed UDP_Replay and TRexMartin Banszel1-0/+79
- 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>
2017-09-05Merge "Addition of Prox NSB changes in yardstick"Ross Brattain47-25/+1938
2017-09-04Fix Ixload KPIs collection & hang issues.Deepak S1-0/+1
Change-Id: If679333dc1cb9e041a332fb374c55f72eaab1b28 Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-04Addition of Prox NSB changes in yardstickabhijitsinha47-25/+1938
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>
2017-09-03Adding nfvi flag to enable data collectionDeepak S22-0/+23
Change-Id: Ieafefb5501dc3a20fee41726a7daa9e4bb28599f Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-09-02Adding latency test for vfwDeepak S2-0/+50
Change-Id: Ibed8bf057a76f55a9e4cc5c55a104350e43a2a6e Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-09-02updating the traffic profile to enable static cgnapt for ixnetDeepak S5-1/+6
Change-Id: I49e9c5c69bc997d3ba33387e691459c167f3e4bc Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-09-01Merge "Adding support for updating the count/packetsize for given testcase"Ross Brattain2-33/+41
2017-09-01Merge "Adding vfw scale-up test with ixia as tg"Ross Brattain1-0/+49
2017-09-01Adding cgnapt scale-up test with ixia as tgDeepak S1-0/+49
Change-Id: I834d733aff2da5af12db08f4159be2e9c6361aab Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-09-01Adding vfw scale-up test with ixia as tgDeepak S1-0/+49
Change-Id: I4f476d16dd11a12f5ffa9047af78d2236a4fbbc2 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-08-31Adding support for updating the count/packetsize for given testcaseDeepak S2-33/+41
Change-Id: I3ec1a6d3710d44df5ddac6bd8967d28ad58e8d33 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-08-31Added TC for vFW in heat context with ixia TGMaciej Skrocki1-0/+82
- added common method to get relative paths - added 'Ixia' APP_NAME Change-Id: I7966798bab71af66d3efbeb1e13b07e8fbb41e88 Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
2017-08-25Enabling ACL test for provider network.Maciej Skrocki1-16/+19
Properly re-using network_type from model. Change-Id: I40180eb53080a360b4099c034038eac67716f8d1 Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
2017-08-25Added external versions for vFW and cgnat TCs.Maciej Skrocki2-0/+161
Change-Id: I6778dac0c60f090238ed1f4860470e62a64c7d69 Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
2017-08-24Removed unnecessary image definitions and flavor names.Maciej Skrocki3-5/+0
Change-Id: I13464d997ff9aba09a6cff7d3ff62f29df770a38 Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
2017-08-24nsb: update HEAT testcasesRoss Brattain3-14/+183
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>
2017-08-21Re-define the framesize and flow dynamic define in testcaseDeepak S41-438/+354
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>
2017-08-19Fix IxLoad traffic generator issue around running the traffic.Deepak S1-1/+1
Change-Id: Ic1f13c0d28c1a1b01bbf3c8a6a618a5b3ab5bbeb Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-08-15Enable ixnet traffic generator to run trafficDeepak S2-1/+6
Change-Id: I8d7cea75aa864c37a058a154a38c9828ea5da434 Signed-off-by: Deepak S <deepak.s@linux.intel.com> Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-08-14PROX VNF and TGRoss Brattain42-0/+35429
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>
2017-08-11ixia: VNF id must match class nameRoss Brattain1-2/+2
The class name is IxiaTrafficGen Change-Id: Ie18be44c7b58d50f13e9a5df50afa3e02fc0cce3 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-08-11Merge "UDP relay"Ross Brattain3-0/+168
2017-08-10UDP relayDeepak S3-0/+168
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>
2017-08-11Merge "Sample CGNAPT VNF"Ross Brattain16-0/+2103
2017-08-10Sample VFW VNFDeepak S16-0/+2042
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>
2017-08-10Sample CGNAPT VNFDeepak S16-0/+2103
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>
2017-08-10Merge "IXIA traffic generator"Ross Brattain4-0/+384
2017-08-08Sample ACL VNFDeepak S25-0/+2528
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>
2017-08-08IXIA traffic generatorDeepak S4-0/+384
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>
2017-08-08NSB updateDeepak S24-680/+2322
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>
2017-07-24Setup OVS-DPDK Standalone ContextBindya Narayan1-0/+42
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>
2017-06-20Acquire NSB specific data from Heat.Edward MacGillivray2-0/+122
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>
2017-04-11standardize ssh authRoss Brattain6-1/+238
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>
2017-01-19Adding sample Thoughput Test case for vPE.Deepak S15-0/+1841
TestCases: - 64B TC - 1518B TC - IMIX TC JIRA: YARDSTICK-520 Change-Id: Ic7842de8afb0f5c222de42f99bf70af29442c94a Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-01-19Adding Trex rfc2544 VNF class to initate Traffic for throughputDeepak S1-0/+69
JIRA: YARDSTICK-520 Change-Id: I1c683236a7fb946873418fb67f63500e1ba8fc91 Signed-off-by: Deepak S <deepak.s@linux.intel.com>
2017-01-19Adding trex trafficgen example.Deepak S5-0/+390
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>
2017-01-19Adding ping testcase to demonstrate the isb Generic frameworkDeepak S3-0/+159
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>