From: pmikus Date: Thu, 15 Apr 2021 10:12:10 +0000 (+0000) Subject: DPDK bump X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=commitdiff_plain;h=9f79a042fa34432bad2c6e8b399df9eb253d8c3a DPDK bump Signed-off-by: pmikus Change-Id: I6edd980cb72111a008ae7fa19e1a4df279febdb2 --- diff --git a/DPDK_VPP_VER b/DPDK_VPP_VER index 2315586c7e..774381f470 100644 --- a/DPDK_VPP_VER +++ b/DPDK_VPP_VER @@ -1 +1 @@ -dpdk-20.11 +dpdk-21.02 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 diff --git a/resources/libraries/python/Constants.py b/resources/libraries/python/Constants.py index 14fb7958b8..79b94be7ff 100644 --- a/resources/libraries/python/Constants.py +++ b/resources/libraries/python/Constants.py @@ -176,7 +176,7 @@ class Constants: QEMU_VM_IMAGE = u"/var/lib/vm/image.iso" # QEMU VM DPDK path - QEMU_VM_DPDK = u"/opt/dpdk-20.02" + QEMU_VM_DPDK = u"/opt/dpdk-21.02" # Docker container SUT image DOCKER_SUT_IMAGE_UBUNTU = u"csit_sut-ubuntu2004:local" diff --git a/resources/libraries/python/DpdkUtil.py b/resources/libraries/python/DpdkUtil.py index dcca73db1d..fd31f1ddb2 100644 --- a/resources/libraries/python/DpdkUtil.py +++ b/resources/libraries/python/DpdkUtil.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Cisco and/or its affiliates. +# Copyright (c) 2021 Cisco and/or its affiliates. # 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: @@ -161,7 +161,7 @@ class DpdkUtil: :rtype: OptionString """ options = OptionString() - options.add(u"testpmd") + options.add(u"dpdk-testpmd") options.extend(DpdkUtil.get_eal_options(**kwargs)) options.add(u"--") options.extend(DpdkUtil.get_testpmd_pmd_options(**kwargs)) diff --git a/resources/libraries/python/QemuUtils.py b/resources/libraries/python/QemuUtils.py index 21de620448..a765e11e27 100644 --- a/resources/libraries/python/QemuUtils.py +++ b/resources/libraries/python/QemuUtils.py @@ -65,16 +65,13 @@ class QemuUtils: # Architecture specific options if self._arch == u"aarch64": - dpdk_target = u"arm64-armv8a" self._opt[u"machine_args"] = \ u"virt,accel=kvm,usb=off,mem-merge=off,gic-version=3" self._opt[u"console"] = u"ttyAMA0" else: - dpdk_target = u"x86_64-native" self._opt[u"machine_args"] = u"pc,accel=kvm,usb=off,mem-merge=off" self._opt[u"console"] = u"ttyS0" - self._testpmd_path = f"{Constants.QEMU_VM_DPDK}/" \ - f"{dpdk_target}-linux-gcc/app" + self._testpmd_path = f"{Constants.QEMU_VM_DPDK}/build/app" self._vm_info = { u"host": node[u"host"], u"type": NodeType.VM, diff --git a/resources/tools/presentation/conf.py b/resources/tools/presentation/conf.py index ac29fe43a8..b15af82188 100644 --- a/resources/tools/presentation/conf.py +++ b/resources/tools/presentation/conf.py @@ -113,8 +113,8 @@ rst_epilog = u""" csit_prev_release=u'2009', vpprelease=u'21.01', vpp_prev_release=u'20.09', - dpdkrelease=u'20.11', - dpdk_prev_release=u'20.08', + dpdkrelease=u'21.02', + dpdk_prev_release=u'20.11', sdpdkrelease=u'2011', trex_version=u'v2.88', vpp_release_commit_id=u'3d2d96e5547484290c9368bac0a420afa8c4c068')