feat(infra): Mellanox compatibility Matrix 14/36114/3
authorPeter Mikus <pmikus@cisco.com>
Tue, 10 May 2022 08:57:43 +0000 (10:57 +0200)
committerPeter Mikus <pmikus@cisco.com>
Tue, 10 May 2022 10:09:11 +0000 (10:09 +0000)
Signed-off-by: Peter Mikus <pmikus@cisco.com>
Change-Id: Iec87340aed64dd72e5289bd13af27c177f92c466

12 files changed:
fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.18.yaml
fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.19.yaml
fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.20.yaml
fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.21.yaml
fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.22.yaml
fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.23.yaml
fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.24.yaml
fdio.infra.ansible/inventories/lf_inventory/host_vars/10.32.8.25.yaml
fdio.infra.ansible/roles/intel/tasks/main.yaml
fdio.infra.ansible/roles/mellanox/defaults/main.yaml
fdio.infra.ansible/roles/mellanox/tasks/main.yaml
fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml [new file with mode: 0644]

index b70daf0..c37a373 100644 (file)
@@ -1,5 +1,5 @@
 ---
-# file: roles/performance_tuning/tasks/main.yaml
+# file: roles/intel/tasks/main.yaml
 
 - name: Inst - Update Package Cache (APT)
   apt:
@@ -10,7 +10,7 @@
   tags:
     - intel-inst-drivers
 
-- name: Inst - Machine Prerequisites
+- name: Inst - Prerequisites
   package:
     name: "{{ packages | flatten(levels=1) }}"
     state: latest
index 0caaae1..a12a613 100644 (file)
@@ -18,4 +18,13 @@ packages_by_arch:
   x86_64:
     - []
 
-mellanox_version: "5.2-1.0.4.0"
+mellanox_download_url: "http://content.mellanox.com/ofed"
+mellanox_extract_dir: "/opt"
+
+mellanox_cx5_compatibility_matrix:
+  dpdk21.02:
+    # https://doc.dpdk.org/guides/rel_notes/release_21_02.html
+    ofed: "5.3-1.0.5.0"
+  dpdk22.03:
+    # https://doc.dpdk.org/guides/rel_notes/release_22_03.html
+    ofed: "5.5-1.0.3.2"
index 3cccdb7..7596430 100644 (file)
@@ -8,60 +8,35 @@
   when:
     - ansible_distribution|lower == 'ubuntu'
   tags:
-    - mellanox-inst-prerequisites
+    - mellanox-inst-drivers
 
 - name: Inst - Prerequisites
   package:
     name: "{{ packages | flatten(levels=1) }}"
     state: latest
   tags:
-    - mellanox-inst-prerequisites
+    - mellanox-inst-drivers
 
-- name: Inst - Check Presence of Mellanox Hardware
+- name: Inst - Check Presence of Mellanox CX-5
   shell: "lspci | grep Mellanox | awk '{print $1}'"
   register: mellanox_pcis
   failed_when: false
   changed_when: false
   tags:
-    - mellanox-inst
+    - mellanox-inst-drivers
 
-- name: Inst - Get OFED
-  get_url:
-    url: "http://content.mellanox.com/ofed/MLNX_OFED-{{ mellanox_version }}/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
-    dest: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
-    mode: 0644
-  when: mellanox_pcis.stdout_lines | length > 0
+- name: Inst - Get Mellanox CX-5 OFED driver versions
+  set_fact:
+    ofed: "{{ mellanox_cx5_compatibility_matrix[mellanox_cx5_matrix]['ofed'] }}"
+  when: >
+    mellanox_pcis is defined
   tags:
-    - mellanox-inst
+    - mellanox-inst-drivers
 
-- name: Inst - Extract OFED
-  unarchive:
-    remote_src: true
-    src: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
-    dest: "/opt/"
-    creates: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}"
-  register: mellanox_firmware_extracted
-  when: mellanox_pcis.stdout_lines | length > 0
+- name: Inst - Driver Mellanox CX-5
+  import_tasks: ofed.yaml
+  when: >
+    mellanox_pcis.stdout_lines | length > 0 and
+    mellanox_cx5_matrix is defined
   tags:
-    - mellanox-inst
-
-- name: Inst - OFED
-  command: "./mlnxofedinstall --with-mft --dpdk --force --upstream-libs"
-  args:
-    chdir: "/opt/MLNX_OFED_LINUX-{{ mellanox_version }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}"
-  when: mellanox_pcis.stdout_lines | length > 0 and mellanox_firmware_extracted
-  tags:
-    - mellanox-inst
-
-- name: Switch Infiniband to Ethernet
-  command: "mlxconfig --yes --dev {{ item }} set LINK_TYPE_P1=2 LINK_TYPE_P2=2"
-  with_items: "{{ mellanox_pcis.stdout_lines }}"
-  tags:
-    - mellanox-conf
-
-- name: FIX qemu-system removal
-  package:
-    name: "qemu-system"
-    state: latest
-  tags:
-    - mellanox-inst
+    - mellanox-inst-drivers
diff --git a/fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml b/fdio.infra.ansible/roles/mellanox/tasks/ofed.yaml
new file mode 100644 (file)
index 0000000..ed7d483
--- /dev/null
@@ -0,0 +1,42 @@
+---
+# file: roles/intel/tasks/i40e.yaml
+
+- name: Inst - Get OFED
+  get_url:
+    url: "{{ mellanox_download_url }}/MLNX_OFED-{{ ofed }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
+    dest: "{{ mellanox_extract_dir }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
+    mode: "0644"
+  when: mellanox_pcis.stdout_lines | length > 0
+  tags:
+    - mellanox-inst-drivers
+
+- name: Inst - Extract OFED
+  unarchive:
+    remote_src: true
+    src: "{{ mellanox_extract_dir }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}.tgz"
+    dest: "{{ mellanox_extract_dir }}/"
+    creates: "{{ mellanox_extract_dir }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}"
+  register: mellanox_firmware_extracted
+  tags:
+    - mellanox-inst-drivers
+
+- name: Inst - OFED
+  command: "./mlnxofedinstall --with-mft --dpdk --force --upstream-libs --without-fw-update"
+  args:
+    chdir: "{{ mellanox_extract_dir }}/MLNX_OFED_LINUX-{{ ofed }}-{{ ansible_distribution|lower }}{{ ansible_distribution_version }}-{{ ansible_machine }}"
+  when: mellanox_firmware_extracted
+  tags:
+    - mellanox-inst-drivers
+
+- name: Inst - Switch Infiniband to Ethernet
+  command: "mlxconfig --yes --dev {{ item }} set LINK_TYPE_P1=2 LINK_TYPE_P2=2"
+  with_items: "{{ mellanox_pcis.stdout_lines }}"
+  tags:
+    - mellanox-inst-drivers
+
+- name: FIX qemu-system removal
+  package:
+    name: "qemu-system"
+    state: latest
+  tags:
+    - mellanox-inst-drivers