qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PATCH 5/5] Add a -net name=foo parameter


From: Mark McLoughlin
Subject: [Qemu-devel] [PATCH 5/5] Add a -net name=foo parameter
Date: Fri, 12 Dec 2008 14:46:31 +0000

Allow the user to supply a vlan client name on the command line.

This is probably only useful for management tools so that they can
use their own names rather than parsing the output of 'info network'.

Signed-off-by: Mark McLoughlin <address@hidden>
---
 hw/e1000.c       |    2 +-
 hw/eepro100.c    |    2 +-
 hw/etraxfs_eth.c |    2 +-
 hw/mcf_fec.c     |    2 +-
 hw/mipsnet.c     |    2 +-
 hw/musicpal.c    |    2 +-
 hw/ne2000.c      |    4 +-
 hw/pcnet.c       |    2 +-
 hw/rtl8139.c     |    2 +-
 hw/smc91c111.c   |    2 +-
 hw/usb-net.c     |    2 +-
 net.c            |   97 +++++++++++++++++++++++++++++++++++------------------
 net.h            |    2 +
 qemu-doc.texi    |   15 ++++----
 sysemu.h         |    3 +-
 tap-win32.c      |    5 ++-
 vl.c             |   14 ++++----
 17 files changed, 98 insertions(+), 62 deletions(-)

diff --git a/hw/e1000.c b/hw/e1000.c
index 9b4dbbd..7c8824d 100644
--- a/hw/e1000.c
+++ b/hw/e1000.c
@@ -1071,7 +1071,7 @@ pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn)
     d->rxbuf_min_shift = 1;
     memset(&d->tx, 0, sizeof d->tx);
 
-    d->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+    d->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                  e1000_receive, e1000_can_receive, d);
 
     qemu_format_nic_info_str(d->vc, d->nd->macaddr);
diff --git a/hw/eepro100.c b/hw/eepro100.c
index 86a4e6e..5eca105 100644
--- a/hw/eepro100.c
+++ b/hw/eepro100.c
@@ -1776,7 +1776,7 @@ static void nic_init(PCIBus * bus, NICInfo * nd,
 
     nic_reset(s);
 
-    s->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+    s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                  nic_receive, nic_can_receive, s);
 
     qemu_format_nic_info_str(s->vc, s->macaddr);
diff --git a/hw/etraxfs_eth.c b/hw/etraxfs_eth.c
index 244a23d..4bad3d2 100644
--- a/hw/etraxfs_eth.c
+++ b/hw/etraxfs_eth.c
@@ -596,7 +596,7 @@ void *etraxfs_eth_init(NICInfo *nd, CPUState *env,
        eth->ethregs = cpu_register_io_memory(0, eth_read, eth_write, eth);
        cpu_register_physical_memory (base, 0x5c, eth->ethregs);
 
-       eth->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+       eth->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                       eth_receive, eth_can_receive, eth);
 
        return dma;
diff --git a/hw/mcf_fec.c b/hw/mcf_fec.c
index 7e3afa5..bb9f68f 100644
--- a/hw/mcf_fec.c
+++ b/hw/mcf_fec.c
@@ -452,7 +452,7 @@ void mcf_fec_init(NICInfo *nd, target_phys_addr_t base, 
qemu_irq *irq)
                                        mcf_fec_writefn, s);
     cpu_register_physical_memory(base, 0x400, iomemtype);
 
-    s->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+    s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                  mcf_fec_receive, mcf_fec_can_receive, s);
     memcpy(s->macaddr, nd->macaddr, 6);
 }
