All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Zhang, Chen" <chen.zhang@intel.com>
To: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
Cc: Lukas Straub <lukasstraub2@web.de>,
	Li Zhijian <lizhijian@cn.fujitsu.com>,
	Jason Wang <jasowang@redhat.com>,
	qemu-dev <qemu-devel@nongnu.org>,
	Markus Armbruster <armbru@redhat.com>,
	Zhang Chen <zhangckid@gmail.com>
Subject: RE: [PATCH V4 4/7] hmp-commands: Add new HMP command for COLO passthrough
Date: Thu, 15 Apr 2021 10:51:32 +0000	[thread overview]
Message-ID: <dfd26b5e1d6c4aebb5b844dc9122d2d5@intel.com> (raw)
In-Reply-To: <YFsW7ZTXx/lAcVWW@work-vm>



> -----Original Message-----
> From: Dr. David Alan Gilbert <dgilbert@redhat.com>
> Sent: Wednesday, March 24, 2021 6:40 PM
> To: Zhang, Chen <chen.zhang@intel.com>
> Cc: Jason Wang <jasowang@redhat.com>; qemu-dev <qemu-
> devel@nongnu.org>; Eric Blake <eblake@redhat.com>; Markus Armbruster
> <armbru@redhat.com>; Li Zhijian <lizhijian@cn.fujitsu.com>; Zhang Chen
> <zhangckid@gmail.com>; Lukas Straub <lukasstraub2@web.de>
> Subject: Re: [PATCH V4 4/7] hmp-commands: Add new HMP command for
> COLO passthrough
> 
> * Zhang Chen (chen.zhang@intel.com) wrote:
> > Add hmp_colo_passthrough_add and hmp_colo_passthrough_del make
> user
> > can maintain COLO network passthrough list in human monitor.
> >
> > Signed-off-by: Zhang Chen <chen.zhang@intel.com>
> > ---
> >  hmp-commands.hx       | 26 ++++++++++++++++++++++++++
> >  include/monitor/hmp.h |  2 ++
> >  monitor/hmp-cmds.c    | 34 ++++++++++++++++++++++++++++++++++
> >  3 files changed, 62 insertions(+)
> >
> > diff --git a/hmp-commands.hx b/hmp-commands.hx index
> > d4001f9c5d..b67a5a04cb 100644
> > --- a/hmp-commands.hx
> > +++ b/hmp-commands.hx
> > @@ -1335,6 +1335,32 @@ SRST
> >    Remove host network device.
> >  ERST
> >
> > +    {
> > +        .name       = "colo_passthrough_add",
> > +        .args_type  =
> "protocol:s,id:s?,src_ip:s?,dst_ip:s?,src_port:i?,dst_port:i?",
> > +        .params     = "protocol [id] [src_ip] [dst_ip] [src_port] [dst_port]",
> 
> That ordering is a bit unnatural; it's normal to keep ip and port together;
> maybe this would be better as:
> 
>    protocol:s,id:s,src:s?,dst:s?
> 
> then pass src and dst through inet_parse to get your hostname and port ?

OK, already update to V5, please review it.

Thanks
Chen

> 
> Dave
> 
> > +        .help       = "Add network stream to colo passthrough list",
> > +        .cmd        = hmp_colo_passthrough_add,
> > +    },
> > +
> > +SRST
> > +``colo_passthrough_add``
> > +  Add network stream to colo passthrough list.
> > +ERST
> > +
> > +    {
> > +        .name       = "colo_passthrough_del",
> > +        .args_type  =
> "protocol:s,id:s?,src_ip:s?,dst_ip:s?,src_port:i?,dst_port:i?",
> > +        .params     = "protocol [id] [src_ip] [dst_ip] [src_port] [dst_port]",
> > +        .help       = "Delete network stream from colo passthrough list",
> > +        .cmd        = hmp_colo_passthrough_del,
> > +    },
> > +
> > +SRST
> > +``colo_passthrough_del``
> > +  Delete network stream from colo passthrough list.
> > +ERST
> > +
> >      {
> >          .name       = "object_add",
> >          .args_type  = "object:O",
> > diff --git a/include/monitor/hmp.h b/include/monitor/hmp.h index
> > ed2913fd18..3c4943b09f 100644
> > --- a/include/monitor/hmp.h
> > +++ b/include/monitor/hmp.h
> > @@ -81,6 +81,8 @@ void hmp_device_del(Monitor *mon, const QDict
> > *qdict);  void hmp_dump_guest_memory(Monitor *mon, const QDict
> > *qdict);  void hmp_netdev_add(Monitor *mon, const QDict *qdict);  void
> > hmp_netdev_del(Monitor *mon, const QDict *qdict);
> > +void hmp_colo_passthrough_add(Monitor *mon, const QDict *qdict);
> void
> > +hmp_colo_passthrough_del(Monitor *mon, const QDict *qdict);
> >  void hmp_getfd(Monitor *mon, const QDict *qdict);  void
> > hmp_closefd(Monitor *mon, const QDict *qdict);  void
> > hmp_sendkey(Monitor *mon, const QDict *qdict); diff --git
> > a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c index
> 3c88a4faef..b57e3430ab
> > 100644
> > --- a/monitor/hmp-cmds.c
> > +++ b/monitor/hmp-cmds.c
> > @@ -1668,6 +1668,40 @@ void hmp_netdev_del(Monitor *mon, const
> QDict *qdict)
> >      hmp_handle_error(mon, err);
> >  }
> >
> > +void hmp_colo_passthrough_add(Monitor *mon, const QDict *qdict) {
> > +    const char *prot = qdict_get_str(qdict, "protocol");
> > +    L4_Connection *l4_conn = g_new0(L4_Connection, 1);
> > +    Error *err = NULL;
> > +
> > +    l4_conn->id = g_strdup(qdict_get_try_str(qdict, "id"));
> > +    l4_conn->protocol = qapi_enum_parse(&IP_PROTOCOL_lookup, prot, -
> 1, &err);
> > +    l4_conn->src_ip = g_strdup(qdict_get_try_str(qdict, "src_ip"));
> > +    l4_conn->dst_ip = g_strdup(qdict_get_try_str(qdict, "dst_ip"));
> > +    l4_conn->src_port = qdict_get_try_int(qdict, "src_port", 0);
> > +    l4_conn->dst_port = qdict_get_try_int(qdict, "dst_port", 0);
> > +
> > +    qmp_colo_passthrough_add(l4_conn, &err);
> > +    hmp_handle_error(mon, err);
> > +}
> > +
> > +void hmp_colo_passthrough_del(Monitor *mon, const QDict *qdict) {
> > +    const char *prot = qdict_get_str(qdict, "protocol");
> > +    L4_Connection *l4_conn = g_new0(L4_Connection, 1);
> > +    Error *err = NULL;
> > +
> > +    l4_conn->id = g_strdup(qdict_get_try_str(qdict, "id"));
> > +    l4_conn->protocol = qapi_enum_parse(&IP_PROTOCOL_lookup, prot, -
> 1, &err);
> > +    l4_conn->src_ip = g_strdup(qdict_get_try_str(qdict, "src_ip"));
> > +    l4_conn->dst_ip = g_strdup(qdict_get_try_str(qdict, "dst_ip"));
> > +    l4_conn->src_port = qdict_get_try_int(qdict, "src_port", 0);
> > +    l4_conn->dst_port = qdict_get_try_int(qdict, "dst_port", 0);
> > +
> > +    qmp_colo_passthrough_del(l4_conn, &err);
> > +    hmp_handle_error(mon, err);
> > +}
> > +
> >  void hmp_object_add(Monitor *mon, const QDict *qdict)  {
> >      Error *err = NULL;
> > --
> > 2.25.1
> >
> --
> Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



  reply	other threads:[~2021-04-15 10:52 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-19  3:55 [PATCH V4 0/7] Bypass specific network traffic in COLO Zhang Chen
2021-03-19  3:55 ` [PATCH V4 1/7] qapi/net.json: Add IP_PROTOCOL definition Zhang Chen
2021-03-19 15:46   ` Markus Armbruster
2021-03-22  9:59     ` Zhang, Chen
2021-03-22 12:12       ` Markus Armbruster
2021-03-22 12:43       ` Daniel P. Berrangé
2021-03-23 20:01   ` Dr. David Alan Gilbert
2021-04-15 10:51     ` Zhang, Chen
2021-04-15 15:14       ` Markus Armbruster
2021-04-16  6:03         ` Zhang, Chen
2021-04-16  9:22           ` Markus Armbruster
2021-04-20 11:05             ` Dr. David Alan Gilbert
2021-04-20 15:20               ` Zhang, Chen
2021-03-19  3:55 ` [PATCH V4 2/7] qapi/net.json: Add L4_Connection definition Zhang Chen
2021-03-19 15:48   ` Markus Armbruster
2021-03-22 10:00     ` Zhang, Chen
2021-03-22 12:31       ` Markus Armbruster
2021-03-23  9:06         ` Zhang, Chen
2021-03-23  9:54           ` Markus Armbruster
2021-03-23 20:14             ` Dr. David Alan Gilbert
2021-03-24  6:47               ` Markus Armbruster
2021-03-24  6:51                 ` Markus Armbruster
2021-03-26  2:27                 ` Zhang, Chen
2021-03-24  0:59             ` Zhang, Chen
2021-03-19 15:53   ` Markus Armbruster
2021-03-24  6:56   ` Markus Armbruster
2021-03-19  3:55 ` [PATCH V4 3/7] qapi/net: Add new QMP command for COLO passthrough Zhang Chen
2021-03-19 16:03   ` Markus Armbruster
2021-03-22  9:59     ` Zhang, Chen
2021-03-22 12:16       ` Markus Armbruster
2021-03-23  9:06         ` Zhang, Chen
2021-03-22 12:36   ` Markus Armbruster
2021-03-23  9:19     ` Zhang, Chen
2021-03-23  9:58       ` Markus Armbruster
2021-03-30  3:38         ` Zhang, Chen
2021-04-06  8:01           ` Markus Armbruster
2021-04-08  3:24             ` Zhang, Chen
2021-03-19  3:55 ` [PATCH V4 4/7] hmp-commands: Add new HMP " Zhang Chen
2021-03-24 10:39   ` Dr. David Alan Gilbert
2021-04-15 10:51     ` Zhang, Chen [this message]
2021-04-16  1:21     ` Zhang, Chen
2021-03-19  3:55 ` [PATCH V4 5/7] net/colo-compare: Move data structure and define to .h file Zhang Chen
2021-03-24 11:02   ` Dr. David Alan Gilbert
2021-03-29  1:18     ` Zhang, Chen
2021-03-19  3:55 ` [PATCH V4 6/7] net/colo-compare: Add passthrough list to CompareState Zhang Chen
2021-03-19  3:55 ` [PATCH V4 7/7] net/net.c: Add handler for COLO passthrough connection Zhang Chen

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=dfd26b5e1d6c4aebb5b844dc9122d2d5@intel.com \
    --to=chen.zhang@intel.com \
    --cc=armbru@redhat.com \
    --cc=dgilbert@redhat.com \
    --cc=jasowang@redhat.com \
    --cc=lizhijian@cn.fujitsu.com \
    --cc=lukasstraub2@web.de \
    --cc=qemu-devel@nongnu.org \
    --cc=zhangckid@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.