summaryrefslogtreecommitdiffstats
path: root/net/colo.c
diff options
context:
space:
mode:
authorPeter Maydell2021-06-11 10:21:48 +0200
committerPeter Maydell2021-06-11 10:21:48 +0200
commit894fc4fd670aaf04a67dc7507739f914ff4bacf2 (patch)
tree10b23f57efbea25f91d2cdbb630e83ecd0bce5fb /net/colo.c
parentMerge remote-tracking branch 'remotes/dgilbert-gitlab/tags/pull-migration-202... (diff)
parentFixed calculation error of pkt->header_size in fill_pkt_tcp_info() (diff)
downloadqemu-894fc4fd670aaf04a67dc7507739f914ff4bacf2.tar.gz
qemu-894fc4fd670aaf04a67dc7507739f914ff4bacf2.tar.xz
qemu-894fc4fd670aaf04a67dc7507739f914ff4bacf2.zip
Merge remote-tracking branch 'remotes/jasowang/tags/net-pull-request' into staging
# gpg: Signature made Fri 11 Jun 2021 03:54:51 BST # gpg: using RSA key EF04965B398D6211 # gpg: Good signature from "Jason Wang (Jason Wang on RedHat) <jasowang@redhat.com>" [marginal] # gpg: WARNING: This key is not certified with sufficiently trusted signatures! # gpg: It is not certain that the signature belongs to the owner. # Primary key fingerprint: 215D 46F4 8246 689E C77F 3562 EF04 965B 398D 6211 * remotes/jasowang/tags/net-pull-request: Fixed calculation error of pkt->header_size in fill_pkt_tcp_info() Add the function of colo_compare_cleanup Add a function named packet_new_nocopy for COLO. Remove migrate_set_block_enabled in checkpoint Optimize the function of filter_send Fix the qemu crash when guest shutdown during checkpoint Remove some duplicate trace code. netdev: add more commands to preconfig mode vhost-vdpa: remove the unused vhost_vdpa_get_acked_features() vhost-vdpa: don't initialize backend_features vhost-vdpa: map virtqueue notification area if possible vhost-vdpa: skip ram device from the IOTLB mapping Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Diffstat (limited to 'net/colo.c')
-rw-r--r--net/colo.c25
1 files changed, 17 insertions, 8 deletions
diff --git a/net/colo.c b/net/colo.c
index ef00609848..3a3e6e89a0 100644
--- a/net/colo.c
+++ b/net/colo.c
@@ -157,19 +157,28 @@ void connection_destroy(void *opaque)
Packet *packet_new(const void *data, int size, int vnet_hdr_len)
{
- Packet *pkt = g_slice_new(Packet);
+ Packet *pkt = g_slice_new0(Packet);
pkt->data = g_memdup(data, size);
pkt->size = size;
pkt->creation_ms = qemu_clock_get_ms(QEMU_CLOCK_HOST);
pkt->vnet_hdr_len = vnet_hdr_len;
- pkt->tcp_seq = 0;
- pkt->tcp_ack = 0;
- pkt->seq_end = 0;
- pkt->header_size = 0;
- pkt->payload_size = 0;
- pkt->offset = 0;
- pkt->flags = 0;
+
+ return pkt;
+}
+
+/*
+ * packet_new_nocopy will not copy data, so the caller can't release
+ * the data. And it will be released in packet_destroy.
+ */
+Packet *packet_new_nocopy(void *data, int size, int vnet_hdr_len)
+{
+ Packet *pkt = g_slice_new0(Packet);
+
+ pkt->data = data;
+ pkt->size = size;
+ pkt->creation_ms = qemu_clock_get_ms(QEMU_CLOCK_HOST);
+ pkt->vnet_hdr_len = vnet_hdr_len;
return pkt;
}