aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--resources/metric/nDPI.yaml76
-rw-r--r--tests/integration/group_vars/all1
-rw-r--r--tests/integration/run.yaml6
4 files changed, 86 insertions, 2 deletions
diff --git a/.gitignore b/.gitignore
index 2b3bc644..a098d85d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -75,7 +75,8 @@ ChangeLog
!/tests/data/**/*
# integration data
+/tests/integration/*.retry
+/tests/integration/dump
/tests/integration/hosts
+/tests/integration/reports
/tests/integration/ssh.cfg
-/tests/integration/*.retry
-/tests/integration/reports/*
diff --git a/resources/metric/nDPI.yaml b/resources/metric/nDPI.yaml
new file mode 100644
index 00000000..c73d367f
--- /dev/null
+++ b/resources/metric/nDPI.yaml
@@ -0,0 +1,76 @@
+##############################################################################
+# Copyright (c) 2017 ZTE Corporation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+
+- name: prepare sample pcap file
+ get_url:
+ url: "https://build.opnfv.org/artifacts.opnfv.org/qtip/utilities/test.pcap"
+ dest: "{{ qtip_dump }}/localhost/{{ nDPI_file }}"
+ validate_certs: no # required when using proxy for https
+ run_once: yes
+ delegate_to: localhost
+
+- name: installing nDPI dependencies if CentOS
+ yum:
+ name: '{{ item }}'
+ state: present
+ when: ansible_os_family == "RedHat"
+ with_items:
+ - git
+ - gcc
+ - patch
+ - perl-Time-HiRes
+ - autofconf
+ - automake
+ - libpcap-devel libtool
+
+- name: installing nDPI dependencies if Ubuntu
+ apt:
+ name: build-essential
+ state: present
+ when: ansible_os_family == "Debian"
+
+- name: making nDPI temporary directory
+ file:
+ path: "{{ nDPI_cwd }}"
+ state: directory
+
+- name: clone nDPI
+ git:
+ repo: https://github.com/ntop/nDPI.git
+ dest: "{{ nDPI_cwd }}"
+ depth: 1
+
+- name: build nDPI library
+ command: '{{ item }}'
+ with_items:
+ - ./autogen.sh
+ - ./configure
+ - make
+ args:
+ chdir: "{{ nDPI_cwd }}"
+
+- name: copy sample packet file
+ copy:
+ src: "{{ qtip_dump }}/localhost/{{ nDPI_file }}"
+ dest: "{{ nDPI_cwd }}/example/{{ nDPI_file }}"
+
+- name:
+ command: "./ndpiReader -i {{ nDPI_file }}"
+ args:
+ chdir: "{{ nDPI_cwd }}/example/"
+ register: nDPI_out
+
+- name: collect DPI metrics from nDPI
+ collect:
+ string: "{{ nDPI_out.stdout }}"
+ patterns:
+ - '^\s+nDPI throughput:.+?(?P<pps>\d+.\d+)\s.+\spps.+?(?P<bps>\d+.\d+)\s.+\/sec'
+ dump: 'nDPI.log'
+ register: dpi_metrics
diff --git a/tests/integration/group_vars/all b/tests/integration/group_vars/all
index 16a93f46..a84ab51f 100644
--- a/tests/integration/group_vars/all
+++ b/tests/integration/group_vars/all
@@ -1,3 +1,4 @@
qtip_resources: ../../resources
qtip_reports: ./reports
qtip_fixtures: ./fixtures
+qtip_dump: ./dump
diff --git a/tests/integration/run.yaml b/tests/integration/run.yaml
index 7545a65e..99bee5ea 100644
--- a/tests/integration/run.yaml
+++ b/tests/integration/run.yaml
@@ -21,6 +21,12 @@
- name: ssl metrics
include: "{{ qtip_resources }}/metric/openssl.yaml"
tags: [ssl]
+ - name: DPI metrics
+ include: "{{ qtip_resources }}/metric/nDPI.yaml"
+ vars:
+ nDPI_cwd: "{{ ansible_env.HOME }}/qtip/nDPI"
+ nDPI_file: "dpi.pcap"
+ tags: [nDPI]
- hosts: compute
tasks: