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.
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 (10): net: Add vnet_hdr_len arguments in NetClientState 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/net.c: Add vnet_hdr support in SocketReadState net/colo.c: Make vnet_hdr_len as packet property 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 | 7 +++- net/colo-compare.c | 86 +++++++++++++++++++++++++++++++++++++------- net/colo.c | 9 ++--- net/colo.h | 4 ++- net/filter-mirror.c | 98 ++++++++++++++++++++++++++++++++++++++++++++++++--- net/filter-rewriter.c | 51 ++++++++++++++++++++++++++- net/net.c | 34 ++++++++++++++++-- qemu-options.hx | 19 +++++----- 9 files changed, 296 insertions(+), 38 deletions(-) -- 2.7.4