diff options
Diffstat (limited to 'ansible/roles/install_dpdk')
-rwxr-xr-x | ansible/roles/install_dpdk/tasks/Debian.yml | 19 | ||||
-rw-r--r-- | ansible/roles/install_dpdk/tasks/RedHat.yml | 19 | ||||
-rw-r--r-- | ansible/roles/install_dpdk/tasks/main.yml | 90 | ||||
-rw-r--r-- | ansible/roles/install_dpdk/vars/main.yml | 8 |
4 files changed, 136 insertions, 0 deletions
diff --git a/ansible/roles/install_dpdk/tasks/Debian.yml b/ansible/roles/install_dpdk/tasks/Debian.yml new file mode 100755 index 000000000..486d40e11 --- /dev/null +++ b/ansible/roles/install_dpdk/tasks/Debian.yml @@ -0,0 +1,19 @@ +# Copyright (c) 2017 Intel Corporation. +# +# 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. +--- +- name: Install DPDK build dependencies + action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" + with_items: + - libpcap-dev + diff --git a/ansible/roles/install_dpdk/tasks/RedHat.yml b/ansible/roles/install_dpdk/tasks/RedHat.yml new file mode 100644 index 000000000..af35c9b3e --- /dev/null +++ b/ansible/roles/install_dpdk/tasks/RedHat.yml @@ -0,0 +1,19 @@ +# Copyright (c) 2017 Intel Corporation. +# +# 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. +--- +- name: Install DPDK build dependencies + action: "{{ ansible_pkg_mgr }} name={{ item }} state=present" + with_items: + - libpcap-devel + diff --git a/ansible/roles/install_dpdk/tasks/main.yml b/ansible/roles/install_dpdk/tasks/main.yml new file mode 100644 index 000000000..fca0e33af --- /dev/null +++ b/ansible/roles/install_dpdk/tasks/main.yml @@ -0,0 +1,90 @@ +# Copyright (c) 2017 Intel Corporation. +# +# 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. +--- +#- patch: src="{{ item }}" basedir="{{ dpdk_path }}" strip=0 +# with_fileglob: +# - "{{ local_nsb_path }}/patches/dpdk_custom_patch/rte_pipeline.patch" +# +#- patch: src="{{ item }}" basedir="{{ dpdk_path }}" strip=1 +# with_fileglob: +# - "{{ local_nsb_path }}/patches/dpdk_custom_patch/0*.patch" + +- include: "{{ ansible_os_family }}.yml" + +- my_make: + chdir: "{{ dpdk_path }}" + target: config + params: + T: "{{ dpdk_make_arch }}" + O: "{{ dpdk_make_arch }}" + extra_args: "-j {{ ansible_processor_vcpus }}" + +- name: enable RTE_PORT_STATS_COLLECT + lineinfile: + dest: "{{ dpdk_path }}/{{ dpdk_make_arch }}/.config" + regexp: '^CONFIG_RTE_PORT_STATS_COLLECT=n' + line: 'CONFIG_RTE_PORT_STATS_COLLECT=y' + +- name: enable DPDK RTE_PORT_PCAP + lineinfile: + dest: "{{ dpdk_path }}/{{ dpdk_make_arch }}/.config" + regexp: '^CONFIG_RTE_PORT_PCAP=n' + line: 'CONFIG_RTE_PORT_PCAP=y' + +- name: enable DPDK RTE_TABLE_STATS_COLLECT + lineinfile: + dest: "{{ dpdk_path }}/{{ dpdk_make_arch }}/.config" + regexp: '^CONFIG_RTE_TABLE_STATS_COLLECT=n' + line: 'CONFIG_RTE_TABLE_STATS_COLLECT=y' + +- name: enable DPDK RTE_PIPELINE_STATS_COLLECT + lineinfile: + dest: "{{ dpdk_path }}/{{ dpdk_make_arch }}/.config" + regexp: '^CONFIG_RTE_PIPELINE_STATS_COLLECT=n' + line: 'CONFIG_RTE_PIPELINE_STATS_COLLECT=y' + +- my_make: + chdir: "{{ dpdk_path }}/{{ dpdk_make_arch}}" + extra_args: "-j {{ ansible_processor_vcpus }}" + +- file: + path: "{{ dpdk_module_dir}}" + state: directory + +- copy: + src: "{{ dpdk_path }}/{{ dpdk_make_arch }}/kmod/igb_uio.ko" + dest: "{{ dpdk_module_dir }}/igb_uio.ko" + remote_src: yes + +- command: depmod -a + +- file: + path: "{{ INSTALL_BIN_PATH }}" + state: directory + +- name: copy dpdk-devbind.py to correct location + copy: + src: "{{ dpdk_devbind[dpdk_version] }}" + dest: "{{ INSTALL_BIN_PATH }}/dpdk-devbind.py" + remote_src: yes + force: yes + mode: 0755 + +- name: make dpdk_nic_bind.py for backwards compatibility + copy: + src: "{{ dpdk_devbind[dpdk_version] }}" + dest: "{{ INSTALL_BIN_PATH }}/dpdk_nic_bind.py" + remote_src: yes + force: yes + mode: 0755 diff --git a/ansible/roles/install_dpdk/vars/main.yml b/ansible/roles/install_dpdk/vars/main.yml new file mode 100644 index 000000000..730215c90 --- /dev/null +++ b/ansible/roles/install_dpdk/vars/main.yml @@ -0,0 +1,8 @@ +--- +dpdk_make_arch: x86_64-native-linuxapp-gcc +dpdk_module_dir: "/lib/modules/{{ ansible_kernel }}/extra" +hugetable_mount: /mnt/huge +dpdk_devbind: + "16.07": "{{ dpdk_path }}/tools/dpdk-devbind.py" + "17.02": "{{ dpdk_path }}/usertools/dpdk-devbind.py" + "17.04": "{{ dpdk_path }}/usertools/dpdk-devbind.py" |