Volt VMM (Neutron Stardust): source-available under AGPSL v5.0

KVM-based microVMM for the Volt platform:
- Sub-second VM boot times
- Minimal memory footprint
- Landlock LSM + seccomp security
- Virtio device support
- Custom kernel management

Copyright (c) Armored Gates LLC. All rights reserved.
Licensed under AGPSL v5.0
This commit is contained in:
Karl Clinger
2026-03-21 01:04:35 -05:00
commit 40ed108dd5
143 changed files with 50300 additions and 0 deletions

View File

@@ -0,0 +1,25 @@
# Link configuration for Volt TAP devices
# Ensures consistent naming and settings for VM TAPs
#
# Install: cp 90-volt-vmm-tap.link /etc/systemd/network/
[Match]
# Match TAP devices created by Volt
# Pattern: tap-<vm-id> or nova-tap-<vm-id>
OriginalName=tap-* nova-tap-*
Driver=tun
[Link]
# Don't rename these devices (we name them explicitly)
NamePolicy=keep
# Enable multiqueue for better performance
# (requires TUN_MULTI_QUEUE at creation time)
# TransmitQueues=4
# ReceiveQueues=4
# MTU (match bridge MTU)
MTUBytes=1500
# Disable wake-on-lan (not applicable)
WakeOnLan=off

View File

@@ -0,0 +1,17 @@
# Link configuration for Volt/Voltainer veth devices
# Ensures consistent naming and settings for container veths
#
# Install: cp 90-volt-vmm-veth.link /etc/systemd/network/
[Match]
# Match veth host-side devices
# Pattern: veth-<container-id> or nova-veth-<id>
OriginalName=veth-* nova-veth-*
Driver=veth
[Link]
# Don't rename
NamePolicy=keep
# MTU
MTUBytes=1500

View File

@@ -0,0 +1,14 @@
# Template for TAP device attachment to bridge
# Used with systemd template instances: nova-tap@vm123.network
#
# This is auto-generated per-VM, showing the template
[Match]
Name=%i
[Network]
# Attach to the Volt bridge
Bridge=nova0
# No IP on the TAP itself (VM gets IP via DHCP or static)
# The TAP is just a L2 pipe to the bridge

View File

@@ -0,0 +1,14 @@
# Template for veth host-side attachment to bridge
# Used with systemd template instances: nova-veth@container123.network
#
# This is auto-generated per-container, showing the template
[Match]
Name=%i
[Network]
# Attach to the Volt bridge
Bridge=nova0
# No IP on the host-side veth
# Container side gets IP via DHCP or static in its namespace

View File

@@ -0,0 +1,30 @@
# Volt shared bridge device
# Managed by systemd-networkd
# Used by both Volt VMs (TAP) and Voltainer containers (veth)
#
# Install: cp nova0.netdev /etc/systemd/network/
# Apply: systemctl restart systemd-networkd
[NetDev]
Name=nova0
Kind=bridge
Description=Volt unified VM/container bridge
[Bridge]
# Forward delay for fast convergence (microVMs boot fast)
ForwardDelaySec=0
# Enable hairpin mode for container-to-container on same bridge
# This allows traffic to exit and re-enter on the same port
# Useful for service mesh / sidecar patterns
HairpinMode=true
# STP disabled by default (single bridge, no loops)
# Enable if creating multi-bridge topologies
STP=false
# VLAN filtering (optional, for multi-tenant isolation)
VLANFiltering=false
# Multicast snooping for efficient multicast
MulticastSnooping=true

View File

@@ -0,0 +1,62 @@
# Volt bridge network configuration
# Assigns IP to bridge and configures DHCP server
#
# Install: cp nova0.network /etc/systemd/network/
# Apply: systemctl restart systemd-networkd
[Match]
Name=nova0
[Network]
Description=Volt unified network
# Bridge IP address (gateway for VMs/containers)
Address=10.42.0.1/24
# Enable IP forwarding for this interface
IPForward=yes
# Enable IPv6 (optional)
# Address=fd42:nova::1/64
# Enable LLDP for network discovery
LLDP=yes
EmitLLDP=customer-bridge
# Enable built-in DHCP server (systemd-networkd DHCPServer)
# Alternative: use dnsmasq or external DHCP
DHCPServer=yes
# Configure masquerading (NAT) for external access
IPMasquerade=both
[DHCPServer]
# DHCP pool range
PoolOffset=2
PoolSize=252
# Lease time
DefaultLeaseTimeSec=3600
MaxLeaseTimeSec=86400
# DNS servers to advertise
DNS=10.42.0.1
# Use host's DNS if available
# DNS=_server_address
# Router (gateway)
Router=10.42.0.1
# Domain
# EmitDNS=yes
# DNS=10.42.0.1
# NTP server (optional)
# NTP=10.42.0.1
# Timezone (optional)
# Timezone=UTC
[Route]
# Default route through this interface for the subnet
Destination=10.42.0.0/24