X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=resources%2Ftools%2Ftestbed-setup%2Fansible%2Froles%2Fdpdk%2Ftasks%2Fmain.yaml;h=a38a9ee429939aef8400e1b7540e8cb768628e91;hb=917c3d8dc1331db5a9676df16d4187312b0003d8;hp=753ebec50cb1260aaf023dbafb0b27bb4de6acdb;hpb=ed648e7c1f6493fd3bd01213ed0692a5b2e1a020;p=csit.git diff --git a/resources/tools/testbed-setup/ansible/roles/dpdk/tasks/main.yaml b/resources/tools/testbed-setup/ansible/roles/dpdk/tasks/main.yaml index 753ebec50c..a38a9ee429 100644 --- a/resources/tools/testbed-setup/ansible/roles/dpdk/tasks/main.yaml +++ b/resources/tools/testbed-setup/ansible/roles/dpdk/tasks/main.yaml @@ -1,45 +1,66 @@ --- # file: roles/dpdk/tasks/main.yaml +- Name: Update package cache (apt) + apt: + update_cache: yes + cache_valid_time: 3600 + when: + - ansible_distribution|lower == 'ubuntu' + - name: DPDK - Install Distribution - Release - Machine Prerequisites package: name: "{{ packages | flatten(levels=1) }}" state: latest - update_cache: true tags: - install-dependencies - name: DPDK - Download Release Archive get_url: - url: "{{ dpdk_url }}/dpdk-{{ dpdk_version }}.tar.xz" - dest: "{{ dpdk_target_dir }}/dpdk-{{ dpdk_version }}.tar.xz" + url: "{{ dpdk_url }}/dpdk-{{ item }}.tar.xz" + dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz" mode: 0644 - register: "linux__dpdk_downloaded" + loop: "{{ dpdk_version }}" + register: "dpdk_downloaded" tags: - install-dpdk -- name: Extract DPDK release archive +- name: DPDK - Extract Release Archive unarchive: remote_src: true - src: "{{ dpdk_target_dir }}/dpdk-{{ dpdk_version }}.tar.xz" + src: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz" dest: "{{ dpdk_target_dir }}/" - creates: "{{ dpdk_target_dir }}/dpdk-stable-{{ dpdk_version }}" - when: "linux__dpdk_downloaded" - register: "linux__dpdk_extracted" + creates: "{{ dpdk_target_dir }}/dpdk-{{ item }}" + loop: "{{ dpdk_version }}" + when: "dpdk_downloaded" + register: "dpdk_extracted" tags: - install-dpdk -- name: Compile DPDK release +- name: DPDK - Build igb_uio by default + lineinfile: + dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}/config/common_base" + regexp: "^CONFIG_RTE_EAL_IGB_UIO" + line: "CONFIG_RTE_EAL_IGB_UIO=y" + loop: "{{ dpdk_version }}" + when: "dpdk_extracted" + register: "dpdk_configured" + tags: + - install-dpdk + +- name: DPDK - Compile Release I become: yes - command: "make install T={{ dpdk_build_targets[ansible_machine] }}-linux-gcc DESTDIR={{ dpdk_target_dir }}/dpdk-stable-{{ dpdk_version }} chdir={{ dpdk_target_dir }}/dpdk-stable-{{ dpdk_version }}" - when: "linux__dpdk_extracted" - register: "linux__dpdk_compiled" + command: "make install T={{ dpdk_build_targets[item][ansible_machine] }} DESTDIR={{ dpdk_target_dir }}/dpdk-{{ item }} chdir={{ dpdk_target_dir }}/dpdk-{{ item }}" + loop: "{{ dpdk_version }}" + when: "dpdk_configured" + register: "dpdk_compiled" tags: - install-dpdk -- name: Link igb_uio module - shell: "ln -fs {{ dpdk_target_dir }}/dpdk-stable-{{ dpdk_version }}/{{ dpdk_build_targets[ansible_machine] }}-linux-gcc/kmod/igb_uio.ko /lib/modules/`uname -r`/igb_uio.ko && depmod -a" +- name: DPDK - Link igb_uio Module + 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" ignore_errors: "yes" - when: "linux__dpdk_compiled" + loop: "{{ dpdk_version }}" + when: "dpdk_compiled" tags: - - link-igb_uio-module + - install-dpdk