Adds QAT drivers installation and service configuration for QAT VFs

Fix lint, formatting, add galaxy metadata

Change-Id: I3173cefb356a07f9bead9e9ca01b38b16525e26f
diff --git a/tasks/main.yml b/tasks/main.yml
index f7c365e..6e241b2 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -33,9 +33,13 @@
     owner: root
     group: root
   loop:
-    - {src: 'sriov', dest: '/etc/default/sriov', mode: 644}
-    - {src: 'sriov.sh.j2', dest: '/usr/local/bin/sriov.sh', mode: 'a+x'}
-    - {src: 'sriov.service.j2', dest: '/etc/systemd/system/sriov.service', mode: 644}
+    - {src: "sriov", dest: "/etc/default/sriov", mode: 644}
+    - {src: "sriov.sh.j2", dest: "/usr/local/bin/sriov.sh", mode: "a+x"}
+    - {
+      src: "sriov.service.j2",
+      dest: "/etc/systemd/system/sriov.service",
+      mode: 644,
+    }
   notify: enable sriov.service
 
 - name: Flush handlers
@@ -49,8 +53,15 @@
     state: present
     backrefs: true
   loop:
-    - {regex: 'intel_iommu=', context: 'intel_iommu=on'}
-    - {regex: 'transparent_hugepage=', context: 'transparent_hugepage=never'}
-    - {regex: 'default_hugepagesz=', context: 'default_hugepagesz=1G'}
-    - {regex: 'hugepagesz=1G', context: 'hugepagesz=1G hugepages={{ sriov_1g_hugepages }}'}
+    - {regex: "intel_iommu=", context: "intel_iommu=on"}
+    - {regex: "transparent_hugepage=", context: "transparent_hugepage=never"}
+    - {regex: "default_hugepagesz=", context: "default_hugepagesz=1G"}
+    - {
+      regex: "hugepagesz=1G",
+      context: "hugepagesz=1G hugepages={{ sriov_1g_hugepages }}",
+    }
   notify: update grub
+
+- name: Install qat driver and configure sriov vfs
+  when: sriov_qat_enabled
+  include_tasks: qat.yml
diff --git a/tasks/qat.yml b/tasks/qat.yml
new file mode 100644
index 0000000..1c113db
--- /dev/null
+++ b/tasks/qat.yml
@@ -0,0 +1,117 @@
+---
+# qat tasks/qat.yml
+#
+# SPDX-FileCopyrightText: © 2021 Open Networking Foundation <support@opennetworking.org>
+# SPDX-License-Identifier: Apache-2.0
+
+- name: Blacklist kernel QAT drivers
+  blockinfile:
+    create: true
+    dest: /etc/modprobe.d/blacklist-intel_qat.conf
+    mode: 0644
+    block: |
+      # Blacklist kernel QAT drivers
+      blacklist qat_c62x
+      blacklist qat_c62xvf
+      blacklist qat_c6xx
+      blacklist qat_c6xxvf
+      blacklist qat_c3xxx
+      blacklist qat_c3xxxvf
+      blacklist qat_d15xx
+      blacklist qat_d15xxvf
+      blacklist qat_c4xxx
+      blacklist qat_c4xxxvf
+      blacklist intel_qat
+    backup: true
+  notify: reboot qat
+
+- name: Flush handlers
+  meta: flush_handlers
+
+- name: Install QAT driver compile requirements
+  apt:
+    name:
+      - "libboost-all-dev"
+      - "pciutils-dev"
+      - "libssl-dev"
+      - "build-essential"
+      - "pkg-config"
+      - "yasm"
+    state: "present"
+    update_cache: true
+
+- name: Create root folder for QAT driver
+  file:
+    path: "{{ sriov_qat_driver_dir }}"
+    state: directory
+    owner: root
+    group: root
+    mode: "0644"
+
+- name: Download QAT driver .tgz file
+  get_url:
+    url: "{{ sriov_qat_latest_url }}"
+    dest: "{{ sriov_qat_driver_dir }}/{{ sriov_qat_latest_name }}"
+    owner: "root"
+    group: "root"
+    mode: "0644"
+    checksum: "{{ sriov_qat_checksum }}"
+
+- name: Unarchive QAT driver .tgz file
+  when: not sriov_qat_dkms_enabled
+  unarchive:
+    remote_src: true
+    list_files: true
+    src: "{{ sriov_qat_driver_dir }}/{{ sriov_qat_latest_name }}"
+    dest: "{{ sriov_qat_driver_dir }}"
+    owner: "root"
+    group: "root"
+    creates: "{{ sriov_qat_driver_dir }}/configure"
+
+- name: Configure QAT driver with SR-IOV host
+  when: not sriov_qat_dkms_enabled
+  command:
+    cmd: "./configure --enable-icp-sriov=host"
+    chdir: "{{ sriov_qat_driver_dir }}"
+    creates: "{{ sriov_qat_driver_dir }}/config.status"
+
+- name: Run the default target as root
+  when: not sriov_qat_dkms_enabled
+  command:
+    cmd: make
+    chdir: "{{ sriov_qat_driver_dir }}"
+    creates: "{{ sriov_qat_driver_dir }}/build/intel_qat.ko"
+
+- name: Run 'install' target as root
+  when: not sriov_qat_dkms_enabled
+  command:
+    chdir: "{{ sriov_qat_driver_dir }}"
+    cmd: "make install"
+    creates: "/usr/local/bin/adf_ctl"
+
+# - name: Run 'install-samples' target as root
+# #   command:
+#     chdir: "{{ sriov_qat_driver_dir }}"
+#     cmd: "make install-samples"
+#     creates: "{{ sriov_qat_driver_dir }}/build/cpa_sample_code"
+#   become: yes
+
+- name: Create sriov_qat system servqat
+  template:
+    src: "{{ item.src }}"
+    dest: "{{ item.dest }}"
+    mode: "{{ item.mode }}"
+    owner: root
+    group: root
+  loop:
+    - {
+      src: "sriov_qat.sh.j2",
+      dest: "/usr/local/bin/sriov_qat.sh",
+      mode: "a+x",
+    }
+    - {
+      src: "sriov_qat.service.j2",
+      dest: "/etc/systemd/system/sriov_qat.service",
+      mode: 644,
+    }
+  notify: enable sriov_qat.service