qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Aurelien Jarno <aurelien@aurel32.net>
To: qemu-devel@nongnu.org
Cc: Mark McLoughlin <markmc@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 5/5] Add a -net name=foo parameter
Date: Mon, 15 Dec 2008 00:48:35 +0100	[thread overview]
Message-ID: <20081214234835.GC8523@volta.aurel32.net> (raw)
In-Reply-To: <1229093191-20618-5-git-send-email-markmc@redhat.com>

On Fri, Dec 12, 2008 at 02:46:31PM +0000, Mark McLoughlin wrote:
> 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 <markmc@redhat.com>
> ---
>  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 +-

Looks like you have forget to convert at least hw/stellaris_enet.c, so
the code doesn't compile. Otherwise the series looks good.

>  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
>  
> -@item -net nic[,vlan=@var{n}][,macaddr=@var{addr}][,model=@var{type}]
> +@item -net nic[,vlan=@var{n}][,macaddr=@var{addr}][,model=@var{type}][,name=@var{name}]
>  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.
>  
> -@item -net user[,vlan=@var{n}][,hostname=@var{name}]
> +@item -net user[,vlan=@var{n}][,hostname=@var{name}][,name=@var{name}]
>  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.
>  
> -@item -net tap[,vlan=@var{n}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]
> +@item -net tap[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,ifname=@var{name}][,script=@var{file}][,downscript=@var{dfile}]
>  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
>  
>  
> -@item -net socket[,vlan=@var{n}][,fd=@var{h}][,listen=[@var{host}]:@var{port}][,connect=@var{host}:@var{port}]
> +@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,listen=[@var{host}]:@var{port}][,connect=@var{host}:@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
>  
> -@item -net socket[,vlan=@var{n}][,fd=@var{h}][,mcast=@var{maddr}:@var{port}]
> +@item -net socket[,vlan=@var{n}][,name=@var{name}][,fd=@var{h}][,mcast=@var{maddr}:@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
>  
> -@item -net vde[,vlan=@var{n}][,sock=@var{socketpath}][,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
> +@item -net vde[,vlan=@var{n}][,name=@var{name}][,sock=@var{socketpath}][,port=@var{n}][,group=@var{groupname}][,mode=@var{octalmode}]
>  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
> 
> 
> 
> 

-- 
  .''`.  Aurelien Jarno	            | GPG: 1024D/F1BCDB73
 : :' :  Debian developer           | Electrical Engineer
 `. `'   aurel32@debian.org         | aurelien@aurel32.net
   `-    people.debian.org/~aurel32 | www.aurel32.net

  reply	other threads:[~2008-12-14 23:48 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-09 10:55 [Qemu-devel] [PATCH 0/4] Add nic link up/down emulation to e1000 Mark McLoughlin
2008-12-09 10:55 ` [Qemu-devel] [PATCH 1/4] Add 'set_link' monitor command Mark McLoughlin
2008-12-09 10:55   ` [Qemu-devel] [PATCH 2/4] Add device index to 'info network' output Mark McLoughlin
2008-12-09 10:55     ` [Qemu-devel] [PATCH 3/4] Allow devices be notified of link status change Mark McLoughlin
2008-12-09 10:55       ` [Qemu-devel] [PATCH 4/4] Implement e1000 link status Mark McLoughlin
2008-12-09 15:04     ` [Qemu-devel] Re: [PATCH 2/4] Add device index to 'info network' output Anthony Liguori
2008-12-09 15:01   ` [Qemu-devel] Re: [PATCH 1/4] Add 'set_link' monitor command Anthony Liguori
2008-12-12 14:45     ` Mark McLoughlin
2008-12-12 14:46       ` [Qemu-devel] [PATCH 1/5] Add a model string to VLANClientState Mark McLoughlin
2008-12-12 14:46         ` [Qemu-devel] [PATCH 2/5] Assign a name to each VLAN client Mark McLoughlin
2008-12-12 14:46           ` [Qemu-devel] [PATCH 3/5] Fixup info_str formatting Mark McLoughlin
2008-12-12 14:46             ` [Qemu-devel] [PATCH 4/5] Add qemu_format_nic_info_str() Mark McLoughlin
2008-12-12 14:46               ` [Qemu-devel] [PATCH 5/5] Add a -net name=foo parameter Mark McLoughlin
2008-12-14 23:48                 ` Aurelien Jarno [this message]
2009-01-06 14:59       ` [Qemu-devel] Re: [PATCH 1/4] Add 'set_link' monitor command Mark McLoughlin
2009-01-06 15:00         ` [Qemu-devel] [PATCH 1/6] Add a model string to VLANClientState Mark McLoughlin
2009-01-06 15:00           ` [Qemu-devel] [PATCH 2/6] Assign a name to each VLAN client Mark McLoughlin
2009-01-06 15:00             ` [Qemu-devel] [PATCH 3/6] Fixup info_str formatting Mark McLoughlin
2009-01-06 15:00               ` [Qemu-devel] [PATCH 4/6] Add qemu_format_nic_info_str() Mark McLoughlin
2009-01-06 15:00                 ` [Qemu-devel] [PATCH 5/6] add missing MAC address to info_str for some NICs Mark McLoughlin
2009-01-06 15:00                   ` [Qemu-devel] [PATCH 6/6] Add a -net name=foo parameter Mark McLoughlin
2009-01-07 17:49           ` [Qemu-devel] Re: [PATCH 1/6] Add a model string to VLANClientState Anthony Liguori
2008-12-09 11:23 ` [Qemu-devel] [PATCH 0/4] Add nic link up/down emulation to e1000 Daniel P. Berrange
2008-12-09 13:57   ` Dor Laor
2008-12-09 15:06 ` [Qemu-devel] " Anthony Liguori
2008-12-10  8:53   ` Avi Kivity

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081214234835.GC8523@volta.aurel32.net \
    --to=aurelien@aurel32.net \
    --cc=markmc@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).