aboutsummaryrefslogtreecommitdiffstats
path: root/fdio.infra.ansible/roles
diff options
context:
space:
mode:
Diffstat (limited to 'fdio.infra.ansible/roles')
-rw-r--r--fdio.infra.ansible/roles/dpdk/defaults/main.yaml6
-rw-r--r--fdio.infra.ansible/roles/dpdk/meta/main.yaml24
-rw-r--r--fdio.infra.ansible/roles/dpdk/molecule/default/converge.yml9
-rw-r--r--fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml21
-rw-r--r--fdio.infra.ansible/roles/dpdk/tasks/main.yaml42
5 files changed, 73 insertions, 29 deletions
diff --git a/fdio.infra.ansible/roles/dpdk/defaults/main.yaml b/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
index 2a8c691728..11affc4a26 100644
--- a/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
+++ b/fdio.infra.ansible/roles/dpdk/defaults/main.yaml
@@ -23,9 +23,5 @@ packages_by_arch:
dpdk_target_dir: "/opt"
dpdk_version:
- - "20.02"
+ - "21.02"
dpdk_url: "https://fast.dpdk.org/rel"
-dpdk_build_targets:
- "20.02":
- aarch64: "arm64-armv8a-linux-gcc"
- x86_64: "x86_64-native-linux-gcc"
diff --git a/fdio.infra.ansible/roles/dpdk/meta/main.yaml b/fdio.infra.ansible/roles/dpdk/meta/main.yaml
new file mode 100644
index 0000000000..8acf6ef9b5
--- /dev/null
+++ b/fdio.infra.ansible/roles/dpdk/meta/main.yaml
@@ -0,0 +1,24 @@
+---
+# file: roles/dpdk/meta/main.yaml
+
+# desc: Install DPDK from stable branch and configure service.
+# inst: DPDK
+# conf: ?
+# info: 1.0 - added role
+
+dependencies: [ ]
+
+galaxy_info:
+ role_name: dpdk
+ author: fd.io
+ description: DPDK for Linux.
+ company: none
+ license: "license (Apache)"
+ min_ansible_version: 2.9
+ platforms:
+ - name: Ubuntu
+ versions:
+ - bionic
+ - focal
+ galaxy_tags:
+ - dpdk
diff --git a/fdio.infra.ansible/roles/dpdk/molecule/default/converge.yml b/fdio.infra.ansible/roles/dpdk/molecule/default/converge.yml
new file mode 100644
index 0000000000..ab8392c3dc
--- /dev/null
+++ b/fdio.infra.ansible/roles/dpdk/molecule/default/converge.yml
@@ -0,0 +1,9 @@
+---
+# file: molecule/default/converge.yaml
+
+- name: Converge
+ hosts: all
+ become: true
+
+ roles:
+ - role: csit.dpdk
diff --git a/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml b/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml
new file mode 100644
index 0000000000..1910c4780c
--- /dev/null
+++ b/fdio.infra.ansible/roles/dpdk/molecule/default/molecule.yml
@@ -0,0 +1,21 @@
+---
+# file: molecule/default/molecule.yaml
+
+dependency:
+ name: galaxy
+driver:
+ name: docker
+lint: |
+ yamllint .
+ ansible-lint
+platforms:
+ - name: ${DISTRO:-ubuntu-20.04}
+ image: "pmikus/docker-${MOLECULE_DISTRO:-ubuntu-20.04}-ansible:latest"
+ volumes:
+ - /sys/fs/cgroup:/sys/fs/cgroup:ro
+ privileged: true
+ pre_build_image: true
+provisioner:
+ name: ansible
+ playbooks:
+ converge: ${MOLECULE_PLAYBOOK:-converge.yml}
diff --git a/fdio.infra.ansible/roles/dpdk/tasks/main.yaml b/fdio.infra.ansible/roles/dpdk/tasks/main.yaml
index 46f942be93..9052baff74 100644
--- a/fdio.infra.ansible/roles/dpdk/tasks/main.yaml
+++ b/fdio.infra.ansible/roles/dpdk/tasks/main.yaml
@@ -3,21 +3,21 @@
- name: Inst - Update Package Cache (APT)
apt:
- update_cache: yes
+ update_cache: true
cache_valid_time: 3600
when:
- - ansible_distribution|lower == 'ubuntu'
+ - ansible_distribution == 'Ubuntu'
tags:
- dpdk-inst-prerequisites
- name: Inst - Prerequisites
package:
name: "{{ packages | flatten(levels=1) }}"
- state: latest
+ state: "latest"
tags:
- dpdk-inst-prerequisites
-- name: Download Release Archive
+- name: Inst - Download Release Archive
get_url:
url: "{{ dpdk_url }}/dpdk-{{ item }}.tar.xz"
dest: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
@@ -27,7 +27,7 @@
tags:
- dpdk-inst
-- name: Extract Release Archive
+- name: Inst - Extract Release Archive
unarchive:
remote_src: true
src: "{{ dpdk_target_dir }}/dpdk-{{ item }}.tar.xz"
@@ -39,30 +39,24 @@
tags:
- dpdk-inst
-- name: 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"
+- name: Inst - Compile Release I
+ command: "meson -Dexamples=l3fwd build"
+ args:
+ chdir: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
+ environment:
+ CFLAGS: "-DRTE_LIBRTE_I40E_16BYTE_RX_DESC=y"
loop: "{{ dpdk_version }}"
- when: "dpdk_extracted"
- register: "dpdk_configured"
+ register: "dpdk_compiled"
tags:
- dpdk-inst
-- name: Compile Release I
- become: yes
- command: "make install T={{ dpdk_build_targets[item][ansible_machine] }} DESTDIR={{ dpdk_target_dir }}/dpdk-{{ item }} chdir={{ dpdk_target_dir }}/dpdk-{{ item }}"
+- name: Inst - Compile Release II
+ command: "ninja -C build"
+ args:
+ chdir: "{{ dpdk_target_dir }}/dpdk-{{ item }}"
+ environment:
+ CFLAGS: "-DRTE_LIBRTE_I40E_16BYTE_RX_DESC=y"
loop: "{{ dpdk_version }}"
- when: "dpdk_configured"
register: "dpdk_compiled"
tags:
- dpdk-inst
-
-- name: 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"
- loop: "{{ dpdk_version }}"
- when: "dpdk_compiled"
- tags:
- - dpdk-inst \ No newline at end of file