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