Delayed IP packets

In the current implementation, if Slirp tries to send an IP packet to a client
with an unknown hardware address, the packet is simply dropped and an ARP
request is sent (if_encap in slirp/slirp.c).

With this patch, Slirp will send the ARP request, re-queue the packet and try
to send it later. The packet is dropped after one second if the ARP reply is
not received.

Signed-off-by: Fabien Chouteau <chouteau@adacore.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
This commit is contained in:
Fabien Chouteau
2011-08-01 18:18:37 +02:00
committed by Jan Kiszka
parent 1a0ca1e1f6
commit 1ab74cea06
5 changed files with 69 additions and 37 deletions

View File

@@ -86,6 +86,8 @@ struct mbuf {
char m_dat_[1]; /* ANSI don't like 0 sized arrays */
char *m_ext_;
} M_dat;
bool arp_requested;
uint64_t expiration_date;
};
#define m_next m_hdr.mh_next