@@ -148,7 +148,7 @@ diddit:
*/
void if_start(Slirp *slirp)
{
- uint64_t now = qemu_clock_get_ns(QEMU_CLOCK_REALTIME);
+ uint64_t now = qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL);
bool from_batchq = false;
struct mbuf *ifm, *ifm_next, *ifqt;
@@ -581,7 +581,7 @@ void slirp_pollfds_poll(GArray *pollfds, int select_error)
return;
}
- curtime = qemu_clock_get_ms(QEMU_CLOCK_REALTIME);
+ curtime = qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL);
QTAILQ_FOREACH(slirp, &slirp_instances, entry) {
/*
@@ -908,7 +908,8 @@ static int if_encap4(Slirp *slirp, struct mbuf *ifm, struct ethhdr *eh,
ifm->resolution_requested = true;
/* Expire request and drop outgoing packet after 1 second */
- ifm->expiration_date = qemu_clock_get_ns(QEMU_CLOCK_REALTIME) + 1000000000ULL;
+ ifm->expiration_date =
+ qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + 1000000000ULL;
}
return 0;
} else {
@@ -935,7 +936,7 @@ static int if_encap6(Slirp *slirp, struct mbuf *ifm, struct ethhdr *eh,
ndp_send_ns(slirp, ip6h->ip_dst);
ifm->resolution_requested = true;
ifm->expiration_date =
- qemu_clock_get_ns(QEMU_CLOCK_REALTIME) + 1000000000ULL;
+ qemu_clock_get_ns(QEMU_CLOCK_VIRTUAL) + 1000000000ULL;
}
return 0;
} else {
Make all packets expiration time based on virtual clock. Suggested-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> --- slirp/if.c | 2 +- slirp/slirp.c | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-)