diff --git a/hw/mipsnet.c b/hw/mipsnet.c
index 4b3e8e9..0eb4c1e 100644
--- a/hw/mipsnet.c
+++ b/hw/mipsnet.c
@@ -250,7 +250,7 @@ void mipsnet_init (int base, qemu_irq irq, NICInfo *nd)
     s->irq = irq;
     s->nd = nd;
     if (nd && nd->vlan) {
-        s->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+        s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                      mipsnet_receive, mipsnet_can_receive, s);
     } else {
         s->vc = NULL;
diff --git a/hw/musicpal.c b/hw/musicpal.c
index d172a11..1c932ec 100644
--- a/hw/musicpal.c
+++ b/hw/musicpal.c
@@ -718,7 +718,7 @@ static void mv88w8618_eth_init(NICInfo *nd, uint32_t base, 
qemu_irq irq)
     if (!s)
         return;
     s->irq = irq;
-    s->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+    s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                  eth_receive, eth_can_receive, s);
     iomemtype = cpu_register_io_memory(0, mv88w8618_eth_readfn,
                                        mv88w8618_eth_writefn, s);
diff --git a/hw/ne2000.c b/hw/ne2000.c
index ad97bc5..200db90 100644
--- a/hw/ne2000.c
+++ b/hw/ne2000.c
@@ -741,7 +741,7 @@ void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd)
 
     ne2000_reset(s);
 
-    s->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+    s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                  ne2000_receive, ne2000_can_receive, s);
 
     qemu_format_nic_info_str(s->vc, s->macaddr);
@@ -804,7 +804,7 @@ void pci_ne2000_init(PCIBus *bus, NICInfo *nd, int devfn)
     s->pci_dev = (PCIDevice *)d;
     memcpy(s->macaddr, nd->macaddr, 6);
     ne2000_reset(s);
-    s->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+    s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                  ne2000_receive, ne2000_can_receive, s);
 
     qemu_format_nic_info_str(s->vc, s->macaddr);
diff --git a/hw/pcnet.c b/hw/pcnet.c
index 5b45956..102166e 100644
--- a/hw/pcnet.c
+++ b/hw/pcnet.c
@@ -1936,7 +1936,7 @@ static void pcnet_common_init(PCNetState *d, NICInfo *nd, 
const char *info_str)
     d->nd = nd;
 
     if (nd && nd->vlan) {
-        d->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+        d->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                      pcnet_receive, pcnet_can_receive, d);
 
         qemu_format_nic_info_str(d->vc, d->nd->macaddr);
diff --git a/hw/rtl8139.c b/hw/rtl8139.c
index 4449fd2..5805795 100644
--- a/hw/rtl8139.c
+++ b/hw/rtl8139.c
@@ -3438,7 +3438,7 @@ void pci_rtl8139_init(PCIBus *bus, NICInfo *nd, int devfn)
     s->pci_dev = (PCIDevice *)d;
     memcpy(s->macaddr, nd->macaddr, 6);
     rtl8139_reset(s);
-    s->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+    s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                  rtl8139_receive, rtl8139_can_receive, s);
 
     qemu_format_nic_info_str(s->vc, s->macaddr);
diff --git a/hw/smc91c111.c b/hw/smc91c111.c
index fadd151..2ee6701 100644
--- a/hw/smc91c111.c
+++ b/hw/smc91c111.c
@@ -704,7 +704,7 @@ void smc91c111_init(NICInfo *nd, uint32_t base, qemu_irq 
irq)
 
     smc91c111_reset(s);
 
-    s->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+    s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                                  smc91c111_receive, smc91c111_can_receive, s);
     /* ??? Save/restore.  */
 }
diff --git a/hw/usb-net.c b/hw/usb-net.c
index 95ebac8..947461c 100644
--- a/hw/usb-net.c
+++ b/hw/usb-net.c
@@ -1454,7 +1454,7 @@ USBDevice *usb_net_init(NICInfo *nd)
 
     pstrcpy(s->dev.devname, sizeof(s->dev.devname),
                     "QEMU USB Network Interface");
