aboutsummaryrefslogtreecommitdiff
path: root/slirp
diff options
context:
space:
mode:
authorPavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru>2018-09-12 11:20:07 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2018-10-02 19:08:59 +0200
commit775a412bf83f6bc0c5c02091ee06cf649b34c593 (patch)
tree9b07e5fb57791ba8edf67b394de8449a4e99cc4c /slirp
parent87f4fe7653baf55b5c2f2753fe6003f473c07342 (diff)
downloadqemu-775a412bf83f6bc0c5c02091ee06cf649b34c593.zip
qemu-775a412bf83f6bc0c5c02091ee06cf649b34c593.tar.gz
qemu-775a412bf83f6bc0c5c02091ee06cf649b34c593.tar.bz2
slirp: fix ipv6 timers
ICMP implementation for IPv6 uses timers based on virtual clock. This is incorrect because this service is not related to the guest state, and its events should not be recorded and replayed. This patch changes using virtual clock to the new virtual_ext clock. Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgaluk@ispras.ru> Message-Id: <20180912082007.3228.91491.stgit@pasha-VirtualBox> Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'slirp')
-rw-r--r--slirp/ip6_icmp.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/slirp/ip6_icmp.c b/slirp/ip6_icmp.c
index ee333d0..3f41187 100644
--- a/slirp/ip6_icmp.c
+++ b/slirp/ip6_icmp.c
@@ -17,7 +17,7 @@ static void ra_timer_handler(void *opaque)
{
Slirp *slirp = opaque;
timer_mod(slirp->ra_timer,
- qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + NDP_Interval);
+ qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL_EXT) + NDP_Interval);
ndp_send_ra(slirp);
}
@@ -27,9 +27,10 @@ void icmp6_init(Slirp *slirp)
return;
}
- slirp->ra_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL, ra_timer_handler, slirp);
+ slirp->ra_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL_EXT,
+ ra_timer_handler, slirp);
timer_mod(slirp->ra_timer,
- qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + NDP_Interval);
+ qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL_EXT) + NDP_Interval);
}
void icmp6_cleanup(Slirp *slirp)