From: "Zhang, Chen" <chen.zhang@intel.com>
To: Markus Armbruster <armbru@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>,
"Dr. David Alan Gilbert" <dgilbert@redhat.com>,
Zhang Chen <zhangckid@gmail.com>
Subject: RE: [PATCH V4 3/7] qapi/net: Add new QMP command for COLO passthrough
Date: Tue, 23 Mar 2021 09:06:26 +0000 [thread overview]
Message-ID: <e9048fbea16f45e0bf57a55f79e55899@intel.com> (raw)
In-Reply-To: <87pmzr4c51.fsf@dusky.pond.sub.org>
> -----Original Message-----
> From: Markus Armbruster <armbru@redhat.com>
> Sent: Monday, March 22, 2021 8:16 PM
> To: Zhang, Chen <chen.zhang@intel.com>
> Cc: Lukas Straub <lukasstraub2@web.de>; Li Zhijian
> <lizhijian@cn.fujitsu.com>; Jason Wang <jasowang@redhat.com>; qemu-
> dev <qemu-devel@nongnu.org>; Dr. David Alan Gilbert
> <dgilbert@redhat.com>; Zhang Chen <zhangckid@gmail.com>
> Subject: Re: [PATCH V4 3/7] qapi/net: Add new QMP command for COLO
> passthrough
>
> "Zhang, Chen" <chen.zhang@intel.com> writes:
>
> >> -----Original Message-----
> >> From: Markus Armbruster <armbru@redhat.com>
> >> Sent: Saturday, March 20, 2021 12:03 AM
> >> To: Zhang, Chen <chen.zhang@intel.com>
> >> Cc: Jason Wang <jasowang@redhat.com>; qemu-dev <qemu-
> >> devel@nongnu.org>; Eric Blake <eblake@redhat.com>; Dr. David Alan
> >> Gilbert <dgilbert@redhat.com>; Li Zhijian <lizhijian@cn.fujitsu.com>;
> >> Lukas Straub <lukasstraub2@web.de>; Zhang Chen
> <zhangckid@gmail.com>
> >> Subject: Re: [PATCH V4 3/7] qapi/net: Add new QMP command for COLO
> >> passthrough
> >>
> >> Zhang Chen <chen.zhang@intel.com> writes:
> >>
> >> > Since the real user scenario does not need COLO to monitor all traffic.
> >> > Add colo-passthrough-add and colo-passthrough-del to maintain a
> >> > COLO network passthrough list.
> >> >
> >> > Signed-off-by: Zhang Chen <chen.zhang@intel.com>
> >> > ---
> >> > net/net.c | 10 ++++++++++
> >> > qapi/net.json | 40 ++++++++++++++++++++++++++++++++++++++++
> >> > 2 files changed, 50 insertions(+)
> >> >
> >> > diff --git a/net/net.c b/net/net.c
> >> > index 725a4e1450..7c7cefe0e0 100644
> >> > --- a/net/net.c
> >> > +++ b/net/net.c
> >> > @@ -1199,6 +1199,16 @@ void qmp_netdev_del(const char *id, Error
> >> **errp)
> >> > }
> >> > }
> >> >
> >> > +void qmp_colo_passthrough_add(L4_Connection *conn, Error **errp)
> {
> >> > + /* Setup passthrough connection */
> >>
> >> Do you mean to say
> >>
> >> /* TODO implement */
> >>
> >> ?
> >
> > Yes, I will input real code here in 7/7 patch.
>
> Use a TODO comment then.
>
> >>
> >> > +}
> >> > +
> >> > +void qmp_colo_passthrough_del(L4_Connection *conn, Error **errp)
> {
> >> > + /* Delete passthrough connection */ }
> >>
> >> Likewise.
> >>
> >> > +
> >> > static void netfilter_print_info(Monitor *mon, NetFilterState *nf) {
> >> > char *str;
> >> > diff --git a/qapi/net.json b/qapi/net.json index
> >> > cd4a8ed95e..ec7d3b1128 100644
> >> > --- a/qapi/net.json
> >> > +++ b/qapi/net.json
> >> > @@ -851,3 +851,43 @@
> >> > 'data': { 'protocol': 'IP_PROTOCOL', '*id': 'str', '*src_ip': 'str', '*dst_ip':
> 'str',
> >> > '*src_port': 'int', '*dst_port': 'int' } }
> >> >
> >> > +##
> >> > +# @colo-passthrough-add:
> >> > +#
> >> > +# Add passthrough entry according to customer's needs in COLO-
> compare.
> >>
> >> QEMU doesn't have customers, it has users :)
> >
> > Thanks note.
> >
> >>
> >> > +#
> >> > +# Returns: Nothing on success
> >> > +#
> >> > +# Since: 6.1
> >> > +#
> >> > +# Example:
> >> > +#
> >> > +# -> { "execute": "colo-passthrough-add",
> >> > +# "arguments": { "protocol": "tcp", "id": "object0", "src_ip":
> "192.168.1.1",
> >> > +# "dst_ip": "192.168.1.2", "src_port": 1234, "dst_port": 4321 } }
> >> > +# <- { "return": {} }
> >> > +#
> >> > +##
> >> > +{ 'command': 'colo-passthrough-add', 'boxed': true,
> >> > + 'data': 'L4_Connection' }
> >> > +
> >> > +##
> >> > +# @colo-passthrough-del:
> >> > +#
> >> > +# Delete passthrough entry according to customer's needs in COLO-
> compare.
> >> > +#
> >> > +# Returns: Nothing on success
> >> > +#
> >> > +# Since: 6.1
> >> > +#
> >> > +# Example:
> >> > +#
> >> > +# -> { "execute": "colo-passthrough-del",
> >> > +# "arguments": { "protocol": "tcp", "id": "object0", "src_ip":
> "192.168.1.1",
> >> > +# "dst_ip": "192.168.1.2", "src_port": 1234, "dst_port": 4321 } }
> >> > +# <- { "return": {} }
> >> > +#
> >> > +##
> >> > +{ 'command': 'colo-passthrough-del', 'boxed': true,
> >> > + 'data': 'L4_Connection' }
> >> > +
> >>
> >> To make sense of this, I have to refer back to PATCH 1 and 2:
> >>
> >> { 'enum': 'IP_PROTOCOL', 'data': [ 'tcp', 'udp', 'dccp', 'sctp', 'udplite',
> >> 'icmp', 'igmp', 'ipv6' ] }
> >>
> >> { 'struct': 'L4_Connection',
> >> 'data': { 'protocol': 'IP_PROTOCOL', '*id': 'str', '*src_ip': 'str', '*dst_ip':
> 'str',
> >> '*src_port': 'int', '*dst_port': 'int' } }
> >>
> >> Please squash the three patches together.
> >
> > OK.
> >
> >>
> >> I figure colo-passthrough-add adds some kind of packet matching
> >> thingy that can match packets by source IP, source port, destination
> >> IP, destination port, and protocol. Correct?
> >
> > Yes, you are right.
> >
> >>
> >> The protocol is mandatory, all others are optional. What does it
> >> mean to omit an optional one? Match all?
> >
> > Yes, match all. The idea from Jason Wang, for example:
> > User just set the protocol/source IP(tcp/192.168.1.1) , others empty.
> > The rule will bypass all the TCP packet from the source IP.
>
> Work this into the doc comment, please.
OK.
>
> >> I have no idea what @id is supposed to mean. Please explain intended
> use.
> >
> > The @id means packet hander in Qemu. Because not all the guest network
> packet into the colo-compare module, the net-filters are same cases.
> > There modules attach to NIC or chardev socket to work, VM maybe have
> multi modules running. So we use the ID to set the rule to the specific
> module.
>
> I'm not sure I understand, but then I'm a QEMU networking ignoramus :)
>
> Work it into the doc comment.
Sure, I will add more comments in qapi/net.json next version.
Thanks
Chen
>
> > Thanks
> > Chen
> >
> >>
> >> I'm ignoring colo-passthrough-del for now, because I feel need to
> >> understand -add first.
next prev parent reply other threads:[~2021-03-23 9:08 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 [this message]
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
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=e9048fbea16f45e0bf57a55f79e55899@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 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).