You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**UEFI boot** — CLOUDHV.fd firmware by default; direct kernel boot for OCI images (auto-detected)
11
11
-**COW overlays** — copy-on-write disks backed by shared base images (raw for OCI, qcow2 for cloud images)
12
12
-**CNI networking** — automatic NIC creation via CNI plugins, multi-NIC support, per-VM IP allocation
13
-
-**Multi-queue virtio-net** — TAP devices created with per-vCPU queue pairs; TSO/UFO/csum offload enabled by default
13
+
-**Multi-queue virtio-net** — TAP devices created with per-vCPU queue pairs; configurable ring depth (`--queue-size`, default 512); TSO/UFO/csum offload enabled by default
14
14
-**TC redirect I/O path** — veth ↔ TAP wired via ingress qdisc + mirred redirect (no bridge in the data path)
15
15
-**DNS configuration** — custom DNS servers injected into VMs via kernel cmdline (OCI) or cloud-init network-config (cloudimg)
16
16
-**Cloud-init metadata** — automatic NoCloud cidata FAT12 disk for cloudimg VMs (hostname, root password, multi-NIC Netplan v2 network-config); cidata is automatically skipped on subsequent boots
@@ -178,6 +178,7 @@ Applies to `cocoon vm create`, `cocoon vm run`, and `cocoon vm debug`:
178
178
|`--memory`|`1G`| Memory size (e.g., 512M, 2G) |
179
179
|`--storage`|`10G`| COW disk size (e.g., 10G, 20G) |
180
180
|`--nics`|`1`| Number of network interfaces (0 = no network) |
181
+
|`--queue-size`|`0` (default 512) | Virtio-net ring depth per queue (larger = better bulk throughput, smaller = better RPC latency; CH only, ignored by FC) |
181
182
|`--network`| empty (default) | CNI conflist name (empty = first conflist) |
182
183
|`--windows`|`false`| Windows guest (UEFI boot, kvm_hyperv=on, no cidata) |
-**Multi-queue**: each TAP device is created with one queue pair per boot vCPU (`num_queues = 2 × vCPU` in Cloud Hypervisor), enabling per-CPU TX/RX rings for better throughput
278
+
-**Multi-queue**: each TAP device is created with one queue pair per boot vCPU (`num_queues = 2 × vCPU` in Cloud Hypervisor), enabling per-CPU TX/RX rings for better throughput. Ring depth per queue is configurable via `--queue-size` (default 512; larger values improve bulk download throughput, smaller values improve RPC latency)
277
279
-**Offload**: TSO, UFO, and checksum offload are enabled on the virtio-net device; TAP uses `VNET_HDR` for zero-copy GSO passthrough
278
280
-**MAC passthrough**: the guest NIC inherits the CNI veth's MAC address, satisfying anti-spoofing requirements of Cilium, Calico eBPF, and VPC ENI plugins
279
281
-**MTU sync**: TAP MTU is automatically synced to the veth to prevent silent large-packet drops in overlay or jumbo-frame setups
-**No network**: `--nics 0` creates a VM with no network interfaces
285
287
-**Multi-NIC**: `--nics N` creates N interfaces; for cloudimg VMs all NICs are auto-configured via Netplan, for OCI images all NICs are auto-configured via kernel `ip=` parameters
286
288
-**Multi-network**: `--network <name>` selects a specific CNI conflist by name (e.g., `--network macvlan`); omitting uses the first conflist alphabetically. The network name is stored in the VM record for recovery after host reboot. Clone allows `--network` override; restore reuses the existing network.
289
+
-**Bridge mode**: `--bridge <device>` creates TAP devices directly on an existing Linux bridge (e.g., `--bridge cni0`), bypassing CNI and TC redirect. VMs get IP via DHCP from the bridge. Mutually exclusive with `--network`
287
290
-**DNS**: Use `--dns` to set custom DNS servers (comma separated)
cmd.Flags().String("storage", "10G", "COW disk size") //nolint:mnd
157
157
cmd.Flags().Int("nics", 1, "number of network interfaces (0 = no network); multiple NICs with auto IP config only works for cloudimg; OCI images auto-configure only the last NIC, others require manual setup inside the guest")
0 commit comments