diff --git a/napalm_device_types/hypervisor.py b/napalm_device_types/hypervisor.py index e543f09..fb1a5e9 100644 --- a/napalm_device_types/hypervisor.py +++ b/napalm_device_types/hypervisor.py @@ -583,7 +583,9 @@ class HypervisorDriver(DeviceTypeDriver): nics (list[NICConfigDict]) - list of network interface configurations. First NIC is primary (DHCP by default); subsequent NICs are optional. Each entry specifies bridge, optional vlan_tag (access) or trunk_vlan_tags, - and dhcp flag. + dhcp flag, and an optional explicit mac address (omit to let the + hypervisor auto-generate one; needed when a caller must know the + MAC ahead of time, e.g. to create a matching DHCP reservation). cloud_init_config (dict) - user-data dict (will be rendered to YAML). Should include hostname, bootstrap_token, runcmd, and any custom config. image_checksum (string | None) - expected checksum of the downloaded diff --git a/napalm_device_types/models.py b/napalm_device_types/models.py index 1ff9842..4ff56ca 100644 --- a/napalm_device_types/models.py +++ b/napalm_device_types/models.py @@ -713,6 +713,7 @@ class NICConfigDict(TypedDict): vlan_tag: NotRequired[int | None] # Access VLAN (None = untagged) trunk_vlan_tags: NotRequired[list[int]] # Trunk VLAN list (alternative to vlan_tag) dhcp: NotRequired[bool] # Enable DHCP (default True for first NIC, False for others) + mac: NotRequired[str] # Explicit MAC address (omit to let the hypervisor auto-generate one) class VMProvisionResultDict(TypedDict):