Hi,
I am working to implement a Proxmox host, solely dedicated to a Palo Alto VM series firewall. I am wanting to enable PCIe pass-through on the following NICs/interfaces:
1 x Chelsio T520 -BT (Dual port 10 Gb)
1 x Intel I350 (Quad port 1 Gb)
1 x Intel 82574L (Single port Gb)
All of the respective card's interfaces are recognized by the Palo Alto firewall, except for the second port on the Chelsio T520-BT. I have attempted a multitude of different configurations/suggestions in an attempt to bring up the second interface without success. I believe I now have a lot of extraneous configuration that is not required. From what I've read, there doesn't appear to be a clear solution to getting this working within Proxmox. If anyone has any guidance on how to bring up the additional interface, it would be greatly appreciated. Also, if there are suggestions on config optimization, I am also wanting to remove anything that is unneeded.
System specs:
ThinkCentre M93p:
Haswell i7-4770
Intel Q87 express chipset
#dmesg | grep vfio
[ 17.981032] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981035] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981037] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981041] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981043] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981046] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981048] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981051] vfio_pci: add [0003:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981053] vfio_pci: add [0006:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981056] vfio_pci: add [0006:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981059] vfio_pci: add [0006:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981076] vfio_pci: add [0006:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 781.853524] vfio-pci 0000:03:00.0: enabling device (0000 -> 0003)
[ 782.003747] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.111740] vfio-pci 0000:01:00.1: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.219737] vfio-pci 0000:01:00.2: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.327743] vfio-pci 0000:01:00.3: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.435728] vfio-pci 0000:01:00.4: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.437368] vfio-pci 0000:06:00.0: enabling device (0000 -> 0002)
[ 782.546196] vfio-pci 0000:06:00.1: enabling device (0000 -> 0002)
[ 782.677932] vfio-pci 0000:06:00.2: enabling device (0000 -> 0002)
[ 782.786082] vfio-pci 0000:06:00.3: enabling device (0000 -> 0002)
[ 1779.692394] vfio-pci 0000:03:00.0: enabling device (0000 -> 0003)
[ 1779.858485] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1779.966475] vfio-pci 0000:01:00.1: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.074418] vfio-pci 0000:01:00.2: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.182473] vfio-pci 0000:01:00.3: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.290414] vfio-pci 0000:01:00.4: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.398462] vfio-pci 0000:01:00.5: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.526421] vfio-pci 0000:01:00.6: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2923.665032] vfio-pci 0000:03:00.0: enabling device (0000 -> 0003)
[ 2923.821258] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2923.929248] vfio-pci 0000:01:00.1: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.037245] vfio-pci 0000:01:00.2: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.145243] vfio-pci 0000:01:00.3: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.253241] vfio-pci 0000:01:00.4: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.361260] vfio-pci 0000:01:00.5: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.485238] vfio-pci 0000:01:00.6: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2932.384224] vfio-pci 0000:06:00.1: Invalid PCI ROM header signature: expecting 0xaa55, got 0xaa55
[ 3463.618851] vfio-pci 0000:03:00.0: enabling device (0000 -> 0003)
[ 3463.768974] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3463.876966] vfio-pci 0000:01:00.1: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3463.984924] vfio-pci 0000:01:00.2: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3464.092956] vfio-pci 0000:01:00.3: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3464.200930] vfio-pci 0000:01:00.4: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3464.308955] vfio-pci 0000:01:00.5: vfio_ecap_init: hiding ecap 0x19@0x1a0
#lspci -t
-[0000:00]-+-00.0
+-01.0-[01]--+-00.0
| +-00.1
| +-00.2
| +-00.3
| +-00.4
| +-00.5
| \-00.6
+-02.0
+-03.0
+-14.0
+-16.0
+-19.0
+-1a.0
+-1b.0
+-1c.0-[02]--
+-1c.1-[03]----00.0
+-1c.3-[04-05]----00.0-[05]--
+-1c.4-[06]--+-00.0
| +-00.1
| +-00.2
| \-00.3
+-1d.0
+-1f.0
+-1f.2
\-1f.3
Modules:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
/sbin/vfio-pci.sh:
#!/bin/sh
for device in "$@"; do
if [ -e /sys/bus/pci/devices/$device/driver ]; then
# force an unbind if another driver got to the device first
echo $device > /sys/bus/pci/devices/$device/driver/unbind
fi
echo vfio-pci > /sys/bus/pci/devices/$device/driver_override
done
# install the vfio-pci module as usual
modprobe -i vfio-pci
igb.conf:
options igb max_vfs=4
iommu_unsafe_interrupts.conf:
options vfio_iommu_type1 allow_unsafe_interrupts=1
kvm.conf:
options kvm ignore_msrs=1
vfio.conf:
options vfio-pci ids=01:00.0,01:00.1,01:00.2,01:00.3,01:00.4,01:00.5,01:00.6,03:00.0,06:00.0,06:00.1,06:00.2,06:00.3
vfio-pci.conf:
install vfio-pci /sbin/vfio-pci.sh 0000:01:00.0 0000:01:00.1 0000:01:00.2 0000:01:00.3 0000:01:00.4 0000:01:00.5 0000:01:00.6 0000:06:00.0 0000:06:00.1 0000:06:00.2 0000:06:00.3
/etc/pve/qemu-server/100.conf:
agent: 1
balloon: 0
bootdisk: scsi0
cores: 4
hostpci1: 03:00.0,pcie=1
hostpci2: 01:00.0;01:00.1;01:00.2;01:00.3;01:00.4;01:00.5;01:00.6,pcie=1
hostpci3: 06:00.0;06:00.1;06:00.2;06:00.3,pcie=1
ide2: none,media=cdrom
machine: q35
memory: 12288
name: tu-vfw-fw-01
net0: virtio=D6:52:66:37
1:E3,bridge=vmbr0
numa: 0
ostype: l26
scsi0: images:100/vm-100-disk-0.qcow2,cache=writethrough,size=80G
scsihw: virtio-scsi-pci
serial1: socket
smbios1: uuid=7d6e6226-2f01-42e8-aa22-1b04856d52ba
sockets: 1
vmgenid: 0f832cde-5d74-4d8d-afed-dd51669aa56a
/etc/default/grub:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=10 quiet intel_iommu=on iommu=pt"
GRUB_CMDLINE_LINUX="root=ZFS=rpool/ROOT/pve-1 boot=zfs"
# Disable os-prober, it might add menu entries for each guest
GRUB_DISABLE_OS_PROBER=true
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
GRUB_INIT_TUNE="480 440 1"
I am working to implement a Proxmox host, solely dedicated to a Palo Alto VM series firewall. I am wanting to enable PCIe pass-through on the following NICs/interfaces:
1 x Chelsio T520 -BT (Dual port 10 Gb)
1 x Intel I350 (Quad port 1 Gb)
1 x Intel 82574L (Single port Gb)
All of the respective card's interfaces are recognized by the Palo Alto firewall, except for the second port on the Chelsio T520-BT. I have attempted a multitude of different configurations/suggestions in an attempt to bring up the second interface without success. I believe I now have a lot of extraneous configuration that is not required. From what I've read, there doesn't appear to be a clear solution to getting this working within Proxmox. If anyone has any guidance on how to bring up the additional interface, it would be greatly appreciated. Also, if there are suggestions on config optimization, I am also wanting to remove anything that is unneeded.
System specs:
ThinkCentre M93p:
Haswell i7-4770
Intel Q87 express chipset
#dmesg | grep vfio
[ 17.981032] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981035] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981037] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981041] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981043] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981046] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981048] vfio_pci: add [0001:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981051] vfio_pci: add [0003:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981053] vfio_pci: add [0006:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981056] vfio_pci: add [0006:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981059] vfio_pci: add [0006:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 17.981076] vfio_pci: add [0006:0000[ffffffff:ffffffff]] class 0x000000/00000000
[ 781.853524] vfio-pci 0000:03:00.0: enabling device (0000 -> 0003)
[ 782.003747] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.111740] vfio-pci 0000:01:00.1: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.219737] vfio-pci 0000:01:00.2: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.327743] vfio-pci 0000:01:00.3: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.435728] vfio-pci 0000:01:00.4: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 782.437368] vfio-pci 0000:06:00.0: enabling device (0000 -> 0002)
[ 782.546196] vfio-pci 0000:06:00.1: enabling device (0000 -> 0002)
[ 782.677932] vfio-pci 0000:06:00.2: enabling device (0000 -> 0002)
[ 782.786082] vfio-pci 0000:06:00.3: enabling device (0000 -> 0002)
[ 1779.692394] vfio-pci 0000:03:00.0: enabling device (0000 -> 0003)
[ 1779.858485] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1779.966475] vfio-pci 0000:01:00.1: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.074418] vfio-pci 0000:01:00.2: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.182473] vfio-pci 0000:01:00.3: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.290414] vfio-pci 0000:01:00.4: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.398462] vfio-pci 0000:01:00.5: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 1780.526421] vfio-pci 0000:01:00.6: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2923.665032] vfio-pci 0000:03:00.0: enabling device (0000 -> 0003)
[ 2923.821258] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2923.929248] vfio-pci 0000:01:00.1: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.037245] vfio-pci 0000:01:00.2: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.145243] vfio-pci 0000:01:00.3: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.253241] vfio-pci 0000:01:00.4: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.361260] vfio-pci 0000:01:00.5: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2924.485238] vfio-pci 0000:01:00.6: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 2932.384224] vfio-pci 0000:06:00.1: Invalid PCI ROM header signature: expecting 0xaa55, got 0xaa55
[ 3463.618851] vfio-pci 0000:03:00.0: enabling device (0000 -> 0003)
[ 3463.768974] vfio-pci 0000:01:00.0: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3463.876966] vfio-pci 0000:01:00.1: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3463.984924] vfio-pci 0000:01:00.2: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3464.092956] vfio-pci 0000:01:00.3: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3464.200930] vfio-pci 0000:01:00.4: vfio_ecap_init: hiding ecap 0x19@0x1a0
[ 3464.308955] vfio-pci 0000:01:00.5: vfio_ecap_init: hiding ecap 0x19@0x1a0
#lspci -t
-[0000:00]-+-00.0
+-01.0-[01]--+-00.0
| +-00.1
| +-00.2
| +-00.3
| +-00.4
| +-00.5
| \-00.6
+-02.0
+-03.0
+-14.0
+-16.0
+-19.0
+-1a.0
+-1b.0
+-1c.0-[02]--
+-1c.1-[03]----00.0
+-1c.3-[04-05]----00.0-[05]--
+-1c.4-[06]--+-00.0
| +-00.1
| +-00.2
| \-00.3
+-1d.0
+-1f.0
+-1f.2
\-1f.3
Modules:
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
/sbin/vfio-pci.sh:
#!/bin/sh
for device in "$@"; do
if [ -e /sys/bus/pci/devices/$device/driver ]; then
# force an unbind if another driver got to the device first
echo $device > /sys/bus/pci/devices/$device/driver/unbind
fi
echo vfio-pci > /sys/bus/pci/devices/$device/driver_override
done
# install the vfio-pci module as usual
modprobe -i vfio-pci
igb.conf:
options igb max_vfs=4
iommu_unsafe_interrupts.conf:
options vfio_iommu_type1 allow_unsafe_interrupts=1
kvm.conf:
options kvm ignore_msrs=1
vfio.conf:
options vfio-pci ids=01:00.0,01:00.1,01:00.2,01:00.3,01:00.4,01:00.5,01:00.6,03:00.0,06:00.0,06:00.1,06:00.2,06:00.3
vfio-pci.conf:
install vfio-pci /sbin/vfio-pci.sh 0000:01:00.0 0000:01:00.1 0000:01:00.2 0000:01:00.3 0000:01:00.4 0000:01:00.5 0000:01:00.6 0000:06:00.0 0000:06:00.1 0000:06:00.2 0000:06:00.3
/etc/pve/qemu-server/100.conf:
agent: 1
balloon: 0
bootdisk: scsi0
cores: 4
hostpci1: 03:00.0,pcie=1
hostpci2: 01:00.0;01:00.1;01:00.2;01:00.3;01:00.4;01:00.5;01:00.6,pcie=1
hostpci3: 06:00.0;06:00.1;06:00.2;06:00.3,pcie=1
ide2: none,media=cdrom
machine: q35
memory: 12288
name: tu-vfw-fw-01
net0: virtio=D6:52:66:37

numa: 0
ostype: l26
scsi0: images:100/vm-100-disk-0.qcow2,cache=writethrough,size=80G
scsihw: virtio-scsi-pci
serial1: socket
smbios1: uuid=7d6e6226-2f01-42e8-aa22-1b04856d52ba
sockets: 1
vmgenid: 0f832cde-5d74-4d8d-afed-dd51669aa56a
/etc/default/grub:
# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="Proxmox Virtual Environment"
GRUB_CMDLINE_LINUX_DEFAULT="rootdelay=10 quiet intel_iommu=on iommu=pt"
GRUB_CMDLINE_LINUX="root=ZFS=rpool/ROOT/pve-1 boot=zfs"
# Disable os-prober, it might add menu entries for each guest
GRUB_DISABLE_OS_PROBER=true
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Disable generation of recovery mode menu entries
GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
GRUB_INIT_TUNE="480 440 1"
Last edited: