diff --git a/bin/propolis-server/src/lib/initializer.rs b/bin/propolis-server/src/lib/initializer.rs index 8e5d4961b..2da276829 100644 --- a/bin/propolis-server/src/lib/initializer.rs +++ b/bin/propolis-server/src/lib/initializer.rs @@ -771,6 +771,12 @@ impl MachineInitializer<'_> { info!(self.log, "Creating vNIC {}", device_name); let bdf: pci::Bdf = nic.device_spec.pci_path.into(); + if virtio::viona::api_version().expect("can query viona version") + < virtio::viona::ApiVersion::V6 + { + panic!("Kernel viona API is too old; need >= V6"); + } + // Set viona device parameters if possible. // // The values chosen here are tuned to maximize performance when diff --git a/bin/propolis-standalone/src/main.rs b/bin/propolis-standalone/src/main.rs index cc5a1d31c..c309697b5 100644 --- a/bin/propolis-standalone/src/main.rs +++ b/bin/propolis-standalone/src/main.rs @@ -1247,6 +1247,13 @@ fn setup_instance( dev.options.get("vnic").unwrap().as_str().unwrap(); let bdf = bdf.unwrap(); + if hw::virtio::viona::api_version() + .expect("can query viona version") + < hw::virtio::viona::ApiVersion::V6 + { + panic!("Kernel viona API is too old; need >= V6"); + } + let viona_params = config::VionaDeviceParams::from_opts(&dev.options) .expect("viona params are valid");