diff --git a/src/libs/Cargo.lock b/src/libs/Cargo.lock index 80b8c0e710..e5c342a673 100644 --- a/src/libs/Cargo.lock +++ b/src/libs/Cargo.lock @@ -701,6 +701,7 @@ dependencies = [ "once_cell", "rand", "safe-path", + "serde", "serde_json", "serial_test", "slog", @@ -1384,9 +1385,9 @@ checksum = "1c107b6f4780854c8b126e228ea8869f4d7b71260f962fefb57b996b8959ba6b" [[package]] name = "serde" -version = "1.0.136" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789" +checksum = "d193d69bae983fc11a79df82342761dfbf28a99fc8d203dca4c3c1b590948965" dependencies = [ "serde_derive", ] @@ -1423,9 +1424,9 @@ checksum = "794e44574226fc701e3be5c651feb7939038fc67fb73f6f4dd5c4ba90fd3be70" [[package]] name = "serde_derive" -version = "1.0.136" +version = "1.0.147" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9" +checksum = "4f1d362ca8fc9c3e3a7484440752472d68a6caa98f1ab81d99b5dfe517cec852" dependencies = [ "proc-macro2", "quote", diff --git a/src/libs/kata-sys-util/Cargo.toml b/src/libs/kata-sys-util/Cargo.toml index 0e74c8fdca..62bb5d8007 100644 --- a/src/libs/kata-sys-util/Cargo.toml +++ b/src/libs/kata-sys-util/Cargo.toml @@ -21,6 +21,7 @@ lazy_static = "1.4.0" libc = "0.2.100" nix = "0.24.2" once_cell = "1.9.0" +serde = { version = "1.0.138", features = ["derive"] } serde_json = "1.0.73" slog = "2.5.2" slog-scope = "4.4.0" diff --git a/src/libs/kata-sys-util/src/protection.rs b/src/libs/kata-sys-util/src/protection.rs index 178b0813ee..63f6182806 100644 --- a/src/libs/kata-sys-util/src/protection.rs +++ b/src/libs/kata-sys-util/src/protection.rs @@ -12,6 +12,7 @@ use std::fmt; use std::path::Path; use std::path::PathBuf; use thiserror::Error; +use serde::{Deserialize, Serialize}; #[cfg(any(target_arch = "s390x", target_arch = "powerpc64le"))] use nix::unistd::Uid; @@ -19,14 +20,14 @@ use nix::unistd::Uid; #[cfg(target_arch = "x86_64")] use std::fs; -#[derive(Debug, Clone, PartialEq, Eq, Default)] +#[derive(Debug, Clone, PartialEq, Eq, Default, Serialize, Deserialize)] pub struct TDXDetails { pub major_version: u32, pub minor_version: u32, } #[allow(dead_code)] -#[derive(Debug, Clone, PartialEq, Default)] +#[derive(Debug, Clone, PartialEq, Default, Serialize, Deserialize)] pub enum GuestProtection { #[default] NoProtection, diff --git a/src/runtime-rs/Cargo.lock b/src/runtime-rs/Cargo.lock index 89d850781a..6ae9d503cb 100644 --- a/src/runtime-rs/Cargo.lock +++ b/src/runtime-rs/Cargo.lock @@ -1804,6 +1804,7 @@ dependencies = [ "once_cell", "rand 0.8.5", "safe-path 0.1.0", + "serde", "serde_json", "slog", "slog-scope", diff --git a/src/runtime-rs/crates/hypervisor/src/hypervisor_persist.rs b/src/runtime-rs/crates/hypervisor/src/hypervisor_persist.rs index 1ae231d834..9c617b3473 100644 --- a/src/runtime-rs/crates/hypervisor/src/hypervisor_persist.rs +++ b/src/runtime-rs/crates/hypervisor/src/hypervisor_persist.rs @@ -5,9 +5,9 @@ // use crate::HypervisorConfig; +use kata_sys_util::protection::GuestProtection; use serde::{Deserialize, Serialize}; use std::collections::HashSet; - #[derive(Serialize, Deserialize, Default, Clone, Debug)] pub struct HypervisorState { // Type of hypervisor, E.g. dragonball/qemu/firecracker/acrn. @@ -34,4 +34,6 @@ pub struct HypervisorState { pub cached_block_devices: HashSet, pub virtiofs_daemon_pid: i32, pub passfd_listener_port: Option, + /// guest protection + pub guest_protection_to_use: GuestProtection, }