qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH v1 6/8] net: Remove the deprecated 'host_net_add


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH v1 6/8] net: Remove the deprecated 'host_net_add' and 'host_net_remove' HMP commands
Date: Mon, 19 Feb 2018 17:13:26 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.6.0

On 19/02/2018 10:15, Thomas Huth wrote:
> They are deprecated since QEMU v2.10, and so far nobody complained that
> these commands are still necessary for any reason - and since you can use
> 'netdev_add' and 'netdev_remove' instead, there also should not be any
> real reason. Since they are also standing in the way for the upcoming
> 'vlan' clean-up, it's now time to remove them.
> 
> Signed-off-by: Thomas Huth <address@hidden>

Reviewed-by: Paolo Bonzini <address@hidden>


> ---
>  hmp-commands.hx  | 30 ------------------
>  hmp.h            |  3 --
>  monitor.c        | 61 ------------------------------------
>  net/net.c        | 94 
> --------------------------------------------------------
>  qemu-doc.texi    | 10 ------
>  tests/test-hmp.c |  2 --
>  6 files changed, 200 deletions(-)
> 
> diff --git a/hmp-commands.hx b/hmp-commands.hx
> index d26eb41..964eb51 100644
> --- a/hmp-commands.hx
> +++ b/hmp-commands.hx
> @@ -1291,36 +1291,6 @@ Inject PCIe AER error
>  ETEXI
>  
>      {
> -        .name       = "host_net_add",
> -        .args_type  = "device:s,opts:s?",
> -        .params     = "tap|user|socket|vde|netmap|bridge|vhost-user|dump 
> [options]",
> -        .help       = "add host VLAN client (deprecated, use netdev_add 
> instead)",
> -        .cmd        = hmp_host_net_add,
> -        .command_completion = host_net_add_completion,
> -    },
> -
> -STEXI
> address@hidden host_net_add
> address@hidden host_net_add
> -Add host VLAN client. Deprecated, please use @code{netdev_add} instead.
> -ETEXI
> -
> -    {
> -        .name       = "host_net_remove",
> -        .args_type  = "vlan_id:i,device:s",
> -        .params     = "vlan_id name",
> -        .help       = "remove host VLAN client (deprecated, use netdev_del 
> instead)",
> -        .cmd        = hmp_host_net_remove,
> -        .command_completion = host_net_remove_completion,
> -    },
> -
> -STEXI
> address@hidden host_net_remove
> address@hidden host_net_remove
> -Remove host VLAN client. Deprecated, please use @code{netdev_del} instead.
> -ETEXI
> -
> -    {
>          .name       = "netdev_add",
>          .args_type  = "netdev:O",
>          .params     = 
> "[user|tap|socket|vde|bridge|hubport|netmap|vhost-user],id=str[,prop=value][,...]",
> diff --git a/hmp.h b/hmp.h
> index 1143db4..b897338 100644
> --- a/hmp.h
> +++ b/hmp.h
> @@ -132,9 +132,6 @@ void migrate_set_capability_completion(ReadLineState *rs, 
> int nb_args,
>                                         const char *str);
>  void migrate_set_parameter_completion(ReadLineState *rs, int nb_args,
>                                        const char *str);
> -void host_net_add_completion(ReadLineState *rs, int nb_args, const char 
> *str);
> -void host_net_remove_completion(ReadLineState *rs, int nb_args,
> -                                const char *str);
>  void delvm_completion(ReadLineState *rs, int nb_args, const char *str);
>  void loadvm_completion(ReadLineState *rs, int nb_args, const char *str);
>  void hmp_rocker(Monitor *mon, const QDict *qdict);
> diff --git a/monitor.c b/monitor.c
> index f499250..4fcfc2e 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -3574,67 +3574,6 @@ void migrate_set_parameter_completion(ReadLineState 
> *rs, int nb_args,
>      }
>  }
>  
> -void host_net_add_completion(ReadLineState *rs, int nb_args, const char *str)
> -{
> -    int i;
> -    size_t len;
> -    if (nb_args != 2) {
> -        return;
> -    }
> -    len = strlen(str);
> -    readline_set_completion_index(rs, len);
> -    for (i = 0; host_net_devices[i]; i++) {
> -        if (!strncmp(host_net_devices[i], str, len)) {
> -            readline_add_completion(rs, host_net_devices[i]);
> -        }
> -    }
> -}
> -
> -void host_net_remove_completion(ReadLineState *rs, int nb_args, const char 
> *str)
> -{
> -    NetClientState *ncs[MAX_QUEUE_NUM];
> -    int count, i, len;
> -
> -    len = strlen(str);
> -    readline_set_completion_index(rs, len);
> -    if (nb_args == 2) {
> -        count = qemu_find_net_clients_except(NULL, ncs,
> -                                             NET_CLIENT_DRIVER_NONE,
> -                                             MAX_QUEUE_NUM);
> -        for (i = 0; i < MIN(count, MAX_QUEUE_NUM); i++) {
> -            int id;
> -            char name[16];
> -
> -            if (net_hub_id_for_client(ncs[i], &id)) {
> -                continue;
> -            }
> -            snprintf(name, sizeof(name), "%d", id);
> -            if (!strncmp(str, name, len)) {
> -                readline_add_completion(rs, name);
> -            }
> -        }
> -        return;
> -    } else if (nb_args == 3) {
> -        count = qemu_find_net_clients_except(NULL, ncs,
> -                                             NET_CLIENT_DRIVER_NIC,
> -                                             MAX_QUEUE_NUM);
> -        for (i = 0; i < MIN(count, MAX_QUEUE_NUM); i++) {
> -            int id;
> -            const char *name;
> -
> -            if (ncs[i]->info->type == NET_CLIENT_DRIVER_HUBPORT ||
> -                net_hub_id_for_client(ncs[i], &id)) {
> -                continue;
> -            }
> -            name = ncs[i]->name;
> -            if (!strncmp(str, name, len)) {
> -                readline_add_completion(rs, name);
> -            }
> -        }
> -        return;
> -    }
> -}
> -
>  static void vm_completion(ReadLineState *rs, const char *str)
>  {
>      size_t len;
> diff --git a/net/net.c b/net/net.c
> index af0b3e7..fe29cfa 100644
> --- a/net/net.c
> +++ b/net/net.c
> @@ -60,25 +60,6 @@
>  static VMChangeStateEntry *net_change_state_entry;
>  static QTAILQ_HEAD(, NetClientState) net_clients;
>  
> -const char *host_net_devices[] = {
> -    "tap",
> -    "socket",
> -#ifdef CONFIG_NET_BRIDGE
> -    "bridge",
> -#endif
> -#ifdef CONFIG_NETMAP
> -    "netmap",
> -#endif
> -#ifdef CONFIG_SLIRP
> -    "user",
> -#endif
> -#ifdef CONFIG_VDE
> -    "vde",
> -#endif
> -    "vhost-user",
> -    NULL,
> -};
> -
>  /***********************************************************/
>  /* network device redirectors */
>  
> @@ -1174,81 +1155,6 @@ static int net_client_init(QemuOpts *opts, bool 
> is_netdev, Error **errp)
>      return ret;
>  }
>  
> -
> -static int net_host_check_device(const char *device)
> -{
> -    int i;
> -    for (i = 0; host_net_devices[i]; i++) {
> -        if (!strncmp(host_net_devices[i], device,
> -                     strlen(host_net_devices[i]))) {
> -            return 1;
> -        }
> -    }
> -
> -    return 0;
> -}
> -
> -void hmp_host_net_add(Monitor *mon, const QDict *qdict)
> -{
> -    const char *device = qdict_get_str(qdict, "device");
> -    const char *opts_str = qdict_get_try_str(qdict, "opts");
> -    Error *local_err = NULL;
> -    QemuOpts *opts;
> -    static bool warned;
> -
> -    if (!warned && !qtest_enabled()) {
> -        error_report("host_net_add is deprecated, use netdev_add instead");
> -        warned = true;
> -    }
> -
> -    if (!net_host_check_device(device)) {
> -        monitor_printf(mon, "invalid host network device %s\n", device);
> -        return;
> -    }
> -
> -    opts = qemu_opts_parse_noisily(qemu_find_opts("net"),
> -                                   opts_str ? opts_str : "", false);
> -    if (!opts) {
> -        return;
> -    }
> -
> -    qemu_opt_set(opts, "type", device, &error_abort);
> -
> -    net_client_init(opts, false, &local_err);
> -    if (local_err) {
> -        error_report_err(local_err);
> -        monitor_printf(mon, "adding host network device %s failed\n", 
> device);
> -    }
> -}
> -
> -void hmp_host_net_remove(Monitor *mon, const QDict *qdict)
> -{
> -    NetClientState *nc;
> -    int vlan_id = qdict_get_int(qdict, "vlan_id");
> -    const char *device = qdict_get_str(qdict, "device");
> -    static bool warned;
> -
> -    if (!warned && !qtest_enabled()) {
> -        error_report("host_net_remove is deprecated, use netdev_del 
> instead");
> -        warned = true;
> -    }
> -
> -    nc = net_hub_find_client_by_name(vlan_id, device);
> -    if (!nc) {
> -        error_report("Host network device '%s' on hub '%d' not found",
> -                     device, vlan_id);
> -        return;
> -    }
> -    if (nc->info->type == NET_CLIENT_DRIVER_NIC) {
> -        error_report("invalid host network device '%s'", device);
> -        return;
> -    }
> -
> -    qemu_del_net_client(nc->peer);
> -    qemu_del_net_client(nc);
> -    qemu_opts_del(qemu_opts_find(qemu_find_opts("net"), device));
> -}
> -
>  void netdev_add(QemuOpts *opts, Error **errp)
>  {
>      net_client_init(opts, true, errp);
> diff --git a/qemu-doc.texi b/qemu-doc.texi
> index 55954b0..865160d 100644
> --- a/qemu-doc.texi
> +++ b/qemu-doc.texi
> @@ -2758,16 +2758,6 @@ by the ``convert -l snapshot_param'' argument instead.
>  "autoload" parameter is now ignored. All bitmaps are automatically loaded
>  from qcow2 images.
>  
> address@hidden System emulator human monitor commands
> -
> address@hidden host_net_add (since 2.10.0)
> -
> -The ``host_net_add'' command is replaced by the ``netdev_add'' command.
> -
> address@hidden host_net_remove (since 2.10.0)
> -
> -The ``host_net_remove'' command is replaced by the ``netdev_del'' command.
> -
>  @section System emulator devices
>  
>  @subsection ivshmem (since 2.6.0)
> diff --git a/tests/test-hmp.c b/tests/test-hmp.c
> index 5b7e447..5352c9c 100644
> --- a/tests/test-hmp.c
> +++ b/tests/test-hmp.c
> @@ -37,10 +37,8 @@ static const char *hmp_cmds[] = {
>      "dump-guest-memory /dev/null 0 4096",
>      "dump-guest-memory /dev/null",
>      "gdbserver",
> -    "host_net_add user id=net0",
>      "hostfwd_add tcp::43210-:43210",
>      "hostfwd_remove tcp::43210-:43210",
> -    "host_net_remove 0 net0",
>      "i /w 0",
>      "log all",
>      "log none",
> 




reply via email to

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