-    s->vc = qemu_new_vlan_client(nd->vlan, nd->model,
+    s->vc = qemu_new_vlan_client(nd->vlan, nd->model, nd->name,
                     usbnet_receive, usbnet_can_receive, s);
 
     qemu_format_nic_info_str(s->vc, s->mac);
diff --git a/net.c b/net.c
index 69f6546..414affb 100644
--- a/net.c
+++ b/net.c
@@ -333,6 +333,7 @@ static char *assign_name(VLANClientState *vc1, const char 
*model)
 
 VLANClientState *qemu_new_vlan_client(VLANState *vlan,
                                       const char *model,
+                                      const char *name,
                                       IOReadHandler *fd_read,
                                       IOCanRWHandler *fd_can_read,
                                       void *opaque)
@@ -342,7 +343,10 @@ VLANClientState *qemu_new_vlan_client(VLANState *vlan,
     if (!vc)
         return NULL;
     vc->model = strdup(model);
-    vc->name = assign_name(vc, model);
+    if (name)
+        vc->name = strdup(name);
+    else
+        vc->name = assign_name(vc, model);
     vc->fd_read = fd_read;
     vc->fd_can_read = fd_can_read;
     vc->opaque = opaque;
@@ -438,13 +442,13 @@ static void slirp_receive(void *opaque, const uint8_t 
*buf, int size)
     slirp_input(buf, size);
 }
 
-static int net_slirp_init(VLANState *vlan, const char *model)
+static int net_slirp_init(VLANState *vlan, const char *model, const char *name)
 {
     if (!slirp_inited) {
         slirp_inited = 1;
         slirp_init();
     }
-    slirp_vc = qemu_new_vlan_client(vlan, model,
+    slirp_vc = qemu_new_vlan_client(vlan, model, name,
                                     slirp_receive, NULL, NULL);
     slirp_vc->info_str[0] = '\0';
     return 0;
@@ -643,7 +647,10 @@ static void tap_send(void *opaque)
 
 /* fd support */
 
-static TAPState *net_tap_fd_init(VLANState *vlan, const char *model, int fd)
+static TAPState *net_tap_fd_init(VLANState *vlan,
+                                 const char *model,
+                                 const char *name,
+                                 int fd)
 {
     TAPState *s;
 
@@ -651,7 +658,7 @@ static TAPState *net_tap_fd_init(VLANState *vlan, const 
char *model, int fd)
     if (!s)
         return NULL;
     s->fd = fd;
-    s->vc = qemu_new_vlan_client(vlan, model, tap_receive, NULL, s);
+    s->vc = qemu_new_vlan_client(vlan, model, name, tap_receive, NULL, s);
     qemu_set_fd_handler(s->fd, tap_send, NULL, s);
     snprintf(s->vc->info_str, sizeof(s->vc->info_str), "fd=%d", fd);
     return s;
@@ -883,7 +890,8 @@ static int launch_script(const char *setup_script, const 
char *ifname, int fd)
     return 0;
 }
 
-static int net_tap_init(VLANState *vlan, const char *model, const char 
*ifname1,
+static int net_tap_init(VLANState *vlan, const char *model,
+                        const char *name, const char *ifname1,
                         const char *setup_script, const char *down_script)
 {
     TAPState *s;
@@ -904,7 +912,7 @@ static int net_tap_init(VLANState *vlan, const char *model, 
const char *ifname1,
        if (launch_script(setup_script, ifname, fd))
            return -1;
     }
-    s = net_tap_fd_init(vlan, model, fd);
+    s = net_tap_fd_init(vlan, model, name, fd);
     if (!s)
         return -1;
     snprintf(s->vc->info_str, sizeof(s->vc->info_str),
@@ -948,7 +956,8 @@ static void vde_from_qemu(void *opaque, const uint8_t *buf, 
int size)
     }
 }
 
-static int net_vde_init(VLANState *vlan, const char *model, const char *sock,
+static int net_vde_init(VLANState *vlan, const char *model,
+                        const char *name, const char *sock,
                         int port, const char *group, int mode)
 {
     VDEState *s;
@@ -969,7 +978,7 @@ static int net_vde_init(VLANState *vlan, const char *model, 
const char *sock,
         free(s);
         return -1;
     }
-    s->vc = qemu_new_vlan_client(vlan, model, vde_from_qemu, NULL, s);
+    s->vc = qemu_new_vlan_client(vlan, model, name, vde_from_qemu, NULL, s);
     qemu_set_fd_handler(vde_datafd(s->vde), vde_to_qemu, NULL, s);
     snprintf(s->vc->info_str, sizeof(s->vc->info_str), "sock=%s,fd=%d",
              sock, vde_datafd(s->vde));
@@ -991,6 +1000,7 @@ typedef struct NetSocketState {
 typedef struct NetSocketListenState {
     VLANState *vlan;
     char *model;
+    char *name;
     int fd;
 } NetSocketListenState;
 
@@ -1144,7 +1154,9 @@ fail:
     return -1;
 }
 
-static NetSocketState *net_socket_fd_init_dgram(VLANState *vlan, const char 
*model,
+static NetSocketState *net_socket_fd_init_dgram(VLANState *vlan,
+                                                const char *model,
+                                                const char *name,
                                                 int fd, int is_connected)
 {
     struct sockaddr_in saddr;
@@ -1188,7 +1200,7 @@ static NetSocketState *net_socket_fd_init_dgram(VLANState 
*vlan, const char *mod
         return NULL;
     s->fd = fd;
 
-    s->vc = qemu_new_vlan_client(vlan, model, net_socket_receive_dgram, NULL, 
s);
+    s->vc = qemu_new_vlan_client(vlan, model, name, net_socket_receive_dgram, 
NULL, s);
     qemu_set_fd_handler(s->fd, net_socket_send_dgram, NULL, s);
 
     /* mcast: save bound address as dst */
@@ -1207,7 +1219,9 @@ static void net_socket_connect(void *opaque)
     qemu_set_fd_handler(s->fd, net_socket_send, NULL, s);
 }
 
-static NetSocketState *net_socket_fd_init_stream(VLANState *vlan, const char 
*model,
+static NetSocketState *net_socket_fd_init_stream(VLANState *vlan,
+                                                 const char *model,
+                                                 const char *name,
                                                  int fd, int is_connected)
 {
     NetSocketState *s;
@@ -1215,7 +1229,7 @@ static NetSocketState 
*net_socket_fd_init_stream(VLANState *vlan, const char *mo
     if (!s)
         return NULL;
     s->fd = fd;
-    s->vc = qemu_new_vlan_client(vlan, model,
+    s->vc = qemu_new_vlan_client(vlan, model, name,
                                  net_socket_receive, NULL, s);
     snprintf(s->vc->info_str, sizeof(s->vc->info_str),
              "socket: fd=%d", fd);
@@ -1227,7 +1241,8 @@ static NetSocketState 
*net_socket_fd_init_stream(VLANState *vlan, const char *mo
     return s;
 }
 
-static NetSocketState *net_socket_fd_init(VLANState *vlan, const char *model,
+static NetSocketState *net_socket_fd_init(VLANState *vlan,
+                                          const char *model, const char *name,
                                           int fd, int is_connected)
 {
     int so_type=-1, optlen=sizeof(so_type);
@@ -1239,13 +1254,13 @@ static NetSocketState *net_socket_fd_init(VLANState 
*vlan, const char *model,
     }
     switch(so_type) {
     case SOCK_DGRAM:
-        return net_socket_fd_init_dgram(vlan, model, fd, is_connected);
+        return net_socket_fd_init_dgram(vlan, model, name, fd, is_connected);
     case SOCK_STREAM:
-        return net_socket_fd_init_stream(vlan, model, fd, is_connected);
+        return net_socket_fd_init_stream(vlan, model, name, fd, is_connected);
     default:
         /* who knows ... this could be a eg. a pty, do warn and continue as 
stream */
         fprintf(stderr, "qemu: warning: socket type=%d for fd=%d is not 
SOCK_DGRAM or SOCK_STREAM\n", so_type, fd);
-        return net_socket_fd_init_stream(vlan, model, fd, is_connected);
+        return net_socket_fd_init_stream(vlan, model, name, fd, is_connected);
     }
     return NULL;
 }
@@ -1267,7 +1282,7 @@ static void net_socket_accept(void *opaque)
             break;
         }
     }
-    s1 = net_socket_fd_init(s->vlan, s->model, fd, 1);
+    s1 = net_socket_fd_init(s->vlan, s->model, s->name, fd, 1);
     if (!s1) {
         closesocket(fd);
     } else {
@@ -1277,7 +1292,9 @@ static void net_socket_accept(void *opaque)
     }
 }
 
-static int net_socket_listen_init(VLANState *vlan, const char *model,
+static int net_socket_listen_init(VLANState *vlan,
+                                  const char *model,
+                                  const char *name,
                                   const char *host_str)
 {
     NetSocketListenState *s;
@@ -1314,12 +1331,15 @@ static int net_socket_listen_init(VLANState *vlan, 
const char *model,
     }
     s->vlan = vlan;
     s->model = strdup(model);
+    s->name = strdup(name);
     s->fd = fd;
     qemu_set_fd_handler(fd, net_socket_accept, NULL, s);
     return 0;
 }
 
-static int net_socket_connect_init(VLANState *vlan, const char *model,
+static int net_socket_connect_init(VLANState *vlan,
+                                   const char *model,
+                                   const char *name,
                                    const char *host_str)
 {
     NetSocketState *s;
@@ -1358,7 +1378,7 @@ static int net_socket_connect_init(VLANState *vlan, const 
char *model,
             break;
         }
     }
-    s = net_socket_fd_init(vlan, model, fd, connected);
+    s = net_socket_fd_init(vlan, model, name, fd, connected);
     if (!s)
         return -1;
     snprintf(s->vc->info_str, sizeof(s->vc->info_str),
@@ -1367,7 +1387,9 @@ static int net_socket_connect_init(VLANState *vlan, const 
char *model,
     return 0;
 }
 
-static int net_socket_mcast_init(VLANState *vlan, const char *model,
+static int net_socket_mcast_init(VLANState *vlan,
+                                 const char *model,
+                                 const char *name,
                                  const char *host_str)
 {
     NetSocketState *s;
@@ -1382,7 +1404,7 @@ static int net_socket_mcast_init(VLANState *vlan, const 
char *model,
     if (fd < 0)
        return -1;
 
-    s = net_socket_fd_init(vlan, model, fd, 0);
+    s = net_socket_fd_init(vlan, model, name, fd, 0);
     if (!s)
         return -1;
 
@@ -1420,6 +1442,7 @@ int net_client_init(const char *device, const char *p)
     char buf[1024];
     int vlan_id, ret;
     VLANState *vlan;
+    char *name = NULL;
 
     vlan_id = 0;
     if (get_param_value(buf, sizeof(buf), "vlan", p)) {
@@ -1430,6 +1453,9 @@ int net_client_init(const char *device, const char *p)
         fprintf(stderr, "Could not create vlan %d\n", vlan_id);
         return -1;
     }
+    if (get_param_value(buf, sizeof(buf), "name", p)) {
+        name = strdup(buf);
+    }
     if (!strcmp(device, "nic")) {
         NICInfo *nd;
         uint8_t *macaddr;
@@ -1457,6 +1483,8 @@ int net_client_init(const char *device, const char *p)
             nd->model = strdup(buf);
         }
         nd->vlan = vlan;
+        nd->name = name;
+        name = NULL;
         nb_nics++;
         vlan->nb_guest_devs++;
         ret = 0;
@@ -1472,7 +1500,7 @@ int net_client_init(const char *device, const char *p)
             pstrcpy(slirp_hostname, sizeof(slirp_hostname), buf);
         }
         vlan->nb_host_devs++;
-        ret = net_slirp_init(vlan, device);
+        ret = net_slirp_init(vlan, device, name);
     } else
 #endif
 #ifdef _WIN32
@@ -1483,7 +1511,7 @@ int net_client_init(const char *device, const char *p)
             return -1;
         }
         vlan->nb_host_devs++;
-        ret = tap_win32_init(vlan, device, ifname);
+        ret = tap_win32_init(vlan, device, name, ifname);
     } else
 #elif defined (_AIX)
 #else
@@ -1496,7 +1524,7 @@ int net_client_init(const char *device, const char *p)
             fd = strtol(buf, NULL, 0);
             fcntl(fd, F_SETFL, O_NONBLOCK);
             ret = -1;
-            if (net_tap_fd_init(vlan, device, fd))
+            if (net_tap_fd_init(vlan, device, name, fd))
                 ret = 0;
         } else {
             if (get_param_value(ifname, sizeof(ifname), "ifname", p) <= 0) {
@@ -1508,7 +1536,7 @@ int net_client_init(const char *device, const char *p)
             if (get_param_value(down_script, sizeof(down_script), 
"downscript", p) == 0) {
                 pstrcpy(down_script, sizeof(down_script), 
DEFAULT_NETWORK_DOWN_SCRIPT);
             }
-            ret = net_tap_init(vlan, device, ifname, setup_script, 
down_script);
+            ret = net_tap_init(vlan, device, name, ifname, setup_script, 
down_script);
         }
     } else
 #endif
@@ -1517,14 +1545,14 @@ int net_client_init(const char *device, const char *p)
             int fd;
             fd = strtol(buf, NULL, 0);
             ret = -1;
-            if (net_socket_fd_init(vlan, device, fd, 1))
+            if (net_socket_fd_init(vlan, device, name, fd, 1))
                 ret = 0;
         } else if (get_param_value(buf, sizeof(buf), "listen", p) > 0) {
-            ret = net_socket_listen_init(vlan, device, buf);
+            ret = net_socket_listen_init(vlan, device, name, buf);
         } else if (get_param_value(buf, sizeof(buf), "connect", p) > 0) {
-            ret = net_socket_connect_init(vlan, device, buf);
+            ret = net_socket_connect_init(vlan, device, name, buf);
         } else if (get_param_value(buf, sizeof(buf), "mcast", p) > 0) {
-            ret = net_socket_mcast_init(vlan, device, buf);
+            ret = net_socket_mcast_init(vlan, device, name, buf);
         } else {
             fprintf(stderr, "Unknown socket options: %s\n", p);
             return -1;
@@ -1552,17 +1580,20 @@ int net_client_init(const char *device, const char *p)
        } else {
            vde_mode = 0700;
        }
-       ret = net_vde_init(vlan, device, vde_sock, vde_port, vde_group, 
vde_mode);
+       ret = net_vde_init(vlan, device, name, vde_sock, vde_port, vde_group, 
vde_mode);
     } else
 #endif
     {
         fprintf(stderr, "Unknown network device: %s\n", device);
+        if (name)
+            free(name);
         return -1;
     }
     if (ret < 0) {
         fprintf(stderr, "Could not initialize device '%s'\n", device);
     }
-
+    if (name)
+        free(name);
     return ret;
 }
 
diff --git a/net.h b/net.h
index 244f80b..bb4dce3 100644
--- a/net.h
+++ b/net.h
@@ -28,6 +28,7 @@ struct VLANState {
 VLANState *qemu_find_vlan(int id);
 VLANClientState *qemu_new_vlan_client(VLANState *vlan,
                                       const char *model,
+                                      const char *name,
                                       IOReadHandler *fd_read,
                                       IOCanRWHandler *fd_can_read,
                                       void *opaque);
@@ -46,6 +47,7 @@ void do_info_network(void);
 struct NICInfo {
     uint8_t macaddr[6];
     const char *model;
+    const char *name;
     VLANState *vlan;
 };
 
diff --git a/qemu-doc.texi b/qemu-doc.texi
index 377e384..bb36fe7 100644
--- a/qemu-doc.texi
+++ b/qemu-doc.texi
@@ -604,10 +604,11 @@ Network options:
 
 @table @option
 
address@hidden -net nic[,address@hidden,address@hidden,address@hidden
address@hidden -net 
nic[,address@hidden,address@hidden,address@hidden,address@hidden
 Create a new Network Interface Card and connect it to VLAN @var{n} (@var{n}
 = 0 is the default). The NIC is an ne2k_pci by default on the PC
-target. Optionally, the MAC address can be changed. If no
+target. Optionally, the MAC address can be changed to @var{addr}
+and a @var{name} can be assigned for use in monitor commands. If no
 @option{-net} option is specified, a single NIC is created.
 Qemu can emulate several different models of network card.
 Valid values for @var{type} are
@@ -617,12 +618,12 @@ Valid values for @var{type} are
 Not all devices are supported on all targets.  Use -net nic,model=?
 for a list of available devices for your target.
 
address@hidden -net user[,address@hidden,address@hidden
address@hidden -net user[,address@hidden,address@hidden,address@hidden
 Use the user mode network stack which requires no administrator
 privilege to run.  @option{hostname=name} can be used to specify the client
 hostname reported by the builtin DHCP server.
 
address@hidden -net 
tap[,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden
address@hidden -net 
tap[,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden
 Connect the host TAP network interface @var{name} to VLAN @var{n}, use
 the network script @var{file} to configure it and the network script 
 @var{dfile} to deconfigure it. If @var{name} is not provided, the OS 
@@ -643,7 +644,7 @@ qemu linux.img -net nic,vlan=0 -net tap,vlan=0,ifname=tap0 \
 @end example
 
 
address@hidden -net 
socket[,address@hidden,address@hidden,address@hidden:@var{port}][,address@hidden:@var{port}]
address@hidden -net 
socket[,address@hidden,address@hidden,address@hidden,address@hidden:@var{port}][,address@hidden:@var{port}]
 
 Connect the VLAN @var{n} to a remote VLAN in another QEMU virtual
 machine using a TCP socket connection. If @option{listen} is
@@ -663,7 +664,7 @@ qemu linux.img -net nic,macaddr=52:54:00:12:34:57 \
                -net socket,connect=127.0.0.1:1234
 @end example
 
address@hidden -net 
socket[,address@hidden,address@hidden,address@hidden:@var{port}]
address@hidden -net 
socket[,address@hidden,address@hidden,address@hidden,address@hidden:@var{port}]
 
 Create a VLAN @var{n} shared with another QEMU virtual
 machines using a UDP multicast socket, effectively making a bus for
@@ -703,7 +704,7 @@ qemu linux.img -net nic,macaddr=52:54:00:12:34:56 \
 /path/to/linux ubd0=/path/to/root_fs eth0=mcast
 @end example
 
address@hidden -net 
vde[,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden
address@hidden -net 
vde[,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden,address@hidden
 Connect VLAN @var{n} to PORT @var{n} of a vde switch running on host and
 listening for incoming connections on @var{socketpath}. Use GROUP 
@var{groupname}
 and MODE @var{octalmode} to change default ownership and permissions for
diff --git a/sysemu.h b/sysemu.h
index 8ce3900..cac9a95 100644
--- a/sysemu.h
+++ b/sysemu.h
@@ -75,7 +75,8 @@ void qemu_del_wait_object(HANDLE handle, WaitObjectFunc 
*func, void *opaque);
 #endif
 
 /* TAP win32 */
-int tap_win32_init(VLANState *vlan, const char *model, const char *ifname);
+int tap_win32_init(VLANState *vlan, const char *model,
+                   const char *name, const char *ifname);
 
 /* SLIRP */
 void do_info_slirp(void);
diff --git a/tap-win32.c b/tap-win32.c
index ee9e23f..da3283e 100644
--- a/tap-win32.c
+++ b/tap-win32.c
@@ -660,7 +660,8 @@ static void tap_win32_send(void *opaque)
     }
 }
 
-int tap_win32_init(VLANState *vlan, const char *model, const char *ifname)
+int tap_win32_init(VLANState *vlan, const char *model,
+                   const char *name, const char *ifname)
 {
     TAPState *s;
 
@@ -672,7 +673,7 @@ int tap_win32_init(VLANState *vlan, const char *model, 
const char *ifname)
         return -1;
     }
 
-    s->vc = qemu_new_vlan_client(vlan, model, tap_receive, NULL, s);
+    s->vc = qemu_new_vlan_client(vlan, model, name, tap_receive, NULL, s);
 
     snprintf(s->vc->info_str, sizeof(s->vc->info_str),
              "tap: ifname=%s", ifname);
diff --git a/vl.c b/vl.c
index c3a8d8f..bf7d78c 100644
--- a/vl.c
+++ b/vl.c
@@ -3878,30 +3878,30 @@ static void help(int exitcode)
            "-uuid %%08x-%%04x-%%04x-%%04x-%%012x specify machine UUID\n"
            "\n"
            "Network options:\n"
-           "-net nic[,vlan=n][,macaddr=addr][,model=type]\n"
+           "-net nic[,vlan=n][,macaddr=addr][,model=type][,name=str]\n"
            "                create a new Network Interface Card and connect it 
to VLAN 'n'\n"
 #ifdef CONFIG_SLIRP
-           "-net user[,vlan=n][,hostname=host]\n"
+           "-net user[,vlan=n][,name=str][,hostname=host]\n"
            "                connect the user mode network stack to VLAN 'n' 
and send\n"
            "                hostname 'host' to DHCP clients\n"
 #endif
 #ifdef _WIN32
-           "-net tap[,vlan=n],ifname=name\n"
+           "-net tap[,vlan=n][,name=str],ifname=name\n"
            "                connect the host TAP network interface to VLAN 
'n'\n"
 #else
-           "-net 
tap[,vlan=n][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n"
+           "-net 
tap[,vlan=n][,name=str][,fd=h][,ifname=name][,script=file][,downscript=dfile]\n"
            "                connect the host TAP network interface to VLAN 'n' 
and use the\n"
            "                network scripts 'file' (default=%s)\n"
            "                and 'dfile' (default=%s);\n"
            "                use '[down]script=no' to disable script 
execution;\n"
            "                use 'fd=h' to connect to an already opened TAP 
interface\n"
 #endif
-           "-net 
socket[,vlan=n][,fd=h][,listen=[host]:port][,connect=host:port]\n"
+           "-net 
socket[,vlan=n][,name=str][,fd=h][,listen=[host]:port][,connect=host:port]\n"
            "                connect the vlan 'n' to another VLAN using a 
socket connection\n"
-           "-net socket[,vlan=n][,fd=h][,mcast=maddr:port]\n"
+           "-net socket[,vlan=n][,name=str][,fd=h][,mcast=maddr:port]\n"
            "                connect the vlan 'n' to multicast maddr and port\n"
 #ifdef CONFIG_VDE
-           "-net 
vde[,vlan=n][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
+           "-net 
vde[,vlan=n][,name=str][,sock=socketpath][,port=n][,group=groupname][,mode=octalmode]\n"
            "                connect the vlan 'n' to port 'n' of a vde switch 
running\n"
            "                on host and listening for incoming connections on 
'socketpath'.\n"
            "                Use group 'groupname' and mode 'octalmode' to 
change default\n"
-- 
1.5.4.3





reply via email to

[Prev in Thread] Current Thread [Next in Thread]