X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=extras%2Fscripts%2Fvfctl;h=9fe6c8b02e76c76daaea38ef39d5f4fd4ffa2a60;hb=104112f2d412a4576b5e0d3bbb20665d2b5bd615;hp=8942a9cfe60d74bb53b59a310670cfc01feba341;hpb=98a5d810f84273fee669e457a105e7d43cc82bd8;p=vpp.git diff --git a/extras/scripts/vfctl b/extras/scripts/vfctl index 8942a9cfe60..9fe6c8b02e7 100755 --- a/extras/scripts/vfctl +++ b/extras/scripts/vfctl @@ -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 @@ -90,6 +99,9 @@ function create () { 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 done [ $(cat ${path}/sriov_numvfs) -gt 0 ] && show_vfs ${path} ${netdev} @@ -106,7 +118,7 @@ $0 show $0 remove-all Remove all virtual functions from device . -$0 remove-all +$0 create Create virtual functions on device. __EOF__ }