2 # file: roles/dpdk/tasks/main.yaml
4 - Name: Update package cache (apt)
9 - ansible_distribution|lower == 'ubuntu'
11 - name: DPDK - Install Distribution - Release - Machine Prerequisites
13 name: "{{ packages | flatten(levels=1) }}"
16 - install-dependencies
18 - name: DPDK - Download Release Archive
20 url: "{{ dpdk_url }}/dpdk-{{ item }}.tar.xz"
21 dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
23 loop: "{{ dpdk_version }}"
24 register: "dpdk_downloaded"
28 - name: DPDK - Extract Release Archive
31 src: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
32 dest: "{{ dpdk_target_dir }}/"
33 creates: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
34 loop: "{{ dpdk_version }}"
35 when: "dpdk_downloaded"
36 register: "dpdk_extracted"
40 - name: DPDK - Build igb_uio by default
42 dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}/config/common_base"
43 regexp: "^CONFIG_RTE_EAL_IGB_UIO"
44 line: "CONFIG_RTE_EAL_IGB_UIO=y"
45 loop: "{{ dpdk_version }}"
46 when: "dpdk_extracted"
47 register: "dpdk_configured"
51 - name: DPDK - Compile Release I
53 command: "make install T={{ dpdk_build_targets[item][ansible_machine] }} DESTDIR={{ dpdk_target_dir }}/dpdk-{{ item }} chdir={{ dpdk_target_dir }}/dpdk-{{ item }}"
54 loop: "{{ dpdk_version }}"
55 when: "dpdk_configured"
56 register: "dpdk_compiled"
60 - name: DPDK - Link igb_uio Module
61 shell: "ln -fs {{ dpdk_target_dir }}/dpdk-{{ item }}/{{ dpdk_build_targets[item][ansible_machine] }}/kmod/igb_uio.ko /lib/modules/`uname -r`/igb_uio.ko && depmod -a"
63 loop: "{{ dpdk_version }}"