[vbox-dev] [PATCH] add VDE support to VBoxManage
Renzo Davoli
renzo at cs.unibo.it
Sat May 1 01:06:37 PDT 2010
On Thu, Apr 29, 2010 at 08:12:44PM +1000, James Lucas wrote:
> In terms of adding it to VBoxManage, I'm guess that modifyvm --nic<1-N> needs to
> be modified and the switch --vdenet<1-N> needs to be added.
>
> VBoxManage modifyvm <uuid|name>
> [--nic<1-N>
> none|null|nat|bridged|intnet|hostonly|vde]
> [--vdenet<1-N> <network>|default]
The patch here attached implements exactly the syntax here above.
renzo
Signed-off-by: renzo davoli <renzo at cs.unibo.it>
-----
Index: src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp
===================================================================
--- src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp (revision 28943)
+++ src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp (working copy)
@@ -184,11 +184,14 @@
" [--biossystemtimeoffset <msec>]\n"
" [--biospxedebug on|off]\n"
" [--boot<1-4> none|floppy|dvd|disk|net>]\n"
-#if defined(VBOX_WITH_NETFLT)
- " [--nic<1-N> none|null|nat|bridged|intnet|hostonly]\n"
-#else /* !RT_OS_LINUX && !RT_OS_DARWIN */
- " [--nic<1-N> none|null|nat|bridged|intnet]\n"
-#endif /* !RT_OS_LINUX && !RT_OS_DARWIN */
+ " [--nic<1-N> none|null|nat|bridged|intnet"
+#if defined(VBOX_WITH_NETFLT) /* RT_OS_LINUX || RT_OS_DARWIN */
+ "|hostonly"
+#endif
+#ifdef VBOX_WITH_VDE
+ "|vde"
+#endif
+ "]\n"
" [--nictype<1-N> Am79C970A|Am79C973"
#ifdef VBOX_WITH_E1000
"|\n 82540EM|82543GC|82545EM"
@@ -208,6 +211,9 @@
#endif
" [--intnet<1-N> <network name>]\n"
" [--natnet<1-N> <network>|default]\n"
+#ifdef VBOX_WITH_VDE
+ " [--vdenet<1-N> <network>|default]\n"
+#endif
" [--natsettings<1-N> \"[<mtu>],[<socksnd>],[<sockrcv>],\n"
" [<tcpsnd>],[<tcprcv>]\"]\n"
" [--natpf<1-N> \"[<rulename>],tcp|udp,\n"
Index: src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp
===================================================================
--- src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp (revision 28943)
+++ src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp (working copy)
@@ -111,6 +111,9 @@
MODIFYVM_HOSTONLYADAPTER,
MODIFYVM_INTNET,
MODIFYVM_NATNET,
+#ifdef VBOX_WITH_VDE
+ MODIFYVM_VDENET,
+#endif
MODIFYVM_NATBINDIP,
MODIFYVM_NATSETTINGS,
MODIFYVM_NATPF,
@@ -219,6 +222,9 @@
{ "--hostonlyadapter", MODIFYVM_HOSTONLYADAPTER, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
{ "--intnet", MODIFYVM_INTNET, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
{ "--natnet", MODIFYVM_NATNET, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
+#ifdef VBOX_WITH_VDE
+ { "--vdenet", MODIFYVM_VDENET, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
+#endif
{ "--natbindip", MODIFYVM_NATBINDIP, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
{ "--natsettings", MODIFYVM_NATSETTINGS, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
{ "--natpf", MODIFYVM_NATPF, RTGETOPT_REQ_STRING | RTGETOPT_FLAG_INDEX },
@@ -1190,6 +1196,14 @@
CHECK_ERROR(nic, AttachToHostOnlyInterface());
}
#endif
+#ifdef VBOX_WITH_VDE
+ else if (!strcmp(ValueUnion.psz, "vde"))
+ {
+
+ CHECK_ERROR(nic, COMSETTER(Enabled)(TRUE));
+ CHECK_ERROR(nic, AttachToVDE());
+ }
+#endif
else
{
errorArgument("Invalid type '%s' specfied for NIC %u", ValueUnion.psz, GetOptState.uIndex);
@@ -1248,6 +1262,25 @@
break;
}
+#ifdef VBOX_WITH_VDE
+ case MODIFYVM_VDENET:
+ {
+ ComPtr<INetworkAdapter> nic;
+
+ CHECK_ERROR_BREAK(machine, GetNetworkAdapter(GetOptState.uIndex - 1, nic.asOutParam()));
+ ASSERT(nic);
+
+ if (!strcmp(ValueUnion.psz, "default"))
+ {
+ CHECK_ERROR(nic, COMSETTER(VDENetwork)(NULL));
+ }
+ else
+ {
+ CHECK_ERROR(nic, COMSETTER(VDENetwork)(Bstr(ValueUnion.psz)));
+ }
+ break;
+ }
+#endif
case MODIFYVM_NATNET:
{
ComPtr<INetworkAdapter> nic;
Index: src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp
===================================================================
--- src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp (revision 28943)
+++ src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp (working copy)
@@ -892,6 +892,21 @@
break;
}
#endif
+#ifdef VBOX_WITH_VDE
+ case NetworkAttachmentType_VDE:
+ {
+ Bstr strVDEAdp;
+ nic->COMGETTER(VDENetwork)(strVDEAdp.asOutParam());
+ if (details == VMINFO_MACHINEREADABLE)
+ {
+ RTPrintf("vdenet%d=\"%lS\"\n", currentNIC + 1, strVDEAdp.raw());
+ strAttachment = "VDE";
+ }
+ else
+ strAttachment = Utf8StrFmt("VDE Network '%lS'", strVDEAdp.raw());
+ break;
+ }
+#endif
default:
strAttachment = "unknown";
break;
Index: src/VBox/Frontends/VBoxManage/Makefile.kmk
===================================================================
--- src/VBox/Frontends/VBoxManage/Makefile.kmk (revision 28943)
+++ src/VBox/Frontends/VBoxManage/Makefile.kmk (working copy)
@@ -41,7 +41,8 @@
$(if $(VBOX_WITH_SCSI), VBOX_WITH_SCSI) \
$(if $(VBOX_WITH_GUEST_PROPS),VBOX_WITH_GUEST_PROPS) \
$(if $(VBOX_WITH_GUEST_CONTROL),VBOX_WITH_GUEST_CONTROL) \
- $(if $(VBOX_WITH_HOSTNETIF_API), VBOX_WITH_HOSTNETIF_API)
+ $(if $(VBOX_WITH_HOSTNETIF_API), VBOX_WITH_HOSTNETIF_API) \
+ $(if $(VBOX_WITH_VDE), VBOX_WITH_VDE)
VBoxManage_DEFS.win = _WIN32_WINNT=0x0500
ifdef VBOX_DYNAMIC_NET_ATTACH
VBoxManage_DEFS += VBOX_DYNAMIC_NET_ATTACH
More information about the vbox-dev
mailing list