qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH for 7.0 V10 0/6] Add passthrough support to object with network processing function
@ 2021-11-12  3:11 Zhang Chen
  2021-11-12  3:11 ` [PATCH for 7.0 V10 1/6] qapi/net: Add IPFlowSpec and QMP command for filter passthrough Zhang Chen
                   ` (5 more replies)
  0 siblings, 6 replies; 10+ messages in thread
From: Zhang Chen @ 2021-11-12  3:11 UTC (permalink / raw)
  To: Jason Wang, Markus Armbruster, Dr. David Alan Gilbert,
	Daniel P. Berrangé, Eric Blake
  Cc: Zhang Chen, qemu-dev, Li Zhijian

This series add passthrough support frame to object with network
processing function. The first object is colo-compare.
Current colo-compare and net-filters attached on chardev or netdev.
It still need more fine-grained network control based on IPFlowSpec.
Due to some real user scenarios don't need to monitor all traffic.
And qemu net-filter also need function to more detailed flow control.
This series give user ability to passthrough kinds of COLO network stream.

For example, windows guest user want to enable windows remote desktop
to touch guest(UDP/TCP 3389), This case use UDP and TCP mixed, and the
tcp part payload always different caused by real desktop display
data(for guest time/ mouse display....).

Another case is some real user application will actively transmit information
include guest time part, primary guest send data with time 10:01.000,
At the same time secondary guest send data with time 10:01.001,
it will always trigger COLO checkpoint(live migrate) to drop guest performance.

  V10:
    - Rebased on uptream.
    - Fixed typo and addressed Markus's comments.

  V9:
    - Change the qmp command to passthrough-filter-add/del.
    - Remove the colo* tag function in net.c.
    - Fix some comment issues.
    - Fix some bugs.

  V8:
    - Add more comments about QAPI IPFlowSpec.
    - Fix grammar issue on colo-passthrough-add/delete.
    - Rebased on upstream.

  V7:
    - Keep some data structure stay in .c (patch 4/6).
    - Fix mutex init issue (patch 5/6).
    - Make the IPFlowSpec 'protocol' field optional (patch 1/6).
    - Add compare_passthrough_find function in net.c (patch 6/6).

  V6:
    - Change QAPI IPFlowSpec protocol from enum to str.
    - Use getprotobyname to handle the protocols.
    - Optimize code in net.

  V5:
    - Squash original 1-3 QAPI patches together.
                                                           


This series add passthrough support frame to object with network
processing function. The first object is colo-compare.

V3: Fix memory leak issue.

V2: Optimize HMP code from Dave's comment.


Zhang Chen (6):
  qapi/net: Add IPFlowSpec and QMP command for filter passthrough
  util/qemu-sockets.c: Add inet_parse_base to handle
    InetSocketAddressBase
  hmp-commands: Add new HMP command for filter passthrough
  net/colo-compare: Move data structure and define to .h file.
  net/colo-compare: Add passthrough list to CompareState
  net/net.c: Add handler for passthrough filter command

 hmp-commands.hx        |  26 ++++++
 include/monitor/hmp.h  |   2 +
 include/qemu/sockets.h |   1 +
 monitor/hmp-cmds.c     |  63 +++++++++++++
 net/colo-compare.c     | 160 ++++++++++----------------------
 net/colo-compare.h     |  98 ++++++++++++++++++++
 net/net.c              | 205 +++++++++++++++++++++++++++++++++++++++++
 qapi/net.json          |  73 +++++++++++++++
 util/qemu-sockets.c    |  14 +++
 9 files changed, 533 insertions(+), 109 deletions(-)

-- 
2.25.1



^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-11-19 16:04 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-11-12  3:11 [PATCH for 7.0 V10 0/6] Add passthrough support to object with network processing function Zhang Chen
2021-11-12  3:11 ` [PATCH for 7.0 V10 1/6] qapi/net: Add IPFlowSpec and QMP command for filter passthrough Zhang Chen
2021-11-19 15:44   ` Markus Armbruster
2021-11-12  3:11 ` [PATCH for 7.0 V10 2/6] util/qemu-sockets.c: Add inet_parse_base to handle InetSocketAddressBase Zhang Chen
2021-11-19 15:47   ` Markus Armbruster
2021-11-12  3:11 ` [PATCH for 7.0 V10 3/6] hmp-commands: Add new HMP command for filter passthrough Zhang Chen
2021-11-12  3:11 ` [PATCH for 7.0 V10 4/6] net/colo-compare: Move data structure and define to .h file Zhang Chen
2021-11-12  3:11 ` [PATCH for 7.0 V10 5/6] net/colo-compare: Add passthrough list to CompareState Zhang Chen
2021-11-12  3:11 ` [PATCH for 7.0 V10 6/6] net/net.c: Add handler for passthrough filter command Zhang Chen
2021-11-19 16:02   ` Markus Armbruster

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).