Skip to content

Commit

Permalink
Merge pull request #103 from jpirko/net_loop
Browse files Browse the repository at this point in the history
Introduce "--network loop" device type and allow "--network" option to be passed multiple times
  • Loading branch information
Andrea Righi authored Apr 16, 2024
2 parents f77b5ff + 75e0180 commit 9c203ed
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 13 deletions.
33 changes: 23 additions & 10 deletions virtme/commands/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -112,10 +112,10 @@ def make_parser() -> argparse.ArgumentParser:
)
g.add_argument(
"--net",
action="store",
action="append",
const="user",
nargs="?",
choices=["user", "bridge"],
choices=["user", "bridge", "loop"],
help="Enable basic network access.",
)
g.add_argument(
Expand Down Expand Up @@ -1234,16 +1234,29 @@ def do_script(shellcmd: str, ret_path=None, show_boot_console=False) -> None:
qemuargs.extend(video_args)

if args.net:
qemuargs.extend(["-device", "%s,netdev=n0" % arch.virtio_dev_type("net")])
if args.net == "user":
qemuargs.extend(["-netdev", "user,id=n0"])
elif args.net == "bridge":
qemuargs.extend(["-netdev", "bridge,id=n0,br=virbr0"])
else:
assert False
extend_dhcp = False
index = 0
for net in args.net:
qemuargs.extend(["-device", "%s,netdev=n%d" % (arch.virtio_dev_type("net"), index)])
if net == "user":
qemuargs.extend(["-netdev", "user,id=n%d" % index])
extend_dhcp = True
elif net == "bridge":
qemuargs.extend(["-netdev", "bridge,id=n%d,br=virbr0" % index])
extend_dhcp = True
elif net == "loop":
hubid = index
qemuargs.extend(["-netdev", "hubport,id=n%d,hubid=%d" % (index, hubid)])
index += 1
qemuargs.extend(["-device", "%s,netdev=n%d" % (arch.virtio_dev_type("net"), index)])
qemuargs.extend(["-netdev", "hubport,id=n%d,hubid=%d" % (index, hubid)])
else:
assert False
index += 1
if extend_dhcp:
kernelargs.extend(["virtme.dhcp"])
kernelargs.extend(
[
"virtme.dhcp",
# Prevent annoying interface renaming
"net.ifnames=0",
"biosdevname=0",
Expand Down
7 changes: 4 additions & 3 deletions virtme_ng/run.py
Original file line number Diff line number Diff line change
Expand Up @@ -311,8 +311,8 @@ def make_parser():
parser.add_argument(
"--network",
"-n",
action="store",
metavar="user|bridge",
action="append",
choices=['user', 'bridge', 'loop'],
help="Enable network access",
)

Expand Down Expand Up @@ -845,7 +845,8 @@ def _get_virtme_no_virtme_ng_init(self, args):

def _get_virtme_network(self, args):
if args.network is not None:
self.virtme_param["network"] = f"--net {args.network}"
network_str = " ".join([f"--net {network}" for network in args.network])
self.virtme_param["network"] = network_str
else:
self.virtme_param["network"] = ""

Expand Down

0 comments on commit 9c203ed

Please sign in to comment.