hs-test: more debug output in http3 test
[vpp.git] / extras / scripts / vfctl
index 21868b0..d3eefa9 100755 (executable)
@@ -4,6 +4,15 @@ function die() {
        echo "ERROR: $*" >&2
        exit 1
 }
+function pci-unbind() {
+       echo $1 | sudo tee /sys/bus/pci/devices/$1/driver/unbind > /dev/null
+}
+function pci-bind() {
+       pci-unbind $1
+       echo $2 | sudo tee /sys/bus/pci/devices/$1/driver_override > /dev/null
+       echo $1 | sudo tee /sys/bus/pci/drivers/$2/bind > /dev/null
+       echo | sudo tee /sys/bus/pci/devices/$1/driver_override > /dev/null
+}
 
 function show_vfs() {
        path=$1
@@ -87,11 +96,16 @@ function create () {
        mac_prefix=$(cat ${netdev_path}/address | cut -d: -f1,3,4,5,6 )
        for vf_path in ${path}/virtfn*; do
                vf=$(basename $(readlink ${vf_path}))
+               iommu_group=$(basename $(readlink ${vf_path}/iommu_group))
                vfid=$(basename ${vf_path//virtfn/})
                mac="${mac_prefix}:$(printf "%02x" ${vfid})"
                sudo ip link set dev ${netdev} vf ${vfid} mac ${mac}
                sudo ip link set dev ${netdev} vf ${vfid} trust on
                sudo ip link set dev ${netdev} vf ${vfid} spoofchk off
+               pci-bind ${vf} vfio-pci
+               sudo chmod g+rw /dev/vfio/${iommu_group}
+               sudo chgrp sudo /dev/vfio/${iommu_group}
+               echo "VFIO group ${iommu_group} group ownership changed to sudo, group permissions changed to rw"
        done
 
        [ $(cat ${path}/sriov_numvfs) -gt 0 ] && show_vfs ${path} ${netdev}