Hi all,
this patch fixes network support in ioemu stubdoms.
At the moment in order to provide a working network interface to the
guest you still need to specify a vif in both the guest and stubdom
config files.
Signed-off-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
---
diff --git a/net.c b/net.c
index 983222e..5260369 100644
--- a/net.c
+++ b/net.c
@@ -977,6 +977,20 @@ static int tap_open(char *ifname, int ifname_size)
fcntl(fd, F_SETFL, O_NONBLOCK);
return fd;
}
+#elif defined(CONFIG_STUBDOM)
+#include <netfront.h>
+static int tap_open(char *ifname, int ifname_size)
+{
+ char nodename[64];
+ static int num = 1; // 0 is for our own TCP/IP networking
+ snprintf(nodename, sizeof(nodename), "device/vif/%d", num++);
+ return netfront_tap_open(nodename);
+}
+
+#undef DEFAULT_NETWORK_SCRIPT
+#define DEFAULT_NETWORK_SCRIPT ""
+#undef DEFAULT_NETWORK_DOWN_SCRIPT
+#define DEFAULT_NETWORK_DOWN_SCRIPT ""
#endif
static int launch_script(const char *setup_script, const char *ifname,
@@ -1023,10 +1037,6 @@ static int net_tap_init(VLANState *vlan, const char
*model,
const char *setup_script, const char *down_script,
const char *script_arg)
{
-#ifdef CONFIG_STUBDOM
- errno = ENOSYS;
- return -1;
-#else
TAPState *s;
int fd;
char ifname[128];
@@ -1060,7 +1070,6 @@ static int net_tap_init(VLANState *vlan, const char
*model,
else
s->script_arg[0] = '\0';
return 0;
-#endif
}
#endif /* !_WIN32 */
diff --git a/xen-vl-extra.c b/xen-vl-extra.c
index 9be1acd..3d13583 100644
--- a/xen-vl-extra.c
+++ b/xen-vl-extra.c
@@ -99,22 +99,6 @@ void do_loadvm(const char *name)
struct qemu_alarm_timer;
-#ifdef CONFIG_STUBDOM
-#include <netfront.h>
-static int tap_open(char *ifname, int ifname_size)
-{
- char nodename[64];
- static int num = 1; // 0 is for our own TCP/IP networking
- snprintf(nodename, sizeof(nodename), "device/vif/%d", num++);
- return netfront_tap_open(nodename);
-}
-
-#undef DEFAULT_NETWORK_SCRIPT
-#define DEFAULT_NETWORK_SCRIPT ""
-#undef DEFAULT_NETWORK_DOWN_SCRIPT
-#define DEFAULT_NETWORK_DOWN_SCRIPT ""
-#endif
-
#ifdef CONFIG_PASSTHROUGH
void do_pci_del(char *devname)
{
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|