[roll] Roll fuchsia [ffx][forward] Add machine-readable output support

This change adds support for machine-readable (`--machine json`) output
to `ffx forward`. This allows other tools to reliably parse the output
of the forwarding command, including the specific host and target ports
being used. This is especially useful when an ephemeral port (specified
as port `0`) is requested.

To support this, `ForwardSpec`, `ProtoSpec`, and `Direction` are now
serializable, and a new `ForwardMessage` enum is introduced for the
machine output schema.

Test: Manually ran `ffx forward --machine json tcp:0:22` and verified the
output JSON contained the dynamically allocated host port. Added new unit
and integration tests to verify the schema and the logic for resolving
ephemeral ports.

Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1441632
Original-Revision: 64e289a0f15e885bd383808b08021e71d6351a8a
GitOrigin-RevId: 30eb7acd546dbc5af4fdd9763398b2b5bb1a8bd7
Change-Id: I04b3f452aabbff78f9930b1f59af670d0666bbce
1 file changed
tree: 8ad2fc1d91c9eefd0ad8128e202a795d3810e106
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. flower
  6. jiri.lock
  7. MILESTONE
  8. minimal
  9. prebuilts
  10. README.md
  11. stem
  12. 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 in one of the communication channels documented at get involved.

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.