optional host_mac and kvm_mac

This commit is contained in:
Devaev Maxim 2020-09-30 07:49:58 +03:00
parent 630593492a
commit 1b62570466
2 changed files with 7 additions and 5 deletions

View File

@ -404,8 +404,8 @@ def _get_config_scheme() -> Dict:
"ethernet": {
"enabled": Option(False, type=valid_bool),
"host_mac": Option("", type=valid_mac, only_if="enabled"),
"kvm_mac": Option("", type=valid_mac, only_if="enabled"),
"host_mac": Option("", type=(lambda arg: (valid_mac(arg) if arg else ""))),
"kvm_mac": Option("", type=(lambda arg: (valid_mac(arg) if arg else ""))),
},
"drives": {

View File

@ -112,12 +112,14 @@ def _create_serial(gadget_path: str, config_path: str) -> None:
def _create_ethernet(gadget_path: str, config_path: str, host_mac: str, kvm_mac: str) -> None:
if host_mac == kvm_mac:
if host_mac and kvm_mac and host_mac == kvm_mac:
raise RuntimeError("Ethernet host_mac should not be equal to kvm_mac")
func_path = join(gadget_path, "functions/ecm.usb0")
_mkdir(func_path)
_write(join(func_path, "host_addr"), host_mac)
_write(join(func_path, "dev_addr"), kvm_mac)
if host_mac:
_write(join(func_path, "host_addr"), host_mac)
if kvm_mac:
_write(join(func_path, "dev_addr"), kvm_mac)
_symlink(func_path, join(config_path, "ecm.usb0"))