From 3a666eb68aa16252ade6867f0f6ea5f485f7e1dd Mon Sep 17 00:00:00 2001 From: Antonio Ojea Date: Tue, 12 Nov 2024 12:21:21 +0000 Subject: [PATCH] add feature for network devices Signed-off-by: Antonio Ojea --- features-linux.md | 14 ++++++++++++++ schema/features-linux.json | 8 ++++++++ schema/test/features/good/runc.json | 3 +++ specs-go/features/features.go | 8 ++++++++ 4 files changed, 33 insertions(+) diff --git a/features-linux.md b/features-linux.md index 66d5c7996..a3488e5a7 100644 --- a/features-linux.md +++ b/features-linux.md @@ -228,3 +228,17 @@ Irrelevant to the availability of Intel RDT on the host operating system. } } ``` + +## NetDevices + +**`netDevices`** (object, OPTIONAL) represents the runtime's implementation status of Linux network devices. + +* **`enabled`** (bool, OPTIONAL) represents whether the runtime supports the capability to move Linux network devices into the container's network namespace. + +### Example + +```json +"netDevices": { + "enabled": true +} +``` diff --git a/schema/features-linux.json b/schema/features-linux.json index 0f4d21db3..fcf3df7d6 100644 --- a/schema/features-linux.json +++ b/schema/features-linux.json @@ -110,6 +110,14 @@ } } } + }, + "netDevices": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean" + } + } } } } diff --git a/schema/test/features/good/runc.json b/schema/test/features/good/runc.json index 8f5196243..fa6de7f97 100644 --- a/schema/test/features/good/runc.json +++ b/schema/test/features/good/runc.json @@ -182,6 +182,9 @@ }, "selinux": { "enabled": true + }, + "netDevices": { + "enabled": true } }, "annotations": { diff --git a/specs-go/features/features.go b/specs-go/features/features.go index 949f532b6..d8eb169dc 100644 --- a/specs-go/features/features.go +++ b/specs-go/features/features.go @@ -48,6 +48,7 @@ type Linux struct { Selinux *Selinux `json:"selinux,omitempty"` IntelRdt *IntelRdt `json:"intelRdt,omitempty"` MountExtensions *MountExtensions `json:"mountExtensions,omitempty"` + NetDevices *NetDevices `json:"netDevices,omitempty"` } // Cgroup represents the "cgroup" field. @@ -143,3 +144,10 @@ type IDMap struct { // Nil value means "unknown", not "false". Enabled *bool `json:"enabled,omitempty"` } + +// NetDevices represents the "netDevices" field. +type NetDevices struct { + // Enabled is true if network devices support is compiled in. + // Nil value means "unknown", not "false". + Enabled *bool `json:"enabled,omitempty"` +}