# Copyright 2020-present Open Networking Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

---
# Fail if VT-d is not enabled
- name: Ensure VT-d is enabled in BIOS
  shell: "set -o pipefail && dmesg | grep DMAR-IR"
  args:
    executable: /bin/bash
  register: check_vt_d
  changed_when: check_vt_d.rc != 0
  failed_when: check_vt_d.rc != 0
  tags: sriov-dpdk

- name: Add kernel boot parameters to the grub for SRIOV
  lineinfile:
    dest: /etc/default/grub
    regexp: '^GRUB_CMDLINE_LINUX="(?!.* {{ item.regex }})(.*)"'
    line: 'GRUB_CMDLINE_LINUX="\1 {{ item.context }}"'
    state: present
    backrefs: yes
  loop:
    - { regex: 'intel_iommu=on', context: 'intel_iommu=on' }
    - { regex: 'hugepagesz=', context: 'hugepagesz=1G default_hugepagesz=1G hugepages=32' }
  register: grub
  notify: update grub
  tags: sriov-dpdk

- name: Load vfio_pci module to the kernel
  modprobe:
    name: vfio_pci
    state: present
  tags: sriov-dpdk

- name: Set the vfio_pci module to load on boot
  lineinfile:
    dest: /etc/modules-load.d/vfio_pci.conf
    create: yes
    regexp: "^vfio_pci"
    line: "vfio_pci"
  tags: sriov-dpdk

- name: Check VFIO bind devices for DPDK
  shell: "set -o pipefail && ls -l /dev/vfio | wc -l"
  args:
    executable: /bin/bash
  register: check_dpdk_bind
  changed_when: False
  tags: sriov-dpdk

- name: Create SRIOV-DPDK service
  template:
    src: "{{ item.src }}"
    dest: "{{ item.dest }}"
    mode: "{{ item.mode }}"
  loop:
    - { src: 'usr/bin/sriov.sh.j2', dest: '/usr/bin/sriov.sh', mode: 'a+x' }
    - { src: 'etc/systemd/system/sriov.service.j2', dest: '/etc/systemd/system/sriov.service', mode: 644 }
  register: bind_dpdk
  notify: enable sriov
  when: check_dpdk_bind.stdout | int < 4
  tags: sriov-dpdk

- meta: flush_handlers
  tags: sriov-dpdk

- name: Reboot machine
  shell: sleep 2 && shutdown -r now "Ansible updates triggered"
  async: 1
  poll: 0
  ignore_errors: true
  when: grub.changed or bind_dpdk.changed # noqa 503
  tags: sriov-dpdk

- name: Wait for server to restart
  wait_for:
    host: "{{ ansible_host }}"
    search_regex: "OpenSSH"
    port: 22
    timeout: 300
    connect_timeout: 50
    delay: 5
  delegate_to: localhost
  become: false
  tags: sriov-dpdk

- name: Ensure enough VFIO bind devices
  shell: "set -o pipefail && ls -l /dev/vfio | wc -l"
  args:
    executable: /bin/bash
  register: confirm_dpdk_bind
  changed_when: confirm_dpdk_bind.stdout | int < 4
  failed_when: confirm_dpdk_bind.stdout | int < 4
  tags: sriov-dpdk
