Send ARP/NDP request from emuldevice if unresolved
This commit is contained in:
parent
2614eb8645
commit
0fb81e4d8e
@ -303,17 +303,6 @@ void EmulDevice::sendArpRequest(quint32 tgtIp)
|
|||||||
if (!tgtIp)
|
if (!tgtIp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// FIXME: Now that the caller does a isResolved check, re-evaluate
|
|
||||||
// the below behaviour
|
|
||||||
// This function will be called once per unique stream - which
|
|
||||||
// may all have the same dst IP; even if dst IP are different the
|
|
||||||
// gateway for the different dst IP may all be same. However,
|
|
||||||
// we don't want to send duplicate ARP requests, so we check
|
|
||||||
// if the tgtIP is already in the cache (resolved or unresolved)
|
|
||||||
// and if so, we don't resend it
|
|
||||||
if (arpTable_.contains(tgtIp))
|
|
||||||
return;
|
|
||||||
|
|
||||||
reqPkt = new PacketBuffer;
|
reqPkt = new PacketBuffer;
|
||||||
reqPkt->reserve(encapSize());
|
reqPkt->reserve(encapSize());
|
||||||
pktData = reqPkt->put(28);
|
pktData = reqPkt->put(28);
|
||||||
@ -670,11 +659,6 @@ void EmulDevice::sendNeighborSolicit(UInt128 tgtIp)
|
|||||||
if (tgtIp == UInt128(0, 0))
|
if (tgtIp == UInt128(0, 0))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// Do we already have a NDP entry (resolved or unresolved)?
|
|
||||||
// If so, don't resend (see note in sendArpRequest())
|
|
||||||
if (ndpTable_.contains(tgtIp))
|
|
||||||
return;
|
|
||||||
|
|
||||||
// Form the solicited node address to be used as dstIp
|
// Form the solicited node address to be used as dstIp
|
||||||
// ff02::1:ffXX:XXXX/104
|
// ff02::1:ffXX:XXXX/104
|
||||||
dstIp = UInt128((quint64(0xff02) << 48),
|
dstIp = UInt128((quint64(0xff02) << 48),
|
||||||
|
Loading…
Reference in New Issue
Block a user