On 2017年07月04日 14:53, Zhang Chen wrote:
If user use -device virtio-net-pci, virtio-net driver will add a header to raw net packet that colo-proxy can't handle it. COLO-proxy just focus on the packet payload, so we skip the virtio-net header to compare the sent packet that primary guest's to secondary guest's. V7: - p1: No change. - p2: Fix typo. Move old patch 04/10 to 02/10. Introduce a parameter for net_socket_rs_init(). - p3: Address comments split from origin 02/10. Rebase code. - p4: Remove some comments. Fix typo. Remove direction related codes, just get vnet_hdr_len from nf->netdev->vnet_hdr_len. - p5: Remove some comments. Fix typo. - p6: Origin 05/10. - p7: Address comments split from origin 06/10. - p8: Origin 06/10. - p9: Fix typo. origin 07/10. - p10: Origin 08/10. - p11: Remove some comments. Remove direction related codes, just get vnet_hdr_len from nf->netdev->vnet_hdr_len. - p12: Origin 10/10. V6: - p1: Remove the using_vnet_hdr, I will send a independent patchset about it. - p2: Change option input way from vnet_hdr=on/off to vnet_hdr_support. Use nf->direction to decide check nf->netdev->vnet_hdr_len or nf->netdev->peer->vnet_hdr_len. - p3: Change option input way from vnet_hdr=on/off to vnet_hdr_support. - p4: No change. - p5: No change. - p6: Change option input way from vnet_hdr=on/off to vnet_hdr_support. Fix commit log. - p7: No change. - p8: No change. - p9: Change option input way from vnet_hdr=on/off to vnet_hdr_support. Use nf->direction to decide check nf->netdev->vnet_hdr_len or nf->netdev->peer->vnet_hdr_len. - p10: New patch to add new example for the case needs vnet hdr. V5: - patch1: No change. - patch2: Keep the long line in qemu-option.hx. Squash patch2 into old patch3. Add more comments. Fix the return value. - patch3: Add more comments in commit log. - patch4: Add Suggested-by tag. Fix commit log. Move vnet_hdr to SocketReadState. - patch5: No change. - patch6: Squash old patch6 into this patch. - patch7: No change. - patch8: Remove the offset_all. - patch9: Squash old patch11 and the patch12. V4: - Add vnet_hdr option for filter-mirror, filter-redirector, filter-rewriter,colo-compare. - Use new design to impliment virtio-net support for colo-proxy. - Fix codestyle. - Remove unused option for filter-rewriter. - Add filter-rewriter virtio-net support. - Address other comments. Zhang Chen (12): net: Add vnet_hdr_len arguments in NetClientState net/net.c: Add vnet_hdr support in SocketReadState net/filter-mirror.c: Introduce parameter for filter_send() net/filter-mirror.c: Make filter mirror support vnet support. net/filter-mirror.c: Add new option to enable vnet support for filter-redirector net/colo.c: Make vnet_hdr_len as packet property net/colo-compare.c: Introduce parameter for compare_chr_send() net/colo-compare.c: Make colo-compare support vnet_hdr_len net/colo.c: Add vnet packet parse feature in colo-proxy net/colo-compare.c: Add vnet packet's tcp/udp/icmp compare net/filter-rewriter.c: Make filter-rewriter support vnet_hdr_len docs/colo-proxy.txt: Update colo-proxy usage of net driver with vnet_header docs/colo-proxy.txt | 26 ++++++++++++++++ include/net/net.h | 10 ++++-- net/colo-compare.c | 84 ++++++++++++++++++++++++++++++++++++++++++--------- net/colo.c | 9 +++--- net/colo.h | 4 ++- net/filter-mirror.c | 75 +++++++++++++++++++++++++++++++++++++++++---- net/filter-rewriter.c | 37 ++++++++++++++++++++++- net/net.c | 37 ++++++++++++++++++++--- net/socket.c | 8 ++--- qemu-options.hx | 19 ++++++------ 10 files changed, 262 insertions(+), 47 deletions(-)
Applied, thanks.