diff options
author | gVisor bot <gvisor-bot@google.com> | 2021-01-19 20:27:01 +0000 |
---|---|---|
committer | gVisor bot <gvisor-bot@google.com> | 2021-01-19 20:27:01 +0000 |
commit | a0340632a1440c8864527cd6a09aa14a272ec8d3 (patch) | |
tree | 37c6f5232b621230749cfb293d6ad4719d60424d /pkg/tcpip/network/arp | |
parent | 1578e225d816fa47899c4e43d29ee87e018a0dc9 (diff) | |
parent | a2ec1932c9b76d80d3af93aa74acf945829cd582 (diff) |
Merge release-20210112.0-43-ga2ec1932c (automated)
Diffstat (limited to 'pkg/tcpip/network/arp')
-rw-r--r-- | pkg/tcpip/network/arp/arp.go | 24 |
1 files changed, 9 insertions, 15 deletions
diff --git a/pkg/tcpip/network/arp/arp.go b/pkg/tcpip/network/arp/arp.go index 3259d052f..d54e7fe86 100644 --- a/pkg/tcpip/network/arp/arp.go +++ b/pkg/tcpip/network/arp/arp.go @@ -138,23 +138,17 @@ func (e *endpoint) HandlePacket(pkt *stack.PacketBuffer) { stats.RequestsReceived.Increment() localAddr := tcpip.Address(h.ProtocolAddressTarget()) - if e.nud == nil { - if e.linkAddrCache.CheckLocalAddress(e.nic.ID(), header.IPv4ProtocolNumber, localAddr) == 0 { - stats.RequestsReceivedUnknownTargetAddress.Increment() - return // we have no useful answer, ignore the request - } + if e.protocol.stack.CheckLocalAddress(e.nic.ID(), header.IPv4ProtocolNumber, localAddr) == 0 { + stats.RequestsReceivedUnknownTargetAddress.Increment() + return // we have no useful answer, ignore the request + } - addr := tcpip.Address(h.ProtocolAddressSender()) - linkAddr := tcpip.LinkAddress(h.HardwareAddressSender()) - e.linkAddrCache.AddLinkAddress(e.nic.ID(), addr, linkAddr) - } else { - if e.protocol.stack.CheckLocalAddress(e.nic.ID(), header.IPv4ProtocolNumber, localAddr) == 0 { - stats.RequestsReceivedUnknownTargetAddress.Increment() - return // we have no useful answer, ignore the request - } + remoteAddr := tcpip.Address(h.ProtocolAddressSender()) + remoteLinkAddr := tcpip.LinkAddress(h.HardwareAddressSender()) - remoteAddr := tcpip.Address(h.ProtocolAddressSender()) - remoteLinkAddr := tcpip.LinkAddress(h.HardwareAddressSender()) + if e.nud == nil { + e.linkAddrCache.AddLinkAddress(e.nic.ID(), remoteAddr, remoteLinkAddr) + } else { e.nud.HandleProbe(remoteAddr, ProtocolNumber, remoteLinkAddr, e.protocol) } |