vmm: allow net devices without ip and mask

This change enables easier integration with third-party
tools by removing the requirement for a dummy IP address
when configuring tap devices. The modification applies to
both CLI and API interactions.

Previously, cloud-hypervisor would automatically set a
default static IP address (192.168.249.1) if none was provided.

This could lead to:

* multiple devices without explicit IP configurations
  would end up with the same default IP
* unnecessary inclusion of this IP in firewall rules
* the IP address could clash with host networking and
  routing

This introduces a new constraint:
When providing an IP, the mask must also be provided.

Removes warnings introduced in #7179.
Closes issue #7083.

Signed-off-by: Maximilian Güntner <code@mguentner.de>
This commit is contained in:
Maximilian Güntner
2025-09-22 10:43:03 +02:00
committed by Rob Bradford
parent d28d9eb34e
commit 66aa0743f0
5 changed files with 58 additions and 51 deletions
+4 -4
View File
@@ -2904,8 +2904,8 @@ impl DeviceManager {
virtio_devices::Net::new(
id.clone(),
Some(tap_if_name),
Some(net_cfg.ip),
Some(net_cfg.mask),
net_cfg.ip,
net_cfg.mask,
Some(net_cfg.mac),
&mut net_cfg.host_mac,
net_cfg.mtu,
@@ -2955,8 +2955,8 @@ impl DeviceManager {
virtio_devices::Net::new(
id.clone(),
None,
Some(net_cfg.ip),
Some(net_cfg.mask),
net_cfg.ip,
net_cfg.mask,
Some(net_cfg.mac),
&mut net_cfg.host_mac,
net_cfg.mtu,