Age | Commit message (Collapse) | Author | Files | Lines |
|
Assign the IP mask to IxNetwork configuration, depending on the IP range
provided by the user in the traffic profile. In case of single IP, a
default mask will be provided:
- IP_VERSION_4_MASK = 24
- IP_VERSION_6_MASK = 64
JIRA: YARDSTICK-1351
Change-Id: I029473ab8b9966a76cf559ffef53b34ca11462ad
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
delete_custom_resource_definition()"
|
|
|
|
JIRA: YARDSTICK-1317
Change-Id: I2dc924334199761d63dce9aebe9ce200ca0fddf8
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
Accept line rate percentage or fps a initial rate for IXIA RFC2544 traffic profile:
traffic_profile:
traffic_type : IXIARFC2544Profile
frame_rate : 100%
traffic_profile:
traffic_type : IXIARFC2544Profile
frame_rate : 5000fps
JIRA: YARDSTICK-1336
Change-Id: I85b3dd0daf563bb7af098a3aa5bb872961fb009b
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1321
Change-Id: Id0f3a5d93f11674fd3908a7f5cf7214afcfa3600
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
Accept strings and list of strings as "args" and "commands"
in a Kubernetes container.
JIRA: YARDSTICK-1329
Change-Id: I56470741072fb7f9a62d695c51fcb0cc3f3ff1b9
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
The configuration parameter "imagePullPolicy" defines how Kubernetes
retrieves de image. By default, Kubernetes will always try to pull the
latest image from the repository [1]. Three possible arguments are accepted:
- Always
- IfNotPresent
- Never
Example of Kubernetes pod definition:
containers:
- name: vcmts-pktgen-pod-0
image: openretriever/yardstick
imagePullPolicy: IfNotPresent
Example of Yardstick definition:
context:
name: k8syardstick
type: Kubernetesservers:
vnf:
image: openretriever/yardstick
imagePullPolicy: IfNotPresent
[1] https://kubernetes.io/docs/concepts/containers/images/
JIRA: YARDSTICK-1328
Change-Id: I83bfb01670eef22218b1affd7d37af14e32a622e
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
In Kubernetes context, service NodePort can contain more than one port
defined. Actually, by default port SSH (22) is always created. If more
than one port is defined in the service template, 'name' parameter is
mandatory.
Names must be lowercase, containing alphanumeric characters or '-'.
Verification regex used by Kubernetes: [a-z0-9]([-a-z0-9]*[a-z0-9])?
JIRA: YARDSTICK-1324
Change-Id: I82791761d8eae24196c2f16aee9900af28d44c57
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1320
Change-Id: I5b762d4732440008630093e1d0952f7e41a8a191
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@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>
|
|
|
|
When a kubernetes context is returning the node info it is
assumed that the first port defined is the ssh port which may
not be the case. This patch will address this issue by looking
for a defined port 22.
JIRA: YARDSTICK-1301
Change-Id: I65dee1bcf62f21ebcaefeaa2666bb0ad53f3876c
Signed-off-by: John O Loughlin <john.oloughlin@intel.com>
|
|
Supervisord doesn't support demonize applications, thus we have to
make the uwsgi application to run not in background.
- Fixed Yardstick API path.
- Fixed HttpClient class to raise correct exception when
the HTML response (not JSON) like 4xx, 5xx is received.
(http://docs.python-requests.org/en/master/user/quickstart/#json-response-content)
JIRA: YARDSTICK-1297
Change-Id: I4d1c1bb7266eeed0bd357bd28b91206d1580611f
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.com>
|
|
This new parameter, "ports", will allow the user to
automatically to add port variables in a pod definition:
context:
type: Kubernetes
servers:
host:
image: ...
commands: ...
ports:
- containerPort: <port value> # Mandatory
hostIP: <host IP> # Optional
hostPort: <host port> # Optional
name: <port name> # Optional
protocol: <protocol name> # Optional
The port type and the definition must be one of the supported ones
in Kubernetes [1].
Container port definition, V1 API, Kubernetes Python library v6.0.0 [2]
[1] https://kubernetes.io/docs/concepts/services-networking/connect-applications-service/
[2] https://github.com/kubernetes-client/python/blob/6.0.0/kubernetes/client/models/v1_container_port.py
JIRA: YARDSTICK-1183
Change-Id: I3673dbeec8d380cb2f8b1dacf6c25c7cdbc37e28
Signed-off-by: John O Loughlin <john.oloughlin@intel.com>
|
|
This new parameter, "restartPolicy", will allow define the restart policy per pod.
Example of yaml definition in Kubernetes:
apiVersion: v1
kind: Pod
metadata:
name: frontend
spec:
containers:
- name: db
...
restartPolicy: Always # Possible values: "Always", "OnFailure" and "Never"
Example of definition in a Yardstick context:
context:
type: Kubernetes
servers:
host:
containers:
- name: ...
restartPolicy: Always # Default value: "Always"
Restart policy [1].
[1] https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#restart-policy
JIRA: YARDSTICK-1175
Change-Id: Id4317b909f98422e89d6d4553e8cfb0e1f593355
Signed-off-by: John O Loughlin <john.oloughlin@intel.com>
|
|
|
|
* changes:
Make "IterationIPC" MQ producer for VNF control messages
Enable traffic generator PID in "NSPerf" scenario setup
Enable the MQ producer in "SampleVNFTrafficGen" class
Add "TrafficGeneratorProducer" for "GenericTrafficGen" instances
Add "IterationIPC" runner
|
|
|
|
|
|
"IterationIPC" runner class is a consumer for MQ aware VNFs. A MQ aware
traffic generator can send "started", "finished" and "iteration"
messages.
This feature implements a MQ producer in the runner in order to send
messages to the VNFs. The messages implemented are:
- "start_iteration"
- "stop_iteration"
JIRA: YARDSTICK-1286
Change-Id: I706f9a9dda5e5beed52231be7d71452945a7dbed
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>
|
|
"IterationIPC" is a runner that runs a configurable number of times before
it returns. Each iteration has a configurable timeout. The loop control
depends on the feedback received from the running VNFs. The context PIDs
from the VNFs to listen the messages from are given in the scenario
"setup" method.
The MQ consumer, "RunnerIterationIPCConsumer", is subscribed to messages
sent to topic "messaging.TOPIC_TG". The endpoints are defined in the
class "RunnerIterationIPCEndpoint". Three are implemented:
"messaging.TG_METHOD_STARTED", "messaging.TG_METHOD_FINISHED" and
"messaging.TG_METHOD_ITERATION".
JIRA: YARDSTICK-1127
Change-Id: I4b2f11a15ef41e6f3c70bd64188d5c7fbcdb7eed
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1265
Change-Id: Ic2813dca7fc9a3230632f6e8bd75aeacc7e951b0
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
|
|
JIRA: YARDSTICK-1221
In order to increase accuracy of result the following are done :-
- Improve Measurement Accuracy (YARDSTICK-1212)
- Improve Sampling Interval (YARDSTICK-1219)
- Allow 4 PROX ports to be read simultaneously (YARDSTICK-1220)
This change does the following :-
- Stores LINE Rate statistics of Sample
- Requires a confirmation retry before deciding to increase or
decrease this is configurable.
- Allows the user to disable Sampling or specify a sample interval
- Added Code Coverage of ProxDurationRunner based on YARDSTICK-1199
Change-Id: I27242ac1849c9a2712866385b5fbc05977c71516
Signed-off-by: Daniel Martin Buckley <daniel.m.buckley@intel.com>
|
|
JIRA: YARDSTICK-1255
Change-Id: I446d715dc6cf716a4fcbc1b809c1b1d6303071e0
Signed-off-by: Chornyi, TarasX <tarasx.chornyi@intel.com>
|
|
|
|
|
|
This patch allows user to configure ACL/vFW SampleVNF ACL
via configuration file provided in TC definition. The
Yardstick applies the rules to SampleVNF from specified config
file + rules generated by Yardstick (default rules).
The example of SampleVNF ACL CLI commands generated/applied
by Yardstick can be found at (using default ACL config file):
ACL VNF ACL CLI commands:
acl/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
http://paste.openstack.org/show/723303/
vFW VNF ACL CLI commands:
vfw/tc_heat_rfc2544_ipv4_1rule_1flow_64B_trex.yaml
http://paste.openstack.org/show/723304/
Change-Id: I76a630261a982083b628e3985fc3bec14ca495db
Signed-off-by: Mytnyk, Volodymyr <volodymyrx.mytnyk@intel.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>
|
|
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>
|
|
|
|
Pktgen provides a TCP socket connection to allow the user to control
it from a remote console or program [1].
This new method will provide Yardstick the ability to send string
commands to a port in a remote host.
[1] http://pktgen-dpdk.readthedocs.io/en/latest/socket.html
JIRA: YARDSTICK-1186
Change-Id: I9d64ccad662fa3599de65654c5dab02833fcc91d
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Add a new Kubernetes resource kind: "Network" [1] [2]
Kubernetes network plugins (alpha definition): [3]
Network definition example in Kubernetes:
apiVersion: "kubernetes.com/v1"
kind: Network
metadata:
name: flannel
plugin: flannel
args: '[
{delegate": {"isDefaultGateway": true}}
]'
Proposed Kubernetes context network definition:
context:
networks:
- name: flannel
plugin: flannel
args: (string)
- name: sriov_upload
plugin: sriov
args: (string)
[1]https://builders.intel.com/docs/networkbuilders/multiple-network-interfaces-in-kubernetes-application-note.pdf
[2]http://cdn.opensourcecloud.cn/zt/k8s/01.pdf
[3]https://kubernetes.io/docs/concepts/cluster-administration/network-plugins/
JIRA: YARDSTICK-1160
Change-Id: I71a49ac14e3d28ded91d2ed3cd9cc527e40303f7
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Custom resource definition example in Kubernetes:
apiVersion: "apiextensions.k8s.io/v1beta"
kind: CustomResourceDefinition
metadata:
name: networks.kubernetes.com
spec:
group: kubernetes.com
version: v1
scope: Namespaced
names:
plural: networks
singular: network
kind: Network
Proposed Kubernetes context network definition:
context:
custom_resources:
- name: network # name of the resource (singular)
version: v1 # optional, "v1" by default
scope: Namespaced # optional, "Namespaced" by default
From this definition, we will extract the Kubernetes parameters:
- metadata.name: custom_resources.name + "s" + context_name + ".com"
- spec.group: context_name + ".com"
- spec.scope: custom_resources.scope
- spec.version: custom_resources.version
- spec.names.plural: custom_resources.name + "s"
- spec.names.singular: custom_resources.name
- spec.names.kind: custom_resources.name with first capital letter
[1] https://kubernetes.io/docs/concepts/api-extension/custom-resources/
JIRA: YARDSTICK-1163
Change-Id: If8980dc3f6ddf9c6949bf15be8011aa98482ddc9
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
This new parameter, "volumes", will allow the user to automatically create
new volumes. Example of Kubernetes context definition:
context:
type: Kubernetes
servers:
host:
image: ...
commands: ...
volumes:
- name: volume1 # mandatory
<volume type definition> # mandatory
The volume type and the definition must be one of the supported ones in
Kubernetes [1].
[1] https://kubernetes.io/docs/concepts/storage/volumes/#types-of-volumes
JIRA: YARDSTICK-1152
Change-Id: I44a91c605f047de4f286407e28fb5aa2e921b00a
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
This patch modifies the way the packet frame and the flow is configured
before the injection.
"IxNextgen.update_frame" modifies the L2 frame according to the
test case and setup the frame rate, frame size, traffic injection
duration and MAC addresses.
JIRA: YARDSTICK-1116
Change-Id: Ife08f15a4eda24d7835c92c4172b450854d112ee
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
Signed-off-by: Emma Foley <emma.l.foley@intel.com>
|
|
JIRA: YARDSTICK-1218
Change-Id: I804065e9bce3e728f5bf9e756a78df8fd28f74ac
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1216
Change-Id: I82556e1d1b0c723221a58e188067cbce560b8338
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
JIRA: YARDSTICK-1215
Change-Id: I5ecfd3dccd91b07cd8de5309dfa1a372eff16ed0
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
Remove get_image_id function.
Function delete_image now uses shade client.
JIRA: YARDSTICK-892
Change-Id: I6e8510dfa49aa14786ed7ac3382b85c4e699fb9e
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|
|
Function create_image now uses shade client.
JIRA: YARDSTICK-892
Change-Id: Ia41d9ce702a1f24031080f8a365c1b2bd9ac9faa
Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
|
|
1. fix safe_dump
2. fix pep8 problem, use flask_restapi custom error handling [1]
[1] https://flask-restful.readthedocs.io/en/latest/extending.html#custom-error-handlers
JIRA: YARDSTICK-1165
RestApi openrc dump clouds.yaml error
it now use yarml.dump, should be yaml.safe_dump.
dump would gererate !!python/unicode and cause error when upload openrc file in gui
Change-Id: Id3e85f7ba7d4967277ef79109b07d7552179e5db
Signed-off-by: rexlee8776 <limingjiang@huawei.com>
|
|
This feature will provide Kubernetes context the ability to handle the
context name inside the class itself, providing to the developer an
abstraction of the possible naming limitations in Kubernetes. E.g.:
"dot" character in Pod names is no allowed [1].
[1] https://github.com/fabric8io/fluent-plugin-kubernetes_metadata_filter/issues/58
JIRA: YARDSTICK-1188
Change-Id: I82121f970b550170357a443b6340be7900602a57
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|
|
* changes:
Kubernetes API "delete_service" missing parameter
Bump Kubernetes Python client to version 6.0.0
Avoid "volumeMounts" with "configMap" fixed permissions
|
|
|
|
Kubernetes method "delete_service" calls core API function
"delete_namespaced_service". The parameter "body" [1] is missing:
:param V1DeleteOptions body: (required)
[1] https://github.com/kubernetes-client/python/blob/6.0.0/kubernetes/client/apis/core_v1_api.py
JIRA: YARDSTICK-1154
Change-Id: I40bca2af0f5359eaa788d3b81d82897a770329f0
Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
|