diff options
Diffstat (limited to 'fdio.infra.ansible/roles/intel')
-rw-r--r-- | fdio.infra.ansible/roles/intel/defaults/main.yaml | 108 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/intel/tasks/dsa.yaml | 39 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/intel/tasks/i40e.yaml | 16 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/intel/tasks/iavf.yaml | 14 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/intel/tasks/ice.yaml | 54 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/intel/tasks/main.yaml | 99 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/intel/tasks/qat1.yaml | 54 | ||||
-rw-r--r-- | fdio.infra.ansible/roles/intel/tasks/qat2.yaml | 57 |
8 files changed, 352 insertions, 89 deletions
diff --git a/fdio.infra.ansible/roles/intel/defaults/main.yaml b/fdio.infra.ansible/roles/intel/defaults/main.yaml index 7f35be3d89..9a3c5c0f0c 100644 --- a/fdio.infra.ansible/roles/intel/defaults/main.yaml +++ b/fdio.infra.ansible/roles/intel/defaults/main.yaml @@ -1,5 +1,5 @@ --- -# file: roles/intel/defaults/main.yaml +# file: defaults/main.yaml packages: "{{ packages_base + packages_by_distro[ansible_distribution | lower] + packages_by_arch[ansible_machine] }}" @@ -8,7 +8,34 @@ packages_base: packages_by_distro: ubuntu: - - [] + - "build-essential" + - "autoconf" + - "automake" + - "autotools-dev" + - "libtool" + - "pkgconf" + - "asciidoc" + - "xmlto" + - "uuid-dev" + - "libjson-c-dev" + - "libkeyutils-dev" + - "libz-dev" + - "libssl-dev" + - "debhelper" + - "devscripts" + - "debmake" + - "quilt" + - "fakeroot" + - "lintian" + - "asciidoctor" + - "file" + - "gnupg" + - "patch" + - "patchutils" + - "libboost-dev" + - "libboost-regex-dev" +# - "libudev-dev" http://security.ubuntu.com/ubuntu/pool/main/s/systemd/ + - "yasm" packages_by_arch: aarch64: @@ -21,43 +48,64 @@ intel_download_url: "https://downloadmirror.intel.com" intel_extract_dir: "/opt" intel_700_compatibility_matrix: - dpdk21.02: - # https://doc.dpdk.org/guides/rel_notes/release_21_02.html - i40e: "2.14.13" - iavf: "4.1.1" - nvm: "8.00" - dpdk22.03: - # https://doc.dpdk.org/guides/rel_notes/release_22_03.html - i40e: "2.17.15" - iavf: "4.3.19" - nvm: "8.30" + dpdk22.07: + # https://doc.dpdk.org/guides/rel_notes/release_22_07.html + i40e: "2.19.3" + iavf: "4.5.3" + nvm: "8.70" + dpdk23.11: + # https://doc.dpdk.org/guides/rel_notes/release_23_11.html + i40e: "2.23.17" + iavf: "4.9.5" + nvm: "9.30" intel_800_compatibility_matrix: - dpdk21.02: - # https://doc.dpdk.org/guides/rel_notes/release_21_02.html - ice: "1.4.11" - ddp: "1.3.28.0" - iavf: "4.1.1" - nvm: "2.40" dpdk22.03: - # https://doc.dpdk.org/guides/rel_notes/release_22_03.html - ice: "1.8.3" - ddp: "1.3.35.0" - iavf: "4.3.19" - nvm: "3.20" + # custom for vpp_device + ice: "1.13.7" + ddp: "1.3.45.0" + iavf: "4.9.5" + nvm: "4.40" + dpdk22.07: + # https://doc.dpdk.org/guides/rel_notes/release_22_07.html + ice: "1.9.7" + ddp: "1.3.37.0" + iavf: "4.5.3" + nvm: "4.00" + dpdk23.11: + # https://doc.dpdk.org/guides/rel_notes/release_23_11.html + ice: "1.13.7" + ddp: "1.3.45.0" + iavf: "4.9.5" + nvm: "4.40" + +intel_dsa_compatibility_matrix: + dsa: "4.0" + +intel_qat_compatibility_matrix: + qat2: "1.0.20-00008" + qat1: "4.22.0-00001" intel_i40e_url: - "2.14.13": "i40e%20stable/2.14.13/i40e-2.14.13.tar.gz/download" - "2.17.15": "i40e%20stable/2.17.15/i40e-2.17.15.tar.gz/download" + "2.19.3": "i40e%20stable/2.19.3/i40e-2.19.3.tar.gz/download" + "2.23.17": "i40e%20stable/2.23.17/i40e-2.23.17.tar.gz/download" intel_ice_url: - "1.4.11": "ice%20stable/1.4.11/ice-1.4.11.tar.gz/download" - "1.8.3": "ice%20stable/1.8.3/ice-1.8.3.tar.gz/download" + "1.9.7": "ice%20stable/1.9.7/ice-1.9.7.tar.gz/download" + "1.13.7": "ice%20stable/1.13.7/ice-1.13.7.tar.gz/download" intel_iavf_url: - "4.1.1": "iavf%20stable/4.1.1/iavf-4.1.1.tar.gz/download" "4.3.19": "iavf%20stable/4.3.19/iavf-4.3.19.tar.gz/download" + "4.5.3": "iavf%20stable/4.5.3/iavf-4.5.3.tar.gz/download" + "4.9.5": "iavf%20stable/4.9.5/iavf-4.9.5.tar.gz/download" intel_ddp_url: - "1.3.28.0": "30467/eng/800%20series%20comms%20binary%20package%201.3.28.0.zip" - "1.3.35.0": "727568/ice_comms-1.3.35.0.zip" + "1.3.37.0": "738733/800%20Series%20DDP%20Comms%20Package%201.3.37.0.zip" + "1.3.45.0": "785846/738693_ice_comms-1.3.45.0.zip" + +intel_dsa_url: + "4.0": "https://github.com/intel/idxd-config/archive/refs/tags/accel-config-v4.0.tar.gz" + +intel_qat_url: + "1.0.20-00008": "777529/QAT20.L.1.0.20-00008.tar.gz" + "4.22.0-00001": "780675/QAT.L.4.22.0-00001.tar.gz" diff --git a/fdio.infra.ansible/roles/intel/tasks/dsa.yaml b/fdio.infra.ansible/roles/intel/tasks/dsa.yaml new file mode 100644 index 0000000000..2f038b0e9f --- /dev/null +++ b/fdio.infra.ansible/roles/intel/tasks/dsa.yaml @@ -0,0 +1,39 @@ +--- +# file: tasks/dsa.yaml + +- name: Get DSA Driver + ansible.builtin.uri: + url: "{{ intel_dsa_url[dsa] }}" + follow_redirects: "all" + force: true + dest: "{{ intel_extract_dir }}/accel-config-v{{ dsa }}.tar.gz" + mode: "0644" + failed_when: false + tags: + - intel-inst + +- name: Extract DSA Driver + ansible.builtin.unarchive: + remote_src: true + src: "{{ intel_extract_dir }}/accel-config-v{{ dsa }}.tar.gz" + dest: "{{ intel_extract_dir }}/" + creates: "{{ intel_extract_dir }}/idxd-config-accel-config-v{{ dsa }}" + register: intel_driver_extracted + tags: + - intel-inst + +- name: Install DSA Driver + ansible.builtin.command: "{{ item }}" + args: + chdir: "{{ intel_extract_dir }}/idxd-config-accel-config-v{{ dsa }}" + become: true + with_items: + - "./autogen.sh" + - "./configure CFLAGS='-g -O2' --prefix=/usr --sysconfdir=/etc --libdir=/usr/lib64" + - "make" + - "make check" + - "make install" + when: + - intel_driver_extracted + tags: + - intel-inst diff --git a/fdio.infra.ansible/roles/intel/tasks/i40e.yaml b/fdio.infra.ansible/roles/intel/tasks/i40e.yaml index 2299a3b1b8..8b069bf9b2 100644 --- a/fdio.infra.ansible/roles/intel/tasks/i40e.yaml +++ b/fdio.infra.ansible/roles/intel/tasks/i40e.yaml @@ -1,8 +1,8 @@ --- -# file: roles/intel/tasks/i40e.yaml +# file: tasks/i40e.yaml -- name: Inst - Get i40e Network Adapter Driver - uri: +- name: Get i40e Network Adapter Driver + ansible.builtin.uri: url: "{{ intel_sourceforge_download_url }}/{{ intel_i40e_url[i40e] }}" follow_redirects: "all" force: true @@ -12,8 +12,8 @@ tags: - intel-inst -- name: Inst - Extract i40e Network Adapter Driver - unarchive: +- name: Extract i40e Network Adapter Driver + ansible.builtin.unarchive: remote_src: true src: "{{ intel_extract_dir }}/i40e-{{ i40e }}.tar.gz" dest: "{{ intel_extract_dir }}/" @@ -22,14 +22,14 @@ tags: - intel-inst -- name: Inst - i40e Network Adapter Driver - command: "{{ item }}" +- name: Install i40e Network Adapter Driver + ansible.builtin.command: "{{ item }}" args: chdir: "{{ intel_extract_dir }}/i40e-{{ i40e }}/src" become: true with_items: - "make install" - - "modprobe -r i40e" + #- "modprobe -r i40e" - "modprobe i40e" when: - intel_driver_extracted diff --git a/fdio.infra.ansible/roles/intel/tasks/iavf.yaml b/fdio.infra.ansible/roles/intel/tasks/iavf.yaml index 44040cfd7e..127e31bee2 100644 --- a/fdio.infra.ansible/roles/intel/tasks/iavf.yaml +++ b/fdio.infra.ansible/roles/intel/tasks/iavf.yaml @@ -1,8 +1,8 @@ --- -# file: roles/intel/tasks/iavf.yaml +# file: tasks/iavf.yaml -- name: Inst - Get iavf Network Adapter Driver - uri: +- name: Get iavf Network Adapter Driver + ansible.builtin.uri: url: "{{ intel_sourceforge_download_url }}/{{ intel_iavf_url[iavf] }}" follow_redirects: "all" force: true @@ -12,8 +12,8 @@ tags: - intel-inst -- name: Inst - Extract iavf Network Adapter Driver - unarchive: +- name: Extract iavf Network Adapter Driver + ansible.builtin.unarchive: remote_src: true src: "{{ intel_extract_dir }}/iavf-{{ iavf }}.tar.gz" dest: "{{ intel_extract_dir }}/" @@ -22,8 +22,8 @@ tags: - intel-inst -- name: Inst - iavf Network Adapter Driver - command: "{{ item }}" +- name: Install iavf Network Adapter Driver + ansible.builtin.command: "{{ item }}" args: chdir: "{{ intel_extract_dir }}/iavf-{{ iavf }}/src" become: true diff --git a/fdio.infra.ansible/roles/intel/tasks/ice.yaml b/fdio.infra.ansible/roles/intel/tasks/ice.yaml index 2386c8390c..c773a65a34 100644 --- a/fdio.infra.ansible/roles/intel/tasks/ice.yaml +++ b/fdio.infra.ansible/roles/intel/tasks/ice.yaml @@ -1,8 +1,8 @@ --- -# file: roles/intel/tasks/ice.yaml +# file: tasks/ice.yaml -- name: Inst - Get ice Network Adapter Driver - uri: +- name: Get ice Network Adapter Driver + ansible.builtin.uri: url: "{{ intel_sourceforge_download_url }}/{{ intel_ice_url[ice] }}" follow_redirects: "all" force: true @@ -12,8 +12,8 @@ tags: - intel-inst -- name: Inst - Extract ice Network Adapter Driver - unarchive: +- name: Extract ice Network Adapter Driver + ansible.builtin.unarchive: remote_src: true src: "{{ intel_extract_dir }}/ice-{{ ice }}.tar.gz" dest: "{{ intel_extract_dir }}/" @@ -22,30 +22,30 @@ tags: - intel-inst -- name: Inst - ice Network Adapter Driver - command: "{{ item }}" +- name: Install ice Network Adapter Driver + ansible.builtin.command: "{{ item }}" args: chdir: "{{ intel_extract_dir }}/ice-{{ ice }}/src" become: true with_items: - "make install" - - "modprobe -r ice" + #- "modprobe -r ice" - "modprobe ice" when: - intel_driver_extracted tags: - intel-inst -- name: Inst - Get Dynamic Device Personalization (DDP) Package - get_url: +- name: Get Dynamic Device Personalization (DDP) Package + ansible.builtin.get_url: url: "{{ intel_download_url }}/{{ intel_ddp_url[ddp] }}" dest: "{{ intel_extract_dir }}/800-Series-Comms-Binary-Package-{{ ddp }}.zip" mode: 0644 tags: - intel-inst -- name: Inst - Extract Dynamic Device Personalization (DDP) Package - unarchive: +- name: Extract Dynamic Device Personalization (DDP) Package + ansible.builtin.unarchive: remote_src: true src: "{{ intel_extract_dir }}/800-Series-Comms-Binary-Package-{{ ddp }}.zip" dest: "{{ intel_extract_dir }}/" @@ -54,17 +54,17 @@ tags: - intel-inst -#- name: Inst - Extract Dynamic Device Personalization (DDP) Package -# unarchive: -# remote_src: true -# src: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.zip" -# dest: "{{ intel_extract_dir }}/" -# register: intel_driver_extracted -# tags: -# - intel-inst -# -- name: Inst - Copy Dynamic Device Personalization (DDP) Package - copy: +- name: Extract Dynamic Device Personalization (DDP) Package + ansible.builtin.unarchive: + remote_src: true + src: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.zip" + dest: "{{ intel_extract_dir }}/" + register: intel_driver_extracted + tags: + - intel-inst + +- name: Copy Dynamic Device Personalization (DDP) Package + ansible.builtin.copy: src: "{{ intel_extract_dir }}/ice_comms-{{ ddp }}.pkg" dest: "/lib/firmware/updates/intel/ice/ddp/ice-{{ ddp }}.pkg" remote_src: true @@ -72,16 +72,16 @@ tags: - intel-inst -- name: Inst - Link Dynamic Device Personalization (DDP) Package - file: +- name: Link Dynamic Device Personalization (DDP) Package + ansible.builtin.file: src: "ice-{{ ddp }}.pkg" dest: "/lib/firmware/updates/intel/ice/ddp/ice.pkg" state: link tags: - intel-inst -- name: Inst - Extract Dynamic Device Personalization (DDP) Package (cleanup) - file: +- name: Extract Dynamic Device Personalization (DDP) Package (cleanup) + ansible.builtin.file: path: "{{ item }}" state: absent with_items: diff --git a/fdio.infra.ansible/roles/intel/tasks/main.yaml b/fdio.infra.ansible/roles/intel/tasks/main.yaml index 62d8d90499..d7598deca7 100644 --- a/fdio.infra.ansible/roles/intel/tasks/main.yaml +++ b/fdio.infra.ansible/roles/intel/tasks/main.yaml @@ -1,8 +1,8 @@ --- -# file: roles/intel/tasks/main.yaml +# file: tasks/main.yaml -- name: Inst - Update Package Cache (APT) - apt: +- name: Update Package Cache (APT) + ansible.builtin.apt: update_cache: true cache_valid_time: 3600 when: @@ -10,31 +10,55 @@ tags: - intel-inst-drivers -- name: Inst - Prerequisites - package: +- name: Install Prerequisites + ansible.builtin.package: name: "{{ packages | flatten(levels=1) }}" state: latest tags: - intel-inst-drivers -- name: Inst - Check Presence of Intel Ethernet 700 Series - shell: "lspci -d 8086:1583; lspci -d 8086:1585; lspci -d 8086:1572; lspci -d 8086:158a; lspci -d 8086:158b" +- name: Check Presence of Intel Ethernet 700 Series + ansible.builtin.shell: "lspci -d 8086:1583; lspci -d 8086:1585; lspci -d 8086:1572; lspci -d 8086:158a; lspci -d 8086:158b" register: intel_700_pcis failed_when: false changed_when: false tags: - intel-inst-drivers -- name: Inst - Check Presence of Intel Ethernet 800 Series - shell: "lspci -d 8086:1592; lspci -d 8086:1891" +- name: Check Presence of Intel Ethernet 800 Series + ansible.builtin.shell: "lspci -d 8086:1592; lspci -d 8086:1891; lspci -d 8086:188c" register: intel_800_pcis failed_when: false changed_when: false tags: - intel-inst-drivers -- name: Inst - Get Intel Ethernet 700 Series driver versions - set_fact: +- name: Check Presence of Intel DSA + ansible.builtin.shell: "lspci -d 8086:0b25" + register: intel_dsa_pcis + failed_when: false + changed_when: false + tags: + - intel-inst-drivers + +- name: Check Presence of Intel C4XXX + ansible.builtin.shell: "lspci -d 8086:18a0" + register: intel_qat1_pcis + failed_when: false + changed_when: false + tags: + - intel-inst-drivers + +- name: Check Presence of Intel 4XXX + ansible.builtin.shell: "lspci -d 8086:4942" + register: intel_qat2_pcis + failed_when: false + changed_when: false + tags: + - intel-inst-drivers + +- name: Get Intel Ethernet 700 Series driver versions + ansible.builtin.set_fact: i40e: "{{ intel_700_compatibility_matrix[intel_700_matrix]['i40e'] }}" iavf: "{{ intel_700_compatibility_matrix[intel_700_matrix]['iavf'] }}" nvm: "{{ intel_700_compatibility_matrix[intel_700_matrix]['nvm'] }}" @@ -43,8 +67,8 @@ tags: - intel-inst-drivers -- name: Inst - Get Intel Ethernet 800 Series driver versions - set_fact: +- name: Get Intel Ethernet 800 Series driver versions + ansible.builtin.set_fact: ice: "{{ intel_800_compatibility_matrix[intel_800_matrix]['ice'] }}" ddp: "{{ intel_800_compatibility_matrix[intel_800_matrix]['ddp'] }}" iavf: "{{ intel_800_compatibility_matrix[intel_800_matrix]['iavf'] }}" @@ -54,7 +78,24 @@ tags: - intel-inst-drivers -- name: Inst - Driver Intel Ethernet 700 Series +- name: Get Intel DSA driver versions + ansible.builtin.set_fact: + dsa: "{{ intel_dsa_compatibility_matrix['dsa'] }}" + when: > + intel_dsa_matrix is defined + tags: + - intel-inst-drivers + +- name: Get Intel QAT driver versions + ansible.builtin.set_fact: + qat1: "{{ intel_qat_compatibility_matrix['qat1'] }}" + qat2: "{{ intel_qat_compatibility_matrix['qat2'] }}" + when: > + intel_qat_matrix is defined + tags: + - intel-inst-drivers + +- name: Driver Intel Ethernet 700 Series import_tasks: i40e.yaml when: > intel_700_pcis.stdout_lines | length > 0 and @@ -62,7 +103,7 @@ tags: - intel-inst-drivers -- name: Inst - Driver Intel Ethernet 800 Series +- name: Driver Intel Ethernet 800 Series import_tasks: ice.yaml when: > intel_800_pcis.stdout_lines | length > 0 and @@ -70,12 +111,36 @@ tags: - intel-inst-drivers -- name: Inst - Driver Intel iAVF +- name: Driver Intel iAVF import_tasks: iavf.yaml when: > (intel_700_pcis.stdout_lines | length > 0 and - intel_700_matrix is defined ) or + intel_700_matrix is defined) or (intel_800_pcis.stdout_lines | length > 0 and intel_800_matrix is defined) tags: - intel-inst-drivers + +- name: Driver Intel DSA + import_tasks: dsa.yaml + when: > + intel_dsa_pcis.stdout_lines | length > 0 and + intel_dsa_matrix is defined + tags: + - intel-inst-drivers + +- name: Driver Intel QAT 1.x + import_tasks: qat1.yaml + when: > + intel_qat1_pcis.stdout_lines | length > 0 and + intel_qat_matrix is defined + tags: + - intel-inst-drivers + +- name: Driver Intel QAT 2.x + import_tasks: qat2.yaml + when: > + intel_qat2_pcis.stdout_lines | length > 0 and + intel_qat_matrix is defined + tags: + - intel-inst-drivers
\ No newline at end of file diff --git a/fdio.infra.ansible/roles/intel/tasks/qat1.yaml b/fdio.infra.ansible/roles/intel/tasks/qat1.yaml new file mode 100644 index 0000000000..701c0c1bf1 --- /dev/null +++ b/fdio.infra.ansible/roles/intel/tasks/qat1.yaml @@ -0,0 +1,54 @@ +--- +# file: tasks/qat1.yaml + +- name: Get QAT 1.x Driver + ansible.builtin.uri: + url: "{{ intel_download_url }}/{{ intel_qat_url[qat1] }}" + follow_redirects: "all" + force: true + dest: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}.tar.gz" + mode: "0644" + failed_when: false + tags: + - intel-inst + +- name: Create a Directory For QAT 1.x Driver + ansible.builtin.file: + path: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}/" + state: "directory" + mode: "0755" + tags: + - intel-inst + +- name: Extract QAT 1.x Driver + ansible.builtin.unarchive: + remote_src: true + src: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}.tar.gz" + dest: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}/" + register: intel_driver_extracted + tags: + - intel-inst + +- name: Install QAT1.x Driver + ansible.builtin.command: "{{ item }}" + args: + chdir: "{{ intel_extract_dir }}/QAT.L.{{ qat1 }}" + become: true + with_items: + - "./configure --enable-icp-sriov=host --enable-icp-sym-only" + - "make" + - "make install" + when: + - intel_driver_extracted + tags: + - intel-inst + +- name: Load Kernel Modules By Default + ansible.builtin.lineinfile: + path: "/etc/modules" + state: "present" + line: "{{ item }}" + with_items: + - "qat_c4xxx" + tags: + - intel-inst
\ No newline at end of file diff --git a/fdio.infra.ansible/roles/intel/tasks/qat2.yaml b/fdio.infra.ansible/roles/intel/tasks/qat2.yaml new file mode 100644 index 0000000000..a560f16b2c --- /dev/null +++ b/fdio.infra.ansible/roles/intel/tasks/qat2.yaml @@ -0,0 +1,57 @@ +--- +# file: tasks/qat2.yaml + +- name: Get QAT 2.x Driver + ansible.builtin.uri: + url: "{{ intel_download_url }}/{{ intel_qat_url[qat2] }}" + follow_redirects: "all" + force: true + dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}.tar.gz" + mode: "0644" + failed_when: false + tags: + - intel-inst + +- name: Create a Directory For QAT 2.x Driver + ansible.builtin.file: + path: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}/" + state: "directory" + mode: "0755" + tags: + - intel-inst + +- name: Extract QAT 2.x Driver + ansible.builtin.unarchive: + remote_src: true + src: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}.tar.gz" + dest: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}/" + register: intel_driver_extracted + tags: + - intel-inst + +- name: Install QAT 2.x Driver + ansible.builtin.command: "{{ item }}" + args: + chdir: "{{ intel_extract_dir }}/QAT20.L.{{ qat2 }}" + become: true + with_items: + - "wget http://security.ubuntu.com/ubuntu/pool/main/s/systemd/libudev-dev_249.11-0ubuntu3.7_amd64.deb" + - "dpkg -i ./libudev-dev_249.11-0ubuntu3.7_amd64.deb" + - "./configure --enable-icp-sriov=host --enable-icp-sym-only" + - "make" + - "make install" + - "apt remove -y libudev-dev" + when: + - intel_driver_extracted + tags: + - intel-inst + +- name: Load Kernel Modules By Default + ansible.builtin.lineinfile: + path: "/etc/modules" + state: "present" + line: "{{ item }}" + with_items: + - "qat_4xxx" + tags: + - intel-inst
\ No newline at end of file |