[netstack] Fix failing UDP tests

Test UDP writes to an IPv6 network layer were leading to the incorrect
destination network address to be written to the link layer. This
behavior did not manifest in IPv4 write. Since IPv6 does not need ARP to
resolve link addresses, but IPv4 does, the IPv6 writes were causing a
Solicit-Node packet, with a Solicit-Node destination network address, to
be written before the data packet, leading to failing tests. This change
fixes this problem by adding test link address mappings to the
LinkResolverCache, obviating the need for IPv6 to attempt a link address
resolution.

test: go test passes

NET-555

Change-Id: Ic81f7aa4d691fbfe5d4eb66ae7513092bb1d226a
2 files changed
tree: 5270c1b56843fa238537bcbf20d95eb82158ea5e
  1. dhcp/
  2. dns/
  3. ilist/
  4. sleep/
  5. tcpip/
  6. tmutex/
  7. waiter/
  8. AUTHORS
  9. CONTRIBUTING.md
  10. CONTRIBUTORS
  11. LICENSE
  12. README.fuchsia
  13. README.md
README.md

Netstack

Netstack is a network stack written in Go.

Getting started

Try it out on Linux by installing the tun_tcp_echo demo:

go install github.com/google/netstack/tcpip/sample/tun_tcp_echo

Create a TUN device with:

[sudo] ip tuntap add user <username> mode tun <device-name>
[sudo] ip link set <device-name> up
[sudo] ip addr add <ipv4-address>/<mask-length> dev <device-name>

Then run with:

tun_tcp_echo <device-name> <ipv4-address> <port>

Contributions

We would love to accept contributions, but we have not yet worked out how to handle them. Please contact us before sending any pull requests.

Whatever we do decide on will require signing the Google Contributor License. Please see CONTRIBUTING.md for more details.

Disclaimer

This is not an official Google product (experimental or otherwise), it is just code that happens to be owned by Google.