[roll] Roll fuchsia [netstack3] Finer-grained IP, ICMP socket errors

Split the storage and computation of the cached information in an IP
socket from the storage and computation of the information which
comprises the definition of the socket. In the future, this will allow
us to update cached information when the state that it's based on
changes without duplicating code.

Right now, this lets us introduce new, finer-grained error types for
creating and sending on IP and ICMP sockets. In particular, it allows us
to create four buckets for errors:
- Errors which occur when computing the definition of an IP socket
  (e.g., picking a local IP address if one was not specified)
- The error which occurs when a socket with the given addresses already
  exists (currently, this is only for ICMP sockets, but will eventually
  be used for UDP and TCP sockets as well)
- Errors which occur when a socket becomes unroutable, which can happen
  either at creation time or when state is updated later which causes an
  existing socket to become unroutable
- Errors related to sending a packet (currently, just an MTU error)

Finer-grained error types increase the likelihood that consuming code
will be able to make use of error values exhaustively, handling every
possible error case.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/583207
Original-Revision: acba5aa8008bd8c982f23f7680996ea718a5f636
GitOrigin-RevId: 2f8a63a355d720b009e250ee742e7a534336bc0d
Change-Id: Ic687a25af27d1dded7d46481bd6de03ca0336254
1 file changed
tree: 6b0f27d0729084c2045d366081bb7e9c6db5423b
  1. garnet/
  2. infra/
  3. peridot/
  4. third_party/
  5. topaz/
  6. zircon/
  7. firmware
  8. flower
  9. jiri.lock
  10. minimal
  11. prebuilts
  12. README.md
  13. stem
  14. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance via the IRC channel #fuchsia on Freenode.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.