The VIRTIO_F_IN_ORDER feature is implemented by DPDK virtio_net driver but not by the Linux kernel's virtio_net driver.
However, this feature can't be tested using vhost-vdpa even with HW devices that implement it as VIRTIO_F_IN_ORDER isn't defined in kernel's virtio_config.h header file yet and hence is not available in QEMU. Accordingly, as a first step, a patch for defining VIRTIO_F_IN_ORDER in kernel (version 5.17-rc4, file: include/uapi/linux/virtio_config.h) has been published. This patch series first brings in VIRTIO_F_IN_ORDER's definition from Linux kernel using the script update-linux-headers.sh. Next, it adds VIRTIO_F_IN_ORDER to host_features in case the underlying vdpa device exposes this feature bit in device featues there by making it available for negotiation with the virtio_net driver. Gautam Dawar (2): linux headers: update against Linux 5.17-rc4 Allow VIRTIO_F_IN_ORDER to be negotiated for vdpa devices hw/net/virtio-net.c | 10 ++ include/standard-headers/asm-x86/kvm_para.h | 1 + include/standard-headers/drm/drm_fourcc.h | 11 ++ include/standard-headers/linux/ethtool.h | 1 + include/standard-headers/linux/fuse.h | 60 +++++++- include/standard-headers/linux/pci_regs.h | 142 +++++++++--------- .../standard-headers/linux/virtio_config.h | 6 + include/standard-headers/linux/virtio_gpio.h | 72 +++++++++ include/standard-headers/linux/virtio_i2c.h | 47 ++++++ include/standard-headers/linux/virtio_iommu.h | 8 +- .../standard-headers/linux/virtio_pcidev.h | 65 ++++++++ include/standard-headers/linux/virtio_scmi.h | 24 +++ linux-headers/asm-generic/unistd.h | 5 +- linux-headers/asm-mips/unistd_n32.h | 2 + linux-headers/asm-mips/unistd_n64.h | 2 + linux-headers/asm-mips/unistd_o32.h | 2 + linux-headers/asm-powerpc/unistd_32.h | 2 + linux-headers/asm-powerpc/unistd_64.h | 2 + linux-headers/asm-riscv/bitsperlong.h | 14 ++ linux-headers/asm-riscv/mman.h | 1 + linux-headers/asm-riscv/unistd.h | 44 ++++++ linux-headers/asm-s390/unistd_32.h | 2 + linux-headers/asm-s390/unistd_64.h | 2 + linux-headers/asm-x86/kvm.h | 19 ++- linux-headers/asm-x86/unistd_32.h | 1 + linux-headers/asm-x86/unistd_64.h | 1 + linux-headers/asm-x86/unistd_x32.h | 1 + linux-headers/linux/kvm.h | 18 +++ net/vhost-vdpa.c | 1 + 29 files changed, 490 insertions(+), 76 deletions(-) create mode 100644 include/standard-headers/linux/virtio_gpio.h create mode 100644 include/standard-headers/linux/virtio_i2c.h create mode 100644 include/standard-headers/linux/virtio_pcidev.h create mode 100644 include/standard-headers/linux/virtio_scmi.h create mode 100644 linux-headers/asm-riscv/bitsperlong.h create mode 100644 linux-headers/asm-riscv/mman.h create mode 100644 linux-headers/asm-riscv/unistd.h -- 2.30.1