############################################################################## # 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 update: no - name: build nDPI library command: '{{ item }}' with_items: - ./autogen.sh - ./configure - make args: chdir: "{{ nDPI_cwd }}" creates: example/ndpiReader - 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: # nDPI throughput: 1.46 M pps / 13.69 Gb/sec # TODO(yujunz) convert "M pps" and "K pps" to number - 'nDPI throughput:\s+?(?P\d+.\d+.*) \/ (?P\d+.\d+.*)$' dump: 'nDPI.log' register: dpi_metrics