X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Ftestbed-setup%2Fansible%2Froles%2Fvpp_device%2Ffiles%2Fcsit-initialize-vfs.sh;fp=resources%2Ftools%2Ftestbed-setup%2Fansible%2Froles%2Fvpp_device%2Ffiles%2Fcsit-initialize-vfs.sh;h=0000000000000000000000000000000000000000;hp=365497865ec9f261efc1546b2ece8ba4bedfc211;hb=df5672b3d9c29b51397f4770eb992c9f3f3955ce;hpb=8018da98e0f362bc69fc9600fac222a86fd46b5e diff --git a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs.sh b/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs.sh deleted file mode 100644 index 365497865e..0000000000 --- a/resources/tools/testbed-setup/ansible/roles/vpp_device/files/csit-initialize-vfs.sh +++ /dev/null @@ -1,73 +0,0 @@ -#!/usr/bin/env bash - -# Copyright (c) 2019 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: -# -# 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. - -# CSIT SRIOV VF initialization and isolation. - -set -euo pipefail - -SCRIPT_DIR="$(dirname $(readlink -e "${BASH_SOURCE[0]}"))" -source "${SCRIPT_DIR}/csit-initialize-vfs-data.sh" - -# Initilize whitelisted NICs with maximum number of VFs. -pci_idx=0 -for pci_addr in ${PCI_WHITELIST[@]}; do - if ! [[ ${PCI_BLACKLIST[*]} =~ "${pci_addr}" ]]; then - pci_path="/sys/bus/pci/devices/${pci_addr}" - # SR-IOV initialization - case "${1:-start}" in - "start" ) - sriov_totalvfs=$(< "${pci_path}"/sriov_totalvfs) - ;; - "stop" ) - sriov_totalvfs=0 - ;; - esac - echo ${sriov_totalvfs} > "${pci_path}"/sriov_numvfs - # SR-IOV 802.1Q isolation - case "${1:-start}" in - "start" ) - pf=$(basename "${pci_path}"/net/*) - for vf in $(seq "${sriov_totalvfs}"); do - # PCI address index in array (pairing siblings). - if [[ -n ${PF_INDICES[@]} ]] - then - vlan_pf_idx=${PF_INDICES[$pci_addr]} - else - vlan_pf_idx=$(( pci_idx % (${#PCI_WHITELIST[@]} / 2) )) - fi - # 802.1Q base offset. - vlan_bs_off=1100 - # 802.1Q PF PCI address offset. - vlan_pf_off=$(( vlan_pf_idx * 100 + vlan_bs_off )) - # 802.1Q VF PCI address offset. - vlan_vf_off=$(( vlan_pf_off + vf - 1 )) - # VLAN string. - vlan_str="vlan ${vlan_vf_off}" - # MAC string. - mac5="$(printf '%x' ${pci_idx})" - mac6="$(printf '%x' $(( vf - 1 )))" - mac_str="mac ba:dc:0f:fe:${mac5}:${mac6}" - # Set 802.1Q VLAN id and MAC address - ip link set ${pf} vf $(( vf - 1 )) ${mac_str} ${vlan_str} - ip link set ${pf} vf $(( vf - 1 )) trust on - ip link set ${pf} vf $(( vf - 1 )) spoof off - done - pci_idx=$(( pci_idx + 1 )) - ;; - esac - rmmod i40evf - modprobe i40evf - fi -done