From f26c2aa14742375978f9d3353fb6e34bf382fa4f Mon Sep 17 00:00:00 2001 From: KKRainbow <443152178@qq.com> Date: Sun, 6 Sep 2026 13:35:02 +0800 Subject: [PATCH] feat(wasi): run EasyTier core on Cloudflare Workers and browsers (#2548) * fix(core): normalize secure keys for TOML instances * feat(wasi): run core behind Cloudflare WebSockets Introduce the Cloudflare Worker WASI host that runs the EasyTier core behind host-upgraded WebSockets. - Worker package scaffold (wrangler Durable Object, build-wasm script, vitest config) and core-runtime/websocket-host/data-plane runtime. - WASI host WebSocket tunnel ABI (imports, adapter, runtime exports) with bounded receive memory and bounded admission queue. - Route host sockets through the portable listener plan (HostListenerRegistration, listener queue, admission handler split). - Build the WASM guest with the aes-gcm feature so secure peer sessions have their cipher available. * feat(wasi): add outbound browser client runtime Add the outbound-only WASI runtime and browser connector host so browser pages can dial EasyTier peers through WebSocket relays. - CoreConnectivityMode::{OutboundOnly, InboundOnly} gating for listeners, discovery, and direct connectivity modules. - ExternalTunnelConnector plumbing through composite/connector_host/ manual for browser WebSocket dials. - Browser/Node smoke entries with shared helpers (smoke-shared.ts). * feat(wasi): extend browser data plane with TCP half-close Add the data-plane pieces the browser runtime needs for full-duplex TCP streams behind host WebSockets: - Guest TCP shutdown_write operation with submit/take ABI pair (DATA_PLANE_ABI_VERSION 3 -> 4) and smoltcp half-close support. - Worker data-plane TCP listener/stream plumbing and core-runtime listener registration. - Unit coverage for the new session ops and listener wiring. * refactor(wasi): make host tunnel ABI transport-neutral Replace WebSocket-specific core and WASI boundaries with a message-oriented Host Tunnel interface. Keep WebSocket framing and text rejection in the Cloudflare host while preserving payload boundaries, ownership, cancellation, backpressure, and EOF behavior. Rename feature flags and guest imports and exports to the Host Tunnel ABI. Update both Worker profiles, tests, and architecture documentation. * feat(web): split WASI hosts into publishable npm packages Extract the shared JSPI, WASI, Host Tunnel, and data-plane runtime into @easytier/runtime. Keep ABI handles, guest memory, TOML, and operation broker details behind its adapter entry point. Add typed, auto-starting @easytier/browser and factory-based @easytier/cloudflare packages. Ship a matching Wasm profile with each platform package and validate its capabilities before packing. Persist Cloudflare instance identity in Durable Object storage, centralize WebSocket admission ownership, and add package-level coverage for the public interfaces. * fix(web): make public packages portable Embed the browser Wasm artifact in the published JavaScript entry point. This lets esbuild consumers bundle the package without an asset loader or a copied file. Return Cloudflare's nominal Durable Object base type and document the named subclass export required by generated Wrangler bindings. * docs(web): add public package walkthrough Expand both package READMEs with installation, configuration, local validation, health checks, and deployment instructions. Add a standalone Vite and Wrangler example that imports only the public Browser and Cloudflare entries. Generate Worker bindings from configuration and keep local secrets outside version control. * chore(go): import EasyTier Go host Add the standalone Go host runtime as a monorepo subtree without carrying its development branch ancestry. Preserve its API, tests, examples, generated protobuf bindings, and embedded WASI artifacts. * refactor(hosts): colocate Go and JavaScript runtimes Move the browser, Cloudflare, shared runtime, and web example into the easytier-js subtree. Update workspace metadata, build paths, and documentation for the new layout. Adopt github.com/EasyTier/EasyTier/easytier-go as the Go module path. Resolve artifact and protobuf generation from the enclosing monorepo. * build(web): isolate JavaScript host workspace Keep public browser and Cloudflare packages outside the legacy frontend workspace so root installs and cross-platform builds do not pull workerd. Make each package build generate its required WASI artifact from a clean checkout. Add a dedicated workflow that runs the same install and check commands documented for contributors. Move JavaScript dependencies into a scoped lockfile and restore the root workspace lockfile to its pre-host state. --- .github/workflows/js.yml | 62 + CONTEXT.md | 13 + docs/core-architecture.md | 17 +- docs/data-plane-runtime-plan.md | 14 +- easytier-core/Cargo.toml | 2 + easytier-core/src/connectivity/composite.rs | 22 + .../src/connectivity/connector_host.rs | 89 + easytier-core/src/connectivity/manual/mod.rs | 65 +- .../src/gateway/dataplane/operation.rs | 3 + .../src/gateway/dataplane/session.rs | 32 + easytier-core/src/gateway/dataplane/tests.rs | 49 + .../gateway/smoltcp/tokio_smoltcp/socket.rs | 7 +- easytier-core/src/host/mod.rs | 1 + easytier-core/src/host/socket/mod.rs | 2 +- easytier-core/src/host/tunnel.rs | 36 + easytier-core/src/instance/config.rs | 12 +- easytier-core/src/instance/lifecycle.rs | 36 +- easytier-core/src/instance/management.rs | 27 +- easytier-core/src/instance/mod.rs | 253 +- easytier-core/src/instance/tests.rs | 88 + easytier-core/src/listener/mod.rs | 12 + easytier-core/src/listener/queue.rs | 149 + easytier-core/src/peers/admission.rs | 57 +- easytier-core/src/tunnel/host_tunnel.rs | 221 + easytier-core/src/tunnel/mod.rs | 1 + easytier-core/src/wasi/abi.rs | 16 +- easytier-core/src/wasi/adapter/mod.rs | 2 + easytier-core/src/wasi/adapter/tunnel.rs | 397 ++ easytier-core/src/wasi/imports.rs | 29 + easytier-core/src/wasi/runtime.rs | 167 +- .../src/wasi/runtime/abi/data_plane.rs | 40 +- easytier-core/src/wasi/runtime_driver.rs | 6 +- easytier-core/src/wasi/schema.rs | 37 + easytier-core/src/wasi/wire/data_plane.rs | 2 +- easytier-go/KNOWN_LIMITATIONS.md | 27 + easytier-go/LICENSE | 165 + easytier-go/PERFORMANCE.md | 378 ++ easytier-go/README.md | 352 ++ easytier-go/cmd/dial-forward-bench/main.go | 364 ++ .../cmd/dial-forward-bench/main_test.go | 188 + easytier-go/cmd/update-wasm/main.go | 254 + easytier-go/cmd/update-wasm/main_test.go | 92 + easytier-go/examples/dial/main.go | 305 ++ easytier-go/examples/dial/main_test.go | 209 + easytier-go/examples/tun/go.mod | 34 + easytier-go/examples/tun/go.sum | 53 + easytier-go/examples/tun/main.go | 498 ++ easytier-go/examples/tun/main_test.go | 256 + easytier-go/examples/web-client/main.go | 91 + easytier-go/examples/web-client/main_test.go | 53 + easytier-go/go.mod | 9 + easytier-go/go.sum | 8 + easytier-go/host.go | 36 + easytier-go/instance_config.go | 31 + .../internal/artifact/easytier_core.wasm | Bin 0 -> 6850909 bytes easytier-go/internal/artifact/embed.go | 12 + easytier-go/internal/artifact/embed_test.go | 17 + easytier-go/internal/artifact/provenance.go | 8 + easytier-go/internal/contextutil/context.go | 57 + .../internal/contextutil/context_test.go | 62 + easytier-go/internal/coreabi/core.go | 495 ++ easytier-go/internal/coreabi/core_test.go | 62 + easytier-go/internal/coreabi/dataplane.go | 715 +++ .../internal/coreabi/dataplane_wire.go | 129 + .../internal/coreabi/dataplane_wire_test.go | 73 + easytier-go/internal/coreabi/rpc.go | 190 + easytier-go/internal/coreabi/rpc_test.go | 188 + easytier-go/internal/coreabi/web_client.go | 146 + easytier-go/internal/engine/config.go | 194 + easytier-go/internal/engine/config_test.go | 56 + easytier-go/internal/engine/conn.go | 205 + easytier-go/internal/engine/dataplane.go | 510 ++ easytier-go/internal/engine/driver_test.go | 164 + easytier-go/internal/engine/host.go | 311 ++ easytier-go/internal/engine/instance.go | 526 +++ easytier-go/internal/engine/instance_test.go | 96 + easytier-go/internal/engine/listener.go | 84 + .../internal/engine/module_config_test.go | 61 + easytier-go/internal/engine/packet_conn.go | 284 ++ easytier-go/internal/engine/rpc.go | 228 + easytier-go/internal/engine/rpc_test.go | 128 + easytier-go/internal/engine/web_client.go | 182 + easytier-go/internal/host/host.go | 417 ++ easytier-go/internal/host/instance_config.go | 607 +++ .../internal/host/instance_config_test.go | 534 +++ .../internal/host/instance_config_toml.go | 142 + easytier-go/internal/host/management.go | 774 +++ easytier-go/internal/host/management_test.go | 348 ++ easytier-go/internal/host/rpc.go | 169 + easytier-go/internal/host/web_client.go | 65 + easytier-go/internal/hostabi/adapter.go | 157 + .../internal/hostabi/conformance_test.go | 546 +++ .../internal/hostabi/connect_error_other.go | 11 + .../internal/hostabi/connect_error_unix.go | 24 + .../internal/hostabi/connect_error_windows.go | 31 + easytier-go/internal/hostabi/crypto.go | 236 + easytier-go/internal/hostabi/crypto_test.go | 146 + easytier-go/internal/hostabi/dns.go | 132 + easytier-go/internal/hostabi/dns_wire.go | 124 + easytier-go/internal/hostabi/environment.go | 65 + easytier-go/internal/hostabi/event.go | 64 + easytier-go/internal/hostabi/factory.go | 143 + easytier-go/internal/hostabi/listener.go | 39 + easytier-go/internal/hostabi/management.go | 55 + easytier-go/internal/hostabi/packet.go | 82 + easytier-go/internal/hostabi/socket_wire.go | 427 ++ easytier-go/internal/hostabi/status.go | 55 + easytier-go/internal/hostabi/stream.go | 137 + easytier-go/internal/hostabi/udp.go | 184 + easytier-go/internal/hostabi/udp_wire.go | 122 + easytier-go/internal/reactor/dns.go | 125 + easytier-go/internal/reactor/environment.go | 79 + easytier-go/internal/reactor/event.go | 38 + easytier-go/internal/reactor/factory.go | 288 ++ easytier-go/internal/reactor/listener.go | 144 + easytier-go/internal/reactor/management.go | 72 + .../internal/reactor/management_test.go | 45 + easytier-go/internal/reactor/packet.go | 159 + easytier-go/internal/reactor/reactor.go | 343 ++ easytier-go/internal/reactor/reactor_test.go | 531 +++ easytier-go/internal/reactor/stream.go | 363 ++ easytier-go/internal/reactor/stream_test.go | 290 ++ easytier-go/internal/reactor/udp.go | 350 ++ easytier-go/platform/dns.go | 20 + easytier-go/platform/environment.go | 42 + easytier-go/platform/netstd/netstd.go | 198 + easytier-go/platform/netstd/netstd_test.go | 109 + .../platform/netstd/socket_options_other.go | 21 + .../platform/netstd/socket_options_unix.go | 36 + .../netstd/socket_options_unix_test.go | 33 + .../platform/netstd/socket_options_windows.go | 38 + easytier-go/platform/socket.go | 98 + easytier-go/proto/acl/acl.pb.go | 1216 +++++ easytier-go/proto/api/config/api_config.pb.go | 971 ++++ .../proto/api/instance/api_instance.pb.go | 4182 +++++++++++++++++ easytier-go/proto/api/manage/api_manage.pb.go | 2259 +++++++++ easytier-go/proto/common/common.pb.go | 2532 ++++++++++ easytier-go/proto/error/error.pb.go | 652 +++ easytier-go/proto/generate.go | 3 + easytier-go/proto/peer_rpc/peer_rpc.pb.go | 3895 +++++++++++++++ easytier-go/proto/provenance.go | 8 + easytier-go/proto/web/web.pb.go | 399 ++ easytier-go/rpc.go | 9 + easytier-go/script/generate-proto.sh | 42 + easytier-go/testdata/wasi_socket_guest.source | 4 + easytier-go/testdata/wasi_socket_guest.wasm | Bin 0 -> 9525296 bytes easytier-go/tests/host_dataplane_test.go | 455 ++ easytier-go/tests/host_public_test.go | 692 +++ easytier-go/tests/host_rpc_test.go | 50 + easytier-go/tests/web_client_e2e_test.go | 254 + easytier-go/web_client.go | 7 + easytier-js/README.md | 36 + easytier-js/browser/.gitignore | 5 + easytier-js/browser/README.md | 65 + easytier-js/browser/demo/index.html | 15 + easytier-js/browser/demo/node-smoke.ts | 72 + easytier-js/browser/demo/smoke-shared.ts | 71 + easytier-js/browser/demo/smoke.ts | 85 + easytier-js/browser/package.json | 48 + easytier-js/browser/src/create.ts | 42 + easytier-js/browser/src/index.ts | 39 + easytier-js/browser/src/wasm.d.ts | 4 + easytier-js/browser/test/index.test.ts | 82 + easytier-js/browser/tsconfig.build.json | 13 + easytier-js/browser/tsconfig.json | 15 + easytier-js/cloudflare/.gitignore | 4 + easytier-js/cloudflare/README.md | 122 + easytier-js/cloudflare/example/env.d.ts | 9 + easytier-js/cloudflare/example/worker.ts | 16 + easytier-js/cloudflare/package.json | 47 + easytier-js/cloudflare/src/app.ts | 142 + easytier-js/cloudflare/src/index.ts | 19 + easytier-js/cloudflare/src/types.ts | 29 + easytier-js/cloudflare/src/wasm.d.ts | 4 + easytier-js/cloudflare/test/app.test.ts | 120 + easytier-js/cloudflare/tsconfig.build.json | 12 + easytier-js/cloudflare/tsconfig.json | 15 + easytier-js/cloudflare/wrangler.jsonc | 38 + easytier-js/examples/web/.gitignore | 6 + easytier-js/examples/web/README.md | 97 + easytier-js/examples/web/browser/index.html | 89 + easytier-js/examples/web/browser/main.ts | 105 + .../examples/web/browser/tsconfig.json | 12 + .../examples/web/cloudflare/.dev.vars.example | 1 + .../examples/web/cloudflare/tsconfig.json | 14 + easytier-js/examples/web/cloudflare/worker.ts | 14 + .../examples/web/cloudflare/wrangler.jsonc | 38 + easytier-js/examples/web/package.json | 27 + easytier-js/package.json | 11 + easytier-js/pnpm-lock.yaml | 2139 +++++++++ easytier-js/pnpm-workspace.yaml | 15 + easytier-js/runtime/.gitignore | 2 + easytier-js/runtime/README.md | 16 + easytier-js/runtime/package.json | 44 + easytier-js/runtime/scripts/build-wasm.mjs | 107 + easytier-js/runtime/scripts/copy-artifact.mjs | 12 + easytier-js/runtime/scripts/validate-wasm.mjs | 45 + easytier-js/runtime/src/adapter.ts | 119 + easytier-js/runtime/src/config.ts | 118 + easytier-js/runtime/src/data-plane.ts | 632 +++ easytier-js/runtime/src/index.ts | 66 + easytier-js/runtime/src/jspi.d.ts | 13 + easytier-js/runtime/src/runtime.ts | 806 ++++ easytier-js/runtime/src/wasi-clock.ts | 144 + easytier-js/runtime/src/wasi-preview1.ts | 116 + easytier-js/runtime/src/websocket-host.ts | 892 ++++ .../runtime/test/build-profile.test.ts | 17 + easytier-js/runtime/test/config.test.ts | 66 + easytier-js/runtime/test/data-plane.test.ts | 334 ++ easytier-js/runtime/test/runtime.test.ts | 244 + .../runtime/test/websocket-host.test.ts | 419 ++ easytier-js/runtime/tsconfig.build.json | 12 + easytier-js/runtime/tsconfig.json | 15 + easytier/src/instance/config.rs | 4 +- pnpm-workspace.yaml | 1 + 215 files changed, 45277 insertions(+), 144 deletions(-) create mode 100644 .github/workflows/js.yml create mode 100644 easytier-core/src/host/tunnel.rs create mode 100644 easytier-core/src/listener/queue.rs create mode 100644 easytier-core/src/tunnel/host_tunnel.rs create mode 100644 easytier-core/src/wasi/adapter/tunnel.rs create mode 100644 easytier-go/KNOWN_LIMITATIONS.md create mode 100644 easytier-go/LICENSE create mode 100644 easytier-go/PERFORMANCE.md create mode 100644 easytier-go/README.md create mode 100644 easytier-go/cmd/dial-forward-bench/main.go create mode 100644 easytier-go/cmd/dial-forward-bench/main_test.go create mode 100644 easytier-go/cmd/update-wasm/main.go create mode 100644 easytier-go/cmd/update-wasm/main_test.go create mode 100644 easytier-go/examples/dial/main.go create mode 100644 easytier-go/examples/dial/main_test.go create mode 100644 easytier-go/examples/tun/go.mod create mode 100644 easytier-go/examples/tun/go.sum create mode 100644 easytier-go/examples/tun/main.go create mode 100644 easytier-go/examples/tun/main_test.go create mode 100644 easytier-go/examples/web-client/main.go create mode 100644 easytier-go/examples/web-client/main_test.go create mode 100644 easytier-go/go.mod create mode 100644 easytier-go/go.sum create mode 100644 easytier-go/host.go create mode 100644 easytier-go/instance_config.go create mode 100644 easytier-go/internal/artifact/easytier_core.wasm create mode 100644 easytier-go/internal/artifact/embed.go create mode 100644 easytier-go/internal/artifact/embed_test.go create mode 100644 easytier-go/internal/artifact/provenance.go create mode 100644 easytier-go/internal/contextutil/context.go create mode 100644 easytier-go/internal/contextutil/context_test.go create mode 100644 easytier-go/internal/coreabi/core.go create mode 100644 easytier-go/internal/coreabi/core_test.go create mode 100644 easytier-go/internal/coreabi/dataplane.go create mode 100644 easytier-go/internal/coreabi/dataplane_wire.go create mode 100644 easytier-go/internal/coreabi/dataplane_wire_test.go create mode 100644 easytier-go/internal/coreabi/rpc.go create mode 100644 easytier-go/internal/coreabi/rpc_test.go create mode 100644 easytier-go/internal/coreabi/web_client.go create mode 100644 easytier-go/internal/engine/config.go create mode 100644 easytier-go/internal/engine/config_test.go create mode 100644 easytier-go/internal/engine/conn.go create mode 100644 easytier-go/internal/engine/dataplane.go create mode 100644 easytier-go/internal/engine/driver_test.go create mode 100644 easytier-go/internal/engine/host.go create mode 100644 easytier-go/internal/engine/instance.go create mode 100644 easytier-go/internal/engine/instance_test.go create mode 100644 easytier-go/internal/engine/listener.go create mode 100644 easytier-go/internal/engine/module_config_test.go create mode 100644 easytier-go/internal/engine/packet_conn.go create mode 100644 easytier-go/internal/engine/rpc.go create mode 100644 easytier-go/internal/engine/rpc_test.go create mode 100644 easytier-go/internal/engine/web_client.go create mode 100644 easytier-go/internal/host/host.go create mode 100644 easytier-go/internal/host/instance_config.go create mode 100644 easytier-go/internal/host/instance_config_test.go create mode 100644 easytier-go/internal/host/instance_config_toml.go create mode 100644 easytier-go/internal/host/management.go create mode 100644 easytier-go/internal/host/management_test.go create mode 100644 easytier-go/internal/host/rpc.go create mode 100644 easytier-go/internal/host/web_client.go create mode 100644 easytier-go/internal/hostabi/adapter.go create mode 100644 easytier-go/internal/hostabi/conformance_test.go create mode 100644 easytier-go/internal/hostabi/connect_error_other.go create mode 100644 easytier-go/internal/hostabi/connect_error_unix.go create mode 100644 easytier-go/internal/hostabi/connect_error_windows.go create mode 100644 easytier-go/internal/hostabi/crypto.go create mode 100644 easytier-go/internal/hostabi/crypto_test.go create mode 100644 easytier-go/internal/hostabi/dns.go create mode 100644 easytier-go/internal/hostabi/dns_wire.go create mode 100644 easytier-go/internal/hostabi/environment.go create mode 100644 easytier-go/internal/hostabi/event.go create mode 100644 easytier-go/internal/hostabi/factory.go create mode 100644 easytier-go/internal/hostabi/listener.go create mode 100644 easytier-go/internal/hostabi/management.go create mode 100644 easytier-go/internal/hostabi/packet.go create mode 100644 easytier-go/internal/hostabi/socket_wire.go create mode 100644 easytier-go/internal/hostabi/status.go create mode 100644 easytier-go/internal/hostabi/stream.go create mode 100644 easytier-go/internal/hostabi/udp.go create mode 100644 easytier-go/internal/hostabi/udp_wire.go create mode 100644 easytier-go/internal/reactor/dns.go create mode 100644 easytier-go/internal/reactor/environment.go create mode 100644 easytier-go/internal/reactor/event.go create mode 100644 easytier-go/internal/reactor/factory.go create mode 100644 easytier-go/internal/reactor/listener.go create mode 100644 easytier-go/internal/reactor/management.go create mode 100644 easytier-go/internal/reactor/management_test.go create mode 100644 easytier-go/internal/reactor/packet.go create mode 100644 easytier-go/internal/reactor/reactor.go create mode 100644 easytier-go/internal/reactor/reactor_test.go create mode 100644 easytier-go/internal/reactor/stream.go create mode 100644 easytier-go/internal/reactor/stream_test.go create mode 100644 easytier-go/internal/reactor/udp.go create mode 100644 easytier-go/platform/dns.go create mode 100644 easytier-go/platform/environment.go create mode 100644 easytier-go/platform/netstd/netstd.go create mode 100644 easytier-go/platform/netstd/netstd_test.go create mode 100644 easytier-go/platform/netstd/socket_options_other.go create mode 100644 easytier-go/platform/netstd/socket_options_unix.go create mode 100644 easytier-go/platform/netstd/socket_options_unix_test.go create mode 100644 easytier-go/platform/netstd/socket_options_windows.go create mode 100644 easytier-go/platform/socket.go create mode 100644 easytier-go/proto/acl/acl.pb.go create mode 100644 easytier-go/proto/api/config/api_config.pb.go create mode 100644 easytier-go/proto/api/instance/api_instance.pb.go create mode 100644 easytier-go/proto/api/manage/api_manage.pb.go create mode 100644 easytier-go/proto/common/common.pb.go create mode 100644 easytier-go/proto/error/error.pb.go create mode 100644 easytier-go/proto/generate.go create mode 100644 easytier-go/proto/peer_rpc/peer_rpc.pb.go create mode 100644 easytier-go/proto/provenance.go create mode 100644 easytier-go/proto/web/web.pb.go create mode 100644 easytier-go/rpc.go create mode 100755 easytier-go/script/generate-proto.sh create mode 100644 easytier-go/testdata/wasi_socket_guest.source create mode 100644 easytier-go/testdata/wasi_socket_guest.wasm create mode 100644 easytier-go/tests/host_dataplane_test.go create mode 100644 easytier-go/tests/host_public_test.go create mode 100644 easytier-go/tests/host_rpc_test.go create mode 100644 easytier-go/tests/web_client_e2e_test.go create mode 100644 easytier-go/web_client.go create mode 100644 easytier-js/README.md create mode 100644 easytier-js/browser/.gitignore create mode 100644 easytier-js/browser/README.md create mode 100644 easytier-js/browser/demo/index.html create mode 100644 easytier-js/browser/demo/node-smoke.ts create mode 100644 easytier-js/browser/demo/smoke-shared.ts create mode 100644 easytier-js/browser/demo/smoke.ts create mode 100644 easytier-js/browser/package.json create mode 100644 easytier-js/browser/src/create.ts create mode 100644 easytier-js/browser/src/index.ts create mode 100644 easytier-js/browser/src/wasm.d.ts create mode 100644 easytier-js/browser/test/index.test.ts create mode 100644 easytier-js/browser/tsconfig.build.json create mode 100644 easytier-js/browser/tsconfig.json create mode 100644 easytier-js/cloudflare/.gitignore create mode 100644 easytier-js/cloudflare/README.md create mode 100644 easytier-js/cloudflare/example/env.d.ts create mode 100644 easytier-js/cloudflare/example/worker.ts create mode 100644 easytier-js/cloudflare/package.json create mode 100644 easytier-js/cloudflare/src/app.ts create mode 100644 easytier-js/cloudflare/src/index.ts create mode 100644 easytier-js/cloudflare/src/types.ts create mode 100644 easytier-js/cloudflare/src/wasm.d.ts create mode 100644 easytier-js/cloudflare/test/app.test.ts create mode 100644 easytier-js/cloudflare/tsconfig.build.json create mode 100644 easytier-js/cloudflare/tsconfig.json create mode 100644 easytier-js/cloudflare/wrangler.jsonc create mode 100644 easytier-js/examples/web/.gitignore create mode 100644 easytier-js/examples/web/README.md create mode 100644 easytier-js/examples/web/browser/index.html create mode 100644 easytier-js/examples/web/browser/main.ts create mode 100644 easytier-js/examples/web/browser/tsconfig.json create mode 100644 easytier-js/examples/web/cloudflare/.dev.vars.example create mode 100644 easytier-js/examples/web/cloudflare/tsconfig.json create mode 100644 easytier-js/examples/web/cloudflare/worker.ts create mode 100644 easytier-js/examples/web/cloudflare/wrangler.jsonc create mode 100644 easytier-js/examples/web/package.json create mode 100644 easytier-js/package.json create mode 100644 easytier-js/pnpm-lock.yaml create mode 100644 easytier-js/pnpm-workspace.yaml create mode 100644 easytier-js/runtime/.gitignore create mode 100644 easytier-js/runtime/README.md create mode 100644 easytier-js/runtime/package.json create mode 100644 easytier-js/runtime/scripts/build-wasm.mjs create mode 100644 easytier-js/runtime/scripts/copy-artifact.mjs create mode 100644 easytier-js/runtime/scripts/validate-wasm.mjs create mode 100644 easytier-js/runtime/src/adapter.ts create mode 100644 easytier-js/runtime/src/config.ts create mode 100644 easytier-js/runtime/src/data-plane.ts create mode 100644 easytier-js/runtime/src/index.ts create mode 100644 easytier-js/runtime/src/jspi.d.ts create mode 100644 easytier-js/runtime/src/runtime.ts create mode 100644 easytier-js/runtime/src/wasi-clock.ts create mode 100644 easytier-js/runtime/src/wasi-preview1.ts create mode 100644 easytier-js/runtime/src/websocket-host.ts create mode 100644 easytier-js/runtime/test/build-profile.test.ts create mode 100644 easytier-js/runtime/test/config.test.ts create mode 100644 easytier-js/runtime/test/data-plane.test.ts create mode 100644 easytier-js/runtime/test/runtime.test.ts create mode 100644 easytier-js/runtime/test/websocket-host.test.ts create mode 100644 easytier-js/runtime/tsconfig.build.json create mode 100644 easytier-js/runtime/tsconfig.json diff --git a/.github/workflows/js.yml b/.github/workflows/js.yml new file mode 100644 index 00000000..139751c3 --- /dev/null +++ b/.github/workflows/js.yml @@ -0,0 +1,62 @@ +name: EasyTier JavaScript Hosts + +on: + push: + branches: ["develop", "main", "releases/**"] + paths: + - "Cargo.toml" + - "Cargo.lock" + - "easytier-core/**" + - "easytier-proto/**" + - "easytier-js/**" + - ".github/workflows/js.yml" + pull_request: + branches: ["develop", "main"] + types: [opened, synchronize, reopened, ready_for_review] + paths: + - "Cargo.toml" + - "Cargo.lock" + - "easytier-core/**" + - "easytier-proto/**" + - "easytier-js/**" + - ".github/workflows/js.yml" + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +permissions: + contents: read + +jobs: + check: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + toolchain: 1.95 + target: wasm32-wasip1 + cache: false + rustflags: '' + + - uses: arduino/setup-protoc@v3 + with: + version: '35.1' + repo-token: ${{ github.token }} + + - uses: actions/setup-node@v5 + with: + node-version: 22 + + - uses: pnpm/action-setup@v5 + with: + version: 10 + run_install: false + + - name: Install dependencies + run: pnpm --dir easytier-js install --frozen-lockfile + + - name: Build and test + run: pnpm --dir easytier-js check diff --git a/CONTEXT.md b/CONTEXT.md index 3c1a477a..ec78a17c 100644 --- a/CONTEXT.md +++ b/CONTEXT.md @@ -90,3 +90,16 @@ A compact compatibility Host retains accepted values in the authoritative TOML model for management readback, while the shared host-aware normalization path omits capabilities that the compact runtime cannot execute. Omitted settings are silent no-ops and must not be advertised as live network capabilities. + +## Web compatibility Host + +The Web compatibility Host runs the portable EasyTier guest in JavaScript +runtimes that provide WebAssembly JSPI. Its shared runtime Module owns guest +lifecycle, Host capability operations, data-plane resources, and WebSocket +message handling. Browser and Cloudflare Adapters own only the platform-specific +way that WebSockets are dialed or accepted and the matching guest artifact. + +The Browser Adapter is an outbound-only EasyTier instance with a smoltcp TCP +data plane. The Cloudflare Adapter is an inbound-only relay hosted by one named +Durable Object. Their public configuration exposes only capabilities each Host +can execute; guest ABI details and serialized TOML remain internal. diff --git a/docs/core-architecture.md b/docs/core-architecture.md index a717cdd4..c89c9136 100644 --- a/docs/core-architecture.md +++ b/docs/core-architecture.md @@ -184,12 +184,27 @@ wire codecs. It does not own socket I/O or connection policy. - DNS and DNS record resolution; - connector environment observations; - packet ingress and egress; -- Host socket operation bridges and handle-based TCP/UDP/listener adapters. +- Host socket operation bridges and handle-based TCP/UDP/listener adapters; +- host-owned, message-preserving tunnel endpoints. Core owns scheduling, backpressure, cancellation, UDP session state, and protocol state even when each actual operation crosses a Host Adapter. A Host Adapter owns the real resource and performs the OS operation. +For host-owned tunnels, ownership crosses the guest ABI only after a bounded +Host listener queue accepts the tunnel. The queue is registered through +`CoreHostAdapters` and consumed by the normal `CoreListenerRuntime`, so the +tunnel still reaches `PeerAcceptedTunnelHandler` and cannot bypass peer +handshake, admission, events, or routing policy. Each Host receive produces +one complete `DummyTunnel` payload; no stream framing is added. The Host owns +transport-specific message validation and maps a clean close to tunnel EOF. + +Hosts without outbound sockets select `CoreConnectivityMode::InboundOnly` for +one instance. That startup plan retains listeners and the peer/router while +omitting STUN, outbound connectors, and hole punching. Cargo features only +compile Host Adapters; they do not change `CoreInstance` fields, lifecycle, or +management semantics. + The native `NativeHostRuntime` is process-wide and does not retain an instance `GlobalCtx`, namespace guard, socket mark, or connectivity state. Differences between instances travel in each request's `SocketContext`. A narrow diff --git a/docs/data-plane-runtime-plan.md b/docs/data-plane-runtime-plan.md index 2cfbbfe8..947c09b8 100644 --- a/docs/data-plane-runtime-plan.md +++ b/docs/data-plane-runtime-plan.md @@ -5,9 +5,8 @@ Accepted. This document is the implementation plan for restructuring the EasyTier data -plane and exposing it through native FFI and the standalone -`easytier-go-host` project. It describes a target architecture, not the current -implementation. +plane and exposing it through native FFI and the `easytier-go` module. It +describes a target architecture, not the current implementation. The implementation scope is: @@ -16,7 +15,7 @@ The implementation scope is: backend; - `easytier-contrib/easytier-ffi`; - the WASI guest ABI implemented by `easytier-core`; -- `/data/project/easytier-go-host`; +- `easytier-go`; - TCP, UDP, and smoltcp data-plane paths; - moving KCP route selection and source-connection ownership below the `DataPlaneRuntime` Interface without making KCP portable. @@ -987,7 +986,7 @@ Repository: EasyTier. ### Phase 8: Go `coreabi` and engine -Repository: `easytier-go-host`. +Repository: EasyTier (`easytier-go`). - Add typed data-plane guest calls and wire codecs. - Extend the single driver with submit, cancel, close, and completion drain. @@ -996,7 +995,7 @@ Repository: `easytier-go-host`. ### Phase 9: Go standard network Adapters and artifact -Repository: `easytier-go-host`. +Repository: EasyTier (`easytier-go`). - Add `Dial`, `Listen`, and `ListenPacket`. - Implement TCP, UDP, deadlines, cancellation, close, and error mapping. @@ -1006,7 +1005,8 @@ Repository: `easytier-go-host`. - Run real two-instance TCP and UDP integration tests. Each phase ends in a reviewable commit. Commit messages use a 72-column text -width. The complete task receives one final review across both repositories. +width. The complete task receives one final review across both implementation +areas. The operation-broker commit may receive an additional high-risk incremental review because it contains concurrency logic. diff --git a/easytier-core/Cargo.toml b/easytier-core/Cargo.toml index 29f4e72c..5b851d93 100644 --- a/easytier-core/Cargo.toml +++ b/easytier-core/Cargo.toml @@ -146,6 +146,8 @@ proxy-smoltcp-stack = [ "smoltcp/proto-ipv6", "smoltcp/async", ] +wasm-host-tunnel = [] +wasm-host-tunnel-outbound = ["wasm-host-tunnel"] test-utils = [] tracing-log = ["tracing/log"] zstd = ["dep:zstd"] diff --git a/easytier-core/src/connectivity/composite.rs b/easytier-core/src/connectivity/composite.rs index c4af43a6..6eb3bfe2 100644 --- a/easytier-core/src/connectivity/composite.rs +++ b/easytier-core/src/connectivity/composite.rs @@ -103,6 +103,17 @@ impl InterfaceAddrCache { /// Mechanical connector operations supplied by one process-wide runtime. #[async_trait] pub trait ConnectorRuntime: VirtualTcpSocketFactory + Send + Sync + 'static { + fn supports_external_tunnel(&self, _scheme: &str) -> bool { + false + } + + async fn connect_external_tunnel( + &self, + _url: &Url, + ) -> anyhow::Result>> { + Ok(None) + } + async fn connect_byte_stream( &self, url: &Url, @@ -207,6 +218,17 @@ where S: ConnectorRuntime + VirtualUdpSocketFactory, E: ConnectorEnvironment, { + fn supports_external_tunnel(&self, scheme: &str) -> bool { + self.sockets.supports_external_tunnel(scheme) + } + + async fn connect_external_tunnel( + &self, + url: &Url, + ) -> anyhow::Result>> { + self.sockets.connect_external_tunnel(url).await + } + async fn local_addr_for_remote( &self, remote_addr: SocketAddr, diff --git a/easytier-core/src/connectivity/connector_host.rs b/easytier-core/src/connectivity/connector_host.rs index aaa2cabe..c96e5e7b 100644 --- a/easytier-core/src/connectivity/connector_host.rs +++ b/easytier-core/src/connectivity/connector_host.rs @@ -24,6 +24,7 @@ use url::Url; use crate::{ connectivity::{ composite::{ConnectorEnvironment, ConnectorHostAdapter, ConnectorRuntime}, + manual::ExternalTunnelConnector, transport::ConnectedByteStream, }, host::environment::{HostConnectorEnvironmentIo, local_addr_for_remote}, @@ -113,6 +114,7 @@ where listeners: HostTcpListenerFactory, environment: Arc, environment_io: Arc, + external_tunnel_connector: Option>, } impl HostConnectorRuntime @@ -132,8 +134,17 @@ where listeners: HostTcpListenerFactory::new(runtime, backend), environment: Arc::new(environment), environment_io, + external_tunnel_connector: None, } } + + pub fn with_external_tunnel_connector( + mut self, + connector: Arc, + ) -> Self { + self.external_tunnel_connector = Some(connector); + self + } } #[async_trait] @@ -181,6 +192,25 @@ where B: ConnectorHostSocketBackend, E: HostConnectorEnvironmentIo, { + fn supports_external_tunnel(&self, scheme: &str) -> bool { + self.external_tunnel_connector + .as_ref() + .is_some_and(|connector| connector.supports_scheme(scheme)) + } + + async fn connect_external_tunnel( + &self, + url: &Url, + ) -> anyhow::Result>> { + let Some(connector) = &self.external_tunnel_connector else { + return Ok(None); + }; + if !connector.supports_scheme(url.scheme()) { + return Ok(None); + } + Ok(Some(connector.connect(url).await?)) + } + async fn connect_byte_stream( &self, url: &Url, @@ -257,6 +287,24 @@ where ConnectorHostAdapter::new(runtime.clone(), runtime) } +pub fn new_connector_host_with_external_tunnel( + socket_runtime: HostSocketRuntime, + backend: Arc, + environment: HostConnectorEnvironmentSnapshot, + environment_io: Arc, + connector: Arc, +) -> ConnectorHost +where + B: ConnectorHostSocketBackend, + E: HostConnectorEnvironmentIo, +{ + let runtime = Arc::new( + HostConnectorRuntime::new(socket_runtime, backend, environment, environment_io) + .with_external_tunnel_connector(connector), + ); + ConnectorHostAdapter::new(runtime.clone(), runtime) +} + #[cfg(test)] mod tests { use std::{ @@ -299,6 +347,19 @@ mod tests { struct FixedStunProvider; + struct ExternalFailingConnector; + + #[async_trait] + impl ExternalTunnelConnector for ExternalFailingConnector { + fn supports_scheme(&self, scheme: &str) -> bool { + scheme == "ws" + } + + async fn connect(&self, _url: &Url) -> anyhow::Result> { + anyhow::bail!("external connector called") + } + } + #[async_trait] impl StunInfoProvider for FixedStunProvider { fn get_stun_info(&self) -> StunInfo { @@ -579,6 +640,34 @@ mod tests { ); } + #[tokio::test] + async fn delegates_external_tunnel_connections() { + let host = new_connector_host_with_external_tunnel( + HostSocketRuntime::new(), + Arc::new(UnsupportedBackend::default()), + test_environment_snapshot(), + Arc::new(TestEnvironmentIo::default()), + Arc::new(ExternalFailingConnector), + ); + + let error = ManualConnectorHost::connect_external_tunnel( + &host, + &"ws://relay.example/".parse().unwrap(), + ) + .await + .unwrap_err(); + assert_eq!(error.to_string(), "external connector called"); + assert!( + ManualConnectorHost::connect_external_tunnel( + &host, + &"tcp://relay.example:11010".parse().unwrap(), + ) + .await + .unwrap() + .is_none() + ); + } + #[tokio::test] async fn direct_rpc_projects_host_observations_without_instance_policy() { let host = Arc::new(new_connector_host( diff --git a/easytier-core/src/connectivity/manual/mod.rs b/easytier-core/src/connectivity/manual/mod.rs index 20f84691..bcca4f12 100644 --- a/easytier-core/src/connectivity/manual/mod.rs +++ b/easytier-core/src/connectivity/manual/mod.rs @@ -94,6 +94,14 @@ pub struct ManualInterfaceAddrs { #[async_trait] pub trait ManualConnectorHost: VirtualTcpSocketFactory + VirtualUdpSocketFactory { + fn supports_external_tunnel(&self, _scheme: &str) -> bool { + false + } + + async fn connect_external_tunnel(&self, _url: &Url) -> anyhow::Result>> { + Ok(None) + } + async fn local_addr_for_remote( &self, remote_addr: SocketAddr, @@ -110,6 +118,13 @@ pub trait ManualConnectorHost: VirtualTcpSocketFactory + VirtualUdpSocketFactory } } +#[async_trait] +pub trait ExternalTunnelConnector: Send + Sync + 'static { + fn supports_scheme(&self, scheme: &str) -> bool; + + async fn connect(&self, url: &Url) -> anyhow::Result>; +} + #[async_trait] pub(crate) trait ManualEndpointResolver: Send + Sync + 'static { async fn resolve_endpoint(&self, url: &Url) -> anyhow::Result; @@ -182,6 +197,14 @@ where )); } + if let Some(tunnel) = self.host.connect_external_tunnel(&endpoint.url).await? { + return Ok(apply_resolved_endpoint_info( + tunnel, + requested_url, + endpoint.tunnel_prefixes, + )); + } + if !self.protocol.supports_scheme(endpoint.url.scheme()) { anyhow::bail!( "unsupported client protocol upgrader: {}", @@ -710,17 +733,20 @@ where return Err(error); } }; - let ip_versions = match resolve_reconnect_ip_versions( - &normalized_url, - connect_timeout, - ManualTransport::from_url(&normalized_url) - .ok() - .map(|transport| data.options.socket_context(transport, IpVersion::Both)) - .unwrap_or_default(), - data.dns.as_ref(), - ) - .await - { + let ip_versions = match if data.host.supports_external_tunnel(normalized_url.scheme()) { + Ok(vec![IpVersion::Both]) + } else { + resolve_reconnect_ip_versions( + &normalized_url, + connect_timeout, + ManualTransport::from_url(&normalized_url) + .ok() + .map(|transport| data.options.socket_context(transport, IpVersion::Both)) + .unwrap_or_default(), + data.dns.as_ref(), + ) + .await + } { Ok(ip_versions) => ip_versions, Err(error) => { emit_connect_error(&data, &url, IpVersion::Both, &error); @@ -770,13 +796,17 @@ where ), ) .await?; - if endpoint.url.scheme() != "ring" && !data.protocol.supports_scheme(endpoint.url.scheme()) { + let uses_external_tunnel = data.host.supports_external_tunnel(endpoint.url.scheme()); + if endpoint.url.scheme() != "ring" + && !uses_external_tunnel + && !data.protocol.supports_scheme(endpoint.url.scheme()) + { anyhow::bail!( "unsupported client protocol upgrader: {}", endpoint.url.scheme() ); } - let transport = (endpoint.url.scheme() != "ring") + let transport = (endpoint.url.scheme() != "ring" && !uses_external_tunnel) .then(|| ManualTransport::from_url(&endpoint.url)) .transpose()?; let resolved = match transport { @@ -822,6 +852,15 @@ where if endpoint.url.scheme() == "ring" { return connect_ring_tunnel(&data.ring_registry, &endpoint.url); } + if uses_external_tunnel { + return data + .host + .connect_external_tunnel(&endpoint.url) + .await? + .ok_or_else(|| { + anyhow::anyhow!("host did not provide external tunnel for {}", endpoint.url) + }); + } let transport = transport.expect("non-Ring endpoint should have a transport"); let connected = match resolved { Some((remote_addr, bind_addrs)) => { diff --git a/easytier-core/src/gateway/dataplane/operation.rs b/easytier-core/src/gateway/dataplane/operation.rs index 1ede188e..cdab3b60 100644 --- a/easytier-core/src/gateway/dataplane/operation.rs +++ b/easytier-core/src/gateway/dataplane/operation.rs @@ -53,6 +53,7 @@ pub enum DataPlaneOperationKind { UdpBind = 6, UdpReceive = 7, UdpSend = 8, + TcpShutdownWrite = 9, } #[derive(Clone, Copy, Debug, Eq, PartialEq)] @@ -100,6 +101,7 @@ pub enum DataPlaneOperationResult { TcpWritten { len: usize, }, + TcpWriteShutdown, UdpBound { socket: DataPlaneResourceId, local_addr: SocketAddr, @@ -136,6 +138,7 @@ impl DataPlaneOperationResult { Self::UdpBound { socket, .. } => Some(*socket), Self::TcpRead { .. } | Self::TcpWritten { .. } + | Self::TcpWriteShutdown | Self::UdpReceived { .. } | Self::UdpSent { .. } => None, } diff --git a/easytier-core/src/gateway/dataplane/session.rs b/easytier-core/src/gateway/dataplane/session.rs index bc475d37..8140ab19 100644 --- a/easytier-core/src/gateway/dataplane/session.rs +++ b/easytier-core/src/gateway/dataplane/session.rs @@ -168,6 +168,7 @@ enum PendingOperationResult { eof: bool, }, TcpWritten(usize), + TcpWriteShutdown, UdpBound(DataPlaneUdpSocket), UdpReceived { data: Vec, @@ -624,6 +625,36 @@ where Ok(operation_id) } + pub fn submit_tcp_shutdown_write( + self: &Arc, + stream_id: DataPlaneResourceId, + ) -> DataPlaneResult { + Self::ensure_executor()?; + let (stream, operation_id, cancel) = { + let mut state = self.lock_state(); + let stream = Self::require_tcp(&state, stream_id)?; + let (operation_id, cancel) = self.admit_locked( + &mut state, + DataPlaneOperationKind::TcpShutdownWrite, + Some(stream_id), + 0, + false, + )?; + (stream, operation_id, cancel) + }; + self.spawn_operation(operation_id, async move { + stream + .write_deadline + .run(cancel, async { + stream.write.lock().await.shutdown().await?; + Ok::<_, std::io::Error>(()) + }) + .await?; + Ok(PendingOperationResult::TcpWriteShutdown) + }); + Ok(operation_id) + } + pub fn submit_udp_bind( self: &Arc, local_port: u16, @@ -880,6 +911,7 @@ where DataPlaneOperationResult::TcpRead { data, eof } } PendingOperationResult::TcpWritten(len) => DataPlaneOperationResult::TcpWritten { len }, + PendingOperationResult::TcpWriteShutdown => DataPlaneOperationResult::TcpWriteShutdown, PendingOperationResult::UdpBound(socket) => { let local_addr = socket.local_addr(); let socket = Self::insert_udp_resource_locked(resources, socket)?; diff --git a/easytier-core/src/gateway/dataplane/tests.rs b/easytier-core/src/gateway/dataplane/tests.rs index 83b2c39f..8ac22793 100644 --- a/easytier-core/src/gateway/dataplane/tests.rs +++ b/easytier-core/src/gateway/dataplane/tests.rs @@ -327,6 +327,55 @@ async fn data_plane_sessions_complete_tcp_operations_end_to_end() { assert_eq!(written, 4); assert_eq!(received, b"ping"); + let eof_read = session_b.submit_tcp_read(server, 16).unwrap(); + let shutdown = session_a.submit_tcp_shutdown_write(client).unwrap(); + let shutdown_completion = wait_for_session_completion(&session_a).await; + let eof_completion = wait_for_session_completion(&session_b).await; + assert_eq!(shutdown_completion.operation_id, shutdown); + assert_eq!(eof_completion.operation_id, eof_read); + session_a + .take_result_with(shutdown, |outcome| match outcome { + Ok(DataPlaneOperationResult::TcpWriteShutdown) => Some(()), + _ => None, + }) + .unwrap() + .unwrap(); + let eof = session_b + .take_result_with(eof_read, |outcome| match outcome { + Ok(DataPlaneOperationResult::TcpRead { data, eof }) => Some((data.clone(), *eof)), + _ => None, + }) + .unwrap() + .unwrap(); + assert_eq!(eof, (Vec::new(), true)); + + let response_read = session_a.submit_tcp_read(client, 16).unwrap(); + let response_write = session_b + .submit_tcp_write(server, b"pong".to_vec()) + .unwrap(); + let (response_read_completion, response_write_completion) = tokio::join!( + wait_for_session_completion(&session_a), + wait_for_session_completion(&session_b), + ); + assert_eq!(response_read_completion.operation_id, response_read); + assert_eq!(response_write_completion.operation_id, response_write); + let response = session_a + .take_result_with(response_read, |outcome| match outcome { + Ok(DataPlaneOperationResult::TcpRead { data, eof }) if !eof => Some(data.clone()), + _ => None, + }) + .unwrap() + .unwrap(); + let response_len = session_b + .take_result_with(response_write, |outcome| match outcome { + Ok(DataPlaneOperationResult::TcpWritten { len }) => Some(*len), + _ => None, + }) + .unwrap() + .unwrap(); + assert_eq!(response, b"pong"); + assert_eq!(response_len, 4); + let blocked_read = session_b.submit_tcp_read(server, 16).unwrap(); session_b.close_resource(server); let close_completion = wait_for_session_completion(&session_b).await; diff --git a/easytier-core/src/gateway/smoltcp/tokio_smoltcp/socket.rs b/easytier-core/src/gateway/smoltcp/tokio_smoltcp/socket.rs index 0bab7442..714e5c46 100644 --- a/easytier-core/src/gateway/smoltcp/tokio_smoltcp/socket.rs +++ b/easytier-core/src/gateway/smoltcp/tokio_smoltcp/socket.rs @@ -199,11 +199,14 @@ impl AsyncWrite for TcpStream { fn poll_shutdown(self: Pin<&mut Self>, cx: &mut Context<'_>) -> Poll> { let mut socket = self.reactor.get_socket::(*self.handle); - if socket.is_open() { + if socket.may_send() { socket.close(); self.reactor.notify(); } - if socket.state() == tcp::State::Closed { + if matches!( + socket.state(), + tcp::State::FinWait2 | tcp::State::TimeWait | tcp::State::Closed + ) { return Poll::Ready(Ok(())); } diff --git a/easytier-core/src/host/mod.rs b/easytier-core/src/host/mod.rs index 4c955685..3925f10b 100644 --- a/easytier-core/src/host/mod.rs +++ b/easytier-core/src/host/mod.rs @@ -15,3 +15,4 @@ pub mod packet; pub mod socket; #[cfg(test)] pub(crate) mod testkit; +pub mod tunnel; diff --git a/easytier-core/src/host/socket/mod.rs b/easytier-core/src/host/socket/mod.rs index 8e295343..a27f49d7 100644 --- a/easytier-core/src/host/socket/mod.rs +++ b/easytier-core/src/host/socket/mod.rs @@ -184,7 +184,7 @@ impl HostSocketRuntime { } } - pub(in crate::host) async fn run_operation( + pub(crate) async fn run_operation( &self, io: Arc, submit: impl FnOnce(&I, HostOperationId) -> io::Result<()>, diff --git a/easytier-core/src/host/tunnel.rs b/easytier-core/src/host/tunnel.rs new file mode 100644 index 00000000..d6db54e7 --- /dev/null +++ b/easytier-core/src/host/tunnel.rs @@ -0,0 +1,36 @@ +//! Host-backed message tunnels. +//! +//! The host owns the concrete transport and exposes complete EasyTier tunnel +//! payloads. Core owns packet semantics and the peer lifecycle above them. + +use std::{io, task::Poll}; + +use super::socket::{HostOperationId, HostSocketHandle, HostSocketIo}; + +/// Maximum message payload accepted from a host tunnel adapter. +pub const MAX_HOST_TUNNEL_PAYLOAD_LEN: usize = 1024 * 1024; + +/// Mechanical host I/O below EasyTier's message-tunnel seam. +/// +/// Submit methods copy their complete input before returning. A receive keeps +/// the host transport's message boundary intact. A clean remote close is +/// reported as [`io::ErrorKind::UnexpectedEof`] by `take_receive`. +pub trait HostTunnelIo: HostSocketIo { + fn submit_receive( + &self, + handle: HostSocketHandle, + operation: HostOperationId, + capacity: usize, + ) -> io::Result<()>; + + fn take_receive(&self, operation: HostOperationId) -> Poll>>; + + fn submit_send( + &self, + handle: HostSocketHandle, + operation: HostOperationId, + source: &[u8], + ) -> io::Result<()>; + + fn take_send(&self, operation: HostOperationId) -> Poll>; +} diff --git a/easytier-core/src/instance/config.rs b/easytier-core/src/instance/config.rs index 3e5fa9fe..7cb91dd4 100644 --- a/easytier-core/src/instance/config.rs +++ b/easytier-core/src/instance/config.rs @@ -28,7 +28,7 @@ use crate::{ use easytier_proto::common::CompressionAlgoPb; -use super::{CoreConnectivityConfig, CoreInstanceConfig}; +use super::{CoreConnectivityConfig, CoreConnectivityMode, CoreInstanceConfig}; const OSPF_UPDATE_MY_FOREIGN_NETWORK_INTERVAL_SEC: u64 = 10; const MAX_DIRECT_CONNS_PER_PEER_IN_FOREIGN_NETWORK: usize = 3; @@ -58,6 +58,7 @@ pub struct CoreInstanceHostConfig { pub upnp_enabled: bool, pub tcp_hole_punching_enabled: bool, pub ignore_unsupported_config: bool, + pub connectivity: CoreConnectivityMode, pub easytier_version: String, pub endpoint_protocols: Vec, } @@ -83,6 +84,7 @@ impl Default for CoreInstanceHostConfig { upnp_enabled: true, tcp_hole_punching_enabled: true, ignore_unsupported_config: false, + connectivity: CoreConnectivityMode::Full, easytier_version: env!("CARGO_PKG_VERSION").to_owned(), endpoint_protocols: ManualEndpointDiscoveryConfig::default().srv_protocols, } @@ -352,6 +354,8 @@ impl CoreInstanceConfig { runtime, startup_plan: super::CoreInstanceStartupPlan { gateway: host.gateway_enabled, + packet_proxy: host.proxy_enabled, + connectivity: host.connectivity, }, stun: StunServerConfig { udp_servers: stun_servers @@ -588,6 +592,7 @@ disable_p2p = true icmp_failure_is_fatal: true, public_ipv6_provider_supported: true, gateway_enabled: false, + connectivity: CoreConnectivityMode::InboundOnly, easytier_version: "host-version".to_owned(), endpoint_protocols: vec!["host-protocol".to_owned()], ..Default::default() @@ -606,6 +611,10 @@ disable_p2p = true .as_deref(), Some("host-fallback") ); + assert_eq!( + normalized.connectivity.startup_plan.connectivity, + CoreConnectivityMode::InboundOnly + ); assert!( normalized .peer @@ -677,6 +686,7 @@ data_compress_algo = "Zstd" let normalized = CoreInstanceConfig::from_toml_with_host(&config, &host).unwrap(); assert_eq!(config.dump(), before); + assert!(!normalized.connectivity.startup_plan.packet_proxy); assert_eq!(normalized.connectivity.initial_peers.len(), 1); assert_eq!( normalized diff --git a/easytier-core/src/instance/lifecycle.rs b/easytier-core/src/instance/lifecycle.rs index 499a8ac9..18139b39 100644 --- a/easytier-core/src/instance/lifecycle.rs +++ b/easytier-core/src/instance/lifecycle.rs @@ -111,10 +111,16 @@ where .ok_or_else(|| anyhow::anyhow!("packet egress is one-shot and already started"))?; self.packet_egress.start(packet_receiver).await?; self.peer_manager.run().await.map_err(anyhow::Error::from)?; - self.direct.run(); + if let Some(direct) = &self.direct { + direct.run(); + } #[cfg(feature = "tcp-hole-punch")] - self.tcp_hole_punch.run(); - self.manual.start(); + if let Some(tcp_hole_punch) = &self.tcp_hole_punch { + tcp_hole_punch.run(); + } + if let Some(manual) = &self.manual { + manual.start(); + } #[cfg(feature = "public-ipv6-provider")] self.public_ipv6_provider.start().await; @@ -128,8 +134,12 @@ where wrapped_transport.start().await?; } #[cfg(feature = "proxy-packet")] - self.start_packet_proxy().await?; - self.udp_hole_punch.start().await?; + if self.startup_plan.packet_proxy { + self.start_packet_proxy().await?; + } + if let Some(udp_hole_punch) = &self.udp_hole_punch { + udp_hole_punch.start().await?; + } self.peer_center.init().await; #[cfg(feature = "proxy-cidr-monitor")] self.proxy_cidr_monitor @@ -170,7 +180,9 @@ where if let Some(listener) = &self.listener { listener.stop().await; } - self.udp_hole_punch.stop().await; + if let Some(udp_hole_punch) = &self.udp_hole_punch { + udp_hole_punch.stop().await; + } #[cfg(feature = "proxy-smoltcp-stack")] self.port_forward_adapter.stop().await; #[cfg(feature = "proxy-smoltcp-stack")] @@ -185,10 +197,16 @@ where } #[cfg(feature = "proxy-packet")] self.packet_proxy.stop().await; - self.manual.stop().await; + if let Some(manual) = &self.manual { + manual.stop().await; + } #[cfg(feature = "tcp-hole-punch")] - self.tcp_hole_punch.stop().await; - self.direct.stop().await; + if let Some(tcp_hole_punch) = &self.tcp_hole_punch { + tcp_hole_punch.stop().await; + } + if let Some(direct) = &self.direct { + direct.stop().await; + } self.peer_center.stop().await; // Host packet tasks can still call the packet plane, so stop them diff --git a/easytier-core/src/instance/management.rs b/easytier-core/src/instance/management.rs index 001dbfd9..b8ec79ec 100644 --- a/easytier-core/src/instance/management.rs +++ b/easytier-core/src/instance/management.rs @@ -30,19 +30,29 @@ where } pub fn add_connector(&self, url: Url) -> anyhow::Result<()> { - self.manual.add_connector(url) + self.manual + .as_ref() + .ok_or_else(|| anyhow::anyhow!("inbound-only connectivity has no outbound connectors"))? + .add_connector(url) } pub fn remove_connector(&self, url: &Url) -> bool { - self.manual.remove_connector(url) + self.manual + .as_ref() + .is_some_and(|manual| manual.remove_connector(url)) } pub fn clear_connectors(&self) { - self.manual.clear_connectors(); + if let Some(manual) = &self.manual { + manual.clear_connectors(); + } } pub fn list_connectors(&self) -> Vec { - self.manual.list_connectors() + self.manual + .as_ref() + .map(|manual| manual.list_connectors()) + .unwrap_or_default() } pub fn running_listeners(&self) -> Vec { @@ -92,10 +102,11 @@ where .peer_manager .node_snapshot(self.running_listeners()) .await; - snapshot.ip_list = self - .direct - .local_address_observations_with_stun(&snapshot.stun_info) - .await; + if let Some(direct) = &self.direct { + snapshot.ip_list = direct + .local_address_observations_with_stun(&snapshot.stun_info) + .await; + } snapshot } diff --git a/easytier-core/src/instance/mod.rs b/easytier-core/src/instance/mod.rs index c208446f..9bad5b3b 100644 --- a/easytier-core/src/instance/mod.rs +++ b/easytier-core/src/instance/mod.rs @@ -64,8 +64,8 @@ use crate::{ packet::{HostPacketReceiver, PacketSink, host_packet_channel}, }, listener::{ - AcceptedSocketHandler, ExternalListenerFactory, ExternalListenerRequest, ListenerFactory, - RunningListenerRegistry, + AcceptedSocketHandler, ExternalListenerFactory, ExternalListenerRequest, + HostListenerRegistration, ListenerFactory, RunningListenerRegistry, plan::{ListenerRuntimeConfig, PreparedListenerPlan, prepare_listener_plan}, transport::{ AcceptedTransport, CoreListenerRuntime, HostAcceptedTcpSocket, @@ -146,9 +146,18 @@ impl CoreInstanceState { } } +fn default_true() -> bool { + true +} + #[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)] pub struct CoreInstanceStartupPlan { + #[serde(default = "default_true")] pub gateway: bool, + #[serde(default = "default_true")] + pub packet_proxy: bool, + #[serde(default)] + pub connectivity: CoreConnectivityMode, } impl CoreInstanceStartupPlan { @@ -159,10 +168,26 @@ impl CoreInstanceStartupPlan { impl Default for CoreInstanceStartupPlan { fn default() -> Self { - Self { gateway: true } + Self { + gateway: true, + packet_proxy: true, + connectivity: CoreConnectivityMode::Full, + } } } +/// Selects which portable connectivity Modules participate in one instance. +#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)] +#[serde(rename_all = "snake_case")] +pub enum CoreConnectivityMode { + #[default] + Full, + /// Dial configured peers without listeners, discovery, or direct connectivity. + OutboundOnly, + /// Accept Host-registered listeners without constructing outbound socket Modules. + InboundOnly, +} + #[derive(Debug, Clone, Serialize, Deserialize, Default)] pub struct CoreConnectivityConfig { pub initial_peers: Vec, @@ -279,6 +304,7 @@ where pub protocol: Option::Socket>>>, pub external_listener_factory: Option>>>>, + pub host_listener_registrations: Vec, pub server_protocol: Option>>>, /// Optional OS port-mapping adapter. STUN-only hole punching remains /// available when the host does not provide one. @@ -338,6 +364,7 @@ where wrapped_transports: WrappedTransportEngines::default(), protocol: None, external_listener_factory: None, + host_listener_registrations: Vec::new(), server_protocol: None, udp_hole_punch_platform: None, #[cfg(feature = "proxy-packet")] @@ -380,13 +407,13 @@ where pub(super) cancel: CancellationToken, pub(super) peer_manager: Arc, packet_plane: Arc, - pub(super) manual: ManualConnectorManager, - pub(super) direct: DirectConnectorManager, + pub(super) manual: Option>, + pub(super) direct: Option>, #[cfg(feature = "tcp-hole-punch")] - tcp_hole_punch: TcpHolePunchConnector, + tcp_hole_punch: Option>, pub(super) listener: Option>>, running_listeners: Arc, - pub(super) udp_hole_punch: CoreUdpHolePunchService, + pub(super) udp_hole_punch: Option>, #[cfg(feature = "wrapped-transport")] wrapped_transport: Option>, #[cfg(feature = "proxy-smoltcp-stack")] @@ -411,7 +438,7 @@ where public_ipv6_provider: PublicIpv6ProviderRuntime, #[cfg(feature = "vpn-portal")] vpn_portal: Arc, - #[cfg(feature = "proxy-smoltcp-stack")] + #[cfg(feature = "proxy-packet")] pub(super) startup_plan: CoreInstanceStartupPlan, pub(super) runtime_config: CoreRuntimeConfigStore, #[cfg(feature = "test-utils")] @@ -472,6 +499,7 @@ where mut adapters: CoreHostAdapters, ) -> anyhow::Result> { build_capabilities::validate(&config)?; + let connectivity_mode = config.connectivity.startup_plan.connectivity; let instance_name = config.instance_name; #[cfg(feature = "vpn-portal")] let vpn_portal_config = config.vpn_portal.clone(); @@ -497,17 +525,26 @@ where public_ipv6_host, public_ipv6_events, ); - let stun = Self::prepare_stun(&adapters, &config.connectivity); - let peer_stun: Arc = stun.clone(); - let foreign_rpc_registrar = Arc::new(ForeignDirectConnectorRpcRegistrar::new( - adapters.host.clone(), - stun.clone(), - )); + let stun = (connectivity_mode == CoreConnectivityMode::Full) + .then(|| Self::prepare_stun(&adapters, &config.connectivity)); + let (peer_stun, foreign_rpc_registrar): ( + Arc, + Arc, + ) = match &stun { + Some(stun) => ( + Arc::new(CoreStunPeerInfoSource(stun.clone())), + Arc::new(ForeignDirectConnectorRpcRegistrar::new( + adapters.host.clone(), + stun.clone(), + )), + ), + None => (Arc::new(()), Arc::new(())), + }; let peer_manager = Arc::new(PeerManagerCore::new( config.peer, config.managed_credentials, runtime_config.clone(), - Arc::new(CoreStunPeerInfoSource(peer_stun)), + peer_stun, packet_tx, public_ipv6_runtime.clone(), events.clone(), @@ -515,8 +552,11 @@ where foreign_rpc_registrar, )?); let config = config.connectivity; + let configured_listeners = (connectivity_mode != CoreConnectivityMode::OutboundOnly) + .then_some(config.listeners.as_ref()) + .flatten(); let listener_plan = prepare_listener_plan( - config.listeners.as_ref(), + configured_listeners, peer_manager.instance_id(), adapters.server_protocol.as_deref(), adapters.external_listener_factory.as_deref(), @@ -536,6 +576,7 @@ where wrapped_transports, protocol, external_listener_factory, + host_listener_registrations, server_protocol, udp_hole_punch_platform, #[cfg(feature = "proxy-packet")] @@ -549,6 +590,12 @@ where #[cfg(feature = "vpn-portal")] vpn_portal, } = adapters; + let host_listener_registrations = if connectivity_mode == CoreConnectivityMode::OutboundOnly + { + Vec::new() + } else { + host_listener_registrations + }; let dns_records: Arc = dns.clone(); let dns: Arc = dns; let ring_registry = process_runtime.ring_registry(); @@ -563,19 +610,22 @@ where manual: manual_options, direct: direct_options, } = config; - #[cfg(not(feature = "proxy-smoltcp-stack"))] + #[cfg(not(feature = "proxy-packet"))] let _ = startup_plan; + if connectivity_mode == CoreConnectivityMode::InboundOnly && !initial_peers.is_empty() { + anyhow::bail!("inbound-only connectivity does not support outbound peers"); + } + let accepted_tunnel_handler = PeerAcceptedTunnelHandler::new(&peer_manager, events.clone()); let accepted_transport_handler: Arc< dyn AcceptedSocketHandler>>, > = match server_protocol { - Some(server_protocol) => { - let tunnel_handler = PeerAcceptedTunnelHandler::new(&peer_manager, events.clone()); - Arc::new(ProtocolAcceptedTransportHandler::new( - &tunnel_handler, - server_protocol, - )) - } - None => Arc::new(RawAcceptedTransportHandler::new(&peer_manager)), + Some(server_protocol) => Arc::new(ProtocolAcceptedTransportHandler::new( + &accepted_tunnel_handler, + server_protocol, + )), + None => Arc::new(RawAcceptedTransportHandler::new( + accepted_tunnel_handler.clone(), + )), }; let running_listeners = Arc::new(RunningListenerRegistry::default()); let PreparedListenerPlan { @@ -583,8 +633,11 @@ where external, failures, } = listener_plan; - let mut external_factories = Vec::with_capacity(external.len()); - if !external.is_empty() && external_listener_factory.is_none() { + let mut external_factories = + Vec::with_capacity(external.len() + host_listener_registrations.len()); + if (!external.is_empty() || !host_listener_registrations.is_empty()) + && external_listener_factory.is_none() + { anyhow::bail!("listener plan requires an external listener factory"); } for (listener, socket_context) in external { @@ -598,6 +651,19 @@ where listener.must_succeed, )); } + for request in host_listener_registrations { + let factory = external_listener_factory.clone().unwrap(); + if !factory.supports_scheme(request.url.scheme()) { + anyhow::bail!( + "external listener factory does not support Host listener scheme {}", + request.url.scheme() + ); + } + external_factories.push(ListenerFactory::new( + move || factory.create(request.clone()), + true, + )); + } let has_listener_work = !transports.is_empty() || !external_factories.is_empty() || !failures.is_empty(); let listener = has_listener_work.then(|| { @@ -613,40 +679,51 @@ where running_listeners.clone(), )) }); - let protocol = protocol.unwrap_or_else(|| { - Arc::new(CoreClientProtocolUpgrader::new( - CoreClientProtocolConfig::default(), - )) + let protocol = (connectivity_mode != CoreConnectivityMode::InboundOnly).then(|| { + protocol.unwrap_or_else(|| { + Arc::new(CoreClientProtocolUpgrader::new( + CoreClientProtocolConfig::default(), + )) + }) }); - let endpoint_resolver = Arc::new(CoreManualEndpointResolver::new( - host.clone(), - dns.clone(), - dns_records, - endpoint_discovery, - )); - let manual = ManualConnectorManager::new( - peer_manager.clone(), - host.clone(), - dns.clone(), - endpoint_resolver, - protocol.clone(), - ring_registry, - manual_options, - events.clone(), - ); - for url in initial_peers { - manual.add_connector(url)?; - } - let udp_hole_punch_socket_context = direct_options.udp_bind.context.clone(); - let udp_hole_punch = CoreUdpHolePunchService::new( - peer_manager.clone(), - host.clone(), - stun.clone(), - udp_hole_punch_platform, - events.clone(), - udp_hole_punch_socket_context, - protocol.clone(), - ); + let manual = if let Some(protocol) = &protocol { + let endpoint_resolver = Arc::new(CoreManualEndpointResolver::new( + host.clone(), + dns.clone(), + dns_records, + endpoint_discovery, + )); + let manual = ManualConnectorManager::new( + peer_manager.clone(), + host.clone(), + dns.clone(), + endpoint_resolver, + protocol.clone(), + ring_registry, + manual_options, + events.clone(), + ); + for url in initial_peers { + manual.add_connector(url)?; + } + Some(manual) + } else { + None + }; + let udp_hole_punch = stun + .as_ref() + .zip(protocol.as_ref()) + .map(|(stun, protocol)| { + CoreUdpHolePunchService::new( + peer_manager.clone(), + host.clone(), + stun.clone(), + udp_hole_punch_platform, + events.clone(), + direct_options.udp_bind.context.clone(), + protocol.clone(), + ) + }); let proxy_cidr_table = Arc::new(ProxyCidrTable::from_snapshot(proxy_cidr_snapshot( runtime_config.snapshot().as_ref(), ))); @@ -708,28 +785,38 @@ where events.clone(), ); #[cfg(feature = "tcp-hole-punch")] - let tcp_hole_punch = TcpHolePunchConnector::new( - peer_manager.clone(), - host.clone(), - stun.clone(), - direct_options.tcp_bind.context.clone(), - protocol.clone(), - Arc::new(crate::connectivity::protocol::CoreServerProtocolUpgrader::< - HostAcceptedTcpSocket, - >::new( - crate::connectivity::protocol::CoreServerProtocolConfig::default(), - )), - ); - let direct = DirectConnectorManager::new_with_running_listeners( - peer_manager.clone(), - host.clone(), - protected_tcp_ports, - stun.clone(), - running_listeners.clone(), - dns, - protocol, - direct_options, - ); + let tcp_hole_punch = stun + .as_ref() + .zip(protocol.as_ref()) + .map(|(stun, protocol)| { + TcpHolePunchConnector::new( + peer_manager.clone(), + host.clone(), + stun.clone(), + direct_options.tcp_bind.context.clone(), + protocol.clone(), + Arc::new(crate::connectivity::protocol::CoreServerProtocolUpgrader::< + HostAcceptedTcpSocket, + >::new( + crate::connectivity::protocol::CoreServerProtocolConfig::default(), + )), + ) + }); + let direct = match (stun, protocol) { + (Some(stun), Some(protocol)) => { + Some(DirectConnectorManager::new_with_running_listeners( + peer_manager.clone(), + host.clone(), + protected_tcp_ports, + stun, + running_listeners.clone(), + dns, + protocol, + direct_options, + )) + } + _ => None, + }; let peer_center = Arc::new(PeerCenterInstance::new(peer_manager.clone())); #[cfg(feature = "public-ipv6-provider")] let public_ipv6_provider = PublicIpv6ProviderRuntime::new( @@ -799,7 +886,7 @@ where public_ipv6_provider, #[cfg(feature = "vpn-portal")] vpn_portal, - #[cfg(feature = "proxy-smoltcp-stack")] + #[cfg(feature = "proxy-packet")] startup_plan, runtime_config, #[cfg(feature = "test-utils")] diff --git a/easytier-core/src/instance/tests.rs b/easytier-core/src/instance/tests.rs index 13de336d..c2031a03 100644 --- a/easytier-core/src/instance/tests.rs +++ b/easytier-core/src/instance/tests.rs @@ -185,6 +185,10 @@ fn core_instance_config_round_trips_as_normalized_json() { assert!(!decoded.connectivity.direct.testing); assert!(decoded.connectivity.startup_plan.gateway); + assert_eq!( + decoded.connectivity.startup_plan.connectivity, + CoreConnectivityMode::Full + ); assert_eq!(serde_json::to_value(&decoded).unwrap(), encoded); let mut legacy = encoded; @@ -3016,4 +3020,88 @@ virtual_ip = "10.82.0.2/24" instance.stop().await; assert!(instance.running_listeners().is_empty()); } + + #[tokio::test] + async fn inbound_only_uses_host_registered_listener_lifecycle() { + let external_url: Url = "unix:///tmp/easytier-host-listener-test".parse().unwrap(); + let mut config = test_config("host-listener"); + config.connectivity.startup_plan.connectivity = CoreConnectivityMode::InboundOnly; + let (packet_sink, _packet_receiver) = tokio::sync::mpsc::channel(16); + let mut adapters = adapters( + Some(Arc::new(ReadyExternalListenerFactory)), + Arc::new(packet_sink), + ); + adapters + .host_listener_registrations + .push(ExternalListenerRequest { + url: external_url.clone(), + socket_context: SocketContext::default(), + }); + let instance = CoreInstance::new(config, adapters).unwrap(); + + assert!( + instance + .add_connector("tcp://127.0.0.1:11010".parse().unwrap()) + .is_err() + ); + instance.start().await.unwrap(); + assert!(instance.running_listeners().contains(&external_url)); + + instance.stop().await; + assert!(instance.running_listeners().is_empty()); + } + + #[tokio::test] + async fn inbound_only_rejects_initial_peers() { + let mut config = test_config("inbound-only-peer"); + config.connectivity.startup_plan.connectivity = CoreConnectivityMode::InboundOnly; + config + .connectivity + .initial_peers + .push("tcp://127.0.0.1:11010".parse().unwrap()); + + let Err(error) = build_instance(config) else { + panic!("inbound-only instance accepted an outbound peer"); + }; + assert!( + error + .to_string() + .contains("inbound-only connectivity does not support outbound peers"), + "unexpected construction error: {error:#}" + ); + } + + #[tokio::test] + async fn outbound_only_ignores_configured_and_host_registered_listeners() { + let configured_url: Url = "unix:///tmp/easytier-outbound-configured-listener" + .parse() + .unwrap(); + let host_url: Url = "unix:///tmp/easytier-outbound-host-listener" + .parse() + .unwrap(); + let mut config = test_config("outbound-only-listeners"); + config.connectivity.startup_plan.connectivity = CoreConnectivityMode::OutboundOnly; + config.connectivity.listeners = Some(ListenerRuntimeConfig::new( + vec![configured_url], + false, + SocketContext::default(), + )); + let (packet_sink, _packet_receiver) = tokio::sync::mpsc::channel(16); + let mut adapters = adapters( + Some(Arc::new(ReadyExternalListenerFactory)), + Arc::new(packet_sink), + ); + adapters + .host_listener_registrations + .push(ExternalListenerRequest { + url: host_url, + socket_context: SocketContext::default(), + }); + let instance = CoreInstance::new(config, adapters).unwrap(); + + instance.start().await.unwrap(); + assert!(instance.running_listeners().is_empty()); + + instance.stop().await; + } } diff --git a/easytier-core/src/listener/mod.rs b/easytier-core/src/listener/mod.rs index 4f6955d0..ec118e56 100644 --- a/easytier-core/src/listener/mod.rs +++ b/easytier-core/src/listener/mod.rs @@ -15,6 +15,14 @@ use crate::{ }; pub mod plan; +#[cfg(any( + test, + all( + feature = "wasm-host-tunnel", + not(feature = "wasm-host-tunnel-outbound") + ) +))] +pub(crate) mod queue; pub mod transport; pub trait ExternalListenerFactory: Send + Sync + 'static @@ -35,6 +43,10 @@ pub struct ExternalListenerRequest { pub socket_context: SocketContext, } +/// One listener supplied by the Host rather than the portable TOML model. +/// Host listeners are mandatory: startup fails when one cannot bind. +pub type HostListenerRegistration = ExternalListenerRequest; + #[async_trait] pub trait AcceptedSocketHandler: Send + Sync { async fn handle_accepted_socket(&self, accepted: Accepted) -> anyhow::Result<()>; diff --git a/easytier-core/src/listener/queue.rs b/easytier-core/src/listener/queue.rs new file mode 100644 index 00000000..3734b10c --- /dev/null +++ b/easytier-core/src/listener/queue.rs @@ -0,0 +1,149 @@ +use std::{collections::VecDeque, sync::Mutex}; + +use tokio::sync::Notify; + +struct HostListenerQueueState { + closed: bool, + listeners: usize, + pending: VecDeque, +} + +/// Bounded handoff from a synchronous Host callback to async listeners. +pub(crate) struct HostListenerQueue { + capacity: usize, + state: Mutex>, + changed: Notify, +} + +impl HostListenerQueue { + pub(crate) fn new(capacity: usize) -> Self { + Self { + capacity, + state: Mutex::new(HostListenerQueueState { + closed: false, + listeners: 0, + pending: VecDeque::new(), + }), + changed: Notify::new(), + } + } + + pub(crate) fn register_listener(&self) -> bool { + let mut state = self.state.lock().unwrap(); + if state.closed { + return false; + } + state.listeners += 1; + true + } + + pub(crate) fn unregister_listener(&self) { + let pending = { + let mut state = self.state.lock().unwrap(); + debug_assert!(state.listeners > 0); + state.listeners -= 1; + if state.listeners != 0 { + return; + } + state.closed = true; + std::mem::take(&mut state.pending) + }; + drop(pending); + self.changed.notify_waiters(); + } + + /// Constructs `T` only after the queue accepts Host-to-guest ownership. + pub(crate) fn enqueue_with(&self, create: impl FnOnce() -> T) -> anyhow::Result<()> { + { + let mut state = self.state.lock().unwrap(); + if state.closed || state.listeners == 0 { + anyhow::bail!("Host listener queue is closed"); + } + if state.pending.len() >= self.capacity { + anyhow::bail!("Host listener admission queue is full"); + } + state.pending.push_back(create()); + } + self.changed.notify_one(); + Ok(()) + } + + pub(crate) async fn accept(&self) -> Option { + loop { + let changed = self.changed.notified(); + { + let mut state = self.state.lock().unwrap(); + if let Some(item) = state.pending.pop_front() { + return Some(item); + } + if state.closed { + return None; + } + } + changed.await; + } + } +} + +#[cfg(test)] +mod tests { + use std::sync::{ + Arc, + atomic::{AtomicUsize, Ordering}, + }; + + use super::HostListenerQueue; + + struct DropCounter(Arc); + + impl Drop for DropCounter { + fn drop(&mut self) { + self.0.fetch_add(1, Ordering::Relaxed); + } + } + + #[tokio::test] + async fn constructs_only_after_listener_accepts_ownership() { + let queue = HostListenerQueue::new(1); + let constructed = AtomicUsize::new(0); + + assert!( + queue + .enqueue_with(|| { + constructed.fetch_add(1, Ordering::Relaxed); + }) + .is_err() + ); + assert_eq!(constructed.load(Ordering::Relaxed), 0); + + assert!(queue.register_listener()); + queue + .enqueue_with(|| { + constructed.fetch_add(1, Ordering::Relaxed); + }) + .unwrap(); + assert!( + queue + .enqueue_with(|| { + constructed.fetch_add(1, Ordering::Relaxed); + }) + .is_err() + ); + assert_eq!(constructed.load(Ordering::Relaxed), 1); + queue.accept().await.unwrap(); + queue.unregister_listener(); + } + + #[test] + fn last_listener_closes_and_drains_pending_items() { + let queue = HostListenerQueue::new(1); + let drops = Arc::new(AtomicUsize::new(0)); + assert!(queue.register_listener()); + queue.enqueue_with(|| DropCounter(drops.clone())).unwrap(); + + queue.unregister_listener(); + + assert_eq!(drops.load(Ordering::Relaxed), 1); + assert!(!queue.register_listener()); + } +} diff --git a/easytier-core/src/peers/admission.rs b/easytier-core/src/peers/admission.rs index 66c690d6..f082207d 100644 --- a/easytier-core/src/peers/admission.rs +++ b/easytier-core/src/peers/admission.rs @@ -77,14 +77,12 @@ impl AcceptedTunnelHandler for PeerAcceptedTunnelHandler { } pub(crate) struct RawAcceptedTransportHandler { - peer_manager: Weak, + tunnel_handler: Arc, } impl RawAcceptedTransportHandler { - pub(crate) fn new(peer_manager: &Arc) -> Self { - Self { - peer_manager: Arc::downgrade(peer_manager), - } + pub(crate) fn new(tunnel_handler: Arc) -> Self { + Self { tunnel_handler } } } @@ -97,10 +95,6 @@ where &self, accepted: AcceptedTransport, ) -> anyhow::Result<()> { - let peer_manager = self - .peer_manager - .upgrade() - .ok_or_else(|| anyhow::anyhow!("peer manager is gone"))?; let tunnel = match accepted { AcceptedTransport::Tunnel { tunnel, .. } => tunnel, AcceptedTransport::Tcp { @@ -125,7 +119,48 @@ where remote_url, } => raw::upgrade_accepted_byte_stream(socket, local_url, remote_url)?, }; - peer_manager.add_tunnel_as_server(tunnel, true).await?; - Ok(()) + self.tunnel_handler.handle_tunnel(tunnel).await + } +} + +#[cfg(test)] +mod tests { + use std::sync::{ + Arc, + atomic::{AtomicUsize, Ordering}, + }; + + use super::*; + use crate::{host::testkit::TestTcpSocket, tunnel::ring::RingTunnelRegistry}; + + struct RecordingTunnelHandler(AtomicUsize); + + #[async_trait] + impl AcceptedTunnelHandler for RecordingTunnelHandler { + async fn handle_tunnel(&self, _tunnel: Box) -> anyhow::Result<()> { + self.0.fetch_add(1, Ordering::Relaxed); + Ok(()) + } + } + + #[tokio::test] + async fn raw_transport_delegates_tunnel_to_shared_admission_handler() { + let registry = Arc::new(RingTunnelRegistry::default()); + let local_id = uuid::Uuid::new_v4(); + let mut listener = registry.bind(local_id).unwrap(); + let _client = registry.connect(local_id).unwrap(); + let tunnel = listener.accept().await.unwrap().into_tunnel(); + let recorder = Arc::new(RecordingTunnelHandler(AtomicUsize::new(0))); + let handler = RawAcceptedTransportHandler::new(recorder.clone()); + + handler + .handle_accepted_socket(AcceptedTransport::::Tunnel { + tunnel, + local_url: format!("ring://{local_id}").parse().unwrap(), + }) + .await + .unwrap(); + + assert_eq!(recorder.0.load(Ordering::Relaxed), 1); } } diff --git a/easytier-core/src/tunnel/host_tunnel.rs b/easytier-core/src/tunnel/host_tunnel.rs new file mode 100644 index 00000000..5f65ccbb --- /dev/null +++ b/easytier-core/src/tunnel/host_tunnel.rs @@ -0,0 +1,221 @@ +//! EasyTier message tunnel over a host-owned transport. + +use std::{io, sync::Arc}; + +use futures::{sink, stream}; +use url::Url; + +use crate::{ + host::{ + socket::{HostSocketHandle, HostSocketRuntime}, + tunnel::{HostTunnelIo, MAX_HOST_TUNNEL_PAYLOAD_LEN}, + }, + packet::{ZCPacket, ZCPacketType}, + proto::common::TunnelInfo, +}; + +use super::{Tunnel, TunnelError, wrapper::TunnelWrapper}; + +struct HostTunnelResource { + io: Arc, + handle: HostSocketHandle, +} + +impl Drop for HostTunnelResource { + fn drop(&mut self) { + let _ = self.io.close(self.handle); + } +} + +/// Builds a message-preserving EasyTier tunnel around a host-owned transport. +pub fn new_host_tunnel( + runtime: HostSocketRuntime, + io: Arc, + handle: HostSocketHandle, + local_url: Url, + remote_url: Url, + resolved_remote_url: Option, +) -> Box { + let resource = Arc::new(HostTunnelResource { io, handle }); + let reader_resource = resource.clone(); + let reader_runtime = runtime.clone(); + let reader = stream::unfold( + (reader_runtime, reader_resource), + |(runtime, resource)| async move { + let result = runtime + .run_operation( + resource.io.clone(), + |io, operation| { + io.submit_receive(resource.handle, operation, MAX_HOST_TUNNEL_PAYLOAD_LEN) + }, + |io, operation| io.take_receive(operation), + |io, operation| io.cancel_operation(operation), + ) + .await; + let item = match result { + Ok(message) => Ok(ZCPacket::new_from_buf( + bytes::BytesMut::from(message.as_slice()), + ZCPacketType::DummyTunnel, + )), + Err(error) if error.kind() == io::ErrorKind::UnexpectedEof => return None, + Err(error) => Err(TunnelError::IOError(error)), + }; + Some((item, (runtime, resource))) + }, + ); + + let writer = sink::unfold( + (runtime, resource), + |(runtime, resource), packet: ZCPacket| async move { + let payload = packet.tunnel_payload_bytes(); + runtime + .run_operation( + resource.io.clone(), + |io, operation| io.submit_send(resource.handle, operation, &payload), + |io, operation| io.take_send(operation), + |io, operation| io.cancel_operation(operation), + ) + .await + .map_err(TunnelError::IOError)?; + Ok((runtime, resource)) + }, + ); + + let remote_addr = remote_url.clone().into(); + let resolved_remote_addr = resolved_remote_url + .unwrap_or_else(|| remote_url.clone()) + .into(); + let info = TunnelInfo { + tunnel_type: local_url.scheme().to_owned(), + local_addr: Some(local_url.into()), + remote_addr: Some(remote_addr), + resolved_remote_addr: Some(resolved_remote_addr), + }; + Box::new(TunnelWrapper::new(reader, writer, Some(info))) +} + +#[cfg(test)] +mod tests { + use std::{ + collections::{HashMap, VecDeque}, + sync::{ + Mutex, + atomic::{AtomicUsize, Ordering}, + }, + task::Poll, + }; + + use futures::{SinkExt as _, StreamExt as _}; + + use super::*; + use crate::host::socket::{HostOperationId, HostSocketIo}; + + #[derive(Default)] + struct MockTunnelIo { + incoming: Mutex>>>, + receives: Mutex>>>, + sends: Mutex>>, + sent: Mutex>>, + closes: AtomicUsize, + } + + impl HostSocketIo for MockTunnelIo { + fn cancel_operation(&self, operation: HostOperationId) -> io::Result<()> { + self.receives.lock().unwrap().remove(&operation); + self.sends.lock().unwrap().remove(&operation); + Ok(()) + } + + fn close(&self, _handle: HostSocketHandle) -> io::Result<()> { + self.closes.fetch_add(1, Ordering::SeqCst); + Ok(()) + } + } + + impl HostTunnelIo for MockTunnelIo { + fn submit_receive( + &self, + _handle: HostSocketHandle, + operation: HostOperationId, + _capacity: usize, + ) -> io::Result<()> { + let result = self.incoming.lock().unwrap().pop_front().unwrap(); + self.receives.lock().unwrap().insert(operation, result); + Ok(()) + } + + fn take_receive(&self, operation: HostOperationId) -> Poll>> { + Poll::Ready(self.receives.lock().unwrap().remove(&operation).unwrap()) + } + + fn submit_send( + &self, + _handle: HostSocketHandle, + operation: HostOperationId, + source: &[u8], + ) -> io::Result<()> { + self.sends + .lock() + .unwrap() + .insert(operation, source.to_vec()); + Ok(()) + } + + fn take_send(&self, operation: HostOperationId) -> Poll> { + let message = self.sends.lock().unwrap().remove(&operation).unwrap(); + self.sent.lock().unwrap().push(message); + Poll::Ready(Ok(())) + } + } + + fn tunnel(io: Arc) -> Box { + new_host_tunnel( + HostSocketRuntime::new(), + io, + HostSocketHandle(7), + Url::parse("test-tunnel://relay.example/").unwrap(), + Url::parse("test-tunnel://client.example/").unwrap(), + None, + ) + } + + #[test] + fn preserves_message_boundaries_and_closes_once() { + let io = Arc::new(MockTunnelIo::default()); + io.incoming.lock().unwrap().push_back(Ok(vec![1, 2, 3])); + io.incoming.lock().unwrap().push_back(Ok(vec![8, 9])); + let tunnel = tunnel(io.clone()); + assert_eq!(tunnel.info().unwrap().tunnel_type, "test-tunnel"); + let (mut reader, mut writer) = tunnel.split(); + + let first = futures::executor::block_on(reader.next()).unwrap().unwrap(); + let second = futures::executor::block_on(reader.next()).unwrap().unwrap(); + assert_eq!(first.tunnel_payload(), &[1, 2, 3]); + assert_eq!(second.tunnel_payload(), &[8, 9]); + + let packet = ZCPacket::new_from_buf( + bytes::BytesMut::from(&[4, 5, 6][..]), + ZCPacketType::DummyTunnel, + ); + futures::executor::block_on(writer.send(packet)).unwrap(); + assert_eq!(*io.sent.lock().unwrap(), vec![vec![4, 5, 6]]); + + drop(tunnel); + drop(reader); + drop(writer); + assert_eq!(io.closes.load(Ordering::SeqCst), 1); + } + + #[test] + fn maps_clean_remote_close_to_stream_eof() { + let io = Arc::new(MockTunnelIo::default()); + io.incoming + .lock() + .unwrap() + .push_back(Err(io::Error::new(io::ErrorKind::UnexpectedEof, "closed"))); + let tunnel = tunnel(io); + let (mut reader, _writer) = tunnel.split(); + + assert!(futures::executor::block_on(reader.next()).is_none()); + } +} diff --git a/easytier-core/src/tunnel/mod.rs b/easytier-core/src/tunnel/mod.rs index 7ba9878d..1a6b046c 100644 --- a/easytier-core/src/tunnel/mod.rs +++ b/easytier-core/src/tunnel/mod.rs @@ -18,6 +18,7 @@ pub use crate::socket::IpVersion; pub(crate) mod encrypt; pub mod filter; pub mod framed; +pub mod host_tunnel; pub mod mpsc; pub mod ring; pub(crate) mod secure_datagram; diff --git a/easytier-core/src/wasi/abi.rs b/easytier-core/src/wasi/abi.rs index 1f6a3557..16d3e109 100644 --- a/easytier-core/src/wasi/abi.rs +++ b/easytier-core/src/wasi/abi.rs @@ -34,7 +34,7 @@ pub const CORE_INSTANCE_CONFIG_VERSION: u32 = 14; pub const WEB_CLIENT_CONFIG_VERSION: u32 = 1; /// Version of the public data-plane guest export contract. -pub const DATA_PLANE_ABI_VERSION: u32 = 3; +pub const DATA_PLANE_ABI_VERSION: u32 = 4; /// Version of the protobuf RPC guest export contract. #[cfg(feature = "management-rpc")] @@ -54,6 +54,8 @@ pub const DATA_PLANE_UDP_CAPABILITY: u64 = 1 << 2; pub const DATA_PLANE_DEADLINE_READ: u32 = 1 << 0; /// Update the write deadline in `easytier_data_plane_resource_deadline_set`. pub const DATA_PLANE_DEADLINE_WRITE: u32 = 1 << 1; +/// Version of the host tunnel metadata and export contract. +pub const HOST_TUNNEL_ABI_VERSION: u32 = 1; /// Guest exports a WASI runtime calls to manage a core instance. /// @@ -62,6 +64,9 @@ pub const DATA_PLANE_DEADLINE_WRITE: u32 = 1 << 1; /// all asynchronous guest work through `easytier_instance_drive` and host /// completion notifications. pub const GUEST_EXPORTS: &[&str] = &[ + // WASI command initialization. This only binds the runtime; core lifecycle + // still starts through the instance exports below. + "_start", // Guest-memory buffers. "easytier_buffer_alloc", "easytier_buffer_free", @@ -112,6 +117,13 @@ pub const RPC_GUEST_EXPORTS: &[&str] = &[ "easytier_rpc_operation_free", ]; +/// Guest exports present with the host tunnel feature. +#[cfg(feature = "wasm-host-tunnel")] +pub const HOST_TUNNEL_GUEST_EXPORTS: &[&str] = &[ + "easytier_host_tunnel_abi_version", + "easytier_instance_accept_tunnel", +]; + /// Guest exports present when the core is built with the smoltcp data plane. #[cfg(feature = "proxy-smoltcp-stack")] pub const DATA_PLANE_GUEST_EXPORTS: &[&str] = &[ @@ -124,6 +136,7 @@ pub const DATA_PLANE_GUEST_EXPORTS: &[&str] = &[ "easytier_data_plane_tcp_accept_submit", "easytier_data_plane_tcp_read_submit", "easytier_data_plane_tcp_write_submit", + "easytier_data_plane_tcp_shutdown_write_submit", "easytier_data_plane_udp_bind_submit", "easytier_data_plane_udp_receive_submit", "easytier_data_plane_udp_send_submit", @@ -136,6 +149,7 @@ pub const DATA_PLANE_GUEST_EXPORTS: &[&str] = &[ "easytier_data_plane_tcp_accept_result_take", "easytier_data_plane_tcp_read_result_take", "easytier_data_plane_tcp_write_result_take", + "easytier_data_plane_tcp_shutdown_write_result_take", "easytier_data_plane_udp_bind_result_take", "easytier_data_plane_udp_receive_result_take", "easytier_data_plane_udp_send_result_take", diff --git a/easytier-core/src/wasi/adapter/mod.rs b/easytier-core/src/wasi/adapter/mod.rs index 1fd692c9..7ef44d17 100644 --- a/easytier-core/src/wasi/adapter/mod.rs +++ b/easytier-core/src/wasi/adapter/mod.rs @@ -7,3 +7,5 @@ pub mod event; pub mod management; pub mod packet; pub mod socket; +#[cfg(feature = "wasm-host-tunnel")] +pub mod tunnel; diff --git a/easytier-core/src/wasi/adapter/tunnel.rs b/easytier-core/src/wasi/adapter/tunnel.rs new file mode 100644 index 00000000..35104069 --- /dev/null +++ b/easytier-core/src/wasi/adapter/tunnel.rs @@ -0,0 +1,397 @@ +//! WASI imports for host-owned message tunnels. + +use std::{ + collections::HashMap, + io, + sync::{Arc, Mutex}, + task::Poll, +}; + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +use std::{fmt, marker::PhantomData}; + +use crate::{ + host::{ + socket::{HostOperationId, HostSocketHandle, HostSocketIo}, + tunnel::HostTunnelIo, + }, + tunnel::Tunnel, + wasi::{ + imports::{ + HOST_PENDING, HOST_TUNNEL_CLOSED, cancel_operation, close, start_tunnel_receive, + start_tunnel_send, take_tunnel_receive, take_tunnel_send, + }, + wire::common::{host_error, status}, + }, +}; + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +use crate::{ + listener::{ + ExternalListenerFactory, ExternalListenerRequest, queue::HostListenerQueue, + transport::AcceptedTransport, + }, + socket::{SocketListener, tcp::VirtualTcpSocket}, +}; + +#[cfg(feature = "wasm-host-tunnel-outbound")] +use crate::connectivity::manual::ExternalTunnelConnector; +#[cfg(feature = "wasm-host-tunnel-outbound")] +use crate::wasi::imports::{start_tunnel_connect, take_tunnel_connect}; + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +const MAX_PENDING_HOST_TUNNELS: usize = 256; + +#[derive(Default)] +pub struct WasiHostTunnelIo { + receive_capacities: Mutex>, +} + +impl WasiHostTunnelIo { + fn forget_operation(&self, operation: HostOperationId) { + self.receive_capacities.lock().unwrap().remove(&operation); + } +} + +impl HostSocketIo for WasiHostTunnelIo { + fn cancel_operation(&self, operation: HostOperationId) -> io::Result<()> { + self.forget_operation(operation); + status("cancel_operation", unsafe { cancel_operation(operation.0) }) + } + + fn close(&self, handle: HostSocketHandle) -> io::Result<()> { + status("close", unsafe { close(handle.0) }) + } +} + +impl HostTunnelIo for WasiHostTunnelIo { + fn submit_receive( + &self, + handle: HostSocketHandle, + operation: HostOperationId, + capacity: usize, + ) -> io::Result<()> { + let capacity = u32::try_from(capacity).map_err(|_| { + io::Error::new( + io::ErrorKind::InvalidInput, + "host tunnel receive buffer is too large", + ) + })?; + status("start_tunnel_receive", unsafe { + start_tunnel_receive(handle.0, operation.0, capacity) + })?; + self.receive_capacities + .lock() + .unwrap() + .insert(operation, capacity as usize); + Ok(()) + } + + fn take_receive(&self, operation: HostOperationId) -> Poll>> { + let mut capacities = self.receive_capacities.lock().unwrap(); + let Some(&capacity) = capacities.get(&operation) else { + return Poll::Ready(Err(io::Error::new( + io::ErrorKind::NotFound, + "WASI host tunnel receive capacity is missing", + ))); + }; + let result = unsafe { take_tunnel_receive(operation.0, 0, 0) }; + match result { + HOST_PENDING => Poll::Pending, + HOST_TUNNEL_CLOSED => { + capacities.remove(&operation); + Poll::Ready(Err(io::Error::new( + io::ErrorKind::UnexpectedEof, + "host tunnel closed", + ))) + } + length if length >= 0 => { + let length = length as usize; + if length > capacity { + capacities.remove(&operation); + let _ = unsafe { cancel_operation(operation.0) }; + return Poll::Ready(Err(io::Error::new( + io::ErrorKind::InvalidData, + "host tunnel payload exceeds submitted capacity", + ))); + } + let mut buffer = vec![0; length]; + let copied = unsafe { + take_tunnel_receive( + operation.0, + buffer.as_mut_ptr() as u32, + buffer.len() as u32, + ) + }; + capacities.remove(&operation); + if copied == length as i32 { + Poll::Ready(Ok(buffer)) + } else { + let _ = unsafe { cancel_operation(operation.0) }; + Poll::Ready(Err(host_error("take_tunnel_receive copy", copied))) + } + } + code => { + capacities.remove(&operation); + Poll::Ready(Err(host_error("take_tunnel_receive", code))) + } + } + } + + fn submit_send( + &self, + handle: HostSocketHandle, + operation: HostOperationId, + source: &[u8], + ) -> io::Result<()> { + let length = u32::try_from(source.len()).map_err(|_| { + io::Error::new( + io::ErrorKind::InvalidInput, + "host tunnel send buffer is too large", + ) + })?; + status("start_tunnel_send", unsafe { + start_tunnel_send(handle.0, operation.0, source.as_ptr() as u32, length) + }) + } + + fn take_send(&self, operation: HostOperationId) -> Poll> { + match unsafe { take_tunnel_send(operation.0) } { + HOST_PENDING => Poll::Pending, + 0 => Poll::Ready(Ok(())), + code => Poll::Ready(Err(host_error("take_tunnel_send", code))), + } + } +} + +#[cfg(feature = "wasm-host-tunnel-outbound")] +pub(crate) struct WasiHostTunnelConnector { + runtime: crate::host::socket::HostSocketRuntime, + io: Arc, + supported_schemes: Arc<[String]>, +} + +#[cfg(feature = "wasm-host-tunnel-outbound")] +impl WasiHostTunnelConnector { + pub(crate) fn new( + runtime: crate::host::socket::HostSocketRuntime, + io: Arc, + supported_schemes: Arc<[String]>, + ) -> Self { + Self { + runtime, + io, + supported_schemes, + } + } +} + +#[cfg(feature = "wasm-host-tunnel-outbound")] +#[async_trait::async_trait] +impl ExternalTunnelConnector for WasiHostTunnelConnector { + fn supports_scheme(&self, scheme: &str) -> bool { + self.supported_schemes + .iter() + .any(|supported| supported == scheme) + } + + async fn connect(&self, url: &url::Url) -> anyhow::Result> { + let encoded = url.as_str().as_bytes(); + let encoded_len = u32::try_from(encoded.len()) + .map_err(|_| anyhow::anyhow!("host tunnel URL exceeds WASI guest memory"))?; + let handle = self + .runtime + .run_operation( + self.io.clone(), + |_, operation| { + status("start_tunnel_connect", unsafe { + start_tunnel_connect(operation.0, encoded.as_ptr() as u32, encoded_len) + }) + }, + |_, operation| match unsafe { take_tunnel_connect(operation.0) } { + value if value == i64::from(HOST_PENDING) => Poll::Pending, + value if value > 0 => Poll::Ready(Ok(HostSocketHandle(value as u64))), + value => Poll::Ready(Err(host_error( + "take_tunnel_connect", + i32::try_from(value).unwrap_or(i32::MIN), + ))), + }, + |io, operation| io.cancel_operation(operation), + ) + .await?; + let local_url = url::Url::parse(&format!("{}://0.0.0.0:0", url.scheme()))?; + Ok(crate::tunnel::host_tunnel::new_host_tunnel( + self.runtime.clone(), + self.io.clone(), + handle, + local_url, + url.clone(), + None, + )) + } +} + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +type HostTunnelQueue = HostListenerQueue>; + +/// Owns the Host Tunnel I/O Adapter and its listener admission queue. +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +pub(crate) struct WasiHostTunnelIngress { + runtime: crate::host::socket::HostSocketRuntime, + io: Arc, + queue: Arc, + supported_schemes: Arc<[String]>, +} + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +impl WasiHostTunnelIngress { + pub(crate) fn new( + runtime: crate::host::socket::HostSocketRuntime, + supported_schemes: Arc<[String]>, + ) -> Self { + Self::with_io( + runtime, + Arc::new(WasiHostTunnelIo::default()), + supported_schemes, + ) + } + + pub(crate) fn with_io( + runtime: crate::host::socket::HostSocketRuntime, + io: Arc, + supported_schemes: Arc<[String]>, + ) -> Self { + Self { + runtime, + io, + queue: Arc::new(HostListenerQueue::new(MAX_PENDING_HOST_TUNNELS)), + supported_schemes, + } + } + + pub(crate) fn listener_factory( + &self, + ) -> Arc>> + where + TcpSocket: VirtualTcpSocket, + { + Arc::new(WasiHostTunnelListenerFactory { + queue: self.queue.clone(), + supported_schemes: self.supported_schemes.clone(), + }) + } + + pub(crate) fn accept( + &self, + handle: HostSocketHandle, + metadata: crate::wasi::schema::WasiHostTunnelMetadata, + ) -> anyhow::Result<()> { + let crate::wasi::schema::WasiHostTunnelMetadata { + local_url, + remote_url, + resolved_remote_url, + .. + } = metadata; + self.queue.enqueue_with(|| { + crate::tunnel::host_tunnel::new_host_tunnel( + self.runtime.clone(), + self.io.clone(), + handle, + local_url, + remote_url, + resolved_remote_url, + ) + }) + } +} + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +struct WasiHostTunnelListenerFactory { + queue: Arc, + supported_schemes: Arc<[String]>, +} + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +impl ExternalListenerFactory> + for WasiHostTunnelListenerFactory +where + TcpSocket: VirtualTcpSocket, +{ + fn supports_scheme(&self, scheme: &str) -> bool { + self.supported_schemes + .iter() + .any(|supported| supported == scheme) + } + + fn create( + &self, + request: ExternalListenerRequest, + ) -> Box>> { + Box::new(WasiHostTunnelListener { + registered: self.queue.register_listener(), + queue: self.queue.clone(), + local_url: request.url, + tcp_socket: PhantomData, + }) + } +} + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +struct WasiHostTunnelListener { + registered: bool, + queue: Arc, + local_url: url::Url, + tcp_socket: PhantomData TcpSocket>, +} + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +impl fmt::Debug for WasiHostTunnelListener { + fn fmt(&self, formatter: &mut fmt::Formatter<'_>) -> fmt::Result { + formatter + .debug_struct("WasiHostTunnelListener") + .field("local_url", &self.local_url) + .field("registered", &self.registered) + .finish() + } +} + +#[async_trait::async_trait] +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +impl SocketListener for WasiHostTunnelListener +where + TcpSocket: VirtualTcpSocket, +{ + type Accepted = AcceptedTransport; + + async fn listen(&mut self) -> anyhow::Result<()> { + if !self.registered { + anyhow::bail!("Host Tunnel listener queue is closed"); + } + Ok(()) + } + + async fn accept(&mut self) -> anyhow::Result { + let tunnel = self + .queue + .accept() + .await + .ok_or_else(|| anyhow::anyhow!("Host Tunnel listener queue is closed"))?; + Ok(AcceptedTransport::Tunnel { + tunnel, + local_url: self.local_url.clone(), + }) + } + + fn local_url(&self) -> url::Url { + self.local_url.clone() + } +} + +#[cfg(not(feature = "wasm-host-tunnel-outbound"))] +impl Drop for WasiHostTunnelListener { + fn drop(&mut self) { + if self.registered { + self.queue.unregister_listener(); + } + } +} diff --git a/easytier-core/src/wasi/imports.rs b/easytier-core/src/wasi/imports.rs index 11aad863..d19e7275 100644 --- a/easytier-core/src/wasi/imports.rs +++ b/easytier-core/src/wasi/imports.rs @@ -6,6 +6,8 @@ pub(crate) const HOST_PENDING: i32 = -1; pub(crate) const HOST_WOULD_BLOCK: i32 = -5; +#[cfg(feature = "wasm-host-tunnel")] +pub(crate) const HOST_TUNNEL_CLOSED: i32 = -10; #[link(wasm_import_module = "easytier_host")] unsafe extern "C" { @@ -188,6 +190,33 @@ unsafe extern "C" { /// Reports packet-sink write readiness; it never accepts a packet itself. pub(crate) fn take_packet_write_ready(operation: u64) -> i32; + #[cfg(feature = "wasm-host-tunnel")] + /// Starts receiving one complete host tunnel payload. + pub(crate) fn start_tunnel_receive(handle: u64, operation: u64, capacity: u32) -> i32; + + #[cfg(feature = "wasm-host-tunnel")] + /// Probes or copies one payload, or returns the closed sentinel. + /// + /// A null destination with zero capacity returns the payload length without + /// consuming it. A second call copies and consumes the payload. + pub(crate) fn take_tunnel_receive(operation: u64, destination: u32, capacity: u32) -> i32; + + #[cfg(feature = "wasm-host-tunnel")] + /// Starts sending one complete host tunnel payload. + pub(crate) fn start_tunnel_send(handle: u64, operation: u64, source: u32, length: u32) -> i32; + + #[cfg(feature = "wasm-host-tunnel")] + /// Reports completion of one host tunnel send. + pub(crate) fn take_tunnel_send(operation: u64) -> i32; + + #[cfg(feature = "wasm-host-tunnel-outbound")] + /// Starts opening one outbound host tunnel for the requested URL. + pub(crate) fn start_tunnel_connect(operation: u64, url: u32, url_len: u32) -> i32; + + #[cfg(feature = "wasm-host-tunnel-outbound")] + /// Returns the connected tunnel handle, or a negative host status. + pub(crate) fn take_tunnel_connect(operation: u64) -> i64; + /// Cancels a pending or completed-but-unread operation and releases host state. /// /// Cancellation must be idempotent when the operation is already absent. diff --git a/easytier-core/src/wasi/runtime.rs b/easytier-core/src/wasi/runtime.rs index 573fde3b..6adc3cfc 100644 --- a/easytier-core/src/wasi/runtime.rs +++ b/easytier-core/src/wasi/runtime.rs @@ -45,6 +45,11 @@ pub(super) type WasiCore = crate::instance::CoreInstance< pub(super) struct WasiCoreRuntime { socket_runtime: crate::host::socket::HostSocketRuntime, + #[cfg(all( + feature = "wasm-host-tunnel", + not(feature = "wasm-host-tunnel-outbound") + ))] + tunnel_ingress: crate::wasi::adapter::tunnel::WasiHostTunnelIngress, core: std::sync::Arc, } @@ -56,6 +61,27 @@ impl WasiCoreRuntime { pub(super) fn notify_host_completions(&self) { self.socket_runtime.notify_completions(); } + + #[cfg(all( + feature = "wasm-host-tunnel", + not(feature = "wasm-host-tunnel-outbound") + ))] + pub(super) fn accept_tunnel( + &self, + handle: crate::host::socket::HostSocketHandle, + metadata: crate::wasi::schema::WasiHostTunnelMetadata, + ) -> anyhow::Result<()> { + self.tunnel_ingress.accept(handle, metadata) + } + + #[cfg(feature = "wasm-host-tunnel-outbound")] + pub(super) fn accept_tunnel( + &self, + _handle: crate::host::socket::HostSocketHandle, + _metadata: crate::wasi::schema::WasiHostTunnelMetadata, + ) -> anyhow::Result<()> { + anyhow::bail!("Host Tunnel admission is unavailable in outbound-only WASI") + } } pub(super) fn new_wasi_core_runtime( @@ -69,7 +95,6 @@ pub(super) fn new_wasi_core_runtime( use crate::host::{dns::HostDnsResolver, packet::HostPacketSink, socket::HostSocketRuntime}; use crate::{ - connectivity::connector_host::new_connector_host, instance::{CoreHostAdapters, CoreInstance}, wasi::adapter::{ dns::WasiHostDnsIo, environment::WasiHostConnectorEnvironmentIo, @@ -78,12 +103,36 @@ pub(super) fn new_wasi_core_runtime( }, }; + #[cfg(not(feature = "wasm-host-tunnel-outbound"))] + use crate::connectivity::connector_host::new_connector_host; + #[cfg(feature = "wasm-host-tunnel-outbound")] + use crate::connectivity::connector_host::new_connector_host_with_external_tunnel; + let socket_runtime = HostSocketRuntime::new(); + let socket_backend = Arc::new(WasiHostSocketBackend::default()); + let environment_io = Arc::new(WasiHostConnectorEnvironmentIo); + #[cfg(feature = "wasm-host-tunnel")] + let host_tunnel_schemes: Arc<[String]> = Arc::from(["ws".to_owned(), "wss".to_owned()]); + #[cfg(feature = "wasm-host-tunnel-outbound")] + let tunnel_io = Arc::new(crate::wasi::adapter::tunnel::WasiHostTunnelIo::default()); + #[cfg(feature = "wasm-host-tunnel-outbound")] + let host = Arc::new(new_connector_host_with_external_tunnel( + socket_runtime.clone(), + socket_backend, + environment_snapshot, + environment_io, + Arc::new(crate::wasi::adapter::tunnel::WasiHostTunnelConnector::new( + socket_runtime.clone(), + tunnel_io, + host_tunnel_schemes.clone(), + )), + )); + #[cfg(not(feature = "wasm-host-tunnel-outbound"))] let host = Arc::new(new_connector_host( socket_runtime.clone(), - Arc::new(WasiHostSocketBackend::default()), + socket_backend, environment_snapshot, - Arc::new(WasiHostConnectorEnvironmentIo), + environment_io, )); let dns = Arc::new(HostDnsResolver::new( socket_runtime.clone(), @@ -97,10 +146,45 @@ pub(super) fn new_wasi_core_runtime( let mut adapters = CoreHostAdapters::new(host, dns, packet_sink, process_runtime); adapters.instance_runtime = Arc::new(WasiInstanceRuntimeHost); adapters.events = Arc::new(WasiHostEventSink::new(event_sink)); + #[cfg(feature = "wasm-host-tunnel-outbound")] + { + adapters.config.connectivity = crate::instance::CoreConnectivityMode::OutboundOnly; + adapters.config.smoltcp_available = true; + adapters.config.requires_smoltcp = true; + adapters.config.gateway_enabled = false; + adapters.config.proxy_enabled = false; + adapters.config.ignore_unsupported_config = true; + adapters.config.endpoint_protocols = host_tunnel_schemes.to_vec(); + } + #[cfg(feature = "wasm-host-tunnel")] + #[cfg(not(feature = "wasm-host-tunnel-outbound"))] + let tunnel_ingress = crate::wasi::adapter::tunnel::WasiHostTunnelIngress::new( + socket_runtime.clone(), + host_tunnel_schemes, + ); + #[cfg(feature = "wasm-host-tunnel")] + #[cfg(not(feature = "wasm-host-tunnel-outbound"))] + { + adapters.config.connectivity = crate::instance::CoreConnectivityMode::InboundOnly; + adapters.external_listener_factory = Some(tunnel_ingress.listener_factory()); + adapters + .host_listener_registrations + .push(crate::listener::ExternalListenerRequest { + url: "wss://0.0.0.0:443" + .parse() + .expect("Host Tunnel listener URL must be valid"), + socket_context: crate::socket::SocketContext::default(), + }); + } let core = CoreInstance::from_toml(config, adapters)?; Ok(WasiCoreRuntime { socket_runtime, + #[cfg(all( + feature = "wasm-host-tunnel", + not(feature = "wasm-host-tunnel-outbound") + ))] + tunnel_ingress, core, }) } @@ -128,6 +212,8 @@ mod abi { use super::{WasiCoreRuntime, new_wasi_core_runtime}; use crate::wasi::schema::WasiCoreInstanceCreateConfig; + #[cfg(feature = "wasm-host-tunnel")] + use crate::wasi::schema::WasiHostTunnelMetadata; #[cfg(feature = "proxy-smoltcp-stack")] mod data_plane; @@ -137,6 +223,8 @@ mod abi { mod web_client; const MAX_CREATE_CONFIG_LEN: usize = 16 * 1024 * 1024; + #[cfg(feature = "wasm-host-tunnel")] + const MAX_HOST_TUNNEL_METADATA_LEN: usize = 16 * 1024; const MAX_GUEST_BUFFER_LEN: usize = MAX_CREATE_CONFIG_LEN; #[cfg(feature = "management-rpc")] const MAX_RPC_MESSAGE_LEN: usize = 16 * 1024 * 1024; @@ -480,6 +568,18 @@ mod abi { } }); } + + #[cfg(feature = "wasm-host-tunnel")] + fn accept_tunnel( + &self, + tunnel_handle: crate::host::socket::HostSocketHandle, + metadata: WasiHostTunnelMetadata, + ) -> anyhow::Result<()> { + if self.core.core().state() != CoreInstanceState::Running { + anyhow::bail!("core instance is not running"); + } + self.core.accept_tunnel(tunnel_handle, metadata) + } } fn decode_create_config(encoded: &[u8]) -> anyhow::Result { @@ -583,6 +683,10 @@ mod abi { with_abi_state(|state| state.read_buffer(pointer, length)) } + #[unsafe(no_mangle)] + /// WASI command entrypoint used only to initialize the host runtime. + pub extern "C" fn _start() {} + #[unsafe(no_mangle)] /// Allocates a guest-owned ABI buffer and returns its linear-memory offset. /// @@ -795,6 +899,63 @@ mod abi { }) } + #[cfg(feature = "wasm-host-tunnel")] + #[unsafe(no_mangle)] + /// Returns the host tunnel ABI version implemented by this guest. + pub extern "C" fn easytier_host_tunnel_abi_version() -> u32 { + crate::wasi::abi::HOST_TUNNEL_ABI_VERSION + } + + #[cfg(feature = "wasm-host-tunnel")] + #[unsafe(no_mangle)] + /// Transfers one host-owned transport into server tunnel admission. + /// + /// `metadata` is a versioned JSON document. A zero return transfers + /// ownership of `tunnel_handle` to the guest; on failure the host keeps + /// ownership and must close it. Admission is scheduled and completed by + /// later drive calls so the export never waits for the peer handshake. + pub extern "C" fn easytier_instance_accept_tunnel( + handle: u64, + tunnel_handle: u64, + metadata_pointer: u32, + metadata_length: u32, + ) -> i32 { + if tunnel_handle == 0 { + set_instance_error(handle, "host tunnel handle must be non-zero"); + return INVALID_INPUT; + } + let encoded = match read_guest_buffer( + metadata_pointer, + metadata_length, + MAX_HOST_TUNNEL_METADATA_LEN, + ) { + Ok(encoded) => encoded, + Err(error) => { + set_instance_error(handle, error); + return INVALID_INPUT; + } + }; + let metadata: WasiHostTunnelMetadata = match serde_json::from_slice(&encoded) { + Ok(metadata) => metadata, + Err(error) => { + set_instance_error(handle, error); + return INVALID_INPUT; + } + }; + if let Err(error) = metadata.validate() { + set_instance_error(handle, error); + return INVALID_INPUT; + } + + with_instance(handle, |instance| { + instance.accept_tunnel( + crate::host::socket::HostSocketHandle(tunnel_handle), + metadata, + )?; + Ok(0) + }) + } + #[unsafe(no_mangle)] /// Destroys an instance and releases its lifecycle, timer, and runtime state. pub extern "C" fn easytier_instance_drop(handle: u64) -> i32 { diff --git a/easytier-core/src/wasi/runtime/abi/data_plane.rs b/easytier-core/src/wasi/runtime/abi/data_plane.rs index a4617977..90e1318e 100644 --- a/easytier-core/src/wasi/runtime/abi/data_plane.rs +++ b/easytier-core/src/wasi/runtime/abi/data_plane.rs @@ -233,7 +233,7 @@ fn require_ipv4(address: SocketAddr) -> Result { address.is_ipv4().then_some(address).ok_or_else(|| { error( DataPlaneErrorKind::AddressFamilyUnsupported, - "data-plane ABI v2 supports IPv4 only", + "data-plane ABI supports IPv4 only", ) }) } @@ -355,6 +355,24 @@ pub extern "C" fn easytier_data_plane_tcp_write_submit( }) } +#[unsafe(no_mangle)] +pub extern "C" fn easytier_data_plane_tcp_shutdown_write_submit( + handle: u64, + stream: u64, + output_operation: u32, +) -> i32 { + let stream = match resource_id(stream) { + Ok(stream) => stream, + Err(error) => { + set_instance_error(handle, error.message()); + return error_status(error.kind()); + } + }; + submit_operation(handle, output_operation, |instance| { + instance.submit_data_plane(|session| session.submit_tcp_shutdown_write(stream)) + }) +} + #[unsafe(no_mangle)] pub extern "C" fn easytier_data_plane_udp_bind_submit( handle: u64, @@ -660,6 +678,26 @@ pub extern "C" fn easytier_data_plane_tcp_write_result_take(handle: u64, operati }) } +#[unsafe(no_mangle)] +pub extern "C" fn easytier_data_plane_tcp_shutdown_write_result_take( + handle: u64, + operation: u64, +) -> i32 { + data_plane_call(handle, |instance| { + let session = instance.data_plane_session(); + take_result( + &session, + operation_id(operation)?, + DataPlaneOperationKind::TcpShutdownWrite, + |result| match result { + DataPlaneOperationResult::TcpWriteShutdown => Ok(()), + _ => Err(invalid_input("TCP write shutdown result variant mismatch")), + }, + )?; + Ok(0) + }) +} + #[unsafe(no_mangle)] pub extern "C" fn easytier_data_plane_udp_bind_result_take( handle: u64, diff --git a/easytier-core/src/wasi/runtime_driver.rs b/easytier-core/src/wasi/runtime_driver.rs index feb9b22f..38239e80 100644 --- a/easytier-core/src/wasi/runtime_driver.rs +++ b/easytier-core/src/wasi/runtime_driver.rs @@ -12,6 +12,10 @@ use std::{ use tokio::runtime::Runtime; +// A zero-duration timer can win before the executor's park hook observes +// quiescence, especially when JSPI resumes the guest on a slower embedder. +const DRIVE_BUDGET: Duration = Duration::from_millis(10); + #[derive(Debug, Clone, Copy, PartialEq, Eq)] pub(super) enum RuntimeDriveOutcome { Quiescent, @@ -52,7 +56,7 @@ impl RuntimeDriver { let _active = RuntimeDriverGuard::activate(self.state.as_ref()); runtime.block_on(async { - let budget = tokio::time::sleep(Duration::ZERO); + let budget = tokio::time::sleep(DRIVE_BUDGET); tokio::pin!(budget); poll_fn(|context| { if self.state.poll_quiescent(context.waker()) { diff --git a/easytier-core/src/wasi/schema.rs b/easytier-core/src/wasi/schema.rs index 40a7153b..090dec85 100644 --- a/easytier-core/src/wasi/schema.rs +++ b/easytier-core/src/wasi/schema.rs @@ -60,3 +60,40 @@ impl WasiWebClientCreateConfig { Ok(()) } } + +#[cfg(feature = "wasm-host-tunnel")] +#[derive(Debug, Clone, Serialize, Deserialize)] +pub(crate) struct WasiHostTunnelMetadata { + pub version: u32, + pub local_url: url::Url, + pub remote_url: url::Url, + #[serde(default)] + pub resolved_remote_url: Option, +} + +#[cfg(feature = "wasm-host-tunnel")] +impl WasiHostTunnelMetadata { + pub(crate) fn validate(&self) -> anyhow::Result<()> { + if self.version != crate::wasi::abi::HOST_TUNNEL_ABI_VERSION { + anyhow::bail!("unsupported host tunnel ABI version: {}", self.version); + } + Ok(()) + } +} + +#[cfg(all(test, feature = "wasm-host-tunnel"))] +mod tests { + use super::*; + + #[test] + fn host_tunnel_metadata_accepts_transport_neutral_urls() { + let metadata = WasiHostTunnelMetadata { + version: crate::wasi::abi::HOST_TUNNEL_ABI_VERSION, + local_url: "test-tunnel://listener.example/".parse().unwrap(), + remote_url: "test-tunnel://peer.example/".parse().unwrap(), + resolved_remote_url: None, + }; + + metadata.validate().unwrap(); + } +} diff --git a/easytier-core/src/wasi/wire/data_plane.rs b/easytier-core/src/wasi/wire/data_plane.rs index fa62c8c1..68179385 100644 --- a/easytier-core/src/wasi/wire/data_plane.rs +++ b/easytier-core/src/wasi/wire/data_plane.rs @@ -22,7 +22,7 @@ pub(crate) fn decode_ipv4_socket_address(wire: &[u8]) -> io::Result if !address.is_ipv4() { return Err(io::Error::new( io::ErrorKind::Unsupported, - "data-plane ABI v2 supports IPv4 only", + "data-plane ABI supports IPv4 only", )); } Ok(address) diff --git a/easytier-go/KNOWN_LIMITATIONS.md b/easytier-go/KNOWN_LIMITATIONS.md new file mode 100644 index 00000000..b4f89b24 --- /dev/null +++ b/easytier-go/KNOWN_LIMITATIONS.md @@ -0,0 +1,27 @@ +# Known limitations + +These edge cases are intentionally kept separate from feature changes so they +can be addressed without expanding unrelated patches. + +## Port-forward bind conflicts + +`InstanceConfigBuilder.Build` rejects exact duplicate port-forward rules, but +two rules with the same protocol and bind address and different destinations +are rejected later by `Instance.Start` when Core binds the second socket. +Callers should keep each `(protocol, bind address)` pair unique. + +## Maximum UDP datagram reassembly + +Core buffers can carry the maximum IPv4 UDP payload of 65,507 bytes. At the +current data-plane MTU this requires about 52 IPv4 fragments, while smoltcp can +track 16 disjoint reassembly segments. Extremely out-of-order delivery that +creates more than 16 holes can therefore drop an otherwise valid maximum-size +datagram. Ordered delivery is covered by the current tests. + +## First inbound `ListenPacket` flow + +An `Instance.ListenPacket` socket currently installs an exact UDP data-plane +flow after sending to a peer. A newly bound socket may not receive the first +datagram from a previously unseen peer until a reciprocal flow has been +established. This does not affect the TUN packet plane or Core port-forward +destinations reached through it. diff --git a/easytier-go/LICENSE b/easytier-go/LICENSE new file mode 100644 index 00000000..0a041280 --- /dev/null +++ b/easytier-go/LICENSE @@ -0,0 +1,165 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + + This version of the GNU Lesser General Public License incorporates +the terms and conditions of version 3 of the GNU General Public +License, supplemented by the additional permissions listed below. + + 0. Additional Definitions. + + As used herein, "this License" refers to version 3 of the GNU Lesser +General Public License, and the "GNU GPL" refers to version 3 of the GNU +General Public License. + + "The Library" refers to a covered work governed by this License, +other than an Application or a Combined Work as defined below. + + An "Application" is any work that makes use of an interface provided +by the Library, but which is not otherwise based on the Library. +Defining a subclass of a class defined by the Library is deemed a mode +of using an interface provided by the Library. + + A "Combined Work" is a work produced by combining or linking an +Application with the Library. The particular version of the Library +with which the Combined Work was made is also called the "Linked +Version". + + The "Minimal Corresponding Source" for a Combined Work means the +Corresponding Source for the Combined Work, excluding any source code +for portions of the Combined Work that, considered in isolation, are +based on the Application, and not on the Linked Version. + + The "Corresponding Application Code" for a Combined Work means the +object code and/or source code for the Application, including any data +and utility programs needed for reproducing the Combined Work from the +Application, but excluding the System Libraries of the Combined Work. + + 1. Exception to Section 3 of the GNU GPL. + + You may convey a covered work under sections 3 and 4 of this License +without being bound by section 3 of the GNU GPL. + + 2. Conveying Modified Versions. + + If you modify a copy of the Library, and, in your modifications, a +facility refers to a function or data to be supplied by an Application +that uses the facility (other than as an argument passed when the +facility is invoked), then you may convey a copy of the modified +version: + + a) under this License, provided that you make a good faith effort to + ensure that, in the event an Application does not supply the + function or data, the facility still operates, and performs + whatever part of its purpose remains meaningful, or + + b) under the GNU GPL, with none of the additional permissions of + this License applicable to that copy. + + 3. Object Code Incorporating Material from Library Header Files. + + The object code form of an Application may incorporate material from +a header file that is part of the Library. You may convey such object +code under terms of your choice, provided that, if the incorporated +material is not limited to numerical parameters, data structure +layouts and accessors, or small macros, inline functions and templates +(ten or fewer lines in length), you do both of the following: + + a) Give prominent notice with each copy of the object code that the + Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the object code with a copy of the GNU GPL and this license + document. + + 4. Combined Works. + + You may convey a Combined Work under terms of your choice that, +taken together, effectively do not restrict modification of the +portions of the Library contained in the Combined Work and reverse +engineering for debugging such modifications, if you also do each of +the following: + + a) Give prominent notice with each copy of the Combined Work that + the Library is used in it and that the Library and its use are + covered by this License. + + b) Accompany the Combined Work with a copy of the GNU GPL and this license + document. + + c) For a Combined Work that displays copyright notices during + execution, include the copyright notice for the Library among + these notices, as well as a reference directing the user to the + copies of the GNU GPL and this license document. + + d) Do one of the following: + + 0) Convey the Minimal Corresponding Source under the terms of this + License, and the Corresponding Application Code in a form + suitable for, and under terms that permit, the user to + recombine or relink the Application with a modified version of + the Linked Version to produce a modified Combined Work, in the + manner specified by section 6 of the GNU GPL for conveying + Corresponding Source. + + 1) Use a suitable shared library mechanism for linking with the + Library. A suitable mechanism is one that (a) uses at run time + a copy of the Library already present on the user's computer + system, and (b) will operate properly with a modified version + of the Library that is interface-compatible with the Linked + Version. + + e) Provide Installation Information, but only if you would otherwise + be required to provide such information under section 6 of the + GNU GPL, and only to the extent that such information is + necessary to install and execute a modified version of the + Combined Work produced by recombining or relinking the + Application with a modified version of the Linked Version. (If + you use option 4d0, the Installation Information must accompany + the Minimal Corresponding Source and Corresponding Application + Code. If you use option 4d1, you must provide the Installation + Information in the manner specified by section 6 of the GNU GPL + for conveying Corresponding Source.) + + 5. Combined Libraries. + + You may place library facilities that are a work based on the +Library side by side in a single library together with other library +facilities that are not Applications and are not covered by this +License, and convey such a combined library under terms of your +choice, if you do both of the following: + + a) Accompany the combined library with a copy of the same work based + on the Library, uncombined with any other library facilities, + conveyed under the terms of this License. + + b) Give prominent notice with the combined library that part of it + is a work based on the Library, and explaining where to find the + accompanying uncombined form of the same work. + + 6. Revised Versions of the GNU Lesser General Public License. + + The Free Software Foundation may publish revised and/or new versions +of the GNU Lesser General Public License from time to time. Such new +versions will be similar in spirit to the present version, but may +differ in detail to address new problems or concerns. + + Each version is given a distinguishing version number. If the +Library as you received it specifies that a certain numbered version +of the GNU Lesser General Public License "or any later version" +applies to it, you have the option of following the terms and +conditions either of that published version or of any later version +published by the Free Software Foundation. If the Library as you +received it does not specify a version number of the GNU Lesser +General Public License, you may choose any version of the GNU Lesser +General Public License ever published by the Free Software Foundation. + + If the Library as you received it specifies that a proxy can decide +whether future versions of the GNU Lesser General Public License shall +apply, that proxy's public statement of acceptance of any version is +permanent authorization for you to choose that version for the +Library. diff --git a/easytier-go/PERFORMANCE.md b/easytier-go/PERFORMANCE.md new file mode 100644 index 00000000..1f3f21fa --- /dev/null +++ b/easytier-go/PERFORMANCE.md @@ -0,0 +1,378 @@ +# Performance log + +This file records reproducible `easytier-go` data-plane optimizations. +Each round must describe the change, the benchmark conditions, the before and +after result, and any profile evidence used to choose the next change. + +## Benchmark setup + +- Host CPU: Intel Core i7-14700KF. +- Go host CPUs: P-core logical CPUs `8,10,12,14`. +- Native peer and iperf CPUs: P-core logical CPUs `0,2,4,6`. +- Underlay: UDP over the local Docker bridge. +- Native peer: `10.15.15.1`, listening on underlay UDP port `12012`. +- Go host: `10.15.15.2`, forwarding local port `5202` through + `Instance.Dial` to `10.15.15.1:5201`. +- Go forwarder: `go run ./cmd/dial-forward-bench`; it intentionally keeps + forwarding outside the Core so measurements include the public data-plane + ABI. +- MTU: 1380; encryption enabled with the default algorithm. +- TCP tests use one stream unless noted otherwise. +- UDP tests use 1200-byte datagrams. +- Reported results exclude the first two seconds of each iperf run. + +The native comparison uses EasyTier's built-in port forward on the same +machine, CPU groups, peer, network, and iperf server. It isolates the overhead +of the Go/WASM data-plane interface from EasyTier's virtual TCP/UDP stack and +transport. + +## Round 0: Dial baseline + +Go host commit: `a73f2bac` + +EasyTier commit: `30764897` + +### Throughput + +| Path | Direction | Offered load | Result | +| --- | --- | ---: | ---: | +| Go `DialTCP` | Go to native | unlimited | 14.0 Mbit/s | +| Go `DialTCP` | native to Go | unlimited | 1.56 Gbit/s | +| Go `DialTCP`, 4 streams | Go to native | unlimited | 56.6 Mbit/s | +| Native TCP port forward | forward | unlimited | 1.35 Gbit/s | +| Native TCP port forward | reverse | unlimited | 3.65 Gbit/s | +| Go `DialUDP` | Go to native | 10 Mbit/s | 10.0 Mbit/s, 0% loss | +| Go `DialUDP` | Go to native | 100 Mbit/s | tail stalled after 4 seconds | +| Go `DialUDP` | native to Go | 100 Mbit/s | 61.6 Mbit/s, 38% loss | +| Go `DialUDP` | native to Go | 1 Gbit/s | 86.5 Mbit/s, 91% loss | +| Native UDP port forward | forward | 1 Gbit/s | 999 Mbit/s | + +At a 100 Mbit/s forward UDP load, the receiver averaged 40.9 Mbit/s over the +full test because traffic stopped after four measured seconds. This is not a +stable throughput result. + +### TCP forward profile + +`perf stat` attached to the Go host during a 10-second single-stream test: + +| Counter | Value | +| --- | ---: | +| elapsed time | 12.014 s | +| task clock | 1.186 s | +| context switches | 89,072 | +| CPU migrations | 12,015 | +| core cycles | 5.98 billion | +| core instructions | 4.09 billion | +| core cache misses | 23.0 million | + +The Go process consumed only 0.099 CPU equivalents while forwarding at +14 Mbit/s. Four TCP streams scaled almost exactly linearly, showing a +per-stream serialization limit rather than CPU or transport saturation. + +The Go `streamConn.Write` waits for every guest TCP-write operation. The guest +operation currently calls `AsyncWriteExt::write`, which may complete after a +partial write. Each partial result therefore incurs another complete +submit/drive/complete/take host-to-WASM cycle. The native port-forward result +shows that EasyTier's underlying data plane is not the limiting component. + +## Round 1: finish each guest TCP write + +Go host commit: `a73f2bac` + +EasyTier commit: `73612470` + +The guest TCP operation now uses `write_all` semantics instead of completing +after the first partial virtual-socket write. + +| Path | Before | After | Change | +| --- | ---: | ---: | ---: | +| TCP forward | 14.0 Mbit/s | 15.9 Mbit/s | +13.6% | + +This removed redundant operation completion cycles, but CPU utilization +remained low. The result showed that partial completion was real overhead but +was not the main serialization point. + +## Round 2: repoll immediately when smoltcp has ready egress + +EasyTier commit: `824e01a3` + +The smoltcp reactor reported a zero poll delay when more egress was ready, but +the portable runtime crossed the host timer boundary before polling again. +The reactor now polls again in the same drive turn for a zero delay. + +| Path | Before | After | Change | +| --- | ---: | ---: | ---: | +| TCP forward | 15.9 Mbit/s | 1.17 Gbit/s | 73.6x | +| Median packet gap | 891 us | 8.41 us | -99.1% | + +The packet-gap distribution was captured in +`/tmp/easytier-dial-forward-immediate-repoll.pcap`. Extending every WASI drive +turn by a fixed 50 us did not improve throughput and was later reverted; the +zero-delay signal was the correct condition for immediate work. + +## Round 3: preserve pending UDP operations + +Go host commit: `cf53f92` + +The example refreshed `SetDeadline` before every datagram. Each refresh +cancelled the currently pending read operation, causing forwarding to stall +under sustained load. Deadline refreshes are now limited to half of the idle +timeout, retaining idle-session cleanup without repeatedly cancelling active +operations. + +| UDP forward offered load | Before | After | +| --- | ---: | ---: | +| 300 Mbit/s | 45.3 Mbit/s average, tail stalled | 298 Mbit/s, 0.8% loss | + +Logging added while diagnosing this behavior showed successful writes until +the receive operation was cancelled; the stall was not a transport write +failure. + +## Round 4: reduce per-datagram host/guest overhead + +The following measurements use a 1 Gbit/s offered UDP load. Each row is +measured against the immediately preceding retained state. + +| Change | Commit | Before | After | Change | +| --- | --- | ---: | ---: | ---: | +| Reuse operation deadline contexts | `3d7b622` | 525 Mbit/s | 558 Mbit/s | +6.3% | +| Reuse separate UDP address and payload inputs | `f9092c9` | 558 Mbit/s | 587 Mbit/s | +5.2% | +| Reuse data-plane output storage | `f469a34` | 587 Mbit/s | 652 Mbit/s | +11.1% | +| Restore a zero-duration WASI drive budget | `a5ea9b6` | 652 Mbit/s | 672 Mbit/s | +3.1% | +| Cache hot guest function handles | `47f0809` | 672 Mbit/s | 677 Mbit/s | +0.7% | +| Reuse the instance deadline timer | `657022b` | 677 Mbit/s | 677 Mbit/s | neutral | +| Coalesce immediately completed outcomes | `9d1ec76` | 677 Mbit/s | 688 Mbit/s | +1.6% | + +The reusable input experiment initially used an interior pointer into one +larger guest allocation. The ABI only accepts allocation base pointers, so +the final implementation keeps the remote address and payload in distinct +reusable allocations. + +Restoring the zero-duration drive budget also raised TCP forward throughput +from 1.17 to approximately 1.30 Gbit/s. Reusing the deadline timer was kept +despite neutral throughput because it removes a timer allocation from every +operation without adding synchronization. + +The final rebuilt artifact and host measured 693 Mbit/s UDP forward, within +the variation of the 688 Mbit/s retained baseline. + +### Profile evidence + +The final-stage profile is stored at +`/tmp/easytier-dial-udp-zero-budget.perf.data`. Approximately 49% of samples +were in the WASM JIT and 31% in the Go executable, with the remainder +primarily in the kernel. Before function caching, `NextDeadline` accounted +for 2.25% and Go map hashing for 1.48%. After removing these lookup costs, no +remaining individual host-side helper accounted for enough time to explain +the gap to TCP; guest drive execution and one-operation-per-datagram boundary +crossings dominate. + +## Round 5: enlarge data-plane UDP receive queues + +EasyTier commit: `1df439d` + +The data-plane TCP buffers were already 128 KiB, while UDP inherited the +smoltcp default receive queue of about 8 KiB, enough for only a few 1200-byte +datagrams. The data-plane-only UDP receive buffer is now 128 KiB with 128 +packet metadata entries. + +| UDP reverse offered load | Before | After | +| --- | ---: | ---: | +| 100 Mbit/s | 61.6 Mbit/s, 38% loss | 100 Mbit/s, 0% loss | +| 300 Mbit/s | not stable | 300 Mbit/s, 0.15% loss | +| 500 Mbit/s | not stable | 495 Mbit/s, 0.95% loss | +| 800 Mbit/s | 558 Mbit/s saturated | about 570 Mbit/s saturated | + +Removing the redundant receive-result-size ABI query in `104223c` raised the +800 Mbit/s saturated result from 558 to 563 Mbit/s. Subsequent retained +changes brought it to about 570 Mbit/s. + +## Rejected experiments + +Rejected changes were reverted and are not part of the final data path. + +| Experiment | Before | After | Reason rejected | +| --- | ---: | ---: | --- | +| Fixed 50 us WASI drive budget | 1.17 Gbit/s TCP | no gain | Added unconditional work instead of following readiness | +| Pool queued UDP payloads | 652 Mbit/s | 651 Mbit/s | `sync.Pool` overhead offset allocation savings | +| Lock guest driver to one OS thread | 652 Mbit/s | 436 Mbit/s | Prevented the Go scheduler from placing other work effectively | +| Return tickets before the first drive | 677 Mbit/s | 564 Mbit/s | Added an extra wakeup to the normal completion path | +| Pool one-shot response channels | 688 Mbit/s | 654 Mbit/s | Pool bookkeeping cost more than direct allocation | + +Pinning the complete process to one P-core produced 680 Mbit/s on the earlier +652 Mbit/s build, showing that CPU migration and core selection affect the +result. Thread pinning inside the library was nevertheless rejected because +it regressed throughput and imposed scheduling policy on applications. + +## Round 6: preserve TCP write progress across cancellation + +EasyTier commits: `6b55489`, `4d270f3` + +`write_all` kept the TCP fast path inside the guest, but it could lose the +already-written prefix when a deadline update cancelled the future. The host +would then replay the complete chunk. The replacement still completes writes +inside the guest, but uses cancellation-safe underlying writes and reports a +completed prefix before observing cancellation or deadline expiry. + +WebClient retry, feature timeout, heartbeat, and UDP port-mapping renewal +timers now use the tracked portable time abstraction. This lets an externally +driven host advertise and advance their deadlines without adding a periodic +timer-driving fallback. + +| CPU | Direction | Before | After | Change | +| --- | --- | ---: | ---: | ---: | +| i7-14700KF | TCP forward | 1.30 Gbit/s | 1.31 Gbit/s | within variation | +| i7-14700KF | TCP reverse | 1.60 Gbit/s | 1.61 Gbit/s | within variation | +| Intel N100 | TCP forward | 442 Mbit/s | 436 Mbit/s | -1.4% | +| Intel N100 | TCP reverse | 524 Mbit/s | 517 Mbit/s | -1.3% | + +The N100 results varied by more than these deltas between one-second +intervals, so the change has no measurable systematic throughput cost. + +## Round 7: store deadlines on guest resources + +EasyTier commits: `05ba813`, `66252ed` + +Go host commits: `200f32c`, `59d6e5a` + +The ABI previously passed a remaining timeout with every TCP and UDP data +operation. Once a Go caller configured a connection deadline, the WASI guest +therefore registered a new timer for every read and write. Deadline changes +also required the Go host to cancel and resubmit an active operation. + +Data-plane ABI v3 stores independent read and write deadlines on each TCP or +UDP resource. Hosts update them through one resource setter, while data +operations reuse the active expiration signal without creating timers. +Connect, bind, and accept retain their per-operation timeouts. + +The dedicated A/B benchmark compared the pre-change `fd1be5c` Go host with +the updated host. The helper connected directly to the native peer through +`udp://172.17.0.3:12012`, set a one-hour deadline once when requested, and +excluded the first two seconds. It used the CPU groups described above. + +| TCP forward | Before | After | Change | +| --- | ---: | ---: | ---: | +| No deadline | 1.30 Gbit/s | 1.30 Gbit/s | neutral | +| One-hour deadline | 1.29 Gbit/s | 1.32 Gbit/s | within variation | + +An earlier run reported approximately 750 Mbit/s, but its helper used a +loopback peer URI across different network namespaces while the machine was +also under compiler load. Those TCP and UDP figures were discarded because +the traffic path was not controlled. The direct A/B result shows that +resource deadlines retain the established TCP throughput and remove the +per-operation timer construction without a measurable deadline penalty. + +## Round 8: batch host TCP underlay writes + +EasyTier commit: `cf26d50` + +Go host commits: `8d010e0`, `4197f0d` + +The TUN example connected directly to the long-running native peer through +`tcp://172.17.0.2:11010`. The overlay addresses were `10.12.12.2` and +`10.12.12.1`. Tests used one iperf TCP stream for 15 seconds and excluded +the first two seconds. The application and native peer remained unpinned to +match the reported command; the iperf client used CPUs `0,2,4,6`. + +The TCP host imports still used wazero's reflection-based `WithFunc` path. +Changing the four stream read and write imports to typed module functions +removed reflection and signature decoding from every host operation. + +EasyTier's `FramedWriter` already queues up to 64 frames and exposes them as +vectored slices. `HostTcpStream` did not advertise vectored-write support, so +`poll_write_buf` submitted only the first roughly 1.4 KB frame. Each VPN +packet therefore required a separate asynchronous host operation and guest +wakeup. `HostTcpStream` now combines the queued slices and submits the batch +through the existing ordered write operation. The ABI and concurrency model +are unchanged. + +| Underlay and implementation | Forward throughput | Go host CPU | +| --- | ---: | ---: | +| TCP, baseline | 302-305 Mbit/s | about 1.44 cores | +| TCP, typed host imports | 394 Mbit/s | about 1.58 cores | +| TCP, typed imports and vectored writes | 1.88-1.93 Gbit/s | about 2.12 cores | +| UDP reference | 914-924 Mbit/s | about 2.01 cores | + +With probes attached, baseline TCP issued about 25,000 host writes and +36,000 guest drive calls per second while forwarding at 234 Mbit/s. The +vectored build issued about 6,800 host writes and 14,000 drive calls per +second while forwarding at 1.85 Gbit/s. Average payload per host write grew +from approximately 1.2 KB to 34 KB. + +TCP reverse throughput reached 969 Mbit/s, compared with 1.05 Gbit/s over +the UDP underlay in the same unpinned setup. The remaining reverse difference +was 7.7%, rather than the original threefold forward gap. + +## Round 9: batch host TCP underlay reads + +EasyTier commit: `398b699` + +The forward write batching left the opposite direction asymmetric. +`FramedReader` normally supplied only 2-4 KiB of spare capacity, so each host +TCP read transferred at most a few frames before completing the Go operation, +copying into guest memory, and waking the guest executor. + +`HostTcpStream` now requests a bounded 64 KiB read even when its caller +provides a smaller buffer. It returns the requested prefix immediately and +retains the remainder in its existing read buffer. The stream still permits +only one pending host read, so the ABI and concurrency model are unchanged +and read-ahead remains bounded per active TCP stream. + +The direct A/B used the Round 8 topology and CPU placement. System variation +put the old artifact at 850 Mbit/s reverse and 1.79 Gbit/s forward during this +comparison. + +| Artifact and direction | Throughput | Go host CPU | +| --- | ---: | ---: | +| Old artifact, reverse | 850 Mbit/s | not sampled | +| 64 KiB read-ahead, reverse, first run | 1.80 Gbit/s | about 2 cores | +| 64 KiB read-ahead, reverse, repeat | 1.84 Gbit/s | about 2 cores | +| 64 KiB read-ahead, reverse, 60 seconds | 1.90 Gbit/s | not sampled | +| Old artifact, forward | 1.79 Gbit/s | not sampled | +| 64 KiB read-ahead, forward | 1.75-1.76 Gbit/s | not sampled | + +The repeat reverse run improved by 116%, and the 60-second run showed no +tail stall. Forward changed by about 2%, within the observed run-to-run +variation. Reverse and forward are therefore symmetric under the same test +conditions without enlarging the public ABI or adding concurrent reads. + +## Intel N100 comparison + +The N100 has four physical E-cores with no SMT. The Go host was pinned to +CPUs `0-2`, while iperf used CPU `3`. The native EasyTier peer and iperf +server remained on the i7-14700KF host. + +Raw TCP between the machines reached 2.30 Gbit/s forward and 2.35 Gbit/s +reverse, excluding the network as the limiting component. + +| Path | Direction/load | Result | +| --- | --- | ---: | +| Go `DialTCP` | Go to native | 436 Mbit/s | +| Go `DialTCP` | native to Go | 517 Mbit/s | +| Go `DialUDP` | forward, 1 Gbit/s offered | 134 Mbit/s, saturated | +| Go `DialUDP` | reverse, 300 Mbit/s offered | 120 Mbit/s, saturated | +| Go `DialUDP` | forward, 100 Mbit/s offered | 99.3 Mbit/s, 0.79% loss | +| Go `DialUDP` | reverse, 100 Mbit/s offered | 99.7 Mbit/s, 0.33% loss | + +At saturation the Go host used approximately 1.24-1.41 CPU equivalents. +UDP loses proportionally more performance than TCP on the weaker cores, +consistent with the one-operation-per-datagram ABI and scheduling cost. + +## Final result + +Final Go host commit under test: `47949b5` + +Embedded EasyTier commit: `4d270f3` + +| Path | Direction | Offered load | Final result | +| --- | --- | ---: | ---: | +| Go `DialTCP` | Go to native | unlimited | 1.31 Gbit/s | +| Go `DialTCP` | native to Go | unlimited | 1.61 Gbit/s | +| Go `DialUDP` | Go to native | 1 Gbit/s | 684 Mbit/s | +| Go `DialUDP` | native to Go | 500 Mbit/s | 494 Mbit/s, 1.2% loss | +| Go `DialUDP` | native to Go | 800 Mbit/s | 578 Mbit/s, 28% loss | + +Final TCP and UDP runs lasted 15 seconds after a three-second warm-up. The +UDP API remains one operation per datagram. A batch API was deliberately not +introduced because it would add a new public operation model and buffering +policy for a path whose current performance is acceptable. diff --git a/easytier-go/README.md b/easytier-go/README.md new file mode 100644 index 00000000..8ff63f26 --- /dev/null +++ b/easytier-go/README.md @@ -0,0 +1,352 @@ +# EasyTier Go + +`easytier-go` runs the `wasm32-wasip1` build of `easytier-core` in a +pure-Go process through wazero. EasyTier remains the source and producer of the +embedded WASM; this repository adapts Go host capabilities to the ABI exported +and imported by that artifact. + +```go +import ( + "net/netip" + + corehost "github.com/EasyTier/EasyTier/easytier-go" +) +``` + +## Public API + +The public package owns wazero, standard WASI, the EasyTier host ABI, guest +driving, completion notification, and resource shutdown. Applications create a +host, build a typed instance configuration, and then use standard Go network +interfaces: + +```go +host, err := corehost.New(ctx, corehost.Options{}) +if err != nil { + return err +} +defer host.Close(ctx) + +config, err := corehost.NewInstanceConfigBuilder("office"). + NetworkSecret("secret"). + IPv4(netip.MustParsePrefix("10.144.0.10/24")). + AddPeers("tcp://198.51.100.10:11010"). + Build() +if err != nil { + return err +} + +instance, err := host.CreateInstance(ctx, config) +if err != nil { + return err +} +defer instance.Close(ctx) + +if err := instance.Start(ctx); err != nil { + return err +} +if err := instance.SendPacket(ctx, packet); err != nil { + return err +} +received, err := instance.ReceivePacket(ctx) + +listener, err := instance.Listen("tcp4", ":8080") +connection, err := instance.Dial(ctx, "tcp4", "10.144.0.2:8080") +packets, err := instance.ListenPacket("udp4", ":5353") +``` + +### Web Client management + +A host can also connect to an EasyTier Web configuration server. The embedded +Rust WebClient retains the config-server protocol, heartbeat, reconnect, and +secure-tunnel behavior; Go owns the resulting process-level instances: + +```go +webClient, err := host.ConnectWebClient(ctx, corehost.WebClientOptions{ + Endpoint: "udp://config.example.com:22020/team-token", + MachineID: "11111111-2222-4333-8444-555555555555", + Hostname: "edge-gateway", + SecureMode: true, +}) +if err != nil { + return err +} +defer webClient.Close(ctx) + +for _, instance := range host.Instances() { + log.Printf("%s: %v", instance.ID(), instance.State()) +} +``` + +`MachineID` must be a stable UUID persisted by the application. `Endpoint` +accepts `tcp://`, `udp://`, or the same shorthand token understood by native +EasyTier. WebSocket transports are not part of this initial host integration. +One WebClient may run per `Host`. + +Web-created instances support the complete `WebClientService` lifecycle and +status surface. Instances created through `Host.CreateInstance` are included +in heartbeats and status listings, but are reported as read-only and cannot be +overwritten, retained away, or deleted by the Web server. `Host.Instances` +returns both ownership classes; Web-created instances use the same `Instance` +data-plane and management APIs as application-created instances. + +`Instance.ListPeer` and `Instance.ListRoute` call the embedded core's existing +instance-scoped management RPCs and return peer and route slices directly. +Their element types reuse the generated EasyTier protobuf models, while the +request and response envelopes stay internal to the host. Callers never +construct wire bytes or a separate RPC client. Cancelling the context frees +the pending guest operation. + +`InstanceConfigBuilder` exposes the instance settings supported by this host: +network identity, hostname, virtual IPv4 address, peers and listeners, IPv4 and +IPv6 STUN servers, Core-owned TCP and UDP port forwards, P2P policy, +hole-punching methods, encryption, and secure mode. Omitted optional settings +retain the embedded core's defaults. Calling `STUNServers()` or +`STUNServersV6()` with no arguments explicitly selects an empty list. + +`AddPortForwards` accepts typed rules containing a `PortForwardTCP` or +`PortForwardUDP` protocol and `netip.AddrPort` bind and destination addresses. +The embedded core owns their listener, overlay-flow, reload, and shutdown +lifecycle. + +Secure mode can generate an X25519 key with `SecureMode()` or use a caller +supplied raw 32-byte private key with `SecureModeWithPrivateKey(key)`. The +public key is always derived by the builder. Secure mode currently requires a +non-empty shared network secret; credential-based networks are a separate +future configuration path. + +`Dial` returns `net.Conn`, `Listen` returns `net.Listener`, and `ListenPacket` +returns `net.PacketConn`. ABI v2 currently supports `tcp`, `tcp4`, `udp`, and +`udp4`; destinations must be IPv4 literals and listeners bind all overlay IPv4 +addresses. These APIs are overlay-only: an absent EasyTier route is returned as +a normal network error and never falls back to the host network. + +See [KNOWN_LIMITATIONS.md](KNOWN_LIMITATIONS.md) for current UDP and +port-forward edge cases. + +No public type exposes wazero runtimes, WebAssembly pointers, raw handles, +submit/take operations, or the cooperative `drive` loop. Each host owns one +wazero runtime, guest module, and host completion domain; each instance is +represented by an EasyTier guest handle. Per-instance drivers serialize guest +calls through the host. The engine continues driving EasyTier after `Start` +returns, calls `easytier_instance_notify_completions` before driving a host +completion, and drains bounded data-plane completion batches after each guest +turn. + +The host serializes the typed configuration to TOML internally, wraps it in +EasyTier's version 14 create envelope, and adds the configured environment +snapshot. TOML, schema versions, and JSON envelopes are not +application-facing APIs. + +## Cross-platform TUN example + +The TUN example joins an existing EasyTier network with a fixed virtual IPv4 +address on Linux, macOS, or Windows. It creates and configures the native TUN +interface itself, then forwards raw IPv4 packets through `SendPacket` and +`ReceivePacket`: + +```sh +cd examples/tun +sudo go run . \ + -p tcp://198.51.100.10:11010 \ + --network-name office \ + --network-secret secret \ + --ipv4 10.144.0.10/24 +``` + +Repeat `-p` to configure more peers. The command creates `et-goN` on Linux and +Windows or `utunN` on macOS, assigns the requested address, and sets an MTU of +1380. Run it as root or with `CAP_NET_ADMIN` on Linux, with `sudo` on macOS, or +from an Administrator terminal on Windows. Closing the command removes the TUN +interface. The example does not install a default route or enable GSO. + +On Linux and macOS, send `SIGUSR1` to print the current peer list or `SIGUSR2` +to print the current route list. + +Repeat `-port-forward` to expose local TCP or UDP ports through the embedded +core's port-forward manager: + +```sh +sudo go run . \ + -p tcp://198.51.100.10:11010 \ + --network-name office \ + --network-secret secret \ + --ipv4 10.144.0.10/24 \ + -port-forward tcp://127.0.0.1:5202/10.144.0.20:5201 \ + -port-forward udp://127.0.0.1:5202/10.144.0.20:5201 +``` + +For example, run `iperf3 -c 127.0.0.1 -p 5202` for TCP or add +`-u -b 0 -l 1200` for UDP. iperf3's UDP mode still needs the TCP forward for +its control connection. The TUN example only parses these rules into the +instance configuration; the core owns the host listeners and per-client +overlay flows. + +## Instance.Dial example + +The Dial example is a small overlay client dedicated to the public +`Instance.Dial` API. TCP mode bridges the connected stream to standard input +and output until the remote side closes or the command is interrupted: + +```sh +printf 'GET / HTTP/1.0\r\nHost: 10.144.0.20\r\n\r\n' | + go run ./examples/dial \ + -p tcp://198.51.100.10:11010 \ + --network-name office \ + --network-secret secret \ + --ipv4 10.144.0.10/24 \ + --network tcp4 \ + --address 10.144.0.20:8080 +``` + +With `--network udp4`, standard input is sent as one datagram and one response +datagram is written to standard output. The command does not create a local +listener or implement port-forward management. It waits up to 10 seconds for a +matching overlay or proxy route before dialing; override that limit with +`--connect-timeout`. + +## Web Client example + +The Web Client example registers a Host with an EasyTier Web configuration +server and lets the server create, delete, and inspect its instances: + +```sh +go run ./examples/web-client \ + --web-endpoint tcp://config.example.com:22020/team-token \ + --web-machine-id 11111111-2222-4333-8444-555555555555 \ + --web-hostname edge-gateway \ + --web-secure +``` + +`--web-machine-id` must remain stable across restarts. `--web-hostname` defaults +to the system hostname. This example manages Host instances but does not create +or attach an operating-system TUN interface. + +## Performance compared with native EasyTier + +In this A/B benchmark two nodes on one i7-14700KF host (Linux 6.11) each run +in their own network namespace, joined by a veth pair. Node A always runs a +native `easytier-core` build of EasyTier master (`2.6.4-6a186167`) with +overlay address `10.144.0.1/24`; node B runs either the same native binary or +this Go host (commit `78889d12`, embedded EasyTier `af640d49`) with +`10.144.0.2/24`. A master build is used as the native baseline because the +2.6.4 release predates several native data-plane throughput fixes (EasyTier +#2451, #2452). The underlay tunnel between the nodes is either `tcp://` or +`udp://`. Encryption is enabled and the overlay MTU is 1360 on both ends. +Node A and the iperf3 server are pinned to CPUs `0,2,4,6`, node B to +`8,10,12,14`. Each iperf3 run lasts 15 seconds and excludes the first +3 seconds. Forward means node B sends to node A; reverse uses `iperf3 -R`. +Measured 2026-07-28. + +The forwarding rows deliberately compare native Core port forwarding with the +Go host's benchmark-only `cmd/dial-forward-bench`, which carries traffic +through the public `Instance.Dial` API. + +TCP, one stream: + +| Scenario | Direction | `tcp://` native | `tcp://` Go host | `udp://` native | `udp://` Go host | +| --- | --- | ---: | ---: | ---: | ---: | +| TUN | forward | 6.06 Gbit/s | 2.12 Gbit/s | 3.71 Gbit/s | 1.57 Gbit/s | +| TUN | reverse | 6.03 Gbit/s | 2.57 Gbit/s | 3.69 Gbit/s | 1.48 Gbit/s | +| Native port forward / Go Dial | forward | 1.25 Gbit/s | 1.29 Gbit/s | 1.19 Gbit/s | 1.20 Gbit/s | +| Native port forward / Go Dial | reverse | 6.49 Gbit/s | 1.95 Gbit/s | 4.26 Gbit/s | 1.43 Gbit/s | + +UDP native port forward / Go Dial, 1 Gbit/s offered with 1200-byte datagrams +(received / lost): + +| Direction | `tcp://` native | `tcp://` Go host | `udp://` native | `udp://` Go host | +| --- | ---: | ---: | ---: | ---: | +| forward | 996 Mbit/s / 0.3% | 546 Mbit/s / 45% | 996 Mbit/s / 0.3% | 699 Mbit/s / 30% | +| reverse | 950 Mbit/s / 5.0% | 490 Mbit/s / 51% | 983 Mbit/s / 1.7% | 350 Mbit/s / 65% | + +Reading the numbers: + +- On TUN the Go host reaches roughly 35-45% of native single-stream + throughput. Both sides run the same EasyTier core logic, so the gap is the + WASM/Go data-plane boundary rather than routing or cryptography. +- TCP forwarding is a tie at about 1.2 Gbit/s: both paths are bounded by the + virtual TCP send path inside the shared EasyTier core, not by the host. +- TCP reverse forwarding favors native by about 3x (4.3-6.5 versus + 1.4-2.0 Gbit/s); the Go host benchmark's per-operation receive path is the + limit. +- Native sustains the offered 1 Gbit/s UDP nearly loss-free in both + directions, while the Go host saturates at 350-700 Mbit/s with significant + loss, consistent with the one-operation-per-datagram data-plane ABI + documented in `PERFORMANCE.md`. + +## Platform capabilities + +The default platform implementation uses Go's standard `net` and +`net.Resolver` packages. Applications that need netns, socket marks, device +binding, reuse policy, or custom DNS can inject capabilities through +`platform.Services`: + +```go +host, err := corehost.New(ctx, corehost.Options{ + Platform: platform.Services{ + Sockets: socketFactory, + DNS: dnsResolver, + Environment: connectorEnvironment, + Snapshot: environmentSnapshot, + }, +}) +``` + +`platform.SocketFactory` owns only TCP connect, UDP bind, and TCP listen +creation. Once a standard Go network resource is returned, the host runtime +owns its reads, writes, accepts, cancellation, and close path. EasyTier retains +all routing, peer admission, protocol, retry, and connection policy. + +The implementation is split by responsibility: + +- `platform` defines public capability ports; `platform/netstd` implements + their portable defaults. +- `proto` contains generated Go bindings for the existing EasyTier management + protobuf definitions. +- `internal/reactor` owns typed asynchronous operations, resources, operation + IDs, backpressure, and completion signals without depending on wazero. +- `internal/hostabi` implements the custom `easytier_host` imports, guest + memory copying, wire codecs, and ABI status translation. +- `internal/coreabi` owns guest memory, the big-endian data-plane wire codec, + ABI discovery, and typed `easytier_instance_*`, `easytier_data_plane_*`, and + `easytier_rpc_*` export calls. +- `internal/engine` composes standard WASI, both EasyTier ABI directions, the + single-owner driver, operation cancellation, deadlines, standard Go network + resources, and instance shutdown. +- `internal/artifact` contains only the embedded core and its provenance. + +## Embedded artifact + +The committed WASM lets downstream Go builds and tests run without a Rust +toolchain. Refresh it from a clean EasyTier checkout whenever the guest ABI or +core implementation changes: + +```sh +EASYTIER_SOURCE=/path/to/EasyTier go generate ./... +``` + +Generation runs EasyTier's `script/build-wasi-core.sh`, which builds release +`easytier_core.wasm` with the Go-host features and writes an optimized +`easytier_core_go_host.wasm` with the pinned, SHA-256-verified Binaryen release. +The generator supplies a fixed source path remap and source-date epoch, then +records the EasyTier commit and optimized artifact SHA-256. Tracked EasyTier +changes block generation; unrelated untracked files do not. +`corehost.CoreInfo()` exposes that provenance without exposing the artifact +bytes. + +The same generator rebuilds the Go protobuf bindings from that exact clean +EasyTier commit and records their source commit and schema SHA-256. Host +creation rejects an artifact/binding commit mismatch. Generation requires +`protoc` 35.1 and `protoc-gen-go` 1.36.11 on `PATH`. + +The test-only socket probe is retained from +[EasyTier commit 6a3d15f](https://github.com/EasyTier/EasyTier/tree/6a3d15f8758eed759d55401ff4ed7c47021b0819/tools/wasi-socket-poc/guest); +its full commit and checksum are recorded in +`testdata/wasi_socket_guest.source`. + +Run all reactor, ABI conformance, lifecycle, and two-instance network tests +with: + +```sh +go test -count=1 ./... +``` diff --git a/easytier-go/cmd/dial-forward-bench/main.go b/easytier-go/cmd/dial-forward-bench/main.go new file mode 100644 index 00000000..f973a509 --- /dev/null +++ b/easytier-go/cmd/dial-forward-bench/main.go @@ -0,0 +1,364 @@ +// Command dial-forward-bench measures the public Instance.Dial data path. +// +// User-facing port forwarding belongs to the embedded EasyTier core. This +// command intentionally keeps the forwarding loop in Go so benchmarks include +// the public Go/WASM data-plane boundary. +package main + +import ( + "context" + "errors" + "flag" + "fmt" + "io" + "log" + "net" + "net/netip" + "os" + "os/signal" + "strings" + "sync/atomic" + "syscall" + + corehost "github.com/EasyTier/EasyTier/easytier-go" + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" +) + +type options struct { + peers peerList + portForwards portForwardList + networkName string + networkSecret string + ipv4 string +} + +func main() { + options, err := parseOptions(os.Args[1:]) + if err == flag.ErrHelp { + return + } + if err != nil { + log.Printf("invalid arguments: %v", err) + os.Exit(2) + } + + ctx, stop := signal.NotifyContext( + context.Background(), + os.Interrupt, + syscall.SIGTERM, + ) + defer stop() + if err := run(ctx, options); err != nil { + log.Printf("EasyTier Dial benchmark failed: %v", err) + os.Exit(1) + } +} + +func run(ctx context.Context, options options) error { + prefix, err := netip.ParsePrefix(options.ipv4) + if err != nil { + return fmt.Errorf("parse instance IPv4 prefix: %w", err) + } + config, err := corehost.NewInstanceConfigBuilder(options.networkName). + NetworkSecret(options.networkSecret). + IPv4(prefix). + AddPeers([]string(options.peers)...). + Build() + if err != nil { + return fmt.Errorf("build EasyTier instance config: %w", err) + } + + host, err := corehost.New(ctx, corehost.Options{}) + if err != nil { + return fmt.Errorf("create EasyTier host: %w", err) + } + defer host.Close(context.Background()) + instance, err := host.CreateInstance(ctx, config) + if err != nil { + return fmt.Errorf("create EasyTier instance: %w", err) + } + defer instance.Close(context.Background()) + if err := instance.Start(ctx); err != nil { + return fmt.Errorf("start EasyTier instance: %w", err) + } + + forwarders, err := startPortForwards( + ctx, + instance.Dial, + options.portForwards, + ) + if err != nil { + return err + } + defer forwarders.Close() + <-ctx.Done() + return nil +} + +func parseOptions(arguments []string) (options, error) { + flags := flag.NewFlagSet("dial-forward-bench", flag.ContinueOnError) + var options options + flags.Var(&options.peers, "p", "EasyTier peer URI; may be repeated") + flags.Var( + &options.portForwards, + "port-forward", + "tcp://bind/overlay-target or udp://bind/overlay-target; may be repeated", + ) + flags.StringVar(&options.networkName, "network-name", "", "EasyTier network name") + flags.StringVar(&options.networkSecret, "network-secret", "", "EasyTier network secret") + flags.StringVar(&options.ipv4, "ipv4", "", "fixed EasyTier IPv4 address and prefix") + if err := flags.Parse(arguments); err != nil { + return options, err + } + if flags.NArg() != 0 { + return options, fmt.Errorf("unexpected argument %q", flags.Arg(0)) + } + if err := options.validate(); err != nil { + return options, err + } + return options, nil +} + +func (options options) validate() error { + if len(options.peers) == 0 { + return fmt.Errorf("at least one -p peer is required") + } + if len(options.portForwards) == 0 { + return fmt.Errorf("at least one --port-forward rule is required") + } + if strings.TrimSpace(options.networkName) == "" { + return fmt.Errorf("--network-name is required") + } + if options.networkSecret == "" { + return fmt.Errorf("--network-secret is required") + } + prefix, err := netip.ParsePrefix(options.ipv4) + if err != nil { + return fmt.Errorf("parse --ipv4: %w", err) + } + if !prefix.Addr().Is4() { + return fmt.Errorf("--ipv4 must be an IPv4 prefix") + } + return nil +} + +type peerList []string + +func (peers *peerList) Set(value string) error { + if strings.TrimSpace(value) == "" { + return fmt.Errorf("peer URI must not be empty") + } + *peers = append(*peers, value) + return nil +} + +func (peers *peerList) String() string { + return strings.Join(*peers, ",") +} + +type portForwardRule struct { + protocol string + bind netip.AddrPort + target netip.AddrPort +} + +func (rule portForwardRule) String() string { + return fmt.Sprintf("%s://%s/%s", rule.protocol, rule.bind, rule.target) +} + +type portForwardList []portForwardRule + +func (rules *portForwardList) Set(value string) error { + rule, err := parsePortForwardRule(value) + if err == nil { + *rules = append(*rules, rule) + } + return err +} + +func (rules *portForwardList) String() string { + values := make([]string, len(*rules)) + for index, rule := range *rules { + values[index] = rule.String() + } + return strings.Join(values, ",") +} + +func parsePortForwardRule(value string) (portForwardRule, error) { + protocol, addresses, ok := strings.Cut(value, "://") + if !ok || (protocol != "tcp" && protocol != "udp") { + return portForwardRule{}, fmt.Errorf( + "port forward %q must use tcp:// or udp://", + value, + ) + } + bindText, targetText, ok := strings.Cut(addresses, "/") + if !ok { + return portForwardRule{}, fmt.Errorf( + "port forward %q must contain bind/overlay-target", + value, + ) + } + bind, err := netip.ParseAddrPort(bindText) + if err != nil { + return portForwardRule{}, fmt.Errorf("parse bind address: %w", err) + } + target, err := netip.ParseAddrPort(targetText) + if err != nil { + return portForwardRule{}, fmt.Errorf("parse target address: %w", err) + } + if !bind.Addr().Is4() || !target.Addr().Is4() { + return portForwardRule{}, fmt.Errorf("port forward requires IPv4 addresses") + } + return portForwardRule{protocol: protocol, bind: bind, target: target}, nil +} + +type overlayDialFunc func(context.Context, string, string) (net.Conn, error) + +type portForwardSet struct { + ctx context.Context + cancel context.CancelFunc + dial overlayDialFunc + addresses []net.Addr + closers []io.Closer +} + +func startPortForwards( + ctx context.Context, + dial overlayDialFunc, + rules []portForwardRule, +) (*portForwardSet, error) { + if dial == nil { + return nil, fmt.Errorf("port forward dial function is nil") + } + forwardContext, cancel := context.WithCancel(ctx) + forwards := &portForwardSet{ + ctx: forwardContext, + cancel: cancel, + dial: dial, + } + for _, rule := range rules { + var err error + switch rule.protocol { + case "tcp": + err = forwards.startTCP(rule) + case "udp": + err = forwards.startUDP(rule) + default: + err = fmt.Errorf("unsupported protocol %q", rule.protocol) + } + if err != nil { + _ = forwards.Close() + return nil, fmt.Errorf("start port forward %s: %w", rule, err) + } + } + return forwards, nil +} + +func (forwards *portForwardSet) Close() error { + forwards.cancel() + var errs []error + for _, closer := range forwards.closers { + errs = append(errs, closer.Close()) + } + return errors.Join(errs...) +} + +func (forwards *portForwardSet) startTCP(rule portForwardRule) error { + listener, err := net.ListenTCP("tcp4", net.TCPAddrFromAddrPort(rule.bind)) + if err != nil { + return err + } + forwards.closers = append(forwards.closers, listener) + forwards.addresses = append(forwards.addresses, listener.Addr()) + log.Printf("forwarding tcp://%s to %s through Instance.Dial", listener.Addr(), rule.target) + go func() { + for { + local, err := listener.Accept() + if err != nil { + return + } + go forwards.forwardTCP(local, rule.target) + } + }() + return nil +} + +func (forwards *portForwardSet) forwardTCP( + local net.Conn, + target netip.AddrPort, +) { + defer local.Close() + overlay, err := forwards.dial( + forwards.ctx, + "tcp4", + target.String(), + ) + if err != nil { + return + } + defer overlay.Close() + stopClose := contextutil.AfterFunc(forwards.ctx, func() { + _ = local.Close() + _ = overlay.Close() + }) + defer stopClose() + + done := make(chan struct{}, 2) + go func() { _, _ = io.Copy(overlay, local); done <- struct{}{} }() + go func() { _, _ = io.Copy(local, overlay); done <- struct{}{} }() + <-done +} + +func (forwards *portForwardSet) startUDP(rule portForwardRule) error { + overlay, err := forwards.dial( + forwards.ctx, + "udp4", + rule.target.String(), + ) + if err != nil { + return err + } + listener, err := net.ListenUDP("udp4", net.UDPAddrFromAddrPort(rule.bind)) + if err != nil { + _ = overlay.Close() + return err + } + forwards.closers = append(forwards.closers, listener, overlay) + forwards.addresses = append(forwards.addresses, listener.LocalAddr()) + log.Printf( + "forwarding udp://%s to %s through Instance.Dial", + listener.LocalAddr(), + rule.target, + ) + + var lastClient atomic.Value + go func() { + packet := make([]byte, 65535) + for { + length, client, err := listener.ReadFromUDPAddrPort(packet) + if err != nil { + return + } + lastClient.Store(client) + if written, err := overlay.Write(packet[:length]); err != nil || + written != length { + return + } + } + }() + go func() { + packet := make([]byte, 65535) + for { + length, err := overlay.Read(packet) + if err != nil { + return + } + client, ok := lastClient.Load().(netip.AddrPort) + if ok { + _, _ = listener.WriteToUDPAddrPort(packet[:length], client) + } + } + }() + return nil +} diff --git a/easytier-go/cmd/dial-forward-bench/main_test.go b/easytier-go/cmd/dial-forward-bench/main_test.go new file mode 100644 index 00000000..c886a7ec --- /dev/null +++ b/easytier-go/cmd/dial-forward-bench/main_test.go @@ -0,0 +1,188 @@ +package main + +import ( + "bytes" + "context" + "io" + "net" + "net/netip" + "strings" + "testing" + "time" +) + +func TestParseOptions(t *testing.T) { + options, err := parseOptions([]string{ + "-p", "tcp://198.51.100.10:11010", + "--network-name", "office", + "--network-secret", "secret", + "--ipv4", "10.144.0.10/24", + "--port-forward", "tcp://127.0.0.1:5202/10.144.0.20:5201", + "--port-forward", "udp://127.0.0.1:5202/10.144.0.20:5201", + }) + if err != nil { + t.Fatalf("parse options: %v", err) + } + if len(options.portForwards) != 2 { + t.Fatalf("port-forward count = %d", len(options.portForwards)) + } +} + +func TestPortForwardList(t *testing.T) { + var rules portForwardList + for _, value := range []string{ + "tcp://127.0.0.1:5202/10.144.0.20:5201", + "udp://0.0.0.0:5203/10.144.0.21:5201", + } { + if err := rules.Set(value); err != nil { + t.Fatalf("set %q: %v", value, err) + } + } + if got := rules.String(); got != + "tcp://127.0.0.1:5202/10.144.0.20:5201,"+ + "udp://0.0.0.0:5203/10.144.0.21:5201" { + t.Fatalf("rules string = %q", got) + } + if err := rules.Set("sctp://127.0.0.1:1/10.0.0.1:2"); err == nil { + t.Fatal("unsupported protocol was accepted") + } +} + +func TestTCPPortForward(t *testing.T) { + echo, err := net.Listen("tcp4", "127.0.0.1:0") + if err != nil { + t.Fatalf("listen echo: %v", err) + } + defer echo.Close() + go func() { + connection, acceptErr := echo.Accept() + if acceptErr == nil { + defer connection.Close() + _, _ = io.Copy(connection, connection) + } + }() + + rule, err := parsePortForwardRule( + "tcp://127.0.0.1:0/" + echo.Addr().String(), + ) + if err != nil { + t.Fatalf("parse forward: %v", err) + } + forwards, err := startPortForwards( + context.Background(), + standardDial, + []portForwardRule{rule}, + ) + if err != nil { + t.Fatalf("start forward: %v", err) + } + defer forwards.Close() + + connection, err := net.Dial("tcp4", forwards.addresses[0].String()) + if err != nil { + t.Fatalf("dial forward: %v", err) + } + defer connection.Close() + _ = connection.SetDeadline(time.Now().Add(5 * time.Second)) + sent := bytes.Repeat([]byte("easytier"), 1024) + if _, err := connection.Write(sent); err != nil { + t.Fatalf("write forward: %v", err) + } + received := make([]byte, len(sent)) + if _, err := io.ReadFull(connection, received); err != nil { + t.Fatalf("read forward: %v", err) + } + if !bytes.Equal(received, sent) { + t.Fatal("forwarded TCP data differs") + } +} + +func TestUDPPortForward(t *testing.T) { + echo, err := net.ListenUDP( + "udp4", + net.UDPAddrFromAddrPort(netip.MustParseAddrPort("127.0.0.1:0")), + ) + if err != nil { + t.Fatalf("listen echo: %v", err) + } + defer echo.Close() + _ = echo.SetDeadline(time.Now().Add(5 * time.Second)) + firstReceived := make(chan struct{}) + go func() { + packet := make([]byte, 65535) + if _, _, readErr := echo.ReadFromUDPAddrPort(packet); readErr != nil { + close(firstReceived) + return + } + close(firstReceived) + length, client, readErr := echo.ReadFromUDPAddrPort(packet) + if readErr != nil { + return + } + _, _ = echo.WriteToUDPAddrPort(packet[:length], client) + }() + + rule, err := parsePortForwardRule( + "udp://127.0.0.1:0/" + echo.LocalAddr().String(), + ) + if err != nil { + t.Fatalf("parse forward: %v", err) + } + forwards, err := startPortForwards( + context.Background(), + standardDial, + []portForwardRule{rule}, + ) + if err != nil { + t.Fatalf("start forward: %v", err) + } + defer forwards.Close() + + firstClient, err := net.Dial("udp4", forwards.addresses[0].String()) + if err != nil { + t.Fatalf("dial forward: %v", err) + } + defer firstClient.Close() + if _, err := firstClient.Write([]byte("first")); err != nil { + t.Fatalf("write from first client: %v", err) + } + <-firstReceived + + lastClient, err := net.Dial("udp4", forwards.addresses[0].String()) + if err != nil { + t.Fatalf("dial forward from last client: %v", err) + } + defer lastClient.Close() + _ = lastClient.SetDeadline(time.Now().Add(5 * time.Second)) + sent := []byte("last") + if _, err := lastClient.Write(sent); err != nil { + t.Fatalf("write from last client: %v", err) + } + received := make([]byte, len(sent)) + if _, err := io.ReadFull(lastClient, received); err != nil { + t.Fatalf("read forward: %v", err) + } + if !bytes.Equal(received, sent) { + t.Fatal("forwarded UDP data differs") + } +} + +func standardDial( + ctx context.Context, + network string, + address string, +) (net.Conn, error) { + return (&net.Dialer{}).DialContext(ctx, network, address) +} + +func TestParseOptionsRequiresForward(t *testing.T) { + _, err := parseOptions([]string{ + "-p", "tcp://198.51.100.10:11010", + "--network-name", "office", + "--network-secret", "secret", + "--ipv4", "10.144.0.10/24", + }) + if err == nil || !strings.Contains(err.Error(), "--port-forward") { + t.Fatalf("parse error = %v, want missing port-forward", err) + } +} diff --git a/easytier-go/cmd/update-wasm/main.go b/easytier-go/cmd/update-wasm/main.go new file mode 100644 index 00000000..17c00a76 --- /dev/null +++ b/easytier-go/cmd/update-wasm/main.go @@ -0,0 +1,254 @@ +package main + +import ( + "crypto/sha256" + "encoding/hex" + "flag" + "fmt" + "go/format" + "os" + "os/exec" + "path/filepath" + "strings" +) + +const ( + coreArtifact = "wasm32-wasip1/release/easytier_core_go_host.wasm" + coreBuildScript = "script/build-wasi-core.sh" + protoGenerateScript = "script/generate-proto.sh" +) + +var managementProtoFiles = []string{ + "common.proto", + "error.proto", + "acl.proto", + "peer_rpc.proto", + "api_instance.proto", + "api_config.proto", + "api_manage.proto", + "web.proto", +} + +func main() { + var source string + flag.StringVar(&source, "easytier", os.Getenv("EASYTIER_SOURCE"), "path to a clean EasyTier checkout") + flag.Parse() + + if err := update(source); err != nil { + fmt.Fprintln(os.Stderr, err) + os.Exit(1) + } +} + +func update(source string) error { + workingDirectory, err := os.Getwd() + if err != nil { + return fmt.Errorf("resolve generator directory: %w", err) + } + moduleFile, err := commandOutput(workingDirectory, "go", "env", "GOMOD") + if err != nil { + return err + } + if moduleFile == "" || moduleFile == os.DevNull { + return fmt.Errorf("locate Go module from %s", workingDirectory) + } + repositoryRoot := filepath.Dir(moduleFile) + if source == "" { + source = filepath.Join(repositoryRoot, "..") + } + source, err = filepath.Abs(source) + if err != nil { + return fmt.Errorf("resolve EasyTier source: %w", err) + } + if _, err := os.Stat(filepath.Join(source, "Cargo.toml")); err != nil { + return fmt.Errorf("validate EasyTier source %s: %w", source, err) + } + if err := requireCleanCheckout(source); err != nil { + return err + } + commit, err := commandOutput(source, "git", "rev-parse", "HEAD") + if err != nil { + return err + } + sourceDateEpoch, err := commandOutput(source, "git", "show", "-s", "--format=%ct", "HEAD") + if err != nil { + return err + } + + if err := buildCore(source, sourceDateEpoch); err != nil { + return err + } + if err := generateProto(repositoryRoot, source); err != nil { + return err + } + protoDigest, err := protoSchemaDigest(source) + if err != nil { + return err + } + + coreDigest, err := copyArtifact( + coreArtifactPath(source, os.Getenv("CARGO_TARGET_DIR")), + filepath.Join(repositoryRoot, "internal", "artifact", "easytier_core.wasm"), + ) + if err != nil { + return err + } + if err := writeProvenance(repositoryRoot, commit, coreDigest); err != nil { + return err + } + if err := writeProtoProvenance(repositoryRoot, commit, protoDigest); err != nil { + return err + } + fmt.Printf("embedded EasyTier %s (sha256 %s)\n", commit, coreDigest) + return nil +} + +func coreArtifactPath(source, cargoTargetDirectory string) string { + if cargoTargetDirectory == "" { + cargoTargetDirectory = "target" + } + if !filepath.IsAbs(cargoTargetDirectory) { + cargoTargetDirectory = filepath.Join(source, cargoTargetDirectory) + } + return filepath.Join(cargoTargetDirectory, coreArtifact) +} + +func requireCleanCheckout(source string) error { + status, err := commandOutput(source, "git", "status", "--porcelain", "--untracked-files=no") + if err != nil { + return err + } + if status != "" { + return fmt.Errorf("EasyTier checkout is dirty:\n%s", status) + } + return nil +} + +func commandOutput(directory, name string, args ...string) (string, error) { + command := exec.Command(name, args...) + command.Dir = directory + output, err := command.CombinedOutput() + if err != nil { + return "", fmt.Errorf("run %s: %w\n%s", name, err, output) + } + return strings.TrimSpace(string(output)), nil +} + +func buildCore(source, sourceDateEpoch string) error { + command := exec.Command("bash", filepath.Join(source, coreBuildScript)) + command.Dir = source + command.Env = reproducibleBuildEnvironment(source, sourceDateEpoch) + command.Stdout = os.Stdout + command.Stderr = os.Stderr + if err := command.Run(); err != nil { + return fmt.Errorf("run EasyTier WASI build script: %w", err) + } + return nil +} + +func generateProto(repositoryRoot, source string) error { + command := exec.Command( + "bash", + filepath.Join(repositoryRoot, protoGenerateScript), + source, + ) + command.Dir = repositoryRoot + command.Stdout = os.Stdout + command.Stderr = os.Stderr + if err := command.Run(); err != nil { + return fmt.Errorf("generate EasyTier Go protobuf bindings: %w", err) + } + return nil +} + +func protoSchemaDigest(source string) (string, error) { + digest := sha256.New() + protoRoot := filepath.Join(source, "easytier-proto", "proto") + for _, name := range managementProtoFiles { + contents, err := os.ReadFile(filepath.Join(protoRoot, name)) + if err != nil { + return "", fmt.Errorf("read EasyTier protobuf source %s: %w", name, err) + } + digest.Write([]byte(name)) + digest.Write([]byte{0}) + digest.Write(contents) + digest.Write([]byte{0}) + } + return hex.EncodeToString(digest.Sum(nil)), nil +} + +func reproducibleBuildEnvironment(source, sourceDateEpoch string) []string { + environment := make([]string, 0, len(os.Environ())+3) + for _, entry := range os.Environ() { + if strings.HasPrefix(entry, "RUSTFLAGS=") || + strings.HasPrefix(entry, "CARGO_ENCODED_RUSTFLAGS=") || + strings.HasPrefix(entry, "SOURCE_DATE_EPOCH=") { + continue + } + environment = append(environment, entry) + } + remap := "--remap-path-prefix=" + source + "=/workspace/EasyTier" + return append( + environment, + "RUSTFLAGS=", + "CARGO_ENCODED_RUSTFLAGS="+remap, + "SOURCE_DATE_EPOCH="+sourceDateEpoch, + ) +} + +func copyArtifact(source, destination string) (string, error) { + contents, err := os.ReadFile(source) + if err != nil { + return "", fmt.Errorf("read artifact %s: %w", source, err) + } + if err := os.MkdirAll(filepath.Dir(destination), 0o755); err != nil { + return "", fmt.Errorf("create artifact directory: %w", err) + } + if err := os.WriteFile(destination, contents, 0o644); err != nil { + return "", fmt.Errorf("write artifact %s: %w", destination, err) + } + digest := sha256.Sum256(contents) + return hex.EncodeToString(digest[:]), nil +} + +func writeProvenance(repositoryRoot, commit, digest string) error { + source := fmt.Sprintf(`// Code generated by go generate; DO NOT EDIT. + +package artifact + +const ( + Commit = %q + SHA256 = %q +) +`, commit, digest) + formatted, err := format.Source([]byte(source)) + if err != nil { + return fmt.Errorf("format provenance: %w", err) + } + path := filepath.Join(repositoryRoot, "internal", "artifact", "provenance.go") + if err := os.WriteFile(path, formatted, 0o644); err != nil { + return fmt.Errorf("write provenance: %w", err) + } + return nil +} + +func writeProtoProvenance(repositoryRoot, commit, digest string) error { + source := fmt.Sprintf(`// Code generated by go generate; DO NOT EDIT. + +package proto + +const ( + EasyTierCommit = %q + SchemaSHA256 = %q +) +`, commit, digest) + formatted, err := format.Source([]byte(source)) + if err != nil { + return fmt.Errorf("format protobuf provenance: %w", err) + } + path := filepath.Join(repositoryRoot, "proto", "provenance.go") + if err := os.WriteFile(path, formatted, 0o644); err != nil { + return fmt.Errorf("write protobuf provenance: %w", err) + } + return nil +} diff --git a/easytier-go/cmd/update-wasm/main_test.go b/easytier-go/cmd/update-wasm/main_test.go new file mode 100644 index 00000000..1c21ed49 --- /dev/null +++ b/easytier-go/cmd/update-wasm/main_test.go @@ -0,0 +1,92 @@ +package main + +import ( + "os" + "path/filepath" + "strings" + "testing" +) + +func TestCoreArtifactPathUsesCargoTargetDirectory(t *testing.T) { + source := filepath.Join(string(filepath.Separator), "checkout") + for _, test := range []struct { + name string + cargoTargetDir string + wantTargetDir string + }{ + {name: "default", wantTargetDir: filepath.Join(source, "target")}, + { + name: "relative", + cargoTargetDir: "build", + wantTargetDir: filepath.Join(source, "build"), + }, + { + name: "absolute", + cargoTargetDir: filepath.Join(string(filepath.Separator), "cache"), + wantTargetDir: filepath.Join(string(filepath.Separator), "cache"), + }, + } { + t.Run(test.name, func(t *testing.T) { + want := filepath.Join(test.wantTargetDir, coreArtifact) + if got := coreArtifactPath(source, test.cargoTargetDir); got != want { + t.Fatalf("core artifact path = %q, want %q", got, want) + } + }) + } +} + +func TestReproducibleBuildEnvironmentControlsRustInputs(t *testing.T) { + t.Setenv("RUSTFLAGS", "-C target-cpu=native") + t.Setenv("CARGO_ENCODED_RUSTFLAGS", "-C\u001fopt-level=1") + t.Setenv("SOURCE_DATE_EPOCH", "1") + environment := reproducibleBuildEnvironment("/checkout", "1700000000") + joined := strings.Join(environment, "\n") + if strings.Contains(joined, "target-cpu=native") || + strings.Contains(joined, "opt-level=1") { + t.Fatalf("uncontrolled Rust flags remained in environment:\n%s", joined) + } + for _, want := range []string{ + "CARGO_ENCODED_RUSTFLAGS=--remap-path-prefix=/checkout=/workspace/EasyTier", + "SOURCE_DATE_EPOCH=1700000000", + } { + if !strings.Contains(joined, want) { + t.Fatalf("build environment does not contain %q", want) + } + } +} + +func TestProtoSchemaDigestCoversEveryInput(t *testing.T) { + source := t.TempDir() + protoRoot := filepath.Join(source, "easytier-proto", "proto") + if err := os.MkdirAll(protoRoot, 0o755); err != nil { + t.Fatalf("create proto root: %v", err) + } + for _, name := range managementProtoFiles { + if err := os.WriteFile( + filepath.Join(protoRoot, name), + []byte(name), + 0o644, + ); err != nil { + t.Fatalf("write %s: %v", name, err) + } + } + before, err := protoSchemaDigest(source) + if err != nil { + t.Fatalf("digest proto schema: %v", err) + } + changed := managementProtoFiles[len(managementProtoFiles)-1] + if err := os.WriteFile( + filepath.Join(protoRoot, changed), + []byte("changed"), + 0o644, + ); err != nil { + t.Fatalf("change %s: %v", changed, err) + } + after, err := protoSchemaDigest(source) + if err != nil { + t.Fatalf("digest changed proto schema: %v", err) + } + if before == after { + t.Fatal("schema digest did not change with a protobuf input") + } +} diff --git a/easytier-go/examples/dial/main.go b/easytier-go/examples/dial/main.go new file mode 100644 index 00000000..2b515aec --- /dev/null +++ b/easytier-go/examples/dial/main.go @@ -0,0 +1,305 @@ +package main + +import ( + "context" + "encoding/binary" + "errors" + "flag" + "fmt" + "io" + "log" + "net" + "net/netip" + "os" + "os/signal" + "strings" + "syscall" + "time" + + corehost "github.com/EasyTier/EasyTier/easytier-go" + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" +) + +const maxUDPPayload = 65507 + +type peerList []string + +func (peers *peerList) Set(value string) error { + if strings.TrimSpace(value) == "" { + return fmt.Errorf("peer URI must not be empty") + } + *peers = append(*peers, value) + return nil +} + +func (peers *peerList) String() string { + return strings.Join(*peers, ",") +} + +type options struct { + peers peerList + networkName string + networkSecret string + ipv4 string + network string + address string + connectTimeout time.Duration +} + +func main() { + options, err := parseOptions(os.Args[1:]) + if err == flag.ErrHelp { + return + } + if err != nil { + log.Printf("invalid arguments: %v", err) + os.Exit(2) + } + + ctx, stop := signal.NotifyContext( + context.Background(), + os.Interrupt, + syscall.SIGTERM, + ) + defer stop() + if err := run(ctx, options, os.Stdin, os.Stdout); err != nil { + log.Printf("EasyTier dial failed: %v", err) + os.Exit(1) + } +} + +func parseOptions(arguments []string) (options, error) { + flags := flag.NewFlagSet("dial", flag.ContinueOnError) + var options options + flags.Var(&options.peers, "p", "EasyTier peer URI; may be repeated") + flags.StringVar(&options.networkName, "network-name", "", "EasyTier network name") + flags.StringVar(&options.networkSecret, "network-secret", "", "EasyTier network secret") + flags.StringVar(&options.ipv4, "ipv4", "", "fixed EasyTier IPv4 address and prefix") + flags.StringVar(&options.network, "network", "tcp4", "overlay network: tcp4 or udp4") + flags.StringVar(&options.address, "address", "", "overlay IPv4 destination") + flags.DurationVar( + &options.connectTimeout, + "connect-timeout", + 10*time.Second, + "time to wait for an overlay route and connection", + ) + if err := flags.Parse(arguments); err != nil { + return options, err + } + if flags.NArg() != 0 { + return options, fmt.Errorf("unexpected argument %q", flags.Arg(0)) + } + if err := options.validate(); err != nil { + return options, err + } + return options, nil +} + +func (options options) validate() error { + if len(options.peers) == 0 { + return fmt.Errorf("at least one -p peer is required") + } + if strings.TrimSpace(options.networkName) == "" { + return fmt.Errorf("--network-name is required") + } + if options.networkSecret == "" { + return fmt.Errorf("--network-secret is required") + } + prefix, err := netip.ParsePrefix(options.ipv4) + if err != nil { + return fmt.Errorf("parse --ipv4: %w", err) + } + if !prefix.Addr().Is4() { + return fmt.Errorf("--ipv4 must be an IPv4 prefix") + } + if options.network != "tcp4" && options.network != "udp4" { + return fmt.Errorf("--network must be tcp4 or udp4") + } + if options.connectTimeout <= 0 { + return fmt.Errorf("--connect-timeout must be positive") + } + address, err := netip.ParseAddrPort(options.address) + if err != nil || !address.Addr().Is4() || address.Port() == 0 { + return fmt.Errorf("--address must be an IPv4 socket address with a nonzero port") + } + return nil +} + +func run( + ctx context.Context, + options options, + input io.Reader, + output io.Writer, +) error { + prefix, err := netip.ParsePrefix(options.ipv4) + if err != nil { + return fmt.Errorf("parse instance IPv4 prefix: %w", err) + } + config, err := corehost.NewInstanceConfigBuilder(options.networkName). + NetworkSecret(options.networkSecret). + IPv4(prefix). + AddPeers([]string(options.peers)...). + Build() + if err != nil { + return fmt.Errorf("build EasyTier instance config: %w", err) + } + + host, err := corehost.New(ctx, corehost.Options{}) + if err != nil { + return fmt.Errorf("create EasyTier host: %w", err) + } + defer host.Close(context.Background()) + instance, err := host.CreateInstance(ctx, config) + if err != nil { + return fmt.Errorf("create EasyTier instance: %w", err) + } + defer instance.Close(context.Background()) + if err := instance.Start(ctx); err != nil { + return fmt.Errorf("start EasyTier instance: %w", err) + } + + target := netip.MustParseAddrPort(options.address) + connectContext, cancelConnect := context.WithTimeout(ctx, options.connectTimeout) + defer cancelConnect() + if target.Addr() != prefix.Addr() { + if err := waitForRoute(connectContext, instance, target.Addr()); err != nil { + return fmt.Errorf("wait for overlay route to %s: %w", target.Addr(), err) + } + } + connection, err := instance.Dial( + connectContext, + options.network, + options.address, + ) + if err != nil { + return err + } + defer connection.Close() + stopClose := contextutil.AfterFunc(ctx, func() { + _ = connection.Close() + }) + defer stopClose() + + log.Printf("connected %s to %s through EasyTier", options.network, options.address) + switch options.network { + case "tcp4": + err = relayTCP(connection, input, output) + case "udp4": + err = exchangeUDP(ctx, connection, input, output) + } + if ctx.Err() != nil { + return nil + } + return err +} + +func waitForRoute( + ctx context.Context, + instance *corehost.Instance, + target netip.Addr, +) error { + ticker := time.NewTicker(50 * time.Millisecond) + defer ticker.Stop() + for { + routes, err := instance.ListRoute(ctx) + if err != nil { + return err + } + if routesReach(routes, target) { + return nil + } + select { + case <-ctx.Done(): + return ctx.Err() + case <-ticker.C: + } + } +} + +func routesReach(routes []*corehost.Route, target netip.Addr) bool { + octets := target.As4() + targetValue := binary.BigEndian.Uint32(octets[:]) + for _, route := range routes { + if route.GetIpv4Addr().GetAddress().GetAddr() == targetValue { + return true + } + for _, cidr := range route.GetProxyCidrs() { + prefix, err := netip.ParsePrefix(cidr) + if err == nil && prefix.Contains(target) { + return true + } + } + } + return false +} + +func relayTCP(connection net.Conn, input io.Reader, output io.Writer) error { + writeResult := make(chan error, 1) + go func() { + _, err := io.Copy(connection, input) + writeResult <- err + }() + + _, readErr := io.Copy(output, connection) + select { + case writeErr := <-writeResult: + return errors.Join(writeErr, readErr) + default: + return readErr + } +} + +func exchangeUDP( + ctx context.Context, + connection net.Conn, + input io.Reader, + output io.Writer, +) error { + type readResult struct { + payload []byte + err error + } + result := make(chan readResult, 1) + go func() { + payload, err := io.ReadAll(io.LimitReader(input, maxUDPPayload+1)) + result <- readResult{payload: payload, err: err} + }() + + var payload []byte + select { + case <-ctx.Done(): + return ctx.Err() + case read := <-result: + if read.err != nil { + return fmt.Errorf("read UDP payload: %w", read.err) + } + payload = read.payload + } + if len(payload) == 0 { + return fmt.Errorf("UDP input must contain one non-empty datagram") + } + if len(payload) > maxUDPPayload { + return fmt.Errorf("UDP input exceeds the maximum payload of %d bytes", maxUDPPayload) + } + written, err := connection.Write(payload) + if err != nil { + return fmt.Errorf("write UDP datagram: %w", err) + } + if written != len(payload) { + return io.ErrShortWrite + } + + response := make([]byte, maxUDPPayload) + length, err := connection.Read(response) + if err != nil { + return fmt.Errorf("read UDP datagram: %w", err) + } + written, err = output.Write(response[:length]) + if err != nil { + return fmt.Errorf("write UDP response: %w", err) + } + if written != length { + return io.ErrShortWrite + } + return nil +} diff --git a/easytier-go/examples/dial/main_test.go b/easytier-go/examples/dial/main_test.go new file mode 100644 index 00000000..83001cfb --- /dev/null +++ b/easytier-go/examples/dial/main_test.go @@ -0,0 +1,209 @@ +package main + +import ( + "bytes" + "context" + "encoding/binary" + "io" + "net" + "net/netip" + "strings" + "testing" + "time" + + corehost "github.com/EasyTier/EasyTier/easytier-go" + "github.com/EasyTier/EasyTier/easytier-go/proto/common" +) + +func TestParseOptions(t *testing.T) { + options, err := parseOptions([]string{ + "-p", "tcp://198.51.100.10:11010", + "--network-name", "office", + "--network-secret", "secret", + "--ipv4", "10.144.0.10/24", + "--network", "udp4", + "--address", "10.144.0.20:7000", + "--connect-timeout", "3s", + }) + if err != nil { + t.Fatalf("parse options: %v", err) + } + if options.network != "udp4" || + options.address != "10.144.0.20:7000" || + options.connectTimeout != 3*time.Second || + len(options.peers) != 1 { + t.Fatalf("parsed options = %+v", options) + } +} + +func TestParseOptionsRejectsInvalidArguments(t *testing.T) { + valid := []string{ + "-p", "tcp://198.51.100.10:11010", + "--network-name", "office", + "--network-secret", "secret", + "--ipv4", "10.144.0.10/24", + "--address", "10.144.0.20:7000", + } + tests := []struct { + name string + arguments []string + want string + }{ + { + name: "network", + arguments: append(append([]string(nil), valid...), "--network", "sctp"), + want: "--network", + }, + { + name: "destination", + arguments: []string{ + "-p", "tcp://198.51.100.10:11010", + "--network-name", "office", + "--network-secret", "secret", + "--ipv4", "10.144.0.10/24", + "--address", "[2001:db8::1]:7000", + }, + want: "--address", + }, + { + name: "connect timeout", + arguments: append(append([]string(nil), valid...), "--connect-timeout", "0s"), + want: "--connect-timeout", + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + _, err := parseOptions(test.arguments) + if err == nil || !strings.Contains(err.Error(), test.want) { + t.Fatalf("parse error = %v, want containing %q", err, test.want) + } + }) + } +} + +func TestRoutesReachOverlayOrProxyDestination(t *testing.T) { + overlay := netip.MustParseAddr("10.144.0.20") + overlayOctets := overlay.As4() + routes := []*corehost.Route{ + { + Ipv4Addr: &common.Ipv4Inet{ + Address: &common.Ipv4Addr{ + Addr: binary.BigEndian.Uint32(overlayOctets[:]), + }, + }, + }, + {ProxyCidrs: []string{"10.200.0.0/24"}}, + } + if !routesReach(routes, overlay) { + t.Fatal("overlay destination was not reachable") + } + if !routesReach(routes, netip.MustParseAddr("10.200.0.8")) { + t.Fatal("proxy destination was not reachable") + } + if routesReach(routes, netip.MustParseAddr("10.201.0.8")) { + t.Fatal("unknown destination was reachable") + } +} + +func TestRelayTCP(t *testing.T) { + client, server := net.Pipe() + defer client.Close() + defer server.Close() + serverDone := make(chan error, 1) + go func() { + request := make([]byte, len("request")) + if _, err := io.ReadFull(server, request); err != nil { + serverDone <- err + return + } + if string(request) != "request" { + serverDone <- io.ErrUnexpectedEOF + return + } + if _, err := server.Write([]byte("response")); err != nil { + serverDone <- err + return + } + serverDone <- server.Close() + }() + + var output bytes.Buffer + if err := relayTCP(client, strings.NewReader("request"), &output); err != nil { + t.Fatalf("relay TCP: %v", err) + } + if err := <-serverDone; err != nil { + t.Fatalf("serve TCP exchange: %v", err) + } + if output.String() != "response" { + t.Fatalf("TCP output = %q", output.String()) + } +} + +func TestExchangeUDP(t *testing.T) { + echo, err := net.ListenUDP("udp4", &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1)}) + if err != nil { + t.Fatalf("listen UDP echo: %v", err) + } + defer echo.Close() + echoDone := make(chan error, 1) + go func() { + packet := make([]byte, maxUDPPayload) + length, client, err := echo.ReadFromUDP(packet) + if err == nil { + _, err = echo.WriteToUDP(packet[:length], client) + } + echoDone <- err + }() + + connection, err := net.DialUDP("udp4", nil, echo.LocalAddr().(*net.UDPAddr)) + if err != nil { + t.Fatalf("dial UDP echo: %v", err) + } + defer connection.Close() + _ = connection.SetDeadline(time.Now().Add(5 * time.Second)) + + var output bytes.Buffer + if err := exchangeUDP( + context.Background(), + connection, + strings.NewReader("datagram"), + &output, + ); err != nil { + t.Fatalf("exchange UDP: %v", err) + } + if err := <-echoDone; err != nil { + t.Fatalf("serve UDP exchange: %v", err) + } + if output.String() != "datagram" { + t.Fatalf("UDP output = %q", output.String()) + } +} + +func TestExchangeUDPRejectsOversizedInput(t *testing.T) { + connection, peer := net.Pipe() + defer connection.Close() + defer peer.Close() + err := exchangeUDP( + context.Background(), + connection, + strings.NewReader(strings.Repeat("x", maxUDPPayload+1)), + io.Discard, + ) + if err == nil || !strings.Contains(err.Error(), "maximum payload") { + t.Fatalf("oversized UDP error = %v", err) + } +} + +func TestExchangeUDPCanCancelInputRead(t *testing.T) { + connection, peer := net.Pipe() + defer connection.Close() + defer peer.Close() + input, inputWriter := io.Pipe() + defer input.Close() + defer inputWriter.Close() + ctx, cancel := context.WithCancel(context.Background()) + cancel() + if err := exchangeUDP(ctx, connection, input, io.Discard); err != context.Canceled { + t.Fatalf("cancelled UDP exchange error = %v", err) + } +} diff --git a/easytier-go/examples/tun/go.mod b/easytier-go/examples/tun/go.mod new file mode 100644 index 00000000..3b236045 --- /dev/null +++ b/easytier-go/examples/tun/go.mod @@ -0,0 +1,34 @@ +module github.com/EasyTier/EasyTier/easytier-go/examples/tun + +go 1.25.0 + +require ( + github.com/EasyTier/EasyTier/easytier-go v0.0.0 + github.com/sagernet/sing-tun v0.8.11 +) + +require ( + github.com/florianl/go-nfqueue/v2 v2.0.2 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/go-ole/go-ole v1.3.0 // indirect + github.com/google/btree v1.1.3 // indirect + github.com/google/go-cmp v0.7.0 // indirect + github.com/mdlayher/netlink v1.9.0 // indirect + github.com/mdlayher/socket v0.5.1 // indirect + github.com/metacubex/wazero v0.0.0-20260628025728-9ae6bdcf2a7d // indirect + github.com/sagernet/fswatch v0.1.1 // indirect + github.com/sagernet/gvisor v0.0.0-20250811.0-sing-box-mod.1 // indirect + github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a // indirect + github.com/sagernet/nftables v0.3.0-mod.2 // indirect + github.com/sagernet/sing v0.8.0 // indirect + github.com/vishvananda/netns v0.0.4 // indirect + go4.org/netipx v0.0.0-20231129151722-fdeea329fbba // indirect + golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 // indirect + golang.org/x/net v0.50.0 // indirect + golang.org/x/sync v0.7.0 // indirect + golang.org/x/sys v0.44.0 // indirect + golang.org/x/time v0.7.0 // indirect + google.golang.org/protobuf v1.36.11 // indirect +) + +replace github.com/EasyTier/EasyTier/easytier-go => ../.. diff --git a/easytier-go/examples/tun/go.sum b/easytier-go/examples/tun/go.sum new file mode 100644 index 00000000..b2d2b250 --- /dev/null +++ b/easytier-go/examples/tun/go.sum @@ -0,0 +1,53 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/florianl/go-nfqueue/v2 v2.0.2 h1:FL5lQTeetgpCvac1TRwSfgaXUn0YSO7WzGvWNIp3JPE= +github.com/florianl/go-nfqueue/v2 v2.0.2/go.mod h1:VA09+iPOT43OMoCKNfXHyzujQUty2xmzyCRkBOlmabc= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/go-ole/go-ole v1.3.0 h1:Dt6ye7+vXGIKZ7Xtk4s6/xVdGDQynvom7xCFEdWr6uE= +github.com/go-ole/go-ole v1.3.0/go.mod h1:5LS6F96DhAwUc7C+1HLexzMXY1xGRSryjyPPKW6zv78= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= +github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= +github.com/mdlayher/netlink v1.9.0 h1:G8+GLq2x3v4D4MVIqDdNUhTUC7TKiCy/6MDkmItfKco= +github.com/mdlayher/netlink v1.9.0/go.mod h1:YBnl5BXsCoRuwBjKKlZ+aYmEoq0r12FDA/3JC+94KDg= +github.com/mdlayher/socket v0.5.1 h1:VZaqt6RkGkt2OE9l3GcC6nZkqD3xKeQLyfleW/uBcos= +github.com/mdlayher/socket v0.5.1/go.mod h1:TjPLHI1UgwEv5J1B5q0zTZq12A/6H7nKmtTanQE37IQ= +github.com/metacubex/wazero v0.0.0-20260628025728-9ae6bdcf2a7d h1:UMFI+kdp0jA8s9tC7oul0pWeTW6s8lnm0dD5PT+RY14= +github.com/metacubex/wazero v0.0.0-20260628025728-9ae6bdcf2a7d/go.mod h1:p48xp436h1oGfoXuEnVONeDhTW+E2UpY94GAVxA62oI= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/sagernet/fswatch v0.1.1 h1:YqID+93B7VRfqIH3PArW/XpJv5H4OLEVWDfProGoRQs= +github.com/sagernet/fswatch v0.1.1/go.mod h1:nz85laH0mkQqJfaOrqPpkwtU1znMFNVTpT/5oRsVz/o= +github.com/sagernet/gvisor v0.0.0-20250811.0-sing-box-mod.1 h1:AzCE2RhBjLJ4WIWc/GejpNh+z30d5H1hwaB0nD9eY3o= +github.com/sagernet/gvisor v0.0.0-20250811.0-sing-box-mod.1/go.mod h1:NJKBtm9nVEK3iyOYWsUlrDQuoGh4zJ4KOPhSYVidvQ4= +github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a h1:ObwtHN2VpqE0ZNjr6sGeT00J8uU7JF4cNUdb44/Duis= +github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a/go.mod h1:xLnfdiJbSp8rNqYEdIW/6eDO4mVoogml14Bh2hSiFpM= +github.com/sagernet/nftables v0.3.0-mod.2 h1:ck2KMU02OxL1eDFgGaWYglMDpoOZ7OHzxje+vW5Q0OQ= +github.com/sagernet/nftables v0.3.0-mod.2/go.mod h1:8kslHG4VvYNihcco+i6uxIX7qbT8A56T0y5q7U44ZaQ= +github.com/sagernet/sing v0.8.0 h1:OwLEwbcYfZHvu4olZVljxxC1XRicBqJ1HfiFr6F2WEE= +github.com/sagernet/sing v0.8.0/go.mod h1:ARkL0gM13/Iv5VCZmci/NuoOlePoIsW0m7BWfln/Hak= +github.com/sagernet/sing-tun v0.8.11 h1:BFu4+8LNl2JiTQtto5f+5AbkH90qgdoZEAqUbGiEXCg= +github.com/sagernet/sing-tun v0.8.11/go.mod h1:QvarqUtHfj1ULaRR+6kZOS/OoCE+pYGq67A5tyIy+dQ= +github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= +github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= +github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= +go4.org/netipx v0.0.0-20231129151722-fdeea329fbba h1:0b9z3AuHCjxk0x/opv64kcgZLBseWJUpBw5I82+2U4M= +go4.org/netipx v0.0.0-20231129151722-fdeea329fbba/go.mod h1:PLyyIXexvUFg3Owu6p/WfdlivPbZJsZdgWZlrGope/Y= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8 h1:yixxcjnhBmY0nkL253HFVIm0JsFHwrHdT3Yh6szTnfY= +golang.org/x/exp v0.0.0-20240613232115-7f521ea00fb8/go.mod h1:jj3sYF3dwk5D+ghuXyeI3r5MFf+NT2An6/9dOA95KSI= +golang.org/x/net v0.50.0 h1:ucWh9eiCGyDR3vtzso0WMQinm2Dnt8cFMuQa9K33J60= +golang.org/x/net v0.50.0/go.mod h1:UgoSli3F/pBgdJBHCTc+tp3gmrU4XswgGRgtnwWTfyM= +golang.org/x/sync v0.7.0 h1:YsImfSBoP9QPYL0xyKJPq0gcaJdG3rInoqxTWbfQu9M= +golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ= +golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw= +golang.org/x/time v0.7.0 h1:ntUhktv3OPE6TgYxXWv9vKvUSJyIFJlyohwbkEwPrKQ= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE= +google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/easytier-go/examples/tun/main.go b/easytier-go/examples/tun/main.go new file mode 100644 index 00000000..362d33ca --- /dev/null +++ b/easytier-go/examples/tun/main.go @@ -0,0 +1,498 @@ +package main + +import ( + "context" + "encoding/binary" + "errors" + "flag" + "fmt" + "io" + "log" + "net/netip" + "os" + "os/signal" + "runtime" + "strings" + "sync" + "syscall" + "time" + + corehost "github.com/EasyTier/EasyTier/easytier-go" + tun "github.com/sagernet/sing-tun" +) + +const ( + tunMTU = 1380 + tunNamePrefix = "et-go" + tunReadWorkers = 32 +) + +func main() { + options := parseOptions() + if _, err := options.validate(); err != nil { + log.Printf("invalid arguments: %v", err) + flag.Usage() + os.Exit(2) + } + + ctx, stop := signal.NotifyContext( + context.Background(), + os.Interrupt, + syscall.SIGTERM, + ) + defer stop() + if err := run(ctx, options); err != nil { + log.Printf("EasyTier TUN failed: %v", err) + os.Exit(1) + } +} + +// EasyTier lifecycle + +func run(ctx context.Context, options options) error { + prefix, err := options.validate() + if err != nil { + return err + } + + host, err := corehost.New(ctx, corehost.Options{}) + if err != nil { + return fmt.Errorf("create EasyTier host: %w", err) + } + defer host.Close(context.Background()) + + config, err := corehost.NewInstanceConfigBuilder(options.networkName). + NetworkSecret(options.networkSecret). + IPv4(prefix). + AddPeers([]string(options.peers)...). + AddPortForwards([]corehost.PortForwardConfig(options.portForwards)...). + Build() + if err != nil { + return fmt.Errorf("build EasyTier instance config: %w", err) + } + instance, err := host.CreateInstance(ctx, config) + if err != nil { + return fmt.Errorf("create EasyTier instance: %w", err) + } + defer instance.Close(context.Background()) + go logEvents(ctx, instance.Events()) + + device, err := createTun(prefix) + if err != nil { + return err + } + defer device.Close() + deviceName, err := device.Name() + if err != nil { + return fmt.Errorf("query TUN interface name: %w", err) + } + + if err := instance.Start(ctx); err != nil { + return fmt.Errorf("start EasyTier instance: %w", err) + } + startManagementSignals(ctx, instance) + log.Printf( + "connected %s to EasyTier network %q as %s", + deviceName, + options.networkName, + prefix, + ) + return bridgePackets(ctx, device, instance) +} + +func logEvents(ctx context.Context, events <-chan corehost.Event) { + for { + select { + case event, open := <-events: + if !open { + return + } + log.Printf("EasyTier event [%s]: %s", event.Kind, event.Message) + case <-ctx.Done(): + return + } + } +} + +func startManagementSignals( + ctx context.Context, + instance *corehost.Instance, +) { + var peerSignal syscall.Signal + var routeSignal syscall.Signal + // SIGUSR1 and SIGUSR2 have different numbers on Linux and macOS. + switch runtime.GOOS { + case "linux": + peerSignal, routeSignal = 10, 12 + case "darwin": + peerSignal, routeSignal = 30, 31 + default: + return + } + + signals := make(chan os.Signal, 1) + signal.Notify(signals, peerSignal, routeSignal) + go func() { + defer signal.Stop(signals) + for { + select { + case received := <-signals: + queryContext, cancel := context.WithTimeout(ctx, 5*time.Second) + switch received { + case peerSignal: + response, err := instance.ListPeer(queryContext) + if err != nil { + log.Printf("query EasyTier peer list: %v", err) + } else { + log.Printf("EasyTier peer list: %v", response) + } + case routeSignal: + response, err := instance.ListRoute(queryContext) + if err != nil { + log.Printf("query EasyTier route list: %v", err) + } else { + log.Printf("EasyTier route list: %v", response) + } + } + cancel() + case <-ctx.Done(): + return + } + } + }() +} + +// Native TUN adapter + +func createTun(prefix netip.Prefix) (*packetDevice, error) { + name := tun.CalculateInterfaceName(tunNamePrefix) + nativeTun, err := tun.New(tun.Options{ + Name: name, + Inet4Address: []netip.Prefix{prefix}, + MTU: tunMTU, + GSO: false, + AutoRoute: false, + StrictRoute: false, + InterfaceMonitor: noRouteInterfaceMonitor{}, + }) + if err != nil { + return nil, fmt.Errorf( + "create TUN %q (requires elevated privileges): %w", + name, + err, + ) + } + device := newPacketDevice(nativeTun) + if err := nativeTun.Start(); err != nil { + _ = device.Close() + return nil, fmt.Errorf("start TUN %q: %w", name, err) + } + return device, nil +} + +type packetDevice struct { + tun.Tun + packetOffset int + readMutex sync.Mutex + writeMutex sync.Mutex + readBuffer []byte + writeBuffer []byte + closeOnce sync.Once + closeErr error +} + +func newPacketDevice(nativeTun tun.Tun) *packetDevice { + device := &packetDevice{Tun: nativeTun} + if runtime.GOOS == "darwin" { + device.packetOffset = 4 + device.readBuffer = make([]byte, 65535+device.packetOffset) + device.writeBuffer = make([]byte, 65535+device.packetOffset) + } + return device +} + +func (device *packetDevice) Read(packet []byte) (int, error) { + device.readMutex.Lock() + defer device.readMutex.Unlock() + + if device.packetOffset == 0 { + return device.Tun.Read(packet) + } + if len(packet)+device.packetOffset > len(device.readBuffer) { + return 0, io.ErrShortBuffer + } + frame := device.readBuffer[:len(packet)+device.packetOffset] + length, err := device.Tun.Read(frame) + if err != nil { + return 0, err + } + if length < device.packetOffset { + return 0, io.ErrUnexpectedEOF + } + length -= device.packetOffset + copy(packet, frame[device.packetOffset:device.packetOffset+length]) + return length, nil +} + +func (device *packetDevice) Write(packet []byte) (int, error) { + device.writeMutex.Lock() + defer device.writeMutex.Unlock() + + if device.packetOffset == 0 { + return device.Tun.Write(packet) + } + if len(packet)+device.packetOffset > len(device.writeBuffer) { + return 0, io.ErrShortBuffer + } + frame := device.writeBuffer[:len(packet)+device.packetOffset] + if err := encodeNativeTunPacketHeader( + frame[:device.packetOffset], + packet, + ); err != nil { + return 0, err + } + copy(frame[device.packetOffset:], packet) + written, err := device.Tun.Write(frame) + if written <= device.packetOffset { + return 0, err + } + return written - device.packetOffset, err +} + +func (device *packetDevice) Close() error { + device.closeOnce.Do(func() { + device.closeErr = device.Tun.Close() + }) + return device.closeErr +} + +func encodeNativeTunPacketHeader(header, packet []byte) error { + if len(header) == 0 { + return nil + } + if len(packet) == 0 { + return fmt.Errorf("encode utun header: empty packet") + } + family := uint32(syscall.AF_INET) + switch packet[0] >> 4 { + case 4: + case 6: + family = syscall.AF_INET6 + default: + return fmt.Errorf("unsupported IP version %d", packet[0]>>4) + } + binary.BigEndian.PutUint32(header, family) + return nil +} + +// AutoRoute is disabled, so sing-tun v0.8.11 only calls this method. +type noRouteInterfaceMonitor struct { + tun.DefaultInterfaceMonitor +} + +func (noRouteInterfaceMonitor) RegisterMyInterface(string) { +} + +// Packet bridge + +func bridgePackets( + ctx context.Context, + device *packetDevice, + instance *corehost.Instance, +) error { + pumpContext, cancel := context.WithCancel(ctx) + defer cancel() + results := make(chan error, tunReadWorkers+1) + for range tunReadWorkers { + go func() { results <- copyTunToEasyTier(pumpContext, device, instance) }() + } + go func() { results <- copyEasyTierToTun(pumpContext, instance, device) }() + + errs := []error{<-results} + cancel() + errs = append(errs, device.Close()) + for range tunReadWorkers { + errs = append(errs, <-results) + } + return errors.Join(errs...) +} + +func copyTunToEasyTier( + ctx context.Context, + device io.Reader, + instance *corehost.Instance, +) error { + packet := make([]byte, 65535) + for { + length, err := device.Read(packet) + if err != nil { + if ctx.Err() != nil { + return nil + } + return fmt.Errorf("read TUN packet: %w", err) + } + if length == 0 || packet[0]>>4 != 4 { + continue + } + if err := instance.SendPacket(ctx, packet[:length]); err != nil { + if ctx.Err() != nil { + return nil + } + return fmt.Errorf("send TUN packet to EasyTier: %w", err) + } + } +} + +func copyEasyTierToTun( + ctx context.Context, + instance *corehost.Instance, + device io.Writer, +) error { + for { + packet, err := instance.ReceivePacket(ctx) + if err != nil { + if ctx.Err() != nil { + return nil + } + return fmt.Errorf("receive EasyTier packet: %w", err) + } + written, err := device.Write(packet) + if err != nil { + if ctx.Err() != nil { + return nil + } + return fmt.Errorf("write EasyTier packet to TUN: %w", err) + } + // Wintun reports a full send ring as (0, nil), meaning that it has + // dropped this packet. Keep the bridge alive for subsequent packets. + if written == 0 { + continue + } + if written != len(packet) { + return io.ErrShortWrite + } + } +} + +// Optional port forwarding + +type portForwardList []corehost.PortForwardConfig + +func (rules *portForwardList) Set(value string) error { + rule, err := parsePortForwardRule(value) + if err == nil { + *rules = append(*rules, rule) + } + return err +} + +func (rules *portForwardList) String() string { + values := make([]string, len(*rules)) + for index, rule := range *rules { + values[index] = fmt.Sprintf( + "%s://%s/%s", + rule.Protocol, + rule.Bind, + rule.Destination, + ) + } + return strings.Join(values, ",") +} + +func parsePortForwardRule(value string) (corehost.PortForwardConfig, error) { + protocolText, addresses, ok := strings.Cut(value, "://") + if !ok || (protocolText != "tcp" && protocolText != "udp") { + return corehost.PortForwardConfig{}, fmt.Errorf( + "port forward %q must use tcp:// or udp://", + value, + ) + } + bindText, targetText, ok := strings.Cut(addresses, "/") + if !ok { + return corehost.PortForwardConfig{}, fmt.Errorf( + "port forward %q must contain bind/overlay-target", + value, + ) + } + bind, err := netip.ParseAddrPort(bindText) + if err != nil { + return corehost.PortForwardConfig{}, fmt.Errorf("parse bind address: %w", err) + } + target, err := netip.ParseAddrPort(targetText) + if err != nil { + return corehost.PortForwardConfig{}, fmt.Errorf("parse target address: %w", err) + } + if !bind.Addr().Is4() || !target.Addr().Is4() { + return corehost.PortForwardConfig{}, fmt.Errorf( + "port forward requires IPv4 addresses", + ) + } + protocol := corehost.PortForwardTCP + if protocolText == "udp" { + protocol = corehost.PortForwardUDP + } + return corehost.PortForwardConfig{ + Protocol: protocol, + Bind: bind, + Destination: target, + }, nil +} + +// Command-line options + +func parseOptions() options { + var options options + flag.Var(&options.peers, "p", "EasyTier peer URI; may be repeated") + flag.Var( + &options.portForwards, + "port-forward", + "tcp://bind/overlay-target or udp://bind/overlay-target; may be repeated", + ) + flag.StringVar(&options.networkName, "network-name", "", "EasyTier network name") + flag.StringVar(&options.networkSecret, "network-secret", "", "EasyTier network secret") + flag.StringVar(&options.ipv4, "ipv4", "", "fixed EasyTier IPv4 address and prefix") + flag.Parse() + return options +} + +type peerList []string + +func (peers *peerList) Set(value string) error { + if strings.TrimSpace(value) == "" { + return fmt.Errorf("peer URI must not be empty") + } + *peers = append(*peers, value) + return nil +} + +func (peers *peerList) String() string { + return strings.Join(*peers, ",") +} + +type options struct { + peers peerList + portForwards portForwardList + networkName string + networkSecret string + ipv4 string +} + +func (options options) validate() (netip.Prefix, error) { + if len(options.peers) == 0 { + return netip.Prefix{}, fmt.Errorf("at least one -p peer is required") + } + if strings.TrimSpace(options.networkName) == "" { + return netip.Prefix{}, fmt.Errorf("--network-name is required") + } + if options.networkSecret == "" { + return netip.Prefix{}, fmt.Errorf("--network-secret is required") + } + prefix, err := netip.ParsePrefix(options.ipv4) + if err != nil { + return netip.Prefix{}, fmt.Errorf("parse --ipv4: %w", err) + } + if !prefix.Addr().Is4() { + return netip.Prefix{}, fmt.Errorf("--ipv4 must be an IPv4 prefix") + } + return prefix, nil +} diff --git a/easytier-go/examples/tun/main_test.go b/easytier-go/examples/tun/main_test.go new file mode 100644 index 00000000..6250059b --- /dev/null +++ b/easytier-go/examples/tun/main_test.go @@ -0,0 +1,256 @@ +package main + +import ( + "io" + "net/netip" + "strings" + "sync" + "sync/atomic" + "testing" + "time" + + tun "github.com/sagernet/sing-tun" +) + +func TestOptionsValidate(t *testing.T) { + valid := options{ + peers: peerList{"tcp://198.51.100.10:11010"}, + networkName: "office", + networkSecret: "secret", + ipv4: "10.144.0.10/24", + } + + tests := []struct { + name string + mutate func(*options) + wantErr string + }{ + { + name: "missing peer", + mutate: func(value *options) { value.peers = nil }, + wantErr: "at least one -p", + }, + { + name: "missing network name", + mutate: func(value *options) { value.networkName = "" }, + wantErr: "--network-name", + }, + { + name: "missing network secret", + mutate: func(value *options) { value.networkSecret = "" }, + wantErr: "--network-secret", + }, + { + name: "invalid IPv4 prefix", + mutate: func(value *options) { value.ipv4 = "10.144.0.10" }, + wantErr: "--ipv4", + }, + { + name: "IPv6 prefix", + mutate: func(value *options) { value.ipv4 = "fd00::10/64" }, + wantErr: "IPv4", + }, + } + + prefix, err := valid.validate() + if err != nil { + t.Fatalf("validate valid options: %v", err) + } + if prefix != netip.MustParsePrefix("10.144.0.10/24") { + t.Fatalf("validated prefix = %s", prefix) + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + value := valid + value.peers = append(peerList(nil), valid.peers...) + test.mutate(&value) + _, err := value.validate() + if err == nil || !strings.Contains(err.Error(), test.wantErr) { + t.Fatalf("validate error = %v, want containing %q", err, test.wantErr) + } + }) + } +} + +func TestPeerListRejectsEmptyPeer(t *testing.T) { + var peers peerList + if err := peers.Set(" "); err == nil { + t.Fatal("empty peer was accepted") + } + if err := peers.Set("tcp://198.51.100.10:11010"); err != nil { + t.Fatalf("set peer: %v", err) + } + if got := peers.String(); got != "tcp://198.51.100.10:11010" { + t.Fatalf("peer list string = %q", got) + } +} + +type blockingTun struct { + readStarted chan struct{} + closed chan struct{} + startOnce sync.Once + closeOnce sync.Once + closeCount atomic.Int32 +} + +func (device *blockingTun) Read([]byte) (int, error) { + device.startOnce.Do(func() { close(device.readStarted) }) + <-device.closed + return 0, io.ErrClosedPipe +} + +func (*blockingTun) Write(packet []byte) (int, error) { + return len(packet), nil +} + +func (*blockingTun) Name() (string, error) { + return "test-tun", nil +} + +func (*blockingTun) Start() error { + return nil +} + +func (device *blockingTun) Close() error { + device.closeOnce.Do(func() { + device.closeCount.Add(1) + close(device.closed) + }) + return nil +} + +func (*blockingTun) UpdateRouteOptions(tun.Options) error { + return nil +} + +func TestPacketDeviceCloseUnblocksRead(t *testing.T) { + nativeTun := &blockingTun{ + readStarted: make(chan struct{}), + closed: make(chan struct{}), + } + device := newPacketDevice(nativeTun) + readDone := make(chan error, 1) + go func() { + _, err := device.Read(make([]byte, 1500)) + readDone <- err + }() + <-nativeTun.readStarted + + if err := device.Close(); err != nil { + t.Fatalf("close device: %v", err) + } + if err := device.Close(); err != nil { + t.Fatalf("close device again: %v", err) + } + select { + case err := <-readDone: + if err != io.ErrClosedPipe { + t.Fatalf("read error = %v, want %v", err, io.ErrClosedPipe) + } + case <-time.After(time.Second): + t.Fatal("read remained blocked after close") + } + if count := nativeTun.closeCount.Load(); count != 1 { + t.Fatalf("native close count = %d, want 1", count) + } +} + +type memoryTun struct { + readPacket []byte + wrotePacket []byte +} + +func (device *memoryTun) Read(packet []byte) (int, error) { + return copy(packet, device.readPacket), nil +} + +func (device *memoryTun) Write(packet []byte) (int, error) { + device.wrotePacket = append(device.wrotePacket[:0], packet...) + return len(packet), nil +} + +func (*memoryTun) Name() (string, error) { + return "memory-tun", nil +} + +func (*memoryTun) Start() error { + return nil +} + +func (*memoryTun) Close() error { + return nil +} + +func (*memoryTun) UpdateRouteOptions(tun.Options) error { + return nil +} + +func TestPacketDeviceNativeFraming(t *testing.T) { + ipPacket := []byte{ + 0x45, 0, 0, 20, + 0, 0, 0, 0, + 64, 1, 0, 0, + 10, 0, 0, 1, + 10, 0, 0, 2, + } + nativeTun := &memoryTun{} + device := newPacketDevice(nativeTun) + nativePacket := make([]byte, device.packetOffset+len(ipPacket)) + if err := encodeNativeTunPacketHeader( + nativePacket[:device.packetOffset], + ipPacket, + ); err != nil { + t.Fatalf("encode native test packet: %v", err) + } + copy(nativePacket[device.packetOffset:], ipPacket) + + nativeTun.readPacket = nativePacket + received := make([]byte, 1500) + length, err := device.Read(received) + if err != nil { + t.Fatalf("read packet: %v", err) + } + if string(received[:length]) != string(ipPacket) { + t.Fatalf("read packet = %x, want %x", received[:length], ipPacket) + } + written, err := device.Write(ipPacket) + if err != nil { + t.Fatalf("write packet: %v", err) + } + if written != len(ipPacket) { + t.Fatalf("write length = %d, want %d", written, len(ipPacket)) + } + if string(nativeTun.wrotePacket) != string(nativePacket) { + t.Fatalf( + "native write packet = %x, want %x", + nativeTun.wrotePacket, + nativePacket, + ) + } +} + +func TestPortForwardList(t *testing.T) { + var rules portForwardList + for _, value := range []string{ + "tcp://127.0.0.1:5202/10.144.0.20:5201", + "udp://0.0.0.0:5203/10.144.0.21:5201", + } { + if err := rules.Set(value); err != nil { + t.Fatalf("set %q: %v", value, err) + } + } + if got := rules.String(); got != + "tcp://127.0.0.1:5202/10.144.0.20:5201,"+ + "udp://0.0.0.0:5203/10.144.0.21:5201" { + t.Fatalf("rules string = %q", got) + } + if err := rules.Set("sctp://127.0.0.1:1/10.0.0.1:2"); err == nil { + t.Fatal("unsupported protocol was accepted") + } + if rules[0].Protocol != "tcp" || + rules[0].Bind != netip.MustParseAddrPort("127.0.0.1:5202") || + rules[0].Destination != netip.MustParseAddrPort("10.144.0.20:5201") { + t.Fatalf("first port-forward rule = %+v", rules[0]) + } +} diff --git a/easytier-go/examples/web-client/main.go b/easytier-go/examples/web-client/main.go new file mode 100644 index 00000000..f44c05a0 --- /dev/null +++ b/easytier-go/examples/web-client/main.go @@ -0,0 +1,91 @@ +package main + +import ( + "context" + "flag" + "fmt" + "log" + "os" + "os/signal" + "strings" + "syscall" + + corehost "github.com/EasyTier/EasyTier/easytier-go" +) + +type options struct { + endpoint string + machineID string + hostname string + secure bool +} + +func main() { + options, err := parseOptions(os.Args[1:]) + if err == flag.ErrHelp { + return + } + if err != nil { + log.Printf("invalid arguments: %v", err) + os.Exit(2) + } + + ctx, stop := signal.NotifyContext( + context.Background(), + os.Interrupt, + syscall.SIGTERM, + ) + defer stop() + if err := run(ctx, options); err != nil { + log.Printf("EasyTier Web client failed: %v", err) + os.Exit(1) + } +} + +func parseOptions(arguments []string) (options, error) { + flags := flag.NewFlagSet("web-client", flag.ContinueOnError) + var options options + flags.StringVar(&options.endpoint, "web-endpoint", "", "Web config-server endpoint") + flags.StringVar(&options.machineID, "web-machine-id", "", "stable machine UUID") + flags.StringVar(&options.hostname, "web-hostname", "", "machine hostname") + flags.BoolVar(&options.secure, "web-secure", false, "use a secure Web connection") + if err := flags.Parse(arguments); err != nil { + return options, err + } + if flags.NArg() != 0 { + return options, fmt.Errorf("unexpected argument %q", flags.Arg(0)) + } + options.endpoint = strings.TrimSpace(options.endpoint) + options.machineID = strings.TrimSpace(options.machineID) + options.hostname = strings.TrimSpace(options.hostname) + if options.endpoint == "" { + return options, fmt.Errorf("--web-endpoint is required") + } + if options.machineID == "" { + return options, fmt.Errorf("--web-machine-id is required") + } + return options, nil +} + +func run(ctx context.Context, options options) error { + host, err := corehost.New(ctx, corehost.Options{}) + if err != nil { + return fmt.Errorf("create EasyTier host: %w", err) + } + defer host.Close(context.Background()) + + client, err := host.ConnectWebClient(ctx, corehost.WebClientOptions{ + Endpoint: options.endpoint, + MachineID: options.machineID, + Hostname: options.hostname, + SecureMode: options.secure, + }) + if err != nil { + return fmt.Errorf("connect EasyTier Web client: %w", err) + } + defer client.Close(context.Background()) + + log.Printf("EasyTier Web client started for machine %s", options.machineID) + <-ctx.Done() + return nil +} diff --git a/easytier-go/examples/web-client/main_test.go b/easytier-go/examples/web-client/main_test.go new file mode 100644 index 00000000..99955020 --- /dev/null +++ b/easytier-go/examples/web-client/main_test.go @@ -0,0 +1,53 @@ +package main + +import ( + "strings" + "testing" +) + +func TestParseOptions(t *testing.T) { + options, err := parseOptions([]string{ + "--web-endpoint", " tcp://config.example.com:22020/team ", + "--web-machine-id", " 11111111-2222-4333-8444-555555555555 ", + "--web-hostname", " edge-gateway ", + "--web-secure", + }) + if err != nil { + t.Fatalf("parse options: %v", err) + } + if options.endpoint != "tcp://config.example.com:22020/team" || + options.machineID != "11111111-2222-4333-8444-555555555555" || + options.hostname != "edge-gateway" || + !options.secure { + t.Fatalf("parsed options = %+v", options) + } +} + +func TestParseOptionsRequiresEndpointAndMachineID(t *testing.T) { + tests := []struct { + name string + arguments []string + want string + }{ + { + name: "endpoint", + arguments: []string{ + "--web-machine-id", "11111111-2222-4333-8444-555555555555", + }, + want: "--web-endpoint", + }, + { + name: "machine ID", + arguments: []string{"--web-endpoint", "tcp://config.example.com:22020/team"}, + want: "--web-machine-id", + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + _, err := parseOptions(test.arguments) + if err == nil || !strings.Contains(err.Error(), test.want) { + t.Fatalf("parse error = %v, want containing %q", err, test.want) + } + }) + } +} diff --git a/easytier-go/go.mod b/easytier-go/go.mod new file mode 100644 index 00000000..acf062a6 --- /dev/null +++ b/easytier-go/go.mod @@ -0,0 +1,9 @@ +module github.com/EasyTier/EasyTier/easytier-go + +go 1.20 + +require ( + github.com/metacubex/wazero v0.0.0-20260628025728-9ae6bdcf2a7d + golang.org/x/sys v0.30.0 + google.golang.org/protobuf v1.34.2 +) diff --git a/easytier-go/go.sum b/easytier-go/go.sum new file mode 100644 index 00000000..3234afbe --- /dev/null +++ b/easytier-go/go.sum @@ -0,0 +1,8 @@ +github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= +github.com/metacubex/wazero v0.0.0-20260628025728-9ae6bdcf2a7d h1:UMFI+kdp0jA8s9tC7oul0pWeTW6s8lnm0dD5PT+RY14= +github.com/metacubex/wazero v0.0.0-20260628025728-9ae6bdcf2a7d/go.mod h1:p48xp436h1oGfoXuEnVONeDhTW+E2UpY94GAVxA62oI= +golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= +golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= diff --git a/easytier-go/host.go b/easytier-go/host.go new file mode 100644 index 00000000..774ccada --- /dev/null +++ b/easytier-go/host.go @@ -0,0 +1,36 @@ +package host + +import ( + "context" + + internalhost "github.com/EasyTier/EasyTier/easytier-go/internal/host" +) + +type State = internalhost.State + +const ( + StateCreated State = internalhost.StateCreated + StateStarting State = internalhost.StateStarting + StateRunning State = internalhost.StateRunning + StateStopping State = internalhost.StateStopping + StateStopped State = internalhost.StateStopped +) + +type Options = internalhost.Options + +type EmbeddedCoreInfo = internalhost.EmbeddedCoreInfo + +// Event is one best-effort notification emitted by an EasyTier instance. +type Event = internalhost.Event + +type Host = internalhost.Host + +type Instance = internalhost.Instance + +func New(ctx context.Context, options Options) (*Host, error) { + return internalhost.New(ctx, options) +} + +func CoreInfo() EmbeddedCoreInfo { + return internalhost.CoreInfo() +} diff --git a/easytier-go/instance_config.go b/easytier-go/instance_config.go new file mode 100644 index 00000000..79e08c19 --- /dev/null +++ b/easytier-go/instance_config.go @@ -0,0 +1,31 @@ +package host + +import internalhost "github.com/EasyTier/EasyTier/easytier-go/internal/host" + +// P2PPolicy controls when an instance attempts peer-to-peer connections. +type P2PPolicy = internalhost.P2PPolicy + +// HolePunchingPolicy selects the hole-punching methods available to an instance. +type HolePunchingPolicy = internalhost.HolePunchingPolicy + +// PortForwardProtocol identifies the transport used by a port-forward rule. +type PortForwardProtocol = internalhost.PortForwardProtocol + +const ( + PortForwardTCP PortForwardProtocol = internalhost.PortForwardTCP + PortForwardUDP PortForwardProtocol = internalhost.PortForwardUDP +) + +// PortForwardConfig exposes a host socket through the EasyTier data plane. +type PortForwardConfig = internalhost.PortForwardConfig + +// InstanceConfig is an immutable EasyTier instance configuration. +type InstanceConfig = internalhost.InstanceConfig + +// InstanceConfigBuilder builds a validated InstanceConfig. +type InstanceConfigBuilder = internalhost.InstanceConfigBuilder + +// NewInstanceConfigBuilder starts a configuration for networkName. +func NewInstanceConfigBuilder(networkName string) *InstanceConfigBuilder { + return internalhost.NewInstanceConfigBuilder(networkName) +} diff --git a/easytier-go/internal/artifact/easytier_core.wasm b/easytier-go/internal/artifact/easytier_core.wasm new file mode 100644 index 0000000000000000000000000000000000000000..e116661f9ca7df58629efca3e99c86c0f85b9615 GIT binary patch literal 6850909 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%0AJ1CwI>cO|c8+^hUb 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

_lQRcEnM+y5fM;Meg=e6t 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%0AJXhoW`Ch38>rJH~OrCZfMA_-_RY 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

o)-S4LH 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

9mq__LTyc2h|L;@&$T=Zlfm#X{eJisT@exdQvKb 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%0A8K8kxRIK-q=EMLIdW0Sf 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�|XE2cC54}0$)EZ0@t z`JO)AeScr6Wy!W|$>wxNkgFiYB2g?^_RHMka%_3xJTx_)iKiZ~N`H_lm*k`b@lbm8 zobe@*i4x32HHbujN!>i0SOGgxumM3#B7y(`B8bG!C?LWO5kU|elwgBr5b!?V@7kxk z@70xL83E3WeL-jS>C^k{A8W6*_WG$`UDo$`4S59q>R0JkJc~U`y}^|x%+l~0xq)zF zh#Q*i#a3@gX9VON1ISAX%Vs{nBCVUg1jG&jN8~OZJ<=~m?9p(!0>?UQz3P%CiY2_T za{qXa*u)yN4qP`b&XhVZ1C)9o-aE?sTfC=*hDEB29K(+>0gq^DXXso**Dzyb@S*37 z+4O}eZnb{*-wLm*{!Fnis{TAPpegqJdcvl<6IMsoac7ih5V0vHZjerIRSskng<@eS zaG>kjh;a2s;6*dulvhE=udNw*;Ry%0AG;3T(m=Qo0+TjzYdMBG5!}1{fjFXjR|Xza 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�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

?#${lp*+2?x{ylffw=C?PP@6{HZD`3hR72{SE> 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μ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%0D~#vkqj6I9 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

ezIxl^1qYhPTb0WC%6guu+=HE~^0V@| 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 z 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 z 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


^X1y> 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

ad1&G(;&b!_ru7H&@~{8(Dyw>adl%?e++q}6>9 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

CAQ5@K1O0rTZ{)qxMt3{Oq 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

    pfj?Q0*AJ$pk#)z_3(2)c3~eHOqt{U~B8Bp( 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�ZkPgYe9f!cM2Y1 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 z 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 EDAVwVw5TK*C2cE5@# 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 oiBH_FytVOk^|O(}_%$;Xm8W$Z{b;(j`dw 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

    9HG$f$8HkI7IU(Mp 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 literal 0 HcmV?d00001 diff --git a/easytier-go/internal/artifact/embed.go b/easytier-go/internal/artifact/embed.go new file mode 100644 index 00000000..4e913bfe --- /dev/null +++ b/easytier-go/internal/artifact/embed.go @@ -0,0 +1,12 @@ +package artifact + +import _ "embed" + +//go:generate go run ../../cmd/update-wasm + +//go:embed easytier_core.wasm +var core []byte + +func Core() []byte { + return core +} diff --git a/easytier-go/internal/artifact/embed_test.go b/easytier-go/internal/artifact/embed_test.go new file mode 100644 index 00000000..8fe23d1a --- /dev/null +++ b/easytier-go/internal/artifact/embed_test.go @@ -0,0 +1,17 @@ +package artifact + +import ( + "crypto/sha256" + "encoding/hex" + "testing" +) + +func TestEmbeddedCoreMatchesProvenance(t *testing.T) { + if len(Commit) != 40 { + t.Fatalf("EasyTier commit = %q", Commit) + } + digest := sha256.Sum256(Core()) + if got := hex.EncodeToString(digest[:]); got != SHA256 { + t.Fatalf("embedded core SHA-256 = %s, want %s", got, SHA256) + } +} diff --git a/easytier-go/internal/artifact/provenance.go b/easytier-go/internal/artifact/provenance.go new file mode 100644 index 00000000..68b90326 --- /dev/null +++ b/easytier-go/internal/artifact/provenance.go @@ -0,0 +1,8 @@ +// Code generated by go generate; DO NOT EDIT. + +package artifact + +const ( + Commit = "63519db2b5f2a6a1b9b7f20905f036dab54eb829" + SHA256 = "8b82f37d62fba2ffe8e256386096fddf448d4261d51c495d5bd97cd11bbb24a0" +) diff --git a/easytier-go/internal/contextutil/context.go b/easytier-go/internal/contextutil/context.go new file mode 100644 index 00000000..fc64b10a --- /dev/null +++ b/easytier-go/internal/contextutil/context.go @@ -0,0 +1,57 @@ +package contextutil + +import ( + "context" + "sync" + "time" +) + +type withoutCancelContext struct { + context.Context +} + +func (withoutCancelContext) Deadline() (time.Time, bool) { + return time.Time{}, false +} + +func (withoutCancelContext) Done() <-chan struct{} { + return nil +} + +func (withoutCancelContext) Err() error { + return nil +} + +// WithoutCancel returns a copy of parent that is not canceled when parent is. +// +// This is the Go 1.20-compatible equivalent of context.WithoutCancel. +func WithoutCancel(parent context.Context) context.Context { + if parent == nil { + panic("cannot create context from nil parent") + } + return withoutCancelContext{Context: parent} +} + +// AfterFunc arranges to call function in its own goroutine after context is +// canceled. The returned stop function reports whether it prevented the call. +// +// This is the Go 1.20-compatible equivalent of context.AfterFunc. +func AfterFunc(ctx context.Context, function func()) func() bool { + var once sync.Once + stopped := make(chan struct{}) + go func() { + select { + case <-ctx.Done(): + once.Do(func() { go function() }) + case <-stopped: + } + }() + return func() bool { + prevented := false + once.Do(func() { + prevented = true + close(stopped) + }) + return prevented + } +} diff --git a/easytier-go/internal/contextutil/context_test.go b/easytier-go/internal/contextutil/context_test.go new file mode 100644 index 00000000..68efb1a2 --- /dev/null +++ b/easytier-go/internal/contextutil/context_test.go @@ -0,0 +1,62 @@ +package contextutil + +import ( + "context" + "testing" + "time" +) + +type contextKey struct{} + +func TestWithoutCancelPreservesValuesOnly(t *testing.T) { + deadline := time.Now().Add(time.Minute) + parent, cancel := context.WithDeadline( + context.WithValue(context.Background(), contextKey{}, "value"), + deadline, + ) + cancel() + + ctx := WithoutCancel(parent) + if got := ctx.Value(contextKey{}); got != "value" { + t.Fatalf("value = %v, want value", got) + } + if _, ok := ctx.Deadline(); ok { + t.Fatal("deadline was preserved") + } + if ctx.Done() != nil { + t.Fatal("Done channel is non-nil") + } + if err := ctx.Err(); err != nil { + t.Fatalf("Err = %v, want nil", err) + } +} + +func TestAfterFuncRunsOnCancellation(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + called := make(chan struct{}) + stop := AfterFunc(ctx, func() { close(called) }) + cancel() + select { + case <-called: + case <-time.After(time.Second): + t.Fatal("function was not called") + } + if stop() { + t.Fatal("stop prevented an already started function") + } +} + +func TestAfterFuncCanBeStopped(t *testing.T) { + ctx, cancel := context.WithCancel(context.Background()) + called := make(chan struct{}) + stop := AfterFunc(ctx, func() { close(called) }) + if !stop() { + t.Fatal("stop did not prevent function") + } + cancel() + select { + case <-called: + t.Fatal("stopped function was called") + case <-time.After(10 * time.Millisecond): + } +} diff --git a/easytier-go/internal/coreabi/core.go b/easytier-go/internal/coreabi/core.go new file mode 100644 index 00000000..f882577e --- /dev/null +++ b/easytier-go/internal/coreabi/core.go @@ -0,0 +1,495 @@ +package coreabi + +import ( + "context" + "errors" + "fmt" + + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" + "github.com/metacubex/wazero/api" +) + +type State int32 + +const ( + StateCreated State = iota + StateStarting + StateRunning + StateStopping + StateStopped +) + +type Core struct { + module api.Module + functions map[string]guestFunction + driveFunction guestFunction + deadlineFunction guestFunction + completionFunction guestFunction + handle uint64 + packetBuffer uint32 + packetBufferCapacity uint32 + dataPlaneAddress uint32 + dataPlaneInput uint32 + dataPlaneInputSize uint32 + dataPlaneOutput uint32 + dataPlaneOutputSize uint32 + dropped bool +} + +type guestFunction struct { + call api.Function + parameterCount int +} + +func New(module api.Module) (*Core, error) { + if module == nil { + return nil, fmt.Errorf("create core ABI with nil guest module") + } + core := &Core{ + module: module, + functions: make(map[string]guestFunction), + } + if err := core.validateDataPlaneABI(context.Background()); err != nil { + return nil, fmt.Errorf("validate EasyTier data plane ABI: %w", err) + } + if err := core.validateRPCABI(context.Background()); err != nil { + return nil, fmt.Errorf("validate EasyTier RPC ABI: %w", err) + } + return core, nil +} + +func (core *Core) Create( + ctx context.Context, + configEnvelope []byte, + packetSink uint64, + eventSink uint64, +) (err error) { + if core.handle != 0 || core.dropped { + return fmt.Errorf("create EasyTier instance in used guest module") + } + pointer, err := core.allocate(ctx, uint32(len(configEnvelope))) + if err != nil { + return err + } + defer core.cleanupBuffer(ctx, pointer, &err) + if !core.module.Memory().Write(pointer, configEnvelope) { + return fmt.Errorf("write EasyTier config to guest memory") + } + result, err := core.callOne( + ctx, + "easytier_instance_create", + uint64(pointer), + uint64(len(configEnvelope)), + packetSink, + eventSink, + ) + if err != nil { + return err + } + if result == 0 { + message, readErr := core.errorMessage(ctx, 0) + if readErr != nil { + return fmt.Errorf("create EasyTier instance: %w", readErr) + } + return fmt.Errorf("create EasyTier instance: %s", message) + } + core.handle = result + return nil +} + +func (core *Core) Start(ctx context.Context) error { + return core.callStatus(ctx, "easytier_instance_start") +} + +func (core *Core) Stop(ctx context.Context) error { + return core.callStatus(ctx, "easytier_instance_stop") +} + +func (core *Core) Drive(ctx context.Context) (State, error) { + result, err := core.callCached( + ctx, + "easytier_instance_drive", + &core.driveFunction, + core.handle, + ) + if err != nil { + return 0, err + } + state := State(int32(result)) + if state < 0 { + return 0, core.statusError(ctx, "drive EasyTier instance", int32(state)) + } + return state, nil +} + +func (core *Core) NotifyCompletions(ctx context.Context) error { + return core.callStatus(ctx, "easytier_instance_notify_completions") +} + +func (core *Core) State(ctx context.Context) (State, error) { + result, err := core.callOne(ctx, "easytier_instance_state", core.handle) + if err != nil { + return 0, err + } + state := State(int32(result)) + if state < 0 { + return 0, core.statusError(ctx, "query EasyTier state", int32(state)) + } + return state, nil +} + +func (core *Core) NextDeadline(ctx context.Context) (int64, error) { + result, err := core.callCached( + ctx, + "easytier_instance_next_deadline_millis", + &core.deadlineFunction, + core.handle, + ) + if err != nil { + return 0, err + } + deadline := int64(result) + if deadline < 0 { + return 0, core.statusError(ctx, "query EasyTier deadline", int32(deadline)) + } + return deadline, nil +} + +func (core *Core) SendPacket(ctx context.Context, packet []byte) (err error) { + if len(packet) == 0 { + return fmt.Errorf("send empty packet to EasyTier instance") + } + pointer, err := core.ensurePacketBuffer(ctx, uint32(len(packet))) + if err != nil { + return err + } + if !core.module.Memory().Write(pointer, packet) { + return fmt.Errorf("write packet to guest memory") + } + result, err := core.callOne( + ctx, + "easytier_instance_send_packet", + core.handle, + uint64(pointer), + uint64(len(packet)), + ) + if err != nil { + return err + } + if status := int32(result); status != 0 { + return core.statusError(ctx, "send packet to EasyTier instance", status) + } + return nil +} + +func (core *Core) Drop(ctx context.Context) error { + if core.dropped || core.handle == 0 { + return nil + } + if err := core.callStatus(ctx, "easytier_instance_drop"); err != nil { + return err + } + core.dropped = true + core.handle = 0 + var releaseErr error + if core.packetBuffer != 0 { + err := core.free(ctx, core.packetBuffer) + core.packetBuffer = 0 + core.packetBufferCapacity = 0 + if err != nil { + releaseErr = errors.Join( + releaseErr, + fmt.Errorf("release EasyTier packet buffer: %w", err), + ) + } + } + if core.dataPlaneInput != 0 { + err := core.free(ctx, core.dataPlaneInput) + core.dataPlaneInput = 0 + core.dataPlaneInputSize = 0 + if err != nil { + releaseErr = errors.Join( + releaseErr, + fmt.Errorf("release EasyTier data plane input buffer: %w", err), + ) + } + } + if core.dataPlaneAddress != 0 { + err := core.free(ctx, core.dataPlaneAddress) + core.dataPlaneAddress = 0 + if err != nil { + releaseErr = errors.Join( + releaseErr, + fmt.Errorf("release EasyTier data plane address buffer: %w", err), + ) + } + } + if core.dataPlaneOutput != 0 { + err := core.free(ctx, core.dataPlaneOutput) + core.dataPlaneOutput = 0 + core.dataPlaneOutputSize = 0 + if err != nil { + releaseErr = errors.Join( + releaseErr, + fmt.Errorf("release EasyTier data plane output buffer: %w", err), + ) + } + } + return releaseErr +} + +func (core *Core) callStatus(ctx context.Context, name string) error { + if core.dropped || core.handle == 0 { + return fmt.Errorf("%s on unavailable EasyTier instance", name) + } + result, err := core.callOne(ctx, name, core.handle) + if err != nil { + return err + } + if status := int32(result); status != 0 { + return core.statusError(ctx, name, status) + } + return nil +} + +func (core *Core) statusError( + ctx context.Context, + operation string, + status int32, +) error { + message, err := core.errorMessage(ctx, core.handle) + if err != nil { + return fmt.Errorf("%s: status=%d: %w", operation, status, err) + } + return fmt.Errorf("%s: status=%d: %s", operation, status, message) +} + +func (core *Core) errorMessage( + ctx context.Context, + handle uint64, +) (message string, err error) { + length, err := core.callOne(ctx, "easytier_instance_error_len", handle) + if err != nil { + return "", err + } + if length == 0 { + return "", nil + } + pointer, err := core.allocate(ctx, uint32(length)) + if err != nil { + return "", err + } + defer core.cleanupBuffer(ctx, pointer, &err) + result, err := core.callOne( + ctx, + "easytier_instance_error_copy", + handle, + uint64(pointer), + length, + ) + if err != nil { + return "", err + } + if status := int32(result); status < 0 { + return "", fmt.Errorf("copy EasyTier error: status=%d", status) + } + encoded, ok := core.module.Memory().Read(pointer, uint32(length)) + if !ok { + return "", fmt.Errorf("read EasyTier error from guest memory") + } + return string(encoded), nil +} + +func (core *Core) allocate(ctx context.Context, length uint32) (uint32, error) { + result, err := core.callOne(ctx, "easytier_buffer_alloc", uint64(length)) + if err != nil { + return 0, err + } + if result == 0 { + return 0, fmt.Errorf("allocate %d guest bytes", length) + } + return uint32(result), nil +} + +func (core *Core) free(ctx context.Context, pointer uint32) error { + result, err := core.callOne(ctx, "easytier_buffer_free", uint64(pointer)) + if err != nil { + return err + } + if status := int32(result); status != 0 { + return fmt.Errorf("free guest buffer: status=%d", status) + } + return nil +} + +func (core *Core) ensurePacketBuffer( + ctx context.Context, + length uint32, +) (uint32, error) { + if core.packetBufferCapacity >= length { + return core.packetBuffer, nil + } + if core.packetBuffer != 0 { + if err := core.free(ctx, core.packetBuffer); err != nil { + return 0, fmt.Errorf("grow EasyTier packet buffer: %w", err) + } + core.packetBuffer = 0 + core.packetBufferCapacity = 0 + } + pointer, err := core.allocate(ctx, length) + if err != nil { + return 0, err + } + core.packetBuffer = pointer + core.packetBufferCapacity = length + return pointer, nil +} + +func (core *Core) ensureDataPlaneInput( + ctx context.Context, + length uint32, +) (uint32, error) { + if core.dataPlaneInputSize >= length { + return core.dataPlaneInput, nil + } + if core.dataPlaneInput != 0 { + if err := core.free(ctx, core.dataPlaneInput); err != nil { + return 0, fmt.Errorf("grow EasyTier data plane input buffer: %w", err) + } + core.dataPlaneInput = 0 + core.dataPlaneInputSize = 0 + } + pointer, err := core.allocate(ctx, length) + if err != nil { + return 0, err + } + core.dataPlaneInput = pointer + core.dataPlaneInputSize = length + return pointer, nil +} + +func (core *Core) ensureDataPlaneAddress(ctx context.Context) (uint32, error) { + if core.dataPlaneAddress != 0 { + return core.dataPlaneAddress, nil + } + pointer, err := core.allocate(ctx, socketAddressLength) + if err != nil { + return 0, err + } + core.dataPlaneAddress = pointer + return pointer, nil +} + +func (core *Core) ensureDataPlaneOutput( + ctx context.Context, + length uint32, +) (uint32, error) { + if core.dataPlaneOutputSize >= length { + return core.dataPlaneOutput, nil + } + if core.dataPlaneOutput != 0 { + if err := core.free(ctx, core.dataPlaneOutput); err != nil { + return 0, fmt.Errorf("grow EasyTier data plane output buffer: %w", err) + } + core.dataPlaneOutput = 0 + core.dataPlaneOutputSize = 0 + } + pointer, err := core.allocate(ctx, length) + if err != nil { + return 0, err + } + core.dataPlaneOutput = pointer + core.dataPlaneOutputSize = length + return pointer, nil +} + +func (core *Core) cleanupBuffer( + ctx context.Context, + pointer uint32, + operationErr *error, +) { + cleanupErr := core.free(contextutil.WithoutCancel(ctx), pointer) + if *operationErr == nil && cleanupErr != nil { + *operationErr = cleanupErr + } +} + +func (core *Core) callOne( + ctx context.Context, + name string, + params ...uint64, +) (uint64, error) { + function, err := core.resolveFunction(name) + if err != nil { + return 0, err + } + return callGuestFunction(ctx, name, function, params) +} + +func (core *Core) callCached( + ctx context.Context, + name string, + cached *guestFunction, + params ...uint64, +) (uint64, error) { + if cached.call == nil { + function, err := core.resolveFunction(name) + if err != nil { + return 0, err + } + *cached = function + } + return callGuestFunction(ctx, name, *cached, params) +} + +func (core *Core) resolveFunction(name string) (guestFunction, error) { + function, exists := core.functions[name] + if !exists { + call := core.module.ExportedFunction(name) + if call == nil { + return guestFunction{}, fmt.Errorf( + "EasyTier guest does not export %s", + name, + ) + } + definition := call.Definition() + if count := len(definition.ResultTypes()); count != 1 { + return guestFunction{}, fmt.Errorf( + "%s returned %d values", + name, + count, + ) + } + function = guestFunction{ + call: call, + parameterCount: len(definition.ParamTypes()), + } + core.functions[name] = function + } + return function, nil +} + +func callGuestFunction( + ctx context.Context, + name string, + function guestFunction, + params []uint64, +) (uint64, error) { + if len(params) != function.parameterCount { + return 0, fmt.Errorf( + "%s expected %d params, but passed %d", + name, + function.parameterCount, + len(params), + ) + } + + stack := params + if len(stack) == 0 { + stack = make([]uint64, 1) + } + if err := function.call.CallWithStack(ctx, stack); err != nil { + return 0, fmt.Errorf("%s: %w", name, err) + } + return stack[0], nil +} diff --git a/easytier-go/internal/coreabi/core_test.go b/easytier-go/internal/coreabi/core_test.go new file mode 100644 index 00000000..169d8f0a --- /dev/null +++ b/easytier-go/internal/coreabi/core_test.go @@ -0,0 +1,62 @@ +package coreabi + +import ( + "context" + "testing" + + "github.com/metacubex/wazero/api" + "github.com/metacubex/wazero/experimental/wazerotest" +) + +func TestCallOneCachesFunction(t *testing.T) { + callCount := 0 + increment := wazerotest.NewFunction(func( + _ context.Context, + _ api.Module, + value uint64, + ) uint64 { + callCount++ + return value + 1 + }) + increment.ExportNames = []string{"increment"} + module := wazerotest.NewModule(nil, increment) + core := &Core{ + module: module, + functions: make(map[string]guestFunction), + } + + for i := uint64(0); i < 2; i++ { + result, err := core.callOne(context.Background(), "increment", i) + if err != nil { + t.Fatalf("call increment: %v", err) + } + if result != i+1 { + t.Fatalf("increment result = %d, want %d", result, i+1) + } + } + if callCount != 2 { + t.Fatalf("call count = %d, want 2", callCount) + } + if len(core.functions) != 1 { + t.Fatalf("cached functions = %d, want 1", len(core.functions)) + } +} + +func TestCallOneValidatesSignature(t *testing.T) { + noResult := wazerotest.NewFunction(func( + _ context.Context, + _ api.Module, + ) { + }) + noResult.ExportNames = []string{"no_result"} + module := wazerotest.NewModule(nil, noResult) + core := &Core{ + module: module, + functions: make(map[string]guestFunction), + } + + _, err := core.callOne(context.Background(), "no_result") + if err == nil { + t.Fatal("call function without result: expected error") + } +} diff --git a/easytier-go/internal/coreabi/dataplane.go b/easytier-go/internal/coreabi/dataplane.go new file mode 100644 index 00000000..fc4fb3e6 --- /dev/null +++ b/easytier-go/internal/coreabi/dataplane.go @@ -0,0 +1,715 @@ +package coreabi + +import ( + "context" + "encoding/binary" + "errors" + "fmt" + "math" + "net/netip" + + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" +) + +const ( + DataPlaneABIVersion = 3 + + DataPlaneCapability uint64 = 1 << 0 + DataPlaneTCPCapability uint64 = 1 << 1 + DataPlaneUDPCapability uint64 = 1 << 2 + + DeadlineRead DeadlineDirection = 1 << 0 + DeadlineWrite DeadlineDirection = 1 << 1 + + requiredDataPlaneCapabilities = DataPlaneCapability | + DataPlaneTCPCapability | + DataPlaneUDPCapability +) + +type OperationID uint64 +type ResourceID uint64 +type DeadlineDirection uint32 + +type OperationKind uint16 + +const ( + OperationTCPConnect OperationKind = iota + 1 + OperationTCPBind + OperationTCPAccept + OperationTCPRead + OperationTCPWrite + OperationUDPBind + OperationUDPReceive + OperationUDPSend +) + +func (kind OperationKind) valid() bool { + return kind >= OperationTCPConnect && kind <= OperationUDPSend +} + +type ErrorKind uint16 + +const ( + ErrorNone ErrorKind = iota + ErrorCancelled + ErrorDeadlineExceeded + ErrorInstanceStopped + ErrorHandleClosed + ErrorNoOverlayRoute + ErrorPathNotReady + ErrorAddressFamilyUnsupported + ErrorAddressInUse + ErrorConnectionRefused + ErrorNetworkChanged + ErrorResourceLimit + ErrorIO + ErrorBufferTooSmall +) + +func (kind ErrorKind) validCompletionStatus() bool { + return kind <= ErrorBufferTooSmall +} + +type DataPlaneError struct { + Kind ErrorKind + Message string +} + +func (err *DataPlaneError) Error() string { + if err.Message == "" { + return fmt.Sprintf("data plane error %d", err.Kind) + } + return err.Message +} + +type Completion struct { + Operation OperationID + Kind OperationKind + Status ErrorKind +} + +type OperationResult struct { + Kind OperationKind + Resource ResourceID + Local netip.AddrPort + Peer netip.AddrPort + Data []byte + Length int + EOF bool + Truncated bool +} + +func (core *Core) validateDataPlaneABI(ctx context.Context) error { + version, err := core.callOne(ctx, "easytier_data_plane_abi_version") + if err != nil { + return err + } + if version != DataPlaneABIVersion { + return fmt.Errorf( + "unsupported EasyTier data plane ABI version %d, want %d", + version, + DataPlaneABIVersion, + ) + } + capabilities, err := core.callOne(ctx, "easytier_data_plane_capabilities") + if err != nil { + return err + } + if missing := requiredDataPlaneCapabilities &^ capabilities; missing != 0 { + return fmt.Errorf( + "EasyTier data plane capabilities %#x are missing %#x", + capabilities, + missing, + ) + } + return nil +} + +func (core *Core) SubmitTCPConnect( + ctx context.Context, + peer netip.AddrPort, + timeoutMillis uint64, +) (OperationID, error) { + wire, err := encodeSocketAddress(peer) + if err != nil { + return 0, err + } + return core.submitWithInput( + ctx, + "easytier_data_plane_tcp_connect_submit", + wire[:], + timeoutMillis, + ) +} + +func (core *Core) SubmitTCPBind( + ctx context.Context, + port uint16, + timeoutMillis uint64, +) (OperationID, error) { + return core.submit( + ctx, + "easytier_data_plane_tcp_bind_submit", + uint64(port), + timeoutMillis, + ) +} + +func (core *Core) SubmitTCPAccept( + ctx context.Context, + listener ResourceID, + timeoutMillis uint64, +) (OperationID, error) { + return core.submit( + ctx, + "easytier_data_plane_tcp_accept_submit", + uint64(listener), + timeoutMillis, + ) +} + +func (core *Core) SubmitTCPRead( + ctx context.Context, + stream ResourceID, + maximum uint32, +) (OperationID, error) { + return core.submit( + ctx, + "easytier_data_plane_tcp_read_submit", + uint64(stream), + uint64(maximum), + ) +} + +func (core *Core) SubmitTCPWrite( + ctx context.Context, + stream ResourceID, + data []byte, +) (operation OperationID, err error) { + if len(data) > maxDataPlaneTransferBytes { + return 0, fmt.Errorf( + "TCP write length %d exceeds data plane limit %d", + len(data), + maxDataPlaneTransferBytes, + ) + } + pointer, err := core.writeInput(ctx, data) + if err != nil { + return 0, err + } + if pointer != 0 { + defer core.cleanupBuffer(ctx, pointer, &err) + } + return core.submit( + ctx, + "easytier_data_plane_tcp_write_submit", + uint64(stream), + uint64(pointer), + uint64(len(data)), + ) +} + +func (core *Core) SubmitUDPBind( + ctx context.Context, + port uint16, + timeoutMillis uint64, +) (OperationID, error) { + return core.submit( + ctx, + "easytier_data_plane_udp_bind_submit", + uint64(port), + timeoutMillis, + ) +} + +func (core *Core) SubmitUDPReceive( + ctx context.Context, + socket ResourceID, + maximum uint32, +) (OperationID, error) { + return core.submit( + ctx, + "easytier_data_plane_udp_receive_submit", + uint64(socket), + uint64(maximum), + ) +} + +func (core *Core) SubmitUDPSend( + ctx context.Context, + socket ResourceID, + peer netip.AddrPort, + data []byte, +) (operation OperationID, err error) { + if len(data) > maxDataPlaneTransferBytes { + return 0, fmt.Errorf( + "UDP send length %d exceeds data plane limit %d", + len(data), + maxDataPlaneTransferBytes, + ) + } + address, err := encodeSocketAddress(peer) + if err != nil { + return 0, err + } + addressPointer, err := core.ensureDataPlaneAddress(ctx) + if err != nil { + return 0, err + } + if !core.module.Memory().Write(addressPointer, address[:]) { + return 0, fmt.Errorf("write UDP peer address to guest memory") + } + var dataPointer uint32 + if len(data) != 0 { + dataPointer, err = core.ensureDataPlaneInput(ctx, uint32(len(data))) + if err != nil { + return 0, err + } + if !core.module.Memory().Write(dataPointer, data) { + return 0, fmt.Errorf("write UDP payload to guest memory") + } + } + return core.submit( + ctx, + "easytier_data_plane_udp_send_submit", + uint64(socket), + uint64(addressPointer), + uint64(dataPointer), + uint64(len(data)), + ) +} + +func (core *Core) SetResourceDeadline( + ctx context.Context, + resource ResourceID, + direction DeadlineDirection, + timeoutMillis uint64, +) error { + result, err := core.callOne( + ctx, + "easytier_data_plane_resource_deadline_set", + core.handle, + uint64(resource), + uint64(direction), + timeoutMillis, + ) + if err != nil { + return err + } + if status := int32(result); status != 0 { + return core.dataPlaneStatusError( + ctx, + "set data plane resource deadline", + status, + ) + } + return nil +} + +func (core *Core) submitWithInput( + ctx context.Context, + name string, + input []byte, + params ...uint64, +) (operation OperationID, err error) { + pointer, err := core.writeInput(ctx, input) + if err != nil { + return 0, err + } + defer core.cleanupBuffer(ctx, pointer, &err) + return core.submit(ctx, name, append([]uint64{uint64(pointer)}, params...)...) +} + +func (core *Core) submit( + ctx context.Context, + name string, + params ...uint64, +) (operation OperationID, err error) { + pointer, err := core.ensureDataPlaneOutput(ctx, operationIDLength) + if err != nil { + return 0, err + } + callParams := make([]uint64, 0, len(params)+2) + callParams = append(callParams, core.handle) + callParams = append(callParams, params...) + callParams = append(callParams, uint64(pointer)) + result, err := core.callOne(ctx, name, callParams...) + if err != nil { + return 0, err + } + if status := int32(result); status != 0 { + return 0, core.dataPlaneStatusError(ctx, name, status) + } + wire, ok := core.module.Memory().Read(pointer, operationIDLength) + if !ok { + return 0, fmt.Errorf("read operation ID from guest memory") + } + operation = OperationID(binary.BigEndian.Uint64(wire)) + if operation == 0 { + return 0, fmt.Errorf("%s returned zero operation ID", name) + } + return operation, nil +} + +func (core *Core) DrainCompletions( + ctx context.Context, + maximum uint32, +) (completions []Completion, err error) { + if maximum == 0 { + return nil, nil + } + if uint64(maximum)*completionLength > math.MaxUint32 { + return nil, fmt.Errorf("completion batch %d exceeds guest address space", maximum) + } + length := maximum * completionLength + pointer, err := core.ensureDataPlaneOutput(ctx, length) + if err != nil { + return nil, err + } + result, err := core.callCached( + ctx, + "easytier_data_plane_completion_drain", + &core.completionFunction, + core.handle, + uint64(pointer), + uint64(maximum), + ) + if err != nil { + return nil, err + } + count := int32(result) + if count < 0 { + return nil, core.dataPlaneStatusError( + ctx, + "drain data plane completions", + count, + ) + } + if uint32(count) > maximum { + return nil, fmt.Errorf( + "data plane drained %d completions into capacity %d", + count, + maximum, + ) + } + wire, ok := core.module.Memory().Read( + pointer, + uint32(count)*completionLength, + ) + if !ok { + return nil, fmt.Errorf("read data plane completions from guest memory") + } + return decodeCompletions(wire) +} + +func (core *Core) TakeResult( + ctx context.Context, + completion Completion, +) (OperationResult, error) { + result := OperationResult{Kind: completion.Kind} + var err error + switch completion.Kind { + case OperationTCPConnect, OperationTCPAccept: + result.Resource, result.Local, result.Peer, err = + core.takeStreamResult(ctx, completion) + case OperationTCPBind, OperationUDPBind: + result.Resource, result.Local, err = + core.takeBindResult(ctx, completion) + case OperationTCPRead: + result.Data, result.EOF, err = core.takeTCPReadResult(ctx, completion) + case OperationTCPWrite: + result.Length, err = core.takeLengthResult( + ctx, + completion, + "easytier_data_plane_tcp_write_result_take", + ) + case OperationUDPReceive: + result.Data, result.Peer, result.Truncated, err = + core.takeUDPReceiveResult(ctx, completion) + case OperationUDPSend: + result.Length, err = core.takeLengthResult( + ctx, + completion, + "easytier_data_plane_udp_send_result_take", + ) + default: + return OperationResult{}, fmt.Errorf( + "take unknown data plane operation kind %d", + completion.Kind, + ) + } + return result, err +} + +func (core *Core) takeStreamResult( + ctx context.Context, + completion Completion, +) (resource ResourceID, local, peer netip.AddrPort, err error) { + name := "easytier_data_plane_tcp_connect_result_take" + if completion.Kind == OperationTCPAccept { + name = "easytier_data_plane_tcp_accept_result_take" + } + wire, err := core.takeFixedResult(ctx, completion, name, streamResultLength) + if err != nil { + return 0, netip.AddrPort{}, netip.AddrPort{}, err + } + return decodeStreamResult(wire) +} + +func (core *Core) takeBindResult( + ctx context.Context, + completion Completion, +) (resource ResourceID, local netip.AddrPort, err error) { + name := "easytier_data_plane_tcp_bind_result_take" + if completion.Kind == OperationUDPBind { + name = "easytier_data_plane_udp_bind_result_take" + } + wire, err := core.takeFixedResult(ctx, completion, name, bindResultLength) + if err != nil { + return 0, netip.AddrPort{}, err + } + return decodeBindResult(wire) +} + +func (core *Core) takeFixedResult( + ctx context.Context, + completion Completion, + name string, + length uint32, +) (wire []byte, err error) { + pointer, err := core.ensureDataPlaneOutput(ctx, length) + if err != nil { + return nil, err + } + result, err := core.callOne( + ctx, + name, + core.handle, + uint64(completion.Operation), + uint64(pointer), + ) + if err != nil { + return nil, err + } + if status := int32(result); status != 0 { + return nil, core.dataPlaneStatusError(ctx, name, status) + } + bytes, ok := core.module.Memory().Read(pointer, length) + if !ok { + return nil, fmt.Errorf("read %s from guest memory", name) + } + return append([]byte(nil), bytes...), nil +} + +func (core *Core) takeTCPReadResult( + ctx context.Context, + completion Completion, +) (data []byte, eof bool, err error) { + data, metadata, err := core.takeVariableResult( + ctx, + completion, + "easytier_data_plane_tcp_read_result_take", + tcpReadMetadataLength, + ) + if err != nil { + return nil, false, err + } + if metadata[0] > 1 { + return nil, false, fmt.Errorf( + "data plane returned invalid TCP EOF flag %d", + metadata[0], + ) + } + return data, metadata[0] == 1, nil +} + +func (core *Core) takeUDPReceiveResult( + ctx context.Context, + completion Completion, +) (data []byte, peer netip.AddrPort, truncated bool, err error) { + data, metadata, err := core.takeVariableResult( + ctx, + completion, + "easytier_data_plane_udp_receive_result_take", + udpReceiveMetadataLength, + ) + if err != nil { + return nil, netip.AddrPort{}, false, err + } + peer, err = decodeSocketAddress(metadata[:socketAddressLength]) + if err != nil { + return nil, netip.AddrPort{}, false, err + } + if metadata[socketAddressLength] > 1 { + return nil, netip.AddrPort{}, false, fmt.Errorf( + "data plane returned invalid UDP truncation flag %d", + metadata[socketAddressLength], + ) + } + return data, peer, metadata[socketAddressLength] == 1, nil +} + +func (core *Core) takeVariableResult( + ctx context.Context, + completion Completion, + name string, + metadataLength uint32, +) (data, metadata []byte, err error) { + capacity := uint32(maxDataPlaneTransferBytes) + if completion.Kind == OperationUDPReceive { + capacity = math.MaxUint16 + } + dataPointer, err := core.ensureDataPlaneInput(ctx, capacity) + if err != nil { + return nil, nil, err + } + metadataPointer, err := core.ensureDataPlaneOutput(ctx, metadataLength) + if err != nil { + return nil, nil, err + } + result, err := core.callOne( + ctx, + name, + core.handle, + uint64(completion.Operation), + uint64(dataPointer), + uint64(capacity), + uint64(metadataPointer), + ) + if err != nil { + return nil, nil, err + } + length := int32(result) + if length < 0 { + return nil, nil, core.dataPlaneStatusError(ctx, name, length) + } + if uint32(length) > capacity { + return nil, nil, fmt.Errorf( + "%s returned length %d into capacity %d", + name, + length, + capacity, + ) + } + if length != 0 { + bytes, ok := core.module.Memory().Read(dataPointer, uint32(length)) + if !ok { + return nil, nil, fmt.Errorf("read %s payload from guest memory", name) + } + data = append([]byte(nil), bytes...) + } + bytes, ok := core.module.Memory().Read(metadataPointer, metadataLength) + if !ok { + return nil, nil, fmt.Errorf("read %s metadata from guest memory", name) + } + return data, append([]byte(nil), bytes...), nil +} + +func (core *Core) takeLengthResult( + ctx context.Context, + completion Completion, + name string, +) (int, error) { + result, err := core.callOne( + ctx, + name, + core.handle, + uint64(completion.Operation), + ) + if err != nil { + return 0, err + } + length := int32(result) + if length < 0 { + return 0, core.dataPlaneStatusError(ctx, name, length) + } + return int(length), nil +} + +func (core *Core) CancelOperation( + ctx context.Context, + operation OperationID, +) error { + return core.dataPlaneCallStatus( + ctx, + "easytier_data_plane_operation_cancel", + uint64(operation), + ) +} + +func (core *Core) FreeOperation( + ctx context.Context, + operation OperationID, +) error { + return core.dataPlaneCallStatus( + ctx, + "easytier_data_plane_operation_free", + uint64(operation), + ) +} + +func (core *Core) CloseResource(ctx context.Context, resource ResourceID) error { + return core.dataPlaneCallStatus( + ctx, + "easytier_data_plane_resource_close", + uint64(resource), + ) +} + +func (core *Core) dataPlaneCallStatus( + ctx context.Context, + name string, + params ...uint64, +) error { + callParams := append([]uint64{core.handle}, params...) + result, err := core.callOne(ctx, name, callParams...) + if err != nil { + return err + } + if status := int32(result); status != 0 { + return core.dataPlaneStatusError(ctx, name, status) + } + return nil +} + +func (core *Core) dataPlaneStatusError( + ctx context.Context, + operation string, + status int32, +) error { + if status >= 0 || status < -int32(ErrorBufferTooSmall) { + return core.statusError(ctx, operation, status) + } + message, err := core.errorMessage(ctx, core.handle) + if err != nil { + return errors.Join( + &DataPlaneError{Kind: ErrorKind(-status)}, + fmt.Errorf("%s: %w", operation, err), + ) + } + return &DataPlaneError{ + Kind: ErrorKind(-status), + Message: message, + } +} + +func (core *Core) writeInput( + ctx context.Context, + data []byte, +) (uint32, error) { + if len(data) == 0 { + return 0, nil + } + if uint64(len(data)) > math.MaxUint32 { + return 0, fmt.Errorf("guest input length %d exceeds wasm32", len(data)) + } + pointer, err := core.allocate(ctx, uint32(len(data))) + if err != nil { + return 0, err + } + if !core.module.Memory().Write(pointer, data) { + _ = core.free(contextutil.WithoutCancel(ctx), pointer) + return 0, fmt.Errorf("write data plane input to guest memory") + } + return pointer, nil +} diff --git a/easytier-go/internal/coreabi/dataplane_wire.go b/easytier-go/internal/coreabi/dataplane_wire.go new file mode 100644 index 00000000..147df0d4 --- /dev/null +++ b/easytier-go/internal/coreabi/dataplane_wire.go @@ -0,0 +1,129 @@ +package coreabi + +import ( + "encoding/binary" + "fmt" + "net/netip" +) + +const ( + socketAddressLength = 27 + operationIDLength = 8 + completionLength = 12 + streamResultLength = 8 + socketAddressLength*2 + bindResultLength = 8 + socketAddressLength + tcpReadMetadataLength = 1 + udpReceiveMetadataLength = socketAddressLength + 1 + maxDataPlaneTransferBytes = 1024 * 1024 +) + +func encodeSocketAddress(address netip.AddrPort) ([socketAddressLength]byte, error) { + var wire [socketAddressLength]byte + if !address.IsValid() || !address.Addr().Is4() { + return wire, fmt.Errorf("data plane ABI v2 requires an IPv4 address") + } + wire[0] = 4 + ip := address.Addr().As4() + copy(wire[1:5], ip[:]) + binary.BigEndian.PutUint16(wire[17:19], address.Port()) + return wire, nil +} + +func decodeSocketAddress(wire []byte) (netip.AddrPort, error) { + if len(wire) != socketAddressLength { + return netip.AddrPort{}, fmt.Errorf( + "decode socket address with length %d", len(wire), + ) + } + if wire[0] != 4 { + return netip.AddrPort{}, fmt.Errorf( + "data plane ABI v2 returned address family %d", wire[0], + ) + } + for _, value := range wire[5:17] { + if value != 0 { + return netip.AddrPort{}, fmt.Errorf( + "data plane ABI returned noncanonical IPv4 padding", + ) + } + } + for _, value := range wire[19:27] { + if value != 0 { + return netip.AddrPort{}, fmt.Errorf( + "data plane ABI returned IPv4 flow or scope metadata", + ) + } + } + address := netip.AddrFrom4([4]byte(wire[1:5])) + return netip.AddrPortFrom(address, binary.BigEndian.Uint16(wire[17:19])), nil +} + +func decodeCompletions(wire []byte) ([]Completion, error) { + if len(wire)%completionLength != 0 { + return nil, fmt.Errorf("decode completion bytes with length %d", len(wire)) + } + completions := make([]Completion, 0, len(wire)/completionLength) + for len(wire) != 0 { + operation := OperationID(binary.BigEndian.Uint64(wire[:8])) + kind := OperationKind(binary.BigEndian.Uint16(wire[8:10])) + status := ErrorKind(binary.BigEndian.Uint16(wire[10:12])) + if operation == 0 { + return nil, fmt.Errorf("data plane returned zero operation ID") + } + if !kind.valid() { + return nil, fmt.Errorf("data plane returned operation kind %d", kind) + } + if !status.validCompletionStatus() { + return nil, fmt.Errorf("data plane returned completion status %d", status) + } + completions = append(completions, Completion{ + Operation: operation, + Kind: kind, + Status: status, + }) + wire = wire[completionLength:] + } + return completions, nil +} + +func decodeStreamResult(wire []byte) (ResourceID, netip.AddrPort, netip.AddrPort, error) { + if len(wire) != streamResultLength { + return 0, netip.AddrPort{}, netip.AddrPort{}, fmt.Errorf( + "decode stream result with length %d", len(wire), + ) + } + resource := ResourceID(binary.BigEndian.Uint64(wire[:8])) + if resource == 0 { + return 0, netip.AddrPort{}, netip.AddrPort{}, fmt.Errorf( + "data plane returned zero stream resource ID", + ) + } + local, err := decodeSocketAddress(wire[8 : 8+socketAddressLength]) + if err != nil { + return 0, netip.AddrPort{}, netip.AddrPort{}, err + } + peer, err := decodeSocketAddress(wire[8+socketAddressLength:]) + if err != nil { + return 0, netip.AddrPort{}, netip.AddrPort{}, err + } + return resource, local, peer, nil +} + +func decodeBindResult(wire []byte) (ResourceID, netip.AddrPort, error) { + if len(wire) != bindResultLength { + return 0, netip.AddrPort{}, fmt.Errorf( + "decode bind result with length %d", len(wire), + ) + } + resource := ResourceID(binary.BigEndian.Uint64(wire[:8])) + if resource == 0 { + return 0, netip.AddrPort{}, fmt.Errorf( + "data plane returned zero bound resource ID", + ) + } + address, err := decodeSocketAddress(wire[8:]) + if err != nil { + return 0, netip.AddrPort{}, err + } + return resource, address, nil +} diff --git a/easytier-go/internal/coreabi/dataplane_wire_test.go b/easytier-go/internal/coreabi/dataplane_wire_test.go new file mode 100644 index 00000000..943a857c --- /dev/null +++ b/easytier-go/internal/coreabi/dataplane_wire_test.go @@ -0,0 +1,73 @@ +package coreabi + +import ( + "encoding/binary" + "net/netip" + "reflect" + "testing" +) + +func TestSocketAddressWireMatchesEasyTierABI(t *testing.T) { + address := netip.MustParseAddrPort("192.0.2.1:11013") + wire, err := encodeSocketAddress(address) + if err != nil { + t.Fatalf("encode address: %v", err) + } + want := [socketAddressLength]byte{ + 4, 192, 0, 2, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0x2b, 0x05, + 0, 0, 0, 0, + 0, 0, 0, 0, + } + if wire != want { + t.Fatalf("encoded address = %v, want %v", wire, want) + } + decoded, err := decodeSocketAddress(wire[:]) + if err != nil { + t.Fatalf("decode address: %v", err) + } + if decoded != address { + t.Fatalf("decoded address = %v, want %v", decoded, address) + } +} + +func TestSocketAddressWireRejectsIPv6AndNoncanonicalIPv4(t *testing.T) { + if _, err := encodeSocketAddress( + netip.MustParseAddrPort("[2001:db8::1]:80"), + ); err == nil { + t.Fatal("encode IPv6 address succeeded") + } + wire, err := encodeSocketAddress(netip.MustParseAddrPort("192.0.2.1:80")) + if err != nil { + t.Fatalf("encode IPv4 address: %v", err) + } + wire[5] = 1 + if _, err := decodeSocketAddress(wire[:]); err == nil { + t.Fatal("decode noncanonical IPv4 address succeeded") + } +} + +func TestCompletionWireMatchesEasyTierABI(t *testing.T) { + wire := make([]byte, completionLength*2) + binary.BigEndian.PutUint64(wire[:8], 0x0102_0304_0506_0708) + binary.BigEndian.PutUint16(wire[8:10], uint16(OperationUDPReceive)) + binary.BigEndian.PutUint16(wire[10:12], uint16(ErrorBufferTooSmall)) + binary.BigEndian.PutUint64(wire[12:20], 9) + binary.BigEndian.PutUint16(wire[20:22], uint16(OperationTCPWrite)) + completions, err := decodeCompletions(wire) + if err != nil { + t.Fatalf("decode completions: %v", err) + } + want := []Completion{ + { + Operation: 0x0102_0304_0506_0708, + Kind: OperationUDPReceive, + Status: ErrorBufferTooSmall, + }, + {Operation: 9, Kind: OperationTCPWrite, Status: ErrorNone}, + } + if !reflect.DeepEqual(completions, want) { + t.Fatalf("completions = %#v, want %#v", completions, want) + } +} diff --git a/easytier-go/internal/coreabi/rpc.go b/easytier-go/internal/coreabi/rpc.go new file mode 100644 index 00000000..8e3eab5c --- /dev/null +++ b/easytier-go/internal/coreabi/rpc.go @@ -0,0 +1,190 @@ +package coreabi + +import ( + "context" + "encoding/binary" + "fmt" +) + +const ( + RPCABIVersion = 2 + + rpcStatusPending int32 = -6 + maxRPCMessageBytes = 16 * 1024 * 1024 + rpcOperationIDBytes = 8 +) + +type RPCOperationID uint64 + +func (core *Core) validateRPCABI(ctx context.Context) error { + version, err := core.callOne(ctx, "easytier_rpc_abi_version") + if err != nil { + return err + } + if version != RPCABIVersion { + return fmt.Errorf( + "unsupported EasyTier RPC ABI version %d, want %d", + version, + RPCABIVersion, + ) + } + return nil +} + +func (core *Core) SubmitRPC( + ctx context.Context, + encodedRequest []byte, +) (operation RPCOperationID, err error) { + if len(encodedRequest) == 0 { + return 0, fmt.Errorf("submit empty RPC request") + } + if len(encodedRequest) > maxRPCMessageBytes { + return 0, fmt.Errorf( + "RPC request length %d exceeds limit %d", + len(encodedRequest), + maxRPCMessageBytes, + ) + } + requestPointer, err := core.allocate(ctx, uint32(len(encodedRequest))) + if err != nil { + return 0, err + } + defer core.cleanupBuffer(ctx, requestPointer, &err) + if !core.module.Memory().Write(requestPointer, encodedRequest) { + return 0, fmt.Errorf("write RPC request to guest memory") + } + operationPointer, err := core.allocate(ctx, rpcOperationIDBytes) + if err != nil { + return 0, err + } + defer core.cleanupBuffer(ctx, operationPointer, &err) + + result, err := core.callOne( + ctx, + "easytier_rpc_request_submit", + core.handle, + uint64(requestPointer), + uint64(len(encodedRequest)), + uint64(operationPointer), + ) + if err != nil { + return 0, err + } + if status := int32(result); status != 0 { + return 0, core.statusError(ctx, "submit EasyTier RPC request", status) + } + wire, ok := core.module.Memory().Read( + operationPointer, + rpcOperationIDBytes, + ) + if !ok { + return 0, fmt.Errorf("read RPC operation ID from guest memory") + } + operation = RPCOperationID(binary.BigEndian.Uint64(wire)) + if operation == 0 { + return 0, fmt.Errorf("EasyTier RPC submit returned zero operation ID") + } + return operation, nil +} + +func (core *Core) TakeRPCResponse( + ctx context.Context, + operation RPCOperationID, +) (response []byte, ready bool, err error) { + result, err := core.callOne( + ctx, + "easytier_rpc_response_take", + core.handle, + uint64(operation), + 0, + 0, + ) + if err != nil { + return nil, false, err + } + required := int32(result) + if required == rpcStatusPending { + return nil, false, nil + } + if required < 0 { + return nil, false, core.statusError( + ctx, + "probe EasyTier RPC response", + required, + ) + } + if required > maxRPCMessageBytes { + return nil, false, fmt.Errorf( + "RPC response length %d exceeds limit %d", + required, + maxRPCMessageBytes, + ) + } + + capacity := uint32(required) + if capacity == 0 { + // A non-zero output pointer distinguishes consumption from a size probe. + capacity = 1 + } + outputPointer, err := core.allocate(ctx, capacity) + if err != nil { + return nil, false, err + } + defer core.cleanupBuffer(ctx, outputPointer, &err) + result, err = core.callOne( + ctx, + "easytier_rpc_response_take", + core.handle, + uint64(operation), + uint64(outputPointer), + uint64(capacity), + ) + if err != nil { + return nil, false, err + } + length := int32(result) + if length == rpcStatusPending { + return nil, false, nil + } + if length < 0 { + return nil, false, core.statusError( + ctx, + "take EasyTier RPC response", + length, + ) + } + if uint32(length) > capacity { + return nil, false, fmt.Errorf( + "RPC response grew from %d to %d bytes", + required, + length, + ) + } + if length == 0 { + return []byte{}, true, nil + } + wire, ok := core.module.Memory().Read(outputPointer, uint32(length)) + if !ok { + return nil, false, fmt.Errorf("read RPC response from guest memory") + } + return append([]byte(nil), wire...), true, nil +} + +func (core *Core) FreeRPCOperation( + ctx context.Context, + operation RPCOperationID, +) error { + result, err := core.callOne( + ctx, + "easytier_rpc_operation_free", + core.handle, + uint64(operation), + ) + if err != nil { + return err + } + if status := int32(result); status != 0 { + return core.statusError(ctx, "free EasyTier RPC operation", status) + } + return nil +} diff --git a/easytier-go/internal/coreabi/rpc_test.go b/easytier-go/internal/coreabi/rpc_test.go new file mode 100644 index 00000000..11dad163 --- /dev/null +++ b/easytier-go/internal/coreabi/rpc_test.go @@ -0,0 +1,188 @@ +package coreabi + +import ( + "bytes" + "context" + "encoding/binary" + "testing" + + "github.com/metacubex/wazero/api" + "github.com/metacubex/wazero/experimental/wazerotest" +) + +func TestValidateRPCABI(t *testing.T) { + for _, test := range []struct { + name string + version uint32 + wantErr bool + }{ + {name: "supported", version: RPCABIVersion}, + {name: "unsupported", version: RPCABIVersion + 1, wantErr: true}, + } { + t.Run(test.name, func(t *testing.T) { + version := exportTestFunction( + "easytier_rpc_abi_version", + func(context.Context, api.Module) uint32 { + return test.version + }, + ) + core := &Core{ + module: wazerotest.NewModule(nil, version), + functions: make(map[string]guestFunction), + } + err := core.validateRPCABI(context.Background()) + if (err != nil) != test.wantErr { + t.Fatalf( + "validate RPC ABI version %d: err=%v, wantErr=%v", + test.version, + err, + test.wantErr, + ) + } + }) + } +} + +func TestRPCRequestResponseAndFree(t *testing.T) { + memory := wazerotest.NewMemory(64 * 1024) + nextPointer := uint32(1024) + var submitted []byte + var freed RPCOperationID + response := []byte{0x0a, 0x02, 0x08, 0x01} + + allocate := exportTestFunction( + "easytier_buffer_alloc", + func(_ context.Context, _ api.Module, length uint32) uint32 { + pointer := nextPointer + nextPointer += length + 8 + return pointer + }, + ) + free := exportTestFunction( + "easytier_buffer_free", + func(context.Context, api.Module, uint32) int32 { + return 0 + }, + ) + submit := exportTestFunction( + "easytier_rpc_request_submit", + func( + _ context.Context, + module api.Module, + _ uint64, + requestPointer uint32, + requestLength uint32, + operationPointer uint32, + ) int32 { + wire, _ := module.Memory().Read(requestPointer, requestLength) + submitted = append([]byte(nil), wire...) + var operation [rpcOperationIDBytes]byte + binary.BigEndian.PutUint64(operation[:], 41) + module.Memory().Write(operationPointer, operation[:]) + return 0 + }, + ) + take := exportTestFunction( + "easytier_rpc_response_take", + func( + _ context.Context, + module api.Module, + _ uint64, + _ uint64, + output uint32, + capacity uint32, + ) int32 { + if output == 0 && capacity == 0 { + return int32(len(response)) + } + module.Memory().Write(output, response) + return int32(len(response)) + }, + ) + freeOperation := exportTestFunction( + "easytier_rpc_operation_free", + func( + _ context.Context, + _ api.Module, + _ uint64, + operation uint64, + ) int32 { + freed = RPCOperationID(operation) + return 0 + }, + ) + core := &Core{ + module: wazerotest.NewModule( + memory, + allocate, + free, + submit, + take, + freeOperation, + ), + functions: make(map[string]guestFunction), + handle: 7, + } + + request := []byte{0x0a, 0x01, 0x00} + operation, err := core.SubmitRPC(context.Background(), request) + if err != nil { + t.Fatalf("submit RPC: %v", err) + } + if operation != 41 { + t.Fatalf("RPC operation = %d, want 41", operation) + } + if !bytes.Equal(submitted, request) { + t.Fatalf("submitted RPC = %x, want %x", submitted, request) + } + got, ready, err := core.TakeRPCResponse(context.Background(), operation) + if err != nil { + t.Fatalf("take RPC response: %v", err) + } + if !ready { + t.Fatal("RPC response remained pending") + } + if !bytes.Equal(got, response) { + t.Fatalf("RPC response = %x, want %x", got, response) + } + if err := core.FreeRPCOperation(context.Background(), 52); err != nil { + t.Fatalf("free RPC operation: %v", err) + } + if freed != 52 { + t.Fatalf("freed RPC operation = %d, want 52", freed) + } +} + +func TestTakeRPCResponseReportsPending(t *testing.T) { + take := exportTestFunction( + "easytier_rpc_response_take", + func( + context.Context, + api.Module, + uint64, + uint64, + uint32, + uint32, + ) int32 { + return rpcStatusPending + }, + ) + core := &Core{ + module: wazerotest.NewModule(nil, take), + functions: make(map[string]guestFunction), + handle: 7, + } + response, ready, err := core.TakeRPCResponse(context.Background(), 1) + if err != nil { + t.Fatalf("take pending RPC response: %v", err) + } + if ready || response != nil { + t.Fatalf("pending RPC response = (%x, %v), want (nil, false)", response, ready) + } +} + +func exportTestFunction(name string, implementation any) *wazerotest.Function { + function := wazerotest.NewFunction(implementation) + function.ExportNames = []string{name} + return function +} diff --git a/easytier-go/internal/coreabi/web_client.go b/easytier-go/internal/coreabi/web_client.go new file mode 100644 index 00000000..182f9d5a --- /dev/null +++ b/easytier-go/internal/coreabi/web_client.go @@ -0,0 +1,146 @@ +package coreabi + +import ( + "context" + "fmt" + + "github.com/metacubex/wazero/api" +) + +type WebClient struct { + core *Core + driveFunction guestFunction + deadlineFunction guestFunction + completionFunction guestFunction + created bool + dropped bool +} + +func NewWebClient(module api.Module) (*WebClient, error) { + core, err := New(module) + if err != nil { + return nil, err + } + return &WebClient{core: core}, nil +} + +func (client *WebClient) Create(ctx context.Context, envelope []byte) (err error) { + if client.created || client.dropped { + return fmt.Errorf("create used EasyTier WebClient") + } + pointer, err := client.core.allocate(ctx, uint32(len(envelope))) + if err != nil { + return err + } + defer client.core.cleanupBuffer(ctx, pointer, &err) + if !client.core.module.Memory().Write(pointer, envelope) { + return fmt.Errorf("write EasyTier WebClient config to guest memory") + } + result, err := client.core.callOne( + ctx, + "easytier_web_client_create", + uint64(pointer), + uint64(len(envelope)), + ) + if err != nil { + return err + } + if status := int32(result); status != 0 { + return client.statusError(ctx, "create EasyTier WebClient", status) + } + client.created = true + return nil +} + +func (client *WebClient) Drive(ctx context.Context) error { + result, err := client.core.callCached( + ctx, + "easytier_web_client_drive", + &client.driveFunction, + ) + if err != nil { + return err + } + if status := int32(result); status != 0 { + return client.statusError(ctx, "drive EasyTier WebClient", status) + } + return nil +} + +func (client *WebClient) NotifyCompletions(ctx context.Context) error { + result, err := client.core.callCached( + ctx, + "easytier_web_client_notify_completions", + &client.completionFunction, + ) + if err != nil { + return err + } + if status := int32(result); status != 0 { + return client.statusError(ctx, "notify EasyTier WebClient", status) + } + return nil +} + +func (client *WebClient) NextDeadline(ctx context.Context) (int64, error) { + result, err := client.core.callCached( + ctx, + "easytier_web_client_next_deadline_millis", + &client.deadlineFunction, + ) + if err != nil { + return 0, err + } + deadline := int64(result) + if deadline < 0 { + return 0, client.statusError( + ctx, + "query EasyTier WebClient deadline", + int32(deadline), + ) + } + return deadline, nil +} + +func (client *WebClient) IsConnected(ctx context.Context) (bool, error) { + result, err := client.core.callOne(ctx, "easytier_web_client_is_connected") + if err != nil { + return false, err + } + status := int32(result) + if status < 0 { + return false, client.statusError( + ctx, + "query EasyTier WebClient connection", + status, + ) + } + return status != 0, nil +} + +func (client *WebClient) Drop(ctx context.Context) error { + if !client.created || client.dropped { + return nil + } + result, err := client.core.callOne(ctx, "easytier_web_client_drop") + if err != nil { + return err + } + if status := int32(result); status != 0 { + return client.statusError(ctx, "drop EasyTier WebClient", status) + } + client.dropped = true + return nil +} + +func (client *WebClient) statusError( + ctx context.Context, + operation string, + status int32, +) error { + message, err := client.core.errorMessage(ctx, 0) + if err != nil { + return fmt.Errorf("%s: status=%d: %w", operation, status, err) + } + return fmt.Errorf("%s: status=%d: %s", operation, status, message) +} diff --git a/easytier-go/internal/engine/config.go b/easytier-go/internal/engine/config.go new file mode 100644 index 00000000..61e5a183 --- /dev/null +++ b/easytier-go/internal/engine/config.go @@ -0,0 +1,194 @@ +package engine + +import ( + "encoding/json" + "fmt" + "net/netip" + "net/url" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +const createConfigVersion = 14 +const webClientConfigVersion = 1 + +type createEnvelope struct { + Version uint32 `json:"version"` + Config string `json:"config"` + Environment environmentSnapshot `json:"environment"` +} + +type webClientEnvelope struct { + Version uint32 `json:"version"` + Endpoint string `json:"endpoint"` + MachineID string `json:"machine_id"` + Hostname string `json:"hostname"` + SecureMode bool `json:"secure_mode"` + OSType string `json:"os_type"` + Environment environmentSnapshot `json:"environment"` +} + +type environmentSnapshot struct { + PublicIPv4 *string `json:"public_ipv4"` + InterfaceIPv4s []string `json:"interface_ipv4s"` + PublicIPv6 *string `json:"public_ipv6"` + InterfaceIPv6s []string `json:"interface_ipv6s"` + MappedListeners []string `json:"mapped_listeners"` + LocalIPs []string `json:"local_ips"` + ProtectedTCPPorts []uint16 `json:"protected_tcp_ports"` + PreferredIPv6Sources []preferredIPv6Source `json:"preferred_ipv6_sources"` +} + +type preferredIPv6Source struct { + IP string `json:"ip"` + IfIndex uint32 `json:"ifindex"` +} + +func encodeCreateEnvelope( + configTOML string, + snapshot platform.EnvironmentSnapshot, +) ([]byte, error) { + if configTOML == "" { + return nil, fmt.Errorf("EasyTier TOML configuration is empty") + } + environment, err := encodeEnvironmentSnapshot(snapshot) + if err != nil { + return nil, err + } + encoded, err := json.Marshal(createEnvelope{ + Version: createConfigVersion, + Config: configTOML, + Environment: environment, + }) + if err != nil { + return nil, fmt.Errorf("encode EasyTier create envelope: %w", err) + } + return encoded, nil +} + +func encodeWebClientEnvelope( + options WebClientOptions, + snapshot platform.EnvironmentSnapshot, +) ([]byte, error) { + if options.Endpoint == "" { + return nil, fmt.Errorf("EasyTier WebClient endpoint is empty") + } + if options.MachineID == "" { + return nil, fmt.Errorf("EasyTier WebClient machine ID is empty") + } + if options.Hostname == "" { + return nil, fmt.Errorf("EasyTier WebClient hostname is empty") + } + environment, err := encodeEnvironmentSnapshot(snapshot) + if err != nil { + return nil, err + } + encoded, err := json.Marshal(webClientEnvelope{ + Version: webClientConfigVersion, + Endpoint: options.Endpoint, + MachineID: options.MachineID, + Hostname: options.Hostname, + SecureMode: options.SecureMode, + OSType: options.OSType, + Environment: environment, + }) + if err != nil { + return nil, fmt.Errorf("encode EasyTier WebClient envelope: %w", err) + } + return encoded, nil +} + +func encodeEnvironmentSnapshot( + snapshot platform.EnvironmentSnapshot, +) (environmentSnapshot, error) { + encoded := environmentSnapshot{ + InterfaceIPv4s: make([]string, len(snapshot.InterfaceIPv4s)), + InterfaceIPv6s: make([]string, len(snapshot.InterfaceIPv6s)), + MappedListeners: append([]string{}, snapshot.MappedListeners...), + LocalIPs: make([]string, len(snapshot.LocalIPs)), + ProtectedTCPPorts: append([]uint16{}, snapshot.ProtectedTCPPorts...), + PreferredIPv6Sources: make([]preferredIPv6Source, len(snapshot.PreferredIPv6Sources)), + } + var err error + encoded.PublicIPv4, err = encodeOptionalIP("public IPv4", snapshot.PublicIPv4, true) + if err != nil { + return environmentSnapshot{}, err + } + encoded.PublicIPv6, err = encodeOptionalIP("public IPv6", snapshot.PublicIPv6, false) + if err != nil { + return environmentSnapshot{}, err + } + for index, address := range snapshot.InterfaceIPv4s { + if !address.Is4() { + return environmentSnapshot{}, fmt.Errorf( + "interface IPv4 %d is not IPv4: %s", + index, + address, + ) + } + encoded.InterfaceIPv4s[index] = address.String() + } + for index, address := range snapshot.InterfaceIPv6s { + if !isIPv6(address) { + return environmentSnapshot{}, fmt.Errorf( + "interface IPv6 %d is not IPv6: %s", + index, + address, + ) + } + encoded.InterfaceIPv6s[index] = address.String() + } + for index, listener := range encoded.MappedListeners { + parsed, parseErr := url.ParseRequestURI(listener) + if parseErr != nil || parsed.Scheme == "" { + return environmentSnapshot{}, fmt.Errorf( + "mapped listener %d is not an absolute URL: %q", + index, + listener, + ) + } + } + for index, address := range snapshot.LocalIPs { + if !address.IsValid() { + return environmentSnapshot{}, fmt.Errorf("local IP %d is invalid", index) + } + encoded.LocalIPs[index] = address.String() + } + for index, source := range snapshot.PreferredIPv6Sources { + if !isIPv6(source.IP) { + return environmentSnapshot{}, fmt.Errorf( + "preferred IPv6 source %d is not IPv6: %s", + index, + source.IP, + ) + } + encoded.PreferredIPv6Sources[index] = preferredIPv6Source{ + IP: source.IP.String(), + IfIndex: source.IfIndex, + } + } + return encoded, nil +} + +func encodeOptionalIP( + name string, + address *netip.Addr, + ipv4 bool, +) (*string, error) { + if address == nil { + return nil, nil + } + valid := address.Is4() + if !ipv4 { + valid = isIPv6(*address) + } + if !valid { + return nil, fmt.Errorf("%s has wrong address family: %s", name, address) + } + encoded := address.String() + return &encoded, nil +} + +func isIPv6(address netip.Addr) bool { + return address.Is6() && !address.Is4In6() +} diff --git a/easytier-go/internal/engine/config_test.go b/easytier-go/internal/engine/config_test.go new file mode 100644 index 00000000..434f1f65 --- /dev/null +++ b/easytier-go/internal/engine/config_test.go @@ -0,0 +1,56 @@ +package engine + +import ( + "encoding/json" + "net/netip" + "testing" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +func TestEncodeCreateEnvelopeOwnsVersionAndEnvironmentSchema(t *testing.T) { + ipv4 := netip.MustParseAddr("198.51.100.4") + ipv6 := netip.MustParseAddr("2001:db8::4") + encoded, err := encodeCreateEnvelope("instance_name = \"test\"\n", platform.EnvironmentSnapshot{ + PublicIPv4: &ipv4, + InterfaceIPv6s: []netip.Addr{ipv6}, + MappedListeners: []string{"tcp://127.0.0.1:11010"}, + PreferredIPv6Sources: []platform.PreferredIPv6Source{{ + IP: ipv6, + IfIndex: 7, + }}, + }) + if err != nil { + t.Fatalf("encode create envelope: %v", err) + } + var document map[string]any + if err := json.Unmarshal(encoded, &document); err != nil { + t.Fatalf("decode create envelope: %v", err) + } + if document["version"] != float64(createConfigVersion) { + t.Fatalf("version = %v, want %d", document["version"], createConfigVersion) + } + environment := document["environment"].(map[string]any) + if environment["public_ipv4"] != ipv4.String() { + t.Fatalf("public_ipv4 = %v", environment["public_ipv4"]) + } + if environment["public_ipv6"] != nil { + t.Fatalf("public_ipv6 = %v, want nil", environment["public_ipv6"]) + } + if got := environment["preferred_ipv6_sources"].([]any)[0].(map[string]any)["ifindex"]; got != float64(7) { + t.Fatalf("preferred IPv6 ifindex = %v", got) + } + if environment["interface_ipv4s"] == nil || environment["local_ips"] == nil { + t.Fatal("empty environment collections encoded as null") + } +} + +func TestEncodeCreateEnvelopeRejectsWrongAddressFamily(t *testing.T) { + ipv6 := netip.MustParseAddr("2001:db8::1") + _, err := encodeCreateEnvelope("instance_name = \"test\"\n", platform.EnvironmentSnapshot{ + PublicIPv4: &ipv6, + }) + if err == nil { + t.Fatal("accepted IPv6 public address as public IPv4") + } +} diff --git a/easytier-go/internal/engine/conn.go b/easytier-go/internal/engine/conn.go new file mode 100644 index 00000000..ad1e56db --- /dev/null +++ b/easytier-go/internal/engine/conn.go @@ -0,0 +1,205 @@ +package engine + +import ( + "context" + "errors" + "io" + "net" + "net/netip" + "os" + "sync" + "sync/atomic" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" +) + +const maxDataPlaneTransfer = 1024 * 1024 + +type streamConn struct { + instance *Instance + resource coreabi.ResourceID + local netip.AddrPort + peer netip.AddrPort + + readMu sync.Mutex + writeMu sync.Mutex + + closed atomic.Bool + closeOnce sync.Once + closeDone chan struct{} + closeErr error +} + +func newStreamConn( + instance *Instance, + result coreabi.OperationResult, +) *streamConn { + return &streamConn{ + instance: instance, + resource: result.Resource, + local: result.Local, + peer: result.Peer, + closeDone: make(chan struct{}), + } +} + +func (conn *streamConn) Read(buffer []byte) (int, error) { + if len(buffer) == 0 { + return 0, nil + } + conn.readMu.Lock() + defer conn.readMu.Unlock() + if conn.closed.Load() { + return 0, net.ErrClosed + } + maximum := len(buffer) + if maximum > maxDataPlaneTransfer { + maximum = maxDataPlaneTransfer + } + result, err := conn.instance.performOperation( + context.Background(), + coreabi.OperationTCPRead, + func( + callCtx context.Context, + core dataPlaneCore, + ) (coreabi.OperationID, error) { + return core.SubmitTCPRead( + callCtx, + conn.resource, + uint32(maximum), + ) + }, + ) + if err != nil { + return 0, normalizeDeadlineError(err) + } + n := copy(buffer, result.Data) + if n == 0 && result.EOF { + return 0, io.EOF + } + return n, nil +} + +func (conn *streamConn) Write(buffer []byte) (int, error) { + if len(buffer) == 0 { + return 0, nil + } + conn.writeMu.Lock() + defer conn.writeMu.Unlock() + if conn.closed.Load() { + return 0, net.ErrClosed + } + written := 0 + for written < len(buffer) { + end := written + maxDataPlaneTransfer + if end > len(buffer) { + end = len(buffer) + } + chunk := buffer[written:end] + result, err := conn.instance.performOperation( + context.Background(), + coreabi.OperationTCPWrite, + func( + callCtx context.Context, + core dataPlaneCore, + ) (coreabi.OperationID, error) { + return core.SubmitTCPWrite( + callCtx, + conn.resource, + chunk, + ) + }, + ) + if err != nil { + return written, normalizeDeadlineError(err) + } + if result.Length <= 0 || result.Length > len(chunk) { + return written, io.ErrShortWrite + } + written += result.Length + } + return written, nil +} + +func (conn *streamConn) Close() error { + conn.closeOnce.Do(func() { + conn.closed.Store(true) + conn.closeErr = conn.instance.closeDataPlaneResource(conn.resource) + close(conn.closeDone) + }) + <-conn.closeDone + return conn.closeErr +} + +func (conn *streamConn) LocalAddr() net.Addr { + return net.TCPAddrFromAddrPort(conn.local) +} + +func (conn *streamConn) RemoteAddr() net.Addr { + return net.TCPAddrFromAddrPort(conn.peer) +} + +func (conn *streamConn) SetDeadline(deadline time.Time) error { + if conn.closed.Load() { + return net.ErrClosed + } + return conn.instance.setDataPlaneResourceDeadline( + conn.resource, + coreabi.DeadlineRead|coreabi.DeadlineWrite, + deadline, + ) +} + +func (conn *streamConn) SetReadDeadline(deadline time.Time) error { + if conn.closed.Load() { + return net.ErrClosed + } + return conn.instance.setDataPlaneResourceDeadline( + conn.resource, + coreabi.DeadlineRead, + deadline, + ) +} + +func (conn *streamConn) SetWriteDeadline(deadline time.Time) error { + if conn.closed.Load() { + return net.ErrClosed + } + return conn.instance.setDataPlaneResourceDeadline( + conn.resource, + coreabi.DeadlineWrite, + deadline, + ) +} + +func normalizeDeadlineError(err error) error { + if errors.Is(err, context.DeadlineExceeded) { + return os.ErrDeadlineExceeded + } + return err +} + +func (instance *Instance) Dial( + ctx context.Context, + peer netip.AddrPort, +) (net.Conn, error) { + timeout, err := contextTimeoutMillis(ctx) + if err != nil { + return nil, normalizeDeadlineError(err) + } + result, err := instance.performOperation( + ctx, + coreabi.OperationTCPConnect, + func( + callCtx context.Context, + core dataPlaneCore, + ) (coreabi.OperationID, error) { + return core.SubmitTCPConnect(callCtx, peer, timeout) + }, + ) + if err != nil { + return nil, normalizeDeadlineError(err) + } + return newStreamConn(instance, result), nil +} diff --git a/easytier-go/internal/engine/dataplane.go b/easytier-go/internal/engine/dataplane.go new file mode 100644 index 00000000..13e49697 --- /dev/null +++ b/easytier-go/internal/engine/dataplane.go @@ -0,0 +1,510 @@ +package engine + +import ( + "context" + "errors" + "fmt" + "math" + "net" + "net/netip" + "os" + "syscall" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" +) + +const dataPlaneCompletionBatch = 64 + +type dataPlaneCore interface { + SubmitTCPConnect( + context.Context, + netip.AddrPort, + uint64, + ) (coreabi.OperationID, error) + SubmitTCPBind( + context.Context, + uint16, + uint64, + ) (coreabi.OperationID, error) + SubmitTCPAccept( + context.Context, + coreabi.ResourceID, + uint64, + ) (coreabi.OperationID, error) + SubmitTCPRead( + context.Context, + coreabi.ResourceID, + uint32, + ) (coreabi.OperationID, error) + SubmitTCPWrite( + context.Context, + coreabi.ResourceID, + []byte, + ) (coreabi.OperationID, error) + SubmitUDPBind( + context.Context, + uint16, + uint64, + ) (coreabi.OperationID, error) + SubmitUDPReceive( + context.Context, + coreabi.ResourceID, + uint32, + ) (coreabi.OperationID, error) + SubmitUDPSend( + context.Context, + coreabi.ResourceID, + netip.AddrPort, + []byte, + ) (coreabi.OperationID, error) + SetResourceDeadline( + context.Context, + coreabi.ResourceID, + coreabi.DeadlineDirection, + uint64, + ) error + DrainCompletions(context.Context, uint32) ([]coreabi.Completion, error) + TakeResult( + context.Context, + coreabi.Completion, + ) (coreabi.OperationResult, error) + CancelOperation(context.Context, coreabi.OperationID) error + CloseResource(context.Context, coreabi.ResourceID) error +} + +type dataPlaneCommandKind uint8 + +const ( + dataPlaneSubmit dataPlaneCommandKind = iota + 1 + dataPlaneCancel + dataPlaneCloseResource + dataPlaneSetDeadline +) + +type dataPlaneCommand struct { + kind dataPlaneCommandKind + operation coreabi.OperationID + resource coreabi.ResourceID + direction coreabi.DeadlineDirection + deadline time.Time + submit func(context.Context, dataPlaneCore) (coreabi.OperationID, error) + opKind coreabi.OperationKind + response chan dataPlaneCommandResponse +} + +type dataPlaneCommandResponse struct { + ticket operationTicket + outcome operationOutcome + completed bool + err error +} + +type operationTicket struct { + id coreabi.OperationID + result <-chan operationOutcome +} + +type operationOutcome struct { + result coreabi.OperationResult + err error +} + +type pendingOperation struct { + kind coreabi.OperationKind + result chan operationOutcome +} + +func (instance *Instance) performOperation( + ctx context.Context, + kind coreabi.OperationKind, + submit func(context.Context, dataPlaneCore) (coreabi.OperationID, error), +) (coreabi.OperationResult, error) { + if ctx == nil { + return coreabi.OperationResult{}, fmt.Errorf( + "submit EasyTier data plane operation with nil context", + ) + } + response := make(chan dataPlaneCommandResponse, 1) + request := dataPlaneCommand{ + kind: dataPlaneSubmit, + submit: submit, + opKind: kind, + response: response, + } + select { + case instance.dataPlaneCommands <- request: + case <-instance.done: + return coreabi.OperationResult{}, net.ErrClosed + case <-instance.closeRequested: + return coreabi.OperationResult{}, net.ErrClosed + case <-ctx.Done(): + return coreabi.OperationResult{}, ctx.Err() + } + + var ticket operationTicket + select { + case submitted := <-response: + if submitted.err != nil { + return coreabi.OperationResult{}, mapDataPlaneError(submitted.err) + } + if submitted.completed { + return submitted.outcome.result, mapDataPlaneError(submitted.outcome.err) + } + ticket = submitted.ticket + case <-instance.done: + return coreabi.OperationResult{}, net.ErrClosed + case <-instance.closeRequested: + return coreabi.OperationResult{}, net.ErrClosed + case <-ctx.Done(): + // The driver may already have submitted the operation. Wait for its + // response so that cancellation always targets the actual operation. + select { + case submitted := <-response: + if submitted.err != nil { + return coreabi.OperationResult{}, mapDataPlaneError(submitted.err) + } + if submitted.completed { + return submitted.outcome.result, mapDataPlaneError( + submitted.outcome.err, + ) + } + ticket = submitted.ticket + case <-instance.done: + return coreabi.OperationResult{}, net.ErrClosed + case <-instance.closeRequested: + return coreabi.OperationResult{}, net.ErrClosed + } + return instance.cancelAndWait(ctx, ticket) + } + + select { + case outcome := <-ticket.result: + return outcome.result, mapDataPlaneError(outcome.err) + case <-ctx.Done(): + return instance.cancelAndWait(ctx, ticket) + case <-instance.done: + return coreabi.OperationResult{}, net.ErrClosed + case <-instance.closeRequested: + return coreabi.OperationResult{}, net.ErrClosed + } +} + +func (instance *Instance) cancelAndWait( + cancelled context.Context, + ticket operationTicket, +) (coreabi.OperationResult, error) { + response := make(chan dataPlaneCommandResponse, 1) + request := dataPlaneCommand{ + kind: dataPlaneCancel, + operation: ticket.id, + response: response, + } + select { + case instance.dataPlaneCommands <- request: + case outcome := <-ticket.result: + return outcome.result, mapDataPlaneError(outcome.err) + case <-instance.done: + return coreabi.OperationResult{}, net.ErrClosed + case <-instance.closeRequested: + return coreabi.OperationResult{}, net.ErrClosed + } + select { + case result := <-response: + if result.err != nil { + return coreabi.OperationResult{}, mapDataPlaneError(result.err) + } + case outcome := <-ticket.result: + return cancelledOutcome(cancelled, outcome) + case <-instance.done: + return coreabi.OperationResult{}, net.ErrClosed + case <-instance.closeRequested: + return coreabi.OperationResult{}, net.ErrClosed + } + + select { + case outcome := <-ticket.result: + return cancelledOutcome(cancelled, outcome) + case <-instance.done: + return coreabi.OperationResult{}, net.ErrClosed + case <-instance.closeRequested: + return coreabi.OperationResult{}, net.ErrClosed + } +} + +func cancelledOutcome( + cancelled context.Context, + outcome operationOutcome, +) (coreabi.OperationResult, error) { + var dataPlaneErr *coreabi.DataPlaneError + if errors.As(outcome.err, &dataPlaneErr) && + dataPlaneErr.Kind == coreabi.ErrorCancelled { + return coreabi.OperationResult{}, cancelled.Err() + } + return outcome.result, mapDataPlaneError(outcome.err) +} + +func (instance *Instance) closeDataPlaneResource( + resource coreabi.ResourceID, +) error { + response := make(chan dataPlaneCommandResponse, 1) + request := dataPlaneCommand{ + kind: dataPlaneCloseResource, + resource: resource, + response: response, + } + select { + case instance.dataPlaneCommands <- request: + case <-instance.done: + return net.ErrClosed + case <-instance.closeRequested: + return net.ErrClosed + } + select { + case result := <-response: + return mapDataPlaneError(result.err) + case <-instance.done: + return net.ErrClosed + case <-instance.closeRequested: + return net.ErrClosed + } +} + +func (instance *Instance) setDataPlaneResourceDeadline( + resource coreabi.ResourceID, + direction coreabi.DeadlineDirection, + deadline time.Time, +) error { + response := make(chan dataPlaneCommandResponse, 1) + request := dataPlaneCommand{ + kind: dataPlaneSetDeadline, + resource: resource, + direction: direction, + deadline: deadline, + response: response, + } + select { + case instance.dataPlaneCommands <- request: + case <-instance.done: + return net.ErrClosed + case <-instance.closeRequested: + return net.ErrClosed + } + select { + case result := <-response: + return mapDataPlaneError(result.err) + case <-instance.done: + return net.ErrClosed + case <-instance.closeRequested: + return net.ErrClosed + } +} + +func (instance *Instance) handleDataPlaneCommand( + request dataPlaneCommand, +) dataPlaneCommandResponse { + instance.host.guestMu.Lock() + defer instance.host.guestMu.Unlock() + switch request.kind { + case dataPlaneSubmit: + operation, err := request.submit(instance.ctx, instance.dataPlane) + if err != nil { + return dataPlaneCommandResponse{err: err} + } + result := make(chan operationOutcome, 1) + instance.pendingOperations[operation] = &pendingOperation{ + kind: request.opKind, + result: result, + } + return dataPlaneCommandResponse{ticket: operationTicket{ + id: operation, + result: result, + }} + case dataPlaneCancel: + if _, exists := instance.pendingOperations[request.operation]; !exists { + return dataPlaneCommandResponse{} + } + return dataPlaneCommandResponse{ + err: instance.dataPlane.CancelOperation( + instance.ctx, + request.operation, + ), + } + case dataPlaneCloseResource: + return dataPlaneCommandResponse{ + err: instance.dataPlane.CloseResource( + instance.ctx, + request.resource, + ), + } + case dataPlaneSetDeadline: + return dataPlaneCommandResponse{ + err: instance.dataPlane.SetResourceDeadline( + instance.ctx, + request.resource, + request.direction, + resourceDeadlineTimeoutMillis(request.deadline), + ), + } + default: + return dataPlaneCommandResponse{ + err: fmt.Errorf("unknown data plane command %d", request.kind), + } + } +} + +func (instance *Instance) drainDataPlaneCompletions() (bool, error) { + if instance.dataPlane == nil || len(instance.pendingOperations) == 0 { + return false, nil + } + completions, err := instance.dataPlane.DrainCompletions( + instance.ctx, + dataPlaneCompletionBatch, + ) + if err != nil { + return false, err + } + for _, completion := range completions { + pending := instance.pendingOperations[completion.Operation] + if pending == nil { + return false, fmt.Errorf( + "EasyTier completed unknown data plane operation %d", + completion.Operation, + ) + } + if pending.kind != completion.Kind { + return false, fmt.Errorf( + "EasyTier completed operation %d as kind %d, want %d", + completion.Operation, + completion.Kind, + pending.kind, + ) + } + result, resultErr := instance.dataPlane.TakeResult( + instance.ctx, + completion, + ) + if err := validateCompletionResult(completion, resultErr); err != nil { + return false, err + } + delete(instance.pendingOperations, completion.Operation) + pending.result <- operationOutcome{result: result, err: resultErr} + } + return len(completions) == dataPlaneCompletionBatch, nil +} + +func validateCompletionResult( + completion coreabi.Completion, + resultErr error, +) error { + var dataPlaneErr *coreabi.DataPlaneError + if completion.Status == coreabi.ErrorNone { + if resultErr != nil { + return fmt.Errorf( + "take successful data plane operation %d: %w", + completion.Operation, + resultErr, + ) + } + return nil + } + if !errors.As(resultErr, &dataPlaneErr) { + return fmt.Errorf( + "take failed data plane operation %d with status %d: %w", + completion.Operation, + completion.Status, + resultErr, + ) + } + if dataPlaneErr.Kind != completion.Status { + return fmt.Errorf( + "data plane operation %d status %d disagrees with result %d", + completion.Operation, + completion.Status, + dataPlaneErr.Kind, + ) + } + return nil +} + +func (instance *Instance) failPendingOperations(err error) { + for operation, pending := range instance.pendingOperations { + pending.result <- operationOutcome{err: err} + delete(instance.pendingOperations, operation) + } +} + +func timeoutFromDeadline(deadline time.Time) (uint64, error) { + if deadline.IsZero() { + return math.MaxUint64, nil + } + remaining := time.Until(deadline) + if remaining <= 0 { + return 0, os.ErrDeadlineExceeded + } + millis := remaining / time.Millisecond + if remaining%time.Millisecond != 0 { + millis++ + } + return uint64(millis), nil +} + +func resourceDeadlineTimeoutMillis(deadline time.Time) uint64 { + if deadline.IsZero() { + return math.MaxUint64 + } + remaining := time.Until(deadline) + if remaining <= 0 { + return 0 + } + millis := remaining / time.Millisecond + if remaining%time.Millisecond != 0 { + millis++ + } + return uint64(millis) +} + +func contextTimeoutMillis(ctx context.Context) (uint64, error) { + if err := ctx.Err(); err != nil { + return 0, err + } + deadline, exists := ctx.Deadline() + if !exists { + return math.MaxUint64, nil + } + return timeoutFromDeadline(deadline) +} + +func mapDataPlaneError(err error) error { + if err == nil { + return nil + } + var dataPlaneErr *coreabi.DataPlaneError + if !errors.As(err, &dataPlaneErr) { + return err + } + switch dataPlaneErr.Kind { + case coreabi.ErrorCancelled: + return context.Canceled + case coreabi.ErrorDeadlineExceeded: + return os.ErrDeadlineExceeded + case coreabi.ErrorInstanceStopped, coreabi.ErrorHandleClosed: + return net.ErrClosed + case coreabi.ErrorNoOverlayRoute, coreabi.ErrorPathNotReady: + return syscall.ENETUNREACH + case coreabi.ErrorAddressFamilyUnsupported: + return syscall.EAFNOSUPPORT + case coreabi.ErrorAddressInUse: + return syscall.EADDRINUSE + case coreabi.ErrorConnectionRefused: + return syscall.ECONNREFUSED + case coreabi.ErrorNetworkChanged: + return syscall.ENETRESET + case coreabi.ErrorResourceLimit: + return syscall.ENOBUFS + case coreabi.ErrorBufferTooSmall: + return syscall.EMSGSIZE + default: + return err + } +} diff --git a/easytier-go/internal/engine/driver_test.go b/easytier-go/internal/engine/driver_test.go new file mode 100644 index 00000000..cffcd883 --- /dev/null +++ b/easytier-go/internal/engine/driver_test.go @@ -0,0 +1,164 @@ +package engine + +import ( + "context" + "errors" + "math" + "reflect" + "testing" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" +) + +type recordingCore struct { + calls []string +} + +func (*recordingCore) Start(context.Context) error { return nil } +func (*recordingCore) Stop(context.Context) error { return nil } +func (core *recordingCore) Drive(context.Context) (coreabi.State, error) { + core.calls = append(core.calls, "drive") + return coreabi.StateRunning, nil +} +func (core *recordingCore) NotifyCompletions(context.Context) error { + core.calls = append(core.calls, "notify") + return nil +} +func (core *recordingCore) NextDeadline(context.Context) (int64, error) { + core.calls = append(core.calls, "deadline") + return math.MaxInt64, nil +} +func (core *recordingCore) SendPacket(context.Context, []byte) error { + core.calls = append(core.calls, "send") + return nil +} +func (*recordingCore) Drop(context.Context) error { return nil } + +func TestCompletionNotifiesGuestBeforeDriving(t *testing.T) { + core := &recordingCore{} + instance := &Instance{ + host: &Host{}, + ctx: context.Background(), + core: core, + running: make(chan struct{}), + stopped: make(chan struct{}), + } + if _, err := instance.drive(true); err != nil { + t.Fatalf("drive completion: %v", err) + } + want := []string{"notify", "drive", "deadline"} + if !reflect.DeepEqual(core.calls, want) { + t.Fatalf("completion call order = %v, want %v", core.calls, want) + } +} + +func TestPacketIngressBatchDrivesOnce(t *testing.T) { + core := &recordingCore{} + instance := &Instance{ + host: &Host{}, + ctx: context.Background(), + core: core, + commands: make(chan command, maximumPacketIngressBatch), + running: make(chan struct{}), + stopped: make(chan struct{}), + } + requests := make([]command, 3) + for index := range requests { + requests[index] = command{ + kind: commandSendPacket, + packet: []byte{byte(index)}, + response: make(chan error, 1), + } + if index != 0 { + instance.commands <- requests[index] + } + } + + if _, err := instance.handlePacketBatch(requests[0], math.MaxInt64); err != nil { + t.Fatalf("handle packet batch: %v", err) + } + for index := range requests { + if err := <-requests[index].response; err != nil { + t.Fatalf("packet %d response: %v", index, err) + } + } + want := []string{"send", "send", "send", "drive", "deadline"} + if !reflect.DeepEqual(core.calls, want) { + t.Fatalf("packet batch call order = %v, want %v", core.calls, want) + } +} + +func TestSendPacketBorrowsBufferUntilGuestConsumesIt(t *testing.T) { + instance := &Instance{ + commands: make(chan command, 1), + closeRequested: make(chan struct{}), + done: make(chan struct{}), + } + ctx, cancel := context.WithCancel(context.Background()) + packet := []byte{1, 2, 3} + result := make(chan error, 1) + go func() { + result <- instance.SendPacket(ctx, packet) + }() + + var request command + select { + case request = <-instance.commands: + case <-time.After(time.Second): + t.Fatal("SendPacket did not enqueue") + } + if &request.packet[0] != &packet[0] { + t.Fatal("SendPacket copied the packet before enqueue") + } + + cancel() + select { + case err := <-result: + t.Fatalf("SendPacket returned before guest consumption: %v", err) + case <-time.After(20 * time.Millisecond): + } + + request.response <- nil + select { + case err := <-result: + if err != nil { + t.Fatalf("SendPacket after guest consumption: %v", err) + } + case <-time.After(time.Second): + t.Fatal("SendPacket did not return after guest consumption") + } +} + +func TestSendPacketBackpressureRemainsCancelableBeforeEnqueue(t *testing.T) { + instance := &Instance{ + commands: make(chan command, 1), + closeRequested: make(chan struct{}), + done: make(chan struct{}), + } + instance.commands <- command{kind: commandStart} + + ctx, cancel := context.WithCancel(context.Background()) + result := make(chan error, 1) + go func() { + result <- instance.SendPacket(ctx, []byte{1}) + }() + + select { + case err := <-result: + t.Fatalf("SendPacket bypassed full command queue: %v", err) + case <-time.After(20 * time.Millisecond): + } + cancel() + select { + case err := <-result: + if !errors.Is(err, context.Canceled) { + t.Fatalf("SendPacket on full queue returned %v, want context cancellation", err) + } + case <-time.After(time.Second): + t.Fatal("SendPacket on full queue ignored context cancellation") + } + if got := len(instance.commands); got != 1 { + t.Fatalf("queued commands = %d, want the original command only", got) + } +} diff --git a/easytier-go/internal/engine/host.go b/easytier-go/internal/engine/host.go new file mode 100644 index 00000000..a67dc79e --- /dev/null +++ b/easytier-go/internal/engine/host.go @@ -0,0 +1,311 @@ +package engine + +import ( + "context" + "crypto/rand" + "errors" + "fmt" + "sync" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/artifact" + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" + "github.com/EasyTier/EasyTier/easytier-go/internal/hostabi" + "github.com/EasyTier/EasyTier/easytier-go/internal/reactor" + "github.com/EasyTier/EasyTier/easytier-go/platform" + "github.com/metacubex/wazero" + "github.com/metacubex/wazero/api" + "github.com/metacubex/wazero/imports/wasi_snapshot_preview1" +) + +const defaultPacketQueueCapacity = 64 +const maximumPacketIngressBatch = 32 + +type Options struct { + Services platform.Services + PacketQueueCapacity int + Management reactor.ManagementHandler +} + +type Host struct { + ctx context.Context + cancel context.CancelFunc + + runtime wazero.Runtime + module api.Module + reactor *reactor.Reactor + options Options + + guestMu sync.Mutex + + mu sync.Mutex + closed bool + instances map[*Instance]struct{} + webClient *WebClient + closeOnce sync.Once + closeDone chan struct{} + closeErr error +} + +func NewHost(ctx context.Context, options Options) (_ *Host, err error) { + if ctx == nil { + return nil, fmt.Errorf("create EasyTier engine host with nil context") + } + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + if options.PacketQueueCapacity == 0 { + options.PacketQueueCapacity = defaultPacketQueueCapacity + } + if options.PacketQueueCapacity < 0 { + return nil, fmt.Errorf("packet queue capacity must be positive") + } + + lifetime, cancel := context.WithCancel(contextutil.WithoutCancel(ctx)) + runtime := wazero.NewRuntime(lifetime) + var module api.Module + var hostReactor *reactor.Reactor + defer func() { + if err == nil { + return + } + cancel() + if module != nil { + _ = module.Close(contextutil.WithoutCancel(ctx)) + } + if hostReactor != nil { + hostReactor.Close() + } + _ = runtime.Close(contextutil.WithoutCancel(ctx)) + }() + + if _, err = wasi_snapshot_preview1.Instantiate(ctx, runtime); err != nil { + return nil, fmt.Errorf("instantiate WASI preview1: %w", err) + } + hostReactor = reactor.New(lifetime, reactor.Options{ + Services: options.Services, + Management: options.Management, + }) + adapter, err := hostabi.New(hostReactor) + if err != nil { + return nil, err + } + if err = adapter.Instantiate(ctx, runtime); err != nil { + return nil, fmt.Errorf("instantiate EasyTier host ABI: %w", err) + } + compiled, err := runtime.CompileModule(ctx, artifact.Core()) + if err != nil { + return nil, fmt.Errorf("compile embedded EasyTier core: %w", err) + } + defer compiled.Close(contextutil.WithoutCancel(ctx)) + module, err = runtime.InstantiateModule(ctx, compiled, newModuleConfig()) + if err != nil { + return nil, fmt.Errorf("instantiate embedded EasyTier core: %w", err) + } + + host := &Host{ + ctx: lifetime, + cancel: cancel, + runtime: runtime, + module: module, + reactor: hostReactor, + options: options, + instances: make(map[*Instance]struct{}), + closeDone: make(chan struct{}), + } + go host.broadcastCompletions() + return host, nil +} + +func newModuleConfig() wazero.ModuleConfig { + return wazero.NewModuleConfig(). + WithRandSource(rand.Reader). + WithSysWalltime(). + WithSysNanotime(). + WithSysNanosleep() +} + +func (host *Host) CreateInstance( + ctx context.Context, + configTOML string, +) (*Instance, error) { + if host == nil { + return nil, fmt.Errorf("create instance with nil EasyTier engine host") + } + if ctx == nil { + return nil, fmt.Errorf("create EasyTier instance with nil context") + } + envelope, err := encodeCreateEnvelope(configTOML, host.options.Services.Snapshot) + if err != nil { + return nil, err + } + + host.mu.Lock() + defer host.mu.Unlock() + if host.closed { + return nil, fmt.Errorf("create instance with closed EasyTier engine host") + } + packetSink, err := host.reactor.RegisterPacketSink(host.options.PacketQueueCapacity) + if err != nil { + return nil, fmt.Errorf("register EasyTier packet sink: %w", err) + } + events := make(chan Event, instanceEventQueueCapacity) + journal := newEventJournal() + eventSink, err := host.reactor.RegisterEventSink(func(kind, message string) bool { + journal.add(kind, message) + select { + case events <- Event{Kind: kind, Message: message}: + return true + default: + return false + } + }) + if err != nil { + host.reactor.UnregisterPacketSink(packetSink) + close(events) + return nil, fmt.Errorf("register EasyTier event sink: %w", err) + } + host.guestMu.Lock() + core, err := coreabi.New(host.module) + if err == nil { + err = core.Create(ctx, envelope, packetSink, eventSink) + } + host.guestMu.Unlock() + if err != nil { + host.reactor.UnregisterPacketSink(packetSink) + host.reactor.UnregisterEventSink(eventSink) + close(events) + return nil, err + } + + lifetime, cancel := context.WithCancel(host.ctx) + instance := &Instance{ + host: host, + ctx: lifetime, + cancel: cancel, + core: core, + dataPlane: core, + rpc: core, + reactor: host.reactor, + packetSink: packetSink, + eventSink: eventSink, + events: events, + journal: journal, + commands: make(chan command, maximumPacketIngressBatch), + dataPlaneCommands: make(chan dataPlaneCommand), + rpcCommands: make(chan rpcCommand), + pendingOperations: make( + map[coreabi.OperationID]*pendingOperation, + ), + pendingRPCs: make( + map[coreabi.RPCOperationID]*pendingRPC, + ), + completions: make(chan struct{}, 1), + closeRequested: make(chan struct{}), + done: make(chan struct{}), + running: make(chan struct{}), + stopped: make(chan struct{}), + } + instance.state.Store(int32(coreabi.StateCreated)) + host.instances[instance] = struct{}{} + go instance.run() + return instance, nil +} + +func (host *Host) Close(ctx context.Context) error { + if host == nil { + return nil + } + if ctx == nil { + return fmt.Errorf("close EasyTier engine host with nil context") + } + host.closeOnce.Do(func() { + host.mu.Lock() + host.closed = true + webClient := host.webClient + instances := make([]*Instance, 0, len(host.instances)) + for instance := range host.instances { + instances = append(instances, instance) + } + host.mu.Unlock() + go host.shutdown(webClient, instances) + }) + select { + case <-host.closeDone: + host.mu.Lock() + err := host.closeErr + host.mu.Unlock() + return err + case <-ctx.Done(): + return ctx.Err() + } +} + +func (host *Host) shutdown(webClient *WebClient, instances []*Instance) { + var closeErrors []error + if webClient != nil { + if err := webClient.Close(host.ctx); err != nil { + closeErrors = append(closeErrors, err) + } + } + for _, instance := range instances { + if err := instance.Close(host.ctx); err != nil { + closeErrors = append(closeErrors, err) + } + } + + host.cancel() + host.reactor.Close() + cleanupContext, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + moduleErr := host.module.Close(cleanupContext) + runtimeErr := host.runtime.Close(cleanupContext) + + host.mu.Lock() + host.closeErr = errors.Join( + append(closeErrors, moduleErr, runtimeErr)..., + ) + host.mu.Unlock() + close(host.closeDone) +} + +func (host *Host) broadcastCompletions() { + for { + select { + case <-host.reactor.Completions(): + host.mu.Lock() + if host.webClient != nil { + select { + case host.webClient.completions <- struct{}{}: + default: + } + } + for instance := range host.instances { + select { + case instance.completions <- struct{}{}: + default: + } + } + host.mu.Unlock() + case <-host.ctx.Done(): + return + } + } +} + +func (host *Host) removeWebClient(client *WebClient) { + host.mu.Lock() + if host.webClient == client { + host.webClient = nil + } + host.mu.Unlock() +} + +func (host *Host) removeInstance(instance *Instance) { + host.mu.Lock() + delete(host.instances, instance) + host.mu.Unlock() +} diff --git a/easytier-go/internal/engine/instance.go b/easytier-go/internal/engine/instance.go new file mode 100644 index 00000000..80e561df --- /dev/null +++ b/easytier-go/internal/engine/instance.go @@ -0,0 +1,526 @@ +package engine + +import ( + "context" + "errors" + "fmt" + "math" + "net" + "sync" + "sync/atomic" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" + "github.com/EasyTier/EasyTier/easytier-go/internal/reactor" +) + +type commandKind uint8 + +const ( + commandStart commandKind = iota + 1 + commandStop + commandSendPacket +) + +type command struct { + kind commandKind + packet []byte + response chan error +} + +type guestCore interface { + Start(context.Context) error + Stop(context.Context) error + Drive(context.Context) (coreabi.State, error) + NotifyCompletions(context.Context) error + NextDeadline(context.Context) (int64, error) + SendPacket(context.Context, []byte) error + Drop(context.Context) error +} + +type Event struct { + // Kind is a stable snake-case CoreEvent variant name. + Kind string + // Message is a human-readable description intended for logging. + Message string +} + +const instanceEventQueueCapacity = 256 + +type eventJournal struct { + mu sync.Mutex + events []string +} + +func newEventJournal() *eventJournal { + return &eventJournal{events: make([]string, 0, instanceEventQueueCapacity)} +} + +func (journal *eventJournal) add(kind, message string) { + if message == "" { + message = kind + } + journal.mu.Lock() + if len(journal.events) == cap(journal.events) { + copy(journal.events, journal.events[1:]) + journal.events = journal.events[:len(journal.events)-1] + } + journal.events = append(journal.events, message) + journal.mu.Unlock() +} + +func (journal *eventJournal) snapshot() []string { + journal.mu.Lock() + defer journal.mu.Unlock() + return append([]string(nil), journal.events...) +} + +type Instance struct { + host *Host + ctx context.Context + cancel context.CancelFunc + + core guestCore + dataPlane dataPlaneCore + rpc rpcCore + reactor *reactor.Reactor + packetSink uint64 + eventSink uint64 + events chan Event + journal *eventJournal + + commands chan command + dataPlaneCommands chan dataPlaneCommand + rpcCommands chan rpcCommand + pendingOperations map[coreabi.OperationID]*pendingOperation + pendingRPCs map[coreabi.RPCOperationID]*pendingRPC + completions chan struct{} + closeRequested chan struct{} + closeOnce sync.Once + closing atomic.Bool + done chan struct{} + running chan struct{} + runningOnce sync.Once + stopped chan struct{} + stoppedOnce sync.Once + state atomic.Int32 + + errMu sync.Mutex + terminalErr error +} + +func (instance *Instance) Start(ctx context.Context) error { + if ctx == nil { + return fmt.Errorf("start EasyTier instance with nil context") + } + if err := instance.execute(ctx, command{kind: commandStart}); err != nil { + return err + } + select { + case <-instance.running: + return nil + case <-instance.done: + return instance.finishedError("start EasyTier instance") + case <-ctx.Done(): + return ctx.Err() + } +} + +func (instance *Instance) Stop(ctx context.Context) error { + if ctx == nil { + return fmt.Errorf("stop EasyTier instance with nil context") + } + if err := instance.execute(ctx, command{kind: commandStop}); err != nil { + return err + } + select { + case <-instance.stopped: + return nil + case <-instance.done: + return instance.finishedError("stop EasyTier instance") + case <-ctx.Done(): + return ctx.Err() + } +} + +func (instance *Instance) SendPacket(ctx context.Context, packet []byte) error { + if ctx == nil { + return fmt.Errorf("send EasyTier packet with nil context") + } + if len(packet) == 0 { + return fmt.Errorf("send empty packet") + } + return instance.execute(ctx, command{ + kind: commandSendPacket, + packet: packet, + }) +} + +func (instance *Instance) ReceivePacket(ctx context.Context) ([]byte, error) { + if ctx == nil { + return nil, fmt.Errorf("receive EasyTier packet with nil context") + } + select { + case <-instance.done: + return nil, instance.finishedError("receive EasyTier packet") + default: + } + return instance.reactor.ReceivePacket(ctx, instance.packetSink) +} + +func (instance *Instance) Events() <-chan Event { + return instance.events +} + +func (instance *Instance) Wait(ctx context.Context) error { + if ctx == nil { + return fmt.Errorf("wait for EasyTier instance with nil context") + } + select { + case <-instance.stopped: + return nil + case <-instance.done: + return instance.finishedError("wait for EasyTier instance") + case <-ctx.Done(): + return ctx.Err() + } +} + +func (instance *Instance) State() coreabi.State { + return coreabi.State(instance.state.Load()) +} + +func (instance *Instance) ManagementEvents() []string { + return instance.journal.snapshot() +} + +func (instance *Instance) TerminalError() error { + return instance.terminalError() +} + +func (instance *Instance) Close(ctx context.Context) error { + if ctx == nil { + return fmt.Errorf("close EasyTier instance with nil context") + } + instance.closeOnce.Do(func() { + instance.closing.Store(true) + close(instance.closeRequested) + }) + select { + case <-instance.done: + return instance.terminalError() + case <-ctx.Done(): + return ctx.Err() + } +} + +func (instance *Instance) execute(ctx context.Context, request command) error { + if ctx == nil { + return fmt.Errorf("execute EasyTier command with nil context") + } + request.response = make(chan error, 1) + if instance.closing.Load() { + return fmt.Errorf("execute EasyTier command on closing instance") + } + select { + case instance.commands <- request: + case <-instance.done: + return instance.finishedError("execute EasyTier command") + case <-instance.closeRequested: + return fmt.Errorf("execute EasyTier command on closing instance") + case <-ctx.Done(): + return ctx.Err() + } + if request.kind == commandSendPacket { + // The guest may retain packet until it responds. Do not let caller + // cancellation end the borrow after the request enters the queue. + select { + case err := <-request.response: + return err + case <-instance.done: + return instance.finishedError("execute EasyTier command") + } + } + select { + case err := <-request.response: + return err + case <-instance.done: + return instance.finishedError("execute EasyTier command") + case <-instance.closeRequested: + return fmt.Errorf("execute EasyTier command on closing instance") + case <-ctx.Done(): + return ctx.Err() + } +} + +func (instance *Instance) run() { + runErr := instance.driveLoop() + instance.state.Store(int32(coreabi.StateStopped)) + instance.failPendingOperations(net.ErrClosed) + instance.failPendingRPCs(net.ErrClosed) + cleanupErr := instance.shutdown() + instance.errMu.Lock() + instance.terminalErr = errors.Join(runErr, cleanupErr) + instance.errMu.Unlock() + close(instance.done) +} + +func (instance *Instance) driveLoop() error { + deadline := int64(math.MaxInt64) + timer := time.NewTimer(time.Hour) + stopTimer(timer) + defer stopTimer(timer) + for { + timerChannel := deadlineTimer(timer, deadline) + select { + case request := <-instance.commands: + stopTimer(timer) + if request.kind == commandSendPacket { + next, err := instance.handlePacketBatch(request, deadline) + if err != nil { + return err + } + deadline = next + continue + } + commandErr := instance.handleCommand(request) + if commandErr != nil { + request.response <- commandErr + continue + } + next, driveErr := instance.drive(false) + request.response <- driveErr + if driveErr != nil { + return driveErr + } + deadline = next + case request := <-instance.dataPlaneCommands: + stopTimer(timer) + response := instance.handleDataPlaneCommand(request) + if response.err != nil { + request.response <- response + continue + } + next, driveErr := instance.drive(false) + if driveErr != nil { + response.err = driveErr + } else { + select { + case response.outcome = <-response.ticket.result: + response.completed = true + default: + } + } + request.response <- response + if driveErr != nil { + return driveErr + } + deadline = next + case request := <-instance.rpcCommands: + stopTimer(timer) + response := instance.handleRPCCommand(request) + if response.err != nil { + request.response <- response + continue + } + next, driveErr := instance.drive(false) + if driveErr != nil { + response.err = driveErr + } else if response.ticket.result != nil { + select { + case response.outcome = <-response.ticket.result: + response.completed = true + default: + } + } + request.response <- response + if driveErr != nil { + return driveErr + } + deadline = next + case <-instance.completions: + stopTimer(timer) + next, err := instance.drive(true) + if err != nil { + return err + } + deadline = next + case <-timerChannel: + next, err := instance.drive(false) + if err != nil { + return err + } + deadline = next + case <-instance.closeRequested: + stopTimer(timer) + return nil + case <-instance.ctx.Done(): + stopTimer(timer) + return instance.ctx.Err() + } + } +} + +func (instance *Instance) handlePacketBatch( + first command, + deadline int64, +) (int64, error) { + var batch [maximumPacketIngressBatch]command + batch[0] = first + count := 1 + var following *command + +drain: + for count < len(batch) { + select { + case request := <-instance.commands: + if request.kind != commandSendPacket { + following = &request + break drain + } + batch[count] = request + count++ + default: + break drain + } + } + + successful := false + var sendErrors [maximumPacketIngressBatch]error + for index := 0; index < count; index++ { + err := instance.handleCommand(batch[index]) + sendErrors[index] = err + successful = successful || err == nil + } + var driveErr error + if successful { + deadline, driveErr = instance.drive(false) + } + for index := 0; index < count; index++ { + if sendErrors[index] != nil { + batch[index].response <- sendErrors[index] + } else { + batch[index].response <- driveErr + } + } + if driveErr != nil { + return deadline, driveErr + } + + if following == nil { + return deadline, nil + } + commandErr := instance.handleCommand(*following) + if commandErr != nil { + following.response <- commandErr + return deadline, nil + } + deadline, driveErr = instance.drive(false) + following.response <- driveErr + return deadline, driveErr +} + +func (instance *Instance) handleCommand(request command) error { + instance.host.guestMu.Lock() + defer instance.host.guestMu.Unlock() + switch request.kind { + case commandStart: + return instance.core.Start(instance.ctx) + case commandStop: + return instance.core.Stop(instance.ctx) + case commandSendPacket: + return instance.core.SendPacket(instance.ctx, request.packet) + default: + return fmt.Errorf("unknown EasyTier command %d", request.kind) + } +} + +func (instance *Instance) drive(notify bool) (int64, error) { + instance.host.guestMu.Lock() + defer instance.host.guestMu.Unlock() + if notify { + if err := instance.core.NotifyCompletions(instance.ctx); err != nil { + return 0, err + } + } + state, err := instance.core.Drive(instance.ctx) + if err != nil { + return 0, err + } + instance.state.Store(int32(state)) + if state == coreabi.StateRunning { + instance.runningOnce.Do(func() { close(instance.running) }) + } + if state == coreabi.StateStopped { + instance.stoppedOnce.Do(func() { close(instance.stopped) }) + } + moreDataPlaneCompletions, err := instance.drainDataPlaneCompletions() + if err != nil { + return 0, err + } + if err := instance.takeRPCResponses(); err != nil { + return 0, err + } + deadline, err := instance.core.NextDeadline(instance.ctx) + if err != nil { + return 0, err + } + if moreDataPlaneCompletions { + return 0, nil + } + return deadline, nil +} + +func (instance *Instance) shutdown() error { + cleanupContext, cancel := context.WithTimeout( + contextutil.WithoutCancel(instance.ctx), + 5*time.Second, + ) + defer cancel() + instance.host.guestMu.Lock() + dropErr := instance.core.Drop(cleanupContext) + instance.host.guestMu.Unlock() + instance.reactor.UnregisterPacketSink(instance.packetSink) + instance.reactor.UnregisterEventSink(instance.eventSink) + close(instance.events) + instance.cancel() + instance.host.removeInstance(instance) + return dropErr +} + +func (instance *Instance) finishedError(operation string) error { + if err := instance.terminalError(); err != nil { + return fmt.Errorf("%s: %w", operation, err) + } + return fmt.Errorf("%s: instance is closed", operation) +} + +func (instance *Instance) terminalError() error { + instance.errMu.Lock() + defer instance.errMu.Unlock() + return instance.terminalErr +} + +func deadlineTimer(timer *time.Timer, deadline int64) <-chan time.Time { + stopTimer(timer) + if deadline == math.MaxInt64 { + return nil + } + duration := time.Duration(deadline) * time.Millisecond + if deadline > int64(math.MaxInt64/time.Millisecond) { + duration = time.Duration(math.MaxInt64) + } + timer.Reset(duration) + return timer.C +} + +func stopTimer(timer *time.Timer) { + if timer == nil || timer.Stop() { + return + } + select { + case <-timer.C: + default: + } +} diff --git a/easytier-go/internal/engine/instance_test.go b/easytier-go/internal/engine/instance_test.go new file mode 100644 index 00000000..e6d70436 --- /dev/null +++ b/easytier-go/internal/engine/instance_test.go @@ -0,0 +1,96 @@ +package engine + +import ( + "context" + "strings" + "testing" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" + "github.com/EasyTier/EasyTier/easytier-go/platform/netstd" +) + +const minimalConfig = `instance_id = "018f4fb1-7a2c-7d1f-9d89-935b0ad7e135" +instance_name = "go-host-engine" + +[network_identity] +network_name = "default" +network_secret = "test" + +[flags] +disable_p2p = true +enable_encryption = false +bind_device = false +` + +func TestHostCreatesAndDrivesInstanceLifecycle(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + host, err := NewHost(ctx, Options{Services: netstd.Services()}) + if err != nil { + t.Fatalf("create host: %v", err) + } + defer host.Close(ctx) + instance, err := host.CreateInstance(ctx, minimalConfig) + if err != nil { + t.Fatalf("create instance: %v", err) + } + defer instance.Close(ctx) + + if err := instance.Start(ctx); err != nil { + t.Fatalf("start instance: %v", err) + } + if state := instance.State(); state != 2 { + t.Fatalf("running state = %d, want 2", state) + } + if err := instance.Stop(ctx); err != nil { + t.Fatalf("stop instance: %v", err) + } + if err := instance.Wait(ctx); err != nil { + t.Fatalf("wait for stopped instance: %v", err) + } +} + +func TestClosingOneHandleLeavesOtherInstanceRunning(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + host, err := NewHost(ctx, Options{Services: netstd.Services()}) + if err != nil { + t.Fatalf("create host: %v", err) + } + defer host.Close(ctx) + + first, err := host.CreateInstance(ctx, minimalConfig) + if err != nil { + t.Fatalf("create first instance: %v", err) + } + secondConfig := strings.NewReplacer( + "018f4fb1-7a2c-7d1f-9d89-935b0ad7e135", + "018f4fb1-7a2c-7d1f-9d89-935b0ad7e136", + "go-host-engine", + "go-host-engine-second", + ).Replace(minimalConfig) + second, err := host.CreateInstance(ctx, secondConfig) + if err != nil { + t.Fatalf("create second instance: %v", err) + } + defer second.Close(ctx) + if err := first.Start(ctx); err != nil { + t.Fatalf("start first instance: %v", err) + } + if err := second.Start(ctx); err != nil { + t.Fatalf("start second instance: %v", err) + } + if err := first.Close(ctx); err != nil { + t.Fatalf("close first instance: %v", err) + } + if state := first.State(); state != coreabi.StateStopped { + t.Fatalf("closed first state = %d, want stopped", state) + } + if state := second.State(); state != 2 { + t.Fatalf("second state after first close = %d, want running", state) + } + if err := second.Stop(ctx); err != nil { + t.Fatalf("stop second instance: %v", err) + } +} diff --git a/easytier-go/internal/engine/listener.go b/easytier-go/internal/engine/listener.go new file mode 100644 index 00000000..4f01b889 --- /dev/null +++ b/easytier-go/internal/engine/listener.go @@ -0,0 +1,84 @@ +package engine + +import ( + "context" + "net" + "net/netip" + "sync" + "sync/atomic" + + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" +) + +type streamListener struct { + instance *Instance + resource coreabi.ResourceID + local netip.AddrPort + + closed atomic.Bool + closeOnce sync.Once + closeDone chan struct{} + closeErr error +} + +func (listener *streamListener) Accept() (net.Conn, error) { + if listener.closed.Load() { + return nil, net.ErrClosed + } + result, err := listener.instance.performOperation( + context.Background(), + coreabi.OperationTCPAccept, + func( + ctx context.Context, + core dataPlaneCore, + ) (coreabi.OperationID, error) { + return core.SubmitTCPAccept( + ctx, + listener.resource, + ^uint64(0), + ) + }, + ) + if err != nil { + return nil, err + } + return newStreamConn(listener.instance, result), nil +} + +func (listener *streamListener) Close() error { + listener.closeOnce.Do(func() { + listener.closed.Store(true) + listener.closeErr = listener.instance.closeDataPlaneResource( + listener.resource, + ) + close(listener.closeDone) + }) + <-listener.closeDone + return listener.closeErr +} + +func (listener *streamListener) Addr() net.Addr { + return net.TCPAddrFromAddrPort(listener.local) +} + +func (instance *Instance) Listen(port uint16) (net.Listener, error) { + result, err := instance.performOperation( + context.Background(), + coreabi.OperationTCPBind, + func( + ctx context.Context, + core dataPlaneCore, + ) (coreabi.OperationID, error) { + return core.SubmitTCPBind(ctx, port, ^uint64(0)) + }, + ) + if err != nil { + return nil, err + } + return &streamListener{ + instance: instance, + resource: result.Resource, + local: result.Local, + closeDone: make(chan struct{}), + }, nil +} diff --git a/easytier-go/internal/engine/module_config_test.go b/easytier-go/internal/engine/module_config_test.go new file mode 100644 index 00000000..4859b45a --- /dev/null +++ b/easytier-go/internal/engine/module_config_test.go @@ -0,0 +1,61 @@ +package engine + +import ( + "context" + "testing" + "time" + + "github.com/metacubex/wazero" + "github.com/metacubex/wazero/imports/wasi_snapshot_preview1" +) + +// wasiWalltimeProbe imports clock_time_get and exports now(), which returns +// the realtime clock value written by WASI at memory offset zero. +var wasiWalltimeProbe = []byte{ + 0x00, 0x61, 0x73, 0x6d, 0x01, 0x00, 0x00, 0x00, + 0x01, 0x0c, 0x02, 0x60, 0x03, 0x7f, 0x7e, 0x7f, + 0x01, 0x7f, 0x60, 0x00, 0x01, 0x7e, + 0x02, 0x29, 0x01, 0x16, + 'w', 'a', 's', 'i', '_', 's', 'n', 'a', 'p', 's', 'h', + 'o', 't', '_', 'p', 'r', 'e', 'v', 'i', 'e', 'w', '1', + 0x0e, + 'c', 'l', 'o', 'c', 'k', '_', 't', 'i', 'm', 'e', '_', 'g', 'e', 't', + 0x00, 0x00, + 0x03, 0x02, 0x01, 0x01, + 0x05, 0x03, 0x01, 0x00, 0x01, + 0x07, 0x10, 0x02, + 0x06, 'm', 'e', 'm', 'o', 'r', 'y', 0x02, 0x00, + 0x03, 'n', 'o', 'w', 0x00, 0x01, + 0x0a, 0x12, 0x01, 0x10, 0x00, + 0x41, 0x00, 0x42, 0x00, 0x41, 0x00, 0x10, 0x00, 0x1a, + 0x41, 0x00, 0x29, 0x03, 0x00, 0x0b, +} + +func TestModuleConfigUsesSystemWalltime(t *testing.T) { + ctx := context.Background() + runtime := wazero.NewRuntime(ctx) + defer runtime.Close(ctx) + if _, err := wasi_snapshot_preview1.Instantiate(ctx, runtime); err != nil { + t.Fatalf("instantiate WASI: %v", err) + } + compiled, err := runtime.CompileModule(ctx, wasiWalltimeProbe) + if err != nil { + t.Fatalf("compile walltime probe: %v", err) + } + defer compiled.Close(ctx) + + before := time.Now() + module, err := runtime.InstantiateModule(ctx, compiled, newModuleConfig()) + if err != nil { + t.Fatalf("instantiate walltime probe: %v", err) + } + results, err := module.ExportedFunction("now").Call(ctx) + if err != nil { + t.Fatalf("read WASI walltime: %v", err) + } + after := time.Now() + got := time.Unix(0, int64(results[0])) + if got.Before(before.Add(-time.Second)) || got.After(after.Add(time.Second)) { + t.Fatalf("WASI walltime = %s, want system time between %s and %s", got, before, after) + } +} diff --git a/easytier-go/internal/engine/packet_conn.go b/easytier-go/internal/engine/packet_conn.go new file mode 100644 index 00000000..6e1fe5b7 --- /dev/null +++ b/easytier-go/internal/engine/packet_conn.go @@ -0,0 +1,284 @@ +package engine + +import ( + "context" + "io" + "net" + "net/netip" + "sync" + "sync/atomic" + "syscall" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" +) + +type packetConn struct { + instance *Instance + resource coreabi.ResourceID + local netip.AddrPort + + readMu sync.Mutex + writeMu sync.Mutex + + closed atomic.Bool + closeOnce sync.Once + closeDone chan struct{} + closeErr error +} + +type datagramConn struct { + packet *packetConn + peer netip.AddrPort +} + +var _ net.Conn = (*datagramConn)(nil) + +func newPacketConn( + instance *Instance, + result coreabi.OperationResult, +) *packetConn { + return &packetConn{ + instance: instance, + resource: result.Resource, + local: result.Local, + closeDone: make(chan struct{}), + } +} + +func (conn *packetConn) ReadFrom(buffer []byte) (int, net.Addr, error) { + conn.readMu.Lock() + defer conn.readMu.Unlock() + if conn.closed.Load() { + return 0, nil, net.ErrClosed + } + maximum := len(buffer) + if maximum > maxDataPlaneTransfer { + maximum = maxDataPlaneTransfer + } + result, err := conn.instance.performOperation( + context.Background(), + coreabi.OperationUDPReceive, + func( + callCtx context.Context, + core dataPlaneCore, + ) (coreabi.OperationID, error) { + return core.SubmitUDPReceive( + callCtx, + conn.resource, + uint32(maximum), + ) + }, + ) + if err != nil { + return 0, nil, normalizeDeadlineError(err) + } + n := copy(buffer, result.Data) + peer := net.UDPAddrFromAddrPort(result.Peer) + if result.Truncated { + return n, peer, io.ErrShortBuffer + } + return n, peer, nil +} + +func (conn *packetConn) WriteTo(buffer []byte, address net.Addr) (int, error) { + conn.writeMu.Lock() + defer conn.writeMu.Unlock() + if conn.closed.Load() { + return 0, net.ErrClosed + } + if len(buffer) > maxDataPlaneTransfer { + return 0, syscall.EMSGSIZE + } + peer, err := udpAddrPort(address) + if err != nil { + return 0, err + } + result, err := conn.instance.performOperation( + context.Background(), + coreabi.OperationUDPSend, + func( + callCtx context.Context, + core dataPlaneCore, + ) (coreabi.OperationID, error) { + return core.SubmitUDPSend( + callCtx, + conn.resource, + peer, + buffer, + ) + }, + ) + if err != nil { + return 0, normalizeDeadlineError(err) + } + if result.Length != len(buffer) { + return result.Length, io.ErrShortWrite + } + return result.Length, nil +} + +func (conn *packetConn) Close() error { + conn.closeOnce.Do(func() { + conn.closed.Store(true) + conn.closeErr = conn.instance.closeDataPlaneResource(conn.resource) + close(conn.closeDone) + }) + <-conn.closeDone + return conn.closeErr +} + +func (conn *packetConn) LocalAddr() net.Addr { + return net.UDPAddrFromAddrPort(conn.local) +} + +func (conn *packetConn) SetDeadline(deadline time.Time) error { + if conn.closed.Load() { + return net.ErrClosed + } + return conn.instance.setDataPlaneResourceDeadline( + conn.resource, + coreabi.DeadlineRead|coreabi.DeadlineWrite, + deadline, + ) +} + +func (conn *packetConn) SetReadDeadline(deadline time.Time) error { + if conn.closed.Load() { + return net.ErrClosed + } + return conn.instance.setDataPlaneResourceDeadline( + conn.resource, + coreabi.DeadlineRead, + deadline, + ) +} + +func (conn *packetConn) SetWriteDeadline(deadline time.Time) error { + if conn.closed.Load() { + return net.ErrClosed + } + return conn.instance.setDataPlaneResourceDeadline( + conn.resource, + coreabi.DeadlineWrite, + deadline, + ) +} + +func udpAddrPort(address net.Addr) (netip.AddrPort, error) { + if address == nil { + return netip.AddrPort{}, &net.AddrError{ + Err: "address is nil", + } + } + udp, ok := address.(*net.UDPAddr) + if !ok { + return netip.AddrPort{}, &net.AddrError{ + Err: "address is not UDP", + Addr: address.String(), + } + } + peer := udp.AddrPort() + if peer.IsValid() { + peer = netip.AddrPortFrom(peer.Addr().Unmap(), peer.Port()) + } + if !peer.IsValid() || !peer.Addr().Is4() { + return netip.AddrPort{}, &net.AddrError{ + Err: "EasyTier data plane requires an IPv4 address", + Addr: address.String(), + } + } + return peer, nil +} + +func (instance *Instance) ListenPacket(port uint16) (net.PacketConn, error) { + result, err := instance.performOperation( + context.Background(), + coreabi.OperationUDPBind, + func( + ctx context.Context, + core dataPlaneCore, + ) (coreabi.OperationID, error) { + return core.SubmitUDPBind(ctx, port, ^uint64(0)) + }, + ) + if err != nil { + return nil, err + } + return newPacketConn(instance, result), nil +} + +func (instance *Instance) DialUDP( + ctx context.Context, + peer netip.AddrPort, +) (net.Conn, error) { + timeout, err := contextTimeoutMillis(ctx) + if err != nil { + return nil, normalizeDeadlineError(err) + } + result, err := instance.performOperation( + ctx, + coreabi.OperationUDPBind, + func( + callCtx context.Context, + core dataPlaneCore, + ) (coreabi.OperationID, error) { + return core.SubmitUDPBind(callCtx, 0, timeout) + }, + ) + if err != nil { + return nil, normalizeDeadlineError(err) + } + return &datagramConn{ + packet: newPacketConn(instance, result), + peer: peer, + }, nil +} + +func (conn *datagramConn) Read(buffer []byte) (int, error) { + if len(buffer) == 0 { + return 0, nil + } + for { + n, source, err := conn.packet.ReadFrom(buffer) + if source == nil { + return n, err + } + sourcePeer, addressErr := udpAddrPort(source) + if addressErr != nil { + return 0, addressErr + } + if sourcePeer != conn.peer { + continue + } + return n, err + } +} + +func (conn *datagramConn) Write(buffer []byte) (int, error) { + return conn.packet.WriteTo(buffer, net.UDPAddrFromAddrPort(conn.peer)) +} + +func (conn *datagramConn) Close() error { + return conn.packet.Close() +} + +func (conn *datagramConn) LocalAddr() net.Addr { + return conn.packet.LocalAddr() +} + +func (conn *datagramConn) RemoteAddr() net.Addr { + return net.UDPAddrFromAddrPort(conn.peer) +} + +func (conn *datagramConn) SetDeadline(deadline time.Time) error { + return conn.packet.SetDeadline(deadline) +} + +func (conn *datagramConn) SetReadDeadline(deadline time.Time) error { + return conn.packet.SetReadDeadline(deadline) +} + +func (conn *datagramConn) SetWriteDeadline(deadline time.Time) error { + return conn.packet.SetWriteDeadline(deadline) +} diff --git a/easytier-go/internal/engine/rpc.go b/easytier-go/internal/engine/rpc.go new file mode 100644 index 00000000..39d89b7b --- /dev/null +++ b/easytier-go/internal/engine/rpc.go @@ -0,0 +1,228 @@ +package engine + +import ( + "context" + "fmt" + "net" + + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" +) + +type rpcCore interface { + SubmitRPC( + context.Context, + []byte, + ) (coreabi.RPCOperationID, error) + TakeRPCResponse( + context.Context, + coreabi.RPCOperationID, + ) ([]byte, bool, error) + FreeRPCOperation(context.Context, coreabi.RPCOperationID) error +} + +type rpcCommandKind uint8 + +const ( + rpcSubmit rpcCommandKind = iota + 1 + rpcFree +) + +type rpcCommand struct { + kind rpcCommandKind + request []byte + operation coreabi.RPCOperationID + response chan rpcCommandResponse +} + +type rpcCommandResponse struct { + ticket rpcTicket + outcome rpcOutcome + completed bool + err error +} + +type rpcTicket struct { + id coreabi.RPCOperationID + result <-chan rpcOutcome +} + +type rpcOutcome struct { + response []byte + err error +} + +type pendingRPC struct { + result chan rpcOutcome +} + +func (instance *Instance) RPC( + ctx context.Context, + encodedRequest []byte, +) ([]byte, error) { + if ctx == nil { + return nil, fmt.Errorf("submit EasyTier RPC with nil context") + } + response := make(chan rpcCommandResponse, 1) + request := rpcCommand{ + kind: rpcSubmit, + request: encodedRequest, + response: response, + } + select { + case instance.rpcCommands <- request: + case <-instance.done: + return nil, net.ErrClosed + case <-instance.closeRequested: + return nil, net.ErrClosed + case <-ctx.Done(): + return nil, ctx.Err() + } + + var ticket rpcTicket + select { + case submitted := <-response: + if submitted.err != nil { + return nil, submitted.err + } + if submitted.completed { + return submitted.outcome.response, submitted.outcome.err + } + ticket = submitted.ticket + case <-instance.done: + return nil, net.ErrClosed + case <-ctx.Done(): + // The driver has accepted the request and may already have submitted + // it. Wait for its operation ID so cancellation cannot leak it. + select { + case submitted := <-response: + if submitted.err != nil { + return nil, submitted.err + } + if submitted.completed { + return submitted.outcome.response, submitted.outcome.err + } + ticket = submitted.ticket + case <-instance.done: + return nil, net.ErrClosed + } + return instance.freeRPCAndWait(ctx, ticket) + } + + select { + case outcome := <-ticket.result: + return outcome.response, outcome.err + case <-ctx.Done(): + return instance.freeRPCAndWait(ctx, ticket) + case <-instance.done: + return nil, net.ErrClosed + case <-instance.closeRequested: + return nil, net.ErrClosed + } +} + +func (instance *Instance) freeRPCAndWait( + cancelled context.Context, + ticket rpcTicket, +) ([]byte, error) { + response := make(chan rpcCommandResponse, 1) + request := rpcCommand{ + kind: rpcFree, + operation: ticket.id, + response: response, + } + select { + case instance.rpcCommands <- request: + case outcome := <-ticket.result: + return outcome.response, outcome.err + case <-instance.done: + return nil, net.ErrClosed + case <-instance.closeRequested: + return nil, net.ErrClosed + } + select { + case result := <-response: + if result.err != nil { + return nil, result.err + } + case outcome := <-ticket.result: + return outcome.response, outcome.err + case <-instance.done: + return nil, net.ErrClosed + case <-instance.closeRequested: + return nil, net.ErrClosed + } + select { + case outcome := <-ticket.result: + return outcome.response, outcome.err + default: + return nil, cancelled.Err() + } +} + +func (instance *Instance) handleRPCCommand( + request rpcCommand, +) rpcCommandResponse { + instance.host.guestMu.Lock() + defer instance.host.guestMu.Unlock() + switch request.kind { + case rpcSubmit: + operation, err := instance.rpc.SubmitRPC( + instance.ctx, + request.request, + ) + if err != nil { + return rpcCommandResponse{err: err} + } + result := make(chan rpcOutcome, 1) + instance.pendingRPCs[operation] = &pendingRPC{result: result} + return rpcCommandResponse{ticket: rpcTicket{ + id: operation, + result: result, + }} + case rpcFree: + if _, exists := instance.pendingRPCs[request.operation]; !exists { + return rpcCommandResponse{} + } + if err := instance.rpc.FreeRPCOperation( + instance.ctx, + request.operation, + ); err != nil { + return rpcCommandResponse{err: err} + } + delete(instance.pendingRPCs, request.operation) + return rpcCommandResponse{} + default: + return rpcCommandResponse{ + err: fmt.Errorf("unknown RPC command %d", request.kind), + } + } +} + +// takeRPCResponses runs with host.guestMu held. +func (instance *Instance) takeRPCResponses() error { + if instance.rpc == nil || len(instance.pendingRPCs) == 0 { + return nil + } + for operation, pending := range instance.pendingRPCs { + response, ready, err := instance.rpc.TakeRPCResponse( + instance.ctx, + operation, + ) + if err != nil { + return err + } + if !ready { + continue + } + delete(instance.pendingRPCs, operation) + pending.result <- rpcOutcome{response: response} + } + return nil +} + +func (instance *Instance) failPendingRPCs(err error) { + for operation, pending := range instance.pendingRPCs { + pending.result <- rpcOutcome{err: err} + delete(instance.pendingRPCs, operation) + } +} diff --git a/easytier-go/internal/engine/rpc_test.go b/easytier-go/internal/engine/rpc_test.go new file mode 100644 index 00000000..41ed22ed --- /dev/null +++ b/easytier-go/internal/engine/rpc_test.go @@ -0,0 +1,128 @@ +package engine + +import ( + "bytes" + "context" + "errors" + "math" + "testing" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" +) + +type readyRPC struct { + response []byte + taken []coreabi.RPCOperationID +} + +func (*readyRPC) SubmitRPC( + context.Context, + []byte, +) (coreabi.RPCOperationID, error) { + return 0, errors.New("unexpected RPC submission") +} + +func (rpc *readyRPC) TakeRPCResponse( + _ context.Context, + operation coreabi.RPCOperationID, +) ([]byte, bool, error) { + rpc.taken = append(rpc.taken, operation) + return append([]byte(nil), rpc.response...), true, nil +} + +func (*readyRPC) FreeRPCOperation( + context.Context, + coreabi.RPCOperationID, +) error { + return errors.New("unexpected RPC free") +} + +func TestDriveTakesReadyRPCResponse(t *testing.T) { + core := &recordingCore{} + rpc := &readyRPC{response: []byte{1, 2, 3}} + result := make(chan rpcOutcome, 1) + instance := &Instance{ + host: &Host{}, + ctx: context.Background(), + core: core, + rpc: rpc, + pendingRPCs: map[coreabi.RPCOperationID]*pendingRPC{ + 9: {result: result}, + }, + running: make(chan struct{}), + stopped: make(chan struct{}), + } + + deadline, err := instance.drive(false) + if err != nil { + t.Fatalf("drive RPC response: %v", err) + } + if deadline != math.MaxInt64 { + t.Fatalf("next deadline = %d, want no deadline", deadline) + } + outcome := <-result + if outcome.err != nil { + t.Fatalf("RPC outcome: %v", outcome.err) + } + if !bytes.Equal(outcome.response, rpc.response) { + t.Fatalf("RPC response = %x, want %x", outcome.response, rpc.response) + } + if len(instance.pendingRPCs) != 0 { + t.Fatalf("pending RPCs = %d, want 0", len(instance.pendingRPCs)) + } + if len(rpc.taken) != 1 || rpc.taken[0] != 9 { + t.Fatalf("taken RPCs = %v, want [9]", rpc.taken) + } +} + +func TestRPCCancellationFreesSubmittedOperation(t *testing.T) { + instance := &Instance{ + rpcCommands: make(chan rpcCommand), + closeRequested: make(chan struct{}), + done: make(chan struct{}), + } + ctx, cancel := context.WithCancel(context.Background()) + callResult := make(chan error, 1) + go func() { + _, err := instance.RPC(ctx, []byte{1, 2, 3}) + callResult <- err + }() + + var submit rpcCommand + select { + case submit = <-instance.rpcCommands: + case <-time.After(time.Second): + t.Fatal("RPC did not enqueue submission") + } + result := make(chan rpcOutcome, 1) + cancel() + submit.response <- rpcCommandResponse{ticket: rpcTicket{ + id: 17, + result: result, + }} + + var free rpcCommand + select { + case free = <-instance.rpcCommands: + case <-time.After(time.Second): + t.Fatal("RPC cancellation did not enqueue free") + } + if free.kind != rpcFree || free.operation != 17 { + t.Fatalf( + "RPC cancellation command = (kind=%d, operation=%d)", + free.kind, + free.operation, + ) + } + free.response <- rpcCommandResponse{} + + select { + case err := <-callResult: + if !errors.Is(err, context.Canceled) { + t.Fatalf("cancelled RPC error = %v, want context cancellation", err) + } + case <-time.After(time.Second): + t.Fatal("cancelled RPC did not return") + } +} diff --git a/easytier-go/internal/engine/web_client.go b/easytier-go/internal/engine/web_client.go new file mode 100644 index 00000000..b17a18ea --- /dev/null +++ b/easytier-go/internal/engine/web_client.go @@ -0,0 +1,182 @@ +package engine + +import ( + "context" + "errors" + "fmt" + "sync" + "sync/atomic" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" +) + +type WebClientOptions struct { + Endpoint string + MachineID string + Hostname string + SecureMode bool + OSType string +} + +type WebClient struct { + host *Host + ctx context.Context + cancel context.CancelFunc + core *coreabi.WebClient + + completions chan struct{} + closeRequested chan struct{} + closeOnce sync.Once + done chan struct{} + connected atomic.Bool + + errMu sync.Mutex + terminalErr error +} + +func (host *Host) CreateWebClient( + ctx context.Context, + options WebClientOptions, +) (*WebClient, error) { + if host == nil { + return nil, fmt.Errorf("create WebClient with nil EasyTier engine host") + } + if ctx == nil { + return nil, fmt.Errorf("create EasyTier WebClient with nil context") + } + envelope, err := encodeWebClientEnvelope(options, host.options.Services.Snapshot) + if err != nil { + return nil, err + } + + host.mu.Lock() + defer host.mu.Unlock() + if host.closed { + return nil, fmt.Errorf("create WebClient with closed EasyTier engine host") + } + if host.webClient != nil { + return nil, fmt.Errorf("EasyTier WebClient is already running") + } + host.guestMu.Lock() + core, err := coreabi.NewWebClient(host.module) + if err == nil { + err = core.Create(ctx, envelope) + } + host.guestMu.Unlock() + if err != nil { + return nil, err + } + + lifetime, cancel := context.WithCancel(host.ctx) + client := &WebClient{ + host: host, + ctx: lifetime, + cancel: cancel, + core: core, + completions: make(chan struct{}, 1), + closeRequested: make(chan struct{}), + done: make(chan struct{}), + } + host.webClient = client + go client.run() + return client, nil +} + +func (client *WebClient) Connected() bool { + return client != nil && client.connected.Load() +} + +func (client *WebClient) Close(ctx context.Context) error { + if client == nil { + return nil + } + if ctx == nil { + return fmt.Errorf("close EasyTier WebClient with nil context") + } + client.closeOnce.Do(func() { close(client.closeRequested) }) + select { + case <-client.done: + return client.terminalError() + case <-ctx.Done(): + return ctx.Err() + } +} + +func (client *WebClient) run() { + runErr := client.driveLoop() + cleanupErr := client.shutdown() + client.errMu.Lock() + client.terminalErr = errors.Join(runErr, cleanupErr) + client.errMu.Unlock() + close(client.done) +} + +func (client *WebClient) driveLoop() error { + deadline := int64(0) + timer := time.NewTimer(0) + stopTimer(timer) + defer stopTimer(timer) + for { + select { + case <-client.completions: + stopTimer(timer) + next, err := client.drive(true) + if err != nil { + return err + } + deadline = next + case <-deadlineTimer(timer, deadline): + next, err := client.drive(false) + if err != nil { + return err + } + deadline = next + case <-client.closeRequested: + return nil + case <-client.ctx.Done(): + return client.ctx.Err() + } + } +} + +func (client *WebClient) drive(notify bool) (int64, error) { + client.host.guestMu.Lock() + defer client.host.guestMu.Unlock() + if notify { + if err := client.core.NotifyCompletions(client.ctx); err != nil { + return 0, err + } + } + if err := client.core.Drive(client.ctx); err != nil { + return 0, err + } + connected, err := client.core.IsConnected(client.ctx) + if err != nil { + return 0, err + } + client.connected.Store(connected) + return client.core.NextDeadline(client.ctx) +} + +func (client *WebClient) shutdown() error { + cleanupContext, cancel := context.WithTimeout( + contextutil.WithoutCancel(client.ctx), + 5*time.Second, + ) + defer cancel() + client.host.guestMu.Lock() + err := client.core.Drop(cleanupContext) + client.host.guestMu.Unlock() + client.connected.Store(false) + client.cancel() + client.host.removeWebClient(client) + return err +} + +func (client *WebClient) terminalError() error { + client.errMu.Lock() + defer client.errMu.Unlock() + return client.terminalErr +} diff --git a/easytier-go/internal/host/host.go b/easytier-go/internal/host/host.go new file mode 100644 index 00000000..a86fc861 --- /dev/null +++ b/easytier-go/internal/host/host.go @@ -0,0 +1,417 @@ +package host + +import ( + "context" + "fmt" + "net" + "net/netip" + "strconv" + + "github.com/EasyTier/EasyTier/easytier-go/internal/artifact" + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" + "github.com/EasyTier/EasyTier/easytier-go/internal/coreabi" + "github.com/EasyTier/EasyTier/easytier-go/internal/engine" + "github.com/EasyTier/EasyTier/easytier-go/platform" + "github.com/EasyTier/EasyTier/easytier-go/platform/netstd" + hostproto "github.com/EasyTier/EasyTier/easytier-go/proto" + "github.com/EasyTier/EasyTier/easytier-go/proto/api/manage" +) + +type State int32 + +const ( + StateCreated State = iota + StateStarting + StateRunning + StateStopping + StateStopped +) + +type Options struct { + Platform platform.Services + PacketQueueCapacity int +} + +type EmbeddedCoreInfo struct { + EasyTierCommit string + SHA256 string +} + +// Event is one best-effort notification emitted by an EasyTier instance. +type Event = engine.Event + +type Host struct { + engine *engine.Host + manager *instanceManager +} + +type Instance struct { + engine *engine.Instance + id string + manager *instanceManager +} + +func New(ctx context.Context, options Options) (*Host, error) { + if ctx == nil { + return nil, fmt.Errorf("create EasyTier host with nil context") + } + if artifact.Commit != hostproto.EasyTierCommit { + return nil, fmt.Errorf( + "embedded EasyTier commit %s does not match protobuf commit %s", + artifact.Commit, + hostproto.EasyTierCommit, + ) + } + select { + case <-ctx.Done(): + return nil, ctx.Err() + default: + } + manager := newInstanceManager() + runtime, err := engine.NewHost( + ctx, + engine.Options{ + Services: mergeServices(options.Platform), + PacketQueueCapacity: options.PacketQueueCapacity, + Management: manager.handle, + }, + ) + if err != nil { + return nil, err + } + host := &Host{engine: runtime, manager: manager} + manager.host = host + return host, nil +} + +func CoreInfo() EmbeddedCoreInfo { + return EmbeddedCoreInfo{ + EasyTierCommit: artifact.Commit, + SHA256: artifact.SHA256, + } +} + +// CreateInstance creates an EasyTier instance from a built configuration. +func (host *Host) CreateInstance( + ctx context.Context, + config InstanceConfig, +) (*Instance, error) { + if host == nil { + return nil, fmt.Errorf("create instance with nil EasyTier host") + } + configTOML, err := encodeInstanceConfig(config) + if err != nil { + return nil, err + } + id, idString, err := newInstanceUUID() + if err != nil { + return nil, err + } + runtime, err := host.engine.CreateInstance( + ctx, + bindInstanceIdentity(configTOML, idString, config.document.networkName), + ) + if err != nil { + return nil, err + } + instance := &Instance{ + engine: runtime, + id: idString, + manager: host.manager, + } + if err := host.manager.register(&managedInstance{ + id: id, + instance: instance, + owner: instanceOwnerApplication, + source: manage.ConfigSource_ConfigSourceUser, + name: config.document.networkName, + }); err != nil { + _ = runtime.Close(contextutil.WithoutCancel(ctx)) + return nil, err + } + return instance, nil +} + +// Instances returns a stable snapshot of all application- and Web-owned instances. +func (host *Host) Instances() []*Instance { + if host == nil || host.manager == nil { + return nil + } + entries := host.manager.snapshot() + instances := make([]*Instance, len(entries)) + for index, entry := range entries { + instances[index] = entry.instance + } + return instances +} + +func (host *Host) Close(ctx context.Context) error { + if host == nil { + return nil + } + if ctx == nil { + return fmt.Errorf("close EasyTier host with nil context") + } + err := host.engine.Close(ctx) + if ctx.Err() == nil { + host.manager.clear() + } + return err +} + +func (instance *Instance) Start(ctx context.Context) error { + if instance == nil || instance.engine == nil { + return fmt.Errorf("start nil EasyTier instance") + } + return instance.engine.Start(ctx) +} + +func (instance *Instance) Stop(ctx context.Context) error { + if instance == nil || instance.engine == nil { + return fmt.Errorf("stop nil EasyTier instance") + } + return instance.engine.Stop(ctx) +} + +func (instance *Instance) SendPacket(ctx context.Context, packet []byte) error { + if instance == nil || instance.engine == nil { + return fmt.Errorf("send packet through nil EasyTier instance") + } + return instance.engine.SendPacket(ctx, packet) +} + +func (instance *Instance) ReceivePacket(ctx context.Context) ([]byte, error) { + if instance == nil || instance.engine == nil { + return nil, fmt.Errorf("receive packet from nil EasyTier instance") + } + return instance.engine.ReceivePacket(ctx) +} + +// Events returns the instance's bounded event stream. +// +// Slow consumers may miss events. The channel closes with the instance. +func (instance *Instance) Events() <-chan Event { + if instance == nil || instance.engine == nil { + return nil + } + return instance.engine.Events() +} + +func (instance *Instance) Dial( + ctx context.Context, + network string, + address string, +) (net.Conn, error) { + if instance == nil || instance.engine == nil { + return nil, fmt.Errorf("dial through nil EasyTier instance") + } + if ctx == nil { + return nil, fmt.Errorf("dial through EasyTier with nil context") + } + switch network { + case "tcp", "tcp4", "udp", "udp4": + default: + return nil, net.UnknownNetworkError(network) + } + peer, err := parseDialAddress(address) + if err != nil { + return nil, err + } + var connection net.Conn + switch network { + case "tcp", "tcp4": + connection, err = instance.engine.Dial(ctx, peer) + case "udp", "udp4": + connection, err = instance.engine.DialUDP(ctx, peer) + } + if err != nil { + var target net.Addr = net.TCPAddrFromAddrPort(peer) + if network == "udp" || network == "udp4" { + target = net.UDPAddrFromAddrPort(peer) + } + return nil, &net.OpError{ + Op: "dial", + Net: network, + Addr: target, + Err: err, + } + } + return connection, nil +} + +func (instance *Instance) Listen( + network string, + address string, +) (net.Listener, error) { + if instance == nil || instance.engine == nil { + return nil, fmt.Errorf("listen through nil EasyTier instance") + } + if err := requireNetwork(network, "tcp"); err != nil { + return nil, err + } + port, err := parseBindPort(address) + if err != nil { + return nil, err + } + listener, err := instance.engine.Listen(port) + if err != nil { + return nil, &net.OpError{ + Op: "listen", + Net: network, + Addr: &net.TCPAddr{ + IP: net.IPv4zero, + Port: int(port), + }, + Err: err, + } + } + return listener, nil +} + +func (instance *Instance) ListenPacket( + network string, + address string, +) (net.PacketConn, error) { + if instance == nil || instance.engine == nil { + return nil, fmt.Errorf("listen for packets through nil EasyTier instance") + } + if err := requireNetwork(network, "udp"); err != nil { + return nil, err + } + port, err := parseBindPort(address) + if err != nil { + return nil, err + } + connection, err := instance.engine.ListenPacket(port) + if err != nil { + return nil, &net.OpError{ + Op: "listen", + Net: network, + Addr: &net.UDPAddr{ + IP: net.IPv4zero, + Port: int(port), + }, + Err: err, + } + } + return connection, nil +} + +func (instance *Instance) Wait(ctx context.Context) error { + if instance == nil || instance.engine == nil { + return fmt.Errorf("wait for nil EasyTier instance") + } + return instance.engine.Wait(ctx) +} + +func (instance *Instance) State() State { + if instance == nil || instance.engine == nil { + return StateStopped + } + return mapState(instance.engine.State()) +} + +// ID returns the instance's stable UUID. +func (instance *Instance) ID() string { + if instance == nil { + return "" + } + return instance.id +} + +func (instance *Instance) Close(ctx context.Context) error { + if instance == nil || instance.engine == nil { + return nil + } + err := instance.engine.Close(ctx) + if ctx != nil && ctx.Err() == nil && instance.manager != nil { + instance.manager.remove(instance) + } + return err +} + +func mergeServices(configured platform.Services) platform.Services { + services := netstd.Services() + if configured.Sockets != nil { + services.Sockets = configured.Sockets + } + if configured.DNS != nil { + services.DNS = configured.DNS + } + if configured.Environment != nil { + services.Environment = configured.Environment + } + services.Snapshot = configured.Snapshot + return services +} + +func mapState(state coreabi.State) State { + switch state { + case coreabi.StateCreated: + return StateCreated + case coreabi.StateStarting: + return StateStarting + case coreabi.StateRunning: + return StateRunning + case coreabi.StateStopping: + return StateStopping + case coreabi.StateStopped: + return StateStopped + default: + return StateStopped + } +} + +func requireNetwork(network string, protocol string) error { + if network == protocol || network == protocol+"4" { + return nil + } + return net.UnknownNetworkError(network) +} + +func parseDialAddress(address string) (netip.AddrPort, error) { + host, port, err := splitAddress(address) + if err != nil { + return netip.AddrPort{}, err + } + ip, err := netip.ParseAddr(host) + if err != nil || !ip.Is4() { + return netip.AddrPort{}, &net.AddrError{ + Err: "EasyTier data plane requires an IPv4 literal", + Addr: address, + } + } + return netip.AddrPortFrom(ip, port), nil +} + +func parseBindPort(address string) (uint16, error) { + host, port, err := splitAddress(address) + if err != nil { + return 0, err + } + if host != "" { + ip, parseErr := netip.ParseAddr(host) + if parseErr != nil || !ip.Is4() || !ip.IsUnspecified() { + return 0, &net.AddrError{ + Err: "EasyTier listeners bind all overlay IPv4 addresses", + Addr: address, + } + } + } + return port, nil +} + +func splitAddress(address string) (string, uint16, error) { + host, service, err := net.SplitHostPort(address) + if err != nil { + return "", 0, err + } + port, err := strconv.ParseUint(service, 10, 16) + if err != nil { + return "", 0, &net.AddrError{ + Err: "port must be a decimal number from 0 to 65535", + Addr: address, + } + } + return host, uint16(port), nil +} diff --git a/easytier-go/internal/host/instance_config.go b/easytier-go/internal/host/instance_config.go new file mode 100644 index 00000000..1cfcd484 --- /dev/null +++ b/easytier-go/internal/host/instance_config.go @@ -0,0 +1,607 @@ +package host + +import ( + "crypto/ecdh" + "crypto/rand" + "fmt" + "net/netip" + "net/url" + "strconv" + "strings" + "unicode" + "unicode/utf8" +) + +// P2PPolicy controls when an instance attempts peer-to-peer connections. +// +// Disable normally suppresses P2P, but a peer advertising Need may still +// request it. Need advertises that this instance requires P2P and may override +// a peer's Disable setting. Lazy defers background P2P until traffic needs it, +// except for peers advertising Need. +type P2PPolicy struct { + Disable bool + Need bool + Lazy bool +} + +// HolePunchingPolicy selects the hole-punching methods available to an +// instance. SymmetricUDP requires UDP. +type HolePunchingPolicy struct { + TCP bool + UDP bool + SymmetricUDP bool +} + +// PortForwardProtocol identifies the transport used by a port-forward rule. +type PortForwardProtocol string + +const ( + PortForwardTCP PortForwardProtocol = "tcp" + PortForwardUDP PortForwardProtocol = "udp" +) + +// PortForwardConfig exposes a host socket through the EasyTier data plane. +type PortForwardConfig struct { + Protocol PortForwardProtocol + Bind netip.AddrPort + Destination netip.AddrPort +} + +// InstanceConfig is an immutable EasyTier instance configuration. +// +// Its zero value is invalid. Construct one with InstanceConfigBuilder. +type InstanceConfig struct { + document *instanceConfigDocument +} + +// InstanceConfigBuilder builds a validated InstanceConfig. +// +// A builder is not safe for concurrent use. +type InstanceConfigBuilder struct { + document instanceConfigDocument + networkSecretSet bool +} + +type instanceConfigDocument struct { + networkName string + networkSecret string + hostname *string + ipv4 *netip.Prefix + peers []string + listeners []string + portForwards []PortForwardConfig + stunServers []string + stunServersSet bool + stunServersV6 []string + stunServersV6Set bool + p2p *P2PPolicy + holePunching *HolePunchingPolicy + encryption *bool + secureMode secureMode + securePrivateKey []byte +} + +type secureMode uint8 + +const ( + secureModeDisabled secureMode = iota + secureModeAutomatic + secureModeManual +) + +// NewInstanceConfigBuilder starts a configuration for networkName. +func NewInstanceConfigBuilder(networkName string) *InstanceConfigBuilder { + return &InstanceConfigBuilder{ + document: instanceConfigDocument{networkName: networkName}, + } +} + +// NetworkSecret selects shared-secret network authentication. +// +// An empty secret is valid unless secure mode is enabled. +func (builder *InstanceConfigBuilder) NetworkSecret( + secret string, +) *InstanceConfigBuilder { + builder.document.networkSecret = secret + builder.networkSecretSet = true + return builder +} + +// Hostname sets the hostname advertised by this instance. +func (builder *InstanceConfigBuilder) Hostname( + hostname string, +) *InstanceConfigBuilder { + builder.document.hostname = &hostname + return builder +} + +// IPv4 sets the instance's virtual IPv4 address and network prefix. +func (builder *InstanceConfigBuilder) IPv4( + prefix netip.Prefix, +) *InstanceConfigBuilder { + builder.document.ipv4 = &prefix + return builder +} + +// AddPeers appends TCP or UDP peer endpoints. +func (builder *InstanceConfigBuilder) AddPeers( + uris ...string, +) *InstanceConfigBuilder { + builder.document.peers = append(builder.document.peers, uris...) + return builder +} + +// AddListeners appends TCP or UDP listener endpoints. +func (builder *InstanceConfigBuilder) AddListeners( + uris ...string, +) *InstanceConfigBuilder { + builder.document.listeners = append(builder.document.listeners, uris...) + return builder +} + +// AddPortForwards appends TCP or UDP host-to-overlay forwarding rules. +func (builder *InstanceConfigBuilder) AddPortForwards( + forwards ...PortForwardConfig, +) *InstanceConfigBuilder { + builder.document.portForwards = append(builder.document.portForwards, forwards...) + return builder +} + +// STUNServers replaces the IPv4 UDP STUN server list. +// +// Calling STUNServers with no arguments explicitly disables the list. Omitting +// the call uses the embedded core's defaults. +func (builder *InstanceConfigBuilder) STUNServers( + servers ...string, +) *InstanceConfigBuilder { + builder.document.stunServers = append([]string(nil), servers...) + builder.document.stunServersSet = true + return builder +} + +// STUNServersV6 replaces the IPv6 UDP STUN server list. +// +// Calling STUNServersV6 with no arguments explicitly disables the list. +// Omitting the call uses the embedded core's defaults. +func (builder *InstanceConfigBuilder) STUNServersV6( + servers ...string, +) *InstanceConfigBuilder { + builder.document.stunServersV6 = append([]string(nil), servers...) + builder.document.stunServersV6Set = true + return builder +} + +// P2P sets the instance's P2P connection policy. +func (builder *InstanceConfigBuilder) P2P( + policy P2PPolicy, +) *InstanceConfigBuilder { + builder.document.p2p = &policy + return builder +} + +// HolePunching sets the instance's TCP and UDP hole-punching policy. +func (builder *InstanceConfigBuilder) HolePunching( + policy HolePunchingPolicy, +) *InstanceConfigBuilder { + builder.document.holePunching = &policy + return builder +} + +// Encryption explicitly enables or disables EasyTier data encryption. +func (builder *InstanceConfigBuilder) Encryption( + enabled bool, +) *InstanceConfigBuilder { + builder.document.encryption = &enabled + return builder +} + +// SecureMode enables secure mode with an automatically generated X25519 key. +func (builder *InstanceConfigBuilder) SecureMode() *InstanceConfigBuilder { + builder.document.secureMode = secureModeAutomatic + builder.document.securePrivateKey = nil + return builder +} + +// SecureModeWithPrivateKey enables secure mode with a caller-provided raw +// 32-byte X25519 private key. The key is copied immediately. +func (builder *InstanceConfigBuilder) SecureModeWithPrivateKey( + privateKey []byte, +) *InstanceConfigBuilder { + builder.document.secureMode = secureModeManual + builder.document.securePrivateKey = append([]byte(nil), privateKey...) + return builder +} + +// Build validates the builder and returns an immutable configuration. +func (builder *InstanceConfigBuilder) Build() (InstanceConfig, error) { + if builder == nil { + return InstanceConfig{}, invalidInstanceConfig("", "builder is nil") + } + if err := builder.validateIdentity(); err != nil { + return InstanceConfig{}, err + } + + document := builder.document.clone() + if err := validateHostname(document.hostname); err != nil { + return InstanceConfig{}, err + } + if err := validateIPv4(document.ipv4); err != nil { + return InstanceConfig{}, err + } + if err := normalizeEndpoints(document.peers, false, "peers"); err != nil { + return InstanceConfig{}, err + } + if err := normalizeEndpoints(document.listeners, true, "listeners"); err != nil { + return InstanceConfig{}, err + } + if err := validatePortForwards(document.portForwards); err != nil { + return InstanceConfig{}, err + } + if document.stunServersSet { + if err := validateSTUNServers(document.stunServers, false, "stun_servers"); err != nil { + return InstanceConfig{}, err + } + } + if document.stunServersV6Set { + if err := validateSTUNServers( + document.stunServersV6, + true, + "stun_servers_v6", + ); err != nil { + return InstanceConfig{}, err + } + } + if document.holePunching != nil && + document.holePunching.SymmetricUDP && + !document.holePunching.UDP { + return InstanceConfig{}, invalidInstanceConfig( + "hole_punching.symmetric_udp", + "requires UDP hole punching", + ) + } + if document.secureMode != secureModeDisabled { + if document.networkSecret == "" { + return InstanceConfig{}, invalidInstanceConfig( + "secure_mode", + "requires a non-empty network secret", + ) + } + privateKey, err := builder.secureModePrivateKey() + if err != nil { + return InstanceConfig{}, err + } + document.securePrivateKey = privateKey + } + + return InstanceConfig{document: &document}, nil +} + +func (builder *InstanceConfigBuilder) validateIdentity() error { + if !utf8.ValidString(builder.document.networkName) { + return invalidInstanceConfig("network.name", "must be valid UTF-8") + } + if builder.document.networkName == "" { + return invalidInstanceConfig("network.name", "must not be empty") + } + if !builder.networkSecretSet { + return invalidInstanceConfig("network.secret", "must be explicitly set") + } + if !utf8.ValidString(builder.document.networkSecret) { + return invalidInstanceConfig("network.secret", "must be valid UTF-8") + } + return nil +} + +func (builder *InstanceConfigBuilder) secureModePrivateKey() ([]byte, error) { + switch builder.document.secureMode { + case secureModeAutomatic: + if len(builder.document.securePrivateKey) == 0 { + privateKey, err := ecdh.X25519().GenerateKey(rand.Reader) + if err != nil { + return nil, fmt.Errorf("generate secure mode X25519 key: %w", err) + } + builder.document.securePrivateKey = privateKey.Bytes() + } + case secureModeManual: + if len(builder.document.securePrivateKey) != 32 { + return nil, invalidInstanceConfig( + "secure_mode.private_key", + "must contain exactly 32 bytes", + ) + } + if _, err := ecdh.X25519().NewPrivateKey( + builder.document.securePrivateKey, + ); err != nil { + return nil, invalidInstanceConfig( + "secure_mode.private_key", + "is not a valid X25519 private key", + ) + } + default: + return nil, invalidInstanceConfig("secure_mode", "has an invalid mode") + } + return append([]byte(nil), builder.document.securePrivateKey...), nil +} + +func validateHostname(hostname *string) error { + if hostname == nil { + return nil + } + if !utf8.ValidString(*hostname) { + return invalidInstanceConfig("hostname", "must be valid UTF-8") + } + if *hostname == "" { + return invalidInstanceConfig("hostname", "must not be empty") + } + if utf8.RuneCountInString(*hostname) > 32 { + return invalidInstanceConfig("hostname", "must not exceed 32 characters") + } + for _, character := range *hostname { + if unicode.IsControl(character) { + return invalidInstanceConfig("hostname", "must not contain control characters") + } + } + return nil +} + +func validateIPv4(prefix *netip.Prefix) error { + if prefix == nil { + return nil + } + if !prefix.IsValid() || !prefix.Addr().Is4() { + return invalidInstanceConfig("ipv4", "must be a valid IPv4 prefix") + } + if prefix.Bits() == 32 { + return invalidInstanceConfig( + "ipv4", + "must include a network prefix shorter than /32", + ) + } + return nil +} + +func validatePortForwards(forwards []PortForwardConfig) error { + seen := make(map[PortForwardConfig]struct{}, len(forwards)) + for index, forward := range forwards { + field := fmt.Sprintf("port_forwards[%d]", index) + if forward.Protocol != PortForwardTCP && + forward.Protocol != PortForwardUDP { + return invalidInstanceConfig( + field+".protocol", + "must be TCP or UDP", + ) + } + if !forward.Bind.IsValid() || !forward.Bind.Addr().Is4() { + return invalidInstanceConfig( + field+".bind", + "must be a valid IPv4 socket address", + ) + } + if !forward.Destination.IsValid() || + !forward.Destination.Addr().Is4() { + return invalidInstanceConfig( + field+".destination", + "must be a valid IPv4 socket address", + ) + } + if forward.Destination.Port() == 0 { + return invalidInstanceConfig( + field+".destination", + "port must not be zero", + ) + } + if _, exists := seen[forward]; exists { + return invalidInstanceConfig(field, "duplicates another port forward") + } + seen[forward] = struct{}{} + } + return nil +} + +func normalizeEndpoints(values []string, listener bool, field string) error { + seen := make(map[string]struct{}, len(values)) + for index, value := range values { + normalized, err := normalizeEndpoint(value, listener) + if err != nil { + return invalidInstanceConfig( + fmt.Sprintf("%s[%d]", field, index), + err.Error(), + ) + } + if _, exists := seen[normalized]; exists { + return invalidInstanceConfig( + fmt.Sprintf("%s[%d]", field, index), + "duplicates another endpoint", + ) + } + seen[normalized] = struct{}{} + values[index] = normalized + } + return nil +} + +func normalizeEndpoint(value string, listener bool) (string, error) { + if !utf8.ValidString(value) { + return "", fmt.Errorf("must be valid UTF-8") + } + if value == "" || strings.TrimSpace(value) != value { + return "", fmt.Errorf("must be a non-empty URI without surrounding whitespace") + } + parsed, err := url.ParseRequestURI(value) + if err != nil || parsed.Scheme == "" || parsed.Host == "" { + return "", fmt.Errorf("must be an absolute TCP or UDP URI") + } + parsed.Scheme = strings.ToLower(parsed.Scheme) + if parsed.Scheme != "tcp" && parsed.Scheme != "udp" { + return "", fmt.Errorf("must use the TCP or UDP scheme") + } + if parsed.User != nil || + parsed.Opaque != "" || + parsed.Path != "" || + parsed.RawPath != "" || + parsed.RawQuery != "" || + parsed.ForceQuery || + parsed.Fragment != "" { + return "", fmt.Errorf("must not contain credentials, a path, query, or fragment") + } + host := parsed.Hostname() + if host == "" { + return "", fmt.Errorf("must include a host") + } + if port := parsed.Port(); port != "" { + value, parseErr := strconv.ParseUint(port, 10, 16) + if parseErr != nil || (!listener && value == 0) { + return "", fmt.Errorf("has an invalid port") + } + } + if listener { + if _, err := netip.ParseAddr(host); err != nil { + return "", fmt.Errorf("listener host must be an IP address") + } + } + return parsed.String(), nil +} + +func validateSTUNServers(values []string, ipv6 bool, field string) error { + seen := make(map[string]struct{}, len(values)) + for index, value := range values { + if err := validateSTUNServer(value, ipv6); err != nil { + return invalidInstanceConfig( + fmt.Sprintf("%s[%d]", field, index), + err.Error(), + ) + } + if _, exists := seen[value]; exists { + return invalidInstanceConfig( + fmt.Sprintf("%s[%d]", field, index), + "duplicates another STUN server", + ) + } + seen[value] = struct{}{} + } + return nil +} + +func validateSTUNServer(value string, ipv6 bool) error { + if !utf8.ValidString(value) { + return fmt.Errorf("must be valid UTF-8") + } + if value == "" || strings.TrimSpace(value) != value { + return fmt.Errorf("must be non-empty without surrounding whitespace") + } + if domain, found := strings.CutPrefix(value, "txt:"); found { + if !validSTUNHostname(domain) { + return fmt.Errorf("has an invalid TXT lookup name") + } + return nil + } + if address, err := netip.ParseAddr(value); err == nil { + return validateSTUNAddressFamily(address, ipv6) + } + if address, err := netip.ParseAddrPort(value); err == nil { + if address.Port() == 0 { + return fmt.Errorf("port must not be zero") + } + return validateSTUNAddressFamily(address.Addr(), ipv6) + } + + parsed, err := url.Parse("stun://" + value) + if err != nil || + parsed.Host == "" || + parsed.User != nil || + parsed.Path != "" || + parsed.RawQuery != "" || + parsed.Fragment != "" { + return fmt.Errorf("must be a host, IP address, socket address, or txt: name") + } + host := parsed.Hostname() + if !validSTUNHostname(host) { + return fmt.Errorf("has an invalid host") + } + if strings.HasSuffix(parsed.Host, ":") { + return fmt.Errorf("has an invalid port") + } + if port := parsed.Port(); port != "" { + value, parseErr := strconv.ParseUint(port, 10, 16) + if parseErr != nil || value == 0 { + return fmt.Errorf("has an invalid port") + } + } + if address, err := netip.ParseAddr(host); err == nil { + return validateSTUNAddressFamily(address, ipv6) + } + return nil +} + +func validSTUNHostname(value string) bool { + if value == "" || strings.ContainsAny(value, " \t\r\n/?#@[]:") { + return false + } + for _, character := range value { + if unicode.IsControl(character) { + return false + } + } + return true +} + +func validateSTUNAddressFamily(address netip.Addr, ipv6 bool) error { + if ipv6 { + if address.Is6() && !address.Is4In6() { + return nil + } + return fmt.Errorf("literal address must be IPv6") + } + if address.Is4() { + return nil + } + return fmt.Errorf("literal address must be IPv4") +} + +func invalidInstanceConfig(field string, message string) error { + if field == "" { + return fmt.Errorf("invalid EasyTier instance config: %s", message) + } + return fmt.Errorf("invalid EasyTier instance config %s: %s", field, message) +} + +func (document instanceConfigDocument) clone() instanceConfigDocument { + cloned := document + cloned.peers = append([]string(nil), document.peers...) + cloned.listeners = append([]string(nil), document.listeners...) + cloned.portForwards = append([]PortForwardConfig(nil), document.portForwards...) + cloned.stunServers = append([]string(nil), document.stunServers...) + cloned.stunServersV6 = append([]string(nil), document.stunServersV6...) + cloned.securePrivateKey = append([]byte(nil), document.securePrivateKey...) + if document.hostname != nil { + value := *document.hostname + cloned.hostname = &value + } + if document.ipv4 != nil { + value := *document.ipv4 + cloned.ipv4 = &value + } + if document.p2p != nil { + value := *document.p2p + cloned.p2p = &value + } + if document.holePunching != nil { + value := *document.holePunching + cloned.holePunching = &value + } + if document.encryption != nil { + value := *document.encryption + cloned.encryption = &value + } + return cloned +} + +// Format prevents configuration secrets and private keys from being printed. +func (config InstanceConfig) Format(state fmt.State, _ rune) { + _, _ = state.Write([]byte("InstanceConfig{}")) +} + +// Format prevents configuration secrets and private keys from being printed. +func (builder InstanceConfigBuilder) Format(state fmt.State, _ rune) { + _, _ = state.Write([]byte("InstanceConfigBuilder{}")) +} diff --git a/easytier-go/internal/host/instance_config_test.go b/easytier-go/internal/host/instance_config_test.go new file mode 100644 index 00000000..f525248c --- /dev/null +++ b/easytier-go/internal/host/instance_config_test.go @@ -0,0 +1,534 @@ +package host + +import ( + "bytes" + "crypto/ecdh" + "encoding/base64" + "fmt" + "net/netip" + "strings" + "testing" +) + +func TestInstanceConfigEncodesSupportedSettings(t *testing.T) { + privateKeyBytes := make([]byte, 32) + for index := range privateKeyBytes { + privateKeyBytes[index] = byte(index + 1) + } + privateKey, err := ecdh.X25519().NewPrivateKey(privateKeyBytes) + if err != nil { + t.Fatalf("create expected private key: %v", err) + } + + config, err := NewInstanceConfigBuilder(`office "blue"`). + NetworkSecret("line1\nline2"). + Hostname(`node "blue"`). + IPv4(netip.MustParsePrefix("10.144.0.10/24")). + AddPeers( + "TCP://peer.example.com:11010", + "udp://203.0.113.20", + ). + AddListeners( + "tcp://0.0.0.0:11010", + "udp://[::]:0", + ). + AddPortForwards( + PortForwardConfig{ + Protocol: PortForwardTCP, + Bind: netip.MustParseAddrPort("127.0.0.1:5202"), + Destination: netip.MustParseAddrPort("10.144.0.20:5201"), + }, + PortForwardConfig{ + Protocol: PortForwardUDP, + Bind: netip.MustParseAddrPort("0.0.0.0:5203"), + Destination: netip.MustParseAddrPort("10.144.0.21:5201"), + }, + ). + STUNServers( + "stun.example.com", + "192.0.2.1:3478", + "txt:_stun.example.com", + ). + STUNServersV6( + "2001:db8::1", + "[2001:db8::2]:3478", + ). + P2P(P2PPolicy{Disable: true, Need: true, Lazy: true}). + HolePunching(HolePunchingPolicy{ + TCP: true, + UDP: true, + SymmetricUDP: false, + }). + Encryption(false). + SecureModeWithPrivateKey(privateKeyBytes). + Build() + if err != nil { + t.Fatalf("build config: %v", err) + } + + encoded, err := encodeInstanceConfig(config) + if err != nil { + t.Fatalf("encode config: %v", err) + } + want := fmt.Sprintf(`hostname = "node \"blue\"" +ipv4 = "10.144.0.10/24" +listeners = ["tcp://0.0.0.0:11010", "udp://[::]:0"] +stun_servers = ["stun.example.com", "192.0.2.1:3478", "txt:_stun.example.com"] +stun_servers_v6 = ["2001:db8::1", "[2001:db8::2]:3478"] + +[network_identity] +network_name = "office \"blue\"" +network_secret = "line1\nline2" + +[[peer]] +uri = "tcp://peer.example.com:11010" + +[[peer]] +uri = "udp://203.0.113.20" + +[[port_forward]] +bind_addr = "127.0.0.1:5202" +dst_addr = "10.144.0.20:5201" +proto = "tcp" + +[[port_forward]] +bind_addr = "0.0.0.0:5203" +dst_addr = "10.144.0.21:5201" +proto = "udp" + +[flags] +enable_encryption = false +disable_p2p = true +need_p2p = true +lazy_p2p = true +disable_tcp_hole_punching = false +disable_udp_hole_punching = false +disable_sym_hole_punching = true + +[secure_mode] +enabled = true +local_private_key = %q +local_public_key = %q +`, + base64.StdEncoding.EncodeToString(privateKey.Bytes()), + base64.StdEncoding.EncodeToString(privateKey.PublicKey().Bytes()), + ) + if encoded != want { + t.Fatalf("encoded config:\n%s\nwant:\n%s", encoded, want) + } +} + +func TestInstanceConfigPreservesCoreDefaults(t *testing.T) { + config, err := NewInstanceConfigBuilder("default"). + NetworkSecret(""). + Build() + if err != nil { + t.Fatalf("build config: %v", err) + } + + encoded, err := encodeInstanceConfig(config) + if err != nil { + t.Fatalf("encode config: %v", err) + } + want := `[network_identity] +network_name = "default" +network_secret = "" +` + if encoded != want { + t.Fatalf("encoded config:\n%s\nwant:\n%s", encoded, want) + } +} + +func TestInstanceConfigCanExplicitlyDisableSTUNServers(t *testing.T) { + config, err := NewInstanceConfigBuilder("default"). + NetworkSecret(""). + STUNServers(). + STUNServersV6(). + Build() + if err != nil { + t.Fatalf("build config: %v", err) + } + + encoded, err := encodeInstanceConfig(config) + if err != nil { + t.Fatalf("encode config: %v", err) + } + want := `stun_servers = [] +stun_servers_v6 = [] + +[network_identity] +network_name = "default" +network_secret = "" +` + if encoded != want { + t.Fatalf("encoded config:\n%s\nwant:\n%s", encoded, want) + } +} + +func TestInstanceConfigValidation(t *testing.T) { + invalidUTF8 := string([]byte{0xff}) + tests := []struct { + name string + build func() error + wantField string + }{ + { + name: "nil builder", + build: func() error { + var builder *InstanceConfigBuilder + _, err := builder.Build() + return err + }, + wantField: "builder is nil", + }, + { + name: "missing network name", + build: func() error { + _, err := NewInstanceConfigBuilder(""). + NetworkSecret(""). + Build() + return err + }, + wantField: "network.name", + }, + { + name: "invalid network name encoding", + build: func() error { + _, err := NewInstanceConfigBuilder(invalidUTF8). + NetworkSecret(""). + Build() + return err + }, + wantField: "network.name", + }, + { + name: "network secret not specified", + build: func() error { + _, err := NewInstanceConfigBuilder("default").Build() + return err + }, + wantField: "network.secret", + }, + { + name: "invalid network secret encoding", + build: func() error { + _, err := NewInstanceConfigBuilder("default"). + NetworkSecret(invalidUTF8). + Build() + return err + }, + wantField: "network.secret", + }, + { + name: "empty hostname", + build: func() error { + _, err := validInstanceConfigBuilder().Hostname("").Build() + return err + }, + wantField: "hostname", + }, + { + name: "hostname exceeds core limit", + build: func() error { + _, err := validInstanceConfigBuilder(). + Hostname(strings.Repeat("a", 33)). + Build() + return err + }, + wantField: "hostname", + }, + { + name: "invalid IPv4 prefix", + build: func() error { + _, err := validInstanceConfigBuilder(). + IPv4(netip.Prefix{}). + Build() + return err + }, + wantField: "ipv4", + }, + { + name: "IPv6 prefix", + build: func() error { + _, err := validInstanceConfigBuilder(). + IPv4(netip.MustParsePrefix("fd00::1/64")). + Build() + return err + }, + wantField: "ipv4", + }, + { + name: "IPv4 host prefix", + build: func() error { + _, err := validInstanceConfigBuilder(). + IPv4(netip.MustParsePrefix("10.0.0.1/32")). + Build() + return err + }, + wantField: "ipv4", + }, + { + name: "unsupported peer scheme", + build: func() error { + _, err := validInstanceConfigBuilder(). + AddPeers("ws://peer.example.com:11010"). + Build() + return err + }, + wantField: "peers[0]", + }, + { + name: "peer port zero", + build: func() error { + _, err := validInstanceConfigBuilder(). + AddPeers("tcp://peer.example.com:0"). + Build() + return err + }, + wantField: "peers[0]", + }, + { + name: "duplicate peer", + build: func() error { + _, err := validInstanceConfigBuilder(). + AddPeers( + "TCP://peer.example.com:11010", + "tcp://peer.example.com:11010", + ). + Build() + return err + }, + wantField: "peers[1]", + }, + { + name: "listener hostname", + build: func() error { + _, err := validInstanceConfigBuilder(). + AddListeners("tcp://listener.example.com:11010"). + Build() + return err + }, + wantField: "listeners[0]", + }, + { + name: "unsupported port forward protocol", + build: func() error { + _, err := validInstanceConfigBuilder(). + AddPortForwards(PortForwardConfig{ + Protocol: "sctp", + Bind: netip.MustParseAddrPort("127.0.0.1:5202"), + Destination: netip.MustParseAddrPort("10.144.0.20:5201"), + }). + Build() + return err + }, + wantField: "port_forwards[0].protocol", + }, + { + name: "IPv6 port forward bind", + build: func() error { + _, err := validInstanceConfigBuilder(). + AddPortForwards(PortForwardConfig{ + Protocol: PortForwardTCP, + Bind: netip.MustParseAddrPort("[::1]:5202"), + Destination: netip.MustParseAddrPort("10.144.0.20:5201"), + }). + Build() + return err + }, + wantField: "port_forwards[0].bind", + }, + { + name: "zero port forward destination port", + build: func() error { + _, err := validInstanceConfigBuilder(). + AddPortForwards(PortForwardConfig{ + Protocol: PortForwardUDP, + Bind: netip.MustParseAddrPort("127.0.0.1:5202"), + Destination: netip.MustParseAddrPort("10.144.0.20:0"), + }). + Build() + return err + }, + wantField: "port_forwards[0].destination", + }, + { + name: "duplicate port forward", + build: func() error { + forward := PortForwardConfig{ + Protocol: PortForwardTCP, + Bind: netip.MustParseAddrPort("127.0.0.1:5202"), + Destination: netip.MustParseAddrPort("10.144.0.20:5201"), + } + _, err := validInstanceConfigBuilder(). + AddPortForwards(forward, forward). + Build() + return err + }, + wantField: "port_forwards[1]", + }, + { + name: "IPv6 literal in IPv4 STUN list", + build: func() error { + _, err := validInstanceConfigBuilder(). + STUNServers("2001:db8::1"). + Build() + return err + }, + wantField: "stun_servers[0]", + }, + { + name: "IPv4 literal in IPv6 STUN list", + build: func() error { + _, err := validInstanceConfigBuilder(). + STUNServersV6("192.0.2.1"). + Build() + return err + }, + wantField: "stun_servers_v6[0]", + }, + { + name: "duplicate STUN server", + build: func() error { + _, err := validInstanceConfigBuilder(). + STUNServers("stun.example.com", "stun.example.com"). + Build() + return err + }, + wantField: "stun_servers[1]", + }, + { + name: "symmetric UDP without UDP", + build: func() error { + _, err := validInstanceConfigBuilder(). + HolePunching(HolePunchingPolicy{SymmetricUDP: true}). + Build() + return err + }, + wantField: "hole_punching.symmetric_udp", + }, + { + name: "secure mode without shared secret", + build: func() error { + _, err := NewInstanceConfigBuilder("default"). + NetworkSecret(""). + SecureMode(). + Build() + return err + }, + wantField: "secure_mode", + }, + { + name: "invalid manual private key", + build: func() error { + _, err := validInstanceConfigBuilder(). + SecureModeWithPrivateKey(make([]byte, 31)). + Build() + return err + }, + wantField: "secure_mode.private_key", + }, + } + + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + err := test.build() + if err == nil || !strings.Contains(err.Error(), test.wantField) { + t.Fatalf("Build() error = %v, want containing %q", err, test.wantField) + } + }) + } +} + +func TestInstanceConfigCopiesInputsAndRedactsSecrets(t *testing.T) { + privateKey := bytes.Repeat([]byte{7}, 32) + peers := []string{"tcp://peer.example.com:11010"} + builder := NewInstanceConfigBuilder("private-network"). + NetworkSecret("very-secret-value"). + AddPeers(peers...). + SecureModeWithPrivateKey(privateKey) + + config, err := builder.Build() + if err != nil { + t.Fatalf("build config: %v", err) + } + before, err := encodeInstanceConfig(config) + if err != nil { + t.Fatalf("encode config before input mutation: %v", err) + } + + privateKey[0] = 9 + peers[0] = "udp://other.example.com:11010" + builder.NetworkSecret("changed-secret"). + AddPeers("tcp://another.example.com:11010") + after, err := encodeInstanceConfig(config) + if err != nil { + t.Fatalf("encode config after input mutation: %v", err) + } + if after != before { + t.Fatalf("built config changed after mutating inputs:\nbefore:\n%s\nafter:\n%s", before, after) + } + + formatted := []string{ + fmt.Sprintf("%v", config), + fmt.Sprintf("%+v", config), + fmt.Sprintf("%#v", config), + fmt.Sprintf("%v", builder), + fmt.Sprintf("%+v", *builder), + fmt.Sprintf("%#v", *builder), + } + for _, value := range formatted { + if strings.Contains(value, "very-secret-value") || + strings.Contains(value, "changed-secret") { + t.Fatalf("formatted configuration exposed a secret: %s", value) + } + if !strings.Contains(value, "") { + t.Fatalf("formatted configuration was not redacted: %s", value) + } + } +} + +func TestAutomaticSecureModeProducesStableKeyPair(t *testing.T) { + builder := validInstanceConfigBuilder().SecureMode() + first, err := builder.Build() + if err != nil { + t.Fatalf("build first config: %v", err) + } + second, err := builder.Build() + if err != nil { + t.Fatalf("build second config: %v", err) + } + if !bytes.Equal( + first.document.securePrivateKey, + second.document.securePrivateKey, + ) { + t.Fatal("automatic secure-mode key changed between builds") + } + + privateKey, err := ecdh.X25519().NewPrivateKey(first.document.securePrivateKey) + if err != nil { + t.Fatalf("parse generated private key: %v", err) + } + encoded, err := encodeInstanceConfig(first) + if err != nil { + t.Fatalf("encode config: %v", err) + } + privateKeyText := base64.StdEncoding.EncodeToString(privateKey.Bytes()) + publicKeyText := base64.StdEncoding.EncodeToString(privateKey.PublicKey().Bytes()) + if !strings.Contains(encoded, `local_private_key = "`+privateKeyText+`"`) { + t.Fatal("encoded config does not contain generated private key") + } + if !strings.Contains(encoded, `local_public_key = "`+publicKeyText+`"`) { + t.Fatal("encoded config does not contain derived public key") + } +} + +func TestZeroInstanceConfigIsInvalid(t *testing.T) { + if _, err := encodeInstanceConfig(InstanceConfig{}); err == nil { + t.Fatal("zero InstanceConfig was accepted") + } +} + +func validInstanceConfigBuilder() *InstanceConfigBuilder { + return NewInstanceConfigBuilder("default").NetworkSecret("secret") +} diff --git a/easytier-go/internal/host/instance_config_toml.go b/easytier-go/internal/host/instance_config_toml.go new file mode 100644 index 00000000..814b1df1 --- /dev/null +++ b/easytier-go/internal/host/instance_config_toml.go @@ -0,0 +1,142 @@ +package host + +import ( + "crypto/ecdh" + "encoding/base64" + "encoding/json" + "fmt" + "strings" +) + +func encodeInstanceConfig(config InstanceConfig) (string, error) { + if config.document == nil { + return "", invalidInstanceConfig("", "configuration was not built") + } + document := config.document + var encoded strings.Builder + + if document.hostname != nil { + writeTOMLStringField(&encoded, "hostname", *document.hostname) + } + if document.ipv4 != nil { + writeTOMLStringField(&encoded, "ipv4", document.ipv4.String()) + } + if len(document.listeners) != 0 { + writeTOMLStringArrayField(&encoded, "listeners", document.listeners) + } + if document.stunServersSet { + writeTOMLStringArrayField(&encoded, "stun_servers", document.stunServers) + } + if document.stunServersV6Set { + writeTOMLStringArrayField(&encoded, "stun_servers_v6", document.stunServersV6) + } + if encoded.Len() != 0 { + encoded.WriteByte('\n') + } + + encoded.WriteString("[network_identity]\n") + writeTOMLStringField(&encoded, "network_name", document.networkName) + writeTOMLStringField(&encoded, "network_secret", document.networkSecret) + + for _, peer := range document.peers { + encoded.WriteString("\n[[peer]]\n") + writeTOMLStringField(&encoded, "uri", peer) + } + + for _, forward := range document.portForwards { + encoded.WriteString("\n[[port_forward]]\n") + writeTOMLStringField(&encoded, "bind_addr", forward.Bind.String()) + writeTOMLStringField( + &encoded, + "dst_addr", + forward.Destination.String(), + ) + writeTOMLStringField(&encoded, "proto", string(forward.Protocol)) + } + + if document.encryption != nil || + document.p2p != nil || + document.holePunching != nil { + encoded.WriteString("\n[flags]\n") + if document.encryption != nil { + writeTOMLBoolField(&encoded, "enable_encryption", *document.encryption) + } + if document.p2p != nil { + writeTOMLBoolField(&encoded, "disable_p2p", document.p2p.Disable) + writeTOMLBoolField(&encoded, "need_p2p", document.p2p.Need) + writeTOMLBoolField(&encoded, "lazy_p2p", document.p2p.Lazy) + } + if document.holePunching != nil { + writeTOMLBoolField( + &encoded, + "disable_tcp_hole_punching", + !document.holePunching.TCP, + ) + writeTOMLBoolField( + &encoded, + "disable_udp_hole_punching", + !document.holePunching.UDP, + ) + writeTOMLBoolField( + &encoded, + "disable_sym_hole_punching", + !document.holePunching.SymmetricUDP, + ) + } + } + + if document.secureMode != secureModeDisabled { + privateKey, err := ecdh.X25519().NewPrivateKey(document.securePrivateKey) + if err != nil { + return "", invalidInstanceConfig( + "secure_mode.private_key", + "is not a valid X25519 private key", + ) + } + encoded.WriteString("\n[secure_mode]\n") + writeTOMLBoolField(&encoded, "enabled", true) + writeTOMLStringField( + &encoded, + "local_private_key", + base64.StdEncoding.EncodeToString(privateKey.Bytes()), + ) + writeTOMLStringField( + &encoded, + "local_public_key", + base64.StdEncoding.EncodeToString(privateKey.PublicKey().Bytes()), + ) + } + + return encoded.String(), nil +} + +func writeTOMLStringField(encoded *strings.Builder, name string, value string) { + fmt.Fprintf(encoded, "%s = %s\n", name, quoteTOMLString(value)) +} + +func writeTOMLBoolField(encoded *strings.Builder, name string, value bool) { + fmt.Fprintf(encoded, "%s = %t\n", name, value) +} + +func writeTOMLStringArrayField( + encoded *strings.Builder, + name string, + values []string, +) { + fmt.Fprintf(encoded, "%s = [", name) + for index, value := range values { + if index != 0 { + encoded.WriteString(", ") + } + encoded.WriteString(quoteTOMLString(value)) + } + encoded.WriteString("]\n") +} + +func quoteTOMLString(value string) string { + encoded, err := json.Marshal(value) + if err != nil { + panic("encoding a validated Go string as JSON cannot fail") + } + return string(encoded) +} diff --git a/easytier-go/internal/host/management.go b/easytier-go/internal/host/management.go new file mode 100644 index 00000000..9a492d66 --- /dev/null +++ b/easytier-go/internal/host/management.go @@ -0,0 +1,774 @@ +package host + +import ( + "context" + "crypto/rand" + "encoding/binary" + "errors" + "fmt" + "sort" + "strings" + "sync" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" + apiconfig "github.com/EasyTier/EasyTier/easytier-go/proto/api/config" + apiinstance "github.com/EasyTier/EasyTier/easytier-go/proto/api/instance" + "github.com/EasyTier/EasyTier/easytier-go/proto/api/manage" + "github.com/EasyTier/EasyTier/easytier-go/proto/common" + errorpb "github.com/EasyTier/EasyTier/easytier-go/proto/error" + "google.golang.org/protobuf/proto" +) + +const ( + runNetworkInstanceMethod = "api.manage.WebClientService.RunNetworkInstance" + retainNetworkInstanceMethod = "api.manage.WebClientService.RetainNetworkInstance" + collectNetworkInfoMethod = "api.manage.WebClientService.CollectNetworkInfo" + listNetworkInstanceMethod = "api.manage.WebClientService.ListNetworkInstance" + deleteNetworkInstanceMethod = "api.manage.WebClientService.DeleteNetworkInstance" + getNetworkInstanceConfigMethod = "api.manage.WebClientService.GetNetworkInstanceConfig" + listNetworkInstanceMetaMethod = "api.manage.WebClientService.ListNetworkInstanceMeta" + patchConfigMethod = "api.config.ConfigRpc.PatchConfig" + getConfigMethod = "api.config.ConfigRpc.GetConfig" +) + +type instanceOwner uint8 + +const ( + instanceOwnerApplication instanceOwner = iota + instanceOwnerWeb +) + +type managedInstance struct { + id *common.UUID + instance *Instance + owner instanceOwner + config *manage.NetworkConfig + configTOML string + source manage.ConfigSource + name string +} + +type instanceManager struct { + mu sync.RWMutex + mutations sync.Mutex + host *Host + instances map[string]*managedInstance +} + +func newInstanceManager() *instanceManager { + return &instanceManager{instances: make(map[string]*managedInstance)} +} + +func (manager *instanceManager) register(entry *managedInstance) error { + id := uuidString(entry.id) + manager.mu.Lock() + defer manager.mu.Unlock() + if _, exists := manager.instances[id]; exists { + return fmt.Errorf("EasyTier instance %s already exists", id) + } + manager.instances[id] = entry + return nil +} + +func (manager *instanceManager) remove(instance *Instance) { + manager.mu.Lock() + if entry := manager.instances[instance.id]; entry != nil && + entry.instance == instance { + delete(manager.instances, instance.id) + } + manager.mu.Unlock() +} + +func (manager *instanceManager) clear() { + manager.mu.Lock() + manager.instances = make(map[string]*managedInstance) + manager.mu.Unlock() +} + +func (manager *instanceManager) snapshot() []*managedInstance { + manager.mu.RLock() + entries := make([]*managedInstance, 0, len(manager.instances)) + for _, entry := range manager.instances { + snapshot := *entry + entries = append(entries, &snapshot) + } + manager.mu.RUnlock() + sort.Slice(entries, func(i, j int) bool { + return uuidString(entries[i].id) < uuidString(entries[j].id) + }) + return entries +} + +func (manager *instanceManager) handle( + ctx context.Context, + encoded []byte, +) []byte { + started := time.Now() + var envelope common.HostManagementRequest + if err := proto.Unmarshal(encoded, &envelope); err != nil { + return encodeManagementResponse(nil, err, started) + } + if envelope.Rpc == nil { + return encodeManagementResponse( + nil, + fmt.Errorf("host management RPC is required"), + started, + ) + } + response, err := manager.dispatch( + ctx, + envelope.Rpc.FullMethodName, + envelope.Rpc.Request, + envelope.GetPreparedConfig(), + envelope.GetPreparedInstanceId(), + ) + return encodeManagementResponse(response, err, started) +} + +func (manager *instanceManager) dispatch( + ctx context.Context, + method string, + encoded []byte, + preparedConfig string, + preparedInstanceID *common.UUID, +) (proto.Message, error) { + switch method { + case runNetworkInstanceMethod: + request := new(manage.RunNetworkInstanceRequest) + if err := proto.Unmarshal(encoded, request); err != nil { + return nil, err + } + return manager.runNetworkInstance( + ctx, + request, + preparedConfig, + preparedInstanceID, + ) + case retainNetworkInstanceMethod: + request := new(manage.RetainNetworkInstanceRequest) + if err := proto.Unmarshal(encoded, request); err != nil { + return nil, err + } + return manager.retainNetworkInstances(ctx, request) + case collectNetworkInfoMethod: + request := new(manage.CollectNetworkInfoRequest) + if err := proto.Unmarshal(encoded, request); err != nil { + return nil, err + } + return manager.collectNetworkInfo(ctx, request) + case listNetworkInstanceMethod: + request := new(manage.ListNetworkInstanceRequest) + if err := proto.Unmarshal(encoded, request); err != nil { + return nil, err + } + return manager.listNetworkInstances(), nil + case deleteNetworkInstanceMethod: + request := new(manage.DeleteNetworkInstanceRequest) + if err := proto.Unmarshal(encoded, request); err != nil { + return nil, err + } + return manager.deleteNetworkInstances(ctx, request) + case getNetworkInstanceConfigMethod: + request := new(manage.GetNetworkInstanceConfigRequest) + if err := proto.Unmarshal(encoded, request); err != nil { + return nil, err + } + return manager.getNetworkInstanceConfig(request) + case listNetworkInstanceMetaMethod: + request := new(manage.ListNetworkInstanceMetaRequest) + if err := proto.Unmarshal(encoded, request); err != nil { + return nil, err + } + return manager.listNetworkInstanceMeta(request), nil + case patchConfigMethod: + request := new(apiconfig.PatchConfigRequest) + if err := proto.Unmarshal(encoded, request); err != nil { + return nil, err + } + return manager.patchConfig(ctx, request) + case getConfigMethod: + request := new(apiconfig.GetConfigRequest) + if err := proto.Unmarshal(encoded, request); err != nil { + return nil, err + } + return manager.getConfig(request) + default: + return nil, fmt.Errorf("unsupported host management method %q", method) + } +} + +func (manager *instanceManager) runNetworkInstance( + ctx context.Context, + request *manage.RunNetworkInstanceRequest, + preparedConfig string, + preparedInstanceID *common.UUID, +) (*manage.RunNetworkInstanceResponse, error) { + if request.Config == nil { + return nil, fmt.Errorf("config is required") + } + if preparedConfig == "" { + return nil, fmt.Errorf("prepared EasyTier config is required") + } + if preparedInstanceID == nil { + return nil, fmt.Errorf("prepared EasyTier instance ID is required") + } + request.InstId = cloneUUID(preparedInstanceID) + id := uuidString(preparedInstanceID) + request.Config.InstanceId = &id + manager.mutations.Lock() + defer manager.mutations.Unlock() + + manager.mu.RLock() + previous := manager.instances[id] + manager.mu.RUnlock() + if previous != nil { + if previous.owner != instanceOwnerWeb { + return nil, fmt.Errorf("configuration for instance %s is read-only", id) + } + if !request.Overwrite && previous.instance.engine.TerminalError() == nil { + return &manage.RunNetworkInstanceResponse{ + InstId: cloneUUID(request.InstId), + }, nil + } + if err := closeManagedInstance(ctx, previous.instance); err != nil { + return nil, fmt.Errorf("replace EasyTier instance %s: %w", id, err) + } + } + source := request.Source + if source == manage.ConfigSource_ConfigSourceUnspecified && previous != nil { + source = previous.source + } + + entry, err := manager.createWebInstance( + ctx, + request.InstId, + request.Config, + source, + preparedConfig, + ) + if err != nil && previous != nil { + restoreContext, cancel := context.WithTimeout(context.Background(), 10*time.Second) + defer cancel() + _, restoreErr := manager.createWebInstance( + restoreContext, + previous.id, + previous.config, + previous.source, + previous.configTOML, + ) + err = errors.Join(err, restoreErr) + } + if err != nil { + return nil, err + } + return &manage.RunNetworkInstanceResponse{InstId: cloneUUID(entry.id)}, nil +} + +func (manager *instanceManager) createWebInstance( + ctx context.Context, + id *common.UUID, + config *manage.NetworkConfig, + source manage.ConfigSource, + configTOML string, +) (*managedInstance, error) { + runtime, err := manager.host.engine.CreateInstance(ctx, configTOML) + if err != nil { + return nil, err + } + instance := &Instance{ + engine: runtime, + id: uuidString(id), + manager: manager, + } + if err := runtime.Start(ctx); err != nil { + _ = runtime.Close(contextutil.WithoutCancel(ctx)) + return nil, err + } + if source == manage.ConfigSource_ConfigSourceUnspecified { + source = manage.ConfigSource_ConfigSourceUser + } + entry := &managedInstance{ + id: cloneUUID(id), + instance: instance, + owner: instanceOwnerWeb, + config: proto.Clone(config).(*manage.NetworkConfig), + configTOML: configTOML, + source: source, + name: config.GetNetworkName(), + } + if err := manager.register(entry); err != nil { + _ = runtime.Close(contextutil.WithoutCancel(ctx)) + return nil, err + } + return entry, nil +} + +func (manager *instanceManager) patchConfig( + ctx context.Context, + request *apiconfig.PatchConfigRequest, +) (*apiconfig.PatchConfigResponse, error) { + id, err := selectedInstanceID(request.Instance) + if err != nil { + return nil, err + } + key := uuidString(id) + manager.mutations.Lock() + defer manager.mutations.Unlock() + + manager.mu.RLock() + entry := manager.instances[key] + manager.mu.RUnlock() + if entry == nil { + return nil, fmt.Errorf("EasyTier instance %s not found", key) + } + if entry.owner != instanceOwnerWeb { + return nil, fmt.Errorf("configuration for instance %s is read-only", key) + } + if request.Patch == nil { + return new(apiconfig.PatchConfigResponse), nil + } + + response := new(apiconfig.PatchConfigResponse) + patchErr := entry.instance.callRPCRequest( + ctx, + patchConfigMethod, + &apiconfig.PatchConfigRequest{ + Patch: hostedConfigPatch(request.Patch), + Instance: request.Instance, + }, + response, + ) + snapshotContext, cancel := context.WithTimeout( + contextutil.WithoutCancel(ctx), + 10*time.Second, + ) + defer cancel() + effective := new(apiconfig.GetConfigResponse) + if err := entry.instance.callRPCRequest( + snapshotContext, + getConfigMethod, + &apiconfig.GetConfigRequest{Instance: request.Instance}, + effective, + ); err != nil { + return nil, errors.Join( + patchErr, + fmt.Errorf("read effective EasyTier configuration: %w", err), + ) + } + if effective.Config == nil || effective.TomlConfig == "" { + return nil, errors.Join( + patchErr, + fmt.Errorf("EasyTier instance %s returned an incomplete config snapshot", key), + ) + } + + manager.mu.Lock() + if manager.instances[key] != entry { + manager.mu.Unlock() + return nil, errors.Join( + patchErr, + fmt.Errorf("EasyTier instance %s is no longer running", key), + ) + } + entry.config = mergeHostedConfigPatch(entry.config, effective.Config, request.Patch) + entry.configTOML = effective.TomlConfig + manager.mu.Unlock() + if patchErr != nil { + return nil, patchErr + } + return response, nil +} + +func (manager *instanceManager) getConfig( + request *apiconfig.GetConfigRequest, +) (*apiconfig.GetConfigResponse, error) { + id, err := selectedInstanceID(request.Instance) + if err != nil { + return nil, err + } + response, err := manager.getNetworkInstanceConfig( + &manage.GetNetworkInstanceConfigRequest{InstId: id}, + ) + if err != nil { + return nil, err + } + return &apiconfig.GetConfigResponse{Config: response.Config}, nil +} + +func selectedInstanceID( + identifier *apiinstance.InstanceIdentifier, +) (*common.UUID, error) { + id := identifier.GetId() + if id == nil { + return nil, fmt.Errorf("instance ID is required") + } + return id, nil +} + +func hostedConfigPatch( + patch *apiconfig.InstanceConfigPatch, +) *apiconfig.InstanceConfigPatch { + return &apiconfig.InstanceConfigPatch{ + PortForwards: patch.PortForwards, + Acl: patch.Acl, + ProxyNetworks: patch.ProxyNetworks, + DisableRelayData: patch.DisableRelayData, + } +} + +func mergeHostedConfigPatch( + desired *manage.NetworkConfig, + effective *manage.NetworkConfig, + patch *apiconfig.InstanceConfigPatch, +) *manage.NetworkConfig { + merged := proto.Clone(desired).(*manage.NetworkConfig) + runtime := proto.Clone(effective).(*manage.NetworkConfig) + if len(patch.PortForwards) != 0 { + merged.PortForwards = runtime.PortForwards + } + if patch.Acl != nil { + merged.Acl = runtime.Acl + } + if len(patch.ProxyNetworks) != 0 { + merged.ProxyCidrs = runtime.ProxyCidrs + } + if patch.DisableRelayData != nil { + merged.DisableRelayData = runtime.DisableRelayData + } + return merged +} + +func (manager *instanceManager) retainNetworkInstances( + ctx context.Context, + request *manage.RetainNetworkInstanceRequest, +) (*manage.RetainNetworkInstanceResponse, error) { + retained := uuidSet(request.InstIds) + manager.mutations.Lock() + defer manager.mutations.Unlock() + if err := manager.closeWebInstances(ctx, func(id string) bool { + _, keep := retained[id] + return !keep + }); err != nil { + return nil, err + } + return &manage.RetainNetworkInstanceResponse{ + RemainInstIds: manager.instanceIDs(), + }, nil +} + +func (manager *instanceManager) deleteNetworkInstances( + ctx context.Context, + request *manage.DeleteNetworkInstanceRequest, +) (*manage.DeleteNetworkInstanceResponse, error) { + deleted := uuidSet(request.InstIds) + manager.mutations.Lock() + defer manager.mutations.Unlock() + if err := manager.closeWebInstances(ctx, func(id string) bool { + _, remove := deleted[id] + return remove + }); err != nil { + return nil, err + } + return &manage.DeleteNetworkInstanceResponse{ + RemainInstIds: manager.instanceIDs(), + }, nil +} + +func (manager *instanceManager) closeWebInstances( + ctx context.Context, + shouldClose func(string) bool, +) error { + for _, entry := range manager.snapshot() { + if entry.owner != instanceOwnerWeb || + !shouldClose(uuidString(entry.id)) { + continue + } + if err := closeManagedInstance(ctx, entry.instance); err != nil { + return err + } + } + return nil +} + +func closeManagedInstance(ctx context.Context, instance *Instance) error { + alreadyFailed := instance.engine.TerminalError() != nil + err := instance.Close(ctx) + if alreadyFailed && ctx.Err() == nil { + return nil + } + return err +} + +func (manager *instanceManager) listNetworkInstances() *manage.ListNetworkInstanceResponse { + return &manage.ListNetworkInstanceResponse{InstIds: manager.instanceIDs()} +} + +func (manager *instanceManager) instanceIDs() []*common.UUID { + entries := manager.snapshot() + ids := make([]*common.UUID, len(entries)) + for index, entry := range entries { + ids[index] = cloneUUID(entry.id) + } + return ids +} + +func (manager *instanceManager) collectNetworkInfo( + ctx context.Context, + request *manage.CollectNetworkInfoRequest, +) (*manage.CollectNetworkInfoResponse, error) { + included := uuidSet(request.InstIds) + info := make(map[string]*manage.NetworkInstanceRunningInfo) + for _, entry := range manager.snapshot() { + id := uuidString(entry.id) + if len(included) != 0 { + if _, exists := included[id]; !exists { + continue + } + } + snapshot, err := entry.runningInfo(ctx) + if err != nil { + return nil, err + } + info[id] = snapshot + } + return &manage.CollectNetworkInfoResponse{ + Info: &manage.NetworkInstanceRunningInfoMap{Map: info}, + }, nil +} + +func (entry *managedInstance) runningInfo( + ctx context.Context, +) (*manage.NetworkInstanceRunningInfo, error) { + state := entry.instance.State() + running := state != StateCreated && state != StateStopped + info := &manage.NetworkInstanceRunningInfo{ + Running: running, + Events: entry.instance.engine.ManagementEvents(), + } + if err := entry.instance.engine.TerminalError(); err != nil { + message := err.Error() + info.ErrorMsg = &message + } + if state != StateRunning { + return info, nil + } + peers, err := entry.instance.listPeerResponse(ctx) + if err != nil { + return nil, err + } + routes, err := entry.instance.listRouteResponse(ctx) + if err != nil { + return nil, err + } + nodeResponse, err := entry.instance.showNodeInfo(ctx) + if err != nil { + return nil, err + } + foreign, err := entry.instance.foreignNetworkSummary(ctx) + if err != nil { + return nil, err + } + node := nodeResponse.NodeInfo + listeners := make([]*common.Url, len(node.GetListeners())) + for index, listener := range node.GetListeners() { + listeners[index] = &common.Url{Url: listener} + } + var virtualIPv4 *common.Ipv4Inet + for _, route := range routes.Routes { + if route.PeerId == node.GetPeerId() { + virtualIPv4 = route.Ipv4Addr + break + } + } + info.DevName = entry.config.GetDevName() + info.MyNodeInfo = &manage.MyNodeInfo{ + VirtualIpv4: virtualIPv4, + Hostname: node.GetHostname(), + Version: node.GetVersion(), + Ips: node.GetIpList(), + StunInfo: node.GetStunInfo(), + Listeners: listeners, + PeerId: node.GetPeerId(), + } + info.Routes = routes.Routes + info.Peers = peers.PeerInfos + info.PeerRoutePairs = peerRoutePairs(peers.PeerInfos, routes.Routes) + info.ForeignNetworkSummary = foreign.Summary + return info, nil +} + +func (manager *instanceManager) getNetworkInstanceConfig( + request *manage.GetNetworkInstanceConfigRequest, +) (*manage.GetNetworkInstanceConfigResponse, error) { + if request.InstId == nil { + return nil, fmt.Errorf("instance ID is required") + } + id := uuidString(request.InstId) + manager.mu.RLock() + defer manager.mu.RUnlock() + entry := manager.instances[id] + if entry == nil { + return nil, fmt.Errorf("EasyTier instance %s not found", id) + } + if entry.owner != instanceOwnerWeb { + return nil, fmt.Errorf("configuration for instance %s is read-only", id) + } + config := proto.Clone(entry.config).(*manage.NetworkConfig) + return &manage.GetNetworkInstanceConfigResponse{ + Config: config, + Source: entry.source, + }, nil +} + +func (manager *instanceManager) listNetworkInstanceMeta( + request *manage.ListNetworkInstanceMetaRequest, +) *manage.ListNetworkInstanceMetaResponse { + included := uuidSet(request.InstIds) + response := &manage.ListNetworkInstanceMetaResponse{} + for _, entry := range manager.snapshot() { + if _, exists := included[uuidString(entry.id)]; !exists { + continue + } + permission := uint32(0) + if entry.owner == instanceOwnerApplication { + permission = 3 + } + networkName := entry.name + if entry.config != nil { + networkName = entry.config.GetNetworkName() + } + response.Metas = append(response.Metas, &manage.NetworkMeta{ + InstId: cloneUUID(entry.id), + NetworkName: networkName, + ConfigPermission: permission, + InstanceName: entry.name, + Source: entry.source, + }) + } + return response +} + +func encodeManagementResponse( + response proto.Message, + responseErr error, + started time.Time, +) []byte { + runtimeUs := uint64(time.Since(started).Microseconds()) + if runtimeUs == 0 { + runtimeUs = 1 + } + envelope := &common.RpcResponse{ + RuntimeUs: runtimeUs, + } + if responseErr == nil { + envelope.Response, responseErr = proto.Marshal(response) + } + if responseErr != nil { + envelope.Error = &errorpb.Error{ + ErrorKind: &errorpb.Error_ExecuteError{ + ExecuteError: &errorpb.ExecuteError{ + ErrorMessage: responseErr.Error(), + }, + }, + } + } + encoded, err := proto.Marshal(envelope) + if err != nil { + panic("marshal EasyTier RPC response: " + err.Error()) + } + return encoded +} + +func peerRoutePairs( + peers []*apiinstance.PeerInfo, + routes []*apiinstance.Route, +) []*apiinstance.PeerRoutePair { + byID := make(map[uint32]*apiinstance.PeerInfo, len(peers)) + for _, peer := range peers { + byID[peer.PeerId] = peer + } + pairs := make([]*apiinstance.PeerRoutePair, 0, len(routes)) + for _, route := range routes { + if peer := byID[route.PeerId]; peer != nil { + pairs = append(pairs, &apiinstance.PeerRoutePair{ + Route: route, + Peer: peer, + }) + } + } + sort.Slice(pairs, func(i, j int) bool { + left, right := pairs[i].Route, pairs[j].Route + leftPublic := left.GetFeatureFlag().GetIsPublicServer() + rightPublic := right.GetFeatureFlag().GetIsPublicServer() + if leftPublic != rightPublic { + return leftPublic + } + return left.GetIpv4Addr().GetAddress().GetAddr() < + right.GetIpv4Addr().GetAddress().GetAddr() + }) + return pairs +} + +func newInstanceUUID() (*common.UUID, string, error) { + var value [16]byte + if _, err := rand.Read(value[:]); err != nil { + return nil, "", fmt.Errorf("generate EasyTier instance ID: %w", err) + } + value[6] = value[6]&0x0f | 0x40 + value[8] = value[8]&0x3f | 0x80 + id := &common.UUID{ + Part1: binary.BigEndian.Uint32(value[0:4]), + Part2: binary.BigEndian.Uint32(value[4:8]), + Part3: binary.BigEndian.Uint32(value[8:12]), + Part4: binary.BigEndian.Uint32(value[12:16]), + } + return id, uuidString(id), nil +} + +func uuidString(id *common.UUID) string { + var value [16]byte + binary.BigEndian.PutUint32(value[0:4], id.GetPart1()) + binary.BigEndian.PutUint32(value[4:8], id.GetPart2()) + binary.BigEndian.PutUint32(value[8:12], id.GetPart3()) + binary.BigEndian.PutUint32(value[12:16], id.GetPart4()) + return fmt.Sprintf( + "%x-%x-%x-%x-%x", + value[0:4], + value[4:6], + value[6:8], + value[8:10], + value[10:16], + ) +} + +func cloneUUID(id *common.UUID) *common.UUID { + if id == nil { + return nil + } + return &common.UUID{ + Part1: id.Part1, + Part2: id.Part2, + Part3: id.Part3, + Part4: id.Part4, + } +} + +func uuidSet(ids []*common.UUID) map[string]struct{} { + set := make(map[string]struct{}, len(ids)) + for _, id := range ids { + if id != nil { + set[uuidString(id)] = struct{}{} + } + } + return set +} + +func bindInstanceIdentity(config, id, name string) string { + var encoded strings.Builder + writeTOMLStringField(&encoded, "instance_id", id) + writeTOMLStringField(&encoded, "instance_name", name) + encoded.WriteByte('\n') + encoded.WriteString(config) + return encoded.String() +} diff --git a/easytier-go/internal/host/management_test.go b/easytier-go/internal/host/management_test.go new file mode 100644 index 00000000..02bf6fd5 --- /dev/null +++ b/easytier-go/internal/host/management_test.go @@ -0,0 +1,348 @@ +package host + +import ( + "bytes" + "context" + "fmt" + "net/netip" + "testing" + "time" + + apiconfig "github.com/EasyTier/EasyTier/easytier-go/proto/api/config" + apiinstance "github.com/EasyTier/EasyTier/easytier-go/proto/api/instance" + "github.com/EasyTier/EasyTier/easytier-go/proto/api/manage" + "github.com/EasyTier/EasyTier/easytier-go/proto/common" + "google.golang.org/protobuf/encoding/protowire" + "google.golang.org/protobuf/proto" +) + +func TestApplicationInstanceIsReadOnlyToWebManagement(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) + defer cancel() + host, err := New(ctx, Options{}) + if err != nil { + t.Fatalf("create host: %v", err) + } + defer host.Close(ctx) + + instance, err := host.CreateInstance(ctx, managementTestConfig(t, "application")) + if err != nil { + t.Fatalf("create application instance: %v", err) + } + if instance.ID() == "" { + t.Fatal("application instance ID is empty") + } + if got := host.Instances(); len(got) != 1 || got[0] != instance { + t.Fatalf("host instances = %v, want application instance", got) + } + entry := host.manager.snapshot()[0] + meta := host.manager.listNetworkInstanceMeta( + &manage.ListNetworkInstanceMetaRequest{ + InstIds: []*common.UUID{entry.id}, + }, + ) + if len(meta.Metas) != 1 || meta.Metas[0].ConfigPermission != 3 { + t.Fatalf("application metadata = %v, want read-only/no-delete", meta.Metas) + } + if _, err := host.manager.getNetworkInstanceConfig( + &manage.GetNetworkInstanceConfigRequest{InstId: entry.id}, + ); err == nil { + t.Fatal("application config was writable through Web management") + } + response, err := host.manager.deleteNetworkInstances( + ctx, + &manage.DeleteNetworkInstanceRequest{ + InstIds: []*common.UUID{entry.id}, + }, + ) + if err != nil { + t.Fatalf("delete application instance through Web management: %v", err) + } + if len(response.RemainInstIds) != 1 { + t.Fatalf("remaining IDs = %v, want application instance", response.RemainInstIds) + } + if err := instance.Close(ctx); err != nil { + t.Fatalf("close application instance: %v", err) + } + if len(host.Instances()) != 0 { + t.Fatal("closed application instance remained registered") + } +} + +func TestWebManagementRunsCollectsAndDeletesInstance(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) + defer cancel() + host, err := New(ctx, Options{}) + if err != nil { + t.Fatalf("create host: %v", err) + } + defer host.Close(ctx) + + id := &common.UUID{Part1: 1, Part2: 2, Part3: 3, Part4: 4} + idString := uuidString(id) + config := managementTestConfig(t, "managed") + configTOML, err := encodeInstanceConfig(config) + if err != nil { + t.Fatalf("encode managed config: %v", err) + } + networkName := "managed" + networkConfig := &manage.NetworkConfig{ + InstanceId: &idString, + NetworkName: &networkName, + } + unknownConfig := protowire.AppendTag(nil, 1000, protowire.BytesType) + unknownConfig = protowire.AppendString(unknownConfig, "future-config") + networkConfig.ProtoReflect().SetUnknown(unknownConfig) + run := callManagement( + t, + host, + ctx, + runNetworkInstanceMethod, + &manage.RunNetworkInstanceRequest{ + InstId: id, + Config: networkConfig, + Source: manage.ConfigSource_ConfigSourceWeb, + }, + bindInstanceIdentity(configTOML, idString, networkName), + new(manage.RunNetworkInstanceResponse), + ) + if run.(*manage.RunNetworkInstanceResponse).GetInstId() == nil { + t.Fatal("run response omitted instance ID") + } + if instances := host.Instances(); len(instances) != 1 || + instances[0].ID() != idString { + t.Fatalf("host instances = %v, want managed instance %s", instances, idString) + } + listed := callManagement( + t, + host, + ctx, + listNetworkInstanceMethod, + new(manage.ListNetworkInstanceRequest), + "", + new(manage.ListNetworkInstanceResponse), + ).(*manage.ListNetworkInstanceResponse) + if len(listed.InstIds) != 1 { + t.Fatalf("listed IDs = %v, want managed instance", listed.InstIds) + } + metas := callManagement( + t, + host, + ctx, + listNetworkInstanceMetaMethod, + &manage.ListNetworkInstanceMetaRequest{ + InstIds: []*common.UUID{id}, + }, + "", + new(manage.ListNetworkInstanceMetaResponse), + ).(*manage.ListNetworkInstanceMetaResponse) + if len(metas.Metas) != 1 || metas.Metas[0].ConfigPermission != 0 { + t.Fatalf("managed metadata = %v, want writable instance", metas.Metas) + } + retained := callManagement( + t, + host, + ctx, + retainNetworkInstanceMethod, + &manage.RetainNetworkInstanceRequest{ + InstIds: []*common.UUID{id}, + }, + "", + new(manage.RetainNetworkInstanceResponse), + ).(*manage.RetainNetworkInstanceResponse) + if len(retained.RemainInstIds) != 1 { + t.Fatalf("retained IDs = %v, want managed instance", retained.RemainInstIds) + } + + collected := callManagement( + t, + host, + ctx, + collectNetworkInfoMethod, + &manage.CollectNetworkInfoRequest{InstIds: []*common.UUID{id}}, + "", + new(manage.CollectNetworkInfoResponse), + ).(*manage.CollectNetworkInfoResponse) + info := collected.GetInfo().GetMap()[idString] + if info == nil || !info.Running || info.MyNodeInfo == nil { + t.Fatalf("managed instance status = %v, want running node info", info) + } + if info.MyNodeInfo.Hostname != "managed-host" || + info.MyNodeInfo.PeerId == 0 { + t.Fatalf("managed node info = %v, want live node identity", info.MyNodeInfo) + } + + managedConfig := callManagement( + t, + host, + ctx, + getNetworkInstanceConfigMethod, + &manage.GetNetworkInstanceConfigRequest{InstId: id}, + "", + new(manage.GetNetworkInstanceConfigResponse), + ).(*manage.GetNetworkInstanceConfigResponse) + if managedConfig.GetConfig().GetNetworkName() != networkName || + managedConfig.Source != manage.ConfigSource_ConfigSourceWeb { + t.Fatalf("managed config response = %v", managedConfig) + } + if unknown := managedConfig.Config.ProtoReflect().GetUnknown(); !bytes.Equal( + unknown, + unknownConfig, + ) { + t.Fatalf("managed config unknown fields = %x, want %x", unknown, unknownConfig) + } + + disableRelayData := true + unsupportedHostname := "ignored-hostname" + identifier := &apiinstance.InstanceIdentifier{ + Selector: &apiinstance.InstanceIdentifier_Id{Id: id}, + } + callManagement( + t, + host, + ctx, + patchConfigMethod, + &apiconfig.PatchConfigRequest{ + Instance: identifier, + Patch: &apiconfig.InstanceConfigPatch{ + Hostname: &unsupportedHostname, + DisableRelayData: &disableRelayData, + }, + }, + "", + new(apiconfig.PatchConfigResponse), + ) + patchedConfig := callManagement( + t, + host, + ctx, + getConfigMethod, + &apiconfig.GetConfigRequest{Instance: identifier}, + "", + new(apiconfig.GetConfigResponse), + ).(*apiconfig.GetConfigResponse).Config + if patchedConfig == nil || !patchedConfig.GetDisableRelayData() { + t.Fatalf("patched config = %v, want relay data disabled", patchedConfig) + } + if patchedConfig.Hostname != nil { + t.Fatalf("unsupported hostname patch was applied: %q", patchedConfig.GetHostname()) + } + if unknown := patchedConfig.ProtoReflect().GetUnknown(); !bytes.Equal( + unknown, + unknownConfig, + ) { + t.Fatalf("patched config unknown fields = %x, want %x", unknown, unknownConfig) + } + + originalInstance := host.manager.snapshot()[0].instance + replacementConfig := proto.Clone(networkConfig).(*manage.NetworkConfig) + _, err = host.manager.runNetworkInstance( + ctx, + &manage.RunNetworkInstanceRequest{ + InstId: id, + Config: replacementConfig, + Overwrite: true, + Source: manage.ConfigSource_ConfigSourceWeb, + }, + "[", + id, + ) + if err == nil { + t.Fatal("invalid replacement config unexpectedly succeeded") + } + restoredEntries := host.manager.snapshot() + if len(restoredEntries) != 1 || restoredEntries[0].instance == originalInstance { + t.Fatalf("restored entries = %v, want one replacement instance", restoredEntries) + } + effectiveConfig := new(apiconfig.GetConfigResponse) + if err := restoredEntries[0].instance.callRPCRequest( + ctx, + getConfigMethod, + &apiconfig.GetConfigRequest{Instance: identifier}, + effectiveConfig, + ); err != nil { + t.Fatalf("get restored runtime config: %v", err) + } + if effectiveConfig.Config == nil || + !effectiveConfig.Config.GetDisableRelayData() { + t.Fatalf("restored runtime config = %v, want relay data disabled", effectiveConfig.Config) + } + if effectiveConfig.TomlConfig == "" || + effectiveConfig.TomlConfig != restoredEntries[0].configTOML { + t.Fatal("restored TOML config does not match the running Core") + } + + deleted := callManagement( + t, + host, + ctx, + deleteNetworkInstanceMethod, + &manage.DeleteNetworkInstanceRequest{InstIds: []*common.UUID{id}}, + "", + new(manage.DeleteNetworkInstanceResponse), + ).(*manage.DeleteNetworkInstanceResponse) + if len(deleted.RemainInstIds) != 0 || len(host.Instances()) != 0 { + t.Fatalf("managed instance remained after delete: %v", deleted.RemainInstIds) + } +} + +func callManagement( + t *testing.T, + host *Host, + ctx context.Context, + method string, + request proto.Message, + preparedConfig string, + response proto.Message, +) proto.Message { + t.Helper() + encodedRequest, err := proto.Marshal(request) + if err != nil { + t.Fatalf("encode %s request: %v", method, err) + } + var prepared *string + var preparedInstanceID *common.UUID + if preparedConfig != "" { + prepared = &preparedConfig + } + if request, ok := request.(*manage.RunNetworkInstanceRequest); ok { + preparedInstanceID = request.InstId + } + encodedEnvelope, err := proto.Marshal(&common.HostManagementRequest{ + Rpc: &common.DirectRpcRequest{ + FullMethodName: method, + Request: encodedRequest, + }, + PreparedConfig: prepared, + PreparedInstanceId: preparedInstanceID, + }) + if err != nil { + t.Fatalf("encode %s envelope: %v", method, err) + } + var result common.RpcResponse + if err := proto.Unmarshal(host.manager.handle(ctx, encodedEnvelope), &result); err != nil { + t.Fatalf("decode %s envelope: %v", method, err) + } + if result.Error != nil { + t.Fatalf("%s failed: %v", method, result.Error) + } + if err := proto.Unmarshal(result.Response, response); err != nil { + t.Fatalf("decode %s response: %v", method, err) + } + return response +} + +func managementTestConfig(t *testing.T, name string) InstanceConfig { + t.Helper() + config, err := NewInstanceConfigBuilder(name). + NetworkSecret("test"). + Hostname(fmt.Sprintf("%s-host", name)). + IPv4(netip.MustParsePrefix("10.144.0.1/24")). + P2P(P2PPolicy{Disable: true}). + Encryption(false). + Build() + if err != nil { + t.Fatalf("build management test config: %v", err) + } + return config +} diff --git a/easytier-go/internal/host/rpc.go b/easytier-go/internal/host/rpc.go new file mode 100644 index 00000000..61edd1dc --- /dev/null +++ b/easytier-go/internal/host/rpc.go @@ -0,0 +1,169 @@ +package host + +import ( + "context" + "fmt" + "time" + + apiinstance "github.com/EasyTier/EasyTier/easytier-go/proto/api/instance" + "github.com/EasyTier/EasyTier/easytier-go/proto/common" + "google.golang.org/protobuf/proto" +) + +const ( + listPeerRPCMethod = "api.instance.PeerManageRpc.ListPeer" + listRouteRPCMethod = "api.instance.PeerManageRpc.ListRoute" + showNodeInfoRPCMethod = "api.instance.PeerManageRpc.ShowNodeInfo" + foreignNetworkSummaryRPCMethod = "api.instance.PeerManageRpc.GetForeignNetworkSummary" +) + +// PeerInfo describes one peer visible to an EasyTier instance. +type PeerInfo = apiinstance.PeerInfo + +// Route describes one route visible to an EasyTier instance. +type Route = apiinstance.Route + +// ListPeer returns the peers visible to this EasyTier instance. +func (instance *Instance) ListPeer( + ctx context.Context, +) ([]*PeerInfo, error) { + response, err := instance.listPeerResponse(ctx) + if err != nil { + return nil, err + } + return response.PeerInfos, nil +} + +// ListRoute returns the routing table visible to this EasyTier instance. +func (instance *Instance) ListRoute( + ctx context.Context, +) ([]*Route, error) { + response, err := instance.listRouteResponse(ctx) + if err != nil { + return nil, err + } + return response.Routes, nil +} + +func (instance *Instance) listPeerResponse( + ctx context.Context, +) (*apiinstance.ListPeerResponse, error) { + response := new(apiinstance.ListPeerResponse) + if err := instance.callRPC(ctx, listPeerRPCMethod, response); err != nil { + return nil, err + } + return response, nil +} + +func (instance *Instance) listRouteResponse( + ctx context.Context, +) (*apiinstance.ListRouteResponse, error) { + response := new(apiinstance.ListRouteResponse) + if err := instance.callRPC(ctx, listRouteRPCMethod, response); err != nil { + return nil, err + } + return response, nil +} + +func (instance *Instance) showNodeInfo( + ctx context.Context, +) (*apiinstance.ShowNodeInfoResponse, error) { + response := new(apiinstance.ShowNodeInfoResponse) + if err := instance.callRPC(ctx, showNodeInfoRPCMethod, response); err != nil { + return nil, err + } + return response, nil +} + +func (instance *Instance) foreignNetworkSummary( + ctx context.Context, +) (*apiinstance.GetForeignNetworkSummaryResponse, error) { + response := new(apiinstance.GetForeignNetworkSummaryResponse) + if err := instance.callRPC( + ctx, + foreignNetworkSummaryRPCMethod, + response, + ); err != nil { + return nil, err + } + return response, nil +} + +func (instance *Instance) callRPC( + ctx context.Context, + fullMethodName string, + response proto.Message, +) error { + return instance.callRPCRequest(ctx, fullMethodName, nil, response) +} + +func (instance *Instance) callRPCRequest( + ctx context.Context, + fullMethodName string, + request proto.Message, + response proto.Message, +) error { + if instance == nil || instance.engine == nil { + return fmt.Errorf("call RPC through nil EasyTier instance") + } + if ctx == nil { + return fmt.Errorf("call EasyTier RPC with nil context") + } + if err := ctx.Err(); err != nil { + return err + } + var timeoutMillis *uint64 + if deadline, exists := ctx.Deadline(); exists { + remaining := time.Until(deadline) + if remaining <= 0 { + return context.DeadlineExceeded + } + millis := uint64(remaining / time.Millisecond) + if remaining%time.Millisecond != 0 { + millis++ + } + timeoutMillis = &millis + } + var payload []byte + var err error + if request != nil { + payload, err = proto.Marshal(request) + if err != nil { + return fmt.Errorf("encode EasyTier RPC %s request: %w", fullMethodName, err) + } + } + encodedRequest, err := proto.Marshal(&common.DirectRpcRequest{ + FullMethodName: fullMethodName, + Request: payload, + TimeoutMs: timeoutMillis, + }) + if err != nil { + return fmt.Errorf("encode EasyTier RPC envelope: %w", err) + } + encodedResponse, err := instance.engine.RPC(ctx, encodedRequest) + if contextErr := ctx.Err(); contextErr != nil { + return contextErr + } + if err != nil { + return err + } + var envelope common.RpcResponse + if err := proto.Unmarshal(encodedResponse, &envelope); err != nil { + return fmt.Errorf("decode EasyTier RPC %s response: %w", fullMethodName, err) + } + if envelope.Error != nil { + return fmt.Errorf( + "EasyTier RPC %s failed: %s", + fullMethodName, + envelope.Error, + ) + } + if err := proto.Unmarshal(envelope.Response, response); err != nil { + return fmt.Errorf( + "decode EasyTier RPC %s payload: %w", + fullMethodName, + err, + ) + } + return nil +} diff --git a/easytier-go/internal/host/web_client.go b/easytier-go/internal/host/web_client.go new file mode 100644 index 00000000..211ddf4c --- /dev/null +++ b/easytier-go/internal/host/web_client.go @@ -0,0 +1,65 @@ +package host + +import ( + "context" + "fmt" + "os" + "runtime" + + "github.com/EasyTier/EasyTier/easytier-go/internal/engine" +) + +type WebClientOptions struct { + // Endpoint is a tcp:// or udp:// config-server URL, or a shorthand token. + Endpoint string + // MachineID is the stable UUID used to identify this host. + MachineID string + Hostname string + SecureMode bool +} + +type WebClient struct { + engine *engine.WebClient +} + +// ConnectWebClient connects this Host to an EasyTier configuration server. +func (host *Host) ConnectWebClient( + ctx context.Context, + options WebClientOptions, +) (*WebClient, error) { + if host == nil || host.engine == nil { + return nil, fmt.Errorf("connect WebClient with nil EasyTier host") + } + if ctx == nil { + return nil, fmt.Errorf("connect EasyTier WebClient with nil context") + } + if options.Hostname == "" { + hostname, err := os.Hostname() + if err != nil { + return nil, fmt.Errorf("resolve WebClient hostname: %w", err) + } + options.Hostname = hostname + } + client, err := host.engine.CreateWebClient(ctx, engine.WebClientOptions{ + Endpoint: options.Endpoint, + MachineID: options.MachineID, + Hostname: options.Hostname, + SecureMode: options.SecureMode, + OSType: runtime.GOOS, + }) + if err != nil { + return nil, err + } + return &WebClient{engine: client}, nil +} + +func (client *WebClient) Connected() bool { + return client != nil && client.engine != nil && client.engine.Connected() +} + +func (client *WebClient) Close(ctx context.Context) error { + if client == nil || client.engine == nil { + return nil + } + return client.engine.Close(ctx) +} diff --git a/easytier-go/internal/hostabi/adapter.go b/easytier-go/internal/hostabi/adapter.go new file mode 100644 index 00000000..abee2952 --- /dev/null +++ b/easytier-go/internal/hostabi/adapter.go @@ -0,0 +1,157 @@ +package hostabi + +import ( + "context" + "fmt" + + "github.com/EasyTier/EasyTier/easytier-go/internal/reactor" + "github.com/metacubex/wazero" +) + +const importModule = "easytier_host" + +type Adapter struct { + reactor *reactor.Reactor + aeads aeadCache +} + +func New(runtime *reactor.Reactor) (*Adapter, error) { + if runtime == nil { + return nil, fmt.Errorf("create host ABI adapter with nil reactor") + } + return &Adapter{reactor: runtime}, nil +} + +func (adapter *Adapter) Instantiate(ctx context.Context, runtime wazero.Runtime) error { + if runtime == nil { + return fmt.Errorf("instantiate host ABI with nil wazero runtime") + } + _, err := runtime.NewHostModuleBuilder(importModule). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.emitEventFunction(), + emitEventParameterTypes, + hostI32ResultTypes, + ). + Export("emit_event"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.cryptoAEADFunction(false), + cryptoAEADParameterTypes, + hostI32ResultTypes, + ). + Export("crypto_aead_seal"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.cryptoAEADFunction(true), + cryptoAEADParameterTypes, + hostI32ResultTypes, + ). + Export("crypto_aead_open"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.startReadFunction(), + startUDPReceiveParameterTypes, + hostI32ResultTypes, + ). + Export("start_read"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.takeReadFunction(), + takeReadParameterTypes, + hostI32ResultTypes, + ). + Export("take_read"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.startWriteFunction(), + startWriteParameterTypes, + hostI32ResultTypes, + ). + Export("start_write"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.takeWriteFunction(), + operationParameterTypes, + hostI32ResultTypes, + ). + Export("take_write"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.startUDPReceiveFunction(), + startUDPReceiveParameterTypes, + hostI32ResultTypes, + ). + Export("start_udp_recv"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.takeUDPReceiveFunction(), + takeUDPReceiveParameterTypes, + hostI32ResultTypes, + ). + Export("take_udp_recv"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.tryUDPSendFunction(), + tryUDPSendParameterTypes, + hostI32ResultTypes, + ). + Export("try_udp_send"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.startUDPSendReadyFunction(), + handleOperationParameterTypes, + hostI32ResultTypes, + ). + Export("start_udp_send_ready"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.takeUDPSendReadyFunction(), + operationParameterTypes, + hostI32ResultTypes, + ). + Export("take_udp_send_ready"). + NewFunctionBuilder().WithFunc(adapter.startTCPConnect).Export("start_tcp_connect"). + NewFunctionBuilder().WithFunc(adapter.takeTCPConnect).Export("take_tcp_connect"). + NewFunctionBuilder().WithFunc(adapter.startUDPBind).Export("start_udp_bind"). + NewFunctionBuilder().WithFunc(adapter.takeUDPBind).Export("take_udp_bind"). + NewFunctionBuilder().WithFunc(adapter.startTCPListen).Export("start_tcp_bind"). + NewFunctionBuilder().WithFunc(adapter.takeTCPListen).Export("take_tcp_bind"). + NewFunctionBuilder().WithFunc(adapter.startTCPAccept).Export("start_tcp_accept"). + NewFunctionBuilder().WithFunc(adapter.takeTCPAccept).Export("take_tcp_accept"). + NewFunctionBuilder().WithFunc(adapter.startDNSAddress).Export("start_dns_resolve"). + NewFunctionBuilder().WithFunc(adapter.takeDNSAddress).Export("take_dns_resolve"). + NewFunctionBuilder().WithFunc(adapter.startDNSTXT).Export("start_dns_txt"). + NewFunctionBuilder().WithFunc(adapter.takeDNSTXT).Export("take_dns_txt"). + NewFunctionBuilder().WithFunc(adapter.startDNSSRV).Export("start_dns_srv"). + NewFunctionBuilder().WithFunc(adapter.takeDNSSRV).Export("take_dns_srv"). + NewFunctionBuilder().WithFunc(adapter.startLocalAddrForRemote).Export("start_local_addr_for_remote"). + NewFunctionBuilder().WithFunc(adapter.takeLocalAddrForRemote).Export("take_local_addr_for_remote"). + NewFunctionBuilder().WithFunc(adapter.startManagement).Export("start_management_call"). + NewFunctionBuilder().WithFunc(adapter.takeManagement).Export("take_management_call"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.tryPacketWriteFunction(), + tryPacketWriteParameterTypes, + hostI32ResultTypes, + ). + Export("try_packet_write"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.startPacketWriteReadyFunction(), + handleOperationParameterTypes, + hostI32ResultTypes, + ). + Export("start_packet_write_ready"). + NewFunctionBuilder(). + WithGoModuleFunction( + adapter.takePacketWriteReadyFunction(), + operationParameterTypes, + hostI32ResultTypes, + ). + Export("take_packet_write_ready"). + NewFunctionBuilder().WithFunc(adapter.cancelOperation).Export("cancel_operation"). + NewFunctionBuilder().WithFunc(adapter.closeHandle).Export("close"). + Instantiate(ctx) + return err +} diff --git a/easytier-go/internal/hostabi/conformance_test.go b/easytier-go/internal/hostabi/conformance_test.go new file mode 100644 index 00000000..42f6e996 --- /dev/null +++ b/easytier-go/internal/hostabi/conformance_test.go @@ -0,0 +1,546 @@ +package hostabi + +import ( + "context" + "fmt" + "io" + "net" + "net/netip" + "os" + "path/filepath" + "sync" + "testing" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" + "github.com/EasyTier/EasyTier/easytier-go/internal/reactor" + "github.com/EasyTier/EasyTier/easytier-go/platform" + "github.com/metacubex/wazero" + "github.com/metacubex/wazero/api" + "github.com/metacubex/wazero/imports/wasi_snapshot_preview1" +) + +const ( + probeTimerProgress = 1 << 0 + probeSecondSocketProgress = 1 << 1 + probePendingReadCompleted = 1 << 2 + probePendingReadIsolated = 1 << 3 + probeDone = 1 << 4 + probeError = 1 << 31 +) + +func TestStreamABIConformance(t *testing.T) { + const ( + pendingHandle uint64 = 1<<40 | 1 + activeHandle uint64 = 1<<40 | 2 + ) + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) + defer cancel() + pendingHost, pendingPeer := net.Pipe() + activeHost, activePeer := net.Pipe() + defer pendingPeer.Close() + defer activePeer.Close() + hostReactor := reactor.New(ctx, reactor.Options{ + InitialStreams: map[uint64]net.Conn{ + pendingHandle: pendingHost, + activeHandle: activeHost, + }, + }) + defer hostReactor.Close() + module := instantiateProbe(t, ctx, hostReactor) + + results, err := module.ExportedFunction("init_opaque_probe").Call( + ctx, + pendingHandle, + activeHandle, + ) + requireStatus(t, "initialize stream probe", results, err, 0) + status := driveProbe(t, ctx, module, "drive_opaque_probe") + + echo := make(chan error, 1) + go func() { + if err := activePeer.SetDeadline(time.Now().Add(10 * time.Second)); err != nil { + echo <- err + return + } + if _, err := activePeer.Write([]byte{0x5a}); err != nil { + echo <- err + return + } + got := make([]byte, 1) + if _, err := io.ReadFull(activePeer, got); err != nil { + echo <- err + return + } + if got[0] != 0x5a { + echo <- fmt.Errorf("echo = %x, want 5a", got) + return + } + echo <- nil + }() + + for status&probeSecondSocketProgress == 0 { + waitCompletion(t, ctx, hostReactor) + status = driveProbe(t, ctx, module, "drive_opaque_probe") + } + for status&probeDone == 0 { + timer := time.NewTimer(5 * time.Millisecond) + select { + case <-hostReactor.Completions(): + stopTimer(timer) + case <-timer.C: + case <-ctx.Done(): + stopTimer(timer) + t.Fatalf("wait for stream probe: %v", ctx.Err()) + } + status = driveProbe(t, ctx, module, "drive_opaque_probe") + } + want := uint32( + probeTimerProgress | + probeSecondSocketProgress | + probePendingReadIsolated | + probeDone, + ) + if status != want || status&probePendingReadCompleted != 0 { + t.Fatalf("stream probe status = 0x%x, want 0x%x", status, want) + } + select { + case err := <-echo: + if err != nil { + t.Fatal(err) + } + case <-ctx.Done(): + t.Fatalf("wait for stream echo: %v", ctx.Err()) + } +} + +func TestUDPABIConformance(t *testing.T) { + const handle uint64 = 1<<40 | 3 + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) + defer cancel() + hostPacket, err := net.ListenPacket("udp4", "127.0.0.1:0") + if err != nil { + t.Fatalf("listen host UDP: %v", err) + } + peerPacket, err := net.ListenPacket("udp4", "127.0.0.1:0") + if err != nil { + hostPacket.Close() + t.Fatalf("listen peer UDP: %v", err) + } + defer peerPacket.Close() + writes := make(chan packetWrite, 1) + hostReactor := reactor.New(ctx, reactor.Options{ + InitialDatagrams: map[uint64]net.PacketConn{handle: &recordingPacketConn{ + PacketConn: hostPacket, + writes: writes, + }}, + }) + defer hostReactor.Close() + module := instantiateProbe(t, ctx, hostReactor) + + results, err := module.ExportedFunction("init_udp_probe").Call(ctx, handle) + requireStatus(t, "initialize UDP probe", results, err, 0) + if status := driveProbe(t, ctx, module, "drive_udp_probe"); status != 0 { + t.Fatalf("initial UDP status = 0x%x", status) + } + if err := peerPacket.SetDeadline(time.Now().Add(10 * time.Second)); err != nil { + t.Fatal(err) + } + if _, err := peerPacket.WriteTo([]byte("udp"), hostPacket.LocalAddr()); err != nil { + t.Fatalf("send UDP payload: %v", err) + } + waitCompletion(t, ctx, hostReactor) + if status := driveProbe(t, ctx, module, "drive_udp_probe"); status != probeDone { + t.Fatalf("UDP probe status = 0x%x, want 0x%x", status, probeDone) + } + select { + case write := <-writes: + if write.err != nil { + t.Fatalf("host UDP write to %v: %v", write.peer, write.err) + } + if write.peer.String() != peerPacket.LocalAddr().String() { + t.Fatalf("host UDP peer = %v, want %v", write.peer, peerPacket.LocalAddr()) + } + case <-ctx.Done(): + t.Fatalf("wait for host UDP write: %v", ctx.Err()) + } + buffer := make([]byte, 16) + n, source, err := peerPacket.ReadFrom(buffer) + if err != nil { + t.Fatalf("read UDP echo: %v", err) + } + if string(buffer[:n]) != "udp" || source.String() != hostPacket.LocalAddr().String() { + t.Fatalf("UDP echo = %q from %v", buffer[:n], source) + } +} + +type packetWrite struct { + peer net.Addr + err error +} + +type recordingPacketConn struct { + net.PacketConn + writes chan<- packetWrite +} + +func (connection *recordingPacketConn) WriteTo( + packet []byte, + peer net.Addr, +) (int, error) { + written, err := connection.PacketConn.WriteTo(packet, peer) + connection.writes <- packetWrite{peer: peer, err: err} + return written, err +} + +type probeDNSResolver struct { + mu sync.Mutex + queries []platform.DNSQuery + addressStarted chan struct{} + releaseAddress chan struct{} + startOnce sync.Once +} + +func (resolver *probeDNSResolver) record(query platform.DNSQuery) { + resolver.mu.Lock() + resolver.queries = append(resolver.queries, query) + resolver.mu.Unlock() +} + +func (resolver *probeDNSResolver) LookupIP( + ctx context.Context, + query platform.DNSQuery, +) ([]netip.Addr, error) { + resolver.record(query) + resolver.startOnce.Do(func() { close(resolver.addressStarted) }) + select { + case <-resolver.releaseAddress: + case <-ctx.Done(): + return nil, ctx.Err() + } + return []netip.Addr{ + netip.MustParseAddr("192.0.2.1"), + netip.MustParseAddr("2001:db8::1"), + }, nil +} + +func (resolver *probeDNSResolver) LookupTXT( + _ context.Context, + query platform.DNSQuery, +) (string, error) { + resolver.record(query) + return "tcp://peer.example:11010", nil +} + +func (resolver *probeDNSResolver) LookupSRV( + _ context.Context, + query platform.DNSQuery, +) ([]*net.SRV, error) { + resolver.record(query) + return []*net.SRV{{ + Target: "peer.example.", + Port: 11010, + Priority: 10, + Weight: 20, + }}, nil +} + +func TestDNSABIConformance(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) + defer cancel() + resolver := &probeDNSResolver{ + addressStarted: make(chan struct{}), + releaseAddress: make(chan struct{}), + } + hostReactor := reactor.New(ctx, reactor.Options{ + Services: platform.Services{DNS: resolver}, + }) + defer hostReactor.Close() + module := instantiateProbe(t, ctx, hostReactor) + + results, err := module.ExportedFunction("init_dns_probe").Call(ctx) + requireStatus(t, "initialize DNS probe", results, err, 0) + if status := driveProbe(t, ctx, module, "drive_dns_probe"); status != 0 { + t.Fatalf("initial DNS status = 0x%x", status) + } + select { + case <-resolver.addressStarted: + case <-ctx.Done(): + t.Fatalf("wait for DNS lookup: %v", ctx.Err()) + } + select { + case <-hostReactor.Completions(): + t.Fatal("DNS completed before resolver release") + default: + } + close(resolver.releaseAddress) + + status := uint32(0) + for status&probeDone == 0 { + waitCompletion(t, ctx, hostReactor) + status = driveProbe(t, ctx, module, "drive_dns_probe") + } + resolver.mu.Lock() + queries := append([]platform.DNSQuery(nil), resolver.queries...) + resolver.mu.Unlock() + if len(queries) != 3 { + t.Fatalf("DNS query count = %d, want 3", len(queries)) + } + assertDNSQuery(t, queries[0], "peer.example", 0, uint32Pointer(7), stringPointer("mihomo")) + assertDNSQuery(t, queries[1], "_easytier.example", 4, nil, nil) + assertDNSQuery(t, queries[2], "_easytier._udp.example", 6, uint32Pointer(9), stringPointer("")) +} + +type probeEnvironment struct { + mu sync.Mutex + remote *net.UDPAddr + context platform.SocketContext + started chan struct{} + released chan struct{} +} + +func (environment *probeEnvironment) LocalAddrForRemote( + ctx context.Context, + remote *net.UDPAddr, + socketContext platform.SocketContext, +) (net.Addr, error) { + environment.mu.Lock() + environment.remote = remote + environment.context = socketContext + environment.mu.Unlock() + close(environment.started) + select { + case <-environment.released: + case <-ctx.Done(): + return nil, ctx.Err() + } + return &net.UDPAddr{IP: net.ParseIP("192.0.2.10"), Port: 40000}, nil +} + +func TestEnvironmentABIConformance(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) + defer cancel() + environment := &probeEnvironment{ + started: make(chan struct{}), + released: make(chan struct{}), + } + hostReactor := reactor.New(ctx, reactor.Options{ + Services: platform.Services{Environment: environment}, + }) + defer hostReactor.Close() + module := instantiateProbe(t, ctx, hostReactor) + + results, err := module.ExportedFunction("init_environment_probe").Call(ctx) + requireStatus(t, "initialize environment probe", results, err, 0) + if status := driveProbe(t, ctx, module, "drive_environment_probe"); status != 0 { + t.Fatalf("initial environment status = 0x%x", status) + } + select { + case <-environment.started: + case <-ctx.Done(): + t.Fatalf("wait for environment operation: %v", ctx.Err()) + } + close(environment.released) + waitCompletion(t, ctx, hostReactor) + if status := driveProbe(t, ctx, module, "drive_environment_probe"); status != probeDone { + t.Fatalf("environment status = 0x%x, want 0x%x", status, probeDone) + } + environment.mu.Lock() + defer environment.mu.Unlock() + if environment.remote.String() != "203.0.113.2:443" || + environment.context.IPVersion != platform.IPVersionBoth || + environment.context.SocketMark != nil || + environment.context.NetNS != nil { + t.Fatalf( + "environment request = remote %v, context %#v", + environment.remote, + environment.context, + ) + } +} + +func TestPacketABIBackpressure(t *testing.T) { + ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) + defer cancel() + hostReactor := reactor.New(ctx, reactor.Options{}) + defer hostReactor.Close() + handle, err := hostReactor.RegisterPacketSink(1) + if err != nil { + t.Fatalf("register packet sink: %v", err) + } + module := instantiateProbe(t, ctx, hostReactor) + results, err := module.ExportedFunction("init_packet_probe").Call(ctx, handle) + requireStatus(t, "initialize packet probe", results, err, 0) + if status := driveProbe(t, ctx, module, "drive_packet_probe"); status != 0 { + t.Fatalf("initial packet status = 0x%x", status) + } + select { + case <-hostReactor.Completions(): + t.Fatal("packet writer became ready while sink was full") + default: + } + first, err := hostReactor.ReceivePacket(ctx, handle) + if err != nil || string(first) != "first-packet" { + t.Fatalf("first packet = %q, error %v", first, err) + } + waitCompletion(t, ctx, hostReactor) + if status := driveProbe(t, ctx, module, "drive_packet_probe"); status != probeDone { + t.Fatalf("packet status = 0x%x, want 0x%x", status, probeDone) + } + second, err := hostReactor.ReceivePacket(ctx, handle) + if err != nil || string(second) != "second-packet" { + t.Fatalf("second packet = %q, error %v", second, err) + } +} + +func TestUDPMetadataWireFormat(t *testing.T) { + expected := [udpMetadataLen]byte{ + 0x04, 0xc0, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x05, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xc6, 0x33, 0x64, 0x02, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + } + encoded, err := encodeUDPMetadata( + &net.UDPAddr{IP: net.IPv4(192, 0, 2, 1), Port: 11013}, + net.IPv4(198, 51, 100, 2), + 0, + ) + if err != nil { + t.Fatal(err) + } + if encoded != expected { + t.Fatalf("UDP metadata = %x, want %x", encoded, expected) + } +} + +func instantiateProbe( + t *testing.T, + ctx context.Context, + hostReactor *reactor.Reactor, +) api.Module { + t.Helper() + runtime := wazero.NewRuntimeWithConfig( + ctx, + wazero.NewRuntimeConfig().WithCloseOnContextDone(true), + ) + t.Cleanup(func() { + if err := runtime.Close(contextutil.WithoutCancel(ctx)); err != nil { + t.Errorf("close probe runtime: %v", err) + } + }) + adapter, err := New(hostReactor) + if err != nil { + t.Fatalf("create host ABI adapter: %v", err) + } + if err := adapter.Instantiate(ctx, runtime); err != nil { + t.Fatalf("instantiate host ABI: %v", err) + } + wasi_snapshot_preview1.MustInstantiate(ctx, runtime) + wasm, err := os.ReadFile(filepath.Join("..", "..", "testdata", "wasi_socket_guest.wasm")) + if err != nil { + t.Fatalf("read probe WASM: %v", err) + } + compiled, err := runtime.CompileModule(ctx, wasm) + if err != nil { + t.Fatalf("compile probe WASM: %v", err) + } + t.Cleanup(func() { _ = compiled.Close(contextutil.WithoutCancel(ctx)) }) + module, err := runtime.InstantiateModule( + ctx, + compiled, + wazero.NewModuleConfig(). + WithStartFunctions("_initialize"). + WithSysWalltime(). + WithSysNanotime(). + WithSysNanosleep(), + ) + if err != nil { + t.Fatalf("instantiate probe WASM: %v", err) + } + return module +} + +func driveProbe( + t *testing.T, + ctx context.Context, + module api.Module, + export string, +) uint32 { + t.Helper() + results, err := module.ExportedFunction(export).Call(ctx) + if err != nil || len(results) != 1 { + t.Fatalf("%s: results=%v error=%v", export, results, err) + } + status := uint32(results[0]) + if status&probeError != 0 { + t.Fatalf("%s failed with status 0x%x", export, status) + } + return status +} + +func requireStatus( + t *testing.T, + operation string, + results []uint64, + err error, + want int32, +) { + t.Helper() + if err != nil || len(results) != 1 || int32(results[0]) != want { + t.Fatalf("%s: results=%v error=%v want=%d", operation, results, err, want) + } +} + +func waitCompletion( + t *testing.T, + ctx context.Context, + hostReactor *reactor.Reactor, +) { + t.Helper() + select { + case <-hostReactor.Completions(): + case <-ctx.Done(): + t.Fatalf("wait for host completion: %v", ctx.Err()) + } +} + +func assertDNSQuery( + t *testing.T, + query platform.DNSQuery, + host string, + ipVersion uint8, + mark *uint32, + netns *string, +) { + t.Helper() + if query.Host != host || + query.IPVersion != ipVersion || + !equalPointer(query.SocketMark, mark) || + !equalPointer(query.NetNS, netns) { + t.Fatalf("DNS query = %#v", query) + } +} + +func equalPointer[T comparable](left, right *T) bool { + return left == nil && right == nil || + left != nil && right != nil && *left == *right +} + +func uint32Pointer(value uint32) *uint32 { + return &value +} + +func stringPointer(value string) *string { + return &value +} + +func stopTimer(timer *time.Timer) { + if timer == nil || timer.Stop() { + return + } + select { + case <-timer.C: + default: + } +} diff --git a/easytier-go/internal/hostabi/connect_error_other.go b/easytier-go/internal/hostabi/connect_error_other.go new file mode 100644 index 00000000..b20648a0 --- /dev/null +++ b/easytier-go/internal/hostabi/connect_error_other.go @@ -0,0 +1,11 @@ +//go:build js || plan9 || wasip1 + +package hostabi + +func isConnectionRefused(_ error) bool { return false } + +func isConnectionAborted(_ error) bool { return false } + +func isConnectionReset(_ error) bool { return false } + +func isNotConnected(_ error) bool { return false } diff --git a/easytier-go/internal/hostabi/connect_error_unix.go b/easytier-go/internal/hostabi/connect_error_unix.go new file mode 100644 index 00000000..d7e72c1d --- /dev/null +++ b/easytier-go/internal/hostabi/connect_error_unix.go @@ -0,0 +1,24 @@ +//go:build aix || android || darwin || dragonfly || freebsd || illumos || ios || linux || netbsd || openbsd || solaris + +package hostabi + +import ( + "errors" + "syscall" +) + +func isConnectionRefused(err error) bool { + return errors.Is(err, syscall.ECONNREFUSED) +} + +func isConnectionAborted(err error) bool { + return errors.Is(err, syscall.ECONNABORTED) +} + +func isConnectionReset(err error) bool { + return errors.Is(err, syscall.ECONNRESET) +} + +func isNotConnected(err error) bool { + return errors.Is(err, syscall.ENOTCONN) +} diff --git a/easytier-go/internal/hostabi/connect_error_windows.go b/easytier-go/internal/hostabi/connect_error_windows.go new file mode 100644 index 00000000..5c3bc2f8 --- /dev/null +++ b/easytier-go/internal/hostabi/connect_error_windows.go @@ -0,0 +1,31 @@ +//go:build windows + +package hostabi + +import ( + "errors" + "syscall" +) + +const ( + wsaNotConnected = syscall.Errno(10057) + wsaConnectionAborted = syscall.Errno(10053) + wsaConnectionReset = syscall.Errno(10054) + wsaConnectionRefused = syscall.Errno(10061) +) + +func isConnectionRefused(err error) bool { + return errors.Is(err, wsaConnectionRefused) +} + +func isConnectionAborted(err error) bool { + return errors.Is(err, wsaConnectionAborted) +} + +func isConnectionReset(err error) bool { + return errors.Is(err, wsaConnectionReset) +} + +func isNotConnected(err error) bool { + return errors.Is(err, wsaNotConnected) +} diff --git a/easytier-go/internal/hostabi/crypto.go b/easytier-go/internal/hostabi/crypto.go new file mode 100644 index 00000000..5d51356b --- /dev/null +++ b/easytier-go/internal/hostabi/crypto.go @@ -0,0 +1,236 @@ +package hostabi + +import ( + "context" + "crypto/aes" + "crypto/cipher" + "sync" + + "github.com/metacubex/wazero/api" +) + +const ( + aeadAES128GCM uint32 = 1 + aeadAES256GCM uint32 = 2 + aeadCacheCapacity = 64 + statusCryptoAuthFailed int32 = -10 + statusCryptoFallback int32 = -11 +) + +var ( + cryptoAEADParameterTypes = []api.ValueType{ + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + } + hostI32ResultTypes = []api.ValueType{api.ValueTypeI32} +) + +type aeadCacheKey struct { + algorithm uint32 + key [32]byte +} + +type aeadCache struct { + mu sync.Mutex + entries map[aeadCacheKey]cipher.AEAD + order [aeadCacheCapacity]aeadCacheKey + size int + next int +} + +func (adapter *Adapter) cryptoAEADFunction(open bool) api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + function := adapter.cryptoAEADSeal + if open { + function = adapter.cryptoAEADOpen + } + stack[0] = api.EncodeI32(function( + ctx, + module, + api.DecodeU32(stack[0]), + api.DecodeU32(stack[1]), + api.DecodeU32(stack[2]), + api.DecodeU32(stack[3]), + api.DecodeU32(stack[4]), + api.DecodeU32(stack[5]), + api.DecodeU32(stack[6]), + api.DecodeU32(stack[7]), + api.DecodeU32(stack[8]), + )) + }) +} + +func (cache *aeadCache) get( + algorithm uint32, + key []byte, +) (cipher.AEAD, bool) { + if (algorithm != aeadAES128GCM || len(key) != 16) && + (algorithm != aeadAES256GCM || len(key) != 32) { + return nil, false + } + + var cacheKey aeadCacheKey + cacheKey.algorithm = algorithm + copy(cacheKey.key[:], key) + + cache.mu.Lock() + defer cache.mu.Unlock() + if cached := cache.entries[cacheKey]; cached != nil { + return cached, true + } + + block, err := aes.NewCipher(key) + if err != nil { + return nil, false + } + aead, err := cipher.NewGCM(block) + if err != nil { + return nil, false + } + if cache.entries == nil { + cache.entries = make(map[aeadCacheKey]cipher.AEAD, aeadCacheCapacity) + } + if cache.size < aeadCacheCapacity { + cache.order[cache.size] = cacheKey + cache.size++ + } else { + delete(cache.entries, cache.order[cache.next]) + cache.order[cache.next] = cacheKey + cache.next = (cache.next + 1) % aeadCacheCapacity + } + cache.entries[cacheKey] = aead + return aead, true +} + +func (adapter *Adapter) cryptoAEADSeal( + _ context.Context, + module api.Module, + algorithm uint32, + keyPointer uint32, + keyLength uint32, + noncePointer uint32, + nonceLength uint32, + aadPointer uint32, + aadLength uint32, + bufferPointer uint32, + textLength uint32, +) int32 { + nonce, aad, aead, ok := adapter.cryptoAEADInputs( + module, + algorithm, + keyPointer, + keyLength, + noncePointer, + nonceLength, + aadPointer, + aadLength, + ) + if !ok { + return statusCryptoFallback + } + if textLength > ^uint32(0)-uint32(aead.Overhead()) { + return statusCryptoFallback + } + buffer, ok := module.Memory().Read( + bufferPointer, + textLength+uint32(aead.Overhead()), + ) + if !ok { + return statusCryptoFallback + } + aead.Seal(buffer[:0], nonce, buffer[:textLength], aad) + return 0 +} + +func (adapter *Adapter) cryptoAEADOpen( + _ context.Context, + module api.Module, + algorithm uint32, + keyPointer uint32, + keyLength uint32, + noncePointer uint32, + nonceLength uint32, + aadPointer uint32, + aadLength uint32, + bufferPointer uint32, + textLength uint32, +) int32 { + nonce, aad, aead, ok := adapter.cryptoAEADInputs( + module, + algorithm, + keyPointer, + keyLength, + noncePointer, + nonceLength, + aadPointer, + aadLength, + ) + if !ok { + return statusCryptoFallback + } + if textLength > ^uint32(0)-uint32(aead.Overhead()) { + return statusCryptoFallback + } + buffer, ok := module.Memory().Read( + bufferPointer, + textLength+uint32(aead.Overhead()), + ) + if !ok { + return statusCryptoFallback + } + opened, err := aead.Open(buffer[:0], nonce, buffer, aad) + if err != nil { + return statusCryptoAuthFailed + } + if len(opened) != int(textLength) { + return statusCryptoAuthFailed + } + return 0 +} + +func (adapter *Adapter) cryptoAEADInputs( + module api.Module, + algorithm uint32, + keyPointer uint32, + keyLength uint32, + noncePointer uint32, + nonceLength uint32, + aadPointer uint32, + aadLength uint32, +) ([]byte, []byte, cipher.AEAD, bool) { + key, ok := readCryptoBytes(module, keyPointer, keyLength) + if !ok { + return nil, nil, nil, false + } + aead, ok := adapter.aeads.get(algorithm, key) + if !ok { + return nil, nil, nil, false + } + nonce, ok := readCryptoBytes(module, noncePointer, nonceLength) + if !ok || len(nonce) != aead.NonceSize() { + return nil, nil, nil, false + } + aad, ok := readCryptoBytes(module, aadPointer, aadLength) + if !ok { + return nil, nil, nil, false + } + return nonce, aad, aead, true +} + +func readCryptoBytes( + module api.Module, + pointer uint32, + length uint32, +) ([]byte, bool) { + if length == 0 { + return nil, true + } + return module.Memory().Read(pointer, length) +} diff --git a/easytier-go/internal/hostabi/crypto_test.go b/easytier-go/internal/hostabi/crypto_test.go new file mode 100644 index 00000000..91d0008d --- /dev/null +++ b/easytier-go/internal/hostabi/crypto_test.go @@ -0,0 +1,146 @@ +package hostabi + +import ( + "bytes" + "context" + "testing" + + "github.com/metacubex/wazero/api" + "github.com/metacubex/wazero/experimental/wazerotest" +) + +func TestCryptoAEADAES128GCMVector(t *testing.T) { + adapter, module := newCryptoTestModule(t) + key := make([]byte, 16) + nonce := make([]byte, 12) + plaintext := make([]byte, 16) + writeCryptoTestBytes(t, module, 0, key) + writeCryptoTestBytes(t, module, 32, nonce) + writeCryptoTestBytes(t, module, 64, append(plaintext, make([]byte, 16)...)) + + status := adapter.cryptoAEADSeal( + context.Background(), + module, + aeadAES128GCM, + 0, + uint32(len(key)), + 32, + uint32(len(nonce)), + 0, + 0, + 64, + uint32(len(plaintext)), + ) + if status != 0 { + t.Fatalf("seal status = %d", status) + } + got, _ := module.Memory().Read(64, 32) + want := []byte{ + 0x03, 0x88, 0xda, 0xce, 0x60, 0xb6, 0xa3, 0x92, + 0xf3, 0x28, 0xc2, 0xb9, 0x71, 0xb2, 0xfe, 0x78, + 0xab, 0x6e, 0x47, 0xd4, 0x2c, 0xec, 0x13, 0xbd, + 0xf5, 0x3a, 0x67, 0xb2, 0x12, 0x57, 0xbd, 0xdf, + } + if !bytes.Equal(got, want) { + t.Fatalf("sealed bytes = %x, want %x", got, want) + } + + status = adapter.cryptoAEADOpen( + context.Background(), + module, + aeadAES128GCM, + 0, + uint32(len(key)), + 32, + uint32(len(nonce)), + 0, + 0, + 64, + uint32(len(plaintext)), + ) + if status != 0 { + t.Fatalf("open status = %d", status) + } + got, _ = module.Memory().Read(64, uint32(len(plaintext))) + if !bytes.Equal(got, plaintext) { + t.Fatalf("opened bytes = %x, want %x", got, plaintext) + } +} + +func TestCryptoAEADFallbackDoesNotModifyBuffer(t *testing.T) { + adapter, module := newCryptoTestModule(t) + key := make([]byte, 32) + nonce := make([]byte, 12) + buffer := bytes.Repeat([]byte{7}, 32) + writeCryptoTestBytes(t, module, 0, key) + writeCryptoTestBytes(t, module, 32, nonce) + writeCryptoTestBytes(t, module, 64, buffer) + + status := adapter.cryptoAEADSeal( + context.Background(), + module, + 3, + 0, + uint32(len(key)), + 32, + uint32(len(nonce)), + 0, + 0, + 64, + 16, + ) + if status != statusCryptoFallback { + t.Fatalf("seal status = %d, want fallback", status) + } + got, _ := module.Memory().Read(64, uint32(len(buffer))) + if !bytes.Equal(got, buffer) { + t.Fatalf("fallback changed buffer: %x", got) + } +} + +func TestCryptoAEADOpenReportsAuthenticationFailure(t *testing.T) { + adapter, module := newCryptoTestModule(t) + key := make([]byte, 16) + nonce := make([]byte, 12) + buffer := make([]byte, 32) + buffer[len(buffer)-1] = 1 + writeCryptoTestBytes(t, module, 0, key) + writeCryptoTestBytes(t, module, 32, nonce) + writeCryptoTestBytes(t, module, 64, buffer) + + status := adapter.cryptoAEADOpen( + context.Background(), + module, + aeadAES128GCM, + 0, + uint32(len(key)), + 32, + uint32(len(nonce)), + 0, + 0, + 64, + 16, + ) + if status != statusCryptoAuthFailed { + t.Fatalf("open status = %d, want authentication failure", status) + } +} + +func newCryptoTestModule(t *testing.T) (*Adapter, api.Module) { + t.Helper() + return &Adapter{}, wazerotest.NewModule( + wazerotest.NewMemory(wazerotest.PageSize), + ) +} + +func writeCryptoTestBytes( + t *testing.T, + module api.Module, + pointer uint32, + value []byte, +) { + t.Helper() + if !module.Memory().Write(pointer, value) { + t.Fatalf("write %d bytes at %d", len(value), pointer) + } +} diff --git a/easytier-go/internal/hostabi/dns.go b/easytier-go/internal/hostabi/dns.go new file mode 100644 index 00000000..ae53c834 --- /dev/null +++ b/easytier-go/internal/hostabi/dns.go @@ -0,0 +1,132 @@ +package hostabi + +import ( + "context" + + "github.com/EasyTier/EasyTier/easytier-go/internal/reactor" + "github.com/metacubex/wazero/api" +) + +const maxDNSQueryLen = 4096 + +func (adapter *Adapter) startDNSAddress( + _ context.Context, + module api.Module, + operation uint64, + queryPointer uint32, + queryLength uint32, +) int32 { + return adapter.startDNS(module, operation, queryPointer, queryLength, reactor.DNSAddress) +} + +func (adapter *Adapter) startDNSTXT( + _ context.Context, + module api.Module, + operation uint64, + queryPointer uint32, + queryLength uint32, +) int32 { + return adapter.startDNS(module, operation, queryPointer, queryLength, reactor.DNSTXT) +} + +func (adapter *Adapter) startDNSSRV( + _ context.Context, + module api.Module, + operation uint64, + queryPointer uint32, + queryLength uint32, +) int32 { + return adapter.startDNS(module, operation, queryPointer, queryLength, reactor.DNSSRV) +} + +func (adapter *Adapter) startDNS( + module api.Module, + operation uint64, + queryPointer uint32, + queryLength uint32, + kind reactor.DNSKind, +) int32 { + if queryLength == 0 || queryLength > maxDNSQueryLen { + return statusInvalid + } + encoded, ok := module.Memory().Read(queryPointer, queryLength) + if !ok { + return statusMemory + } + query, err := decodeDNSQuery(append([]byte(nil), encoded...)) + if err != nil { + return statusInvalid + } + return operationStatus(adapter.reactor.StartDNS(operation, kind, query)) +} + +func (adapter *Adapter) takeDNSAddress( + _ context.Context, + module api.Module, + operation uint64, + resultPointer uint32, + resultCapacity uint32, +) int32 { + return adapter.takeDNS(module, operation, resultPointer, resultCapacity, reactor.DNSAddress) +} + +func (adapter *Adapter) takeDNSTXT( + _ context.Context, + module api.Module, + operation uint64, + resultPointer uint32, + resultCapacity uint32, +) int32 { + return adapter.takeDNS(module, operation, resultPointer, resultCapacity, reactor.DNSTXT) +} + +func (adapter *Adapter) takeDNSSRV( + _ context.Context, + module api.Module, + operation uint64, + resultPointer uint32, + resultCapacity uint32, +) int32 { + return adapter.takeDNS(module, operation, resultPointer, resultCapacity, reactor.DNSSRV) +} + +func (adapter *Adapter) takeDNS( + module api.Module, + operation uint64, + resultPointer uint32, + resultCapacity uint32, + kind reactor.DNSKind, +) int32 { + result, err := adapter.reactor.DNSResult(operation) + if err != nil { + return operationStatus(err) + } + if result.Kind != kind { + return statusInvalid + } + var encoded []byte + switch kind { + case reactor.DNSAddress: + encoded, err = encodeDNSAddresses(result.Addresses) + case reactor.DNSTXT: + encoded, err = encodeDNSTXT(result.Text) + case reactor.DNSSRV: + encoded, err = encodeDNSSRV(result.Records) + default: + return statusInvalid + } + if err != nil { + _ = adapter.reactor.FinishDNS(operation) + return statusInvalid + } + if resultCapacity < uint32(len(encoded)) { + return int32(len(encoded)) + } + if err := adapter.reactor.FinishDNS(operation); err != nil { + return operationStatus(err) + } + if !module.Memory().Write(resultPointer, encoded) { + return statusMemory + } + return int32(len(encoded)) +} diff --git a/easytier-go/internal/hostabi/dns_wire.go b/easytier-go/internal/hostabi/dns_wire.go new file mode 100644 index 00000000..109fbe04 --- /dev/null +++ b/easytier-go/internal/hostabi/dns_wire.go @@ -0,0 +1,124 @@ +package hostabi + +import ( + "encoding/binary" + "fmt" + "net" + "net/netip" + "unicode/utf8" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +const ( + dnsWireVersion = 1 + maxDNSResultLen = 1024 * 1024 +) + +func decodeDNSQuery(encoded []byte) (platform.DNSQuery, error) { + if len(encoded) < 16 || encoded[0] != dnsWireVersion { + return platform.DNSQuery{}, fmt.Errorf("invalid DNS query header") + } + query := platform.DNSQuery{IPVersion: encoded[1]} + if query.IPVersion != 0 && query.IPVersion != 4 && query.IPVersion != 6 { + return platform.DNSQuery{}, fmt.Errorf("invalid DNS IP version") + } + if encoded[2] > 1 { + return platform.DNSQuery{}, fmt.Errorf("invalid DNS socket mark presence") + } + if encoded[2] == 1 { + mark := binary.BigEndian.Uint32(encoded[3:7]) + query.SocketMark = &mark + } else if binary.BigEndian.Uint32(encoded[3:7]) != 0 { + return platform.DNSQuery{}, fmt.Errorf("DNS socket mark value without presence") + } + if encoded[7] > 1 { + return platform.DNSQuery{}, fmt.Errorf("invalid DNS netns presence") + } + offset := 12 + netnsLengthWire := binary.BigEndian.Uint32(encoded[8:12]) + if uint64(netnsLengthWire) > uint64(len(encoded)-offset) { + return platform.DNSQuery{}, fmt.Errorf("truncated DNS netns token") + } + netnsLength := int(netnsLengthWire) + if encoded[7] == 0 && netnsLength != 0 { + return platform.DNSQuery{}, fmt.Errorf("DNS netns length without presence") + } + if encoded[7] == 1 { + netnsBytes := encoded[offset : offset+netnsLength] + if !utf8.Valid(netnsBytes) { + return platform.DNSQuery{}, fmt.Errorf("DNS netns token is not UTF-8") + } + netns := string(netnsBytes) + query.NetNS = &netns + } + offset += netnsLength + if len(encoded)-offset < 4 { + return platform.DNSQuery{}, fmt.Errorf("missing DNS host length") + } + hostLengthWire := binary.BigEndian.Uint32(encoded[offset : offset+4]) + offset += 4 + if hostLengthWire == 0 || uint64(hostLengthWire) != uint64(len(encoded)-offset) { + return platform.DNSQuery{}, fmt.Errorf("invalid DNS host length") + } + host := encoded[offset:] + if !utf8.Valid(host) { + return platform.DNSQuery{}, fmt.Errorf("DNS host is not UTF-8") + } + query.Host = string(host) + return query, nil +} + +func encodeDNSAddresses(addresses []netip.Addr) ([]byte, error) { + result := make([]byte, 4) + binary.BigEndian.PutUint32(result, uint32(len(addresses))) + for _, address := range addresses { + if address.Is4() { + ipv4 := address.As4() + result = append(result, 4) + result = append(result, ipv4[:]...) + continue + } + if !address.Is6() { + return nil, fmt.Errorf("invalid DNS address") + } + ipv6 := address.As16() + result = append(result, 6) + result = append(result, ipv6[:]...) + } + return boundedDNSResult(result) +} + +func encodeDNSTXT(text string) ([]byte, error) { + if !utf8.ValidString(text) { + return nil, fmt.Errorf("normalized DNS TXT value is not UTF-8") + } + result := make([]byte, 4, 4+len(text)) + binary.BigEndian.PutUint32(result, uint32(len(text))) + result = append(result, text...) + return boundedDNSResult(result) +} + +func encodeDNSSRV(records []*net.SRV) ([]byte, error) { + result := make([]byte, 4) + binary.BigEndian.PutUint32(result, uint32(len(records))) + for _, record := range records { + if record == nil { + return nil, fmt.Errorf("nil DNS SRV record") + } + target := []byte(record.Target) + result = binary.BigEndian.AppendUint16(result, record.Priority) + result = binary.BigEndian.AppendUint16(result, record.Weight) + result = binary.BigEndian.AppendUint16(result, record.Port) + result = binary.BigEndian.AppendUint32(result, uint32(len(target))) + result = append(result, target...) + } + return boundedDNSResult(result) +} + +func boundedDNSResult(result []byte) ([]byte, error) { + if len(result) == 0 || len(result) > maxDNSResultLen { + return nil, fmt.Errorf("DNS result exceeds bridge limit") + } + return result, nil +} diff --git a/easytier-go/internal/hostabi/environment.go b/easytier-go/internal/hostabi/environment.go new file mode 100644 index 00000000..ded43183 --- /dev/null +++ b/easytier-go/internal/hostabi/environment.go @@ -0,0 +1,65 @@ +package hostabi + +import ( + "context" + + "github.com/metacubex/wazero/api" +) + +func (adapter *Adapter) startLocalAddrForRemote( + _ context.Context, + module api.Module, + operation uint64, + remotePointer uint32, + remoteLength uint32, + contextPointer uint32, + contextLength uint32, +) int32 { + if remoteLength != socketAddressLen { + return statusInvalid + } + encoded, ok := module.Memory().Read(remotePointer, remoteLength) + if !ok { + return statusMemory + } + remote, err := decodeSocketAddress(append([]byte(nil), encoded...), false) + if err != nil { + return statusInvalid + } + encodedContext, ok := readOwnedOptions(module, contextPointer, contextLength) + if !ok { + return statusMemory + } + socketContext, remainder, err := decodeSocketContext(encodedContext) + if err != nil || len(remainder) != 0 { + return statusInvalid + } + return operationStatus( + adapter.reactor.StartLocalAddrForRemote(operation, remote, socketContext), + ) +} + +func (adapter *Adapter) takeLocalAddrForRemote( + _ context.Context, + module api.Module, + operation uint64, + resultPointer uint32, + resultLength uint32, +) int32 { + if !validResultMemory(module, resultPointer, resultLength, socketAddressLen) { + _ = adapter.reactor.CancelOperation(operation) + return statusMemory + } + address, err := adapter.reactor.TakeLocalAddrForRemote(operation) + if err != nil { + return operationStatus(err) + } + encoded, err := encodeNetAddr(address) + if err != nil { + return statusInvalid + } + if !module.Memory().Write(resultPointer, encoded[:]) { + return statusMemory + } + return 0 +} diff --git a/easytier-go/internal/hostabi/event.go b/easytier-go/internal/hostabi/event.go new file mode 100644 index 00000000..980c996a --- /dev/null +++ b/easytier-go/internal/hostabi/event.go @@ -0,0 +1,64 @@ +package hostabi + +import ( + "context" + + "github.com/metacubex/wazero/api" +) + +const ( + maxHostEventKindLen = 64 + maxHostEventMessageLen = 64 * 1024 +) + +var emitEventParameterTypes = []api.ValueType{ + api.ValueTypeI64, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, +} + +func (adapter *Adapter) emitEventFunction() api.GoModuleFunction { + return api.GoModuleFunc(func( + _ context.Context, + module api.Module, + stack []uint64, + ) { + stack[0] = api.EncodeI32(adapter.emitEvent( + module, + stack[0], + api.DecodeU32(stack[1]), + api.DecodeU32(stack[2]), + api.DecodeU32(stack[3]), + api.DecodeU32(stack[4]), + )) + }) +} + +func (adapter *Adapter) emitEvent( + module api.Module, + handle uint64, + kindPointer uint32, + kindLength uint32, + messagePointer uint32, + messageLength uint32, +) int32 { + if kindLength == 0 || kindLength > maxHostEventKindLen || + messageLength == 0 || messageLength > maxHostEventMessageLen { + return statusInvalid + } + kind, ok := module.Memory().Read(kindPointer, kindLength) + if !ok { + return statusMemory + } + message, ok := module.Memory().Read(messagePointer, messageLength) + if !ok { + return statusMemory + } + return operationStatus(adapter.reactor.TryEventWrite( + handle, + string(kind), + string(message), + )) +} diff --git a/easytier-go/internal/hostabi/factory.go b/easytier-go/internal/hostabi/factory.go new file mode 100644 index 00000000..893c2718 --- /dev/null +++ b/easytier-go/internal/hostabi/factory.go @@ -0,0 +1,143 @@ +package hostabi + +import ( + "context" + + "github.com/metacubex/wazero/api" +) + +func (adapter *Adapter) startTCPConnect( + _ context.Context, + module api.Module, + operation uint64, + optionsPointer uint32, + optionsLength uint32, +) int32 { + encoded, ok := readOwnedOptions(module, optionsPointer, optionsLength) + if !ok { + return statusMemory + } + options, err := decodeTCPConnectOptions(encoded) + if err != nil { + return statusInvalid + } + return operationStatus(adapter.reactor.StartTCPConnect(operation, options)) +} + +func (adapter *Adapter) takeTCPConnect( + _ context.Context, + module api.Module, + operation uint64, + resultPointer uint32, + resultLength uint32, +) int32 { + if !validResultMemory(module, resultPointer, resultLength, tcpSocketResultLen) { + _ = adapter.reactor.CancelOperation(operation) + return statusMemory + } + result, err := adapter.reactor.TakeTCPConnect(operation) + if err != nil { + return connectStatus(err) + } + encoded, err := encodeTCPSocketResult(result.Handle, result.Local, result.Peer) + if err != nil || !module.Memory().Write(resultPointer, encoded[:]) { + _ = adapter.reactor.CloseHandle(result.Handle) + return statusMemory + } + return 0 +} + +func (adapter *Adapter) startUDPBind( + _ context.Context, + module api.Module, + operation uint64, + optionsPointer uint32, + optionsLength uint32, +) int32 { + encoded, ok := readOwnedOptions(module, optionsPointer, optionsLength) + if !ok { + return statusMemory + } + options, err := decodeUDPBindOptions(encoded) + if err != nil { + return statusInvalid + } + return operationStatus(adapter.reactor.StartUDPBind(operation, options)) +} + +func (adapter *Adapter) takeUDPBind( + _ context.Context, + module api.Module, + operation uint64, + resultPointer uint32, + resultLength uint32, +) int32 { + if !validResultMemory(module, resultPointer, resultLength, boundSocketResultLen) { + _ = adapter.reactor.CancelOperation(operation) + return statusMemory + } + result, err := adapter.reactor.TakeUDPBind(operation) + if err != nil { + return operationStatus(err) + } + encoded, err := encodeBoundSocketResult(result.Handle, result.Local) + if err != nil || !module.Memory().Write(resultPointer, encoded[:]) { + _ = adapter.reactor.CloseHandle(result.Handle) + return statusMemory + } + return 0 +} + +func (adapter *Adapter) startTCPListen( + _ context.Context, + module api.Module, + operation uint64, + optionsPointer uint32, + optionsLength uint32, +) int32 { + encoded, ok := readOwnedOptions(module, optionsPointer, optionsLength) + if !ok { + return statusMemory + } + options, err := decodeTCPListenOptions(encoded) + if err != nil { + return statusInvalid + } + return operationStatus(adapter.reactor.StartTCPListen(operation, options)) +} + +func (adapter *Adapter) takeTCPListen( + _ context.Context, + module api.Module, + operation uint64, + resultPointer uint32, + resultLength uint32, +) int32 { + if !validResultMemory(module, resultPointer, resultLength, boundSocketResultLen) { + _ = adapter.reactor.CancelOperation(operation) + return statusMemory + } + result, err := adapter.reactor.TakeTCPListen(operation) + if err != nil { + return operationStatus(err) + } + encoded, err := encodeBoundSocketResult(result.Handle, result.Local) + if err != nil || !module.Memory().Write(resultPointer, encoded[:]) { + _ = adapter.reactor.CloseHandle(result.Handle) + return statusMemory + } + return 0 +} + +func validResultMemory( + module api.Module, + pointer uint32, + length uint32, + expected uint32, +) bool { + if length != expected { + return false + } + _, ok := module.Memory().Read(pointer, length) + return ok +} diff --git a/easytier-go/internal/hostabi/listener.go b/easytier-go/internal/hostabi/listener.go new file mode 100644 index 00000000..b8925c64 --- /dev/null +++ b/easytier-go/internal/hostabi/listener.go @@ -0,0 +1,39 @@ +package hostabi + +import ( + "context" + + "github.com/metacubex/wazero/api" +) + +func (adapter *Adapter) startTCPAccept( + _ context.Context, + _ api.Module, + handle uint64, + operation uint64, +) int32 { + return operationStatus(adapter.reactor.StartTCPAccept(handle, operation)) +} + +func (adapter *Adapter) takeTCPAccept( + _ context.Context, + module api.Module, + operation uint64, + resultPointer uint32, + resultLength uint32, +) int32 { + if !validResultMemory(module, resultPointer, resultLength, tcpSocketResultLen) { + _ = adapter.reactor.CancelOperation(operation) + return statusMemory + } + result, err := adapter.reactor.TakeTCPAccept(operation) + if err != nil { + return operationStatus(err) + } + encoded, err := encodeTCPSocketResult(result.Handle, result.Local, result.Peer) + if err != nil || !module.Memory().Write(resultPointer, encoded[:]) { + _ = adapter.reactor.CloseHandle(result.Handle) + return statusMemory + } + return 0 +} diff --git a/easytier-go/internal/hostabi/management.go b/easytier-go/internal/hostabi/management.go new file mode 100644 index 00000000..d232f3f2 --- /dev/null +++ b/easytier-go/internal/hostabi/management.go @@ -0,0 +1,55 @@ +package hostabi + +import ( + "context" + + "github.com/metacubex/wazero/api" +) + +const maxManagementMessageLen = 16 * 1024 * 1024 + +func (adapter *Adapter) startManagement( + _ context.Context, + module api.Module, + operation uint64, + requestPointer uint32, + requestLength uint32, +) int32 { + if requestLength == 0 || requestLength > maxManagementMessageLen { + return statusInvalid + } + request, ok := module.Memory().Read(requestPointer, requestLength) + if !ok { + return statusMemory + } + return operationStatus( + adapter.reactor.StartManagement(operation, append([]byte(nil), request...)), + ) +} + +func (adapter *Adapter) takeManagement( + _ context.Context, + module api.Module, + operation uint64, + resultPointer uint32, + resultCapacity uint32, +) int32 { + result, err := adapter.reactor.ManagementResult(operation) + if err != nil { + return operationStatus(err) + } + if len(result) > maxManagementMessageLen { + _ = adapter.reactor.CancelOperation(operation) + return statusInvalid + } + if resultCapacity < uint32(len(result)) { + return int32(len(result)) + } + if err := adapter.reactor.FinishManagement(operation); err != nil { + return operationStatus(err) + } + if !module.Memory().Write(resultPointer, result) { + return statusMemory + } + return int32(len(result)) +} diff --git a/easytier-go/internal/hostabi/packet.go b/easytier-go/internal/hostabi/packet.go new file mode 100644 index 00000000..1dfc2acf --- /dev/null +++ b/easytier-go/internal/hostabi/packet.go @@ -0,0 +1,82 @@ +package hostabi + +import ( + "context" + + "github.com/metacubex/wazero/api" +) + +const maxHostPacketLen = 1024 * 1024 + +var tryPacketWriteParameterTypes = []api.ValueType{ + api.ValueTypeI64, + api.ValueTypeI32, + api.ValueTypeI32, +} + +func (adapter *Adapter) tryPacketWriteFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.tryPacketWrite( + ctx, + module, + stack[0], + api.DecodeU32(stack[1]), + api.DecodeU32(stack[2]), + )) + }) +} + +func (adapter *Adapter) startPacketWriteReadyFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.startPacketWriteReady( + ctx, + module, + stack[0], + stack[1], + )) + }) +} + +func (adapter *Adapter) takePacketWriteReadyFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.takePacketWriteReady( + ctx, + module, + stack[0], + )) + }) +} + +func (adapter *Adapter) tryPacketWrite( + _ context.Context, + module api.Module, + handle uint64, + packetPointer uint32, + packetLength uint32, +) int32 { + if packetLength == 0 || packetLength > maxHostPacketLen { + return statusInvalid + } + packet, ok := module.Memory().Read(packetPointer, packetLength) + if !ok { + return statusMemory + } + return operationStatus(adapter.reactor.TryPacketWrite(handle, packet)) +} + +func (adapter *Adapter) startPacketWriteReady( + _ context.Context, + _ api.Module, + handle uint64, + operation uint64, +) int32 { + return operationStatus(adapter.reactor.StartPacketWriteReady(handle, operation)) +} + +func (adapter *Adapter) takePacketWriteReady( + _ context.Context, + _ api.Module, + operation uint64, +) int32 { + return operationStatus(adapter.reactor.TakePacketWriteReady(operation)) +} diff --git a/easytier-go/internal/hostabi/socket_wire.go b/easytier-go/internal/hostabi/socket_wire.go new file mode 100644 index 00000000..1f1e5304 --- /dev/null +++ b/easytier-go/internal/hostabi/socket_wire.go @@ -0,0 +1,427 @@ +package hostabi + +import ( + "encoding/binary" + "fmt" + "net" + "unicode/utf8" + + "github.com/EasyTier/EasyTier/easytier-go/platform" + "github.com/metacubex/wazero/api" +) + +const ( + socketAddressLen = 27 + tcpSocketResultLen = 62 + boundSocketResultLen = 35 + maxFactoryOptionsSize = 4096 +) + +func readOwnedOptions(module api.Module, pointer, length uint32) ([]byte, bool) { + if length > maxFactoryOptionsSize { + return nil, false + } + options, ok := module.Memory().Read(pointer, length) + if !ok { + return nil, false + } + return append([]byte(nil), options...), true +} + +func decodeTCPConnectOptions(encoded []byte) (platform.TCPConnectOptions, error) { + if len(encoded) < 75 || encoded[0] != 2 { + return platform.TCPConnectOptions{}, fmt.Errorf("invalid TCP connect options") + } + remote, err := decodeSocketAddress(encoded[1:28], false) + if err != nil || remote == nil { + return platform.TCPConnectOptions{}, fmt.Errorf("invalid TCP remote address") + } + local, err := decodeSocketAddress(encoded[28:55], true) + if err != nil { + return platform.TCPConnectOptions{}, err + } + socketContext, remainder, err := decodeSocketContext(encoded[55:]) + if err != nil { + return platform.TCPConnectOptions{}, fmt.Errorf("invalid TCP socket context: %w", err) + } + if len(remainder) < 9 { + return platform.TCPConnectOptions{}, fmt.Errorf("truncated TCP bind policy") + } + bind, err := decodeTCPBindPolicy( + udpToTCPAddr(local), + socketContext, + remainder[0], + remainder[1], + remainder[2], + remainder[4:], + ) + if err != nil { + return platform.TCPConnectOptions{}, err + } + purpose, err := decodeTCPConnectPurpose(remainder[3]) + if err != nil { + return platform.TCPConnectOptions{}, err + } + return platform.TCPConnectOptions{ + RemoteAddr: &net.TCPAddr{IP: remote.IP, Port: remote.Port, Zone: remote.Zone}, + Bind: bind, + Purpose: purpose, + }, nil +} + +func decodeUDPBindOptions(encoded []byte) (platform.UDPBindOptions, error) { + if len(encoded) < 48 || encoded[0] != 2 { + return platform.UDPBindOptions{}, fmt.Errorf("invalid UDP bind options") + } + local, err := decodeSocketAddress(encoded[1:28], true) + if err != nil { + return platform.UDPBindOptions{}, err + } + socketContext, remainder, err := decodeSocketContext(encoded[28:]) + if err != nil { + return platform.UDPBindOptions{}, fmt.Errorf("invalid UDP socket context: %w", err) + } + if len(remainder) < 9 { + return platform.UDPBindOptions{}, fmt.Errorf("truncated UDP bind policy") + } + reuseAddr, err := decodeWireBool("UDP reuse_addr", remainder[0]) + if err != nil { + return platform.UDPBindOptions{}, err + } + reusePort, err := decodeWireBool("UDP reuse_port", remainder[1]) + if err != nil { + return platform.UDPBindOptions{}, err + } + onlyV6, err := decodeWireBool("UDP only_v6", remainder[2]) + if err != nil { + return platform.UDPBindOptions{}, err + } + purpose, err := decodeUDPBindPurpose(remainder[3]) + if err != nil { + return platform.UDPBindOptions{}, err + } + device, err := decodeBindDevice(remainder[4:]) + if err != nil { + return platform.UDPBindOptions{}, err + } + return platform.UDPBindOptions{ + Context: socketContext, + LocalAddr: local, + BindDevice: device, + ReuseAddr: reuseAddr, + ReusePort: reusePort, + OnlyV6: onlyV6, + Purpose: purpose, + }, nil +} + +func decodeTCPListenOptions(encoded []byte) (platform.TCPListenOptions, error) { + if len(encoded) < 48 || encoded[0] != 2 { + return platform.TCPListenOptions{}, fmt.Errorf("invalid TCP listen options") + } + local, err := decodeSocketAddress(encoded[1:28], false) + if err != nil || local == nil { + return platform.TCPListenOptions{}, fmt.Errorf("invalid TCP listen address") + } + socketContext, remainder, err := decodeSocketContext(encoded[28:]) + if err != nil { + return platform.TCPListenOptions{}, fmt.Errorf("invalid TCP listen context: %w", err) + } + if len(remainder) < 9 { + return platform.TCPListenOptions{}, fmt.Errorf("truncated TCP listen bind policy") + } + bind, err := decodeTCPBindPolicy( + &net.TCPAddr{IP: local.IP, Port: local.Port, Zone: local.Zone}, + socketContext, + remainder[0], + remainder[1], + remainder[2], + remainder[4:], + ) + if err != nil { + return platform.TCPListenOptions{}, err + } + purpose, err := decodeTCPListenPurpose(remainder[3]) + if err != nil { + return platform.TCPListenOptions{}, err + } + return platform.TCPListenOptions{Bind: bind, Purpose: purpose}, nil +} + +func decodeTCPBindPolicy( + localAddr *net.TCPAddr, + socketContext platform.SocketContext, + reuseMode byte, + reusePortByte byte, + onlyV6Byte byte, + deviceBytes []byte, +) (platform.TCPBindOptions, error) { + var reuseAddr *bool + switch reuseMode { + case 0: + case 1: + value := false + reuseAddr = &value + case 2: + value := true + reuseAddr = &value + default: + return platform.TCPBindOptions{}, fmt.Errorf("invalid TCP reuse_addr") + } + reusePort, err := decodeWireBool("TCP reuse_port", reusePortByte) + if err != nil { + return platform.TCPBindOptions{}, err + } + onlyV6, err := decodeWireBool("TCP only_v6", onlyV6Byte) + if err != nil { + return platform.TCPBindOptions{}, err + } + device, err := decodeBindDevice(deviceBytes) + if err != nil { + return platform.TCPBindOptions{}, err + } + return platform.TCPBindOptions{ + Context: socketContext, + LocalAddr: localAddr, + BindDevice: device, + ReuseAddr: reuseAddr, + ReusePort: reusePort, + OnlyV6: onlyV6, + }, nil +} + +func decodeSocketContext( + encoded []byte, +) (platform.SocketContext, []byte, error) { + if len(encoded) < 11 { + return platform.SocketContext{}, nil, fmt.Errorf("truncated socket context") + } + ipVersion, err := decodeIPVersion(encoded[0]) + if err != nil { + return platform.SocketContext{}, nil, err + } + mark, err := decodeSocketMark(encoded[1], encoded[2:6]) + if err != nil { + return platform.SocketContext{}, nil, err + } + if encoded[6] > 1 { + return platform.SocketContext{}, nil, fmt.Errorf("invalid netns presence") + } + length := int(binary.BigEndian.Uint32(encoded[7:11])) + if length > len(encoded)-11 || (encoded[6] == 0 && length != 0) { + return platform.SocketContext{}, nil, fmt.Errorf("invalid netns length") + } + var netns *string + if encoded[6] == 1 { + token := encoded[11 : 11+length] + if !utf8.Valid(token) { + return platform.SocketContext{}, nil, fmt.Errorf("netns token is not UTF-8") + } + value := string(token) + netns = &value + } + return platform.SocketContext{ + IPVersion: ipVersion, + SocketMark: mark, + NetNS: netns, + }, encoded[11+length:], nil +} + +func decodeIPVersion(encoded byte) (platform.IPVersion, error) { + switch encoded { + case 0: + return platform.IPVersionV4, nil + case 1: + return platform.IPVersionV6, nil + case 2: + return platform.IPVersionBoth, nil + default: + return 0, fmt.Errorf("invalid IP version %d", encoded) + } +} + +func decodeSocketMark(present byte, encoded []byte) (*uint32, error) { + if present > 1 || len(encoded) != 4 || + (present == 0 && binary.BigEndian.Uint32(encoded) != 0) { + return nil, fmt.Errorf("invalid socket mark encoding") + } + if present == 0 { + return nil, nil + } + mark := binary.BigEndian.Uint32(encoded) + return &mark, nil +} + +func decodeWireBool(name string, encoded byte) (bool, error) { + if encoded > 1 { + return false, fmt.Errorf("invalid %s", name) + } + return encoded == 1, nil +} + +func decodeBindDevice(encoded []byte) (*string, error) { + if len(encoded) < 5 || encoded[0] > 1 { + return nil, fmt.Errorf("invalid bind device encoding") + } + length := int(binary.BigEndian.Uint32(encoded[1:5])) + if len(encoded) != 5+length || (encoded[0] == 0 && length != 0) { + return nil, fmt.Errorf("invalid bind device length") + } + if encoded[0] == 0 { + return nil, nil + } + device := string(encoded[5:]) + return &device, nil +} + +func decodeSocketAddress(encoded []byte, optional bool) (*net.UDPAddr, error) { + if len(encoded) != socketAddressLen { + return nil, fmt.Errorf("invalid socket address length") + } + if optional && encoded[0] == 0 { + for _, value := range encoded[1:] { + if value != 0 { + return nil, fmt.Errorf("noncanonical absent socket address") + } + } + return nil, nil + } + metadata := make([]byte, udpMetadataLen) + copy(metadata, encoded) + address, _, flowinfo, _, err := decodeUDPMetadata(metadata) + if err == nil && flowinfo != 0 { + return nil, fmt.Errorf("IPv6 flowinfo is not supported") + } + return address, err +} + +func udpToTCPAddr(address *net.UDPAddr) *net.TCPAddr { + if address == nil { + return nil + } + return &net.TCPAddr{IP: address.IP, Port: address.Port, Zone: address.Zone} +} + +func encodeTCPSocketResult( + handle uint64, + localAddr net.Addr, + peerAddr net.Addr, +) ([tcpSocketResultLen]byte, error) { + var encoded [tcpSocketResultLen]byte + binary.BigEndian.PutUint64(encoded[:8], handle) + local, err := encodeNetAddr(localAddr) + if err != nil { + return encoded, err + } + peer, err := encodeNetAddr(peerAddr) + if err != nil { + return encoded, err + } + copy(encoded[8:35], local[:]) + copy(encoded[35:], peer[:]) + return encoded, nil +} + +func encodeBoundSocketResult( + handle uint64, + localAddr net.Addr, +) ([boundSocketResultLen]byte, error) { + var encoded [boundSocketResultLen]byte + binary.BigEndian.PutUint64(encoded[:8], handle) + local, err := encodeNetAddr(localAddr) + if err != nil { + return encoded, err + } + copy(encoded[8:], local[:]) + return encoded, nil +} + +func encodeNetAddr(address net.Addr) ([socketAddressLen]byte, error) { + var encoded [socketAddressLen]byte + var udpAddr *net.UDPAddr + switch address := address.(type) { + case *net.TCPAddr: + udpAddr = &net.UDPAddr{IP: address.IP, Port: address.Port, Zone: address.Zone} + case *net.UDPAddr: + udpAddr = address + default: + return encoded, fmt.Errorf("unsupported socket address %T", address) + } + metadata, err := encodeUDPMetadata(udpAddr, nil, 0) + if err != nil { + return encoded, err + } + copy(encoded[:], metadata[:socketAddressLen]) + return encoded, nil +} + +func decodeTCPConnectPurpose(encoded byte) (platform.TCPConnectPurpose, error) { + switch encoded { + case 0: + return platform.TCPConnectDirect, nil + case 1: + return platform.TCPConnectFake, nil + case 2: + return platform.TCPConnectHolePunch, nil + case 3: + return platform.TCPConnectManual, nil + case 4: + return platform.TCPConnectProxyNAT, nil + case 5: + return platform.TCPConnectSTUNProbe, nil + case 6: + return platform.TCPConnectSocks5, nil + case 7: + return platform.TCPConnectPortForward, nil + case 8: + return platform.TCPConnectDataPlane, nil + default: + return 0, fmt.Errorf("invalid TCP connect purpose %d", encoded) + } +} + +func decodeUDPBindPurpose(encoded byte) (platform.UDPBindPurpose, error) { + switch encoded { + case 0: + return platform.UDPBindHolePunchControl, nil + case 1: + return platform.UDPBindHolePunchCandidate, nil + case 2: + return platform.UDPBindDirect, nil + case 3: + return platform.UDPBindPortBoundListener, nil + case 4: + return platform.UDPBindProxyNAT, nil + case 5: + return platform.UDPBindSTUNProbe, nil + case 6: + return platform.UDPBindSocks5, nil + case 7: + return platform.UDPBindPortForward, nil + case 8: + return platform.UDPBindPortLease, nil + default: + return 0, fmt.Errorf("invalid UDP bind purpose %d", encoded) + } +} + +func decodeTCPListenPurpose(encoded byte) (platform.TCPListenPurpose, error) { + switch encoded { + case 0: + return platform.TCPListenDirect, nil + case 1: + return platform.TCPListenHolePunch, nil + case 2: + return platform.TCPListenManual, nil + case 3: + return platform.TCPListenProxyNAT, nil + case 4: + return platform.TCPListenSocks5, nil + case 5: + return platform.TCPListenPortForward, nil + case 6: + return platform.TCPListenPortLease, nil + default: + return 0, fmt.Errorf("invalid TCP listen purpose %d", encoded) + } +} diff --git a/easytier-go/internal/hostabi/status.go b/easytier-go/internal/hostabi/status.go new file mode 100644 index 00000000..85e209dd --- /dev/null +++ b/easytier-go/internal/hostabi/status.go @@ -0,0 +1,55 @@ +package hostabi + +import ( + "errors" + + "github.com/EasyTier/EasyTier/easytier-go/internal/reactor" +) + +const ( + statusPending int32 = -1 + statusInvalid int32 = -2 + statusIOError int32 = -3 + statusMemory int32 = -4 + statusWouldBlock int32 = -5 + statusConnectionRefused int32 = -6 + statusConnectionAborted int32 = -7 + statusConnectionReset int32 = -8 + statusNotConnected int32 = -9 +) + +func operationStatus(err error) int32 { + switch { + case err == nil: + return 0 + case errors.Is(err, reactor.ErrPending): + return statusPending + case errors.Is(err, reactor.ErrInvalid): + return statusInvalid + case errors.Is(err, reactor.ErrWouldBlock): + return statusWouldBlock + default: + return statusIOError + } +} + +func connectStatus(err error) int32 { + switch { + case err == nil: + return 0 + case errors.Is(err, reactor.ErrPending): + return statusPending + case errors.Is(err, reactor.ErrInvalid): + return statusInvalid + case isConnectionRefused(err): + return statusConnectionRefused + case isConnectionAborted(err): + return statusConnectionAborted + case isConnectionReset(err): + return statusConnectionReset + case isNotConnected(err): + return statusNotConnected + default: + return statusIOError + } +} diff --git a/easytier-go/internal/hostabi/stream.go b/easytier-go/internal/hostabi/stream.go new file mode 100644 index 00000000..a800cdab --- /dev/null +++ b/easytier-go/internal/hostabi/stream.go @@ -0,0 +1,137 @@ +package hostabi + +import ( + "context" + + "github.com/metacubex/wazero/api" +) + +var ( + takeReadParameterTypes = []api.ValueType{ + api.ValueTypeI64, + api.ValueTypeI32, + api.ValueTypeI32, + } + startWriteParameterTypes = []api.ValueType{ + api.ValueTypeI64, + api.ValueTypeI64, + api.ValueTypeI32, + api.ValueTypeI32, + } +) + +func (adapter *Adapter) startReadFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.startRead( + ctx, + module, + stack[0], + stack[1], + api.DecodeU32(stack[2]), + )) + }) +} + +func (adapter *Adapter) takeReadFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.takeRead( + ctx, + module, + stack[0], + api.DecodeU32(stack[1]), + api.DecodeU32(stack[2]), + )) + }) +} + +func (adapter *Adapter) startWriteFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.startWrite( + ctx, + module, + stack[0], + stack[1], + api.DecodeU32(stack[2]), + api.DecodeU32(stack[3]), + )) + }) +} + +func (adapter *Adapter) takeWriteFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.takeWrite( + ctx, + module, + stack[0], + )) + }) +} + +func (adapter *Adapter) startRead( + _ context.Context, + _ api.Module, + handle uint64, + operation uint64, + capacity uint32, +) int32 { + return operationStatus(adapter.reactor.StartRead(handle, operation, capacity)) +} + +func (adapter *Adapter) takeRead( + _ context.Context, + module api.Module, + operation uint64, + destination uint32, + capacity uint32, +) int32 { + data, err := adapter.reactor.TakeRead(operation) + if err != nil { + return operationStatus(err) + } + if uint32(len(data)) > capacity { + return statusMemory + } + if len(data) > 0 && !module.Memory().Write(destination, data) { + return statusMemory + } + return int32(len(data)) +} + +func (adapter *Adapter) startWrite( + _ context.Context, + module api.Module, + handle uint64, + operation uint64, + source uint32, + length uint32, +) int32 { + data, ok := module.Memory().Read(source, length) + if !ok { + return statusMemory + } + return operationStatus(adapter.reactor.StartWrite(handle, operation, data)) +} + +func (adapter *Adapter) takeWrite( + _ context.Context, + _ api.Module, + operation uint64, +) int32 { + return operationStatus(adapter.reactor.TakeWrite(operation)) +} + +func (adapter *Adapter) cancelOperation( + _ context.Context, + _ api.Module, + operation uint64, +) int32 { + return operationStatus(adapter.reactor.CancelOperation(operation)) +} + +func (adapter *Adapter) closeHandle( + _ context.Context, + _ api.Module, + handle uint64, +) int32 { + return operationStatus(adapter.reactor.CloseHandle(handle)) +} diff --git a/easytier-go/internal/hostabi/udp.go b/easytier-go/internal/hostabi/udp.go new file mode 100644 index 00000000..acace16a --- /dev/null +++ b/easytier-go/internal/hostabi/udp.go @@ -0,0 +1,184 @@ +package hostabi + +import ( + "context" + + "github.com/metacubex/wazero/api" +) + +var ( + startUDPReceiveParameterTypes = []api.ValueType{ + api.ValueTypeI64, + api.ValueTypeI64, + api.ValueTypeI32, + } + takeUDPReceiveParameterTypes = []api.ValueType{ + api.ValueTypeI64, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + } + tryUDPSendParameterTypes = []api.ValueType{ + api.ValueTypeI64, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + api.ValueTypeI32, + } + handleOperationParameterTypes = []api.ValueType{ + api.ValueTypeI64, + api.ValueTypeI64, + } + operationParameterTypes = []api.ValueType{api.ValueTypeI64} +) + +func (adapter *Adapter) startUDPReceiveFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.startUDPReceive( + ctx, + module, + stack[0], + stack[1], + api.DecodeU32(stack[2]), + )) + }) +} + +func (adapter *Adapter) takeUDPReceiveFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.takeUDPReceive( + ctx, + module, + stack[0], + api.DecodeU32(stack[1]), + api.DecodeU32(stack[2]), + api.DecodeU32(stack[3]), + api.DecodeU32(stack[4]), + )) + }) +} + +func (adapter *Adapter) tryUDPSendFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.tryUDPSend( + ctx, + module, + stack[0], + api.DecodeU32(stack[1]), + api.DecodeU32(stack[2]), + api.DecodeU32(stack[3]), + api.DecodeU32(stack[4]), + )) + }) +} + +func (adapter *Adapter) startUDPSendReadyFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.startUDPSendReady( + ctx, + module, + stack[0], + stack[1], + )) + }) +} + +func (adapter *Adapter) takeUDPSendReadyFunction() api.GoModuleFunction { + return api.GoModuleFunc(func(ctx context.Context, module api.Module, stack []uint64) { + stack[0] = api.EncodeI32(adapter.takeUDPSendReady( + ctx, + module, + stack[0], + )) + }) +} + +func (adapter *Adapter) startUDPReceive( + _ context.Context, + _ api.Module, + handle uint64, + operation uint64, + _ uint32, +) int32 { + return operationStatus(adapter.reactor.StartUDPReceive(handle, operation)) +} + +func (adapter *Adapter) takeUDPReceive( + _ context.Context, + module api.Module, + operation uint64, + destination uint32, + capacity uint32, + metadataDestination uint32, + metadataLength uint32, +) int32 { + if metadataLength != udpMetadataLen { + return statusMemory + } + if _, ok := module.Memory().Read(destination, capacity); !ok { + return statusMemory + } + if _, ok := module.Memory().Read(metadataDestination, metadataLength); !ok { + return statusMemory + } + datagram, err := adapter.reactor.TakeUDPReceive(operation, capacity) + if err != nil { + return operationStatus(err) + } + if len(datagram.Data) > 0 && !module.Memory().Write(destination, datagram.Data) { + return statusMemory + } + metadata, err := encodeUDPMetadata(datagram.Peer, nil, 0) + if err != nil { + return statusInvalid + } + if !module.Memory().Write(metadataDestination, metadata[:]) { + return statusMemory + } + return int32(len(datagram.Data)) +} + +func (adapter *Adapter) tryUDPSend( + _ context.Context, + module api.Module, + handle uint64, + source uint32, + length uint32, + metadataSource uint32, + metadataLength uint32, +) int32 { + if metadataLength != udpMetadataLen || length > 65535 { + return statusMemory + } + metadata, ok := module.Memory().Read(metadataSource, metadataLength) + if !ok { + return statusMemory + } + peer, sourceIP, flowinfo, sourceIfindex, err := decodeUDPMetadata(metadata) + if err != nil || sourceIP != nil || flowinfo != 0 || sourceIfindex != 0 { + return statusInvalid + } + data, ok := module.Memory().Read(source, length) + if !ok { + return statusMemory + } + return operationStatus(adapter.reactor.TryUDPSend(handle, data, peer)) +} + +func (adapter *Adapter) startUDPSendReady( + _ context.Context, + _ api.Module, + handle uint64, + operation uint64, +) int32 { + return operationStatus(adapter.reactor.StartUDPSendReady(handle, operation)) +} + +func (adapter *Adapter) takeUDPSendReady( + _ context.Context, + _ api.Module, + operation uint64, +) int32 { + return operationStatus(adapter.reactor.TakeUDPSendReady(operation)) +} diff --git a/easytier-go/internal/hostabi/udp_wire.go b/easytier-go/internal/hostabi/udp_wire.go new file mode 100644 index 00000000..cc3b7cb5 --- /dev/null +++ b/easytier-go/internal/hostabi/udp_wire.go @@ -0,0 +1,122 @@ +package hostabi + +import ( + "encoding/binary" + "errors" + "net" +) + +const udpMetadataLen = 48 + +func encodeUDPMetadata( + peer *net.UDPAddr, + optionalIP net.IP, + optionalIfindex uint32, +) ([udpMetadataLen]byte, error) { + var metadata [udpMetadataLen]byte + if peer == nil { + return metadata, errors.New("nil UDP peer") + } + if ipv4 := peer.IP.To4(); ipv4 != nil { + metadata[0] = 4 + copy(metadata[1:5], ipv4) + } else if ipv6 := peer.IP.To16(); ipv6 != nil { + metadata[0] = 6 + copy(metadata[1:17], ipv6) + if peer.Zone != "" { + iface, err := net.InterfaceByName(peer.Zone) + if err != nil { + return metadata, err + } + binary.BigEndian.PutUint32(metadata[23:27], uint32(iface.Index)) + } + } else { + return metadata, errors.New("invalid UDP peer IP") + } + if peer.Port < 0 || peer.Port > 65535 { + return metadata, errors.New("invalid UDP peer port") + } + binary.BigEndian.PutUint16(metadata[17:19], uint16(peer.Port)) + + if optionalIP == nil { + if optionalIfindex != 0 { + return metadata, errors.New("optional UDP interface index requires an IP") + } + return metadata, nil + } + if ipv4 := optionalIP.To4(); ipv4 != nil { + if optionalIfindex != 0 { + return metadata, errors.New("optional IPv4 cannot carry an interface index") + } + metadata[27] = 4 + copy(metadata[28:32], ipv4) + return metadata, nil + } + if ipv6 := optionalIP.To16(); ipv6 != nil { + metadata[27] = 6 + copy(metadata[28:44], ipv6) + binary.BigEndian.PutUint32(metadata[44:48], optionalIfindex) + return metadata, nil + } + return metadata, errors.New("invalid optional UDP IP") +} + +func decodeUDPMetadata(metadata []byte) (*net.UDPAddr, net.IP, uint32, uint32, error) { + if len(metadata) != udpMetadataLen { + return nil, nil, 0, 0, errors.New("invalid UDP metadata length") + } + var peerIP net.IP + switch metadata[0] { + case 4: + if !allZero(metadata[5:17]) || !allZero(metadata[19:27]) { + return nil, nil, 0, 0, errors.New("noncanonical IPv4 peer metadata") + } + peerIP = net.IPv4(metadata[1], metadata[2], metadata[3], metadata[4]) + case 6: + peerIP = append(net.IP(nil), metadata[1:17]...) + default: + return nil, nil, 0, 0, errors.New("invalid UDP peer family") + } + flowinfo := binary.BigEndian.Uint32(metadata[19:23]) + scopeID := binary.BigEndian.Uint32(metadata[23:27]) + zone := "" + if scopeID != 0 { + iface, err := net.InterfaceByIndex(int(scopeID)) + if err != nil { + return nil, nil, 0, 0, err + } + zone = iface.Name + } + peer := &net.UDPAddr{ + IP: peerIP, + Port: int(binary.BigEndian.Uint16(metadata[17:19])), + Zone: zone, + } + + var optionalIP net.IP + switch metadata[27] { + case 0: + if !allZero(metadata[28:48]) { + return nil, nil, 0, 0, errors.New("noncanonical absent optional IP") + } + case 4: + if !allZero(metadata[32:48]) { + return nil, nil, 0, 0, errors.New("noncanonical optional IPv4") + } + optionalIP = net.IPv4(metadata[28], metadata[29], metadata[30], metadata[31]) + case 6: + optionalIP = append(net.IP(nil), metadata[28:44]...) + default: + return nil, nil, 0, 0, errors.New("invalid optional UDP IP family") + } + return peer, optionalIP, flowinfo, binary.BigEndian.Uint32(metadata[44:48]), nil +} + +func allZero(values []byte) bool { + for _, value := range values { + if value != 0 { + return false + } + } + return true +} diff --git a/easytier-go/internal/reactor/dns.go b/easytier-go/internal/reactor/dns.go new file mode 100644 index 00000000..725067ac --- /dev/null +++ b/easytier-go/internal/reactor/dns.go @@ -0,0 +1,125 @@ +package reactor + +import ( + "context" + "fmt" + "net" + "net/netip" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +type DNSKind uint8 + +const ( + DNSAddress DNSKind = iota + DNSTXT + DNSSRV +) + +type DNSResult struct { + Kind DNSKind + Addresses []netip.Addr + Text string + Records []*net.SRV +} + +type dnsOperation struct { + kind DNSKind + cancel context.CancelFunc + done bool + result DNSResult + err error +} + +func (reactor *Reactor) StartDNS( + operation uint64, + kind DNSKind, + query platform.DNSQuery, +) error { + if reactor.services.DNS == nil { + return fmt.Errorf("DNS operation: no resolver configured") + } + ctx, cancel := context.WithCancel(reactor.ctx) + result := &dnsOperation{kind: kind, cancel: cancel} + reactor.mu.Lock() + if err := reactor.claimOperationLocked(operation, operationDNS); err != nil { + reactor.mu.Unlock() + cancel() + return err + } + reactor.dns[operation] = result + reactor.workers.Add(1) + reactor.mu.Unlock() + + go func() { + defer reactor.workers.Done() + var value DNSResult + var resolveErr error + switch kind { + case DNSAddress: + value.Addresses, resolveErr = reactor.services.DNS.LookupIP(ctx, query) + case DNSTXT: + value.Text, resolveErr = reactor.services.DNS.LookupTXT(ctx, query) + case DNSSRV: + value.Records, resolveErr = reactor.services.DNS.LookupSRV(ctx, query) + default: + resolveErr = fmt.Errorf("unsupported DNS query kind %d", kind) + } + + reactor.mu.Lock() + if reactor.dns[operation] != result { + reactor.mu.Unlock() + return + } + result.done = true + result.result = value + result.err = resolveErr + reactor.mu.Unlock() + reactor.signalCompletion() + }() + return nil +} + +func (reactor *Reactor) DNSResult(operation uint64) (DNSResult, error) { + reactor.mu.Lock() + result, exists := reactor.dns[operation] + if !exists || reactor.operations[operation] != operationDNS { + reactor.mu.Unlock() + return DNSResult{}, ErrInvalid + } + if !result.done { + reactor.mu.Unlock() + return DNSResult{}, ErrPending + } + if result.err != nil { + delete(reactor.dns, operation) + reactor.releaseOperationLocked(operation, operationDNS) + result.cancel() + err := result.err + reactor.mu.Unlock() + return DNSResult{}, err + } + value := DNSResult{ + Kind: result.kind, + Addresses: append([]netip.Addr(nil), result.result.Addresses...), + Text: result.result.Text, + Records: append([]*net.SRV(nil), result.result.Records...), + } + reactor.mu.Unlock() + return value, nil +} + +func (reactor *Reactor) FinishDNS(operation uint64) error { + reactor.mu.Lock() + result, exists := reactor.dns[operation] + if !exists || !result.done || reactor.operations[operation] != operationDNS { + reactor.mu.Unlock() + return ErrInvalid + } + delete(reactor.dns, operation) + reactor.releaseOperationLocked(operation, operationDNS) + result.cancel() + reactor.mu.Unlock() + return nil +} diff --git a/easytier-go/internal/reactor/environment.go b/easytier-go/internal/reactor/environment.go new file mode 100644 index 00000000..a8f9a2b3 --- /dev/null +++ b/easytier-go/internal/reactor/environment.go @@ -0,0 +1,79 @@ +package reactor + +import ( + "context" + "fmt" + "net" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +type environmentOperation struct { + cancel context.CancelFunc + done bool + result net.Addr + err error +} + +func (reactor *Reactor) StartLocalAddrForRemote( + operation uint64, + remote *net.UDPAddr, + socketContext platform.SocketContext, +) error { + if reactor.services.Environment == nil { + return fmt.Errorf("environment operation: no connector environment configured") + } + ctx, cancel := context.WithCancel(reactor.ctx) + result := &environmentOperation{cancel: cancel} + reactor.mu.Lock() + if err := reactor.claimOperationLocked(operation, operationEnvironment); err != nil { + reactor.mu.Unlock() + cancel() + return err + } + reactor.environments[operation] = result + reactor.workers.Add(1) + reactor.mu.Unlock() + + go func() { + defer reactor.workers.Done() + address, resolveErr := reactor.services.Environment.LocalAddrForRemote( + ctx, + remote, + socketContext, + ) + reactor.mu.Lock() + if reactor.environments[operation] != result { + reactor.mu.Unlock() + return + } + result.result = address + result.err = resolveErr + result.done = true + reactor.mu.Unlock() + reactor.signalCompletion() + }() + return nil +} + +func (reactor *Reactor) TakeLocalAddrForRemote(operation uint64) (net.Addr, error) { + reactor.mu.Lock() + result, exists := reactor.environments[operation] + if !exists || reactor.operations[operation] != operationEnvironment { + reactor.mu.Unlock() + return nil, ErrInvalid + } + if !result.done { + reactor.mu.Unlock() + return nil, ErrPending + } + delete(reactor.environments, operation) + reactor.releaseOperationLocked(operation, operationEnvironment) + result.cancel() + address, err := result.result, result.err + reactor.mu.Unlock() + if err == nil && address == nil { + err = fmt.Errorf("connector environment returned no address") + } + return address, err +} diff --git a/easytier-go/internal/reactor/event.go b/easytier-go/internal/reactor/event.go new file mode 100644 index 00000000..37291e75 --- /dev/null +++ b/easytier-go/internal/reactor/event.go @@ -0,0 +1,38 @@ +package reactor + +import "fmt" + +type eventSink func(kind, message string) bool + +func (reactor *Reactor) RegisterEventSink(deliver eventSink) (uint64, error) { + if deliver == nil { + return 0, fmt.Errorf("event sink delivery function must not be nil") + } + reactor.mu.Lock() + defer reactor.mu.Unlock() + if reactor.closed { + return 0, ErrInvalid + } + handle := reactor.allocateHandleLocked() + reactor.eventSinks[handle] = deliver + return handle, nil +} + +func (reactor *Reactor) UnregisterEventSink(handle uint64) { + reactor.mu.Lock() + delete(reactor.eventSinks, handle) + reactor.mu.Unlock() +} + +func (reactor *Reactor) TryEventWrite(handle uint64, kind, message string) error { + reactor.mu.Lock() + defer reactor.mu.Unlock() + deliver, exists := reactor.eventSinks[handle] + if !exists { + return ErrInvalid + } + if !deliver(kind, message) { + return ErrWouldBlock + } + return nil +} diff --git a/easytier-go/internal/reactor/factory.go b/easytier-go/internal/reactor/factory.go new file mode 100644 index 00000000..b8a676cc --- /dev/null +++ b/easytier-go/internal/reactor/factory.go @@ -0,0 +1,288 @@ +package reactor + +import ( + "context" + "fmt" + "net" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +type createOperation struct { + kind createKind + done bool + cancel context.CancelFunc + connection net.Conn + datagram net.PacketConn + listener net.Listener + localAddr net.Addr + peerAddr net.Addr + err error +} + +type createKind uint8 + +const ( + createTCPConnect createKind = iota + 1 + createUDPBind + createTCPListen +) + +func (operation *createOperation) resource() ioResource { + switch { + case operation.connection != nil: + return operation.connection + case operation.datagram != nil: + return operation.datagram + case operation.listener != nil: + return operation.listener + default: + return nil + } +} + +type StreamResult struct { + Handle uint64 + Local net.Addr + Peer net.Addr +} + +type BoundResult struct { + Handle uint64 + Local net.Addr +} + +func (reactor *Reactor) beginCreate( + operation uint64, + kind createKind, +) (*createOperation, context.Context, error) { + ctx, cancel := context.WithCancel(reactor.ctx) + create := &createOperation{kind: kind, cancel: cancel} + reactor.mu.Lock() + if err := reactor.claimOperationLocked(operation, operationCreate); err != nil { + reactor.mu.Unlock() + cancel() + return nil, nil, err + } + reactor.creates[operation] = create + reactor.workers.Add(1) + reactor.mu.Unlock() + return create, ctx, nil +} + +func (reactor *Reactor) StartTCPConnect( + operation uint64, + options platform.TCPConnectOptions, +) error { + if reactor.services.Sockets == nil { + return fmt.Errorf("TCP connect: no socket factory configured") + } + create, ctx, err := reactor.beginCreate(operation, createTCPConnect) + if err != nil { + return err + } + go func() { + defer reactor.workers.Done() + connection, connectErr := reactor.services.Sockets.ConnectTCP(ctx, options) + + reactor.mu.Lock() + if reactor.creates[operation] != create { + reactor.mu.Unlock() + if connection != nil { + _ = connection.Close() + } + return + } + create.connection = connection + create.err = connectErr + create.done = true + if connection != nil { + create.localAddr = connection.LocalAddr() + create.peerAddr = connection.RemoteAddr() + } + reactor.mu.Unlock() + reactor.signalCompletion() + }() + return nil +} + +func (reactor *Reactor) TakeTCPConnect(operation uint64) (StreamResult, error) { + reactor.mu.Lock() + create, exists := reactor.creates[operation] + if !exists || + create.kind != createTCPConnect || + reactor.operations[operation] != operationCreate { + reactor.mu.Unlock() + return StreamResult{}, ErrInvalid + } + if !create.done { + reactor.mu.Unlock() + return StreamResult{}, ErrPending + } + delete(reactor.creates, operation) + reactor.releaseOperationLocked(operation, operationCreate) + create.cancel() + if create.err != nil || create.connection == nil { + connection := create.connection + err := create.err + reactor.mu.Unlock() + if connection != nil { + _ = connection.Close() + } + if err == nil { + err = fmt.Errorf("socket factory returned no TCP connection") + } + return StreamResult{}, err + } + handle := reactor.allocateHandleLocked() + reactor.streams[handle] = newStreamState(create.connection) + result := StreamResult{Handle: handle, Local: create.localAddr, Peer: create.peerAddr} + create.connection = nil + reactor.mu.Unlock() + return result, nil +} + +func (reactor *Reactor) StartUDPBind( + operation uint64, + options platform.UDPBindOptions, +) error { + if reactor.services.Sockets == nil { + return fmt.Errorf("UDP bind: no socket factory configured") + } + create, ctx, err := reactor.beginCreate(operation, createUDPBind) + if err != nil { + return err + } + go func() { + defer reactor.workers.Done() + connection, bindErr := reactor.services.Sockets.BindUDP(ctx, options) + + reactor.mu.Lock() + if reactor.creates[operation] != create { + reactor.mu.Unlock() + if connection != nil { + _ = connection.Close() + } + return + } + create.datagram = connection + create.err = bindErr + create.done = true + if connection != nil { + create.localAddr = connection.LocalAddr() + } + reactor.mu.Unlock() + reactor.signalCompletion() + }() + return nil +} + +func (reactor *Reactor) TakeUDPBind(operation uint64) (BoundResult, error) { + reactor.mu.Lock() + create, exists := reactor.creates[operation] + if !exists || + create.kind != createUDPBind || + reactor.operations[operation] != operationCreate { + reactor.mu.Unlock() + return BoundResult{}, ErrInvalid + } + if !create.done { + reactor.mu.Unlock() + return BoundResult{}, ErrPending + } + delete(reactor.creates, operation) + reactor.releaseOperationLocked(operation, operationCreate) + create.cancel() + if create.err != nil || create.datagram == nil { + connection := create.datagram + err := create.err + reactor.mu.Unlock() + if connection != nil { + _ = connection.Close() + } + if err == nil { + err = fmt.Errorf("socket factory returned no UDP socket") + } + return BoundResult{}, err + } + handle := reactor.allocateHandleLocked() + state := newDatagramState(create.datagram) + reactor.datagrams[handle] = state + result := BoundResult{Handle: handle, Local: create.localAddr} + create.datagram = nil + reactor.workers.Add(1) + reactor.mu.Unlock() + go reactor.runUDPSends(handle, state) + return result, nil +} + +func (reactor *Reactor) StartTCPListen( + operation uint64, + options platform.TCPListenOptions, +) error { + if reactor.services.Sockets == nil { + return fmt.Errorf("TCP listen: no socket factory configured") + } + create, ctx, err := reactor.beginCreate(operation, createTCPListen) + if err != nil { + return err + } + go func() { + defer reactor.workers.Done() + listener, listenErr := reactor.services.Sockets.ListenTCP(ctx, options) + + reactor.mu.Lock() + if reactor.creates[operation] != create { + reactor.mu.Unlock() + if listener != nil { + _ = listener.Close() + } + return + } + create.listener = listener + create.err = listenErr + create.done = true + if listener != nil { + create.localAddr = listener.Addr() + } + reactor.mu.Unlock() + reactor.signalCompletion() + }() + return nil +} + +func (reactor *Reactor) TakeTCPListen(operation uint64) (BoundResult, error) { + reactor.mu.Lock() + create, exists := reactor.creates[operation] + if !exists || + create.kind != createTCPListen || + reactor.operations[operation] != operationCreate { + reactor.mu.Unlock() + return BoundResult{}, ErrInvalid + } + if !create.done { + reactor.mu.Unlock() + return BoundResult{}, ErrPending + } + delete(reactor.creates, operation) + reactor.releaseOperationLocked(operation, operationCreate) + create.cancel() + if create.err != nil || create.listener == nil { + listener := create.listener + err := create.err + reactor.mu.Unlock() + if listener != nil { + _ = listener.Close() + } + if err == nil { + err = fmt.Errorf("socket factory returned no TCP listener") + } + return BoundResult{}, err + } + handle := reactor.allocateHandleLocked() + reactor.listeners[handle] = &listenerState{listener: create.listener} + result := BoundResult{Handle: handle, Local: create.localAddr} + create.listener = nil + reactor.mu.Unlock() + return result, nil +} diff --git a/easytier-go/internal/reactor/listener.go b/easytier-go/internal/reactor/listener.go new file mode 100644 index 00000000..b362198b --- /dev/null +++ b/easytier-go/internal/reactor/listener.go @@ -0,0 +1,144 @@ +package reactor + +import "net" + +type listenerState struct { + listener net.Listener + accepted []net.Conn + acceptRunning bool + acceptErr error +} + +type acceptWaiter struct { + handle uint64 + ready bool +} + +func (reactor *Reactor) StartTCPAccept(handle, operation uint64) error { + reactor.mu.Lock() + state, exists := reactor.listeners[handle] + if !exists { + reactor.mu.Unlock() + return ErrInvalid + } + if err := reactor.claimOperationLocked(operation, operationAccept); err != nil { + reactor.mu.Unlock() + return err + } + waiter := &acceptWaiter{ + handle: handle, + ready: len(state.accepted) > 0 || state.acceptErr != nil, + } + reactor.accepts[operation] = waiter + startWorker := !waiter.ready && !state.acceptRunning + if startWorker { + state.acceptRunning = true + reactor.workers.Add(1) + } + reactor.mu.Unlock() + + if startWorker { + go reactor.runTCPAccept(handle, state) + } + if waiter.ready { + reactor.signalCompletion() + } + return nil +} + +func (reactor *Reactor) runTCPAccept(handle uint64, state *listenerState) { + defer reactor.workers.Done() + connection, err := state.listener.Accept() + + reactor.mu.Lock() + if reactor.listeners[handle] != state { + reactor.mu.Unlock() + if connection != nil { + _ = connection.Close() + } + return + } + state.acceptRunning = false + if err != nil { + state.acceptErr = err + } else { + state.accepted = append(state.accepted, connection) + } + for _, waiter := range reactor.accepts { + if waiter.handle == handle { + waiter.ready = true + } + } + reactor.mu.Unlock() + reactor.signalCompletion() +} + +func (reactor *Reactor) TakeTCPAccept(operation uint64) (StreamResult, error) { + reactor.mu.Lock() + waiter, exists := reactor.accepts[operation] + if !exists || reactor.operations[operation] != operationAccept { + reactor.mu.Unlock() + return StreamResult{}, ErrInvalid + } + state, exists := reactor.listeners[waiter.handle] + if !exists { + delete(reactor.accepts, operation) + reactor.releaseOperationLocked(operation, operationAccept) + reactor.mu.Unlock() + return StreamResult{}, ErrInvalid + } + if len(state.accepted) == 0 { + if state.acceptErr == nil { + reactor.mu.Unlock() + return StreamResult{}, ErrPending + } + err := state.acceptErr + state.acceptErr = nil + delete(reactor.accepts, operation) + reactor.releaseOperationLocked(operation, operationAccept) + startWorker := !state.acceptRunning && reactor.hasAcceptWaiterLocked(waiter.handle) + if startWorker { + state.acceptRunning = true + reactor.workers.Add(1) + } + reactor.mu.Unlock() + if startWorker { + go reactor.runTCPAccept(waiter.handle, state) + } + return StreamResult{}, err + } + + connection := state.accepted[0] + state.accepted[0] = nil + state.accepted = state.accepted[1:] + delete(reactor.accepts, operation) + reactor.releaseOperationLocked(operation, operationAccept) + handle := reactor.allocateHandleLocked() + reactor.streams[handle] = newStreamState(connection) + startWorker := len(state.accepted) == 0 && + !state.acceptRunning && + reactor.hasAcceptWaiterLocked(waiter.handle) + if startWorker { + state.acceptRunning = true + reactor.workers.Add(1) + } + result := StreamResult{ + Handle: handle, + Local: connection.LocalAddr(), + Peer: connection.RemoteAddr(), + } + reactor.mu.Unlock() + if startWorker { + go reactor.runTCPAccept(waiter.handle, state) + } + return result, nil +} + +func (reactor *Reactor) hasAcceptWaiterLocked(handle uint64) bool { + for _, waiter := range reactor.accepts { + if waiter.handle == handle { + return true + } + } + return false +} diff --git a/easytier-go/internal/reactor/management.go b/easytier-go/internal/reactor/management.go new file mode 100644 index 00000000..d2afa783 --- /dev/null +++ b/easytier-go/internal/reactor/management.go @@ -0,0 +1,72 @@ +package reactor + +import ( + "context" + "fmt" +) + +type ManagementHandler func(context.Context, []byte) []byte + +type managementOperation struct { + cancel context.CancelFunc + done bool + result []byte +} + +func (reactor *Reactor) StartManagement(operation uint64, request []byte) error { + if reactor.managementHandler == nil { + return fmt.Errorf("management operation: no handler configured") + } + ctx, cancel := context.WithCancel(reactor.ctx) + state := &managementOperation{cancel: cancel} + reactor.mu.Lock() + if err := reactor.claimOperationLocked(operation, operationManagement); err != nil { + reactor.mu.Unlock() + cancel() + return err + } + reactor.management[operation] = state + reactor.workers.Add(1) + reactor.mu.Unlock() + + go func() { + defer reactor.workers.Done() + result := reactor.managementHandler(ctx, request) + reactor.mu.Lock() + if reactor.management[operation] != state { + reactor.mu.Unlock() + return + } + state.done = true + state.result = result + reactor.mu.Unlock() + reactor.signalCompletion() + }() + return nil +} + +func (reactor *Reactor) ManagementResult(operation uint64) ([]byte, error) { + reactor.mu.Lock() + defer reactor.mu.Unlock() + state, exists := reactor.management[operation] + if !exists || reactor.operations[operation] != operationManagement { + return nil, ErrInvalid + } + if !state.done { + return nil, ErrPending + } + return state.result, nil +} + +func (reactor *Reactor) FinishManagement(operation uint64) error { + reactor.mu.Lock() + defer reactor.mu.Unlock() + state, exists := reactor.management[operation] + if !exists || !state.done || + !reactor.releaseOperationLocked(operation, operationManagement) { + return ErrInvalid + } + delete(reactor.management, operation) + state.cancel() + return nil +} diff --git a/easytier-go/internal/reactor/management_test.go b/easytier-go/internal/reactor/management_test.go new file mode 100644 index 00000000..4de354f6 --- /dev/null +++ b/easytier-go/internal/reactor/management_test.go @@ -0,0 +1,45 @@ +package reactor + +import ( + "context" + "errors" + "testing" + "time" +) + +func TestManagementOperationCopiesAndConsumesResult(t *testing.T) { + release := make(chan struct{}) + runtime := New(context.Background(), Options{ + Management: func(_ context.Context, request []byte) []byte { + <-release + return append([]byte("response:"), request...) + }, + }) + defer runtime.Close() + + if err := runtime.StartManagement(7, []byte("request")); err != nil { + t.Fatalf("start management operation: %v", err) + } + if _, err := runtime.ManagementResult(7); !errors.Is(err, ErrPending) { + t.Fatalf("initial result error = %v, want pending", err) + } + close(release) + select { + case <-runtime.Completions(): + case <-time.After(time.Second): + t.Fatal("management operation did not complete") + } + result, err := runtime.ManagementResult(7) + if err != nil { + t.Fatalf("take management result: %v", err) + } + if string(result) != "response:request" { + t.Fatalf("management result = %q", result) + } + if err := runtime.FinishManagement(7); err != nil { + t.Fatalf("finish management operation: %v", err) + } + if _, err := runtime.ManagementResult(7); !errors.Is(err, ErrInvalid) { + t.Fatalf("consumed result error = %v, want invalid", err) + } +} diff --git a/easytier-go/internal/reactor/packet.go b/easytier-go/internal/reactor/packet.go new file mode 100644 index 00000000..bcb64f0b --- /dev/null +++ b/easytier-go/internal/reactor/packet.go @@ -0,0 +1,159 @@ +package reactor + +import ( + "context" + "fmt" + "net" +) + +type packetSink struct { + capacity int + packets [][]byte + available chan struct{} + closed chan struct{} +} + +type packetWriteWaiter struct { + handle uint64 + ready bool +} + +func (reactor *Reactor) RegisterPacketSink(capacity int) (uint64, error) { + if capacity <= 0 { + return 0, fmt.Errorf("packet sink capacity must be positive") + } + reactor.mu.Lock() + defer reactor.mu.Unlock() + if reactor.closed { + return 0, ErrInvalid + } + handle := reactor.allocateHandleLocked() + reactor.packetSinks[handle] = &packetSink{ + capacity: capacity, + available: make(chan struct{}, 1), + closed: make(chan struct{}), + } + return handle, nil +} + +func (reactor *Reactor) UnregisterPacketSink(handle uint64) { + reactor.mu.Lock() + sink := reactor.packetSinks[handle] + if sink == nil { + reactor.mu.Unlock() + return + } + delete(reactor.packetSinks, handle) + for operation, waiter := range reactor.packetWrites { + if waiter.handle != handle { + continue + } + delete(reactor.packetWrites, operation) + reactor.releaseOperationLocked(operation, operationPacketWrite) + } + close(sink.closed) + reactor.mu.Unlock() +} + +func (reactor *Reactor) TryPacketWrite(handle uint64, packet []byte) error { + reactor.mu.Lock() + sink, exists := reactor.packetSinks[handle] + if !exists { + reactor.mu.Unlock() + return ErrInvalid + } + if len(sink.packets) >= sink.capacity { + reactor.mu.Unlock() + return ErrWouldBlock + } + sink.packets = append(sink.packets, append([]byte(nil), packet...)) + available := sink.available + reactor.mu.Unlock() + select { + case available <- struct{}{}: + default: + } + return nil +} + +func (reactor *Reactor) StartPacketWriteReady(handle, operation uint64) error { + reactor.mu.Lock() + sink, exists := reactor.packetSinks[handle] + if !exists { + reactor.mu.Unlock() + return ErrInvalid + } + if err := reactor.claimOperationLocked(operation, operationPacketWrite); err != nil { + reactor.mu.Unlock() + return err + } + waiter := &packetWriteWaiter{ + handle: handle, + ready: len(sink.packets) < sink.capacity, + } + reactor.packetWrites[operation] = waiter + ready := waiter.ready + reactor.mu.Unlock() + if ready { + reactor.signalCompletion() + } + return nil +} + +func (reactor *Reactor) TakePacketWriteReady(operation uint64) error { + reactor.mu.Lock() + waiter, exists := reactor.packetWrites[operation] + if !exists || reactor.operations[operation] != operationPacketWrite { + reactor.mu.Unlock() + return ErrInvalid + } + if !waiter.ready { + reactor.mu.Unlock() + return ErrPending + } + delete(reactor.packetWrites, operation) + reactor.releaseOperationLocked(operation, operationPacketWrite) + reactor.mu.Unlock() + return nil +} + +func (reactor *Reactor) ReceivePacket(ctx context.Context, handle uint64) ([]byte, error) { + for { + reactor.mu.Lock() + sink, exists := reactor.packetSinks[handle] + if !exists { + reactor.mu.Unlock() + return nil, fmt.Errorf("receive packet: %w", net.ErrClosed) + } + if len(sink.packets) > 0 { + packet := sink.packets[0] + sink.packets[0] = nil + sink.packets = sink.packets[1:] + ready := false + for _, waiter := range reactor.packetWrites { + if waiter.handle == handle { + waiter.ready = true + ready = true + } + } + reactor.mu.Unlock() + if ready { + reactor.signalCompletion() + } + return packet, nil + } + available := sink.available + lifetimeDone := reactor.ctx.Done() + reactor.mu.Unlock() + + select { + case <-available: + case <-sink.closed: + return nil, fmt.Errorf("receive packet: %w", net.ErrClosed) + case <-lifetimeDone: + return nil, fmt.Errorf("receive packet: %w", reactor.ctx.Err()) + case <-ctx.Done(): + return nil, ctx.Err() + } + } +} diff --git a/easytier-go/internal/reactor/reactor.go b/easytier-go/internal/reactor/reactor.go new file mode 100644 index 00000000..504ee8e3 --- /dev/null +++ b/easytier-go/internal/reactor/reactor.go @@ -0,0 +1,343 @@ +package reactor + +import ( + "context" + "errors" + "fmt" + "net" + "sync" + + "github.com/EasyTier/EasyTier/easytier-go/internal/contextutil" + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +var ( + ErrInvalid = errors.New("invalid host operation") + ErrPending = errors.New("host operation is pending") + ErrWouldBlock = errors.New("host operation would block") +) + +type operationKind uint8 + +const ( + operationRead operationKind = iota + 1 + operationWrite + operationUDPRead + operationUDPWrite + operationCreate + operationAccept + operationDNS + operationEnvironment + operationPacketWrite + operationManagement +) + +type Options struct { + Services platform.Services + InitialStreams map[uint64]net.Conn + InitialDatagrams map[uint64]net.PacketConn + Management ManagementHandler +} + +type Reactor struct { + ctx context.Context + cancel context.CancelFunc + + mu sync.Mutex + closed bool + closeDone chan struct{} + completion chan struct{} + workers sync.WaitGroup + nextHandle uint64 + + services platform.Services + managementHandler ManagementHandler + + operations map[uint64]operationKind + streams map[uint64]*streamState + datagrams map[uint64]*datagramState + drainingDatagrams map[*datagramState]struct{} + listeners map[uint64]*listenerState + reads map[uint64]*readOperation + writes map[uint64]*writeOperation + udpReads map[uint64]*udpReadWaiter + udpWrites map[uint64]*udpWriteWaiter + accepts map[uint64]*acceptWaiter + creates map[uint64]*createOperation + dns map[uint64]*dnsOperation + environments map[uint64]*environmentOperation + eventSinks map[uint64]eventSink + packetSinks map[uint64]*packetSink + packetWrites map[uint64]*packetWriteWaiter + management map[uint64]*managementOperation +} + +func New(parent context.Context, options Options) *Reactor { + if parent == nil { + parent = context.Background() + } + ctx, cancel := context.WithCancel(contextutil.WithoutCancel(parent)) + reactor := &Reactor{ + ctx: ctx, + cancel: cancel, + closeDone: make(chan struct{}), + completion: make(chan struct{}, 1), + nextHandle: 1 << 48, + services: options.Services, + managementHandler: options.Management, + operations: make(map[uint64]operationKind), + streams: make(map[uint64]*streamState, len(options.InitialStreams)), + datagrams: make(map[uint64]*datagramState, len(options.InitialDatagrams)), + drainingDatagrams: make(map[*datagramState]struct{}), + listeners: make(map[uint64]*listenerState), + reads: make(map[uint64]*readOperation), + writes: make(map[uint64]*writeOperation), + udpReads: make(map[uint64]*udpReadWaiter), + udpWrites: make(map[uint64]*udpWriteWaiter), + accepts: make(map[uint64]*acceptWaiter), + creates: make(map[uint64]*createOperation), + dns: make(map[uint64]*dnsOperation), + environments: make(map[uint64]*environmentOperation), + eventSinks: make(map[uint64]eventSink), + packetSinks: make(map[uint64]*packetSink), + packetWrites: make(map[uint64]*packetWriteWaiter), + management: make(map[uint64]*managementOperation), + } + for handle, connection := range options.InitialStreams { + reactor.streams[handle] = newStreamState(connection) + } + for handle, connection := range options.InitialDatagrams { + state := newDatagramState(connection) + reactor.datagrams[handle] = state + reactor.workers.Add(1) + go reactor.runUDPSends(handle, state) + } + return reactor +} + +func (reactor *Reactor) Completions() <-chan struct{} { + return reactor.completion +} + +func (reactor *Reactor) signalCompletion() { + select { + case reactor.completion <- struct{}{}: + default: + } +} + +func (reactor *Reactor) claimOperationLocked(id uint64, kind operationKind) error { + if reactor.closed { + return ErrInvalid + } + if _, exists := reactor.operations[id]; exists { + return ErrInvalid + } + reactor.operations[id] = kind + return nil +} + +func (reactor *Reactor) releaseOperationLocked(id uint64, kind operationKind) bool { + if reactor.operations[id] != kind { + return false + } + delete(reactor.operations, id) + return true +} + +func (reactor *Reactor) allocateHandleLocked() uint64 { + reactor.nextHandle++ + return reactor.nextHandle +} + +func (reactor *Reactor) CancelOperation(id uint64) error { + reactor.mu.Lock() + kind, exists := reactor.operations[id] + if !exists { + reactor.mu.Unlock() + return nil + } + delete(reactor.operations, id) + + var cancel context.CancelFunc + var resource ioResource + var readTask streamReadTask + var signalCompletion bool + switch kind { + case operationRead: + readTask, signalCompletion = reactor.cancelStreamReadLocked(id) + case operationWrite: + reactor.cancelStreamWriteLocked(id) + case operationUDPRead: + delete(reactor.udpReads, id) + case operationUDPWrite: + delete(reactor.udpWrites, id) + case operationAccept: + delete(reactor.accepts, id) + case operationCreate: + create := reactor.creates[id] + delete(reactor.creates, id) + if create != nil { + cancel = create.cancel + resource = create.resource() + } + case operationDNS: + operation := reactor.dns[id] + delete(reactor.dns, id) + if operation != nil { + cancel = operation.cancel + } + case operationEnvironment: + operation := reactor.environments[id] + delete(reactor.environments, id) + if operation != nil { + cancel = operation.cancel + } + case operationPacketWrite: + delete(reactor.packetWrites, id) + case operationManagement: + operation := reactor.management[id] + delete(reactor.management, id) + if operation != nil { + cancel = operation.cancel + } + default: + reactor.mu.Unlock() + return fmt.Errorf("%w: unknown operation kind %d", ErrInvalid, kind) + } + reactor.mu.Unlock() + readTask.launch(reactor) + if signalCompletion { + reactor.signalCompletion() + } + if cancel != nil { + cancel() + } + if resource != nil { + _ = resource.Close() + } + return nil +} + +type ioResource interface { + Close() error +} + +func (reactor *Reactor) CloseHandle(handle uint64) error { + reactor.mu.Lock() + stream := reactor.streams[handle] + delete(reactor.streams, handle) + streamCompletion := false + if stream != nil { + streamCompletion = reactor.closeStreamLocked(stream) + } + datagram := reactor.datagrams[handle] + delete(reactor.datagrams, handle) + if datagram != nil { + reactor.drainingDatagrams[datagram] = struct{}{} + } + listener := reactor.listeners[handle] + delete(reactor.listeners, handle) + reactor.mu.Unlock() + if streamCompletion { + reactor.signalCompletion() + } + + if stream == nil && datagram == nil && listener == nil { + return nil + } + var closeErrors []error + if stream != nil { + if err := stream.connection.Close(); err != nil && !errors.Is(err, net.ErrClosed) { + closeErrors = append(closeErrors, err) + } + } + if datagram != nil { + datagram.closeAfterQueuedSends() + } + if listener != nil { + if err := listener.listener.Close(); err != nil && !errors.Is(err, net.ErrClosed) { + closeErrors = append(closeErrors, err) + } + for _, connection := range listener.accepted { + _ = connection.Close() + } + } + return errors.Join(closeErrors...) +} + +func (reactor *Reactor) Close() { + reactor.mu.Lock() + if reactor.closed { + done := reactor.closeDone + reactor.mu.Unlock() + <-done + return + } + reactor.closed = true + reactor.cancel() + + streams := reactor.streams + datagrams := reactor.datagrams + drainingDatagrams := reactor.drainingDatagrams + listeners := reactor.listeners + creates := reactor.creates + dnsOperations := reactor.dns + environmentOperations := reactor.environments + managementOperations := reactor.management + for _, stream := range streams { + stream.shutdownLocked() + } + + reactor.operations = make(map[uint64]operationKind) + reactor.streams = make(map[uint64]*streamState) + reactor.datagrams = make(map[uint64]*datagramState) + reactor.drainingDatagrams = make(map[*datagramState]struct{}) + reactor.listeners = make(map[uint64]*listenerState) + reactor.reads = make(map[uint64]*readOperation) + reactor.writes = make(map[uint64]*writeOperation) + reactor.udpReads = make(map[uint64]*udpReadWaiter) + reactor.udpWrites = make(map[uint64]*udpWriteWaiter) + reactor.accepts = make(map[uint64]*acceptWaiter) + reactor.creates = make(map[uint64]*createOperation) + reactor.dns = make(map[uint64]*dnsOperation) + reactor.environments = make(map[uint64]*environmentOperation) + reactor.eventSinks = make(map[uint64]eventSink) + reactor.packetSinks = make(map[uint64]*packetSink) + reactor.packetWrites = make(map[uint64]*packetWriteWaiter) + reactor.management = make(map[uint64]*managementOperation) + reactor.mu.Unlock() + + for _, stream := range streams { + _ = stream.connection.Close() + } + for _, datagram := range datagrams { + datagram.closeNow() + } + for datagram := range drainingDatagrams { + datagram.closeNow() + } + for _, listener := range listeners { + _ = listener.listener.Close() + for _, connection := range listener.accepted { + _ = connection.Close() + } + } + for _, create := range creates { + create.cancel() + if resource := create.resource(); resource != nil { + _ = resource.Close() + } + } + for _, operation := range dnsOperations { + operation.cancel() + } + for _, operation := range environmentOperations { + operation.cancel() + } + for _, operation := range managementOperations { + operation.cancel() + } + reactor.workers.Wait() + close(reactor.closeDone) +} diff --git a/easytier-go/internal/reactor/reactor_test.go b/easytier-go/internal/reactor/reactor_test.go new file mode 100644 index 00000000..26e599ed --- /dev/null +++ b/easytier-go/internal/reactor/reactor_test.go @@ -0,0 +1,531 @@ +package reactor + +import ( + "context" + "errors" + "net" + "sync" + "testing" + "time" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +func TestOperationIDsAreUniqueAcrossOperationKinds(t *testing.T) { + host, peer := net.Pipe() + defer peer.Close() + runtime := New(context.Background(), Options{ + InitialStreams: map[uint64]net.Conn{1: host}, + }) + defer runtime.Close() + if err := runtime.StartRead(1, 99, 1); err != nil { + t.Fatalf("start read: %v", err) + } + if err := runtime.StartWrite(1, 99, []byte("x")); !errors.Is(err, ErrInvalid) { + t.Fatalf("duplicate cross-kind operation error = %v, want invalid", err) + } + if err := runtime.CancelOperation(99); err != nil { + t.Fatalf("cancel read: %v", err) + } + if err := runtime.StartWrite(1, 99, []byte("x")); err != nil { + t.Fatalf("reuse released operation ID: %v", err) + } +} + +type blockingSocketFactory struct { + started chan struct{} + once sync.Once +} + +func (factory *blockingSocketFactory) ConnectTCP( + ctx context.Context, + _ platform.TCPConnectOptions, +) (net.Conn, error) { + factory.once.Do(func() { close(factory.started) }) + <-ctx.Done() + return nil, ctx.Err() +} + +func (*blockingSocketFactory) BindUDP( + context.Context, + platform.UDPBindOptions, +) (net.PacketConn, error) { + return nil, errors.New("not used") +} + +func (*blockingSocketFactory) ListenTCP( + context.Context, + platform.TCPListenOptions, +) (net.Listener, error) { + return nil, errors.New("not used") +} + +func TestCloseCancelsInstanceScopedOperations(t *testing.T) { + factory := &blockingSocketFactory{started: make(chan struct{})} + runtime := New(context.Background(), Options{ + Services: platform.Services{Sockets: factory}, + }) + if err := runtime.StartTCPConnect(1, platform.TCPConnectOptions{}); err != nil { + t.Fatalf("start TCP connect: %v", err) + } + select { + case <-factory.started: + case <-time.After(time.Second): + t.Fatal("socket factory did not start") + } + closed := make(chan struct{}) + go func() { + runtime.Close() + close(closed) + }() + select { + case <-closed: + case <-time.After(time.Second): + t.Fatal("reactor close did not cancel socket factory") + } +} + +func TestCreateTakeMustMatchStartKind(t *testing.T) { + factory := &blockingSocketFactory{started: make(chan struct{})} + runtime := New(context.Background(), Options{ + Services: platform.Services{Sockets: factory}, + }) + defer runtime.Close() + if err := runtime.StartTCPConnect(1, platform.TCPConnectOptions{}); err != nil { + t.Fatalf("start TCP connect: %v", err) + } + if _, err := runtime.TakeUDPBind(1); !errors.Is(err, ErrInvalid) { + t.Fatalf("take TCP connect as UDP bind error = %v, want invalid", err) + } + if err := runtime.CancelOperation(1); err != nil { + t.Fatalf("cancel TCP connect: %v", err) + } +} + +func TestReceivePacketUnblocksWhenReactorCloses(t *testing.T) { + runtime := New(context.Background(), Options{}) + handle, err := runtime.RegisterPacketSink(1) + if err != nil { + t.Fatalf("register packet sink: %v", err) + } + result := make(chan error, 1) + go func() { + _, err := runtime.ReceivePacket(context.Background(), handle) + result <- err + }() + runtime.Close() + select { + case err := <-result: + if err == nil { + t.Fatal("packet receive succeeded after close") + } + case <-time.After(time.Second): + t.Fatal("packet receive remained blocked after close") + } +} + +func TestEventSinkRejectsFullAndUnregisteredWrites(t *testing.T) { + runtime := New(context.Background(), Options{}) + defer runtime.Close() + events := make(chan string, 1) + handle, err := runtime.RegisterEventSink(func(kind, message string) bool { + select { + case events <- kind + ":" + message: + return true + default: + return false + } + }) + if err != nil { + t.Fatalf("register event sink: %v", err) + } + if err := runtime.TryEventWrite(handle, "peer_added", "PeerAdded(7)"); err != nil { + t.Fatalf("write event: %v", err) + } + if err := runtime.TryEventWrite(handle, "peer_removed", "PeerRemoved(7)"); !errors.Is( + err, + ErrWouldBlock, + ) { + t.Fatalf("full event sink error = %v, want would block", err) + } + if event := <-events; event != "peer_added:PeerAdded(7)" { + t.Fatalf("event = %q", event) + } + runtime.UnregisterEventSink(handle) + if err := runtime.TryEventWrite(handle, "peer_removed", "PeerRemoved(7)"); !errors.Is( + err, + ErrInvalid, + ) { + t.Fatalf("unregistered event sink error = %v, want invalid", err) + } +} + +func TestReceivePacketUnblocksWhenSinkIsUnregistered(t *testing.T) { + runtime := New(context.Background(), Options{}) + defer runtime.Close() + handle, err := runtime.RegisterPacketSink(1) + if err != nil { + t.Fatalf("register packet sink: %v", err) + } + result := make(chan error, 1) + go func() { + _, err := runtime.ReceivePacket(context.Background(), handle) + result <- err + }() + runtime.UnregisterPacketSink(handle) + select { + case err := <-result: + if !errors.Is(err, net.ErrClosed) { + t.Fatalf("packet receive error = %v, want net.ErrClosed", err) + } + case <-time.After(time.Second): + t.Fatal("packet receive remained blocked after sink unregister") + } +} + +func TestConcurrentCloseWaitsForOneCleanup(t *testing.T) { + runtime := New(context.Background(), Options{}) + var workers sync.WaitGroup + workers.Add(2) + for worker := 0; worker < 2; worker++ { + go func() { + defer workers.Done() + runtime.Close() + }() + } + done := make(chan struct{}) + go func() { + workers.Wait() + close(done) + }() + select { + case <-done: + case <-time.After(time.Second): + t.Fatal("concurrent close did not converge") + } +} + +func TestUDPSendWorkerWritesQueuedDatagram(t *testing.T) { + hostPacket, err := net.ListenPacket("udp4", "127.0.0.1:0") + if err != nil { + t.Fatalf("listen host UDP: %v", err) + } + peerPacket, err := net.ListenPacket("udp4", "127.0.0.1:0") + if err != nil { + hostPacket.Close() + t.Fatalf("listen peer UDP: %v", err) + } + defer peerPacket.Close() + const handle uint64 = 17 + runtime := New(context.Background(), Options{ + InitialDatagrams: map[uint64]net.PacketConn{handle: hostPacket}, + }) + defer runtime.Close() + peer := peerPacket.LocalAddr().(*net.UDPAddr) + if err := runtime.TryUDPSend(handle, []byte("udp"), peer); err != nil { + t.Fatalf("queue UDP send: %v", err) + } + if err := peerPacket.SetReadDeadline(time.Now().Add(time.Second)); err != nil { + t.Fatal(err) + } + buffer := make([]byte, 16) + n, _, err := peerPacket.ReadFrom(buffer) + if err != nil { + t.Fatalf("read queued UDP send: %v", err) + } + if string(buffer[:n]) != "udp" { + t.Fatalf("queued UDP payload = %q", buffer[:n]) + } +} + +type blockingWritePacketConn struct { + writeStarted chan struct{} + closed chan struct{} + startOnce sync.Once + closeOnce sync.Once +} + +func newBlockingWritePacketConn() *blockingWritePacketConn { + return &blockingWritePacketConn{ + writeStarted: make(chan struct{}), + closed: make(chan struct{}), + } +} + +func (connection *blockingWritePacketConn) ReadFrom([]byte) (int, net.Addr, error) { + <-connection.closed + return 0, nil, net.ErrClosed +} + +func (connection *blockingWritePacketConn) WriteTo( + []byte, + net.Addr, +) (int, error) { + connection.startOnce.Do(func() { close(connection.writeStarted) }) + <-connection.closed + return 0, net.ErrClosed +} + +func (connection *blockingWritePacketConn) Close() error { + connection.closeOnce.Do(func() { close(connection.closed) }) + return nil +} + +func (*blockingWritePacketConn) LocalAddr() net.Addr { + return &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1)} +} + +func (*blockingWritePacketConn) SetDeadline(time.Time) error { return nil } +func (*blockingWritePacketConn) SetReadDeadline(time.Time) error { return nil } +func (*blockingWritePacketConn) SetWriteDeadline(time.Time) error { return nil } + +func TestCloseForcesClosedHandleWithBlockedUDPSend(t *testing.T) { + const handle uint64 = 23 + connection := newBlockingWritePacketConn() + runtime := New(context.Background(), Options{ + InitialDatagrams: map[uint64]net.PacketConn{handle: connection}, + }) + if err := runtime.TryUDPSend( + handle, + []byte("blocked"), + &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1), Port: 1}, + ); err != nil { + t.Fatalf("queue UDP send: %v", err) + } + select { + case <-connection.writeStarted: + case <-time.After(time.Second): + connection.Close() + runtime.Close() + t.Fatal("UDP write did not start") + } + if err := runtime.CloseHandle(handle); err != nil { + connection.Close() + runtime.Close() + t.Fatalf("close UDP handle: %v", err) + } + + closed := make(chan struct{}) + go func() { + runtime.Close() + close(closed) + }() + select { + case <-closed: + case <-time.After(time.Second): + connection.Close() + <-closed + t.Fatal("reactor close did not force-close draining UDP socket") + } +} + +var errTransientUDPRead = errors.New("transient UDP read error") + +type retryReadPacketConn struct { + firstReadStarted chan struct{} + releaseFirstRead chan struct{} + secondReadStarted chan struct{} + secondPayload chan []byte + closed chan struct{} + closeOnce sync.Once + mu sync.Mutex + readCount int +} + +func newRetryReadPacketConn() *retryReadPacketConn { + return &retryReadPacketConn{ + firstReadStarted: make(chan struct{}), + releaseFirstRead: make(chan struct{}), + secondReadStarted: make(chan struct{}), + secondPayload: make(chan []byte), + closed: make(chan struct{}), + } +} + +func (connection *retryReadPacketConn) ReadFrom(buffer []byte) (int, net.Addr, error) { + connection.mu.Lock() + connection.readCount++ + readCount := connection.readCount + connection.mu.Unlock() + + switch readCount { + case 1: + close(connection.firstReadStarted) + select { + case <-connection.releaseFirstRead: + return 0, nil, errTransientUDPRead + case <-connection.closed: + return 0, nil, net.ErrClosed + } + case 2: + close(connection.secondReadStarted) + select { + case payload := <-connection.secondPayload: + return copy(buffer, payload), &net.UDPAddr{ + IP: net.IPv4(127, 0, 0, 1), + Port: 2, + }, nil + case <-connection.closed: + return 0, nil, net.ErrClosed + } + default: + <-connection.closed + return 0, nil, net.ErrClosed + } +} + +func (*retryReadPacketConn) WriteTo(payload []byte, _ net.Addr) (int, error) { + return len(payload), nil +} + +func (connection *retryReadPacketConn) Close() error { + connection.closeOnce.Do(func() { close(connection.closed) }) + return nil +} + +func (*retryReadPacketConn) LocalAddr() net.Addr { + return &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1)} +} + +func (*retryReadPacketConn) SetDeadline(time.Time) error { return nil } +func (*retryReadPacketConn) SetReadDeadline(time.Time) error { return nil } +func (*retryReadPacketConn) SetWriteDeadline(time.Time) error { return nil } + +func TestUDPReceiveErrorRestartsWorkerForRemainingWaiter(t *testing.T) { + const handle uint64 = 29 + connection := newRetryReadPacketConn() + runtime := New(context.Background(), Options{ + InitialDatagrams: map[uint64]net.PacketConn{handle: connection}, + }) + defer runtime.Close() + + if err := runtime.StartUDPReceive(handle, 1); err != nil { + t.Fatalf("start first UDP receive: %v", err) + } + select { + case <-connection.firstReadStarted: + case <-time.After(time.Second): + t.Fatal("first UDP read did not start") + } + if err := runtime.StartUDPReceive(handle, 2); err != nil { + t.Fatalf("start second UDP receive: %v", err) + } + close(connection.releaseFirstRead) + select { + case <-runtime.Completions(): + case <-time.After(time.Second): + t.Fatal("transient UDP read error did not signal completion") + } + if _, err := runtime.TakeUDPReceive(1, 64); !errors.Is(err, errTransientUDPRead) { + t.Fatalf("first UDP receive error = %v, want transient error", err) + } + + select { + case <-connection.secondReadStarted: + case <-time.After(time.Second): + t.Fatal("remaining UDP waiter did not restart receive worker") + } + connection.secondPayload <- []byte("retry") + select { + case <-runtime.Completions(): + case <-time.After(time.Second): + t.Fatal("retried UDP read did not signal completion") + } + datagram, err := runtime.TakeUDPReceive(2, 64) + if err != nil { + t.Fatalf("take retried UDP receive: %v", err) + } + if string(datagram.Data) != "retry" { + t.Fatalf("retried UDP payload = %q, want retry", datagram.Data) + } +} + +type prefetchPacketConn struct { + readStarted chan struct{} + payloads chan []byte + closed chan struct{} + closeOnce sync.Once +} + +func newPrefetchPacketConn() *prefetchPacketConn { + return &prefetchPacketConn{ + readStarted: make(chan struct{}, 3), + payloads: make(chan []byte, 2), + closed: make(chan struct{}), + } +} + +func (connection *prefetchPacketConn) ReadFrom(buffer []byte) (int, net.Addr, error) { + connection.readStarted <- struct{}{} + select { + case payload := <-connection.payloads: + return copy(buffer, payload), &net.UDPAddr{ + IP: net.IPv4(127, 0, 0, 1), + Port: 3, + }, nil + case <-connection.closed: + return 0, nil, net.ErrClosed + } +} + +func (*prefetchPacketConn) WriteTo(payload []byte, _ net.Addr) (int, error) { + return len(payload), nil +} + +func (connection *prefetchPacketConn) Close() error { + connection.closeOnce.Do(func() { close(connection.closed) }) + return nil +} + +func (*prefetchPacketConn) LocalAddr() net.Addr { + return &net.UDPAddr{IP: net.IPv4(127, 0, 0, 1)} +} + +func (*prefetchPacketConn) SetDeadline(time.Time) error { return nil } +func (*prefetchPacketConn) SetReadDeadline(time.Time) error { return nil } +func (*prefetchPacketConn) SetWriteDeadline(time.Time) error { return nil } + +func TestUDPReceivePrefetchesWhileWaiterIsPending(t *testing.T) { + const handle uint64 = 31 + connection := newPrefetchPacketConn() + runtime := New(context.Background(), Options{ + InitialDatagrams: map[uint64]net.PacketConn{handle: connection}, + }) + defer runtime.Close() + + if err := runtime.StartUDPReceive(handle, 1); err != nil { + t.Fatalf("start first UDP receive: %v", err) + } + waitForUDPReadStart(t, connection) + connection.payloads <- []byte("first") + waitForUDPReadStart(t, connection) + connection.payloads <- []byte("second") + waitForUDPReadStart(t, connection) + + first, err := runtime.TakeUDPReceive(1, 64) + if err != nil { + t.Fatalf("take first prefetched UDP receive: %v", err) + } + if string(first.Data) != "first" { + t.Fatalf("first prefetched UDP payload = %q, want first", first.Data) + } + if err := runtime.StartUDPReceive(handle, 2); err != nil { + t.Fatalf("start second UDP receive: %v", err) + } + second, err := runtime.TakeUDPReceive(2, 64) + if err != nil { + t.Fatalf("take second prefetched UDP receive: %v", err) + } + if string(second.Data) != "second" { + t.Fatalf("second prefetched UDP payload = %q, want second", second.Data) + } +} + +func waitForUDPReadStart(t *testing.T, connection *prefetchPacketConn) { + t.Helper() + select { + case <-connection.readStarted: + case <-time.After(time.Second): + t.Fatal("UDP read did not start") + } +} diff --git a/easytier-go/internal/reactor/stream.go b/easytier-go/internal/reactor/stream.go new file mode 100644 index 00000000..037593b3 --- /dev/null +++ b/easytier-go/internal/reactor/stream.go @@ -0,0 +1,363 @@ +package reactor + +import ( + "errors" + "io" + "net" +) + +type streamState struct { + connection net.Conn + closed bool + + readQueue []*readOperation + readRunning bool + readReady bool + readData []byte + readErr error + + writeQueue []*writeOperation + writeRunning bool + writeActive *writeOperation +} + +type readOperation struct { + capacity uint32 + stream *streamState +} + +type writeOperation struct { + operation uint64 + stream *streamState + data []byte + done bool + err error +} + +type streamReadTask struct { + capacity uint32 + stream *streamState +} + +func newStreamState(connection net.Conn) *streamState { + return &streamState{connection: connection} +} + +func (task streamReadTask) launch(reactor *Reactor) { + if task.stream != nil { + go reactor.runStreamRead(task.capacity, task.stream) + } +} + +func (reactor *Reactor) StartRead(handle, operation uint64, capacity uint32) error { + reactor.mu.Lock() + stream, exists := reactor.streams[handle] + if !exists || capacity == 0 { + reactor.mu.Unlock() + return ErrInvalid + } + if err := reactor.claimOperationLocked(operation, operationRead); err != nil { + reactor.mu.Unlock() + return err + } + waiter := &readOperation{ + capacity: capacity, + stream: stream, + } + reactor.reads[operation] = waiter + stream.readQueue = append(stream.readQueue, waiter) + ready := stream.readAvailableLocked() + task := reactor.prepareStreamReadLocked(stream) + reactor.mu.Unlock() + + task.launch(reactor) + if ready { + reactor.signalCompletion() + } + return nil +} + +func (reactor *Reactor) prepareStreamReadLocked(stream *streamState) streamReadTask { + if reactor.closed || + stream.closed || + stream.readRunning || + stream.readReady || + len(stream.readQueue) == 0 { + return streamReadTask{} + } + stream.readRunning = true + reactor.workers.Add(1) + return streamReadTask{ + capacity: stream.readQueue[0].capacity, + stream: stream, + } +} + +func (reactor *Reactor) runStreamRead( + capacity uint32, + stream *streamState, +) { + defer reactor.workers.Done() + buffer := make([]byte, capacity) + n, err := stream.connection.Read(buffer) + + reactor.mu.Lock() + stream.readRunning = false + stream.readData = append(stream.readData[:0], buffer[:n]...) + stream.readErr = err + stream.readReady = true + ready := len(stream.readQueue) > 0 + reactor.mu.Unlock() + if ready { + reactor.signalCompletion() + } +} + +func (reactor *Reactor) TakeRead(operation uint64) ([]byte, error) { + reactor.mu.Lock() + waiter, exists := reactor.reads[operation] + if !exists || reactor.operations[operation] != operationRead { + reactor.mu.Unlock() + return nil, ErrInvalid + } + stream := waiter.stream + if len(stream.readQueue) == 0 || stream.readQueue[0] != waiter { + reactor.mu.Unlock() + return nil, ErrPending + } + if !stream.readAvailableLocked() { + reactor.mu.Unlock() + return nil, ErrPending + } + + var data []byte + var err error + if stream.readReady { + take := len(stream.readData) + if take > int(waiter.capacity) { + take = int(waiter.capacity) + } + data = append([]byte(nil), stream.readData[:take]...) + if take == len(stream.readData) { + stream.readData = nil + err = stream.readErr + stream.readErr = nil + stream.readReady = false + } else { + stream.readData = stream.readData[take:] + } + } else { + err = net.ErrClosed + } + + stream.readQueue[0] = nil + stream.readQueue = stream.readQueue[1:] + if len(stream.readQueue) == 0 { + stream.readQueue = nil + } + delete(reactor.reads, operation) + reactor.releaseOperationLocked(operation, operationRead) + ready := len(stream.readQueue) > 0 && stream.readAvailableLocked() + task := reactor.prepareStreamReadLocked(stream) + reactor.mu.Unlock() + + task.launch(reactor) + if ready { + reactor.signalCompletion() + } + if errors.Is(err, io.EOF) { + err = nil + } + return data, err +} + +func (reactor *Reactor) cancelStreamReadLocked( + operation uint64, +) (streamReadTask, bool) { + waiter := reactor.reads[operation] + delete(reactor.reads, operation) + if waiter == nil { + return streamReadTask{}, false + } + stream := waiter.stream + wasFirst := len(stream.readQueue) > 0 && stream.readQueue[0] == waiter + stream.readQueue = removeReadOperation(stream.readQueue, waiter) + ready := wasFirst && len(stream.readQueue) > 0 && stream.readAvailableLocked() + task := reactor.prepareStreamReadLocked(stream) + return task, ready +} + +func removeReadOperation( + queue []*readOperation, + operation *readOperation, +) []*readOperation { + for index, queued := range queue { + if queued != operation { + continue + } + copy(queue[index:], queue[index+1:]) + queue[len(queue)-1] = nil + queue = queue[:len(queue)-1] + if len(queue) == 0 { + return nil + } + return queue + } + return queue +} + +func (stream *streamState) readAvailableLocked() bool { + return stream.readReady || stream.closed && !stream.readRunning +} + +func (reactor *Reactor) StartWrite(handle, operation uint64, data []byte) error { + data = append([]byte(nil), data...) + reactor.mu.Lock() + stream, exists := reactor.streams[handle] + if !exists { + reactor.mu.Unlock() + return ErrInvalid + } + if err := reactor.claimOperationLocked(operation, operationWrite); err != nil { + reactor.mu.Unlock() + return err + } + request := &writeOperation{ + operation: operation, + stream: stream, + data: data, + } + reactor.writes[operation] = request + stream.writeQueue = append(stream.writeQueue, request) + startWorker := !stream.writeRunning + if startWorker { + stream.writeRunning = true + reactor.workers.Add(1) + } + reactor.mu.Unlock() + + if startWorker { + go reactor.runStreamWrites(stream) + } + return nil +} + +func (reactor *Reactor) runStreamWrites(stream *streamState) { + defer reactor.workers.Done() + for { + reactor.mu.Lock() + if reactor.closed || len(stream.writeQueue) == 0 { + stream.writeQueue = nil + stream.writeRunning = false + reactor.mu.Unlock() + return + } + request := stream.writeQueue[0] + stream.writeQueue[0] = nil + stream.writeQueue = stream.writeQueue[1:] + if len(stream.writeQueue) == 0 { + stream.writeQueue = nil + } + stream.writeActive = request + data := request.data + reactor.mu.Unlock() + + written := 0 + var writeErr error + for written < len(data) { + n, err := stream.connection.Write(data[written:]) + written += n + if err != nil { + writeErr = err + break + } + if n == 0 { + writeErr = io.ErrShortWrite + break + } + } + + reactor.mu.Lock() + stream.writeActive = nil + request.data = nil + ready := reactor.writes[request.operation] == request && + reactor.operations[request.operation] == operationWrite + if ready { + request.err = writeErr + request.done = true + } + reactor.mu.Unlock() + if ready { + reactor.signalCompletion() + } + } +} + +func (reactor *Reactor) TakeWrite(operation uint64) error { + reactor.mu.Lock() + result, exists := reactor.writes[operation] + if !exists || reactor.operations[operation] != operationWrite { + reactor.mu.Unlock() + return ErrInvalid + } + if !result.done { + reactor.mu.Unlock() + return ErrPending + } + delete(reactor.writes, operation) + reactor.releaseOperationLocked(operation, operationWrite) + err := result.err + reactor.mu.Unlock() + return err +} + +func (reactor *Reactor) cancelStreamWriteLocked(operation uint64) { + request := reactor.writes[operation] + delete(reactor.writes, operation) + if request == nil || request.stream.writeActive == request { + return + } + request.stream.writeQueue = removeWriteOperation(request.stream.writeQueue, request) + request.data = nil +} + +func removeWriteOperation( + queue []*writeOperation, + operation *writeOperation, +) []*writeOperation { + for index, queued := range queue { + if queued != operation { + continue + } + copy(queue[index:], queue[index+1:]) + queue[len(queue)-1] = nil + queue = queue[:len(queue)-1] + if len(queue) == 0 { + return nil + } + return queue + } + return queue +} + +func (reactor *Reactor) closeStreamLocked(stream *streamState) bool { + stream.closed = true + ready := len(stream.readQueue) > 0 && stream.readAvailableLocked() + for _, request := range stream.writeQueue { + request.data = nil + if reactor.writes[request.operation] != request { + continue + } + request.err = net.ErrClosed + request.done = true + ready = true + } + stream.writeQueue = nil + return ready +} + +func (stream *streamState) shutdownLocked() { + stream.closed = true + stream.readQueue = nil + stream.writeQueue = nil +} diff --git a/easytier-go/internal/reactor/stream_test.go b/easytier-go/internal/reactor/stream_test.go new file mode 100644 index 00000000..93aefd08 --- /dev/null +++ b/easytier-go/internal/reactor/stream_test.go @@ -0,0 +1,290 @@ +package reactor + +import ( + "context" + "errors" + "net" + "sync" + "testing" + "time" +) + +type controlledReadResult struct { + data []byte + err error +} + +type controlledReadRequest struct { + result chan controlledReadResult +} + +type controlledReadConn struct { + reads chan controlledReadRequest + closed chan struct{} + closeOnce sync.Once +} + +func newControlledReadConn() *controlledReadConn { + return &controlledReadConn{ + reads: make(chan controlledReadRequest, 2), + closed: make(chan struct{}), + } +} + +func (connection *controlledReadConn) Read(buffer []byte) (int, error) { + request := controlledReadRequest{result: make(chan controlledReadResult, 1)} + select { + case connection.reads <- request: + case <-connection.closed: + return 0, net.ErrClosed + } + select { + case result := <-request.result: + return copy(buffer, result.data), result.err + case <-connection.closed: + return 0, net.ErrClosed + } +} + +func (connection *controlledReadConn) Write(payload []byte) (int, error) { + select { + case <-connection.closed: + return 0, net.ErrClosed + default: + return len(payload), nil + } +} + +func (connection *controlledReadConn) Close() error { + connection.closeOnce.Do(func() { close(connection.closed) }) + return nil +} + +func (*controlledReadConn) LocalAddr() net.Addr { return streamTestAddr("local") } +func (*controlledReadConn) RemoteAddr() net.Addr { return streamTestAddr("remote") } + +func (*controlledReadConn) SetDeadline(time.Time) error { return nil } +func (*controlledReadConn) SetReadDeadline(time.Time) error { return nil } +func (*controlledReadConn) SetWriteDeadline(time.Time) error { return nil } + +type streamTestAddr string + +func (streamTestAddr) Network() string { return "test" } +func (address streamTestAddr) String() string { return string(address) } + +func waitForReadRequest(t *testing.T, connection *controlledReadConn) controlledReadRequest { + t.Helper() + select { + case request := <-connection.reads: + return request + case <-time.After(time.Second): + t.Fatal("stream read did not start") + return controlledReadRequest{} + } +} + +func waitForCompletion(t *testing.T, runtime *Reactor) { + t.Helper() + select { + case <-runtime.Completions(): + case <-time.After(time.Second): + t.Fatal("stream operation did not signal completion") + } +} + +func TestCanceledPendingReadPreservesDataForNextOperation(t *testing.T) { + const handle uint64 = 1 + connection := newControlledReadConn() + runtime := New(context.Background(), Options{ + InitialStreams: map[uint64]net.Conn{handle: connection}, + }) + defer runtime.Close() + + if err := runtime.StartRead(handle, 1, 4); err != nil { + t.Fatalf("start first read: %v", err) + } + request := waitForReadRequest(t, connection) + if err := runtime.CancelOperation(1); err != nil { + t.Fatalf("cancel first read: %v", err) + } + if err := runtime.StartRead(handle, 2, 2); err != nil { + t.Fatalf("start second read: %v", err) + } + request.result <- controlledReadResult{data: []byte("data")} + + waitForCompletion(t, runtime) + data, err := runtime.TakeRead(2) + if err != nil { + t.Fatalf("take second read: %v", err) + } + if string(data) != "da" { + t.Fatalf("second read data = %q, want da", data) + } + if err := runtime.StartRead(handle, 3, 2); err != nil { + t.Fatalf("start third read: %v", err) + } + waitForCompletion(t, runtime) + data, err = runtime.TakeRead(3) + if err != nil { + t.Fatalf("take third read: %v", err) + } + if string(data) != "ta" { + t.Fatalf("third read data = %q, want ta", data) + } +} + +func TestCanceledCompletedReadPreservesDataForNextOperation(t *testing.T) { + const handle uint64 = 1 + connection := newControlledReadConn() + runtime := New(context.Background(), Options{ + InitialStreams: map[uint64]net.Conn{handle: connection}, + }) + defer runtime.Close() + + if err := runtime.StartRead(handle, 1, 4); err != nil { + t.Fatalf("start first read: %v", err) + } + request := waitForReadRequest(t, connection) + request.result <- controlledReadResult{data: []byte("data")} + waitForCompletion(t, runtime) + if err := runtime.CancelOperation(1); err != nil { + t.Fatalf("cancel completed read: %v", err) + } + if err := runtime.StartRead(handle, 2, 4); err != nil { + t.Fatalf("start second read: %v", err) + } + + waitForCompletion(t, runtime) + data, err := runtime.TakeRead(2) + if err != nil { + t.Fatalf("take second read: %v", err) + } + if string(data) != "data" { + t.Fatalf("second read data = %q, want data", data) + } +} + +type blockingFirstWriteConn struct { + firstStarted chan struct{} + secondStarted chan struct{} + releaseFirst chan struct{} + closed chan struct{} + closeOnce sync.Once + mu sync.Mutex + writes int +} + +func newBlockingFirstWriteConn() *blockingFirstWriteConn { + return &blockingFirstWriteConn{ + firstStarted: make(chan struct{}), + secondStarted: make(chan struct{}), + releaseFirst: make(chan struct{}), + closed: make(chan struct{}), + } +} + +func (connection *blockingFirstWriteConn) Read([]byte) (int, error) { + <-connection.closed + return 0, net.ErrClosed +} + +func (connection *blockingFirstWriteConn) Write(payload []byte) (int, error) { + connection.mu.Lock() + connection.writes++ + write := connection.writes + connection.mu.Unlock() + + switch write { + case 1: + close(connection.firstStarted) + select { + case <-connection.releaseFirst: + case <-connection.closed: + return 0, net.ErrClosed + } + case 2: + close(connection.secondStarted) + } + return len(payload), nil +} + +func (connection *blockingFirstWriteConn) Close() error { + connection.closeOnce.Do(func() { close(connection.closed) }) + return nil +} + +func (*blockingFirstWriteConn) LocalAddr() net.Addr { return streamTestAddr("local") } +func (*blockingFirstWriteConn) RemoteAddr() net.Addr { return streamTestAddr("remote") } + +func (*blockingFirstWriteConn) SetDeadline(time.Time) error { return nil } +func (*blockingFirstWriteConn) SetReadDeadline(time.Time) error { return nil } +func (*blockingFirstWriteConn) SetWriteDeadline(time.Time) error { return nil } + +func TestCanceledWriteKeepsFollowingWriteSerialized(t *testing.T) { + const handle uint64 = 1 + connection := newBlockingFirstWriteConn() + runtime := New(context.Background(), Options{ + InitialStreams: map[uint64]net.Conn{handle: connection}, + }) + defer runtime.Close() + + if err := runtime.StartWrite(handle, 1, []byte("first")); err != nil { + t.Fatalf("start first write: %v", err) + } + select { + case <-connection.firstStarted: + case <-time.After(time.Second): + t.Fatal("first stream write did not start") + } + if err := runtime.CancelOperation(1); err != nil { + t.Fatalf("cancel first write: %v", err) + } + if err := runtime.StartWrite(handle, 2, []byte("second")); err != nil { + t.Fatalf("start second write: %v", err) + } + + select { + case <-connection.secondStarted: + t.Fatal("second stream write started before canceled write completed") + case <-time.After(100 * time.Millisecond): + } + close(connection.releaseFirst) + select { + case <-connection.secondStarted: + case <-time.After(time.Second): + t.Fatal("second stream write did not start after first completed") + } + waitForCompletion(t, runtime) + if err := runtime.TakeWrite(2); err != nil { + t.Fatalf("take second write: %v", err) + } +} + +func TestClosedHandleCompletesQueuedStreamWrite(t *testing.T) { + const handle uint64 = 1 + connection := newBlockingFirstWriteConn() + runtime := New(context.Background(), Options{ + InitialStreams: map[uint64]net.Conn{handle: connection}, + }) + defer runtime.Close() + + if err := runtime.StartWrite(handle, 1, []byte("first")); err != nil { + t.Fatalf("start first write: %v", err) + } + select { + case <-connection.firstStarted: + case <-time.After(time.Second): + t.Fatal("first stream write did not start") + } + if err := runtime.StartWrite(handle, 2, []byte("second")); err != nil { + t.Fatalf("start second write: %v", err) + } + if err := runtime.CloseHandle(handle); err != nil { + t.Fatalf("close stream handle: %v", err) + } + + waitForCompletion(t, runtime) + if err := runtime.TakeWrite(2); !errors.Is(err, net.ErrClosed) { + t.Fatalf("queued write error = %v, want net.ErrClosed", err) + } +} diff --git a/easytier-go/internal/reactor/udp.go b/easytier-go/internal/reactor/udp.go new file mode 100644 index 00000000..f04e6437 --- /dev/null +++ b/easytier-go/internal/reactor/udp.go @@ -0,0 +1,350 @@ +package reactor + +import ( + "fmt" + "net" + "sync" +) + +const ( + udpReceiveQueueCapacity = 64 + udpSendQueueCapacity = 64 +) + +type Datagram struct { + Data []byte + Peer *net.UDPAddr +} + +type udpSend struct { + data []byte + peer *net.UDPAddr +} + +type datagramState struct { + connection net.PacketConn + receiveBuffer []byte + received []Datagram + receiveRunning bool + receiveErr error + sendQueue chan udpSend + sendErr error + closeOnce sync.Once +} + +type udpReadWaiter struct { + handle uint64 + ready bool +} + +type udpWriteWaiter struct { + handle uint64 + ready bool +} + +func newDatagramState(connection net.PacketConn) *datagramState { + return &datagramState{ + connection: connection, + sendQueue: make(chan udpSend, udpSendQueueCapacity), + } +} + +func (state *datagramState) closeAfterQueuedSends() { + state.closeOnce.Do(func() { + close(state.sendQueue) + }) +} + +func (state *datagramState) closeNow() { + state.closeOnce.Do(func() { + close(state.sendQueue) + }) + _ = state.connection.Close() +} + +func (reactor *Reactor) runUDPSends(handle uint64, state *datagramState) { + defer reactor.workers.Done() + defer reactor.finishUDPSends(state) + defer state.connection.Close() + + for request := range state.sendQueue { + reactor.mu.Lock() + ready := false + for _, waiter := range reactor.udpWrites { + if waiter.handle == handle { + waiter.ready = true + ready = true + } + } + reactor.mu.Unlock() + if ready { + reactor.signalCompletion() + } + + n, err := state.connection.WriteTo(request.data, request.peer) + if err == nil && n != len(request.data) { + err = fmt.Errorf("short UDP write: %d of %d", n, len(request.data)) + } + if err != nil { + reactor.mu.Lock() + ready := false + if reactor.datagrams[handle] == state { + state.sendErr = err + for _, waiter := range reactor.udpWrites { + if waiter.handle == handle { + waiter.ready = true + ready = true + } + } + } + reactor.mu.Unlock() + if ready { + reactor.signalCompletion() + } + } + } +} + +func (reactor *Reactor) finishUDPSends(state *datagramState) { + reactor.mu.Lock() + delete(reactor.drainingDatagrams, state) + reactor.mu.Unlock() +} + +func (reactor *Reactor) StartUDPReceive(handle, operation uint64) error { + reactor.mu.Lock() + state, exists := reactor.datagrams[handle] + if !exists { + reactor.mu.Unlock() + return ErrInvalid + } + if err := reactor.claimOperationLocked(operation, operationUDPRead); err != nil { + reactor.mu.Unlock() + return err + } + waiter := &udpReadWaiter{ + handle: handle, + ready: len(state.received) > 0 || state.receiveErr != nil, + } + reactor.udpReads[operation] = waiter + startWorker := state.receiveErr == nil && + len(state.received) < udpReceiveQueueCapacity && + !state.receiveRunning + if startWorker { + state.receiveRunning = true + reactor.workers.Add(1) + } + reactor.mu.Unlock() + + if startWorker { + go reactor.runUDPReceive(handle, state) + } + if waiter.ready { + reactor.signalCompletion() + } + return nil +} + +func (reactor *Reactor) runUDPReceive(handle uint64, state *datagramState) { + defer reactor.workers.Done() + if state.receiveBuffer == nil { + state.receiveBuffer = make([]byte, 65535) + } + buffer := state.receiveBuffer + for { + n, peer, err := state.connection.ReadFrom(buffer) + + var udpPeer *net.UDPAddr + if err == nil { + var ok bool + udpPeer, ok = peer.(*net.UDPAddr) + if !ok { + err = fmt.Errorf("unsupported UDP peer address %T", peer) + } + } + + reactor.mu.Lock() + if reactor.datagrams[handle] != state { + reactor.mu.Unlock() + return + } + if err != nil { + state.receiveErr = err + } else { + state.received = append(state.received, Datagram{ + Data: append([]byte(nil), buffer[:n]...), + Peer: cloneUDPAddr(udpPeer), + }) + } + ready := false + for _, waiter := range reactor.udpReads { + if waiter.handle == handle { + waiter.ready = true + ready = true + } + } + continueReceiving := err == nil && + ready && + len(state.received) < udpReceiveQueueCapacity + if !continueReceiving { + state.receiveRunning = false + } + reactor.mu.Unlock() + if ready { + reactor.signalCompletion() + } + if !continueReceiving { + return + } + } +} + +func (reactor *Reactor) TakeUDPReceive(operation uint64, capacity uint32) (Datagram, error) { + reactor.mu.Lock() + waiter, exists := reactor.udpReads[operation] + if !exists || reactor.operations[operation] != operationUDPRead { + reactor.mu.Unlock() + return Datagram{}, ErrInvalid + } + state, exists := reactor.datagrams[waiter.handle] + if !exists { + delete(reactor.udpReads, operation) + reactor.releaseOperationLocked(operation, operationUDPRead) + reactor.mu.Unlock() + return Datagram{}, ErrInvalid + } + if len(state.received) == 0 { + if state.receiveErr == nil { + reactor.mu.Unlock() + return Datagram{}, ErrPending + } + err := state.receiveErr + state.receiveErr = nil + delete(reactor.udpReads, operation) + reactor.releaseOperationLocked(operation, operationUDPRead) + startWorker := len(state.received) < udpReceiveQueueCapacity && + !state.receiveRunning && + reactor.hasUDPReadWaiterLocked(waiter.handle) + if startWorker { + state.receiveRunning = true + reactor.workers.Add(1) + } + reactor.mu.Unlock() + if startWorker { + go reactor.runUDPReceive(waiter.handle, state) + } + return Datagram{}, err + } + + datagram := state.received[0] + state.received[0] = Datagram{} + state.received = state.received[1:] + delete(reactor.udpReads, operation) + reactor.releaseOperationLocked(operation, operationUDPRead) + startWorker := len(state.received) < udpReceiveQueueCapacity && + !state.receiveRunning && + reactor.hasUDPReadWaiterLocked(waiter.handle) + if startWorker { + state.receiveRunning = true + reactor.workers.Add(1) + } + reactor.mu.Unlock() + + if startWorker { + go reactor.runUDPReceive(waiter.handle, state) + } + if uint32(len(datagram.Data)) > capacity { + datagram.Data = datagram.Data[:capacity] + } + return datagram, nil +} + +func (reactor *Reactor) TryUDPSend(handle uint64, data []byte, peer *net.UDPAddr) error { + if peer == nil || len(data) > 65535 { + return ErrInvalid + } + reactor.mu.Lock() + defer reactor.mu.Unlock() + state, exists := reactor.datagrams[handle] + if !exists { + return ErrInvalid + } + if state.sendErr != nil { + return state.sendErr + } + if len(state.sendQueue) >= cap(state.sendQueue) { + return ErrWouldBlock + } + state.sendQueue <- udpSend{ + data: append([]byte(nil), data...), + peer: cloneUDPAddr(peer), + } + return nil +} + +func (reactor *Reactor) StartUDPSendReady(handle, operation uint64) error { + reactor.mu.Lock() + state, exists := reactor.datagrams[handle] + if !exists { + reactor.mu.Unlock() + return ErrInvalid + } + if err := reactor.claimOperationLocked(operation, operationUDPWrite); err != nil { + reactor.mu.Unlock() + return err + } + waiter := &udpWriteWaiter{ + handle: handle, + ready: len(state.sendQueue) < cap(state.sendQueue) || state.sendErr != nil, + } + reactor.udpWrites[operation] = waiter + ready := waiter.ready + reactor.mu.Unlock() + if ready { + reactor.signalCompletion() + } + return nil +} + +func (reactor *Reactor) TakeUDPSendReady(operation uint64) error { + reactor.mu.Lock() + waiter, exists := reactor.udpWrites[operation] + if !exists || reactor.operations[operation] != operationUDPWrite { + reactor.mu.Unlock() + return ErrInvalid + } + if !waiter.ready { + reactor.mu.Unlock() + return ErrPending + } + delete(reactor.udpWrites, operation) + reactor.releaseOperationLocked(operation, operationUDPWrite) + state, exists := reactor.datagrams[waiter.handle] + if !exists { + reactor.mu.Unlock() + return ErrInvalid + } + err := state.sendErr + reactor.mu.Unlock() + return err +} + +func (reactor *Reactor) hasUDPReadWaiterLocked(handle uint64) bool { + for _, waiter := range reactor.udpReads { + if waiter.handle == handle { + return true + } + } + return false +} + +func cloneUDPAddr(address *net.UDPAddr) *net.UDPAddr { + if address == nil { + return nil + } + return &net.UDPAddr{ + IP: append(net.IP(nil), address.IP...), + Port: address.Port, + Zone: address.Zone, + } +} diff --git a/easytier-go/platform/dns.go b/easytier-go/platform/dns.go new file mode 100644 index 00000000..50f9ff9c --- /dev/null +++ b/easytier-go/platform/dns.go @@ -0,0 +1,20 @@ +package platform + +import ( + "context" + "net" + "net/netip" +) + +type DNSQuery struct { + Host string + IPVersion uint8 + SocketMark *uint32 + NetNS *string +} + +type DNSResolver interface { + LookupIP(context.Context, DNSQuery) ([]netip.Addr, error) + LookupTXT(context.Context, DNSQuery) (string, error) + LookupSRV(context.Context, DNSQuery) ([]*net.SRV, error) +} diff --git a/easytier-go/platform/environment.go b/easytier-go/platform/environment.go new file mode 100644 index 00000000..a3da4caf --- /dev/null +++ b/easytier-go/platform/environment.go @@ -0,0 +1,42 @@ +package platform + +import ( + "context" + "net" + "net/netip" +) + +type ConnectorEnvironment interface { + LocalAddrForRemote(context.Context, *net.UDPAddr, SocketContext) (net.Addr, error) +} + +// EnvironmentSnapshot is the host-observed network state captured when an +// EasyTier instance is created. Core remains responsible for all policy +// decisions made from these facts. +// +// TODO: Split static declarations from dynamic network facts and add a +// versioned, event-driven host ABI update path. This snapshot is currently +// frozen at CreateInstance, so long-lived instances do not observe interface, +// address, or preferred-source changes. +type EnvironmentSnapshot struct { + PublicIPv4 *netip.Addr + InterfaceIPv4s []netip.Addr + PublicIPv6 *netip.Addr + InterfaceIPv6s []netip.Addr + MappedListeners []string + LocalIPs []netip.Addr + ProtectedTCPPorts []uint16 + PreferredIPv6Sources []PreferredIPv6Source +} + +type PreferredIPv6Source struct { + IP netip.Addr + IfIndex uint32 +} + +type Services struct { + Sockets SocketFactory + DNS DNSResolver + Environment ConnectorEnvironment + Snapshot EnvironmentSnapshot +} diff --git a/easytier-go/platform/netstd/netstd.go b/easytier-go/platform/netstd/netstd.go new file mode 100644 index 00000000..2df1c6e9 --- /dev/null +++ b/easytier-go/platform/netstd/netstd.go @@ -0,0 +1,198 @@ +package netstd + +import ( + "context" + "fmt" + "net" + "net/netip" + "syscall" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +// SocketFactory implements platform.SocketFactory with the Go standard +// library and the socket controls required by EasyTier hole punching. +type SocketFactory struct{} + +func (SocketFactory) ConnectTCP( + ctx context.Context, + options platform.TCPConnectOptions, +) (net.Conn, error) { + if options.Purpose == platform.TCPConnectFake { + return nil, fmt.Errorf("FakeTCP is not supported by netstd") + } + if err := validateTCPBindOptions(options.Bind); err != nil { + return nil, err + } + dialer := net.Dialer{ + LocalAddr: options.Bind.LocalAddr, + Control: tcpControl(options.Bind), + } + connection, err := dialer.DialContext(ctx, "tcp", options.RemoteAddr.String()) + if err != nil { + return nil, err + } + if options.Purpose == platform.TCPConnectSTUNProbe { + if err := connection.(*net.TCPConn).SetLinger(0); err != nil { + _ = connection.Close() + return nil, fmt.Errorf("set TCP STUN probe linger: %w", err) + } + } + return connection, nil +} + +func (SocketFactory) BindUDP( + _ context.Context, + options platform.UDPBindOptions, +) (net.PacketConn, error) { + if options.Context.SocketMark != nil || options.Context.NetNS != nil || + options.BindDevice != nil || options.ReuseAddr || options.ReusePort { + return nil, fmt.Errorf("non-default UDP bind policy is not supported by netstd") + } + return net.ListenUDP(udpNetwork(options), options.LocalAddr) +} + +func (SocketFactory) ListenTCP( + ctx context.Context, + options platform.TCPListenOptions, +) (net.Listener, error) { + if err := validateTCPBindOptions(options.Bind); err != nil { + return nil, err + } + config := net.ListenConfig{Control: tcpControl(options.Bind)} + return config.Listen(ctx, "tcp", options.Bind.LocalAddr.String()) +} + +func udpNetwork(options platform.UDPBindOptions) string { + if options.LocalAddr != nil && options.LocalAddr.IP.To4() != nil { + return "udp4" + } + if options.OnlyV6 { + return "udp6" + } + if options.LocalAddr != nil && len(options.LocalAddr.IP) != 0 { + return "udp" + } + if options.Context.IPVersion == platform.IPVersionV4 { + return "udp4" + } + return "udp" +} + +func validateTCPBindOptions(options platform.TCPBindOptions) error { + if options.Context.SocketMark != nil || options.Context.NetNS != nil || + options.BindDevice != nil { + return fmt.Errorf("non-default TCP bind policy is not supported by netstd") + } + return nil +} + +func tcpControl( + options platform.TCPBindOptions, +) func(string, string, syscall.RawConn) error { + return func(network, _ string, connection syscall.RawConn) error { + var socketErr error + if err := connection.Control(func(descriptor uintptr) { + socketErr = applyTCPSocketOptions(descriptor, network, options) + }); err != nil { + return err + } + return socketErr + } +} + +func boolInt(value bool) int { + if value { + return 1 + } + return 0 +} + +type DNSResolver struct { + Resolver *net.Resolver +} + +func (resolver DNSResolver) configured() *net.Resolver { + if resolver.Resolver != nil { + return resolver.Resolver + } + return net.DefaultResolver +} + +func (resolver DNSResolver) LookupIP( + ctx context.Context, + query platform.DNSQuery, +) ([]netip.Addr, error) { + if address, err := netip.ParseAddr(query.Host); err == nil { + return []netip.Addr{address.Unmap()}, nil + } + network := "ip" + switch query.IPVersion { + case 4: + network = "ip4" + case 6: + network = "ip6" + } + addresses, err := resolver.configured().LookupNetIP(ctx, network, query.Host) + if err != nil { + return nil, err + } + for index := range addresses { + addresses[index] = addresses[index].Unmap() + } + return addresses, nil +} + +func (resolver DNSResolver) LookupTXT( + ctx context.Context, + query platform.DNSQuery, +) (string, error) { + records, err := resolver.configured().LookupTXT(ctx, query.Host) + if err != nil { + return "", err + } + if len(records) == 0 { + return "", fmt.Errorf("DNS TXT query for %q returned no records", query.Host) + } + return records[0], nil +} + +func (resolver DNSResolver) LookupSRV( + ctx context.Context, + query platform.DNSQuery, +) ([]*net.SRV, error) { + _, records, err := resolver.configured().LookupSRV(ctx, "", "", query.Host) + return records, err +} + +type ConnectorEnvironment struct{} + +func (ConnectorEnvironment) LocalAddrForRemote( + ctx context.Context, + remote *net.UDPAddr, + socketContext platform.SocketContext, +) (net.Addr, error) { + if socketContext.SocketMark != nil || socketContext.NetNS != nil { + return nil, fmt.Errorf("non-default connector context is not supported by netstd") + } + network := "udp" + if remote.IP.To4() != nil { + network = "udp4" + } else if remote.IP.To16() != nil { + network = "udp6" + } + connection, err := (&net.Dialer{}).DialContext(ctx, network, remote.String()) + if err != nil { + return nil, err + } + defer connection.Close() + return connection.LocalAddr(), nil +} + +func Services() platform.Services { + return platform.Services{ + Sockets: SocketFactory{}, + DNS: DNSResolver{}, + Environment: ConnectorEnvironment{}, + } +} diff --git a/easytier-go/platform/netstd/netstd_test.go b/easytier-go/platform/netstd/netstd_test.go new file mode 100644 index 00000000..8686d0c7 --- /dev/null +++ b/easytier-go/platform/netstd/netstd_test.go @@ -0,0 +1,109 @@ +package netstd + +import ( + "context" + "net" + "testing" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +func TestDNSResolverNormalizesIPv4Literal(t *testing.T) { + addresses, err := (DNSResolver{}).LookupIP( + context.Background(), + platform.DNSQuery{Host: "127.0.0.1"}, + ) + if err != nil { + t.Fatalf("resolve IPv4 literal: %v", err) + } + if len(addresses) != 1 || !addresses[0].Is4() { + t.Fatalf("resolved addresses = %v, want one canonical IPv4", addresses) + } +} + +func TestSocketFactoryReusesTCPSourcePort(t *testing.T) { + firstServer := listenTCP4(t) + defer firstServer.Close() + secondServer := listenTCP4(t) + defer secondServer.Close() + sourcePort := unusedTCP4Port(t) + + reuse := true + bind := platform.TCPBindOptions{ + Context: platform.SocketContext{IPVersion: platform.IPVersionV4}, + LocalAddr: &net.TCPAddr{IP: net.IPv4zero, Port: sourcePort}, + ReuseAddr: &reuse, + ReusePort: true, + OnlyV6: true, + } + first := connectTCP(t, firstServer, bind, platform.TCPConnectSTUNProbe) + defer first.Close() + second := connectTCP(t, secondServer, bind, platform.TCPConnectSTUNProbe) + defer second.Close() + + if first.LocalAddr().(*net.TCPAddr).Port != sourcePort || + second.LocalAddr().(*net.TCPAddr).Port != sourcePort { + t.Fatalf("source ports = %v, %v, want %d", + first.LocalAddr(), second.LocalAddr(), sourcePort) + } +} + +func TestSocketFactoryAcceptsOnlyV6ForIPv4HolePunchListener(t *testing.T) { + listener, err := (SocketFactory{}).ListenTCP( + context.Background(), + platform.TCPListenOptions{ + Bind: platform.TCPBindOptions{ + Context: platform.SocketContext{IPVersion: platform.IPVersionV4}, + LocalAddr: &net.TCPAddr{IP: net.IPv4zero}, + OnlyV6: true, + }, + Purpose: platform.TCPListenHolePunch, + }, + ) + if err != nil { + t.Fatalf("listen for IPv4 TCP hole punch: %v", err) + } + if err := listener.Close(); err != nil { + t.Fatalf("close TCP hole punch listener: %v", err) + } +} + +func listenTCP4(t *testing.T) net.Listener { + t.Helper() + listener, err := net.Listen("tcp4", "127.0.0.1:0") + if err != nil { + t.Fatalf("listen on loopback: %v", err) + } + return listener +} + +func unusedTCP4Port(t *testing.T) int { + t.Helper() + listener := listenTCP4(t) + port := listener.Addr().(*net.TCPAddr).Port + if err := listener.Close(); err != nil { + t.Fatalf("release source port: %v", err) + } + return port +} + +func connectTCP( + t *testing.T, + server net.Listener, + bind platform.TCPBindOptions, + purpose platform.TCPConnectPurpose, +) net.Conn { + t.Helper() + connection, err := (SocketFactory{}).ConnectTCP( + context.Background(), + platform.TCPConnectOptions{ + RemoteAddr: server.Addr().(*net.TCPAddr), + Bind: bind, + Purpose: purpose, + }, + ) + if err != nil { + t.Fatalf("connect TCP socket: %v", err) + } + return connection +} diff --git a/easytier-go/platform/netstd/socket_options_other.go b/easytier-go/platform/netstd/socket_options_other.go new file mode 100644 index 00000000..fe97683c --- /dev/null +++ b/easytier-go/platform/netstd/socket_options_other.go @@ -0,0 +1,21 @@ +//go:build !aix && !android && !darwin && !dragonfly && !freebsd && !linux && !netbsd && !openbsd && !windows + +package netstd + +import ( + "fmt" + "runtime" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +func applyTCPSocketOptions( + _ uintptr, + _ string, + options platform.TCPBindOptions, +) error { + if options.ReuseAddr == nil && !options.ReusePort && !options.OnlyV6 { + return nil + } + return fmt.Errorf("TCP socket options are not supported on %s", runtime.GOOS) +} diff --git a/easytier-go/platform/netstd/socket_options_unix.go b/easytier-go/platform/netstd/socket_options_unix.go new file mode 100644 index 00000000..edde12f2 --- /dev/null +++ b/easytier-go/platform/netstd/socket_options_unix.go @@ -0,0 +1,36 @@ +//go:build aix || android || darwin || dragonfly || freebsd || linux || netbsd || openbsd + +package netstd + +import ( + "fmt" + + "github.com/EasyTier/EasyTier/easytier-go/platform" + "golang.org/x/sys/unix" +) + +func applyTCPSocketOptions( + descriptor uintptr, + network string, + options platform.TCPBindOptions, +) error { + fd := int(descriptor) + reuseAddr := true + if options.ReuseAddr != nil { + reuseAddr = *options.ReuseAddr + } + if err := unix.SetsockoptInt(fd, unix.SOL_SOCKET, unix.SO_REUSEADDR, boolInt(reuseAddr)); err != nil { + return fmt.Errorf("set TCP SO_REUSEADDR: %w", err) + } + if options.ReusePort { + if err := unix.SetsockoptInt(fd, unix.SOL_SOCKET, unix.SO_REUSEPORT, 1); err != nil { + return fmt.Errorf("set TCP SO_REUSEPORT: %w", err) + } + } + if options.OnlyV6 && network == "tcp6" { + if err := unix.SetsockoptInt(fd, unix.IPPROTO_IPV6, unix.IPV6_V6ONLY, 1); err != nil { + return fmt.Errorf("set TCP IPV6_V6ONLY: %w", err) + } + } + return nil +} diff --git a/easytier-go/platform/netstd/socket_options_unix_test.go b/easytier-go/platform/netstd/socket_options_unix_test.go new file mode 100644 index 00000000..fa04a800 --- /dev/null +++ b/easytier-go/platform/netstd/socket_options_unix_test.go @@ -0,0 +1,33 @@ +//go:build aix || android || darwin || dragonfly || freebsd || linux || netbsd || openbsd + +package netstd + +import ( + "net" + "testing" + + "github.com/EasyTier/EasyTier/easytier-go/platform" +) + +func TestSocketFactoryUsesNativeTCPReuseAddrDefault(t *testing.T) { + firstServer := listenTCP4(t) + defer firstServer.Close() + secondServer := listenTCP4(t) + defer secondServer.Close() + sourcePort := unusedTCP4Port(t) + + reuse := true + first := connectTCP(t, firstServer, platform.TCPBindOptions{ + Context: platform.SocketContext{IPVersion: platform.IPVersionV4}, + LocalAddr: &net.TCPAddr{IP: net.IPv4zero, Port: sourcePort}, + ReuseAddr: &reuse, + }, platform.TCPConnectSTUNProbe) + defer first.Close() + + second := connectTCP(t, secondServer, platform.TCPBindOptions{ + Context: platform.SocketContext{IPVersion: platform.IPVersionV4}, + LocalAddr: &net.TCPAddr{IP: net.IPv4zero, Port: sourcePort}, + OnlyV6: true, + }, platform.TCPConnectHolePunch) + defer second.Close() +} diff --git a/easytier-go/platform/netstd/socket_options_windows.go b/easytier-go/platform/netstd/socket_options_windows.go new file mode 100644 index 00000000..68a886a6 --- /dev/null +++ b/easytier-go/platform/netstd/socket_options_windows.go @@ -0,0 +1,38 @@ +//go:build windows + +package netstd + +import ( + "fmt" + + "github.com/EasyTier/EasyTier/easytier-go/platform" + "golang.org/x/sys/windows" +) + +func applyTCPSocketOptions( + descriptor uintptr, + network string, + options platform.TCPBindOptions, +) error { + reuseAddr := options.ReuseAddr + if options.ReusePort { + if reuseAddr != nil && !*reuseAddr { + return fmt.Errorf("TCP reuse_port requires reuse_addr on Windows") + } + enabled := true + reuseAddr = &enabled + } + if reuseAddr != nil { + if err := windows.SetsockoptInt(windows.Handle(descriptor), + windows.SOL_SOCKET, windows.SO_REUSEADDR, boolInt(*reuseAddr)); err != nil { + return fmt.Errorf("set TCP SO_REUSEADDR: %w", err) + } + } + if options.OnlyV6 && network == "tcp6" { + if err := windows.SetsockoptInt(windows.Handle(descriptor), + windows.IPPROTO_IPV6, windows.IPV6_V6ONLY, 1); err != nil { + return fmt.Errorf("set TCP IPV6_V6ONLY: %w", err) + } + } + return nil +} diff --git a/easytier-go/platform/socket.go b/easytier-go/platform/socket.go new file mode 100644 index 00000000..c22127a2 --- /dev/null +++ b/easytier-go/platform/socket.go @@ -0,0 +1,98 @@ +package platform + +import ( + "context" + "net" +) + +type TCPConnectPurpose uint8 + +const ( + TCPConnectDirect TCPConnectPurpose = iota + TCPConnectFake + TCPConnectHolePunch + TCPConnectManual + TCPConnectProxyNAT + TCPConnectSTUNProbe + TCPConnectSocks5 + TCPConnectPortForward + TCPConnectDataPlane +) + +type UDPBindPurpose uint8 + +const ( + UDPBindHolePunchControl UDPBindPurpose = iota + UDPBindHolePunchCandidate + UDPBindDirect + UDPBindPortBoundListener + UDPBindProxyNAT + UDPBindSTUNProbe + UDPBindSocks5 + UDPBindPortForward + UDPBindPortLease +) + +type TCPListenPurpose uint8 + +const ( + TCPListenDirect TCPListenPurpose = iota + TCPListenHolePunch + TCPListenManual + TCPListenProxyNAT + TCPListenSocks5 + TCPListenPortForward + TCPListenPortLease +) + +type IPVersion uint8 + +const ( + IPVersionV4 IPVersion = iota + IPVersionV6 + IPVersionBoth +) + +type SocketContext struct { + IPVersion IPVersion + SocketMark *uint32 + NetNS *string +} + +type TCPBindOptions struct { + Context SocketContext + LocalAddr *net.TCPAddr + BindDevice *string + ReuseAddr *bool + ReusePort bool + OnlyV6 bool +} + +type TCPConnectOptions struct { + RemoteAddr *net.TCPAddr + Bind TCPBindOptions + Purpose TCPConnectPurpose +} + +type UDPBindOptions struct { + Context SocketContext + LocalAddr *net.UDPAddr + BindDevice *string + ReuseAddr bool + ReusePort bool + OnlyV6 bool + Purpose UDPBindPurpose +} + +type TCPListenOptions struct { + Bind TCPBindOptions + Purpose TCPListenPurpose +} + +// SocketFactory creates sockets authorized for one EasyTier instance. +// The host runtime owns every resource returned after a successful call. +type SocketFactory interface { + ConnectTCP(context.Context, TCPConnectOptions) (net.Conn, error) + BindUDP(context.Context, UDPBindOptions) (net.PacketConn, error) + ListenTCP(context.Context, TCPListenOptions) (net.Listener, error) +} diff --git a/easytier-go/proto/acl/acl.pb.go b/easytier-go/proto/acl/acl.pb.go new file mode 100644 index 00000000..4a3ef976 --- /dev/null +++ b/easytier-go/proto/acl/acl.pb.go @@ -0,0 +1,1216 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.35.1 +// source: acl.proto + +package acl + +import ( + common "github.com/EasyTier/EasyTier/easytier-go/proto/common" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +// Enhanced protocol enum with more granular options +type Protocol int32 + +const ( + Protocol_Unspecified Protocol = 0 + Protocol_TCP Protocol = 1 + Protocol_UDP Protocol = 2 + Protocol_ICMP Protocol = 3 + Protocol_ICMPv6 Protocol = 4 + Protocol_Any Protocol = 5 +) + +// Enum value maps for Protocol. +var ( + Protocol_name = map[int32]string{ + 0: "Unspecified", + 1: "TCP", + 2: "UDP", + 3: "ICMP", + 4: "ICMPv6", + 5: "Any", + } + Protocol_value = map[string]int32{ + "Unspecified": 0, + "TCP": 1, + "UDP": 2, + "ICMP": 3, + "ICMPv6": 4, + "Any": 5, + } +) + +func (x Protocol) Enum() *Protocol { + p := new(Protocol) + *p = x + return p +} + +func (x Protocol) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Protocol) Descriptor() protoreflect.EnumDescriptor { + return file_acl_proto_enumTypes[0].Descriptor() +} + +func (Protocol) Type() protoreflect.EnumType { + return &file_acl_proto_enumTypes[0] +} + +func (x Protocol) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Protocol.Descriptor instead. +func (Protocol) EnumDescriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{0} +} + +type Action int32 + +const ( + Action_Noop Action = 0 + Action_Allow Action = 1 + Action_Drop Action = 2 // Silent drop (no response) +) + +// Enum value maps for Action. +var ( + Action_name = map[int32]string{ + 0: "Noop", + 1: "Allow", + 2: "Drop", + } + Action_value = map[string]int32{ + "Noop": 0, + "Allow": 1, + "Drop": 2, + } +) + +func (x Action) Enum() *Action { + p := new(Action) + *p = x + return p +} + +func (x Action) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (Action) Descriptor() protoreflect.EnumDescriptor { + return file_acl_proto_enumTypes[1].Descriptor() +} + +func (Action) Type() protoreflect.EnumType { + return &file_acl_proto_enumTypes[1] +} + +func (x Action) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use Action.Descriptor instead. +func (Action) EnumDescriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{1} +} + +type ChainType int32 + +const ( + ChainType_UnspecifiedChain ChainType = 0 + // send to this node + ChainType_Inbound ChainType = 1 + // send from this node + ChainType_Outbound ChainType = 2 + // subnet proxy + ChainType_Forward ChainType = 3 +) + +// Enum value maps for ChainType. +var ( + ChainType_name = map[int32]string{ + 0: "UnspecifiedChain", + 1: "Inbound", + 2: "Outbound", + 3: "Forward", + } + ChainType_value = map[string]int32{ + "UnspecifiedChain": 0, + "Inbound": 1, + "Outbound": 2, + "Forward": 3, + } +) + +func (x ChainType) Enum() *ChainType { + p := new(ChainType) + *p = x + return p +} + +func (x ChainType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChainType) Descriptor() protoreflect.EnumDescriptor { + return file_acl_proto_enumTypes[2].Descriptor() +} + +func (ChainType) Type() protoreflect.EnumType { + return &file_acl_proto_enumTypes[2] +} + +func (x ChainType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChainType.Descriptor instead. +func (ChainType) EnumDescriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{2} +} + +type ConnState int32 + +const ( + ConnState_New ConnState = 0 + ConnState_Established ConnState = 1 + ConnState_Related ConnState = 2 + ConnState_Invalid ConnState = 3 +) + +// Enum value maps for ConnState. +var ( + ConnState_name = map[int32]string{ + 0: "New", + 1: "Established", + 2: "Related", + 3: "Invalid", + } + ConnState_value = map[string]int32{ + "New": 0, + "Established": 1, + "Related": 2, + "Invalid": 3, + } +) + +func (x ConnState) Enum() *ConnState { + p := new(ConnState) + *p = x + return p +} + +func (x ConnState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConnState) Descriptor() protoreflect.EnumDescriptor { + return file_acl_proto_enumTypes[3].Descriptor() +} + +func (ConnState) Type() protoreflect.EnumType { + return &file_acl_proto_enumTypes[3] +} + +func (x ConnState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConnState.Descriptor instead. +func (ConnState) EnumDescriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{3} +} + +// Time-based access control +type TimeWindow struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Days of week: 0=Sunday, 1=Monday, ..., 6=Saturday + DaysOfWeek []uint32 `protobuf:"varint,1,rep,packed,name=days_of_week,json=daysOfWeek,proto3" json:"days_of_week,omitempty"` + // Time in minutes from midnight (0-1439) + StartTime uint32 `protobuf:"varint,2,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + EndTime uint32 `protobuf:"varint,3,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` + // Timezone offset in minutes from UTC + TimezoneOffset int32 `protobuf:"varint,4,opt,name=timezone_offset,json=timezoneOffset,proto3" json:"timezone_offset,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TimeWindow) Reset() { + *x = TimeWindow{} + mi := &file_acl_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TimeWindow) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TimeWindow) ProtoMessage() {} + +func (x *TimeWindow) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TimeWindow.ProtoReflect.Descriptor instead. +func (*TimeWindow) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{0} +} + +func (x *TimeWindow) GetDaysOfWeek() []uint32 { + if x != nil { + return x.DaysOfWeek + } + return nil +} + +func (x *TimeWindow) GetStartTime() uint32 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *TimeWindow) GetEndTime() uint32 { + if x != nil { + return x.EndTime + } + return 0 +} + +func (x *TimeWindow) GetTimezoneOffset() int32 { + if x != nil { + return x.TimezoneOffset + } + return 0 +} + +// Enhanced rule with priority and metadata +type Rule struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Rule identification and metadata + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Human-readable rule name + Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"` // Rule description + Priority uint32 `protobuf:"varint,3,opt,name=priority,proto3" json:"priority,omitempty"` // Higher number = higher priority (0-65535) + Enabled bool `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"` // Rule enabled/disabled state + // Core matching criteria + Protocol Protocol `protobuf:"varint,5,opt,name=protocol,proto3,enum=acl.Protocol" json:"protocol,omitempty"` + Ports []string `protobuf:"bytes,6,rep,name=ports,proto3" json:"ports,omitempty"` + SourceIps []string `protobuf:"bytes,7,rep,name=source_ips,json=sourceIps,proto3" json:"source_ips,omitempty"` // Source IP ranges + DestinationIps []string `protobuf:"bytes,8,rep,name=destination_ips,json=destinationIps,proto3" json:"destination_ips,omitempty"` // Destination IP ranges + // Enhanced matching criteria + SourcePorts []string `protobuf:"bytes,9,rep,name=source_ports,json=sourcePorts,proto3" json:"source_ports,omitempty"` // Source port range + // Action and logging + Action Action `protobuf:"varint,10,opt,name=action,proto3,enum=acl.Action" json:"action,omitempty"` + // Rate limiting (packets per second) + RateLimit uint32 `protobuf:"varint,11,opt,name=rate_limit,json=rateLimit,proto3" json:"rate_limit,omitempty"` // 0 = no limit + BurstLimit uint32 `protobuf:"varint,12,opt,name=burst_limit,json=burstLimit,proto3" json:"burst_limit,omitempty"` // Burst allowance + // Connection tracking + Stateful bool `protobuf:"varint,13,opt,name=stateful,proto3" json:"stateful,omitempty"` // Enable connection tracking + // Group matching criteria + SourceGroups []string `protobuf:"bytes,14,rep,name=source_groups,json=sourceGroups,proto3" json:"source_groups,omitempty"` + DestinationGroups []string `protobuf:"bytes,15,rep,name=destination_groups,json=destinationGroups,proto3" json:"destination_groups,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Rule) Reset() { + *x = Rule{} + mi := &file_acl_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Rule) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Rule) ProtoMessage() {} + +func (x *Rule) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Rule.ProtoReflect.Descriptor instead. +func (*Rule) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{1} +} + +func (x *Rule) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Rule) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Rule) GetPriority() uint32 { + if x != nil { + return x.Priority + } + return 0 +} + +func (x *Rule) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *Rule) GetProtocol() Protocol { + if x != nil { + return x.Protocol + } + return Protocol_Unspecified +} + +func (x *Rule) GetPorts() []string { + if x != nil { + return x.Ports + } + return nil +} + +func (x *Rule) GetSourceIps() []string { + if x != nil { + return x.SourceIps + } + return nil +} + +func (x *Rule) GetDestinationIps() []string { + if x != nil { + return x.DestinationIps + } + return nil +} + +func (x *Rule) GetSourcePorts() []string { + if x != nil { + return x.SourcePorts + } + return nil +} + +func (x *Rule) GetAction() Action { + if x != nil { + return x.Action + } + return Action_Noop +} + +func (x *Rule) GetRateLimit() uint32 { + if x != nil { + return x.RateLimit + } + return 0 +} + +func (x *Rule) GetBurstLimit() uint32 { + if x != nil { + return x.BurstLimit + } + return 0 +} + +func (x *Rule) GetStateful() bool { + if x != nil { + return x.Stateful + } + return false +} + +func (x *Rule) GetSourceGroups() []string { + if x != nil { + return x.SourceGroups + } + return nil +} + +func (x *Rule) GetDestinationGroups() []string { + if x != nil { + return x.DestinationGroups + } + return nil +} + +// Rule chain with metadata and optimization hints +type Chain struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Chain identification + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // Human-readable chain name + ChainType ChainType `protobuf:"varint,2,opt,name=chain_type,json=chainType,proto3,enum=acl.ChainType" json:"chain_type,omitempty"` + Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"` // Chain description + Enabled bool `protobuf:"varint,4,opt,name=enabled,proto3" json:"enabled,omitempty"` // Chain enabled/disabled state + // Rules in priority order (highest priority first) + Rules []*Rule `protobuf:"bytes,5,rep,name=rules,proto3" json:"rules,omitempty"` + // Default action when no rules match + DefaultAction Action `protobuf:"varint,6,opt,name=default_action,json=defaultAction,proto3,enum=acl.Action" json:"default_action,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Chain) Reset() { + *x = Chain{} + mi := &file_acl_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Chain) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Chain) ProtoMessage() {} + +func (x *Chain) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Chain.ProtoReflect.Descriptor instead. +func (*Chain) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{2} +} + +func (x *Chain) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *Chain) GetChainType() ChainType { + if x != nil { + return x.ChainType + } + return ChainType_UnspecifiedChain +} + +func (x *Chain) GetDescription() string { + if x != nil { + return x.Description + } + return "" +} + +func (x *Chain) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *Chain) GetRules() []*Rule { + if x != nil { + return x.Rules + } + return nil +} + +func (x *Chain) GetDefaultAction() Action { + if x != nil { + return x.DefaultAction + } + return Action_Noop +} + +type GroupInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + Declares []*GroupIdentity `protobuf:"bytes,1,rep,name=declares,proto3" json:"declares,omitempty"` + Members []string `protobuf:"bytes,2,rep,name=members,proto3" json:"members,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GroupInfo) Reset() { + *x = GroupInfo{} + mi := &file_acl_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GroupInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupInfo) ProtoMessage() {} + +func (x *GroupInfo) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. +func (*GroupInfo) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{3} +} + +func (x *GroupInfo) GetDeclares() []*GroupIdentity { + if x != nil { + return x.Declares + } + return nil +} + +func (x *GroupInfo) GetMembers() []string { + if x != nil { + return x.Members + } + return nil +} + +type GroupIdentity struct { + state protoimpl.MessageState `protogen:"open.v1"` + GroupName string `protobuf:"bytes,1,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` + GroupSecret string `protobuf:"bytes,2,opt,name=group_secret,json=groupSecret,proto3" json:"group_secret,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GroupIdentity) Reset() { + *x = GroupIdentity{} + mi := &file_acl_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GroupIdentity) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupIdentity) ProtoMessage() {} + +func (x *GroupIdentity) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupIdentity.ProtoReflect.Descriptor instead. +func (*GroupIdentity) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{4} +} + +func (x *GroupIdentity) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" +} + +func (x *GroupIdentity) GetGroupSecret() string { + if x != nil { + return x.GroupSecret + } + return "" +} + +type AclV1 struct { + state protoimpl.MessageState `protogen:"open.v1"` + Chains []*Chain `protobuf:"bytes,1,rep,name=chains,proto3" json:"chains,omitempty"` + Group *GroupInfo `protobuf:"bytes,2,opt,name=group,proto3" json:"group,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AclV1) Reset() { + *x = AclV1{} + mi := &file_acl_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AclV1) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AclV1) ProtoMessage() {} + +func (x *AclV1) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AclV1.ProtoReflect.Descriptor instead. +func (*AclV1) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{5} +} + +func (x *AclV1) GetChains() []*Chain { + if x != nil { + return x.Chains + } + return nil +} + +func (x *AclV1) GetGroup() *GroupInfo { + if x != nil { + return x.Group + } + return nil +} + +// Connection tracking entry for stateful ACLs +type ConnTrackEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + SrcAddr *common.SocketAddr `protobuf:"bytes,1,opt,name=src_addr,json=srcAddr,proto3" json:"src_addr,omitempty"` + DstAddr *common.SocketAddr `protobuf:"bytes,2,opt,name=dst_addr,json=dstAddr,proto3" json:"dst_addr,omitempty"` + Protocol Protocol `protobuf:"varint,3,opt,name=protocol,proto3,enum=acl.Protocol" json:"protocol,omitempty"` // IP protocol number (e.g., 6 = TCP, 17 = UDP) + State ConnState `protobuf:"varint,4,opt,name=state,proto3,enum=acl.ConnState" json:"state,omitempty"` + CreatedAt uint64 `protobuf:"varint,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` // Unix timestamp (seconds) + LastSeen uint64 `protobuf:"varint,6,opt,name=last_seen,json=lastSeen,proto3" json:"last_seen,omitempty"` // Unix timestamp (seconds) + PacketCount uint64 `protobuf:"varint,7,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"` + ByteCount uint64 `protobuf:"varint,8,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ConnTrackEntry) Reset() { + *x = ConnTrackEntry{} + mi := &file_acl_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ConnTrackEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConnTrackEntry) ProtoMessage() {} + +func (x *ConnTrackEntry) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConnTrackEntry.ProtoReflect.Descriptor instead. +func (*ConnTrackEntry) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{6} +} + +func (x *ConnTrackEntry) GetSrcAddr() *common.SocketAddr { + if x != nil { + return x.SrcAddr + } + return nil +} + +func (x *ConnTrackEntry) GetDstAddr() *common.SocketAddr { + if x != nil { + return x.DstAddr + } + return nil +} + +func (x *ConnTrackEntry) GetProtocol() Protocol { + if x != nil { + return x.Protocol + } + return Protocol_Unspecified +} + +func (x *ConnTrackEntry) GetState() ConnState { + if x != nil { + return x.State + } + return ConnState_New +} + +func (x *ConnTrackEntry) GetCreatedAt() uint64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *ConnTrackEntry) GetLastSeen() uint64 { + if x != nil { + return x.LastSeen + } + return 0 +} + +func (x *ConnTrackEntry) GetPacketCount() uint64 { + if x != nil { + return x.PacketCount + } + return 0 +} + +func (x *ConnTrackEntry) GetByteCount() uint64 { + if x != nil { + return x.ByteCount + } + return 0 +} + +// Top-level ACL configuration +type Acl struct { + state protoimpl.MessageState `protogen:"open.v1"` + AclV1 *AclV1 `protobuf:"bytes,2,opt,name=acl_v1,json=aclV1,proto3" json:"acl_v1,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Acl) Reset() { + *x = Acl{} + mi := &file_acl_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Acl) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Acl) ProtoMessage() {} + +func (x *Acl) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Acl.ProtoReflect.Descriptor instead. +func (*Acl) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{7} +} + +func (x *Acl) GetAclV1() *AclV1 { + if x != nil { + return x.AclV1 + } + return nil +} + +type StatItem struct { + state protoimpl.MessageState `protogen:"open.v1"` + PacketCount uint64 `protobuf:"varint,1,opt,name=packet_count,json=packetCount,proto3" json:"packet_count,omitempty"` + ByteCount uint64 `protobuf:"varint,2,opt,name=byte_count,json=byteCount,proto3" json:"byte_count,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StatItem) Reset() { + *x = StatItem{} + mi := &file_acl_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StatItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatItem) ProtoMessage() {} + +func (x *StatItem) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatItem.ProtoReflect.Descriptor instead. +func (*StatItem) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{8} +} + +func (x *StatItem) GetPacketCount() uint64 { + if x != nil { + return x.PacketCount + } + return 0 +} + +func (x *StatItem) GetByteCount() uint64 { + if x != nil { + return x.ByteCount + } + return 0 +} + +type RuleStats struct { + state protoimpl.MessageState `protogen:"open.v1"` + Rule *Rule `protobuf:"bytes,1,opt,name=rule,proto3" json:"rule,omitempty"` + Stat *StatItem `protobuf:"bytes,2,opt,name=stat,proto3" json:"stat,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RuleStats) Reset() { + *x = RuleStats{} + mi := &file_acl_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RuleStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RuleStats) ProtoMessage() {} + +func (x *RuleStats) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RuleStats.ProtoReflect.Descriptor instead. +func (*RuleStats) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{9} +} + +func (x *RuleStats) GetRule() *Rule { + if x != nil { + return x.Rule + } + return nil +} + +func (x *RuleStats) GetStat() *StatItem { + if x != nil { + return x.Stat + } + return nil +} + +type AclStats struct { + state protoimpl.MessageState `protogen:"open.v1"` + Rules []*RuleStats `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"` + ConnTrack []*ConnTrackEntry `protobuf:"bytes,2,rep,name=conn_track,json=connTrack,proto3" json:"conn_track,omitempty"` + Global map[string]uint64 `protobuf:"bytes,3,rep,name=global,proto3" json:"global,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AclStats) Reset() { + *x = AclStats{} + mi := &file_acl_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AclStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AclStats) ProtoMessage() {} + +func (x *AclStats) ProtoReflect() protoreflect.Message { + mi := &file_acl_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AclStats.ProtoReflect.Descriptor instead. +func (*AclStats) Descriptor() ([]byte, []int) { + return file_acl_proto_rawDescGZIP(), []int{10} +} + +func (x *AclStats) GetRules() []*RuleStats { + if x != nil { + return x.Rules + } + return nil +} + +func (x *AclStats) GetConnTrack() []*ConnTrackEntry { + if x != nil { + return x.ConnTrack + } + return nil +} + +func (x *AclStats) GetGlobal() map[string]uint64 { + if x != nil { + return x.Global + } + return nil +} + +var File_acl_proto protoreflect.FileDescriptor + +const file_acl_proto_rawDesc = "" + + "\n" + + "\tacl.proto\x12\x03acl\x1a\fcommon.proto\"\x91\x01\n" + + "\n" + + "TimeWindow\x12 \n" + + "\fdays_of_week\x18\x01 \x03(\rR\n" + + "daysOfWeek\x12\x1d\n" + + "\n" + + "start_time\x18\x02 \x01(\rR\tstartTime\x12\x19\n" + + "\bend_time\x18\x03 \x01(\rR\aendTime\x12'\n" + + "\x0ftimezone_offset\x18\x04 \x01(\x05R\x0etimezoneOffset\"\xf3\x03\n" + + "\x04Rule\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12 \n" + + "\vdescription\x18\x02 \x01(\tR\vdescription\x12\x1a\n" + + "\bpriority\x18\x03 \x01(\rR\bpriority\x12\x18\n" + + "\aenabled\x18\x04 \x01(\bR\aenabled\x12)\n" + + "\bprotocol\x18\x05 \x01(\x0e2\r.acl.ProtocolR\bprotocol\x12\x14\n" + + "\x05ports\x18\x06 \x03(\tR\x05ports\x12\x1d\n" + + "\n" + + "source_ips\x18\a \x03(\tR\tsourceIps\x12'\n" + + "\x0fdestination_ips\x18\b \x03(\tR\x0edestinationIps\x12!\n" + + "\fsource_ports\x18\t \x03(\tR\vsourcePorts\x12#\n" + + "\x06action\x18\n" + + " \x01(\x0e2\v.acl.ActionR\x06action\x12\x1d\n" + + "\n" + + "rate_limit\x18\v \x01(\rR\trateLimit\x12\x1f\n" + + "\vburst_limit\x18\f \x01(\rR\n" + + "burstLimit\x12\x1a\n" + + "\bstateful\x18\r \x01(\bR\bstateful\x12#\n" + + "\rsource_groups\x18\x0e \x03(\tR\fsourceGroups\x12-\n" + + "\x12destination_groups\x18\x0f \x03(\tR\x11destinationGroups\"\xdb\x01\n" + + "\x05Chain\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12-\n" + + "\n" + + "chain_type\x18\x02 \x01(\x0e2\x0e.acl.ChainTypeR\tchainType\x12 \n" + + "\vdescription\x18\x03 \x01(\tR\vdescription\x12\x18\n" + + "\aenabled\x18\x04 \x01(\bR\aenabled\x12\x1f\n" + + "\x05rules\x18\x05 \x03(\v2\t.acl.RuleR\x05rules\x122\n" + + "\x0edefault_action\x18\x06 \x01(\x0e2\v.acl.ActionR\rdefaultAction\"U\n" + + "\tGroupInfo\x12.\n" + + "\bdeclares\x18\x01 \x03(\v2\x12.acl.GroupIdentityR\bdeclares\x12\x18\n" + + "\amembers\x18\x02 \x03(\tR\amembers\"Q\n" + + "\rGroupIdentity\x12\x1d\n" + + "\n" + + "group_name\x18\x01 \x01(\tR\tgroupName\x12!\n" + + "\fgroup_secret\x18\x02 \x01(\tR\vgroupSecret\"Q\n" + + "\x05AclV1\x12\"\n" + + "\x06chains\x18\x01 \x03(\v2\n" + + ".acl.ChainR\x06chains\x12$\n" + + "\x05group\x18\x02 \x01(\v2\x0e.acl.GroupInfoR\x05group\"\xbd\x02\n" + + "\x0eConnTrackEntry\x12-\n" + + "\bsrc_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\asrcAddr\x12-\n" + + "\bdst_addr\x18\x02 \x01(\v2\x12.common.SocketAddrR\adstAddr\x12)\n" + + "\bprotocol\x18\x03 \x01(\x0e2\r.acl.ProtocolR\bprotocol\x12$\n" + + "\x05state\x18\x04 \x01(\x0e2\x0e.acl.ConnStateR\x05state\x12\x1d\n" + + "\n" + + "created_at\x18\x05 \x01(\x04R\tcreatedAt\x12\x1b\n" + + "\tlast_seen\x18\x06 \x01(\x04R\blastSeen\x12!\n" + + "\fpacket_count\x18\a \x01(\x04R\vpacketCount\x12\x1d\n" + + "\n" + + "byte_count\x18\b \x01(\x04R\tbyteCount\"(\n" + + "\x03Acl\x12!\n" + + "\x06acl_v1\x18\x02 \x01(\v2\n" + + ".acl.AclV1R\x05aclV1\"L\n" + + "\bStatItem\x12!\n" + + "\fpacket_count\x18\x01 \x01(\x04R\vpacketCount\x12\x1d\n" + + "\n" + + "byte_count\x18\x02 \x01(\x04R\tbyteCount\"M\n" + + "\tRuleStats\x12\x1d\n" + + "\x04rule\x18\x01 \x01(\v2\t.acl.RuleR\x04rule\x12!\n" + + "\x04stat\x18\x02 \x01(\v2\r.acl.StatItemR\x04stat\"\xd2\x01\n" + + "\bAclStats\x12$\n" + + "\x05rules\x18\x01 \x03(\v2\x0e.acl.RuleStatsR\x05rules\x122\n" + + "\n" + + "conn_track\x18\x02 \x03(\v2\x13.acl.ConnTrackEntryR\tconnTrack\x121\n" + + "\x06global\x18\x03 \x03(\v2\x19.acl.AclStats.GlobalEntryR\x06global\x1a9\n" + + "\vGlobalEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\x04R\x05value:\x028\x01*L\n" + + "\bProtocol\x12\x0f\n" + + "\vUnspecified\x10\x00\x12\a\n" + + "\x03TCP\x10\x01\x12\a\n" + + "\x03UDP\x10\x02\x12\b\n" + + "\x04ICMP\x10\x03\x12\n" + + "\n" + + "\x06ICMPv6\x10\x04\x12\a\n" + + "\x03Any\x10\x05*'\n" + + "\x06Action\x12\b\n" + + "\x04Noop\x10\x00\x12\t\n" + + "\x05Allow\x10\x01\x12\b\n" + + "\x04Drop\x10\x02*I\n" + + "\tChainType\x12\x14\n" + + "\x10UnspecifiedChain\x10\x00\x12\v\n" + + "\aInbound\x10\x01\x12\f\n" + + "\bOutbound\x10\x02\x12\v\n" + + "\aForward\x10\x03*?\n" + + "\tConnState\x12\a\n" + + "\x03New\x10\x00\x12\x0f\n" + + "\vEstablished\x10\x01\x12\v\n" + + "\aRelated\x10\x02\x12\v\n" + + "\aInvalid\x10\x03b\x06proto3" + +var ( + file_acl_proto_rawDescOnce sync.Once + file_acl_proto_rawDescData []byte +) + +func file_acl_proto_rawDescGZIP() []byte { + file_acl_proto_rawDescOnce.Do(func() { + file_acl_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_acl_proto_rawDesc), len(file_acl_proto_rawDesc))) + }) + return file_acl_proto_rawDescData +} + +var file_acl_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_acl_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_acl_proto_goTypes = []any{ + (Protocol)(0), // 0: acl.Protocol + (Action)(0), // 1: acl.Action + (ChainType)(0), // 2: acl.ChainType + (ConnState)(0), // 3: acl.ConnState + (*TimeWindow)(nil), // 4: acl.TimeWindow + (*Rule)(nil), // 5: acl.Rule + (*Chain)(nil), // 6: acl.Chain + (*GroupInfo)(nil), // 7: acl.GroupInfo + (*GroupIdentity)(nil), // 8: acl.GroupIdentity + (*AclV1)(nil), // 9: acl.AclV1 + (*ConnTrackEntry)(nil), // 10: acl.ConnTrackEntry + (*Acl)(nil), // 11: acl.Acl + (*StatItem)(nil), // 12: acl.StatItem + (*RuleStats)(nil), // 13: acl.RuleStats + (*AclStats)(nil), // 14: acl.AclStats + nil, // 15: acl.AclStats.GlobalEntry + (*common.SocketAddr)(nil), // 16: common.SocketAddr +} +var file_acl_proto_depIdxs = []int32{ + 0, // 0: acl.Rule.protocol:type_name -> acl.Protocol + 1, // 1: acl.Rule.action:type_name -> acl.Action + 2, // 2: acl.Chain.chain_type:type_name -> acl.ChainType + 5, // 3: acl.Chain.rules:type_name -> acl.Rule + 1, // 4: acl.Chain.default_action:type_name -> acl.Action + 8, // 5: acl.GroupInfo.declares:type_name -> acl.GroupIdentity + 6, // 6: acl.AclV1.chains:type_name -> acl.Chain + 7, // 7: acl.AclV1.group:type_name -> acl.GroupInfo + 16, // 8: acl.ConnTrackEntry.src_addr:type_name -> common.SocketAddr + 16, // 9: acl.ConnTrackEntry.dst_addr:type_name -> common.SocketAddr + 0, // 10: acl.ConnTrackEntry.protocol:type_name -> acl.Protocol + 3, // 11: acl.ConnTrackEntry.state:type_name -> acl.ConnState + 9, // 12: acl.Acl.acl_v1:type_name -> acl.AclV1 + 5, // 13: acl.RuleStats.rule:type_name -> acl.Rule + 12, // 14: acl.RuleStats.stat:type_name -> acl.StatItem + 13, // 15: acl.AclStats.rules:type_name -> acl.RuleStats + 10, // 16: acl.AclStats.conn_track:type_name -> acl.ConnTrackEntry + 15, // 17: acl.AclStats.global:type_name -> acl.AclStats.GlobalEntry + 18, // [18:18] is the sub-list for method output_type + 18, // [18:18] is the sub-list for method input_type + 18, // [18:18] is the sub-list for extension type_name + 18, // [18:18] is the sub-list for extension extendee + 0, // [0:18] is the sub-list for field type_name +} + +func init() { file_acl_proto_init() } +func file_acl_proto_init() { + if File_acl_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_acl_proto_rawDesc), len(file_acl_proto_rawDesc)), + NumEnums: 4, + NumMessages: 12, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_acl_proto_goTypes, + DependencyIndexes: file_acl_proto_depIdxs, + EnumInfos: file_acl_proto_enumTypes, + MessageInfos: file_acl_proto_msgTypes, + }.Build() + File_acl_proto = out.File + file_acl_proto_goTypes = nil + file_acl_proto_depIdxs = nil +} diff --git a/easytier-go/proto/api/config/api_config.pb.go b/easytier-go/proto/api/config/api_config.pb.go new file mode 100644 index 00000000..8311c2f7 --- /dev/null +++ b/easytier-go/proto/api/config/api_config.pb.go @@ -0,0 +1,971 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.35.1 +// source: api_config.proto + +package config + +import ( + acl "github.com/EasyTier/EasyTier/easytier-go/proto/acl" + instance "github.com/EasyTier/EasyTier/easytier-go/proto/api/instance" + manage "github.com/EasyTier/EasyTier/easytier-go/proto/api/manage" + common "github.com/EasyTier/EasyTier/easytier-go/proto/common" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type ConfigPatchAction int32 + +const ( + ConfigPatchAction_ADD ConfigPatchAction = 0 + ConfigPatchAction_REMOVE ConfigPatchAction = 1 + ConfigPatchAction_CLEAR ConfigPatchAction = 2 +) + +// Enum value maps for ConfigPatchAction. +var ( + ConfigPatchAction_name = map[int32]string{ + 0: "ADD", + 1: "REMOVE", + 2: "CLEAR", + } + ConfigPatchAction_value = map[string]int32{ + "ADD": 0, + "REMOVE": 1, + "CLEAR": 2, + } +) + +func (x ConfigPatchAction) Enum() *ConfigPatchAction { + p := new(ConfigPatchAction) + *p = x + return p +} + +func (x ConfigPatchAction) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConfigPatchAction) Descriptor() protoreflect.EnumDescriptor { + return file_api_config_proto_enumTypes[0].Descriptor() +} + +func (ConfigPatchAction) Type() protoreflect.EnumType { + return &file_api_config_proto_enumTypes[0] +} + +func (x ConfigPatchAction) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConfigPatchAction.Descriptor instead. +func (ConfigPatchAction) EnumDescriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{0} +} + +type InstanceConfigPatch struct { + state protoimpl.MessageState `protogen:"open.v1"` + Hostname *string `protobuf:"bytes,1,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` + Ipv4 *common.Ipv4Inet `protobuf:"bytes,2,opt,name=ipv4,proto3,oneof" json:"ipv4,omitempty"` + Ipv6 *common.Ipv6Inet `protobuf:"bytes,3,opt,name=ipv6,proto3,oneof" json:"ipv6,omitempty"` + PortForwards []*PortForwardPatch `protobuf:"bytes,4,rep,name=port_forwards,json=portForwards,proto3" json:"port_forwards,omitempty"` + Acl *AclPatch `protobuf:"bytes,5,opt,name=acl,proto3,oneof" json:"acl,omitempty"` + ProxyNetworks []*ProxyNetworkPatch `protobuf:"bytes,6,rep,name=proxy_networks,json=proxyNetworks,proto3" json:"proxy_networks,omitempty"` + Routes []*RoutePatch `protobuf:"bytes,7,rep,name=routes,proto3" json:"routes,omitempty"` + ExitNodes []*ExitNodePatch `protobuf:"bytes,8,rep,name=exit_nodes,json=exitNodes,proto3" json:"exit_nodes,omitempty"` + MappedListeners []*UrlPatch `protobuf:"bytes,9,rep,name=mapped_listeners,json=mappedListeners,proto3" json:"mapped_listeners,omitempty"` + Connectors []*UrlPatch `protobuf:"bytes,10,rep,name=connectors,proto3" json:"connectors,omitempty"` + Ipv6PublicAddrProvider *bool `protobuf:"varint,11,opt,name=ipv6_public_addr_provider,json=ipv6PublicAddrProvider,proto3,oneof" json:"ipv6_public_addr_provider,omitempty"` + Ipv6PublicAddrAuto *bool `protobuf:"varint,12,opt,name=ipv6_public_addr_auto,json=ipv6PublicAddrAuto,proto3,oneof" json:"ipv6_public_addr_auto,omitempty"` + Ipv6PublicAddrPrefix *string `protobuf:"bytes,13,opt,name=ipv6_public_addr_prefix,json=ipv6PublicAddrPrefix,proto3,oneof" json:"ipv6_public_addr_prefix,omitempty"` + DisableRelayData *bool `protobuf:"varint,14,opt,name=disable_relay_data,json=disableRelayData,proto3,oneof" json:"disable_relay_data,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InstanceConfigPatch) Reset() { + *x = InstanceConfigPatch{} + mi := &file_api_config_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InstanceConfigPatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstanceConfigPatch) ProtoMessage() {} + +func (x *InstanceConfigPatch) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstanceConfigPatch.ProtoReflect.Descriptor instead. +func (*InstanceConfigPatch) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{0} +} + +func (x *InstanceConfigPatch) GetHostname() string { + if x != nil && x.Hostname != nil { + return *x.Hostname + } + return "" +} + +func (x *InstanceConfigPatch) GetIpv4() *common.Ipv4Inet { + if x != nil { + return x.Ipv4 + } + return nil +} + +func (x *InstanceConfigPatch) GetIpv6() *common.Ipv6Inet { + if x != nil { + return x.Ipv6 + } + return nil +} + +func (x *InstanceConfigPatch) GetPortForwards() []*PortForwardPatch { + if x != nil { + return x.PortForwards + } + return nil +} + +func (x *InstanceConfigPatch) GetAcl() *AclPatch { + if x != nil { + return x.Acl + } + return nil +} + +func (x *InstanceConfigPatch) GetProxyNetworks() []*ProxyNetworkPatch { + if x != nil { + return x.ProxyNetworks + } + return nil +} + +func (x *InstanceConfigPatch) GetRoutes() []*RoutePatch { + if x != nil { + return x.Routes + } + return nil +} + +func (x *InstanceConfigPatch) GetExitNodes() []*ExitNodePatch { + if x != nil { + return x.ExitNodes + } + return nil +} + +func (x *InstanceConfigPatch) GetMappedListeners() []*UrlPatch { + if x != nil { + return x.MappedListeners + } + return nil +} + +func (x *InstanceConfigPatch) GetConnectors() []*UrlPatch { + if x != nil { + return x.Connectors + } + return nil +} + +func (x *InstanceConfigPatch) GetIpv6PublicAddrProvider() bool { + if x != nil && x.Ipv6PublicAddrProvider != nil { + return *x.Ipv6PublicAddrProvider + } + return false +} + +func (x *InstanceConfigPatch) GetIpv6PublicAddrAuto() bool { + if x != nil && x.Ipv6PublicAddrAuto != nil { + return *x.Ipv6PublicAddrAuto + } + return false +} + +func (x *InstanceConfigPatch) GetIpv6PublicAddrPrefix() string { + if x != nil && x.Ipv6PublicAddrPrefix != nil { + return *x.Ipv6PublicAddrPrefix + } + return "" +} + +func (x *InstanceConfigPatch) GetDisableRelayData() bool { + if x != nil && x.DisableRelayData != nil { + return *x.DisableRelayData + } + return false +} + +type PortForwardPatch struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action ConfigPatchAction `protobuf:"varint,1,opt,name=action,proto3,enum=api.config.ConfigPatchAction" json:"action,omitempty"` + Cfg *common.PortForwardConfigPb `protobuf:"bytes,2,opt,name=cfg,proto3" json:"cfg,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PortForwardPatch) Reset() { + *x = PortForwardPatch{} + mi := &file_api_config_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PortForwardPatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortForwardPatch) ProtoMessage() {} + +func (x *PortForwardPatch) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PortForwardPatch.ProtoReflect.Descriptor instead. +func (*PortForwardPatch) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{1} +} + +func (x *PortForwardPatch) GetAction() ConfigPatchAction { + if x != nil { + return x.Action + } + return ConfigPatchAction_ADD +} + +func (x *PortForwardPatch) GetCfg() *common.PortForwardConfigPb { + if x != nil { + return x.Cfg + } + return nil +} + +type StringPatch struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action ConfigPatchAction `protobuf:"varint,1,opt,name=action,proto3,enum=api.config.ConfigPatchAction" json:"action,omitempty"` + Value string `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StringPatch) Reset() { + *x = StringPatch{} + mi := &file_api_config_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StringPatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StringPatch) ProtoMessage() {} + +func (x *StringPatch) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StringPatch.ProtoReflect.Descriptor instead. +func (*StringPatch) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{2} +} + +func (x *StringPatch) GetAction() ConfigPatchAction { + if x != nil { + return x.Action + } + return ConfigPatchAction_ADD +} + +func (x *StringPatch) GetValue() string { + if x != nil { + return x.Value + } + return "" +} + +type UrlPatch struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action ConfigPatchAction `protobuf:"varint,1,opt,name=action,proto3,enum=api.config.ConfigPatchAction" json:"action,omitempty"` + Url *common.Url `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UrlPatch) Reset() { + *x = UrlPatch{} + mi := &file_api_config_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UrlPatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UrlPatch) ProtoMessage() {} + +func (x *UrlPatch) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UrlPatch.ProtoReflect.Descriptor instead. +func (*UrlPatch) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{3} +} + +func (x *UrlPatch) GetAction() ConfigPatchAction { + if x != nil { + return x.Action + } + return ConfigPatchAction_ADD +} + +func (x *UrlPatch) GetUrl() *common.Url { + if x != nil { + return x.Url + } + return nil +} + +type AclPatch struct { + state protoimpl.MessageState `protogen:"open.v1"` + Acl *acl.Acl `protobuf:"bytes,1,opt,name=acl,proto3,oneof" json:"acl,omitempty"` + TcpWhitelist []*StringPatch `protobuf:"bytes,2,rep,name=tcp_whitelist,json=tcpWhitelist,proto3" json:"tcp_whitelist,omitempty"` + UdpWhitelist []*StringPatch `protobuf:"bytes,3,rep,name=udp_whitelist,json=udpWhitelist,proto3" json:"udp_whitelist,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AclPatch) Reset() { + *x = AclPatch{} + mi := &file_api_config_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AclPatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AclPatch) ProtoMessage() {} + +func (x *AclPatch) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AclPatch.ProtoReflect.Descriptor instead. +func (*AclPatch) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{4} +} + +func (x *AclPatch) GetAcl() *acl.Acl { + if x != nil { + return x.Acl + } + return nil +} + +func (x *AclPatch) GetTcpWhitelist() []*StringPatch { + if x != nil { + return x.TcpWhitelist + } + return nil +} + +func (x *AclPatch) GetUdpWhitelist() []*StringPatch { + if x != nil { + return x.UdpWhitelist + } + return nil +} + +type ProxyNetworkPatch struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action ConfigPatchAction `protobuf:"varint,1,opt,name=action,proto3,enum=api.config.ConfigPatchAction" json:"action,omitempty"` + Cidr *common.Ipv4Inet `protobuf:"bytes,2,opt,name=cidr,proto3" json:"cidr,omitempty"` + MappedCidr *common.Ipv4Inet `protobuf:"bytes,3,opt,name=mapped_cidr,json=mappedCidr,proto3,oneof" json:"mapped_cidr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ProxyNetworkPatch) Reset() { + *x = ProxyNetworkPatch{} + mi := &file_api_config_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ProxyNetworkPatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProxyNetworkPatch) ProtoMessage() {} + +func (x *ProxyNetworkPatch) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProxyNetworkPatch.ProtoReflect.Descriptor instead. +func (*ProxyNetworkPatch) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{5} +} + +func (x *ProxyNetworkPatch) GetAction() ConfigPatchAction { + if x != nil { + return x.Action + } + return ConfigPatchAction_ADD +} + +func (x *ProxyNetworkPatch) GetCidr() *common.Ipv4Inet { + if x != nil { + return x.Cidr + } + return nil +} + +func (x *ProxyNetworkPatch) GetMappedCidr() *common.Ipv4Inet { + if x != nil { + return x.MappedCidr + } + return nil +} + +type RoutePatch struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action ConfigPatchAction `protobuf:"varint,1,opt,name=action,proto3,enum=api.config.ConfigPatchAction" json:"action,omitempty"` + Cidr *common.Ipv4Inet `protobuf:"bytes,2,opt,name=cidr,proto3" json:"cidr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RoutePatch) Reset() { + *x = RoutePatch{} + mi := &file_api_config_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RoutePatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RoutePatch) ProtoMessage() {} + +func (x *RoutePatch) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RoutePatch.ProtoReflect.Descriptor instead. +func (*RoutePatch) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{6} +} + +func (x *RoutePatch) GetAction() ConfigPatchAction { + if x != nil { + return x.Action + } + return ConfigPatchAction_ADD +} + +func (x *RoutePatch) GetCidr() *common.Ipv4Inet { + if x != nil { + return x.Cidr + } + return nil +} + +type ExitNodePatch struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action ConfigPatchAction `protobuf:"varint,1,opt,name=action,proto3,enum=api.config.ConfigPatchAction" json:"action,omitempty"` + Node *common.IpAddr `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExitNodePatch) Reset() { + *x = ExitNodePatch{} + mi := &file_api_config_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExitNodePatch) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExitNodePatch) ProtoMessage() {} + +func (x *ExitNodePatch) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExitNodePatch.ProtoReflect.Descriptor instead. +func (*ExitNodePatch) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{7} +} + +func (x *ExitNodePatch) GetAction() ConfigPatchAction { + if x != nil { + return x.Action + } + return ConfigPatchAction_ADD +} + +func (x *ExitNodePatch) GetNode() *common.IpAddr { + if x != nil { + return x.Node + } + return nil +} + +type PatchConfigRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Patch *InstanceConfigPatch `protobuf:"bytes,1,opt,name=patch,proto3" json:"patch,omitempty"` + Instance *instance.InstanceIdentifier `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PatchConfigRequest) Reset() { + *x = PatchConfigRequest{} + mi := &file_api_config_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PatchConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatchConfigRequest) ProtoMessage() {} + +func (x *PatchConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatchConfigRequest.ProtoReflect.Descriptor instead. +func (*PatchConfigRequest) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{8} +} + +func (x *PatchConfigRequest) GetPatch() *InstanceConfigPatch { + if x != nil { + return x.Patch + } + return nil +} + +func (x *PatchConfigRequest) GetInstance() *instance.InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type PatchConfigResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PatchConfigResponse) Reset() { + *x = PatchConfigResponse{} + mi := &file_api_config_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PatchConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PatchConfigResponse) ProtoMessage() {} + +func (x *PatchConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PatchConfigResponse.ProtoReflect.Descriptor instead. +func (*PatchConfigResponse) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{9} +} + +type GetConfigRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *instance.InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetConfigRequest) Reset() { + *x = GetConfigRequest{} + mi := &file_api_config_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConfigRequest) ProtoMessage() {} + +func (x *GetConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetConfigRequest.ProtoReflect.Descriptor instead. +func (*GetConfigRequest) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{10} +} + +func (x *GetConfigRequest) GetInstance() *instance.InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type GetConfigResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Config *manage.NetworkConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + TomlConfig string `protobuf:"bytes,2,opt,name=toml_config,json=tomlConfig,proto3" json:"toml_config,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetConfigResponse) Reset() { + *x = GetConfigResponse{} + mi := &file_api_config_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetConfigResponse) ProtoMessage() {} + +func (x *GetConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_config_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetConfigResponse.ProtoReflect.Descriptor instead. +func (*GetConfigResponse) Descriptor() ([]byte, []int) { + return file_api_config_proto_rawDescGZIP(), []int{11} +} + +func (x *GetConfigResponse) GetConfig() *manage.NetworkConfig { + if x != nil { + return x.Config + } + return nil +} + +func (x *GetConfigResponse) GetTomlConfig() string { + if x != nil { + return x.TomlConfig + } + return "" +} + +var File_api_config_proto protoreflect.FileDescriptor + +const file_api_config_proto_rawDesc = "" + + "\n" + + "\x10api_config.proto\x12\n" + + "api.config\x1a\fcommon.proto\x1a\tacl.proto\x1a\x12api_instance.proto\x1a\x10api_manage.proto\"\x9c\a\n" + + "\x13InstanceConfigPatch\x12\x1f\n" + + "\bhostname\x18\x01 \x01(\tH\x00R\bhostname\x88\x01\x01\x12)\n" + + "\x04ipv4\x18\x02 \x01(\v2\x10.common.Ipv4InetH\x01R\x04ipv4\x88\x01\x01\x12)\n" + + "\x04ipv6\x18\x03 \x01(\v2\x10.common.Ipv6InetH\x02R\x04ipv6\x88\x01\x01\x12A\n" + + "\rport_forwards\x18\x04 \x03(\v2\x1c.api.config.PortForwardPatchR\fportForwards\x12+\n" + + "\x03acl\x18\x05 \x01(\v2\x14.api.config.AclPatchH\x03R\x03acl\x88\x01\x01\x12D\n" + + "\x0eproxy_networks\x18\x06 \x03(\v2\x1d.api.config.ProxyNetworkPatchR\rproxyNetworks\x12.\n" + + "\x06routes\x18\a \x03(\v2\x16.api.config.RoutePatchR\x06routes\x128\n" + + "\n" + + "exit_nodes\x18\b \x03(\v2\x19.api.config.ExitNodePatchR\texitNodes\x12?\n" + + "\x10mapped_listeners\x18\t \x03(\v2\x14.api.config.UrlPatchR\x0fmappedListeners\x124\n" + + "\n" + + "connectors\x18\n" + + " \x03(\v2\x14.api.config.UrlPatchR\n" + + "connectors\x12>\n" + + "\x19ipv6_public_addr_provider\x18\v \x01(\bH\x04R\x16ipv6PublicAddrProvider\x88\x01\x01\x126\n" + + "\x15ipv6_public_addr_auto\x18\f \x01(\bH\x05R\x12ipv6PublicAddrAuto\x88\x01\x01\x12:\n" + + "\x17ipv6_public_addr_prefix\x18\r \x01(\tH\x06R\x14ipv6PublicAddrPrefix\x88\x01\x01\x121\n" + + "\x12disable_relay_data\x18\x0e \x01(\bH\aR\x10disableRelayData\x88\x01\x01B\v\n" + + "\t_hostnameB\a\n" + + "\x05_ipv4B\a\n" + + "\x05_ipv6B\x06\n" + + "\x04_aclB\x1c\n" + + "\x1a_ipv6_public_addr_providerB\x18\n" + + "\x16_ipv6_public_addr_autoB\x1a\n" + + "\x18_ipv6_public_addr_prefixB\x15\n" + + "\x13_disable_relay_data\"x\n" + + "\x10PortForwardPatch\x125\n" + + "\x06action\x18\x01 \x01(\x0e2\x1d.api.config.ConfigPatchActionR\x06action\x12-\n" + + "\x03cfg\x18\x02 \x01(\v2\x1b.common.PortForwardConfigPbR\x03cfg\"Z\n" + + "\vStringPatch\x125\n" + + "\x06action\x18\x01 \x01(\x0e2\x1d.api.config.ConfigPatchActionR\x06action\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value\"`\n" + + "\bUrlPatch\x125\n" + + "\x06action\x18\x01 \x01(\x0e2\x1d.api.config.ConfigPatchActionR\x06action\x12\x1d\n" + + "\x03url\x18\x02 \x01(\v2\v.common.UrlR\x03url\"\xaf\x01\n" + + "\bAclPatch\x12\x1f\n" + + "\x03acl\x18\x01 \x01(\v2\b.acl.AclH\x00R\x03acl\x88\x01\x01\x12<\n" + + "\rtcp_whitelist\x18\x02 \x03(\v2\x17.api.config.StringPatchR\ftcpWhitelist\x12<\n" + + "\rudp_whitelist\x18\x03 \x03(\v2\x17.api.config.StringPatchR\fudpWhitelistB\x06\n" + + "\x04_acl\"\xb8\x01\n" + + "\x11ProxyNetworkPatch\x125\n" + + "\x06action\x18\x01 \x01(\x0e2\x1d.api.config.ConfigPatchActionR\x06action\x12$\n" + + "\x04cidr\x18\x02 \x01(\v2\x10.common.Ipv4InetR\x04cidr\x126\n" + + "\vmapped_cidr\x18\x03 \x01(\v2\x10.common.Ipv4InetH\x00R\n" + + "mappedCidr\x88\x01\x01B\x0e\n" + + "\f_mapped_cidr\"i\n" + + "\n" + + "RoutePatch\x125\n" + + "\x06action\x18\x01 \x01(\x0e2\x1d.api.config.ConfigPatchActionR\x06action\x12$\n" + + "\x04cidr\x18\x02 \x01(\v2\x10.common.Ipv4InetR\x04cidr\"j\n" + + "\rExitNodePatch\x125\n" + + "\x06action\x18\x01 \x01(\x0e2\x1d.api.config.ConfigPatchActionR\x06action\x12\"\n" + + "\x04node\x18\x02 \x01(\v2\x0e.common.IpAddrR\x04node\"\x89\x01\n" + + "\x12PatchConfigRequest\x125\n" + + "\x05patch\x18\x01 \x01(\v2\x1f.api.config.InstanceConfigPatchR\x05patch\x12<\n" + + "\binstance\x18\x02 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"\x15\n" + + "\x13PatchConfigResponse\"P\n" + + "\x10GetConfigRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"g\n" + + "\x11GetConfigResponse\x121\n" + + "\x06config\x18\x01 \x01(\v2\x19.api.manage.NetworkConfigR\x06config\x12\x1f\n" + + "\vtoml_config\x18\x02 \x01(\tR\n" + + "tomlConfig*3\n" + + "\x11ConfigPatchAction\x12\a\n" + + "\x03ADD\x10\x00\x12\n" + + "\n" + + "\x06REMOVE\x10\x01\x12\t\n" + + "\x05CLEAR\x10\x022\xa5\x01\n" + + "\tConfigRpc\x12N\n" + + "\vPatchConfig\x12\x1e.api.config.PatchConfigRequest\x1a\x1f.api.config.PatchConfigResponse\x12H\n" + + "\tGetConfig\x12\x1c.api.config.GetConfigRequest\x1a\x1d.api.config.GetConfigResponseb\x06proto3" + +var ( + file_api_config_proto_rawDescOnce sync.Once + file_api_config_proto_rawDescData []byte +) + +func file_api_config_proto_rawDescGZIP() []byte { + file_api_config_proto_rawDescOnce.Do(func() { + file_api_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_config_proto_rawDesc), len(file_api_config_proto_rawDesc))) + }) + return file_api_config_proto_rawDescData +} + +var file_api_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_api_config_proto_msgTypes = make([]protoimpl.MessageInfo, 12) +var file_api_config_proto_goTypes = []any{ + (ConfigPatchAction)(0), // 0: api.config.ConfigPatchAction + (*InstanceConfigPatch)(nil), // 1: api.config.InstanceConfigPatch + (*PortForwardPatch)(nil), // 2: api.config.PortForwardPatch + (*StringPatch)(nil), // 3: api.config.StringPatch + (*UrlPatch)(nil), // 4: api.config.UrlPatch + (*AclPatch)(nil), // 5: api.config.AclPatch + (*ProxyNetworkPatch)(nil), // 6: api.config.ProxyNetworkPatch + (*RoutePatch)(nil), // 7: api.config.RoutePatch + (*ExitNodePatch)(nil), // 8: api.config.ExitNodePatch + (*PatchConfigRequest)(nil), // 9: api.config.PatchConfigRequest + (*PatchConfigResponse)(nil), // 10: api.config.PatchConfigResponse + (*GetConfigRequest)(nil), // 11: api.config.GetConfigRequest + (*GetConfigResponse)(nil), // 12: api.config.GetConfigResponse + (*common.Ipv4Inet)(nil), // 13: common.Ipv4Inet + (*common.Ipv6Inet)(nil), // 14: common.Ipv6Inet + (*common.PortForwardConfigPb)(nil), // 15: common.PortForwardConfigPb + (*common.Url)(nil), // 16: common.Url + (*acl.Acl)(nil), // 17: acl.Acl + (*common.IpAddr)(nil), // 18: common.IpAddr + (*instance.InstanceIdentifier)(nil), // 19: api.instance.InstanceIdentifier + (*manage.NetworkConfig)(nil), // 20: api.manage.NetworkConfig +} +var file_api_config_proto_depIdxs = []int32{ + 13, // 0: api.config.InstanceConfigPatch.ipv4:type_name -> common.Ipv4Inet + 14, // 1: api.config.InstanceConfigPatch.ipv6:type_name -> common.Ipv6Inet + 2, // 2: api.config.InstanceConfigPatch.port_forwards:type_name -> api.config.PortForwardPatch + 5, // 3: api.config.InstanceConfigPatch.acl:type_name -> api.config.AclPatch + 6, // 4: api.config.InstanceConfigPatch.proxy_networks:type_name -> api.config.ProxyNetworkPatch + 7, // 5: api.config.InstanceConfigPatch.routes:type_name -> api.config.RoutePatch + 8, // 6: api.config.InstanceConfigPatch.exit_nodes:type_name -> api.config.ExitNodePatch + 4, // 7: api.config.InstanceConfigPatch.mapped_listeners:type_name -> api.config.UrlPatch + 4, // 8: api.config.InstanceConfigPatch.connectors:type_name -> api.config.UrlPatch + 0, // 9: api.config.PortForwardPatch.action:type_name -> api.config.ConfigPatchAction + 15, // 10: api.config.PortForwardPatch.cfg:type_name -> common.PortForwardConfigPb + 0, // 11: api.config.StringPatch.action:type_name -> api.config.ConfigPatchAction + 0, // 12: api.config.UrlPatch.action:type_name -> api.config.ConfigPatchAction + 16, // 13: api.config.UrlPatch.url:type_name -> common.Url + 17, // 14: api.config.AclPatch.acl:type_name -> acl.Acl + 3, // 15: api.config.AclPatch.tcp_whitelist:type_name -> api.config.StringPatch + 3, // 16: api.config.AclPatch.udp_whitelist:type_name -> api.config.StringPatch + 0, // 17: api.config.ProxyNetworkPatch.action:type_name -> api.config.ConfigPatchAction + 13, // 18: api.config.ProxyNetworkPatch.cidr:type_name -> common.Ipv4Inet + 13, // 19: api.config.ProxyNetworkPatch.mapped_cidr:type_name -> common.Ipv4Inet + 0, // 20: api.config.RoutePatch.action:type_name -> api.config.ConfigPatchAction + 13, // 21: api.config.RoutePatch.cidr:type_name -> common.Ipv4Inet + 0, // 22: api.config.ExitNodePatch.action:type_name -> api.config.ConfigPatchAction + 18, // 23: api.config.ExitNodePatch.node:type_name -> common.IpAddr + 1, // 24: api.config.PatchConfigRequest.patch:type_name -> api.config.InstanceConfigPatch + 19, // 25: api.config.PatchConfigRequest.instance:type_name -> api.instance.InstanceIdentifier + 19, // 26: api.config.GetConfigRequest.instance:type_name -> api.instance.InstanceIdentifier + 20, // 27: api.config.GetConfigResponse.config:type_name -> api.manage.NetworkConfig + 9, // 28: api.config.ConfigRpc.PatchConfig:input_type -> api.config.PatchConfigRequest + 11, // 29: api.config.ConfigRpc.GetConfig:input_type -> api.config.GetConfigRequest + 10, // 30: api.config.ConfigRpc.PatchConfig:output_type -> api.config.PatchConfigResponse + 12, // 31: api.config.ConfigRpc.GetConfig:output_type -> api.config.GetConfigResponse + 30, // [30:32] is the sub-list for method output_type + 28, // [28:30] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name +} + +func init() { file_api_config_proto_init() } +func file_api_config_proto_init() { + if File_api_config_proto != nil { + return + } + file_api_config_proto_msgTypes[0].OneofWrappers = []any{} + file_api_config_proto_msgTypes[4].OneofWrappers = []any{} + file_api_config_proto_msgTypes[5].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_config_proto_rawDesc), len(file_api_config_proto_rawDesc)), + NumEnums: 1, + NumMessages: 12, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_api_config_proto_goTypes, + DependencyIndexes: file_api_config_proto_depIdxs, + EnumInfos: file_api_config_proto_enumTypes, + MessageInfos: file_api_config_proto_msgTypes, + }.Build() + File_api_config_proto = out.File + file_api_config_proto_goTypes = nil + file_api_config_proto_depIdxs = nil +} diff --git a/easytier-go/proto/api/instance/api_instance.pb.go b/easytier-go/proto/api/instance/api_instance.pb.go new file mode 100644 index 00000000..8431e3e7 --- /dev/null +++ b/easytier-go/proto/api/instance/api_instance.pb.go @@ -0,0 +1,4182 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.35.1 +// source: api_instance.proto + +package instance + +import ( + acl "github.com/EasyTier/EasyTier/easytier-go/proto/acl" + common "github.com/EasyTier/EasyTier/easytier-go/proto/common" + peer_rpc "github.com/EasyTier/EasyTier/easytier-go/proto/peer_rpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type TrustedKeySourcePb int32 + +const ( + TrustedKeySourcePb_TRUSTED_KEY_SOURCE_PB_UNSPECIFIED TrustedKeySourcePb = 0 + TrustedKeySourcePb_TRUSTED_KEY_SOURCE_PB_OSPF_NODE TrustedKeySourcePb = 1 + TrustedKeySourcePb_TRUSTED_KEY_SOURCE_PB_OSPF_CREDENTIAL TrustedKeySourcePb = 2 +) + +// Enum value maps for TrustedKeySourcePb. +var ( + TrustedKeySourcePb_name = map[int32]string{ + 0: "TRUSTED_KEY_SOURCE_PB_UNSPECIFIED", + 1: "TRUSTED_KEY_SOURCE_PB_OSPF_NODE", + 2: "TRUSTED_KEY_SOURCE_PB_OSPF_CREDENTIAL", + } + TrustedKeySourcePb_value = map[string]int32{ + "TRUSTED_KEY_SOURCE_PB_UNSPECIFIED": 0, + "TRUSTED_KEY_SOURCE_PB_OSPF_NODE": 1, + "TRUSTED_KEY_SOURCE_PB_OSPF_CREDENTIAL": 2, + } +) + +func (x TrustedKeySourcePb) Enum() *TrustedKeySourcePb { + p := new(TrustedKeySourcePb) + *p = x + return p +} + +func (x TrustedKeySourcePb) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrustedKeySourcePb) Descriptor() protoreflect.EnumDescriptor { + return file_api_instance_proto_enumTypes[0].Descriptor() +} + +func (TrustedKeySourcePb) Type() protoreflect.EnumType { + return &file_api_instance_proto_enumTypes[0] +} + +func (x TrustedKeySourcePb) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrustedKeySourcePb.Descriptor instead. +func (TrustedKeySourcePb) EnumDescriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{0} +} + +type ConnectorStatus int32 + +const ( + ConnectorStatus_CONNECTED ConnectorStatus = 0 + ConnectorStatus_DISCONNECTED ConnectorStatus = 1 + ConnectorStatus_CONNECTING ConnectorStatus = 2 +) + +// Enum value maps for ConnectorStatus. +var ( + ConnectorStatus_name = map[int32]string{ + 0: "CONNECTED", + 1: "DISCONNECTED", + 2: "CONNECTING", + } + ConnectorStatus_value = map[string]int32{ + "CONNECTED": 0, + "DISCONNECTED": 1, + "CONNECTING": 2, + } +) + +func (x ConnectorStatus) Enum() *ConnectorStatus { + p := new(ConnectorStatus) + *p = x + return p +} + +func (x ConnectorStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConnectorStatus) Descriptor() protoreflect.EnumDescriptor { + return file_api_instance_proto_enumTypes[1].Descriptor() +} + +func (ConnectorStatus) Type() protoreflect.EnumType { + return &file_api_instance_proto_enumTypes[1] +} + +func (x ConnectorStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConnectorStatus.Descriptor instead. +func (ConnectorStatus) EnumDescriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{1} +} + +type TcpProxyEntryTransportType int32 + +const ( + TcpProxyEntryTransportType_TCP TcpProxyEntryTransportType = 0 + TcpProxyEntryTransportType_KCP TcpProxyEntryTransportType = 1 + TcpProxyEntryTransportType_QUIC TcpProxyEntryTransportType = 2 +) + +// Enum value maps for TcpProxyEntryTransportType. +var ( + TcpProxyEntryTransportType_name = map[int32]string{ + 0: "TCP", + 1: "KCP", + 2: "QUIC", + } + TcpProxyEntryTransportType_value = map[string]int32{ + "TCP": 0, + "KCP": 1, + "QUIC": 2, + } +) + +func (x TcpProxyEntryTransportType) Enum() *TcpProxyEntryTransportType { + p := new(TcpProxyEntryTransportType) + *p = x + return p +} + +func (x TcpProxyEntryTransportType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TcpProxyEntryTransportType) Descriptor() protoreflect.EnumDescriptor { + return file_api_instance_proto_enumTypes[2].Descriptor() +} + +func (TcpProxyEntryTransportType) Type() protoreflect.EnumType { + return &file_api_instance_proto_enumTypes[2] +} + +func (x TcpProxyEntryTransportType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TcpProxyEntryTransportType.Descriptor instead. +func (TcpProxyEntryTransportType) EnumDescriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{2} +} + +type TcpProxyEntryState int32 + +const ( + TcpProxyEntryState_Unknown TcpProxyEntryState = 0 + // receive syn packet but not start connecting to dst + TcpProxyEntryState_SynReceived TcpProxyEntryState = 1 + // connecting to dst + TcpProxyEntryState_ConnectingDst TcpProxyEntryState = 2 + // connected to dst + TcpProxyEntryState_Connected TcpProxyEntryState = 3 + // connection closed + TcpProxyEntryState_Closed TcpProxyEntryState = 4 + // closing src + TcpProxyEntryState_ClosingSrc TcpProxyEntryState = 5 + // closing dst + TcpProxyEntryState_ClosingDst TcpProxyEntryState = 6 +) + +// Enum value maps for TcpProxyEntryState. +var ( + TcpProxyEntryState_name = map[int32]string{ + 0: "Unknown", + 1: "SynReceived", + 2: "ConnectingDst", + 3: "Connected", + 4: "Closed", + 5: "ClosingSrc", + 6: "ClosingDst", + } + TcpProxyEntryState_value = map[string]int32{ + "Unknown": 0, + "SynReceived": 1, + "ConnectingDst": 2, + "Connected": 3, + "Closed": 4, + "ClosingSrc": 5, + "ClosingDst": 6, + } +) + +func (x TcpProxyEntryState) Enum() *TcpProxyEntryState { + p := new(TcpProxyEntryState) + *p = x + return p +} + +func (x TcpProxyEntryState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TcpProxyEntryState) Descriptor() protoreflect.EnumDescriptor { + return file_api_instance_proto_enumTypes[3].Descriptor() +} + +func (TcpProxyEntryState) Type() protoreflect.EnumType { + return &file_api_instance_proto_enumTypes[3] +} + +func (x TcpProxyEntryState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TcpProxyEntryState.Descriptor instead. +func (TcpProxyEntryState) EnumDescriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{3} +} + +type InstanceIdentifier struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Selector: + // + // *InstanceIdentifier_Id + // *InstanceIdentifier_InstanceSelector_ + Selector isInstanceIdentifier_Selector `protobuf_oneof:"selector"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InstanceIdentifier) Reset() { + *x = InstanceIdentifier{} + mi := &file_api_instance_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InstanceIdentifier) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstanceIdentifier) ProtoMessage() {} + +func (x *InstanceIdentifier) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstanceIdentifier.ProtoReflect.Descriptor instead. +func (*InstanceIdentifier) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{0} +} + +func (x *InstanceIdentifier) GetSelector() isInstanceIdentifier_Selector { + if x != nil { + return x.Selector + } + return nil +} + +func (x *InstanceIdentifier) GetId() *common.UUID { + if x != nil { + if x, ok := x.Selector.(*InstanceIdentifier_Id); ok { + return x.Id + } + } + return nil +} + +func (x *InstanceIdentifier) GetInstanceSelector() *InstanceIdentifier_InstanceSelector { + if x != nil { + if x, ok := x.Selector.(*InstanceIdentifier_InstanceSelector_); ok { + return x.InstanceSelector + } + } + return nil +} + +type isInstanceIdentifier_Selector interface { + isInstanceIdentifier_Selector() +} + +type InstanceIdentifier_Id struct { + Id *common.UUID `protobuf:"bytes,1,opt,name=id,proto3,oneof"` +} + +type InstanceIdentifier_InstanceSelector_ struct { + InstanceSelector *InstanceIdentifier_InstanceSelector `protobuf:"bytes,2,opt,name=instance_selector,json=instanceSelector,proto3,oneof"` +} + +func (*InstanceIdentifier_Id) isInstanceIdentifier_Selector() {} + +func (*InstanceIdentifier_InstanceSelector_) isInstanceIdentifier_Selector() {} + +type Status struct { + state protoimpl.MessageState `protogen:"open.v1"` + Code int32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Status) Reset() { + *x = Status{} + mi := &file_api_instance_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Status) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Status) ProtoMessage() {} + +func (x *Status) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Status.ProtoReflect.Descriptor instead. +func (*Status) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{1} +} + +func (x *Status) GetCode() int32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *Status) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type PeerConnStats struct { + state protoimpl.MessageState `protogen:"open.v1"` + RxBytes uint64 `protobuf:"varint,1,opt,name=rx_bytes,json=rxBytes,proto3" json:"rx_bytes,omitempty"` + TxBytes uint64 `protobuf:"varint,2,opt,name=tx_bytes,json=txBytes,proto3" json:"tx_bytes,omitempty"` + RxPackets uint64 `protobuf:"varint,3,opt,name=rx_packets,json=rxPackets,proto3" json:"rx_packets,omitempty"` + TxPackets uint64 `protobuf:"varint,4,opt,name=tx_packets,json=txPackets,proto3" json:"tx_packets,omitempty"` + LatencyUs uint64 `protobuf:"varint,5,opt,name=latency_us,json=latencyUs,proto3" json:"latency_us,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerConnStats) Reset() { + *x = PeerConnStats{} + mi := &file_api_instance_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerConnStats) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerConnStats) ProtoMessage() {} + +func (x *PeerConnStats) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerConnStats.ProtoReflect.Descriptor instead. +func (*PeerConnStats) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{2} +} + +func (x *PeerConnStats) GetRxBytes() uint64 { + if x != nil { + return x.RxBytes + } + return 0 +} + +func (x *PeerConnStats) GetTxBytes() uint64 { + if x != nil { + return x.TxBytes + } + return 0 +} + +func (x *PeerConnStats) GetRxPackets() uint64 { + if x != nil { + return x.RxPackets + } + return 0 +} + +func (x *PeerConnStats) GetTxPackets() uint64 { + if x != nil { + return x.TxPackets + } + return 0 +} + +func (x *PeerConnStats) GetLatencyUs() uint64 { + if x != nil { + return x.LatencyUs + } + return 0 +} + +type PeerConnInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + ConnId string `protobuf:"bytes,1,opt,name=conn_id,json=connId,proto3" json:"conn_id,omitempty"` + MyPeerId uint32 `protobuf:"varint,2,opt,name=my_peer_id,json=myPeerId,proto3" json:"my_peer_id,omitempty"` + PeerId uint32 `protobuf:"varint,3,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + Features []string `protobuf:"bytes,4,rep,name=features,proto3" json:"features,omitempty"` + Tunnel *common.TunnelInfo `protobuf:"bytes,5,opt,name=tunnel,proto3" json:"tunnel,omitempty"` + Stats *PeerConnStats `protobuf:"bytes,6,opt,name=stats,proto3" json:"stats,omitempty"` + LossRate float32 `protobuf:"fixed32,7,opt,name=loss_rate,json=lossRate,proto3" json:"loss_rate,omitempty"` + IsClient bool `protobuf:"varint,8,opt,name=is_client,json=isClient,proto3" json:"is_client,omitempty"` + NetworkName string `protobuf:"bytes,9,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` + IsClosed bool `protobuf:"varint,10,opt,name=is_closed,json=isClosed,proto3" json:"is_closed,omitempty"` + NoiseLocalStaticPubkey []byte `protobuf:"bytes,11,opt,name=noise_local_static_pubkey,json=noiseLocalStaticPubkey,proto3" json:"noise_local_static_pubkey,omitempty"` + NoiseRemoteStaticPubkey []byte `protobuf:"bytes,12,opt,name=noise_remote_static_pubkey,json=noiseRemoteStaticPubkey,proto3" json:"noise_remote_static_pubkey,omitempty"` + SecureAuthLevel peer_rpc.SecureAuthLevel `protobuf:"varint,13,opt,name=secure_auth_level,json=secureAuthLevel,proto3,enum=peer_rpc.SecureAuthLevel" json:"secure_auth_level,omitempty"` + PeerIdentityType peer_rpc.PeerIdentityType `protobuf:"varint,14,opt,name=peer_identity_type,json=peerIdentityType,proto3,enum=peer_rpc.PeerIdentityType" json:"peer_identity_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerConnInfo) Reset() { + *x = PeerConnInfo{} + mi := &file_api_instance_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerConnInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerConnInfo) ProtoMessage() {} + +func (x *PeerConnInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerConnInfo.ProtoReflect.Descriptor instead. +func (*PeerConnInfo) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{3} +} + +func (x *PeerConnInfo) GetConnId() string { + if x != nil { + return x.ConnId + } + return "" +} + +func (x *PeerConnInfo) GetMyPeerId() uint32 { + if x != nil { + return x.MyPeerId + } + return 0 +} + +func (x *PeerConnInfo) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *PeerConnInfo) GetFeatures() []string { + if x != nil { + return x.Features + } + return nil +} + +func (x *PeerConnInfo) GetTunnel() *common.TunnelInfo { + if x != nil { + return x.Tunnel + } + return nil +} + +func (x *PeerConnInfo) GetStats() *PeerConnStats { + if x != nil { + return x.Stats + } + return nil +} + +func (x *PeerConnInfo) GetLossRate() float32 { + if x != nil { + return x.LossRate + } + return 0 +} + +func (x *PeerConnInfo) GetIsClient() bool { + if x != nil { + return x.IsClient + } + return false +} + +func (x *PeerConnInfo) GetNetworkName() string { + if x != nil { + return x.NetworkName + } + return "" +} + +func (x *PeerConnInfo) GetIsClosed() bool { + if x != nil { + return x.IsClosed + } + return false +} + +func (x *PeerConnInfo) GetNoiseLocalStaticPubkey() []byte { + if x != nil { + return x.NoiseLocalStaticPubkey + } + return nil +} + +func (x *PeerConnInfo) GetNoiseRemoteStaticPubkey() []byte { + if x != nil { + return x.NoiseRemoteStaticPubkey + } + return nil +} + +func (x *PeerConnInfo) GetSecureAuthLevel() peer_rpc.SecureAuthLevel { + if x != nil { + return x.SecureAuthLevel + } + return peer_rpc.SecureAuthLevel(0) +} + +func (x *PeerConnInfo) GetPeerIdentityType() peer_rpc.PeerIdentityType { + if x != nil { + return x.PeerIdentityType + } + return peer_rpc.PeerIdentityType(0) +} + +type PeerInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + Conns []*PeerConnInfo `protobuf:"bytes,2,rep,name=conns,proto3" json:"conns,omitempty"` + DefaultConnId *common.UUID `protobuf:"bytes,3,opt,name=default_conn_id,json=defaultConnId,proto3" json:"default_conn_id,omitempty"` + DirectlyConnectedConns []*common.UUID `protobuf:"bytes,4,rep,name=directly_connected_conns,json=directlyConnectedConns,proto3" json:"directly_connected_conns,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerInfo) Reset() { + *x = PeerInfo{} + mi := &file_api_instance_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerInfo) ProtoMessage() {} + +func (x *PeerInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerInfo.ProtoReflect.Descriptor instead. +func (*PeerInfo) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{4} +} + +func (x *PeerInfo) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *PeerInfo) GetConns() []*PeerConnInfo { + if x != nil { + return x.Conns + } + return nil +} + +func (x *PeerInfo) GetDefaultConnId() *common.UUID { + if x != nil { + return x.DefaultConnId + } + return nil +} + +func (x *PeerInfo) GetDirectlyConnectedConns() []*common.UUID { + if x != nil { + return x.DirectlyConnectedConns + } + return nil +} + +type ListPeerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListPeerRequest) Reset() { + *x = ListPeerRequest{} + mi := &file_api_instance_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListPeerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPeerRequest) ProtoMessage() {} + +func (x *ListPeerRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListPeerRequest.ProtoReflect.Descriptor instead. +func (*ListPeerRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{5} +} + +func (x *ListPeerRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type ListPeerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerInfos []*PeerInfo `protobuf:"bytes,1,rep,name=peer_infos,json=peerInfos,proto3" json:"peer_infos,omitempty"` + MyInfo *NodeInfo `protobuf:"bytes,2,opt,name=my_info,json=myInfo,proto3" json:"my_info,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListPeerResponse) Reset() { + *x = ListPeerResponse{} + mi := &file_api_instance_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListPeerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPeerResponse) ProtoMessage() {} + +func (x *ListPeerResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListPeerResponse.ProtoReflect.Descriptor instead. +func (*ListPeerResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{6} +} + +func (x *ListPeerResponse) GetPeerInfos() []*PeerInfo { + if x != nil { + return x.PeerInfos + } + return nil +} + +func (x *ListPeerResponse) GetMyInfo() *NodeInfo { + if x != nil { + return x.MyInfo + } + return nil +} + +type Route struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + Ipv4Addr *common.Ipv4Inet `protobuf:"bytes,2,opt,name=ipv4_addr,json=ipv4Addr,proto3" json:"ipv4_addr,omitempty"` + NextHopPeerId uint32 `protobuf:"varint,3,opt,name=next_hop_peer_id,json=nextHopPeerId,proto3" json:"next_hop_peer_id,omitempty"` + Cost int32 `protobuf:"varint,4,opt,name=cost,proto3" json:"cost,omitempty"` + PathLatency int32 `protobuf:"varint,11,opt,name=path_latency,json=pathLatency,proto3" json:"path_latency,omitempty"` + ProxyCidrs []string `protobuf:"bytes,5,rep,name=proxy_cidrs,json=proxyCidrs,proto3" json:"proxy_cidrs,omitempty"` + Hostname string `protobuf:"bytes,6,opt,name=hostname,proto3" json:"hostname,omitempty"` + StunInfo *common.StunInfo `protobuf:"bytes,7,opt,name=stun_info,json=stunInfo,proto3" json:"stun_info,omitempty"` + InstId string `protobuf:"bytes,8,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + Version string `protobuf:"bytes,9,opt,name=version,proto3" json:"version,omitempty"` + FeatureFlag *common.PeerFeatureFlag `protobuf:"bytes,10,opt,name=feature_flag,json=featureFlag,proto3" json:"feature_flag,omitempty"` + NextHopPeerIdLatencyFirst *uint32 `protobuf:"varint,12,opt,name=next_hop_peer_id_latency_first,json=nextHopPeerIdLatencyFirst,proto3,oneof" json:"next_hop_peer_id_latency_first,omitempty"` + CostLatencyFirst *int32 `protobuf:"varint,13,opt,name=cost_latency_first,json=costLatencyFirst,proto3,oneof" json:"cost_latency_first,omitempty"` + PathLatencyLatencyFirst *int32 `protobuf:"varint,14,opt,name=path_latency_latency_first,json=pathLatencyLatencyFirst,proto3,oneof" json:"path_latency_latency_first,omitempty"` + Ipv6Addr *common.Ipv6Inet `protobuf:"bytes,15,opt,name=ipv6_addr,json=ipv6Addr,proto3" json:"ipv6_addr,omitempty"` + PublicIpv6Addr *common.Ipv6Inet `protobuf:"bytes,16,opt,name=public_ipv6_addr,json=publicIpv6Addr,proto3" json:"public_ipv6_addr,omitempty"` + Ipv6PublicAddrPrefix *common.Ipv6Inet `protobuf:"bytes,17,opt,name=ipv6_public_addr_prefix,json=ipv6PublicAddrPrefix,proto3" json:"ipv6_public_addr_prefix,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Route) Reset() { + *x = Route{} + mi := &file_api_instance_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Route) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Route) ProtoMessage() {} + +func (x *Route) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Route.ProtoReflect.Descriptor instead. +func (*Route) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{7} +} + +func (x *Route) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *Route) GetIpv4Addr() *common.Ipv4Inet { + if x != nil { + return x.Ipv4Addr + } + return nil +} + +func (x *Route) GetNextHopPeerId() uint32 { + if x != nil { + return x.NextHopPeerId + } + return 0 +} + +func (x *Route) GetCost() int32 { + if x != nil { + return x.Cost + } + return 0 +} + +func (x *Route) GetPathLatency() int32 { + if x != nil { + return x.PathLatency + } + return 0 +} + +func (x *Route) GetProxyCidrs() []string { + if x != nil { + return x.ProxyCidrs + } + return nil +} + +func (x *Route) GetHostname() string { + if x != nil { + return x.Hostname + } + return "" +} + +func (x *Route) GetStunInfo() *common.StunInfo { + if x != nil { + return x.StunInfo + } + return nil +} + +func (x *Route) GetInstId() string { + if x != nil { + return x.InstId + } + return "" +} + +func (x *Route) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *Route) GetFeatureFlag() *common.PeerFeatureFlag { + if x != nil { + return x.FeatureFlag + } + return nil +} + +func (x *Route) GetNextHopPeerIdLatencyFirst() uint32 { + if x != nil && x.NextHopPeerIdLatencyFirst != nil { + return *x.NextHopPeerIdLatencyFirst + } + return 0 +} + +func (x *Route) GetCostLatencyFirst() int32 { + if x != nil && x.CostLatencyFirst != nil { + return *x.CostLatencyFirst + } + return 0 +} + +func (x *Route) GetPathLatencyLatencyFirst() int32 { + if x != nil && x.PathLatencyLatencyFirst != nil { + return *x.PathLatencyLatencyFirst + } + return 0 +} + +func (x *Route) GetIpv6Addr() *common.Ipv6Inet { + if x != nil { + return x.Ipv6Addr + } + return nil +} + +func (x *Route) GetPublicIpv6Addr() *common.Ipv6Inet { + if x != nil { + return x.PublicIpv6Addr + } + return nil +} + +func (x *Route) GetIpv6PublicAddrPrefix() *common.Ipv6Inet { + if x != nil { + return x.Ipv6PublicAddrPrefix + } + return nil +} + +type PeerRoutePair struct { + state protoimpl.MessageState `protogen:"open.v1"` + Route *Route `protobuf:"bytes,1,opt,name=route,proto3" json:"route,omitempty"` + Peer *PeerInfo `protobuf:"bytes,2,opt,name=peer,proto3" json:"peer,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerRoutePair) Reset() { + *x = PeerRoutePair{} + mi := &file_api_instance_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerRoutePair) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerRoutePair) ProtoMessage() {} + +func (x *PeerRoutePair) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerRoutePair.ProtoReflect.Descriptor instead. +func (*PeerRoutePair) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{8} +} + +func (x *PeerRoutePair) GetRoute() *Route { + if x != nil { + return x.Route + } + return nil +} + +func (x *PeerRoutePair) GetPeer() *PeerInfo { + if x != nil { + return x.Peer + } + return nil +} + +type NodeInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + Ipv4Addr string `protobuf:"bytes,2,opt,name=ipv4_addr,json=ipv4Addr,proto3" json:"ipv4_addr,omitempty"` + ProxyCidrs []string `protobuf:"bytes,3,rep,name=proxy_cidrs,json=proxyCidrs,proto3" json:"proxy_cidrs,omitempty"` + Hostname string `protobuf:"bytes,4,opt,name=hostname,proto3" json:"hostname,omitempty"` + StunInfo *common.StunInfo `protobuf:"bytes,5,opt,name=stun_info,json=stunInfo,proto3" json:"stun_info,omitempty"` + InstId string `protobuf:"bytes,6,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + Listeners []string `protobuf:"bytes,7,rep,name=listeners,proto3" json:"listeners,omitempty"` + Config string `protobuf:"bytes,8,opt,name=config,proto3" json:"config,omitempty"` + Version string `protobuf:"bytes,9,opt,name=version,proto3" json:"version,omitempty"` + FeatureFlag *common.PeerFeatureFlag `protobuf:"bytes,10,opt,name=feature_flag,json=featureFlag,proto3" json:"feature_flag,omitempty"` + IpList *peer_rpc.GetIpListResponse `protobuf:"bytes,11,opt,name=ip_list,json=ipList,proto3" json:"ip_list,omitempty"` + PublicIpv6Addr *common.Ipv6Inet `protobuf:"bytes,12,opt,name=public_ipv6_addr,json=publicIpv6Addr,proto3" json:"public_ipv6_addr,omitempty"` + Ipv6PublicAddrPrefix *common.Ipv6Inet `protobuf:"bytes,13,opt,name=ipv6_public_addr_prefix,json=ipv6PublicAddrPrefix,proto3" json:"ipv6_public_addr_prefix,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NodeInfo) Reset() { + *x = NodeInfo{} + mi := &file_api_instance_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NodeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeInfo) ProtoMessage() {} + +func (x *NodeInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeInfo.ProtoReflect.Descriptor instead. +func (*NodeInfo) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{9} +} + +func (x *NodeInfo) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *NodeInfo) GetIpv4Addr() string { + if x != nil { + return x.Ipv4Addr + } + return "" +} + +func (x *NodeInfo) GetProxyCidrs() []string { + if x != nil { + return x.ProxyCidrs + } + return nil +} + +func (x *NodeInfo) GetHostname() string { + if x != nil { + return x.Hostname + } + return "" +} + +func (x *NodeInfo) GetStunInfo() *common.StunInfo { + if x != nil { + return x.StunInfo + } + return nil +} + +func (x *NodeInfo) GetInstId() string { + if x != nil { + return x.InstId + } + return "" +} + +func (x *NodeInfo) GetListeners() []string { + if x != nil { + return x.Listeners + } + return nil +} + +func (x *NodeInfo) GetConfig() string { + if x != nil { + return x.Config + } + return "" +} + +func (x *NodeInfo) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *NodeInfo) GetFeatureFlag() *common.PeerFeatureFlag { + if x != nil { + return x.FeatureFlag + } + return nil +} + +func (x *NodeInfo) GetIpList() *peer_rpc.GetIpListResponse { + if x != nil { + return x.IpList + } + return nil +} + +func (x *NodeInfo) GetPublicIpv6Addr() *common.Ipv6Inet { + if x != nil { + return x.PublicIpv6Addr + } + return nil +} + +func (x *NodeInfo) GetIpv6PublicAddrPrefix() *common.Ipv6Inet { + if x != nil { + return x.Ipv6PublicAddrPrefix + } + return nil +} + +type ShowNodeInfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ShowNodeInfoRequest) Reset() { + *x = ShowNodeInfoRequest{} + mi := &file_api_instance_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ShowNodeInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShowNodeInfoRequest) ProtoMessage() {} + +func (x *ShowNodeInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShowNodeInfoRequest.ProtoReflect.Descriptor instead. +func (*ShowNodeInfoRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{10} +} + +func (x *ShowNodeInfoRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type ShowNodeInfoResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + NodeInfo *NodeInfo `protobuf:"bytes,1,opt,name=node_info,json=nodeInfo,proto3" json:"node_info,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ShowNodeInfoResponse) Reset() { + *x = ShowNodeInfoResponse{} + mi := &file_api_instance_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ShowNodeInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ShowNodeInfoResponse) ProtoMessage() {} + +func (x *ShowNodeInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ShowNodeInfoResponse.ProtoReflect.Descriptor instead. +func (*ShowNodeInfoResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{11} +} + +func (x *ShowNodeInfoResponse) GetNodeInfo() *NodeInfo { + if x != nil { + return x.NodeInfo + } + return nil +} + +type PublicIpv6LeaseInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + InstId string `protobuf:"bytes,2,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + LeasedAddr *common.Ipv6Inet `protobuf:"bytes,3,opt,name=leased_addr,json=leasedAddr,proto3" json:"leased_addr,omitempty"` + ValidUntilUnixSeconds int64 `protobuf:"varint,4,opt,name=valid_until_unix_seconds,json=validUntilUnixSeconds,proto3" json:"valid_until_unix_seconds,omitempty"` + Reused bool `protobuf:"varint,5,opt,name=reused,proto3" json:"reused,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PublicIpv6LeaseInfo) Reset() { + *x = PublicIpv6LeaseInfo{} + mi := &file_api_instance_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PublicIpv6LeaseInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PublicIpv6LeaseInfo) ProtoMessage() {} + +func (x *PublicIpv6LeaseInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PublicIpv6LeaseInfo.ProtoReflect.Descriptor instead. +func (*PublicIpv6LeaseInfo) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{12} +} + +func (x *PublicIpv6LeaseInfo) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *PublicIpv6LeaseInfo) GetInstId() string { + if x != nil { + return x.InstId + } + return "" +} + +func (x *PublicIpv6LeaseInfo) GetLeasedAddr() *common.Ipv6Inet { + if x != nil { + return x.LeasedAddr + } + return nil +} + +func (x *PublicIpv6LeaseInfo) GetValidUntilUnixSeconds() int64 { + if x != nil { + return x.ValidUntilUnixSeconds + } + return 0 +} + +func (x *PublicIpv6LeaseInfo) GetReused() bool { + if x != nil { + return x.Reused + } + return false +} + +type ListPublicIpv6InfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListPublicIpv6InfoRequest) Reset() { + *x = ListPublicIpv6InfoRequest{} + mi := &file_api_instance_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListPublicIpv6InfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPublicIpv6InfoRequest) ProtoMessage() {} + +func (x *ListPublicIpv6InfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListPublicIpv6InfoRequest.ProtoReflect.Descriptor instead. +func (*ListPublicIpv6InfoRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{13} +} + +func (x *ListPublicIpv6InfoRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type ListPublicIpv6InfoResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + ProviderPrefix *common.Ipv6Inet `protobuf:"bytes,1,opt,name=provider_prefix,json=providerPrefix,proto3" json:"provider_prefix,omitempty"` + ProviderLeases []*PublicIpv6LeaseInfo `protobuf:"bytes,2,rep,name=provider_leases,json=providerLeases,proto3" json:"provider_leases,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListPublicIpv6InfoResponse) Reset() { + *x = ListPublicIpv6InfoResponse{} + mi := &file_api_instance_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListPublicIpv6InfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPublicIpv6InfoResponse) ProtoMessage() {} + +func (x *ListPublicIpv6InfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListPublicIpv6InfoResponse.ProtoReflect.Descriptor instead. +func (*ListPublicIpv6InfoResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{14} +} + +func (x *ListPublicIpv6InfoResponse) GetProviderPrefix() *common.Ipv6Inet { + if x != nil { + return x.ProviderPrefix + } + return nil +} + +func (x *ListPublicIpv6InfoResponse) GetProviderLeases() []*PublicIpv6LeaseInfo { + if x != nil { + return x.ProviderLeases + } + return nil +} + +type ListRouteRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListRouteRequest) Reset() { + *x = ListRouteRequest{} + mi := &file_api_instance_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRouteRequest) ProtoMessage() {} + +func (x *ListRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRouteRequest.ProtoReflect.Descriptor instead. +func (*ListRouteRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{15} +} + +func (x *ListRouteRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type ListRouteResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Routes []*Route `protobuf:"bytes,1,rep,name=routes,proto3" json:"routes,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListRouteResponse) Reset() { + *x = ListRouteResponse{} + mi := &file_api_instance_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListRouteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListRouteResponse) ProtoMessage() {} + +func (x *ListRouteResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListRouteResponse.ProtoReflect.Descriptor instead. +func (*ListRouteResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{16} +} + +func (x *ListRouteResponse) GetRoutes() []*Route { + if x != nil { + return x.Routes + } + return nil +} + +type DumpRouteRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DumpRouteRequest) Reset() { + *x = DumpRouteRequest{} + mi := &file_api_instance_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DumpRouteRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DumpRouteRequest) ProtoMessage() {} + +func (x *DumpRouteRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DumpRouteRequest.ProtoReflect.Descriptor instead. +func (*DumpRouteRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{17} +} + +func (x *DumpRouteRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type DumpRouteResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Result string `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DumpRouteResponse) Reset() { + *x = DumpRouteResponse{} + mi := &file_api_instance_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DumpRouteResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DumpRouteResponse) ProtoMessage() {} + +func (x *DumpRouteResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DumpRouteResponse.ProtoReflect.Descriptor instead. +func (*DumpRouteResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{18} +} + +func (x *DumpRouteResponse) GetResult() string { + if x != nil { + return x.Result + } + return "" +} + +type ListForeignNetworkRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + IncludeTrustedKeys bool `protobuf:"varint,2,opt,name=include_trusted_keys,json=includeTrustedKeys,proto3" json:"include_trusted_keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListForeignNetworkRequest) Reset() { + *x = ListForeignNetworkRequest{} + mi := &file_api_instance_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListForeignNetworkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListForeignNetworkRequest) ProtoMessage() {} + +func (x *ListForeignNetworkRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListForeignNetworkRequest.ProtoReflect.Descriptor instead. +func (*ListForeignNetworkRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{19} +} + +func (x *ListForeignNetworkRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +func (x *ListForeignNetworkRequest) GetIncludeTrustedKeys() bool { + if x != nil { + return x.IncludeTrustedKeys + } + return false +} + +type TrustedKeyInfoPb struct { + state protoimpl.MessageState `protogen:"open.v1"` + Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"` + Source TrustedKeySourcePb `protobuf:"varint,2,opt,name=source,proto3,enum=api.instance.TrustedKeySourcePb" json:"source,omitempty"` + ExpiryUnix *int64 `protobuf:"varint,3,opt,name=expiry_unix,json=expiryUnix,proto3,oneof" json:"expiry_unix,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TrustedKeyInfoPb) Reset() { + *x = TrustedKeyInfoPb{} + mi := &file_api_instance_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrustedKeyInfoPb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrustedKeyInfoPb) ProtoMessage() {} + +func (x *TrustedKeyInfoPb) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrustedKeyInfoPb.ProtoReflect.Descriptor instead. +func (*TrustedKeyInfoPb) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{20} +} + +func (x *TrustedKeyInfoPb) GetPubkey() []byte { + if x != nil { + return x.Pubkey + } + return nil +} + +func (x *TrustedKeyInfoPb) GetSource() TrustedKeySourcePb { + if x != nil { + return x.Source + } + return TrustedKeySourcePb_TRUSTED_KEY_SOURCE_PB_UNSPECIFIED +} + +func (x *TrustedKeyInfoPb) GetExpiryUnix() int64 { + if x != nil && x.ExpiryUnix != nil { + return *x.ExpiryUnix + } + return 0 +} + +type ForeignNetworkEntryPb struct { + state protoimpl.MessageState `protogen:"open.v1"` + Peers []*PeerInfo `protobuf:"bytes,1,rep,name=peers,proto3" json:"peers,omitempty"` + NetworkSecretDigest []byte `protobuf:"bytes,2,opt,name=network_secret_digest,json=networkSecretDigest,proto3" json:"network_secret_digest,omitempty"` + MyPeerIdForThisNetwork uint32 `protobuf:"varint,3,opt,name=my_peer_id_for_this_network,json=myPeerIdForThisNetwork,proto3" json:"my_peer_id_for_this_network,omitempty"` + TrustedKeys []*TrustedKeyInfoPb `protobuf:"bytes,4,rep,name=trusted_keys,json=trustedKeys,proto3" json:"trusted_keys,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ForeignNetworkEntryPb) Reset() { + *x = ForeignNetworkEntryPb{} + mi := &file_api_instance_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ForeignNetworkEntryPb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForeignNetworkEntryPb) ProtoMessage() {} + +func (x *ForeignNetworkEntryPb) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ForeignNetworkEntryPb.ProtoReflect.Descriptor instead. +func (*ForeignNetworkEntryPb) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{21} +} + +func (x *ForeignNetworkEntryPb) GetPeers() []*PeerInfo { + if x != nil { + return x.Peers + } + return nil +} + +func (x *ForeignNetworkEntryPb) GetNetworkSecretDigest() []byte { + if x != nil { + return x.NetworkSecretDigest + } + return nil +} + +func (x *ForeignNetworkEntryPb) GetMyPeerIdForThisNetwork() uint32 { + if x != nil { + return x.MyPeerIdForThisNetwork + } + return 0 +} + +func (x *ForeignNetworkEntryPb) GetTrustedKeys() []*TrustedKeyInfoPb { + if x != nil { + return x.TrustedKeys + } + return nil +} + +type ListForeignNetworkResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // foreign network in local + ForeignNetworks map[string]*ForeignNetworkEntryPb `protobuf:"bytes,1,rep,name=foreign_networks,json=foreignNetworks,proto3" json:"foreign_networks,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListForeignNetworkResponse) Reset() { + *x = ListForeignNetworkResponse{} + mi := &file_api_instance_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListForeignNetworkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListForeignNetworkResponse) ProtoMessage() {} + +func (x *ListForeignNetworkResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListForeignNetworkResponse.ProtoReflect.Descriptor instead. +func (*ListForeignNetworkResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{22} +} + +func (x *ListForeignNetworkResponse) GetForeignNetworks() map[string]*ForeignNetworkEntryPb { + if x != nil { + return x.ForeignNetworks + } + return nil +} + +type ListGlobalForeignNetworkRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListGlobalForeignNetworkRequest) Reset() { + *x = ListGlobalForeignNetworkRequest{} + mi := &file_api_instance_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListGlobalForeignNetworkRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListGlobalForeignNetworkRequest) ProtoMessage() {} + +func (x *ListGlobalForeignNetworkRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListGlobalForeignNetworkRequest.ProtoReflect.Descriptor instead. +func (*ListGlobalForeignNetworkRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{23} +} + +func (x *ListGlobalForeignNetworkRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type ListGlobalForeignNetworkResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + ForeignNetworks map[uint32]*ListGlobalForeignNetworkResponse_ForeignNetworks `protobuf:"bytes,1,rep,name=foreign_networks,json=foreignNetworks,proto3" json:"foreign_networks,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListGlobalForeignNetworkResponse) Reset() { + *x = ListGlobalForeignNetworkResponse{} + mi := &file_api_instance_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListGlobalForeignNetworkResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListGlobalForeignNetworkResponse) ProtoMessage() {} + +func (x *ListGlobalForeignNetworkResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListGlobalForeignNetworkResponse.ProtoReflect.Descriptor instead. +func (*ListGlobalForeignNetworkResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{24} +} + +func (x *ListGlobalForeignNetworkResponse) GetForeignNetworks() map[uint32]*ListGlobalForeignNetworkResponse_ForeignNetworks { + if x != nil { + return x.ForeignNetworks + } + return nil +} + +type GetForeignNetworkSummaryRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetForeignNetworkSummaryRequest) Reset() { + *x = GetForeignNetworkSummaryRequest{} + mi := &file_api_instance_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetForeignNetworkSummaryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetForeignNetworkSummaryRequest) ProtoMessage() {} + +func (x *GetForeignNetworkSummaryRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetForeignNetworkSummaryRequest.ProtoReflect.Descriptor instead. +func (*GetForeignNetworkSummaryRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{25} +} + +func (x *GetForeignNetworkSummaryRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type GetForeignNetworkSummaryResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Summary *peer_rpc.RouteForeignNetworkSummary `protobuf:"bytes,1,opt,name=summary,proto3" json:"summary,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetForeignNetworkSummaryResponse) Reset() { + *x = GetForeignNetworkSummaryResponse{} + mi := &file_api_instance_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetForeignNetworkSummaryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetForeignNetworkSummaryResponse) ProtoMessage() {} + +func (x *GetForeignNetworkSummaryResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetForeignNetworkSummaryResponse.ProtoReflect.Descriptor instead. +func (*GetForeignNetworkSummaryResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{26} +} + +func (x *GetForeignNetworkSummaryResponse) GetSummary() *peer_rpc.RouteForeignNetworkSummary { + if x != nil { + return x.Summary + } + return nil +} + +type Connector struct { + state protoimpl.MessageState `protogen:"open.v1"` + Url *common.Url `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + Status ConnectorStatus `protobuf:"varint,2,opt,name=status,proto3,enum=api.instance.ConnectorStatus" json:"status,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Connector) Reset() { + *x = Connector{} + mi := &file_api_instance_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Connector) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Connector) ProtoMessage() {} + +func (x *Connector) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Connector.ProtoReflect.Descriptor instead. +func (*Connector) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{27} +} + +func (x *Connector) GetUrl() *common.Url { + if x != nil { + return x.Url + } + return nil +} + +func (x *Connector) GetStatus() ConnectorStatus { + if x != nil { + return x.Status + } + return ConnectorStatus_CONNECTED +} + +type ListConnectorRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListConnectorRequest) Reset() { + *x = ListConnectorRequest{} + mi := &file_api_instance_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListConnectorRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListConnectorRequest) ProtoMessage() {} + +func (x *ListConnectorRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListConnectorRequest.ProtoReflect.Descriptor instead. +func (*ListConnectorRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{28} +} + +func (x *ListConnectorRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type ListConnectorResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Connectors []*Connector `protobuf:"bytes,1,rep,name=connectors,proto3" json:"connectors,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListConnectorResponse) Reset() { + *x = ListConnectorResponse{} + mi := &file_api_instance_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListConnectorResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListConnectorResponse) ProtoMessage() {} + +func (x *ListConnectorResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[29] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListConnectorResponse.ProtoReflect.Descriptor instead. +func (*ListConnectorResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{29} +} + +func (x *ListConnectorResponse) GetConnectors() []*Connector { + if x != nil { + return x.Connectors + } + return nil +} + +type MappedListener struct { + state protoimpl.MessageState `protogen:"open.v1"` + Url *common.Url `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MappedListener) Reset() { + *x = MappedListener{} + mi := &file_api_instance_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MappedListener) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MappedListener) ProtoMessage() {} + +func (x *MappedListener) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[30] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MappedListener.ProtoReflect.Descriptor instead. +func (*MappedListener) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{30} +} + +func (x *MappedListener) GetUrl() *common.Url { + if x != nil { + return x.Url + } + return nil +} + +type ListMappedListenerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListMappedListenerRequest) Reset() { + *x = ListMappedListenerRequest{} + mi := &file_api_instance_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListMappedListenerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListMappedListenerRequest) ProtoMessage() {} + +func (x *ListMappedListenerRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[31] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListMappedListenerRequest.ProtoReflect.Descriptor instead. +func (*ListMappedListenerRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{31} +} + +func (x *ListMappedListenerRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type ListMappedListenerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Mappedlisteners []*MappedListener `protobuf:"bytes,1,rep,name=mappedlisteners,proto3" json:"mappedlisteners,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListMappedListenerResponse) Reset() { + *x = ListMappedListenerResponse{} + mi := &file_api_instance_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListMappedListenerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListMappedListenerResponse) ProtoMessage() {} + +func (x *ListMappedListenerResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[32] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListMappedListenerResponse.ProtoReflect.Descriptor instead. +func (*ListMappedListenerResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{32} +} + +func (x *ListMappedListenerResponse) GetMappedlisteners() []*MappedListener { + if x != nil { + return x.Mappedlisteners + } + return nil +} + +type VpnPortalInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + VpnType string `protobuf:"bytes,1,opt,name=vpn_type,json=vpnType,proto3" json:"vpn_type,omitempty"` + ClientConfig string `protobuf:"bytes,2,opt,name=client_config,json=clientConfig,proto3" json:"client_config,omitempty"` + ConnectedClients []string `protobuf:"bytes,3,rep,name=connected_clients,json=connectedClients,proto3" json:"connected_clients,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *VpnPortalInfo) Reset() { + *x = VpnPortalInfo{} + mi := &file_api_instance_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *VpnPortalInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VpnPortalInfo) ProtoMessage() {} + +func (x *VpnPortalInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[33] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use VpnPortalInfo.ProtoReflect.Descriptor instead. +func (*VpnPortalInfo) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{33} +} + +func (x *VpnPortalInfo) GetVpnType() string { + if x != nil { + return x.VpnType + } + return "" +} + +func (x *VpnPortalInfo) GetClientConfig() string { + if x != nil { + return x.ClientConfig + } + return "" +} + +func (x *VpnPortalInfo) GetConnectedClients() []string { + if x != nil { + return x.ConnectedClients + } + return nil +} + +type GetVpnPortalInfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetVpnPortalInfoRequest) Reset() { + *x = GetVpnPortalInfoRequest{} + mi := &file_api_instance_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetVpnPortalInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVpnPortalInfoRequest) ProtoMessage() {} + +func (x *GetVpnPortalInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[34] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVpnPortalInfoRequest.ProtoReflect.Descriptor instead. +func (*GetVpnPortalInfoRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{34} +} + +func (x *GetVpnPortalInfoRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type GetVpnPortalInfoResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + VpnPortalInfo *VpnPortalInfo `protobuf:"bytes,1,opt,name=vpn_portal_info,json=vpnPortalInfo,proto3" json:"vpn_portal_info,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetVpnPortalInfoResponse) Reset() { + *x = GetVpnPortalInfoResponse{} + mi := &file_api_instance_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetVpnPortalInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVpnPortalInfoResponse) ProtoMessage() {} + +func (x *GetVpnPortalInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[35] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVpnPortalInfoResponse.ProtoReflect.Descriptor instead. +func (*GetVpnPortalInfoResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{35} +} + +func (x *GetVpnPortalInfoResponse) GetVpnPortalInfo() *VpnPortalInfo { + if x != nil { + return x.VpnPortalInfo + } + return nil +} + +type TcpProxyEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + Src *common.SocketAddr `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"` + Dst *common.SocketAddr `protobuf:"bytes,2,opt,name=dst,proto3" json:"dst,omitempty"` + StartTime uint64 `protobuf:"varint,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` + State TcpProxyEntryState `protobuf:"varint,4,opt,name=state,proto3,enum=api.instance.TcpProxyEntryState" json:"state,omitempty"` + TransportType TcpProxyEntryTransportType `protobuf:"varint,5,opt,name=transport_type,json=transportType,proto3,enum=api.instance.TcpProxyEntryTransportType" json:"transport_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TcpProxyEntry) Reset() { + *x = TcpProxyEntry{} + mi := &file_api_instance_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TcpProxyEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TcpProxyEntry) ProtoMessage() {} + +func (x *TcpProxyEntry) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[36] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TcpProxyEntry.ProtoReflect.Descriptor instead. +func (*TcpProxyEntry) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{36} +} + +func (x *TcpProxyEntry) GetSrc() *common.SocketAddr { + if x != nil { + return x.Src + } + return nil +} + +func (x *TcpProxyEntry) GetDst() *common.SocketAddr { + if x != nil { + return x.Dst + } + return nil +} + +func (x *TcpProxyEntry) GetStartTime() uint64 { + if x != nil { + return x.StartTime + } + return 0 +} + +func (x *TcpProxyEntry) GetState() TcpProxyEntryState { + if x != nil { + return x.State + } + return TcpProxyEntryState_Unknown +} + +func (x *TcpProxyEntry) GetTransportType() TcpProxyEntryTransportType { + if x != nil { + return x.TransportType + } + return TcpProxyEntryTransportType_TCP +} + +type ListTcpProxyEntryRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListTcpProxyEntryRequest) Reset() { + *x = ListTcpProxyEntryRequest{} + mi := &file_api_instance_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListTcpProxyEntryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTcpProxyEntryRequest) ProtoMessage() {} + +func (x *ListTcpProxyEntryRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[37] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListTcpProxyEntryRequest.ProtoReflect.Descriptor instead. +func (*ListTcpProxyEntryRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{37} +} + +func (x *ListTcpProxyEntryRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type ListTcpProxyEntryResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Entries []*TcpProxyEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListTcpProxyEntryResponse) Reset() { + *x = ListTcpProxyEntryResponse{} + mi := &file_api_instance_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListTcpProxyEntryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListTcpProxyEntryResponse) ProtoMessage() {} + +func (x *ListTcpProxyEntryResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[38] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListTcpProxyEntryResponse.ProtoReflect.Descriptor instead. +func (*ListTcpProxyEntryResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{38} +} + +func (x *ListTcpProxyEntryResponse) GetEntries() []*TcpProxyEntry { + if x != nil { + return x.Entries + } + return nil +} + +type GetAclStatsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetAclStatsRequest) Reset() { + *x = GetAclStatsRequest{} + mi := &file_api_instance_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetAclStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAclStatsRequest) ProtoMessage() {} + +func (x *GetAclStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[39] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAclStatsRequest.ProtoReflect.Descriptor instead. +func (*GetAclStatsRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{39} +} + +func (x *GetAclStatsRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type GetAclStatsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + AclStats *acl.AclStats `protobuf:"bytes,1,opt,name=acl_stats,json=aclStats,proto3" json:"acl_stats,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetAclStatsResponse) Reset() { + *x = GetAclStatsResponse{} + mi := &file_api_instance_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetAclStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAclStatsResponse) ProtoMessage() {} + +func (x *GetAclStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[40] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAclStatsResponse.ProtoReflect.Descriptor instead. +func (*GetAclStatsResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{40} +} + +func (x *GetAclStatsResponse) GetAclStats() *acl.AclStats { + if x != nil { + return x.AclStats + } + return nil +} + +type GetWhitelistRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetWhitelistRequest) Reset() { + *x = GetWhitelistRequest{} + mi := &file_api_instance_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetWhitelistRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWhitelistRequest) ProtoMessage() {} + +func (x *GetWhitelistRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[41] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWhitelistRequest.ProtoReflect.Descriptor instead. +func (*GetWhitelistRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{41} +} + +func (x *GetWhitelistRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type GetWhitelistResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + TcpPorts []string `protobuf:"bytes,1,rep,name=tcp_ports,json=tcpPorts,proto3" json:"tcp_ports,omitempty"` + UdpPorts []string `protobuf:"bytes,2,rep,name=udp_ports,json=udpPorts,proto3" json:"udp_ports,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetWhitelistResponse) Reset() { + *x = GetWhitelistResponse{} + mi := &file_api_instance_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetWhitelistResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWhitelistResponse) ProtoMessage() {} + +func (x *GetWhitelistResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[42] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWhitelistResponse.ProtoReflect.Descriptor instead. +func (*GetWhitelistResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{42} +} + +func (x *GetWhitelistResponse) GetTcpPorts() []string { + if x != nil { + return x.TcpPorts + } + return nil +} + +func (x *GetWhitelistResponse) GetUdpPorts() []string { + if x != nil { + return x.UdpPorts + } + return nil +} + +type ListPortForwardRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListPortForwardRequest) Reset() { + *x = ListPortForwardRequest{} + mi := &file_api_instance_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListPortForwardRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPortForwardRequest) ProtoMessage() {} + +func (x *ListPortForwardRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[43] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListPortForwardRequest.ProtoReflect.Descriptor instead. +func (*ListPortForwardRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{43} +} + +func (x *ListPortForwardRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type ListPortForwardResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Cfgs []*common.PortForwardConfigPb `protobuf:"bytes,1,rep,name=cfgs,proto3" json:"cfgs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListPortForwardResponse) Reset() { + *x = ListPortForwardResponse{} + mi := &file_api_instance_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListPortForwardResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListPortForwardResponse) ProtoMessage() {} + +func (x *ListPortForwardResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[44] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListPortForwardResponse.ProtoReflect.Descriptor instead. +func (*ListPortForwardResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{44} +} + +func (x *ListPortForwardResponse) GetCfgs() []*common.PortForwardConfigPb { + if x != nil { + return x.Cfgs + } + return nil +} + +type MetricSnapshot struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` + Value uint64 `protobuf:"varint,2,opt,name=value,proto3" json:"value,omitempty"` + Labels map[string]string `protobuf:"bytes,3,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MetricSnapshot) Reset() { + *x = MetricSnapshot{} + mi := &file_api_instance_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MetricSnapshot) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MetricSnapshot) ProtoMessage() {} + +func (x *MetricSnapshot) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[45] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MetricSnapshot.ProtoReflect.Descriptor instead. +func (*MetricSnapshot) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{45} +} + +func (x *MetricSnapshot) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *MetricSnapshot) GetValue() uint64 { + if x != nil { + return x.Value + } + return 0 +} + +func (x *MetricSnapshot) GetLabels() map[string]string { + if x != nil { + return x.Labels + } + return nil +} + +type GetStatsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetStatsRequest) Reset() { + *x = GetStatsRequest{} + mi := &file_api_instance_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatsRequest) ProtoMessage() {} + +func (x *GetStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[46] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStatsRequest.ProtoReflect.Descriptor instead. +func (*GetStatsRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{46} +} + +func (x *GetStatsRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type GetStatsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Metrics []*MetricSnapshot `protobuf:"bytes,1,rep,name=metrics,proto3" json:"metrics,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetStatsResponse) Reset() { + *x = GetStatsResponse{} + mi := &file_api_instance_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStatsResponse) ProtoMessage() {} + +func (x *GetStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[47] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStatsResponse.ProtoReflect.Descriptor instead. +func (*GetStatsResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{47} +} + +func (x *GetStatsResponse) GetMetrics() []*MetricSnapshot { + if x != nil { + return x.Metrics + } + return nil +} + +type GetPrometheusStatsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPrometheusStatsRequest) Reset() { + *x = GetPrometheusStatsRequest{} + mi := &file_api_instance_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPrometheusStatsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPrometheusStatsRequest) ProtoMessage() {} + +func (x *GetPrometheusStatsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[48] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPrometheusStatsRequest.ProtoReflect.Descriptor instead. +func (*GetPrometheusStatsRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{48} +} + +func (x *GetPrometheusStatsRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type GetPrometheusStatsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + PrometheusText string `protobuf:"bytes,1,opt,name=prometheus_text,json=prometheusText,proto3" json:"prometheus_text,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetPrometheusStatsResponse) Reset() { + *x = GetPrometheusStatsResponse{} + mi := &file_api_instance_proto_msgTypes[49] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetPrometheusStatsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetPrometheusStatsResponse) ProtoMessage() {} + +func (x *GetPrometheusStatsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[49] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetPrometheusStatsResponse.ProtoReflect.Descriptor instead. +func (*GetPrometheusStatsResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{49} +} + +func (x *GetPrometheusStatsResponse) GetPrometheusText() string { + if x != nil { + return x.PrometheusText + } + return "" +} + +type GenerateCredentialRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Groups []string `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"` // optional: ACL groups for this credential + AllowRelay bool `protobuf:"varint,2,opt,name=allow_relay,json=allowRelay,proto3" json:"allow_relay,omitempty"` // optional: allow relay through credential node + AllowedProxyCidrs []string `protobuf:"bytes,3,rep,name=allowed_proxy_cidrs,json=allowedProxyCidrs,proto3" json:"allowed_proxy_cidrs,omitempty"` // optional: restrict proxy_cidrs + TtlSeconds int64 `protobuf:"varint,4,opt,name=ttl_seconds,json=ttlSeconds,proto3" json:"ttl_seconds,omitempty"` // must be > 0: credential TTL in seconds (0 / omitted is invalid) + CredentialId *string `protobuf:"bytes,5,opt,name=credential_id,json=credentialId,proto3,oneof" json:"credential_id,omitempty"` // optional: user-specified credential id, reused if already exists + Instance *InstanceIdentifier `protobuf:"bytes,6,opt,name=instance,proto3" json:"instance,omitempty"` // target network instance + Reusable *bool `protobuf:"varint,7,opt,name=reusable,proto3,oneof" json:"reusable,omitempty"` // default true: allow multiple peers to reuse this credential + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GenerateCredentialRequest) Reset() { + *x = GenerateCredentialRequest{} + mi := &file_api_instance_proto_msgTypes[50] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GenerateCredentialRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateCredentialRequest) ProtoMessage() {} + +func (x *GenerateCredentialRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[50] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenerateCredentialRequest.ProtoReflect.Descriptor instead. +func (*GenerateCredentialRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{50} +} + +func (x *GenerateCredentialRequest) GetGroups() []string { + if x != nil { + return x.Groups + } + return nil +} + +func (x *GenerateCredentialRequest) GetAllowRelay() bool { + if x != nil { + return x.AllowRelay + } + return false +} + +func (x *GenerateCredentialRequest) GetAllowedProxyCidrs() []string { + if x != nil { + return x.AllowedProxyCidrs + } + return nil +} + +func (x *GenerateCredentialRequest) GetTtlSeconds() int64 { + if x != nil { + return x.TtlSeconds + } + return 0 +} + +func (x *GenerateCredentialRequest) GetCredentialId() string { + if x != nil && x.CredentialId != nil { + return *x.CredentialId + } + return "" +} + +func (x *GenerateCredentialRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +func (x *GenerateCredentialRequest) GetReusable() bool { + if x != nil && x.Reusable != nil { + return *x.Reusable + } + return false +} + +type GenerateCredentialResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + CredentialId string `protobuf:"bytes,1,opt,name=credential_id,json=credentialId,proto3" json:"credential_id,omitempty"` // UUID + CredentialSecret string `protobuf:"bytes,2,opt,name=credential_secret,json=credentialSecret,proto3" json:"credential_secret,omitempty"` // private key base64 + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GenerateCredentialResponse) Reset() { + *x = GenerateCredentialResponse{} + mi := &file_api_instance_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GenerateCredentialResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GenerateCredentialResponse) ProtoMessage() {} + +func (x *GenerateCredentialResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[51] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GenerateCredentialResponse.ProtoReflect.Descriptor instead. +func (*GenerateCredentialResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{51} +} + +func (x *GenerateCredentialResponse) GetCredentialId() string { + if x != nil { + return x.CredentialId + } + return "" +} + +func (x *GenerateCredentialResponse) GetCredentialSecret() string { + if x != nil { + return x.CredentialSecret + } + return "" +} + +type RevokeCredentialRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + CredentialId string `protobuf:"bytes,1,opt,name=credential_id,json=credentialId,proto3" json:"credential_id,omitempty"` + Instance *InstanceIdentifier `protobuf:"bytes,2,opt,name=instance,proto3" json:"instance,omitempty"` // target network instance + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RevokeCredentialRequest) Reset() { + *x = RevokeCredentialRequest{} + mi := &file_api_instance_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RevokeCredentialRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RevokeCredentialRequest) ProtoMessage() {} + +func (x *RevokeCredentialRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[52] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RevokeCredentialRequest.ProtoReflect.Descriptor instead. +func (*RevokeCredentialRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{52} +} + +func (x *RevokeCredentialRequest) GetCredentialId() string { + if x != nil { + return x.CredentialId + } + return "" +} + +func (x *RevokeCredentialRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type RevokeCredentialResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RevokeCredentialResponse) Reset() { + *x = RevokeCredentialResponse{} + mi := &file_api_instance_proto_msgTypes[53] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RevokeCredentialResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RevokeCredentialResponse) ProtoMessage() {} + +func (x *RevokeCredentialResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[53] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RevokeCredentialResponse.ProtoReflect.Descriptor instead. +func (*RevokeCredentialResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{53} +} + +func (x *RevokeCredentialResponse) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +type ListCredentialsRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Instance *InstanceIdentifier `protobuf:"bytes,1,opt,name=instance,proto3" json:"instance,omitempty"` // target network instance + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListCredentialsRequest) Reset() { + *x = ListCredentialsRequest{} + mi := &file_api_instance_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListCredentialsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCredentialsRequest) ProtoMessage() {} + +func (x *ListCredentialsRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[54] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListCredentialsRequest.ProtoReflect.Descriptor instead. +func (*ListCredentialsRequest) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{54} +} + +func (x *ListCredentialsRequest) GetInstance() *InstanceIdentifier { + if x != nil { + return x.Instance + } + return nil +} + +type CredentialInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + CredentialId string `protobuf:"bytes,1,opt,name=credential_id,json=credentialId,proto3" json:"credential_id,omitempty"` // UUID + Groups []string `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty"` + AllowRelay bool `protobuf:"varint,3,opt,name=allow_relay,json=allowRelay,proto3" json:"allow_relay,omitempty"` + ExpiryUnix int64 `protobuf:"varint,4,opt,name=expiry_unix,json=expiryUnix,proto3" json:"expiry_unix,omitempty"` + AllowedProxyCidrs []string `protobuf:"bytes,5,rep,name=allowed_proxy_cidrs,json=allowedProxyCidrs,proto3" json:"allowed_proxy_cidrs,omitempty"` + Reusable *bool `protobuf:"varint,6,opt,name=reusable,proto3,oneof" json:"reusable,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CredentialInfo) Reset() { + *x = CredentialInfo{} + mi := &file_api_instance_proto_msgTypes[55] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CredentialInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CredentialInfo) ProtoMessage() {} + +func (x *CredentialInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[55] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CredentialInfo.ProtoReflect.Descriptor instead. +func (*CredentialInfo) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{55} +} + +func (x *CredentialInfo) GetCredentialId() string { + if x != nil { + return x.CredentialId + } + return "" +} + +func (x *CredentialInfo) GetGroups() []string { + if x != nil { + return x.Groups + } + return nil +} + +func (x *CredentialInfo) GetAllowRelay() bool { + if x != nil { + return x.AllowRelay + } + return false +} + +func (x *CredentialInfo) GetExpiryUnix() int64 { + if x != nil { + return x.ExpiryUnix + } + return 0 +} + +func (x *CredentialInfo) GetAllowedProxyCidrs() []string { + if x != nil { + return x.AllowedProxyCidrs + } + return nil +} + +func (x *CredentialInfo) GetReusable() bool { + if x != nil && x.Reusable != nil { + return *x.Reusable + } + return false +} + +type ListCredentialsResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Credentials []*CredentialInfo `protobuf:"bytes,1,rep,name=credentials,proto3" json:"credentials,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListCredentialsResponse) Reset() { + *x = ListCredentialsResponse{} + mi := &file_api_instance_proto_msgTypes[56] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListCredentialsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListCredentialsResponse) ProtoMessage() {} + +func (x *ListCredentialsResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[56] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListCredentialsResponse.ProtoReflect.Descriptor instead. +func (*ListCredentialsResponse) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{56} +} + +func (x *ListCredentialsResponse) GetCredentials() []*CredentialInfo { + if x != nil { + return x.Credentials + } + return nil +} + +type InstanceIdentifier_InstanceSelector struct { + state protoimpl.MessageState `protogen:"open.v1"` + Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InstanceIdentifier_InstanceSelector) Reset() { + *x = InstanceIdentifier_InstanceSelector{} + mi := &file_api_instance_proto_msgTypes[57] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InstanceIdentifier_InstanceSelector) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InstanceIdentifier_InstanceSelector) ProtoMessage() {} + +func (x *InstanceIdentifier_InstanceSelector) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[57] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InstanceIdentifier_InstanceSelector.ProtoReflect.Descriptor instead. +func (*InstanceIdentifier_InstanceSelector) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *InstanceIdentifier_InstanceSelector) GetName() string { + if x != nil && x.Name != nil { + return *x.Name + } + return "" +} + +// foreign network in the entire network +type ListGlobalForeignNetworkResponse_OneForeignNetwork struct { + state protoimpl.MessageState `protogen:"open.v1"` + NetworkName string `protobuf:"bytes,1,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` + PeerIds []uint32 `protobuf:"varint,2,rep,packed,name=peer_ids,json=peerIds,proto3" json:"peer_ids,omitempty"` + LastUpdated string `protobuf:"bytes,3,opt,name=last_updated,json=lastUpdated,proto3" json:"last_updated,omitempty"` + Version uint32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListGlobalForeignNetworkResponse_OneForeignNetwork) Reset() { + *x = ListGlobalForeignNetworkResponse_OneForeignNetwork{} + mi := &file_api_instance_proto_msgTypes[59] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListGlobalForeignNetworkResponse_OneForeignNetwork) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListGlobalForeignNetworkResponse_OneForeignNetwork) ProtoMessage() {} + +func (x *ListGlobalForeignNetworkResponse_OneForeignNetwork) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[59] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListGlobalForeignNetworkResponse_OneForeignNetwork.ProtoReflect.Descriptor instead. +func (*ListGlobalForeignNetworkResponse_OneForeignNetwork) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{24, 0} +} + +func (x *ListGlobalForeignNetworkResponse_OneForeignNetwork) GetNetworkName() string { + if x != nil { + return x.NetworkName + } + return "" +} + +func (x *ListGlobalForeignNetworkResponse_OneForeignNetwork) GetPeerIds() []uint32 { + if x != nil { + return x.PeerIds + } + return nil +} + +func (x *ListGlobalForeignNetworkResponse_OneForeignNetwork) GetLastUpdated() string { + if x != nil { + return x.LastUpdated + } + return "" +} + +func (x *ListGlobalForeignNetworkResponse_OneForeignNetwork) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +type ListGlobalForeignNetworkResponse_ForeignNetworks struct { + state protoimpl.MessageState `protogen:"open.v1"` + ForeignNetworks []*ListGlobalForeignNetworkResponse_OneForeignNetwork `protobuf:"bytes,1,rep,name=foreign_networks,json=foreignNetworks,proto3" json:"foreign_networks,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListGlobalForeignNetworkResponse_ForeignNetworks) Reset() { + *x = ListGlobalForeignNetworkResponse_ForeignNetworks{} + mi := &file_api_instance_proto_msgTypes[60] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListGlobalForeignNetworkResponse_ForeignNetworks) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListGlobalForeignNetworkResponse_ForeignNetworks) ProtoMessage() {} + +func (x *ListGlobalForeignNetworkResponse_ForeignNetworks) ProtoReflect() protoreflect.Message { + mi := &file_api_instance_proto_msgTypes[60] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListGlobalForeignNetworkResponse_ForeignNetworks.ProtoReflect.Descriptor instead. +func (*ListGlobalForeignNetworkResponse_ForeignNetworks) Descriptor() ([]byte, []int) { + return file_api_instance_proto_rawDescGZIP(), []int{24, 1} +} + +func (x *ListGlobalForeignNetworkResponse_ForeignNetworks) GetForeignNetworks() []*ListGlobalForeignNetworkResponse_OneForeignNetwork { + if x != nil { + return x.ForeignNetworks + } + return nil +} + +var File_api_instance_proto protoreflect.FileDescriptor + +const file_api_instance_proto_rawDesc = "" + + "\n" + + "\x12api_instance.proto\x12\fapi.instance\x1a\fcommon.proto\x1a\x0epeer_rpc.proto\x1a\tacl.proto\"\xd8\x01\n" + + "\x12InstanceIdentifier\x12\x1e\n" + + "\x02id\x18\x01 \x01(\v2\f.common.UUIDH\x00R\x02id\x12`\n" + + "\x11instance_selector\x18\x02 \x01(\v21.api.instance.InstanceIdentifier.InstanceSelectorH\x00R\x10instanceSelector\x1a4\n" + + "\x10InstanceSelector\x12\x17\n" + + "\x04name\x18\x01 \x01(\tH\x00R\x04name\x88\x01\x01B\a\n" + + "\x05_nameB\n" + + "\n" + + "\bselector\"6\n" + + "\x06Status\x12\x12\n" + + "\x04code\x18\x01 \x01(\x05R\x04code\x12\x18\n" + + "\amessage\x18\x02 \x01(\tR\amessage\"\xa2\x01\n" + + "\rPeerConnStats\x12\x19\n" + + "\brx_bytes\x18\x01 \x01(\x04R\arxBytes\x12\x19\n" + + "\btx_bytes\x18\x02 \x01(\x04R\atxBytes\x12\x1d\n" + + "\n" + + "rx_packets\x18\x03 \x01(\x04R\trxPackets\x12\x1d\n" + + "\n" + + "tx_packets\x18\x04 \x01(\x04R\ttxPackets\x12\x1d\n" + + "\n" + + "latency_us\x18\x05 \x01(\x04R\tlatencyUs\"\xdc\x04\n" + + "\fPeerConnInfo\x12\x17\n" + + "\aconn_id\x18\x01 \x01(\tR\x06connId\x12\x1c\n" + + "\n" + + "my_peer_id\x18\x02 \x01(\rR\bmyPeerId\x12\x17\n" + + "\apeer_id\x18\x03 \x01(\rR\x06peerId\x12\x1a\n" + + "\bfeatures\x18\x04 \x03(\tR\bfeatures\x12*\n" + + "\x06tunnel\x18\x05 \x01(\v2\x12.common.TunnelInfoR\x06tunnel\x121\n" + + "\x05stats\x18\x06 \x01(\v2\x1b.api.instance.PeerConnStatsR\x05stats\x12\x1b\n" + + "\tloss_rate\x18\a \x01(\x02R\blossRate\x12\x1b\n" + + "\tis_client\x18\b \x01(\bR\bisClient\x12!\n" + + "\fnetwork_name\x18\t \x01(\tR\vnetworkName\x12\x1b\n" + + "\tis_closed\x18\n" + + " \x01(\bR\bisClosed\x129\n" + + "\x19noise_local_static_pubkey\x18\v \x01(\fR\x16noiseLocalStaticPubkey\x12;\n" + + "\x1anoise_remote_static_pubkey\x18\f \x01(\fR\x17noiseRemoteStaticPubkey\x12E\n" + + "\x11secure_auth_level\x18\r \x01(\x0e2\x19.peer_rpc.SecureAuthLevelR\x0fsecureAuthLevel\x12H\n" + + "\x12peer_identity_type\x18\x0e \x01(\x0e2\x1a.peer_rpc.PeerIdentityTypeR\x10peerIdentityType\"\xd3\x01\n" + + "\bPeerInfo\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x120\n" + + "\x05conns\x18\x02 \x03(\v2\x1a.api.instance.PeerConnInfoR\x05conns\x124\n" + + "\x0fdefault_conn_id\x18\x03 \x01(\v2\f.common.UUIDR\rdefaultConnId\x12F\n" + + "\x18directly_connected_conns\x18\x04 \x03(\v2\f.common.UUIDR\x16directlyConnectedConns\"O\n" + + "\x0fListPeerRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"z\n" + + "\x10ListPeerResponse\x125\n" + + "\n" + + "peer_infos\x18\x01 \x03(\v2\x16.api.instance.PeerInfoR\tpeerInfos\x12/\n" + + "\amy_info\x18\x02 \x01(\v2\x16.api.instance.NodeInfoR\x06myInfo\"\xd4\x06\n" + + "\x05Route\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12-\n" + + "\tipv4_addr\x18\x02 \x01(\v2\x10.common.Ipv4InetR\bipv4Addr\x12'\n" + + "\x10next_hop_peer_id\x18\x03 \x01(\rR\rnextHopPeerId\x12\x12\n" + + "\x04cost\x18\x04 \x01(\x05R\x04cost\x12!\n" + + "\fpath_latency\x18\v \x01(\x05R\vpathLatency\x12\x1f\n" + + "\vproxy_cidrs\x18\x05 \x03(\tR\n" + + "proxyCidrs\x12\x1a\n" + + "\bhostname\x18\x06 \x01(\tR\bhostname\x12-\n" + + "\tstun_info\x18\a \x01(\v2\x10.common.StunInfoR\bstunInfo\x12\x17\n" + + "\ainst_id\x18\b \x01(\tR\x06instId\x12\x18\n" + + "\aversion\x18\t \x01(\tR\aversion\x12:\n" + + "\ffeature_flag\x18\n" + + " \x01(\v2\x17.common.PeerFeatureFlagR\vfeatureFlag\x12F\n" + + "\x1enext_hop_peer_id_latency_first\x18\f \x01(\rH\x00R\x19nextHopPeerIdLatencyFirst\x88\x01\x01\x121\n" + + "\x12cost_latency_first\x18\r \x01(\x05H\x01R\x10costLatencyFirst\x88\x01\x01\x12@\n" + + "\x1apath_latency_latency_first\x18\x0e \x01(\x05H\x02R\x17pathLatencyLatencyFirst\x88\x01\x01\x12-\n" + + "\tipv6_addr\x18\x0f \x01(\v2\x10.common.Ipv6InetR\bipv6Addr\x12:\n" + + "\x10public_ipv6_addr\x18\x10 \x01(\v2\x10.common.Ipv6InetR\x0epublicIpv6Addr\x12G\n" + + "\x17ipv6_public_addr_prefix\x18\x11 \x01(\v2\x10.common.Ipv6InetR\x14ipv6PublicAddrPrefixB!\n" + + "\x1f_next_hop_peer_id_latency_firstB\x15\n" + + "\x13_cost_latency_firstB\x1d\n" + + "\x1b_path_latency_latency_first\"f\n" + + "\rPeerRoutePair\x12)\n" + + "\x05route\x18\x01 \x01(\v2\x13.api.instance.RouteR\x05route\x12*\n" + + "\x04peer\x18\x02 \x01(\v2\x16.api.instance.PeerInfoR\x04peer\"\x8c\x04\n" + + "\bNodeInfo\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12\x1b\n" + + "\tipv4_addr\x18\x02 \x01(\tR\bipv4Addr\x12\x1f\n" + + "\vproxy_cidrs\x18\x03 \x03(\tR\n" + + "proxyCidrs\x12\x1a\n" + + "\bhostname\x18\x04 \x01(\tR\bhostname\x12-\n" + + "\tstun_info\x18\x05 \x01(\v2\x10.common.StunInfoR\bstunInfo\x12\x17\n" + + "\ainst_id\x18\x06 \x01(\tR\x06instId\x12\x1c\n" + + "\tlisteners\x18\a \x03(\tR\tlisteners\x12\x16\n" + + "\x06config\x18\b \x01(\tR\x06config\x12\x18\n" + + "\aversion\x18\t \x01(\tR\aversion\x12:\n" + + "\ffeature_flag\x18\n" + + " \x01(\v2\x17.common.PeerFeatureFlagR\vfeatureFlag\x124\n" + + "\aip_list\x18\v \x01(\v2\x1b.peer_rpc.GetIpListResponseR\x06ipList\x12:\n" + + "\x10public_ipv6_addr\x18\f \x01(\v2\x10.common.Ipv6InetR\x0epublicIpv6Addr\x12G\n" + + "\x17ipv6_public_addr_prefix\x18\r \x01(\v2\x10.common.Ipv6InetR\x14ipv6PublicAddrPrefix\"S\n" + + "\x13ShowNodeInfoRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"K\n" + + "\x14ShowNodeInfoResponse\x123\n" + + "\tnode_info\x18\x01 \x01(\v2\x16.api.instance.NodeInfoR\bnodeInfo\"\xcb\x01\n" + + "\x13PublicIpv6LeaseInfo\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12\x17\n" + + "\ainst_id\x18\x02 \x01(\tR\x06instId\x121\n" + + "\vleased_addr\x18\x03 \x01(\v2\x10.common.Ipv6InetR\n" + + "leasedAddr\x127\n" + + "\x18valid_until_unix_seconds\x18\x04 \x01(\x03R\x15validUntilUnixSeconds\x12\x16\n" + + "\x06reused\x18\x05 \x01(\bR\x06reused\"Y\n" + + "\x19ListPublicIpv6InfoRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"\xa3\x01\n" + + "\x1aListPublicIpv6InfoResponse\x129\n" + + "\x0fprovider_prefix\x18\x01 \x01(\v2\x10.common.Ipv6InetR\x0eproviderPrefix\x12J\n" + + "\x0fprovider_leases\x18\x02 \x03(\v2!.api.instance.PublicIpv6LeaseInfoR\x0eproviderLeases\"P\n" + + "\x10ListRouteRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"@\n" + + "\x11ListRouteResponse\x12+\n" + + "\x06routes\x18\x01 \x03(\v2\x13.api.instance.RouteR\x06routes\"P\n" + + "\x10DumpRouteRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"+\n" + + "\x11DumpRouteResponse\x12\x16\n" + + "\x06result\x18\x01 \x01(\tR\x06result\"\x8b\x01\n" + + "\x19ListForeignNetworkRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\x120\n" + + "\x14include_trusted_keys\x18\x02 \x01(\bR\x12includeTrustedKeys\"\x9a\x01\n" + + "\x10TrustedKeyInfoPb\x12\x16\n" + + "\x06pubkey\x18\x01 \x01(\fR\x06pubkey\x128\n" + + "\x06source\x18\x02 \x01(\x0e2 .api.instance.TrustedKeySourcePbR\x06source\x12$\n" + + "\vexpiry_unix\x18\x03 \x01(\x03H\x00R\n" + + "expiryUnix\x88\x01\x01B\x0e\n" + + "\f_expiry_unix\"\xf9\x01\n" + + "\x15ForeignNetworkEntryPb\x12,\n" + + "\x05peers\x18\x01 \x03(\v2\x16.api.instance.PeerInfoR\x05peers\x122\n" + + "\x15network_secret_digest\x18\x02 \x01(\fR\x13networkSecretDigest\x12;\n" + + "\x1bmy_peer_id_for_this_network\x18\x03 \x01(\rR\x16myPeerIdForThisNetwork\x12A\n" + + "\ftrusted_keys\x18\x04 \x03(\v2\x1e.api.instance.TrustedKeyInfoPbR\vtrustedKeys\"\xef\x01\n" + + "\x1aListForeignNetworkResponse\x12h\n" + + "\x10foreign_networks\x18\x01 \x03(\v2=.api.instance.ListForeignNetworkResponse.ForeignNetworksEntryR\x0fforeignNetworks\x1ag\n" + + "\x14ForeignNetworksEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x129\n" + + "\x05value\x18\x02 \x01(\v2#.api.instance.ForeignNetworkEntryPbR\x05value:\x028\x01\"_\n" + + "\x1fListGlobalForeignNetworkRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"\xa8\x04\n" + + " ListGlobalForeignNetworkResponse\x12n\n" + + "\x10foreign_networks\x18\x01 \x03(\v2C.api.instance.ListGlobalForeignNetworkResponse.ForeignNetworksEntryR\x0fforeignNetworks\x1a\x8e\x01\n" + + "\x11OneForeignNetwork\x12!\n" + + "\fnetwork_name\x18\x01 \x01(\tR\vnetworkName\x12\x19\n" + + "\bpeer_ids\x18\x02 \x03(\rR\apeerIds\x12!\n" + + "\flast_updated\x18\x03 \x01(\tR\vlastUpdated\x12\x18\n" + + "\aversion\x18\x04 \x01(\rR\aversion\x1a~\n" + + "\x0fForeignNetworks\x12k\n" + + "\x10foreign_networks\x18\x01 \x03(\v2@.api.instance.ListGlobalForeignNetworkResponse.OneForeignNetworkR\x0fforeignNetworks\x1a\x82\x01\n" + + "\x14ForeignNetworksEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\rR\x03key\x12T\n" + + "\x05value\x18\x02 \x01(\v2>.api.instance.ListGlobalForeignNetworkResponse.ForeignNetworksR\x05value:\x028\x01\"_\n" + + "\x1fGetForeignNetworkSummaryRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"b\n" + + " GetForeignNetworkSummaryResponse\x12>\n" + + "\asummary\x18\x01 \x01(\v2$.peer_rpc.RouteForeignNetworkSummaryR\asummary\"a\n" + + "\tConnector\x12\x1d\n" + + "\x03url\x18\x01 \x01(\v2\v.common.UrlR\x03url\x125\n" + + "\x06status\x18\x02 \x01(\x0e2\x1d.api.instance.ConnectorStatusR\x06status\"T\n" + + "\x14ListConnectorRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"P\n" + + "\x15ListConnectorResponse\x127\n" + + "\n" + + "connectors\x18\x01 \x03(\v2\x17.api.instance.ConnectorR\n" + + "connectors\"/\n" + + "\x0eMappedListener\x12\x1d\n" + + "\x03url\x18\x01 \x01(\v2\v.common.UrlR\x03url\"Y\n" + + "\x19ListMappedListenerRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"d\n" + + "\x1aListMappedListenerResponse\x12F\n" + + "\x0fmappedlisteners\x18\x01 \x03(\v2\x1c.api.instance.MappedListenerR\x0fmappedlisteners\"|\n" + + "\rVpnPortalInfo\x12\x19\n" + + "\bvpn_type\x18\x01 \x01(\tR\avpnType\x12#\n" + + "\rclient_config\x18\x02 \x01(\tR\fclientConfig\x12+\n" + + "\x11connected_clients\x18\x03 \x03(\tR\x10connectedClients\"W\n" + + "\x17GetVpnPortalInfoRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"_\n" + + "\x18GetVpnPortalInfoResponse\x12C\n" + + "\x0fvpn_portal_info\x18\x01 \x01(\v2\x1b.api.instance.VpnPortalInfoR\rvpnPortalInfo\"\x83\x02\n" + + "\rTcpProxyEntry\x12$\n" + + "\x03src\x18\x01 \x01(\v2\x12.common.SocketAddrR\x03src\x12$\n" + + "\x03dst\x18\x02 \x01(\v2\x12.common.SocketAddrR\x03dst\x12\x1d\n" + + "\n" + + "start_time\x18\x03 \x01(\x04R\tstartTime\x126\n" + + "\x05state\x18\x04 \x01(\x0e2 .api.instance.TcpProxyEntryStateR\x05state\x12O\n" + + "\x0etransport_type\x18\x05 \x01(\x0e2(.api.instance.TcpProxyEntryTransportTypeR\rtransportType\"X\n" + + "\x18ListTcpProxyEntryRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"R\n" + + "\x19ListTcpProxyEntryResponse\x125\n" + + "\aentries\x18\x01 \x03(\v2\x1b.api.instance.TcpProxyEntryR\aentries\"R\n" + + "\x12GetAclStatsRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"A\n" + + "\x13GetAclStatsResponse\x12*\n" + + "\tacl_stats\x18\x01 \x01(\v2\r.acl.AclStatsR\baclStats\"S\n" + + "\x13GetWhitelistRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"P\n" + + "\x14GetWhitelistResponse\x12\x1b\n" + + "\ttcp_ports\x18\x01 \x03(\tR\btcpPorts\x12\x1b\n" + + "\tudp_ports\x18\x02 \x03(\tR\budpPorts\"V\n" + + "\x16ListPortForwardRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"J\n" + + "\x17ListPortForwardResponse\x12/\n" + + "\x04cfgs\x18\x01 \x03(\v2\x1b.common.PortForwardConfigPbR\x04cfgs\"\xb7\x01\n" + + "\x0eMetricSnapshot\x12\x12\n" + + "\x04name\x18\x01 \x01(\tR\x04name\x12\x14\n" + + "\x05value\x18\x02 \x01(\x04R\x05value\x12@\n" + + "\x06labels\x18\x03 \x03(\v2(.api.instance.MetricSnapshot.LabelsEntryR\x06labels\x1a9\n" + + "\vLabelsEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"O\n" + + "\x0fGetStatsRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"J\n" + + "\x10GetStatsResponse\x126\n" + + "\ametrics\x18\x01 \x03(\v2\x1c.api.instance.MetricSnapshotR\ametrics\"Y\n" + + "\x19GetPrometheusStatsRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"E\n" + + "\x1aGetPrometheusStatsResponse\x12'\n" + + "\x0fprometheus_text\x18\x01 \x01(\tR\x0eprometheusText\"\xcd\x02\n" + + "\x19GenerateCredentialRequest\x12\x16\n" + + "\x06groups\x18\x01 \x03(\tR\x06groups\x12\x1f\n" + + "\vallow_relay\x18\x02 \x01(\bR\n" + + "allowRelay\x12.\n" + + "\x13allowed_proxy_cidrs\x18\x03 \x03(\tR\x11allowedProxyCidrs\x12\x1f\n" + + "\vttl_seconds\x18\x04 \x01(\x03R\n" + + "ttlSeconds\x12(\n" + + "\rcredential_id\x18\x05 \x01(\tH\x00R\fcredentialId\x88\x01\x01\x12<\n" + + "\binstance\x18\x06 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\x12\x1f\n" + + "\breusable\x18\a \x01(\bH\x01R\breusable\x88\x01\x01B\x10\n" + + "\x0e_credential_idB\v\n" + + "\t_reusable\"n\n" + + "\x1aGenerateCredentialResponse\x12#\n" + + "\rcredential_id\x18\x01 \x01(\tR\fcredentialId\x12+\n" + + "\x11credential_secret\x18\x02 \x01(\tR\x10credentialSecret\"|\n" + + "\x17RevokeCredentialRequest\x12#\n" + + "\rcredential_id\x18\x01 \x01(\tR\fcredentialId\x12<\n" + + "\binstance\x18\x02 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"4\n" + + "\x18RevokeCredentialResponse\x12\x18\n" + + "\asuccess\x18\x01 \x01(\bR\asuccess\"V\n" + + "\x16ListCredentialsRequest\x12<\n" + + "\binstance\x18\x01 \x01(\v2 .api.instance.InstanceIdentifierR\binstance\"\xed\x01\n" + + "\x0eCredentialInfo\x12#\n" + + "\rcredential_id\x18\x01 \x01(\tR\fcredentialId\x12\x16\n" + + "\x06groups\x18\x02 \x03(\tR\x06groups\x12\x1f\n" + + "\vallow_relay\x18\x03 \x01(\bR\n" + + "allowRelay\x12\x1f\n" + + "\vexpiry_unix\x18\x04 \x01(\x03R\n" + + "expiryUnix\x12.\n" + + "\x13allowed_proxy_cidrs\x18\x05 \x03(\tR\x11allowedProxyCidrs\x12\x1f\n" + + "\breusable\x18\x06 \x01(\bH\x00R\breusable\x88\x01\x01B\v\n" + + "\t_reusable\"Y\n" + + "\x17ListCredentialsResponse\x12>\n" + + "\vcredentials\x18\x01 \x03(\v2\x1c.api.instance.CredentialInfoR\vcredentials*\x8b\x01\n" + + "\x12TrustedKeySourcePb\x12%\n" + + "!TRUSTED_KEY_SOURCE_PB_UNSPECIFIED\x10\x00\x12#\n" + + "\x1fTRUSTED_KEY_SOURCE_PB_OSPF_NODE\x10\x01\x12)\n" + + "%TRUSTED_KEY_SOURCE_PB_OSPF_CREDENTIAL\x10\x02*B\n" + + "\x0fConnectorStatus\x12\r\n" + + "\tCONNECTED\x10\x00\x12\x10\n" + + "\fDISCONNECTED\x10\x01\x12\x0e\n" + + "\n" + + "CONNECTING\x10\x02*8\n" + + "\x1aTcpProxyEntryTransportType\x12\a\n" + + "\x03TCP\x10\x00\x12\a\n" + + "\x03KCP\x10\x01\x12\b\n" + + "\x04QUIC\x10\x02*\x80\x01\n" + + "\x12TcpProxyEntryState\x12\v\n" + + "\aUnknown\x10\x00\x12\x0f\n" + + "\vSynReceived\x10\x01\x12\x11\n" + + "\rConnectingDst\x10\x02\x12\r\n" + + "\tConnected\x10\x03\x12\n" + + "\n" + + "\x06Closed\x10\x04\x12\x0e\n" + + "\n" + + "ClosingSrc\x10\x05\x12\x0e\n" + + "\n" + + "ClosingDst\x10\x062\x95\x06\n" + + "\rPeerManageRpc\x12I\n" + + "\bListPeer\x12\x1d.api.instance.ListPeerRequest\x1a\x1e.api.instance.ListPeerResponse\x12g\n" + + "\x12ListPublicIpv6Info\x12'.api.instance.ListPublicIpv6InfoRequest\x1a(.api.instance.ListPublicIpv6InfoResponse\x12L\n" + + "\tListRoute\x12\x1e.api.instance.ListRouteRequest\x1a\x1f.api.instance.ListRouteResponse\x12L\n" + + "\tDumpRoute\x12\x1e.api.instance.DumpRouteRequest\x1a\x1f.api.instance.DumpRouteResponse\x12g\n" + + "\x12ListForeignNetwork\x12'.api.instance.ListForeignNetworkRequest\x1a(.api.instance.ListForeignNetworkResponse\x12y\n" + + "\x18ListGlobalForeignNetwork\x12-.api.instance.ListGlobalForeignNetworkRequest\x1a..api.instance.ListGlobalForeignNetworkResponse\x12U\n" + + "\fShowNodeInfo\x12!.api.instance.ShowNodeInfoRequest\x1a\".api.instance.ShowNodeInfoResponse\x12y\n" + + "\x18GetForeignNetworkSummary\x12-.api.instance.GetForeignNetworkSummaryRequest\x1a..api.instance.GetForeignNetworkSummaryResponse2n\n" + + "\x12ConnectorManageRpc\x12X\n" + + "\rListConnector\x12\".api.instance.ListConnectorRequest\x1a#.api.instance.ListConnectorResponse2\x82\x01\n" + + "\x17MappedListenerManageRpc\x12g\n" + + "\x12ListMappedListener\x12'.api.instance.ListMappedListenerRequest\x1a(.api.instance.ListMappedListenerResponse2q\n" + + "\fVpnPortalRpc\x12a\n" + + "\x10GetVpnPortalInfo\x12%.api.instance.GetVpnPortalInfoRequest\x1a&.api.instance.GetVpnPortalInfoResponse2s\n" + + "\vTcpProxyRpc\x12d\n" + + "\x11ListTcpProxyEntry\x12&.api.instance.ListTcpProxyEntryRequest\x1a'.api.instance.ListTcpProxyEntryResponse2\xb9\x01\n" + + "\fAclManageRpc\x12R\n" + + "\vGetAclStats\x12 .api.instance.GetAclStatsRequest\x1a!.api.instance.GetAclStatsResponse\x12U\n" + + "\fGetWhitelist\x12!.api.instance.GetWhitelistRequest\x1a\".api.instance.GetWhitelistResponse2v\n" + + "\x14PortForwardManageRpc\x12^\n" + + "\x0fListPortForward\x12$.api.instance.ListPortForwardRequest\x1a%.api.instance.ListPortForwardResponse2\xbe\x01\n" + + "\bStatsRpc\x12I\n" + + "\bGetStats\x12\x1d.api.instance.GetStatsRequest\x1a\x1e.api.instance.GetStatsResponse\x12g\n" + + "\x12GetPrometheusStats\x12'.api.instance.GetPrometheusStatsRequest\x1a(.api.instance.GetPrometheusStatsResponse2\xc1\x02\n" + + "\x13CredentialManageRpc\x12g\n" + + "\x12GenerateCredential\x12'.api.instance.GenerateCredentialRequest\x1a(.api.instance.GenerateCredentialResponse\x12a\n" + + "\x10RevokeCredential\x12%.api.instance.RevokeCredentialRequest\x1a&.api.instance.RevokeCredentialResponse\x12^\n" + + "\x0fListCredentials\x12$.api.instance.ListCredentialsRequest\x1a%.api.instance.ListCredentialsResponseb\x06proto3" + +var ( + file_api_instance_proto_rawDescOnce sync.Once + file_api_instance_proto_rawDescData []byte +) + +func file_api_instance_proto_rawDescGZIP() []byte { + file_api_instance_proto_rawDescOnce.Do(func() { + file_api_instance_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_instance_proto_rawDesc), len(file_api_instance_proto_rawDesc))) + }) + return file_api_instance_proto_rawDescData +} + +var file_api_instance_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_api_instance_proto_msgTypes = make([]protoimpl.MessageInfo, 63) +var file_api_instance_proto_goTypes = []any{ + (TrustedKeySourcePb)(0), // 0: api.instance.TrustedKeySourcePb + (ConnectorStatus)(0), // 1: api.instance.ConnectorStatus + (TcpProxyEntryTransportType)(0), // 2: api.instance.TcpProxyEntryTransportType + (TcpProxyEntryState)(0), // 3: api.instance.TcpProxyEntryState + (*InstanceIdentifier)(nil), // 4: api.instance.InstanceIdentifier + (*Status)(nil), // 5: api.instance.Status + (*PeerConnStats)(nil), // 6: api.instance.PeerConnStats + (*PeerConnInfo)(nil), // 7: api.instance.PeerConnInfo + (*PeerInfo)(nil), // 8: api.instance.PeerInfo + (*ListPeerRequest)(nil), // 9: api.instance.ListPeerRequest + (*ListPeerResponse)(nil), // 10: api.instance.ListPeerResponse + (*Route)(nil), // 11: api.instance.Route + (*PeerRoutePair)(nil), // 12: api.instance.PeerRoutePair + (*NodeInfo)(nil), // 13: api.instance.NodeInfo + (*ShowNodeInfoRequest)(nil), // 14: api.instance.ShowNodeInfoRequest + (*ShowNodeInfoResponse)(nil), // 15: api.instance.ShowNodeInfoResponse + (*PublicIpv6LeaseInfo)(nil), // 16: api.instance.PublicIpv6LeaseInfo + (*ListPublicIpv6InfoRequest)(nil), // 17: api.instance.ListPublicIpv6InfoRequest + (*ListPublicIpv6InfoResponse)(nil), // 18: api.instance.ListPublicIpv6InfoResponse + (*ListRouteRequest)(nil), // 19: api.instance.ListRouteRequest + (*ListRouteResponse)(nil), // 20: api.instance.ListRouteResponse + (*DumpRouteRequest)(nil), // 21: api.instance.DumpRouteRequest + (*DumpRouteResponse)(nil), // 22: api.instance.DumpRouteResponse + (*ListForeignNetworkRequest)(nil), // 23: api.instance.ListForeignNetworkRequest + (*TrustedKeyInfoPb)(nil), // 24: api.instance.TrustedKeyInfoPb + (*ForeignNetworkEntryPb)(nil), // 25: api.instance.ForeignNetworkEntryPb + (*ListForeignNetworkResponse)(nil), // 26: api.instance.ListForeignNetworkResponse + (*ListGlobalForeignNetworkRequest)(nil), // 27: api.instance.ListGlobalForeignNetworkRequest + (*ListGlobalForeignNetworkResponse)(nil), // 28: api.instance.ListGlobalForeignNetworkResponse + (*GetForeignNetworkSummaryRequest)(nil), // 29: api.instance.GetForeignNetworkSummaryRequest + (*GetForeignNetworkSummaryResponse)(nil), // 30: api.instance.GetForeignNetworkSummaryResponse + (*Connector)(nil), // 31: api.instance.Connector + (*ListConnectorRequest)(nil), // 32: api.instance.ListConnectorRequest + (*ListConnectorResponse)(nil), // 33: api.instance.ListConnectorResponse + (*MappedListener)(nil), // 34: api.instance.MappedListener + (*ListMappedListenerRequest)(nil), // 35: api.instance.ListMappedListenerRequest + (*ListMappedListenerResponse)(nil), // 36: api.instance.ListMappedListenerResponse + (*VpnPortalInfo)(nil), // 37: api.instance.VpnPortalInfo + (*GetVpnPortalInfoRequest)(nil), // 38: api.instance.GetVpnPortalInfoRequest + (*GetVpnPortalInfoResponse)(nil), // 39: api.instance.GetVpnPortalInfoResponse + (*TcpProxyEntry)(nil), // 40: api.instance.TcpProxyEntry + (*ListTcpProxyEntryRequest)(nil), // 41: api.instance.ListTcpProxyEntryRequest + (*ListTcpProxyEntryResponse)(nil), // 42: api.instance.ListTcpProxyEntryResponse + (*GetAclStatsRequest)(nil), // 43: api.instance.GetAclStatsRequest + (*GetAclStatsResponse)(nil), // 44: api.instance.GetAclStatsResponse + (*GetWhitelistRequest)(nil), // 45: api.instance.GetWhitelistRequest + (*GetWhitelistResponse)(nil), // 46: api.instance.GetWhitelistResponse + (*ListPortForwardRequest)(nil), // 47: api.instance.ListPortForwardRequest + (*ListPortForwardResponse)(nil), // 48: api.instance.ListPortForwardResponse + (*MetricSnapshot)(nil), // 49: api.instance.MetricSnapshot + (*GetStatsRequest)(nil), // 50: api.instance.GetStatsRequest + (*GetStatsResponse)(nil), // 51: api.instance.GetStatsResponse + (*GetPrometheusStatsRequest)(nil), // 52: api.instance.GetPrometheusStatsRequest + (*GetPrometheusStatsResponse)(nil), // 53: api.instance.GetPrometheusStatsResponse + (*GenerateCredentialRequest)(nil), // 54: api.instance.GenerateCredentialRequest + (*GenerateCredentialResponse)(nil), // 55: api.instance.GenerateCredentialResponse + (*RevokeCredentialRequest)(nil), // 56: api.instance.RevokeCredentialRequest + (*RevokeCredentialResponse)(nil), // 57: api.instance.RevokeCredentialResponse + (*ListCredentialsRequest)(nil), // 58: api.instance.ListCredentialsRequest + (*CredentialInfo)(nil), // 59: api.instance.CredentialInfo + (*ListCredentialsResponse)(nil), // 60: api.instance.ListCredentialsResponse + (*InstanceIdentifier_InstanceSelector)(nil), // 61: api.instance.InstanceIdentifier.InstanceSelector + nil, // 62: api.instance.ListForeignNetworkResponse.ForeignNetworksEntry + (*ListGlobalForeignNetworkResponse_OneForeignNetwork)(nil), // 63: api.instance.ListGlobalForeignNetworkResponse.OneForeignNetwork + (*ListGlobalForeignNetworkResponse_ForeignNetworks)(nil), // 64: api.instance.ListGlobalForeignNetworkResponse.ForeignNetworks + nil, // 65: api.instance.ListGlobalForeignNetworkResponse.ForeignNetworksEntry + nil, // 66: api.instance.MetricSnapshot.LabelsEntry + (*common.UUID)(nil), // 67: common.UUID + (*common.TunnelInfo)(nil), // 68: common.TunnelInfo + (peer_rpc.SecureAuthLevel)(0), // 69: peer_rpc.SecureAuthLevel + (peer_rpc.PeerIdentityType)(0), // 70: peer_rpc.PeerIdentityType + (*common.Ipv4Inet)(nil), // 71: common.Ipv4Inet + (*common.StunInfo)(nil), // 72: common.StunInfo + (*common.PeerFeatureFlag)(nil), // 73: common.PeerFeatureFlag + (*common.Ipv6Inet)(nil), // 74: common.Ipv6Inet + (*peer_rpc.GetIpListResponse)(nil), // 75: peer_rpc.GetIpListResponse + (*peer_rpc.RouteForeignNetworkSummary)(nil), // 76: peer_rpc.RouteForeignNetworkSummary + (*common.Url)(nil), // 77: common.Url + (*common.SocketAddr)(nil), // 78: common.SocketAddr + (*acl.AclStats)(nil), // 79: acl.AclStats + (*common.PortForwardConfigPb)(nil), // 80: common.PortForwardConfigPb +} +var file_api_instance_proto_depIdxs = []int32{ + 67, // 0: api.instance.InstanceIdentifier.id:type_name -> common.UUID + 61, // 1: api.instance.InstanceIdentifier.instance_selector:type_name -> api.instance.InstanceIdentifier.InstanceSelector + 68, // 2: api.instance.PeerConnInfo.tunnel:type_name -> common.TunnelInfo + 6, // 3: api.instance.PeerConnInfo.stats:type_name -> api.instance.PeerConnStats + 69, // 4: api.instance.PeerConnInfo.secure_auth_level:type_name -> peer_rpc.SecureAuthLevel + 70, // 5: api.instance.PeerConnInfo.peer_identity_type:type_name -> peer_rpc.PeerIdentityType + 7, // 6: api.instance.PeerInfo.conns:type_name -> api.instance.PeerConnInfo + 67, // 7: api.instance.PeerInfo.default_conn_id:type_name -> common.UUID + 67, // 8: api.instance.PeerInfo.directly_connected_conns:type_name -> common.UUID + 4, // 9: api.instance.ListPeerRequest.instance:type_name -> api.instance.InstanceIdentifier + 8, // 10: api.instance.ListPeerResponse.peer_infos:type_name -> api.instance.PeerInfo + 13, // 11: api.instance.ListPeerResponse.my_info:type_name -> api.instance.NodeInfo + 71, // 12: api.instance.Route.ipv4_addr:type_name -> common.Ipv4Inet + 72, // 13: api.instance.Route.stun_info:type_name -> common.StunInfo + 73, // 14: api.instance.Route.feature_flag:type_name -> common.PeerFeatureFlag + 74, // 15: api.instance.Route.ipv6_addr:type_name -> common.Ipv6Inet + 74, // 16: api.instance.Route.public_ipv6_addr:type_name -> common.Ipv6Inet + 74, // 17: api.instance.Route.ipv6_public_addr_prefix:type_name -> common.Ipv6Inet + 11, // 18: api.instance.PeerRoutePair.route:type_name -> api.instance.Route + 8, // 19: api.instance.PeerRoutePair.peer:type_name -> api.instance.PeerInfo + 72, // 20: api.instance.NodeInfo.stun_info:type_name -> common.StunInfo + 73, // 21: api.instance.NodeInfo.feature_flag:type_name -> common.PeerFeatureFlag + 75, // 22: api.instance.NodeInfo.ip_list:type_name -> peer_rpc.GetIpListResponse + 74, // 23: api.instance.NodeInfo.public_ipv6_addr:type_name -> common.Ipv6Inet + 74, // 24: api.instance.NodeInfo.ipv6_public_addr_prefix:type_name -> common.Ipv6Inet + 4, // 25: api.instance.ShowNodeInfoRequest.instance:type_name -> api.instance.InstanceIdentifier + 13, // 26: api.instance.ShowNodeInfoResponse.node_info:type_name -> api.instance.NodeInfo + 74, // 27: api.instance.PublicIpv6LeaseInfo.leased_addr:type_name -> common.Ipv6Inet + 4, // 28: api.instance.ListPublicIpv6InfoRequest.instance:type_name -> api.instance.InstanceIdentifier + 74, // 29: api.instance.ListPublicIpv6InfoResponse.provider_prefix:type_name -> common.Ipv6Inet + 16, // 30: api.instance.ListPublicIpv6InfoResponse.provider_leases:type_name -> api.instance.PublicIpv6LeaseInfo + 4, // 31: api.instance.ListRouteRequest.instance:type_name -> api.instance.InstanceIdentifier + 11, // 32: api.instance.ListRouteResponse.routes:type_name -> api.instance.Route + 4, // 33: api.instance.DumpRouteRequest.instance:type_name -> api.instance.InstanceIdentifier + 4, // 34: api.instance.ListForeignNetworkRequest.instance:type_name -> api.instance.InstanceIdentifier + 0, // 35: api.instance.TrustedKeyInfoPb.source:type_name -> api.instance.TrustedKeySourcePb + 8, // 36: api.instance.ForeignNetworkEntryPb.peers:type_name -> api.instance.PeerInfo + 24, // 37: api.instance.ForeignNetworkEntryPb.trusted_keys:type_name -> api.instance.TrustedKeyInfoPb + 62, // 38: api.instance.ListForeignNetworkResponse.foreign_networks:type_name -> api.instance.ListForeignNetworkResponse.ForeignNetworksEntry + 4, // 39: api.instance.ListGlobalForeignNetworkRequest.instance:type_name -> api.instance.InstanceIdentifier + 65, // 40: api.instance.ListGlobalForeignNetworkResponse.foreign_networks:type_name -> api.instance.ListGlobalForeignNetworkResponse.ForeignNetworksEntry + 4, // 41: api.instance.GetForeignNetworkSummaryRequest.instance:type_name -> api.instance.InstanceIdentifier + 76, // 42: api.instance.GetForeignNetworkSummaryResponse.summary:type_name -> peer_rpc.RouteForeignNetworkSummary + 77, // 43: api.instance.Connector.url:type_name -> common.Url + 1, // 44: api.instance.Connector.status:type_name -> api.instance.ConnectorStatus + 4, // 45: api.instance.ListConnectorRequest.instance:type_name -> api.instance.InstanceIdentifier + 31, // 46: api.instance.ListConnectorResponse.connectors:type_name -> api.instance.Connector + 77, // 47: api.instance.MappedListener.url:type_name -> common.Url + 4, // 48: api.instance.ListMappedListenerRequest.instance:type_name -> api.instance.InstanceIdentifier + 34, // 49: api.instance.ListMappedListenerResponse.mappedlisteners:type_name -> api.instance.MappedListener + 4, // 50: api.instance.GetVpnPortalInfoRequest.instance:type_name -> api.instance.InstanceIdentifier + 37, // 51: api.instance.GetVpnPortalInfoResponse.vpn_portal_info:type_name -> api.instance.VpnPortalInfo + 78, // 52: api.instance.TcpProxyEntry.src:type_name -> common.SocketAddr + 78, // 53: api.instance.TcpProxyEntry.dst:type_name -> common.SocketAddr + 3, // 54: api.instance.TcpProxyEntry.state:type_name -> api.instance.TcpProxyEntryState + 2, // 55: api.instance.TcpProxyEntry.transport_type:type_name -> api.instance.TcpProxyEntryTransportType + 4, // 56: api.instance.ListTcpProxyEntryRequest.instance:type_name -> api.instance.InstanceIdentifier + 40, // 57: api.instance.ListTcpProxyEntryResponse.entries:type_name -> api.instance.TcpProxyEntry + 4, // 58: api.instance.GetAclStatsRequest.instance:type_name -> api.instance.InstanceIdentifier + 79, // 59: api.instance.GetAclStatsResponse.acl_stats:type_name -> acl.AclStats + 4, // 60: api.instance.GetWhitelistRequest.instance:type_name -> api.instance.InstanceIdentifier + 4, // 61: api.instance.ListPortForwardRequest.instance:type_name -> api.instance.InstanceIdentifier + 80, // 62: api.instance.ListPortForwardResponse.cfgs:type_name -> common.PortForwardConfigPb + 66, // 63: api.instance.MetricSnapshot.labels:type_name -> api.instance.MetricSnapshot.LabelsEntry + 4, // 64: api.instance.GetStatsRequest.instance:type_name -> api.instance.InstanceIdentifier + 49, // 65: api.instance.GetStatsResponse.metrics:type_name -> api.instance.MetricSnapshot + 4, // 66: api.instance.GetPrometheusStatsRequest.instance:type_name -> api.instance.InstanceIdentifier + 4, // 67: api.instance.GenerateCredentialRequest.instance:type_name -> api.instance.InstanceIdentifier + 4, // 68: api.instance.RevokeCredentialRequest.instance:type_name -> api.instance.InstanceIdentifier + 4, // 69: api.instance.ListCredentialsRequest.instance:type_name -> api.instance.InstanceIdentifier + 59, // 70: api.instance.ListCredentialsResponse.credentials:type_name -> api.instance.CredentialInfo + 25, // 71: api.instance.ListForeignNetworkResponse.ForeignNetworksEntry.value:type_name -> api.instance.ForeignNetworkEntryPb + 63, // 72: api.instance.ListGlobalForeignNetworkResponse.ForeignNetworks.foreign_networks:type_name -> api.instance.ListGlobalForeignNetworkResponse.OneForeignNetwork + 64, // 73: api.instance.ListGlobalForeignNetworkResponse.ForeignNetworksEntry.value:type_name -> api.instance.ListGlobalForeignNetworkResponse.ForeignNetworks + 9, // 74: api.instance.PeerManageRpc.ListPeer:input_type -> api.instance.ListPeerRequest + 17, // 75: api.instance.PeerManageRpc.ListPublicIpv6Info:input_type -> api.instance.ListPublicIpv6InfoRequest + 19, // 76: api.instance.PeerManageRpc.ListRoute:input_type -> api.instance.ListRouteRequest + 21, // 77: api.instance.PeerManageRpc.DumpRoute:input_type -> api.instance.DumpRouteRequest + 23, // 78: api.instance.PeerManageRpc.ListForeignNetwork:input_type -> api.instance.ListForeignNetworkRequest + 27, // 79: api.instance.PeerManageRpc.ListGlobalForeignNetwork:input_type -> api.instance.ListGlobalForeignNetworkRequest + 14, // 80: api.instance.PeerManageRpc.ShowNodeInfo:input_type -> api.instance.ShowNodeInfoRequest + 29, // 81: api.instance.PeerManageRpc.GetForeignNetworkSummary:input_type -> api.instance.GetForeignNetworkSummaryRequest + 32, // 82: api.instance.ConnectorManageRpc.ListConnector:input_type -> api.instance.ListConnectorRequest + 35, // 83: api.instance.MappedListenerManageRpc.ListMappedListener:input_type -> api.instance.ListMappedListenerRequest + 38, // 84: api.instance.VpnPortalRpc.GetVpnPortalInfo:input_type -> api.instance.GetVpnPortalInfoRequest + 41, // 85: api.instance.TcpProxyRpc.ListTcpProxyEntry:input_type -> api.instance.ListTcpProxyEntryRequest + 43, // 86: api.instance.AclManageRpc.GetAclStats:input_type -> api.instance.GetAclStatsRequest + 45, // 87: api.instance.AclManageRpc.GetWhitelist:input_type -> api.instance.GetWhitelistRequest + 47, // 88: api.instance.PortForwardManageRpc.ListPortForward:input_type -> api.instance.ListPortForwardRequest + 50, // 89: api.instance.StatsRpc.GetStats:input_type -> api.instance.GetStatsRequest + 52, // 90: api.instance.StatsRpc.GetPrometheusStats:input_type -> api.instance.GetPrometheusStatsRequest + 54, // 91: api.instance.CredentialManageRpc.GenerateCredential:input_type -> api.instance.GenerateCredentialRequest + 56, // 92: api.instance.CredentialManageRpc.RevokeCredential:input_type -> api.instance.RevokeCredentialRequest + 58, // 93: api.instance.CredentialManageRpc.ListCredentials:input_type -> api.instance.ListCredentialsRequest + 10, // 94: api.instance.PeerManageRpc.ListPeer:output_type -> api.instance.ListPeerResponse + 18, // 95: api.instance.PeerManageRpc.ListPublicIpv6Info:output_type -> api.instance.ListPublicIpv6InfoResponse + 20, // 96: api.instance.PeerManageRpc.ListRoute:output_type -> api.instance.ListRouteResponse + 22, // 97: api.instance.PeerManageRpc.DumpRoute:output_type -> api.instance.DumpRouteResponse + 26, // 98: api.instance.PeerManageRpc.ListForeignNetwork:output_type -> api.instance.ListForeignNetworkResponse + 28, // 99: api.instance.PeerManageRpc.ListGlobalForeignNetwork:output_type -> api.instance.ListGlobalForeignNetworkResponse + 15, // 100: api.instance.PeerManageRpc.ShowNodeInfo:output_type -> api.instance.ShowNodeInfoResponse + 30, // 101: api.instance.PeerManageRpc.GetForeignNetworkSummary:output_type -> api.instance.GetForeignNetworkSummaryResponse + 33, // 102: api.instance.ConnectorManageRpc.ListConnector:output_type -> api.instance.ListConnectorResponse + 36, // 103: api.instance.MappedListenerManageRpc.ListMappedListener:output_type -> api.instance.ListMappedListenerResponse + 39, // 104: api.instance.VpnPortalRpc.GetVpnPortalInfo:output_type -> api.instance.GetVpnPortalInfoResponse + 42, // 105: api.instance.TcpProxyRpc.ListTcpProxyEntry:output_type -> api.instance.ListTcpProxyEntryResponse + 44, // 106: api.instance.AclManageRpc.GetAclStats:output_type -> api.instance.GetAclStatsResponse + 46, // 107: api.instance.AclManageRpc.GetWhitelist:output_type -> api.instance.GetWhitelistResponse + 48, // 108: api.instance.PortForwardManageRpc.ListPortForward:output_type -> api.instance.ListPortForwardResponse + 51, // 109: api.instance.StatsRpc.GetStats:output_type -> api.instance.GetStatsResponse + 53, // 110: api.instance.StatsRpc.GetPrometheusStats:output_type -> api.instance.GetPrometheusStatsResponse + 55, // 111: api.instance.CredentialManageRpc.GenerateCredential:output_type -> api.instance.GenerateCredentialResponse + 57, // 112: api.instance.CredentialManageRpc.RevokeCredential:output_type -> api.instance.RevokeCredentialResponse + 60, // 113: api.instance.CredentialManageRpc.ListCredentials:output_type -> api.instance.ListCredentialsResponse + 94, // [94:114] is the sub-list for method output_type + 74, // [74:94] is the sub-list for method input_type + 74, // [74:74] is the sub-list for extension type_name + 74, // [74:74] is the sub-list for extension extendee + 0, // [0:74] is the sub-list for field type_name +} + +func init() { file_api_instance_proto_init() } +func file_api_instance_proto_init() { + if File_api_instance_proto != nil { + return + } + file_api_instance_proto_msgTypes[0].OneofWrappers = []any{ + (*InstanceIdentifier_Id)(nil), + (*InstanceIdentifier_InstanceSelector_)(nil), + } + file_api_instance_proto_msgTypes[7].OneofWrappers = []any{} + file_api_instance_proto_msgTypes[20].OneofWrappers = []any{} + file_api_instance_proto_msgTypes[50].OneofWrappers = []any{} + file_api_instance_proto_msgTypes[55].OneofWrappers = []any{} + file_api_instance_proto_msgTypes[57].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_instance_proto_rawDesc), len(file_api_instance_proto_rawDesc)), + NumEnums: 4, + NumMessages: 63, + NumExtensions: 0, + NumServices: 9, + }, + GoTypes: file_api_instance_proto_goTypes, + DependencyIndexes: file_api_instance_proto_depIdxs, + EnumInfos: file_api_instance_proto_enumTypes, + MessageInfos: file_api_instance_proto_msgTypes, + }.Build() + File_api_instance_proto = out.File + file_api_instance_proto_goTypes = nil + file_api_instance_proto_depIdxs = nil +} diff --git a/easytier-go/proto/api/manage/api_manage.pb.go b/easytier-go/proto/api/manage/api_manage.pb.go new file mode 100644 index 00000000..44db9480 --- /dev/null +++ b/easytier-go/proto/api/manage/api_manage.pb.go @@ -0,0 +1,2259 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.35.1 +// source: api_manage.proto + +package manage + +import ( + acl "github.com/EasyTier/EasyTier/easytier-go/proto/acl" + instance "github.com/EasyTier/EasyTier/easytier-go/proto/api/instance" + common "github.com/EasyTier/EasyTier/easytier-go/proto/common" + peer_rpc "github.com/EasyTier/EasyTier/easytier-go/proto/peer_rpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type NetworkingMethod int32 + +const ( + NetworkingMethod_PublicServer NetworkingMethod = 0 + NetworkingMethod_Manual NetworkingMethod = 1 + NetworkingMethod_Standalone NetworkingMethod = 2 +) + +// Enum value maps for NetworkingMethod. +var ( + NetworkingMethod_name = map[int32]string{ + 0: "PublicServer", + 1: "Manual", + 2: "Standalone", + } + NetworkingMethod_value = map[string]int32{ + "PublicServer": 0, + "Manual": 1, + "Standalone": 2, + } +) + +func (x NetworkingMethod) Enum() *NetworkingMethod { + p := new(NetworkingMethod) + *p = x + return p +} + +func (x NetworkingMethod) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NetworkingMethod) Descriptor() protoreflect.EnumDescriptor { + return file_api_manage_proto_enumTypes[0].Descriptor() +} + +func (NetworkingMethod) Type() protoreflect.EnumType { + return &file_api_manage_proto_enumTypes[0] +} + +func (x NetworkingMethod) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NetworkingMethod.Descriptor instead. +func (NetworkingMethod) EnumDescriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{0} +} + +type ConfigSource int32 + +const ( + ConfigSource_ConfigSourceUnspecified ConfigSource = 0 + ConfigSource_ConfigSourceUser ConfigSource = 1 + ConfigSource_ConfigSourceWeb ConfigSource = 2 +) + +// Enum value maps for ConfigSource. +var ( + ConfigSource_name = map[int32]string{ + 0: "ConfigSourceUnspecified", + 1: "ConfigSourceUser", + 2: "ConfigSourceWeb", + } + ConfigSource_value = map[string]int32{ + "ConfigSourceUnspecified": 0, + "ConfigSourceUser": 1, + "ConfigSourceWeb": 2, + } +) + +func (x ConfigSource) Enum() *ConfigSource { + p := new(ConfigSource) + *p = x + return p +} + +func (x ConfigSource) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ConfigSource) Descriptor() protoreflect.EnumDescriptor { + return file_api_manage_proto_enumTypes[1].Descriptor() +} + +func (ConfigSource) Type() protoreflect.EnumType { + return &file_api_manage_proto_enumTypes[1] +} + +func (x ConfigSource) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ConfigSource.Descriptor instead. +func (ConfigSource) EnumDescriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{1} +} + +type NetworkConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstanceId *string `protobuf:"bytes,1,opt,name=instance_id,json=instanceId,proto3,oneof" json:"instance_id,omitempty"` + Dhcp *bool `protobuf:"varint,2,opt,name=dhcp,proto3,oneof" json:"dhcp,omitempty"` + VirtualIpv4 *string `protobuf:"bytes,3,opt,name=virtual_ipv4,json=virtualIpv4,proto3,oneof" json:"virtual_ipv4,omitempty"` + NetworkLength *int32 `protobuf:"varint,4,opt,name=network_length,json=networkLength,proto3,oneof" json:"network_length,omitempty"` + Hostname *string `protobuf:"bytes,5,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` + NetworkName *string `protobuf:"bytes,6,opt,name=network_name,json=networkName,proto3,oneof" json:"network_name,omitempty"` + NetworkSecret *string `protobuf:"bytes,7,opt,name=network_secret,json=networkSecret,proto3,oneof" json:"network_secret,omitempty"` + NetworkingMethod *NetworkingMethod `protobuf:"varint,8,opt,name=networking_method,json=networkingMethod,proto3,enum=api.manage.NetworkingMethod,oneof" json:"networking_method,omitempty"` + PublicServerUrl *string `protobuf:"bytes,9,opt,name=public_server_url,json=publicServerUrl,proto3,oneof" json:"public_server_url,omitempty"` + PeerUrls []string `protobuf:"bytes,10,rep,name=peer_urls,json=peerUrls,proto3" json:"peer_urls,omitempty"` + ProxyCidrs []string `protobuf:"bytes,11,rep,name=proxy_cidrs,json=proxyCidrs,proto3" json:"proxy_cidrs,omitempty"` + EnableVpnPortal *bool `protobuf:"varint,12,opt,name=enable_vpn_portal,json=enableVpnPortal,proto3,oneof" json:"enable_vpn_portal,omitempty"` + VpnPortalListenPort *int32 `protobuf:"varint,13,opt,name=vpn_portal_listen_port,json=vpnPortalListenPort,proto3,oneof" json:"vpn_portal_listen_port,omitempty"` + VpnPortalClientNetworkAddr *string `protobuf:"bytes,14,opt,name=vpn_portal_client_network_addr,json=vpnPortalClientNetworkAddr,proto3,oneof" json:"vpn_portal_client_network_addr,omitempty"` + VpnPortalClientNetworkLen *int32 `protobuf:"varint,15,opt,name=vpn_portal_client_network_len,json=vpnPortalClientNetworkLen,proto3,oneof" json:"vpn_portal_client_network_len,omitempty"` + AdvancedSettings *bool `protobuf:"varint,16,opt,name=advanced_settings,json=advancedSettings,proto3,oneof" json:"advanced_settings,omitempty"` + ListenerUrls []string `protobuf:"bytes,17,rep,name=listener_urls,json=listenerUrls,proto3" json:"listener_urls,omitempty"` + // optional int32 rpc_port = 18; + LatencyFirst *bool `protobuf:"varint,19,opt,name=latency_first,json=latencyFirst,proto3,oneof" json:"latency_first,omitempty"` + DevName *string `protobuf:"bytes,20,opt,name=dev_name,json=devName,proto3,oneof" json:"dev_name,omitempty"` + UseSmoltcp *bool `protobuf:"varint,21,opt,name=use_smoltcp,json=useSmoltcp,proto3,oneof" json:"use_smoltcp,omitempty"` + DisableIpv6 *bool `protobuf:"varint,47,opt,name=disable_ipv6,json=disableIpv6,proto3,oneof" json:"disable_ipv6,omitempty"` + EnableKcpProxy *bool `protobuf:"varint,22,opt,name=enable_kcp_proxy,json=enableKcpProxy,proto3,oneof" json:"enable_kcp_proxy,omitempty"` + DisableKcpInput *bool `protobuf:"varint,23,opt,name=disable_kcp_input,json=disableKcpInput,proto3,oneof" json:"disable_kcp_input,omitempty"` + DisableP2P *bool `protobuf:"varint,24,opt,name=disable_p2p,json=disableP2p,proto3,oneof" json:"disable_p2p,omitempty"` + BindDevice *bool `protobuf:"varint,25,opt,name=bind_device,json=bindDevice,proto3,oneof" json:"bind_device,omitempty"` + NoTun *bool `protobuf:"varint,26,opt,name=no_tun,json=noTun,proto3,oneof" json:"no_tun,omitempty"` + EnableExitNode *bool `protobuf:"varint,27,opt,name=enable_exit_node,json=enableExitNode,proto3,oneof" json:"enable_exit_node,omitempty"` + RelayAllPeerRpc *bool `protobuf:"varint,28,opt,name=relay_all_peer_rpc,json=relayAllPeerRpc,proto3,oneof" json:"relay_all_peer_rpc,omitempty"` + MultiThread *bool `protobuf:"varint,29,opt,name=multi_thread,json=multiThread,proto3,oneof" json:"multi_thread,omitempty"` + EnableRelayNetworkWhitelist *bool `protobuf:"varint,30,opt,name=enable_relay_network_whitelist,json=enableRelayNetworkWhitelist,proto3,oneof" json:"enable_relay_network_whitelist,omitempty"` + RelayNetworkWhitelist []string `protobuf:"bytes,31,rep,name=relay_network_whitelist,json=relayNetworkWhitelist,proto3" json:"relay_network_whitelist,omitempty"` + EnableManualRoutes *bool `protobuf:"varint,32,opt,name=enable_manual_routes,json=enableManualRoutes,proto3,oneof" json:"enable_manual_routes,omitempty"` + Routes []string `protobuf:"bytes,33,rep,name=routes,proto3" json:"routes,omitempty"` + ExitNodes []string `protobuf:"bytes,34,rep,name=exit_nodes,json=exitNodes,proto3" json:"exit_nodes,omitempty"` + ProxyForwardBySystem *bool `protobuf:"varint,35,opt,name=proxy_forward_by_system,json=proxyForwardBySystem,proto3,oneof" json:"proxy_forward_by_system,omitempty"` + DisableEncryption *bool `protobuf:"varint,36,opt,name=disable_encryption,json=disableEncryption,proto3,oneof" json:"disable_encryption,omitempty"` + EnableSocks5 *bool `protobuf:"varint,37,opt,name=enable_socks5,json=enableSocks5,proto3,oneof" json:"enable_socks5,omitempty"` + Socks5Port *int32 `protobuf:"varint,38,opt,name=socks5_port,json=socks5Port,proto3,oneof" json:"socks5_port,omitempty"` + DisableUdpHolePunching *bool `protobuf:"varint,39,opt,name=disable_udp_hole_punching,json=disableUdpHolePunching,proto3,oneof" json:"disable_udp_hole_punching,omitempty"` + Mtu *int32 `protobuf:"varint,40,opt,name=mtu,proto3,oneof" json:"mtu,omitempty"` + MappedListeners []string `protobuf:"bytes,41,rep,name=mapped_listeners,json=mappedListeners,proto3" json:"mapped_listeners,omitempty"` + EnableMagicDns *bool `protobuf:"varint,42,opt,name=enable_magic_dns,json=enableMagicDns,proto3,oneof" json:"enable_magic_dns,omitempty"` + EnablePrivateMode *bool `protobuf:"varint,43,opt,name=enable_private_mode,json=enablePrivateMode,proto3,oneof" json:"enable_private_mode,omitempty"` + EnableQuicProxy *bool `protobuf:"varint,45,opt,name=enable_quic_proxy,json=enableQuicProxy,proto3,oneof" json:"enable_quic_proxy,omitempty"` + DisableQuicInput *bool `protobuf:"varint,46,opt,name=disable_quic_input,json=disableQuicInput,proto3,oneof" json:"disable_quic_input,omitempty"` + // Deprecated: Marked as deprecated in api_manage.proto. + QuicListenPort *int32 `protobuf:"varint,50,opt,name=quic_listen_port,json=quicListenPort,proto3,oneof" json:"quic_listen_port,omitempty"` + PortForwards []*PortForwardConfig `protobuf:"bytes,48,rep,name=port_forwards,json=portForwards,proto3" json:"port_forwards,omitempty"` + DisableSymHolePunching *bool `protobuf:"varint,49,opt,name=disable_sym_hole_punching,json=disableSymHolePunching,proto3,oneof" json:"disable_sym_hole_punching,omitempty"` + P2POnly *bool `protobuf:"varint,51,opt,name=p2p_only,json=p2pOnly,proto3,oneof" json:"p2p_only,omitempty"` + DataCompressAlgo *common.CompressionAlgoPb `protobuf:"varint,52,opt,name=data_compress_algo,json=dataCompressAlgo,proto3,enum=common.CompressionAlgoPb,oneof" json:"data_compress_algo,omitempty"` + EncryptionAlgorithm *string `protobuf:"bytes,53,opt,name=encryption_algorithm,json=encryptionAlgorithm,proto3,oneof" json:"encryption_algorithm,omitempty"` + DisableTcpHolePunching *bool `protobuf:"varint,54,opt,name=disable_tcp_hole_punching,json=disableTcpHolePunching,proto3,oneof" json:"disable_tcp_hole_punching,omitempty"` + SecureMode *common.SecureModeConfig `protobuf:"bytes,55,opt,name=secure_mode,json=secureMode,proto3" json:"secure_mode,omitempty"` + Acl *acl.Acl `protobuf:"bytes,56,opt,name=acl,proto3,oneof" json:"acl,omitempty"` + CredentialFile *string `protobuf:"bytes,57,opt,name=credential_file,json=credentialFile,proto3,oneof" json:"credential_file,omitempty"` + LazyP2P *bool `protobuf:"varint,58,opt,name=lazy_p2p,json=lazyP2p,proto3,oneof" json:"lazy_p2p,omitempty"` + NeedP2P *bool `protobuf:"varint,59,opt,name=need_p2p,json=needP2p,proto3,oneof" json:"need_p2p,omitempty"` + InstanceRecvBpsLimit *uint64 `protobuf:"varint,60,opt,name=instance_recv_bps_limit,json=instanceRecvBpsLimit,proto3,oneof" json:"instance_recv_bps_limit,omitempty"` + DisableUpnp *bool `protobuf:"varint,61,opt,name=disable_upnp,json=disableUpnp,proto3,oneof" json:"disable_upnp,omitempty"` + Ipv6PublicAddrProvider *bool `protobuf:"varint,62,opt,name=ipv6_public_addr_provider,json=ipv6PublicAddrProvider,proto3,oneof" json:"ipv6_public_addr_provider,omitempty"` + Ipv6PublicAddrAuto *bool `protobuf:"varint,63,opt,name=ipv6_public_addr_auto,json=ipv6PublicAddrAuto,proto3,oneof" json:"ipv6_public_addr_auto,omitempty"` + Ipv6PublicAddrPrefix *string `protobuf:"bytes,64,opt,name=ipv6_public_addr_prefix,json=ipv6PublicAddrPrefix,proto3,oneof" json:"ipv6_public_addr_prefix,omitempty"` + DisableRelayData *bool `protobuf:"varint,65,opt,name=disable_relay_data,json=disableRelayData,proto3,oneof" json:"disable_relay_data,omitempty"` + EnableUdpBroadcastRelay *bool `protobuf:"varint,66,opt,name=enable_udp_broadcast_relay,json=enableUdpBroadcastRelay,proto3,oneof" json:"enable_udp_broadcast_relay,omitempty"` + SocketMark *uint32 `protobuf:"varint,67,opt,name=socket_mark,json=socketMark,proto3,oneof" json:"socket_mark,omitempty"` + Peers []*NetworkPeerConfig `protobuf:"bytes,68,rep,name=peers,proto3" json:"peers,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NetworkConfig) Reset() { + *x = NetworkConfig{} + mi := &file_api_manage_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NetworkConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetworkConfig) ProtoMessage() {} + +func (x *NetworkConfig) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NetworkConfig.ProtoReflect.Descriptor instead. +func (*NetworkConfig) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{0} +} + +func (x *NetworkConfig) GetInstanceId() string { + if x != nil && x.InstanceId != nil { + return *x.InstanceId + } + return "" +} + +func (x *NetworkConfig) GetDhcp() bool { + if x != nil && x.Dhcp != nil { + return *x.Dhcp + } + return false +} + +func (x *NetworkConfig) GetVirtualIpv4() string { + if x != nil && x.VirtualIpv4 != nil { + return *x.VirtualIpv4 + } + return "" +} + +func (x *NetworkConfig) GetNetworkLength() int32 { + if x != nil && x.NetworkLength != nil { + return *x.NetworkLength + } + return 0 +} + +func (x *NetworkConfig) GetHostname() string { + if x != nil && x.Hostname != nil { + return *x.Hostname + } + return "" +} + +func (x *NetworkConfig) GetNetworkName() string { + if x != nil && x.NetworkName != nil { + return *x.NetworkName + } + return "" +} + +func (x *NetworkConfig) GetNetworkSecret() string { + if x != nil && x.NetworkSecret != nil { + return *x.NetworkSecret + } + return "" +} + +func (x *NetworkConfig) GetNetworkingMethod() NetworkingMethod { + if x != nil && x.NetworkingMethod != nil { + return *x.NetworkingMethod + } + return NetworkingMethod_PublicServer +} + +func (x *NetworkConfig) GetPublicServerUrl() string { + if x != nil && x.PublicServerUrl != nil { + return *x.PublicServerUrl + } + return "" +} + +func (x *NetworkConfig) GetPeerUrls() []string { + if x != nil { + return x.PeerUrls + } + return nil +} + +func (x *NetworkConfig) GetProxyCidrs() []string { + if x != nil { + return x.ProxyCidrs + } + return nil +} + +func (x *NetworkConfig) GetEnableVpnPortal() bool { + if x != nil && x.EnableVpnPortal != nil { + return *x.EnableVpnPortal + } + return false +} + +func (x *NetworkConfig) GetVpnPortalListenPort() int32 { + if x != nil && x.VpnPortalListenPort != nil { + return *x.VpnPortalListenPort + } + return 0 +} + +func (x *NetworkConfig) GetVpnPortalClientNetworkAddr() string { + if x != nil && x.VpnPortalClientNetworkAddr != nil { + return *x.VpnPortalClientNetworkAddr + } + return "" +} + +func (x *NetworkConfig) GetVpnPortalClientNetworkLen() int32 { + if x != nil && x.VpnPortalClientNetworkLen != nil { + return *x.VpnPortalClientNetworkLen + } + return 0 +} + +func (x *NetworkConfig) GetAdvancedSettings() bool { + if x != nil && x.AdvancedSettings != nil { + return *x.AdvancedSettings + } + return false +} + +func (x *NetworkConfig) GetListenerUrls() []string { + if x != nil { + return x.ListenerUrls + } + return nil +} + +func (x *NetworkConfig) GetLatencyFirst() bool { + if x != nil && x.LatencyFirst != nil { + return *x.LatencyFirst + } + return false +} + +func (x *NetworkConfig) GetDevName() string { + if x != nil && x.DevName != nil { + return *x.DevName + } + return "" +} + +func (x *NetworkConfig) GetUseSmoltcp() bool { + if x != nil && x.UseSmoltcp != nil { + return *x.UseSmoltcp + } + return false +} + +func (x *NetworkConfig) GetDisableIpv6() bool { + if x != nil && x.DisableIpv6 != nil { + return *x.DisableIpv6 + } + return false +} + +func (x *NetworkConfig) GetEnableKcpProxy() bool { + if x != nil && x.EnableKcpProxy != nil { + return *x.EnableKcpProxy + } + return false +} + +func (x *NetworkConfig) GetDisableKcpInput() bool { + if x != nil && x.DisableKcpInput != nil { + return *x.DisableKcpInput + } + return false +} + +func (x *NetworkConfig) GetDisableP2P() bool { + if x != nil && x.DisableP2P != nil { + return *x.DisableP2P + } + return false +} + +func (x *NetworkConfig) GetBindDevice() bool { + if x != nil && x.BindDevice != nil { + return *x.BindDevice + } + return false +} + +func (x *NetworkConfig) GetNoTun() bool { + if x != nil && x.NoTun != nil { + return *x.NoTun + } + return false +} + +func (x *NetworkConfig) GetEnableExitNode() bool { + if x != nil && x.EnableExitNode != nil { + return *x.EnableExitNode + } + return false +} + +func (x *NetworkConfig) GetRelayAllPeerRpc() bool { + if x != nil && x.RelayAllPeerRpc != nil { + return *x.RelayAllPeerRpc + } + return false +} + +func (x *NetworkConfig) GetMultiThread() bool { + if x != nil && x.MultiThread != nil { + return *x.MultiThread + } + return false +} + +func (x *NetworkConfig) GetEnableRelayNetworkWhitelist() bool { + if x != nil && x.EnableRelayNetworkWhitelist != nil { + return *x.EnableRelayNetworkWhitelist + } + return false +} + +func (x *NetworkConfig) GetRelayNetworkWhitelist() []string { + if x != nil { + return x.RelayNetworkWhitelist + } + return nil +} + +func (x *NetworkConfig) GetEnableManualRoutes() bool { + if x != nil && x.EnableManualRoutes != nil { + return *x.EnableManualRoutes + } + return false +} + +func (x *NetworkConfig) GetRoutes() []string { + if x != nil { + return x.Routes + } + return nil +} + +func (x *NetworkConfig) GetExitNodes() []string { + if x != nil { + return x.ExitNodes + } + return nil +} + +func (x *NetworkConfig) GetProxyForwardBySystem() bool { + if x != nil && x.ProxyForwardBySystem != nil { + return *x.ProxyForwardBySystem + } + return false +} + +func (x *NetworkConfig) GetDisableEncryption() bool { + if x != nil && x.DisableEncryption != nil { + return *x.DisableEncryption + } + return false +} + +func (x *NetworkConfig) GetEnableSocks5() bool { + if x != nil && x.EnableSocks5 != nil { + return *x.EnableSocks5 + } + return false +} + +func (x *NetworkConfig) GetSocks5Port() int32 { + if x != nil && x.Socks5Port != nil { + return *x.Socks5Port + } + return 0 +} + +func (x *NetworkConfig) GetDisableUdpHolePunching() bool { + if x != nil && x.DisableUdpHolePunching != nil { + return *x.DisableUdpHolePunching + } + return false +} + +func (x *NetworkConfig) GetMtu() int32 { + if x != nil && x.Mtu != nil { + return *x.Mtu + } + return 0 +} + +func (x *NetworkConfig) GetMappedListeners() []string { + if x != nil { + return x.MappedListeners + } + return nil +} + +func (x *NetworkConfig) GetEnableMagicDns() bool { + if x != nil && x.EnableMagicDns != nil { + return *x.EnableMagicDns + } + return false +} + +func (x *NetworkConfig) GetEnablePrivateMode() bool { + if x != nil && x.EnablePrivateMode != nil { + return *x.EnablePrivateMode + } + return false +} + +func (x *NetworkConfig) GetEnableQuicProxy() bool { + if x != nil && x.EnableQuicProxy != nil { + return *x.EnableQuicProxy + } + return false +} + +func (x *NetworkConfig) GetDisableQuicInput() bool { + if x != nil && x.DisableQuicInput != nil { + return *x.DisableQuicInput + } + return false +} + +// Deprecated: Marked as deprecated in api_manage.proto. +func (x *NetworkConfig) GetQuicListenPort() int32 { + if x != nil && x.QuicListenPort != nil { + return *x.QuicListenPort + } + return 0 +} + +func (x *NetworkConfig) GetPortForwards() []*PortForwardConfig { + if x != nil { + return x.PortForwards + } + return nil +} + +func (x *NetworkConfig) GetDisableSymHolePunching() bool { + if x != nil && x.DisableSymHolePunching != nil { + return *x.DisableSymHolePunching + } + return false +} + +func (x *NetworkConfig) GetP2POnly() bool { + if x != nil && x.P2POnly != nil { + return *x.P2POnly + } + return false +} + +func (x *NetworkConfig) GetDataCompressAlgo() common.CompressionAlgoPb { + if x != nil && x.DataCompressAlgo != nil { + return *x.DataCompressAlgo + } + return common.CompressionAlgoPb(0) +} + +func (x *NetworkConfig) GetEncryptionAlgorithm() string { + if x != nil && x.EncryptionAlgorithm != nil { + return *x.EncryptionAlgorithm + } + return "" +} + +func (x *NetworkConfig) GetDisableTcpHolePunching() bool { + if x != nil && x.DisableTcpHolePunching != nil { + return *x.DisableTcpHolePunching + } + return false +} + +func (x *NetworkConfig) GetSecureMode() *common.SecureModeConfig { + if x != nil { + return x.SecureMode + } + return nil +} + +func (x *NetworkConfig) GetAcl() *acl.Acl { + if x != nil { + return x.Acl + } + return nil +} + +func (x *NetworkConfig) GetCredentialFile() string { + if x != nil && x.CredentialFile != nil { + return *x.CredentialFile + } + return "" +} + +func (x *NetworkConfig) GetLazyP2P() bool { + if x != nil && x.LazyP2P != nil { + return *x.LazyP2P + } + return false +} + +func (x *NetworkConfig) GetNeedP2P() bool { + if x != nil && x.NeedP2P != nil { + return *x.NeedP2P + } + return false +} + +func (x *NetworkConfig) GetInstanceRecvBpsLimit() uint64 { + if x != nil && x.InstanceRecvBpsLimit != nil { + return *x.InstanceRecvBpsLimit + } + return 0 +} + +func (x *NetworkConfig) GetDisableUpnp() bool { + if x != nil && x.DisableUpnp != nil { + return *x.DisableUpnp + } + return false +} + +func (x *NetworkConfig) GetIpv6PublicAddrProvider() bool { + if x != nil && x.Ipv6PublicAddrProvider != nil { + return *x.Ipv6PublicAddrProvider + } + return false +} + +func (x *NetworkConfig) GetIpv6PublicAddrAuto() bool { + if x != nil && x.Ipv6PublicAddrAuto != nil { + return *x.Ipv6PublicAddrAuto + } + return false +} + +func (x *NetworkConfig) GetIpv6PublicAddrPrefix() string { + if x != nil && x.Ipv6PublicAddrPrefix != nil { + return *x.Ipv6PublicAddrPrefix + } + return "" +} + +func (x *NetworkConfig) GetDisableRelayData() bool { + if x != nil && x.DisableRelayData != nil { + return *x.DisableRelayData + } + return false +} + +func (x *NetworkConfig) GetEnableUdpBroadcastRelay() bool { + if x != nil && x.EnableUdpBroadcastRelay != nil { + return *x.EnableUdpBroadcastRelay + } + return false +} + +func (x *NetworkConfig) GetSocketMark() uint32 { + if x != nil && x.SocketMark != nil { + return *x.SocketMark + } + return 0 +} + +func (x *NetworkConfig) GetPeers() []*NetworkPeerConfig { + if x != nil { + return x.Peers + } + return nil +} + +type NetworkPeerConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Uri string `protobuf:"bytes,1,opt,name=uri,proto3" json:"uri,omitempty"` + PeerPublicKey *string `protobuf:"bytes,2,opt,name=peer_public_key,json=peerPublicKey,proto3,oneof" json:"peer_public_key,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NetworkPeerConfig) Reset() { + *x = NetworkPeerConfig{} + mi := &file_api_manage_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NetworkPeerConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetworkPeerConfig) ProtoMessage() {} + +func (x *NetworkPeerConfig) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NetworkPeerConfig.ProtoReflect.Descriptor instead. +func (*NetworkPeerConfig) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{1} +} + +func (x *NetworkPeerConfig) GetUri() string { + if x != nil { + return x.Uri + } + return "" +} + +func (x *NetworkPeerConfig) GetPeerPublicKey() string { + if x != nil && x.PeerPublicKey != nil { + return *x.PeerPublicKey + } + return "" +} + +type PortForwardConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + BindIp string `protobuf:"bytes,1,opt,name=bind_ip,json=bindIp,proto3" json:"bind_ip,omitempty"` + BindPort uint32 `protobuf:"varint,2,opt,name=bind_port,json=bindPort,proto3" json:"bind_port,omitempty"` + DstIp string `protobuf:"bytes,3,opt,name=dst_ip,json=dstIp,proto3" json:"dst_ip,omitempty"` + DstPort uint32 `protobuf:"varint,4,opt,name=dst_port,json=dstPort,proto3" json:"dst_port,omitempty"` + Proto string `protobuf:"bytes,5,opt,name=proto,proto3" json:"proto,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PortForwardConfig) Reset() { + *x = PortForwardConfig{} + mi := &file_api_manage_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PortForwardConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortForwardConfig) ProtoMessage() {} + +func (x *PortForwardConfig) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PortForwardConfig.ProtoReflect.Descriptor instead. +func (*PortForwardConfig) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{2} +} + +func (x *PortForwardConfig) GetBindIp() string { + if x != nil { + return x.BindIp + } + return "" +} + +func (x *PortForwardConfig) GetBindPort() uint32 { + if x != nil { + return x.BindPort + } + return 0 +} + +func (x *PortForwardConfig) GetDstIp() string { + if x != nil { + return x.DstIp + } + return "" +} + +func (x *PortForwardConfig) GetDstPort() uint32 { + if x != nil { + return x.DstPort + } + return 0 +} + +func (x *PortForwardConfig) GetProto() string { + if x != nil { + return x.Proto + } + return "" +} + +type MyNodeInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + VirtualIpv4 *common.Ipv4Inet `protobuf:"bytes,1,opt,name=virtual_ipv4,json=virtualIpv4,proto3" json:"virtual_ipv4,omitempty"` + Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + Ips *peer_rpc.GetIpListResponse `protobuf:"bytes,4,opt,name=ips,proto3" json:"ips,omitempty"` + StunInfo *common.StunInfo `protobuf:"bytes,5,opt,name=stun_info,json=stunInfo,proto3" json:"stun_info,omitempty"` + Listeners []*common.Url `protobuf:"bytes,6,rep,name=listeners,proto3" json:"listeners,omitempty"` + VpnPortalCfg *string `protobuf:"bytes,7,opt,name=vpn_portal_cfg,json=vpnPortalCfg,proto3,oneof" json:"vpn_portal_cfg,omitempty"` + PeerId uint32 `protobuf:"varint,8,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MyNodeInfo) Reset() { + *x = MyNodeInfo{} + mi := &file_api_manage_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MyNodeInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MyNodeInfo) ProtoMessage() {} + +func (x *MyNodeInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MyNodeInfo.ProtoReflect.Descriptor instead. +func (*MyNodeInfo) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{3} +} + +func (x *MyNodeInfo) GetVirtualIpv4() *common.Ipv4Inet { + if x != nil { + return x.VirtualIpv4 + } + return nil +} + +func (x *MyNodeInfo) GetHostname() string { + if x != nil { + return x.Hostname + } + return "" +} + +func (x *MyNodeInfo) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *MyNodeInfo) GetIps() *peer_rpc.GetIpListResponse { + if x != nil { + return x.Ips + } + return nil +} + +func (x *MyNodeInfo) GetStunInfo() *common.StunInfo { + if x != nil { + return x.StunInfo + } + return nil +} + +func (x *MyNodeInfo) GetListeners() []*common.Url { + if x != nil { + return x.Listeners + } + return nil +} + +func (x *MyNodeInfo) GetVpnPortalCfg() string { + if x != nil && x.VpnPortalCfg != nil { + return *x.VpnPortalCfg + } + return "" +} + +func (x *MyNodeInfo) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +type NetworkInstanceRunningInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + DevName string `protobuf:"bytes,1,opt,name=dev_name,json=devName,proto3" json:"dev_name,omitempty"` + MyNodeInfo *MyNodeInfo `protobuf:"bytes,2,opt,name=my_node_info,json=myNodeInfo,proto3" json:"my_node_info,omitempty"` + Events []string `protobuf:"bytes,3,rep,name=events,proto3" json:"events,omitempty"` + Routes []*instance.Route `protobuf:"bytes,4,rep,name=routes,proto3" json:"routes,omitempty"` + Peers []*instance.PeerInfo `protobuf:"bytes,5,rep,name=peers,proto3" json:"peers,omitempty"` + PeerRoutePairs []*instance.PeerRoutePair `protobuf:"bytes,6,rep,name=peer_route_pairs,json=peerRoutePairs,proto3" json:"peer_route_pairs,omitempty"` + Running bool `protobuf:"varint,7,opt,name=running,proto3" json:"running,omitempty"` + ErrorMsg *string `protobuf:"bytes,8,opt,name=error_msg,json=errorMsg,proto3,oneof" json:"error_msg,omitempty"` + ForeignNetworkSummary *peer_rpc.RouteForeignNetworkSummary `protobuf:"bytes,9,opt,name=foreign_network_summary,json=foreignNetworkSummary,proto3" json:"foreign_network_summary,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NetworkInstanceRunningInfo) Reset() { + *x = NetworkInstanceRunningInfo{} + mi := &file_api_manage_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NetworkInstanceRunningInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetworkInstanceRunningInfo) ProtoMessage() {} + +func (x *NetworkInstanceRunningInfo) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NetworkInstanceRunningInfo.ProtoReflect.Descriptor instead. +func (*NetworkInstanceRunningInfo) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{4} +} + +func (x *NetworkInstanceRunningInfo) GetDevName() string { + if x != nil { + return x.DevName + } + return "" +} + +func (x *NetworkInstanceRunningInfo) GetMyNodeInfo() *MyNodeInfo { + if x != nil { + return x.MyNodeInfo + } + return nil +} + +func (x *NetworkInstanceRunningInfo) GetEvents() []string { + if x != nil { + return x.Events + } + return nil +} + +func (x *NetworkInstanceRunningInfo) GetRoutes() []*instance.Route { + if x != nil { + return x.Routes + } + return nil +} + +func (x *NetworkInstanceRunningInfo) GetPeers() []*instance.PeerInfo { + if x != nil { + return x.Peers + } + return nil +} + +func (x *NetworkInstanceRunningInfo) GetPeerRoutePairs() []*instance.PeerRoutePair { + if x != nil { + return x.PeerRoutePairs + } + return nil +} + +func (x *NetworkInstanceRunningInfo) GetRunning() bool { + if x != nil { + return x.Running + } + return false +} + +func (x *NetworkInstanceRunningInfo) GetErrorMsg() string { + if x != nil && x.ErrorMsg != nil { + return *x.ErrorMsg + } + return "" +} + +func (x *NetworkInstanceRunningInfo) GetForeignNetworkSummary() *peer_rpc.RouteForeignNetworkSummary { + if x != nil { + return x.ForeignNetworkSummary + } + return nil +} + +type NetworkInstanceRunningInfoMap struct { + state protoimpl.MessageState `protogen:"open.v1"` + Map map[string]*NetworkInstanceRunningInfo `protobuf:"bytes,1,rep,name=map,proto3" json:"map,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NetworkInstanceRunningInfoMap) Reset() { + *x = NetworkInstanceRunningInfoMap{} + mi := &file_api_manage_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NetworkInstanceRunningInfoMap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetworkInstanceRunningInfoMap) ProtoMessage() {} + +func (x *NetworkInstanceRunningInfoMap) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NetworkInstanceRunningInfoMap.ProtoReflect.Descriptor instead. +func (*NetworkInstanceRunningInfoMap) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{5} +} + +func (x *NetworkInstanceRunningInfoMap) GetMap() map[string]*NetworkInstanceRunningInfo { + if x != nil { + return x.Map + } + return nil +} + +type NetworkMeta struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstId *common.UUID `protobuf:"bytes,1,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + NetworkName string `protobuf:"bytes,2,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` + ConfigPermission uint32 `protobuf:"varint,3,opt,name=config_permission,json=configPermission,proto3" json:"config_permission,omitempty"` + InstanceName string `protobuf:"bytes,4,opt,name=instance_name,json=instanceName,proto3" json:"instance_name,omitempty"` + Source ConfigSource `protobuf:"varint,5,opt,name=source,proto3,enum=api.manage.ConfigSource" json:"source,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *NetworkMeta) Reset() { + *x = NetworkMeta{} + mi := &file_api_manage_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *NetworkMeta) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NetworkMeta) ProtoMessage() {} + +func (x *NetworkMeta) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NetworkMeta.ProtoReflect.Descriptor instead. +func (*NetworkMeta) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{6} +} + +func (x *NetworkMeta) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +func (x *NetworkMeta) GetNetworkName() string { + if x != nil { + return x.NetworkName + } + return "" +} + +func (x *NetworkMeta) GetConfigPermission() uint32 { + if x != nil { + return x.ConfigPermission + } + return 0 +} + +func (x *NetworkMeta) GetInstanceName() string { + if x != nil { + return x.InstanceName + } + return "" +} + +func (x *NetworkMeta) GetSource() ConfigSource { + if x != nil { + return x.Source + } + return ConfigSource_ConfigSourceUnspecified +} + +type ValidateConfigRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Config *NetworkConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ValidateConfigRequest) Reset() { + *x = ValidateConfigRequest{} + mi := &file_api_manage_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ValidateConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateConfigRequest) ProtoMessage() {} + +func (x *ValidateConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateConfigRequest.ProtoReflect.Descriptor instead. +func (*ValidateConfigRequest) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{7} +} + +func (x *ValidateConfigRequest) GetConfig() *NetworkConfig { + if x != nil { + return x.Config + } + return nil +} + +type ValidateConfigResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + TomlConfig string `protobuf:"bytes,1,opt,name=toml_config,json=tomlConfig,proto3" json:"toml_config,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ValidateConfigResponse) Reset() { + *x = ValidateConfigResponse{} + mi := &file_api_manage_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ValidateConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ValidateConfigResponse) ProtoMessage() {} + +func (x *ValidateConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ValidateConfigResponse.ProtoReflect.Descriptor instead. +func (*ValidateConfigResponse) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{8} +} + +func (x *ValidateConfigResponse) GetTomlConfig() string { + if x != nil { + return x.TomlConfig + } + return "" +} + +type RunNetworkInstanceRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstId *common.UUID `protobuf:"bytes,1,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + Config *NetworkConfig `protobuf:"bytes,2,opt,name=config,proto3" json:"config,omitempty"` + Overwrite bool `protobuf:"varint,3,opt,name=overwrite,proto3" json:"overwrite,omitempty"` + Source ConfigSource `protobuf:"varint,4,opt,name=source,proto3,enum=api.manage.ConfigSource" json:"source,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RunNetworkInstanceRequest) Reset() { + *x = RunNetworkInstanceRequest{} + mi := &file_api_manage_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RunNetworkInstanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunNetworkInstanceRequest) ProtoMessage() {} + +func (x *RunNetworkInstanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunNetworkInstanceRequest.ProtoReflect.Descriptor instead. +func (*RunNetworkInstanceRequest) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{9} +} + +func (x *RunNetworkInstanceRequest) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +func (x *RunNetworkInstanceRequest) GetConfig() *NetworkConfig { + if x != nil { + return x.Config + } + return nil +} + +func (x *RunNetworkInstanceRequest) GetOverwrite() bool { + if x != nil { + return x.Overwrite + } + return false +} + +func (x *RunNetworkInstanceRequest) GetSource() ConfigSource { + if x != nil { + return x.Source + } + return ConfigSource_ConfigSourceUnspecified +} + +type RunNetworkInstanceResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstId *common.UUID `protobuf:"bytes,1,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RunNetworkInstanceResponse) Reset() { + *x = RunNetworkInstanceResponse{} + mi := &file_api_manage_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RunNetworkInstanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RunNetworkInstanceResponse) ProtoMessage() {} + +func (x *RunNetworkInstanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RunNetworkInstanceResponse.ProtoReflect.Descriptor instead. +func (*RunNetworkInstanceResponse) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{10} +} + +func (x *RunNetworkInstanceResponse) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +type RetainNetworkInstanceRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstIds []*common.UUID `protobuf:"bytes,1,rep,name=inst_ids,json=instIds,proto3" json:"inst_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RetainNetworkInstanceRequest) Reset() { + *x = RetainNetworkInstanceRequest{} + mi := &file_api_manage_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RetainNetworkInstanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RetainNetworkInstanceRequest) ProtoMessage() {} + +func (x *RetainNetworkInstanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RetainNetworkInstanceRequest.ProtoReflect.Descriptor instead. +func (*RetainNetworkInstanceRequest) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{11} +} + +func (x *RetainNetworkInstanceRequest) GetInstIds() []*common.UUID { + if x != nil { + return x.InstIds + } + return nil +} + +type RetainNetworkInstanceResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + RemainInstIds []*common.UUID `protobuf:"bytes,1,rep,name=remain_inst_ids,json=remainInstIds,proto3" json:"remain_inst_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RetainNetworkInstanceResponse) Reset() { + *x = RetainNetworkInstanceResponse{} + mi := &file_api_manage_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RetainNetworkInstanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RetainNetworkInstanceResponse) ProtoMessage() {} + +func (x *RetainNetworkInstanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RetainNetworkInstanceResponse.ProtoReflect.Descriptor instead. +func (*RetainNetworkInstanceResponse) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{12} +} + +func (x *RetainNetworkInstanceResponse) GetRemainInstIds() []*common.UUID { + if x != nil { + return x.RemainInstIds + } + return nil +} + +type CollectNetworkInfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstIds []*common.UUID `protobuf:"bytes,1,rep,name=inst_ids,json=instIds,proto3" json:"inst_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CollectNetworkInfoRequest) Reset() { + *x = CollectNetworkInfoRequest{} + mi := &file_api_manage_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CollectNetworkInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CollectNetworkInfoRequest) ProtoMessage() {} + +func (x *CollectNetworkInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CollectNetworkInfoRequest.ProtoReflect.Descriptor instead. +func (*CollectNetworkInfoRequest) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{13} +} + +func (x *CollectNetworkInfoRequest) GetInstIds() []*common.UUID { + if x != nil { + return x.InstIds + } + return nil +} + +type CollectNetworkInfoResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Info *NetworkInstanceRunningInfoMap `protobuf:"bytes,1,opt,name=info,proto3" json:"info,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *CollectNetworkInfoResponse) Reset() { + *x = CollectNetworkInfoResponse{} + mi := &file_api_manage_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *CollectNetworkInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CollectNetworkInfoResponse) ProtoMessage() {} + +func (x *CollectNetworkInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CollectNetworkInfoResponse.ProtoReflect.Descriptor instead. +func (*CollectNetworkInfoResponse) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{14} +} + +func (x *CollectNetworkInfoResponse) GetInfo() *NetworkInstanceRunningInfoMap { + if x != nil { + return x.Info + } + return nil +} + +type ListNetworkInstanceRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListNetworkInstanceRequest) Reset() { + *x = ListNetworkInstanceRequest{} + mi := &file_api_manage_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListNetworkInstanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListNetworkInstanceRequest) ProtoMessage() {} + +func (x *ListNetworkInstanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListNetworkInstanceRequest.ProtoReflect.Descriptor instead. +func (*ListNetworkInstanceRequest) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{15} +} + +type ListNetworkInstanceResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstIds []*common.UUID `protobuf:"bytes,1,rep,name=inst_ids,json=instIds,proto3" json:"inst_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListNetworkInstanceResponse) Reset() { + *x = ListNetworkInstanceResponse{} + mi := &file_api_manage_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListNetworkInstanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListNetworkInstanceResponse) ProtoMessage() {} + +func (x *ListNetworkInstanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListNetworkInstanceResponse.ProtoReflect.Descriptor instead. +func (*ListNetworkInstanceResponse) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{16} +} + +func (x *ListNetworkInstanceResponse) GetInstIds() []*common.UUID { + if x != nil { + return x.InstIds + } + return nil +} + +type DeleteNetworkInstanceRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstIds []*common.UUID `protobuf:"bytes,1,rep,name=inst_ids,json=instIds,proto3" json:"inst_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteNetworkInstanceRequest) Reset() { + *x = DeleteNetworkInstanceRequest{} + mi := &file_api_manage_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteNetworkInstanceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteNetworkInstanceRequest) ProtoMessage() {} + +func (x *DeleteNetworkInstanceRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteNetworkInstanceRequest.ProtoReflect.Descriptor instead. +func (*DeleteNetworkInstanceRequest) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{17} +} + +func (x *DeleteNetworkInstanceRequest) GetInstIds() []*common.UUID { + if x != nil { + return x.InstIds + } + return nil +} + +type DeleteNetworkInstanceResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + RemainInstIds []*common.UUID `protobuf:"bytes,1,rep,name=remain_inst_ids,json=remainInstIds,proto3" json:"remain_inst_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeleteNetworkInstanceResponse) Reset() { + *x = DeleteNetworkInstanceResponse{} + mi := &file_api_manage_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeleteNetworkInstanceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteNetworkInstanceResponse) ProtoMessage() {} + +func (x *DeleteNetworkInstanceResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteNetworkInstanceResponse.ProtoReflect.Descriptor instead. +func (*DeleteNetworkInstanceResponse) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{18} +} + +func (x *DeleteNetworkInstanceResponse) GetRemainInstIds() []*common.UUID { + if x != nil { + return x.RemainInstIds + } + return nil +} + +type GetNetworkInstanceConfigRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstId *common.UUID `protobuf:"bytes,1,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetNetworkInstanceConfigRequest) Reset() { + *x = GetNetworkInstanceConfigRequest{} + mi := &file_api_manage_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetNetworkInstanceConfigRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetNetworkInstanceConfigRequest) ProtoMessage() {} + +func (x *GetNetworkInstanceConfigRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetNetworkInstanceConfigRequest.ProtoReflect.Descriptor instead. +func (*GetNetworkInstanceConfigRequest) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{19} +} + +func (x *GetNetworkInstanceConfigRequest) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +type GetNetworkInstanceConfigResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Config *NetworkConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"` + Source ConfigSource `protobuf:"varint,2,opt,name=source,proto3,enum=api.manage.ConfigSource" json:"source,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetNetworkInstanceConfigResponse) Reset() { + *x = GetNetworkInstanceConfigResponse{} + mi := &file_api_manage_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetNetworkInstanceConfigResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetNetworkInstanceConfigResponse) ProtoMessage() {} + +func (x *GetNetworkInstanceConfigResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetNetworkInstanceConfigResponse.ProtoReflect.Descriptor instead. +func (*GetNetworkInstanceConfigResponse) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{20} +} + +func (x *GetNetworkInstanceConfigResponse) GetConfig() *NetworkConfig { + if x != nil { + return x.Config + } + return nil +} + +func (x *GetNetworkInstanceConfigResponse) GetSource() ConfigSource { + if x != nil { + return x.Source + } + return ConfigSource_ConfigSourceUnspecified +} + +type ListNetworkInstanceMetaRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + InstIds []*common.UUID `protobuf:"bytes,1,rep,name=inst_ids,json=instIds,proto3" json:"inst_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListNetworkInstanceMetaRequest) Reset() { + *x = ListNetworkInstanceMetaRequest{} + mi := &file_api_manage_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListNetworkInstanceMetaRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListNetworkInstanceMetaRequest) ProtoMessage() {} + +func (x *ListNetworkInstanceMetaRequest) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListNetworkInstanceMetaRequest.ProtoReflect.Descriptor instead. +func (*ListNetworkInstanceMetaRequest) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{21} +} + +func (x *ListNetworkInstanceMetaRequest) GetInstIds() []*common.UUID { + if x != nil { + return x.InstIds + } + return nil +} + +type ListNetworkInstanceMetaResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Metas []*NetworkMeta `protobuf:"bytes,1,rep,name=metas,proto3" json:"metas,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ListNetworkInstanceMetaResponse) Reset() { + *x = ListNetworkInstanceMetaResponse{} + mi := &file_api_manage_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ListNetworkInstanceMetaResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ListNetworkInstanceMetaResponse) ProtoMessage() {} + +func (x *ListNetworkInstanceMetaResponse) ProtoReflect() protoreflect.Message { + mi := &file_api_manage_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ListNetworkInstanceMetaResponse.ProtoReflect.Descriptor instead. +func (*ListNetworkInstanceMetaResponse) Descriptor() ([]byte, []int) { + return file_api_manage_proto_rawDescGZIP(), []int{22} +} + +func (x *ListNetworkInstanceMetaResponse) GetMetas() []*NetworkMeta { + if x != nil { + return x.Metas + } + return nil +} + +var File_api_manage_proto protoreflect.FileDescriptor + +const file_api_manage_proto_rawDesc = "" + + "\n" + + "\x10api_manage.proto\x12\n" + + "api.manage\x1a\fcommon.proto\x1a\x0epeer_rpc.proto\x1a\x12api_instance.proto\x1a\tacl.proto\"\xef!\n" + + "\rNetworkConfig\x12$\n" + + "\vinstance_id\x18\x01 \x01(\tH\x00R\n" + + "instanceId\x88\x01\x01\x12\x17\n" + + "\x04dhcp\x18\x02 \x01(\bH\x01R\x04dhcp\x88\x01\x01\x12&\n" + + "\fvirtual_ipv4\x18\x03 \x01(\tH\x02R\vvirtualIpv4\x88\x01\x01\x12*\n" + + "\x0enetwork_length\x18\x04 \x01(\x05H\x03R\rnetworkLength\x88\x01\x01\x12\x1f\n" + + "\bhostname\x18\x05 \x01(\tH\x04R\bhostname\x88\x01\x01\x12&\n" + + "\fnetwork_name\x18\x06 \x01(\tH\x05R\vnetworkName\x88\x01\x01\x12*\n" + + "\x0enetwork_secret\x18\a \x01(\tH\x06R\rnetworkSecret\x88\x01\x01\x12N\n" + + "\x11networking_method\x18\b \x01(\x0e2\x1c.api.manage.NetworkingMethodH\aR\x10networkingMethod\x88\x01\x01\x12/\n" + + "\x11public_server_url\x18\t \x01(\tH\bR\x0fpublicServerUrl\x88\x01\x01\x12\x1b\n" + + "\tpeer_urls\x18\n" + + " \x03(\tR\bpeerUrls\x12\x1f\n" + + "\vproxy_cidrs\x18\v \x03(\tR\n" + + "proxyCidrs\x12/\n" + + "\x11enable_vpn_portal\x18\f \x01(\bH\tR\x0fenableVpnPortal\x88\x01\x01\x128\n" + + "\x16vpn_portal_listen_port\x18\r \x01(\x05H\n" + + "R\x13vpnPortalListenPort\x88\x01\x01\x12G\n" + + "\x1evpn_portal_client_network_addr\x18\x0e \x01(\tH\vR\x1avpnPortalClientNetworkAddr\x88\x01\x01\x12E\n" + + "\x1dvpn_portal_client_network_len\x18\x0f \x01(\x05H\fR\x19vpnPortalClientNetworkLen\x88\x01\x01\x120\n" + + "\x11advanced_settings\x18\x10 \x01(\bH\rR\x10advancedSettings\x88\x01\x01\x12#\n" + + "\rlistener_urls\x18\x11 \x03(\tR\flistenerUrls\x12(\n" + + "\rlatency_first\x18\x13 \x01(\bH\x0eR\flatencyFirst\x88\x01\x01\x12\x1e\n" + + "\bdev_name\x18\x14 \x01(\tH\x0fR\adevName\x88\x01\x01\x12$\n" + + "\vuse_smoltcp\x18\x15 \x01(\bH\x10R\n" + + "useSmoltcp\x88\x01\x01\x12&\n" + + "\fdisable_ipv6\x18/ \x01(\bH\x11R\vdisableIpv6\x88\x01\x01\x12-\n" + + "\x10enable_kcp_proxy\x18\x16 \x01(\bH\x12R\x0eenableKcpProxy\x88\x01\x01\x12/\n" + + "\x11disable_kcp_input\x18\x17 \x01(\bH\x13R\x0fdisableKcpInput\x88\x01\x01\x12$\n" + + "\vdisable_p2p\x18\x18 \x01(\bH\x14R\n" + + "disableP2p\x88\x01\x01\x12$\n" + + "\vbind_device\x18\x19 \x01(\bH\x15R\n" + + "bindDevice\x88\x01\x01\x12\x1a\n" + + "\x06no_tun\x18\x1a \x01(\bH\x16R\x05noTun\x88\x01\x01\x12-\n" + + "\x10enable_exit_node\x18\x1b \x01(\bH\x17R\x0eenableExitNode\x88\x01\x01\x120\n" + + "\x12relay_all_peer_rpc\x18\x1c \x01(\bH\x18R\x0frelayAllPeerRpc\x88\x01\x01\x12&\n" + + "\fmulti_thread\x18\x1d \x01(\bH\x19R\vmultiThread\x88\x01\x01\x12H\n" + + "\x1eenable_relay_network_whitelist\x18\x1e \x01(\bH\x1aR\x1benableRelayNetworkWhitelist\x88\x01\x01\x126\n" + + "\x17relay_network_whitelist\x18\x1f \x03(\tR\x15relayNetworkWhitelist\x125\n" + + "\x14enable_manual_routes\x18 \x01(\bH\x1bR\x12enableManualRoutes\x88\x01\x01\x12\x16\n" + + "\x06routes\x18! \x03(\tR\x06routes\x12\x1d\n" + + "\n" + + "exit_nodes\x18\" \x03(\tR\texitNodes\x12:\n" + + "\x17proxy_forward_by_system\x18# \x01(\bH\x1cR\x14proxyForwardBySystem\x88\x01\x01\x122\n" + + "\x12disable_encryption\x18$ \x01(\bH\x1dR\x11disableEncryption\x88\x01\x01\x12(\n" + + "\renable_socks5\x18% \x01(\bH\x1eR\fenableSocks5\x88\x01\x01\x12$\n" + + "\vsocks5_port\x18& \x01(\x05H\x1fR\n" + + "socks5Port\x88\x01\x01\x12>\n" + + "\x19disable_udp_hole_punching\x18' \x01(\bH R\x16disableUdpHolePunching\x88\x01\x01\x12\x15\n" + + "\x03mtu\x18( \x01(\x05H!R\x03mtu\x88\x01\x01\x12)\n" + + "\x10mapped_listeners\x18) \x03(\tR\x0fmappedListeners\x12-\n" + + "\x10enable_magic_dns\x18* \x01(\bH\"R\x0eenableMagicDns\x88\x01\x01\x123\n" + + "\x13enable_private_mode\x18+ \x01(\bH#R\x11enablePrivateMode\x88\x01\x01\x12/\n" + + "\x11enable_quic_proxy\x18- \x01(\bH$R\x0fenableQuicProxy\x88\x01\x01\x121\n" + + "\x12disable_quic_input\x18. \x01(\bH%R\x10disableQuicInput\x88\x01\x01\x121\n" + + "\x10quic_listen_port\x182 \x01(\x05B\x02\x18\x01H&R\x0equicListenPort\x88\x01\x01\x12B\n" + + "\rport_forwards\x180 \x03(\v2\x1d.api.manage.PortForwardConfigR\fportForwards\x12>\n" + + "\x19disable_sym_hole_punching\x181 \x01(\bH'R\x16disableSymHolePunching\x88\x01\x01\x12\x1e\n" + + "\bp2p_only\x183 \x01(\bH(R\ap2pOnly\x88\x01\x01\x12L\n" + + "\x12data_compress_algo\x184 \x01(\x0e2\x19.common.CompressionAlgoPbH)R\x10dataCompressAlgo\x88\x01\x01\x126\n" + + "\x14encryption_algorithm\x185 \x01(\tH*R\x13encryptionAlgorithm\x88\x01\x01\x12>\n" + + "\x19disable_tcp_hole_punching\x186 \x01(\bH+R\x16disableTcpHolePunching\x88\x01\x01\x129\n" + + "\vsecure_mode\x187 \x01(\v2\x18.common.SecureModeConfigR\n" + + "secureMode\x12\x1f\n" + + "\x03acl\x188 \x01(\v2\b.acl.AclH,R\x03acl\x88\x01\x01\x12,\n" + + "\x0fcredential_file\x189 \x01(\tH-R\x0ecredentialFile\x88\x01\x01\x12\x1e\n" + + "\blazy_p2p\x18: \x01(\bH.R\alazyP2p\x88\x01\x01\x12\x1e\n" + + "\bneed_p2p\x18; \x01(\bH/R\aneedP2p\x88\x01\x01\x12:\n" + + "\x17instance_recv_bps_limit\x18< \x01(\x04H0R\x14instanceRecvBpsLimit\x88\x01\x01\x12&\n" + + "\fdisable_upnp\x18= \x01(\bH1R\vdisableUpnp\x88\x01\x01\x12>\n" + + "\x19ipv6_public_addr_provider\x18> \x01(\bH2R\x16ipv6PublicAddrProvider\x88\x01\x01\x126\n" + + "\x15ipv6_public_addr_auto\x18? \x01(\bH3R\x12ipv6PublicAddrAuto\x88\x01\x01\x12:\n" + + "\x17ipv6_public_addr_prefix\x18@ \x01(\tH4R\x14ipv6PublicAddrPrefix\x88\x01\x01\x121\n" + + "\x12disable_relay_data\x18A \x01(\bH5R\x10disableRelayData\x88\x01\x01\x12@\n" + + "\x1aenable_udp_broadcast_relay\x18B \x01(\bH6R\x17enableUdpBroadcastRelay\x88\x01\x01\x12$\n" + + "\vsocket_mark\x18C \x01(\rH7R\n" + + "socketMark\x88\x01\x01\x123\n" + + "\x05peers\x18D \x03(\v2\x1d.api.manage.NetworkPeerConfigR\x05peersB\x0e\n" + + "\f_instance_idB\a\n" + + "\x05_dhcpB\x0f\n" + + "\r_virtual_ipv4B\x11\n" + + "\x0f_network_lengthB\v\n" + + "\t_hostnameB\x0f\n" + + "\r_network_nameB\x11\n" + + "\x0f_network_secretB\x14\n" + + "\x12_networking_methodB\x14\n" + + "\x12_public_server_urlB\x14\n" + + "\x12_enable_vpn_portalB\x19\n" + + "\x17_vpn_portal_listen_portB!\n" + + "\x1f_vpn_portal_client_network_addrB \n" + + "\x1e_vpn_portal_client_network_lenB\x14\n" + + "\x12_advanced_settingsB\x10\n" + + "\x0e_latency_firstB\v\n" + + "\t_dev_nameB\x0e\n" + + "\f_use_smoltcpB\x0f\n" + + "\r_disable_ipv6B\x13\n" + + "\x11_enable_kcp_proxyB\x14\n" + + "\x12_disable_kcp_inputB\x0e\n" + + "\f_disable_p2pB\x0e\n" + + "\f_bind_deviceB\t\n" + + "\a_no_tunB\x13\n" + + "\x11_enable_exit_nodeB\x15\n" + + "\x13_relay_all_peer_rpcB\x0f\n" + + "\r_multi_threadB!\n" + + "\x1f_enable_relay_network_whitelistB\x17\n" + + "\x15_enable_manual_routesB\x1a\n" + + "\x18_proxy_forward_by_systemB\x15\n" + + "\x13_disable_encryptionB\x10\n" + + "\x0e_enable_socks5B\x0e\n" + + "\f_socks5_portB\x1c\n" + + "\x1a_disable_udp_hole_punchingB\x06\n" + + "\x04_mtuB\x13\n" + + "\x11_enable_magic_dnsB\x16\n" + + "\x14_enable_private_modeB\x14\n" + + "\x12_enable_quic_proxyB\x15\n" + + "\x13_disable_quic_inputB\x13\n" + + "\x11_quic_listen_portB\x1c\n" + + "\x1a_disable_sym_hole_punchingB\v\n" + + "\t_p2p_onlyB\x15\n" + + "\x13_data_compress_algoB\x17\n" + + "\x15_encryption_algorithmB\x1c\n" + + "\x1a_disable_tcp_hole_punchingB\x06\n" + + "\x04_aclB\x12\n" + + "\x10_credential_fileB\v\n" + + "\t_lazy_p2pB\v\n" + + "\t_need_p2pB\x1a\n" + + "\x18_instance_recv_bps_limitB\x0f\n" + + "\r_disable_upnpB\x1c\n" + + "\x1a_ipv6_public_addr_providerB\x18\n" + + "\x16_ipv6_public_addr_autoB\x1a\n" + + "\x18_ipv6_public_addr_prefixB\x15\n" + + "\x13_disable_relay_dataB\x1d\n" + + "\x1b_enable_udp_broadcast_relayB\x0e\n" + + "\f_socket_mark\"f\n" + + "\x11NetworkPeerConfig\x12\x10\n" + + "\x03uri\x18\x01 \x01(\tR\x03uri\x12+\n" + + "\x0fpeer_public_key\x18\x02 \x01(\tH\x00R\rpeerPublicKey\x88\x01\x01B\x12\n" + + "\x10_peer_public_key\"\x91\x01\n" + + "\x11PortForwardConfig\x12\x17\n" + + "\abind_ip\x18\x01 \x01(\tR\x06bindIp\x12\x1b\n" + + "\tbind_port\x18\x02 \x01(\rR\bbindPort\x12\x15\n" + + "\x06dst_ip\x18\x03 \x01(\tR\x05dstIp\x12\x19\n" + + "\bdst_port\x18\x04 \x01(\rR\adstPort\x12\x14\n" + + "\x05proto\x18\x05 \x01(\tR\x05proto\"\xd7\x02\n" + + "\n" + + "MyNodeInfo\x123\n" + + "\fvirtual_ipv4\x18\x01 \x01(\v2\x10.common.Ipv4InetR\vvirtualIpv4\x12\x1a\n" + + "\bhostname\x18\x02 \x01(\tR\bhostname\x12\x18\n" + + "\aversion\x18\x03 \x01(\tR\aversion\x12-\n" + + "\x03ips\x18\x04 \x01(\v2\x1b.peer_rpc.GetIpListResponseR\x03ips\x12-\n" + + "\tstun_info\x18\x05 \x01(\v2\x10.common.StunInfoR\bstunInfo\x12)\n" + + "\tlisteners\x18\x06 \x03(\v2\v.common.UrlR\tlisteners\x12)\n" + + "\x0evpn_portal_cfg\x18\a \x01(\tH\x00R\fvpnPortalCfg\x88\x01\x01\x12\x17\n" + + "\apeer_id\x18\b \x01(\rR\x06peerIdB\x11\n" + + "\x0f_vpn_portal_cfg\"\xd3\x03\n" + + "\x1aNetworkInstanceRunningInfo\x12\x19\n" + + "\bdev_name\x18\x01 \x01(\tR\adevName\x128\n" + + "\fmy_node_info\x18\x02 \x01(\v2\x16.api.manage.MyNodeInfoR\n" + + "myNodeInfo\x12\x16\n" + + "\x06events\x18\x03 \x03(\tR\x06events\x12+\n" + + "\x06routes\x18\x04 \x03(\v2\x13.api.instance.RouteR\x06routes\x12,\n" + + "\x05peers\x18\x05 \x03(\v2\x16.api.instance.PeerInfoR\x05peers\x12E\n" + + "\x10peer_route_pairs\x18\x06 \x03(\v2\x1b.api.instance.PeerRoutePairR\x0epeerRoutePairs\x12\x18\n" + + "\arunning\x18\a \x01(\bR\arunning\x12 \n" + + "\terror_msg\x18\b \x01(\tH\x00R\berrorMsg\x88\x01\x01\x12\\\n" + + "\x17foreign_network_summary\x18\t \x01(\v2$.peer_rpc.RouteForeignNetworkSummaryR\x15foreignNetworkSummaryB\f\n" + + "\n" + + "_error_msg\"\xc5\x01\n" + + "\x1dNetworkInstanceRunningInfoMap\x12D\n" + + "\x03map\x18\x01 \x03(\v22.api.manage.NetworkInstanceRunningInfoMap.MapEntryR\x03map\x1a^\n" + + "\bMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\tR\x03key\x12<\n" + + "\x05value\x18\x02 \x01(\v2&.api.manage.NetworkInstanceRunningInfoR\x05value:\x028\x01\"\xdb\x01\n" + + "\vNetworkMeta\x12%\n" + + "\ainst_id\x18\x01 \x01(\v2\f.common.UUIDR\x06instId\x12!\n" + + "\fnetwork_name\x18\x02 \x01(\tR\vnetworkName\x12+\n" + + "\x11config_permission\x18\x03 \x01(\rR\x10configPermission\x12#\n" + + "\rinstance_name\x18\x04 \x01(\tR\finstanceName\x120\n" + + "\x06source\x18\x05 \x01(\x0e2\x18.api.manage.ConfigSourceR\x06source\"J\n" + + "\x15ValidateConfigRequest\x121\n" + + "\x06config\x18\x01 \x01(\v2\x19.api.manage.NetworkConfigR\x06config\"9\n" + + "\x16ValidateConfigResponse\x12\x1f\n" + + "\vtoml_config\x18\x01 \x01(\tR\n" + + "tomlConfig\"\xc5\x01\n" + + "\x19RunNetworkInstanceRequest\x12%\n" + + "\ainst_id\x18\x01 \x01(\v2\f.common.UUIDR\x06instId\x121\n" + + "\x06config\x18\x02 \x01(\v2\x19.api.manage.NetworkConfigR\x06config\x12\x1c\n" + + "\toverwrite\x18\x03 \x01(\bR\toverwrite\x120\n" + + "\x06source\x18\x04 \x01(\x0e2\x18.api.manage.ConfigSourceR\x06source\"C\n" + + "\x1aRunNetworkInstanceResponse\x12%\n" + + "\ainst_id\x18\x01 \x01(\v2\f.common.UUIDR\x06instId\"G\n" + + "\x1cRetainNetworkInstanceRequest\x12'\n" + + "\binst_ids\x18\x01 \x03(\v2\f.common.UUIDR\ainstIds\"U\n" + + "\x1dRetainNetworkInstanceResponse\x124\n" + + "\x0fremain_inst_ids\x18\x01 \x03(\v2\f.common.UUIDR\rremainInstIds\"D\n" + + "\x19CollectNetworkInfoRequest\x12'\n" + + "\binst_ids\x18\x01 \x03(\v2\f.common.UUIDR\ainstIds\"[\n" + + "\x1aCollectNetworkInfoResponse\x12=\n" + + "\x04info\x18\x01 \x01(\v2).api.manage.NetworkInstanceRunningInfoMapR\x04info\"\x1c\n" + + "\x1aListNetworkInstanceRequest\"F\n" + + "\x1bListNetworkInstanceResponse\x12'\n" + + "\binst_ids\x18\x01 \x03(\v2\f.common.UUIDR\ainstIds\"G\n" + + "\x1cDeleteNetworkInstanceRequest\x12'\n" + + "\binst_ids\x18\x01 \x03(\v2\f.common.UUIDR\ainstIds\"U\n" + + "\x1dDeleteNetworkInstanceResponse\x124\n" + + "\x0fremain_inst_ids\x18\x01 \x03(\v2\f.common.UUIDR\rremainInstIds\"H\n" + + "\x1fGetNetworkInstanceConfigRequest\x12%\n" + + "\ainst_id\x18\x01 \x01(\v2\f.common.UUIDR\x06instId\"\x87\x01\n" + + " GetNetworkInstanceConfigResponse\x121\n" + + "\x06config\x18\x01 \x01(\v2\x19.api.manage.NetworkConfigR\x06config\x120\n" + + "\x06source\x18\x02 \x01(\x0e2\x18.api.manage.ConfigSourceR\x06source\"I\n" + + "\x1eListNetworkInstanceMetaRequest\x12'\n" + + "\binst_ids\x18\x01 \x03(\v2\f.common.UUIDR\ainstIds\"P\n" + + "\x1fListNetworkInstanceMetaResponse\x12-\n" + + "\x05metas\x18\x01 \x03(\v2\x17.api.manage.NetworkMetaR\x05metas*@\n" + + "\x10NetworkingMethod\x12\x10\n" + + "\fPublicServer\x10\x00\x12\n" + + "\n" + + "\x06Manual\x10\x01\x12\x0e\n" + + "\n" + + "Standalone\x10\x02*V\n" + + "\fConfigSource\x12\x1b\n" + + "\x17ConfigSourceUnspecified\x10\x00\x12\x14\n" + + "\x10ConfigSourceUser\x10\x01\x12\x13\n" + + "\x0fConfigSourceWeb\x10\x022\xf4\x06\n" + + "\x10WebClientService\x12Y\n" + + "\x0eValidateConfig\x12!.api.manage.ValidateConfigRequest\x1a\".api.manage.ValidateConfigResponse\"\x00\x12e\n" + + "\x12RunNetworkInstance\x12%.api.manage.RunNetworkInstanceRequest\x1a&.api.manage.RunNetworkInstanceResponse\"\x00\x12n\n" + + "\x15RetainNetworkInstance\x12(.api.manage.RetainNetworkInstanceRequest\x1a).api.manage.RetainNetworkInstanceResponse\"\x00\x12e\n" + + "\x12CollectNetworkInfo\x12%.api.manage.CollectNetworkInfoRequest\x1a&.api.manage.CollectNetworkInfoResponse\"\x00\x12h\n" + + "\x13ListNetworkInstance\x12&.api.manage.ListNetworkInstanceRequest\x1a'.api.manage.ListNetworkInstanceResponse\"\x00\x12n\n" + + "\x15DeleteNetworkInstance\x12(.api.manage.DeleteNetworkInstanceRequest\x1a).api.manage.DeleteNetworkInstanceResponse\"\x00\x12w\n" + + "\x18GetNetworkInstanceConfig\x12+.api.manage.GetNetworkInstanceConfigRequest\x1a,.api.manage.GetNetworkInstanceConfigResponse\"\x00\x12t\n" + + "\x17ListNetworkInstanceMeta\x12*.api.manage.ListNetworkInstanceMetaRequest\x1a+.api.manage.ListNetworkInstanceMetaResponse\"\x00b\x06proto3" + +var ( + file_api_manage_proto_rawDescOnce sync.Once + file_api_manage_proto_rawDescData []byte +) + +func file_api_manage_proto_rawDescGZIP() []byte { + file_api_manage_proto_rawDescOnce.Do(func() { + file_api_manage_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_api_manage_proto_rawDesc), len(file_api_manage_proto_rawDesc))) + }) + return file_api_manage_proto_rawDescData +} + +var file_api_manage_proto_enumTypes = make([]protoimpl.EnumInfo, 2) +var file_api_manage_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_api_manage_proto_goTypes = []any{ + (NetworkingMethod)(0), // 0: api.manage.NetworkingMethod + (ConfigSource)(0), // 1: api.manage.ConfigSource + (*NetworkConfig)(nil), // 2: api.manage.NetworkConfig + (*NetworkPeerConfig)(nil), // 3: api.manage.NetworkPeerConfig + (*PortForwardConfig)(nil), // 4: api.manage.PortForwardConfig + (*MyNodeInfo)(nil), // 5: api.manage.MyNodeInfo + (*NetworkInstanceRunningInfo)(nil), // 6: api.manage.NetworkInstanceRunningInfo + (*NetworkInstanceRunningInfoMap)(nil), // 7: api.manage.NetworkInstanceRunningInfoMap + (*NetworkMeta)(nil), // 8: api.manage.NetworkMeta + (*ValidateConfigRequest)(nil), // 9: api.manage.ValidateConfigRequest + (*ValidateConfigResponse)(nil), // 10: api.manage.ValidateConfigResponse + (*RunNetworkInstanceRequest)(nil), // 11: api.manage.RunNetworkInstanceRequest + (*RunNetworkInstanceResponse)(nil), // 12: api.manage.RunNetworkInstanceResponse + (*RetainNetworkInstanceRequest)(nil), // 13: api.manage.RetainNetworkInstanceRequest + (*RetainNetworkInstanceResponse)(nil), // 14: api.manage.RetainNetworkInstanceResponse + (*CollectNetworkInfoRequest)(nil), // 15: api.manage.CollectNetworkInfoRequest + (*CollectNetworkInfoResponse)(nil), // 16: api.manage.CollectNetworkInfoResponse + (*ListNetworkInstanceRequest)(nil), // 17: api.manage.ListNetworkInstanceRequest + (*ListNetworkInstanceResponse)(nil), // 18: api.manage.ListNetworkInstanceResponse + (*DeleteNetworkInstanceRequest)(nil), // 19: api.manage.DeleteNetworkInstanceRequest + (*DeleteNetworkInstanceResponse)(nil), // 20: api.manage.DeleteNetworkInstanceResponse + (*GetNetworkInstanceConfigRequest)(nil), // 21: api.manage.GetNetworkInstanceConfigRequest + (*GetNetworkInstanceConfigResponse)(nil), // 22: api.manage.GetNetworkInstanceConfigResponse + (*ListNetworkInstanceMetaRequest)(nil), // 23: api.manage.ListNetworkInstanceMetaRequest + (*ListNetworkInstanceMetaResponse)(nil), // 24: api.manage.ListNetworkInstanceMetaResponse + nil, // 25: api.manage.NetworkInstanceRunningInfoMap.MapEntry + (common.CompressionAlgoPb)(0), // 26: common.CompressionAlgoPb + (*common.SecureModeConfig)(nil), // 27: common.SecureModeConfig + (*acl.Acl)(nil), // 28: acl.Acl + (*common.Ipv4Inet)(nil), // 29: common.Ipv4Inet + (*peer_rpc.GetIpListResponse)(nil), // 30: peer_rpc.GetIpListResponse + (*common.StunInfo)(nil), // 31: common.StunInfo + (*common.Url)(nil), // 32: common.Url + (*instance.Route)(nil), // 33: api.instance.Route + (*instance.PeerInfo)(nil), // 34: api.instance.PeerInfo + (*instance.PeerRoutePair)(nil), // 35: api.instance.PeerRoutePair + (*peer_rpc.RouteForeignNetworkSummary)(nil), // 36: peer_rpc.RouteForeignNetworkSummary + (*common.UUID)(nil), // 37: common.UUID +} +var file_api_manage_proto_depIdxs = []int32{ + 0, // 0: api.manage.NetworkConfig.networking_method:type_name -> api.manage.NetworkingMethod + 4, // 1: api.manage.NetworkConfig.port_forwards:type_name -> api.manage.PortForwardConfig + 26, // 2: api.manage.NetworkConfig.data_compress_algo:type_name -> common.CompressionAlgoPb + 27, // 3: api.manage.NetworkConfig.secure_mode:type_name -> common.SecureModeConfig + 28, // 4: api.manage.NetworkConfig.acl:type_name -> acl.Acl + 3, // 5: api.manage.NetworkConfig.peers:type_name -> api.manage.NetworkPeerConfig + 29, // 6: api.manage.MyNodeInfo.virtual_ipv4:type_name -> common.Ipv4Inet + 30, // 7: api.manage.MyNodeInfo.ips:type_name -> peer_rpc.GetIpListResponse + 31, // 8: api.manage.MyNodeInfo.stun_info:type_name -> common.StunInfo + 32, // 9: api.manage.MyNodeInfo.listeners:type_name -> common.Url + 5, // 10: api.manage.NetworkInstanceRunningInfo.my_node_info:type_name -> api.manage.MyNodeInfo + 33, // 11: api.manage.NetworkInstanceRunningInfo.routes:type_name -> api.instance.Route + 34, // 12: api.manage.NetworkInstanceRunningInfo.peers:type_name -> api.instance.PeerInfo + 35, // 13: api.manage.NetworkInstanceRunningInfo.peer_route_pairs:type_name -> api.instance.PeerRoutePair + 36, // 14: api.manage.NetworkInstanceRunningInfo.foreign_network_summary:type_name -> peer_rpc.RouteForeignNetworkSummary + 25, // 15: api.manage.NetworkInstanceRunningInfoMap.map:type_name -> api.manage.NetworkInstanceRunningInfoMap.MapEntry + 37, // 16: api.manage.NetworkMeta.inst_id:type_name -> common.UUID + 1, // 17: api.manage.NetworkMeta.source:type_name -> api.manage.ConfigSource + 2, // 18: api.manage.ValidateConfigRequest.config:type_name -> api.manage.NetworkConfig + 37, // 19: api.manage.RunNetworkInstanceRequest.inst_id:type_name -> common.UUID + 2, // 20: api.manage.RunNetworkInstanceRequest.config:type_name -> api.manage.NetworkConfig + 1, // 21: api.manage.RunNetworkInstanceRequest.source:type_name -> api.manage.ConfigSource + 37, // 22: api.manage.RunNetworkInstanceResponse.inst_id:type_name -> common.UUID + 37, // 23: api.manage.RetainNetworkInstanceRequest.inst_ids:type_name -> common.UUID + 37, // 24: api.manage.RetainNetworkInstanceResponse.remain_inst_ids:type_name -> common.UUID + 37, // 25: api.manage.CollectNetworkInfoRequest.inst_ids:type_name -> common.UUID + 7, // 26: api.manage.CollectNetworkInfoResponse.info:type_name -> api.manage.NetworkInstanceRunningInfoMap + 37, // 27: api.manage.ListNetworkInstanceResponse.inst_ids:type_name -> common.UUID + 37, // 28: api.manage.DeleteNetworkInstanceRequest.inst_ids:type_name -> common.UUID + 37, // 29: api.manage.DeleteNetworkInstanceResponse.remain_inst_ids:type_name -> common.UUID + 37, // 30: api.manage.GetNetworkInstanceConfigRequest.inst_id:type_name -> common.UUID + 2, // 31: api.manage.GetNetworkInstanceConfigResponse.config:type_name -> api.manage.NetworkConfig + 1, // 32: api.manage.GetNetworkInstanceConfigResponse.source:type_name -> api.manage.ConfigSource + 37, // 33: api.manage.ListNetworkInstanceMetaRequest.inst_ids:type_name -> common.UUID + 8, // 34: api.manage.ListNetworkInstanceMetaResponse.metas:type_name -> api.manage.NetworkMeta + 6, // 35: api.manage.NetworkInstanceRunningInfoMap.MapEntry.value:type_name -> api.manage.NetworkInstanceRunningInfo + 9, // 36: api.manage.WebClientService.ValidateConfig:input_type -> api.manage.ValidateConfigRequest + 11, // 37: api.manage.WebClientService.RunNetworkInstance:input_type -> api.manage.RunNetworkInstanceRequest + 13, // 38: api.manage.WebClientService.RetainNetworkInstance:input_type -> api.manage.RetainNetworkInstanceRequest + 15, // 39: api.manage.WebClientService.CollectNetworkInfo:input_type -> api.manage.CollectNetworkInfoRequest + 17, // 40: api.manage.WebClientService.ListNetworkInstance:input_type -> api.manage.ListNetworkInstanceRequest + 19, // 41: api.manage.WebClientService.DeleteNetworkInstance:input_type -> api.manage.DeleteNetworkInstanceRequest + 21, // 42: api.manage.WebClientService.GetNetworkInstanceConfig:input_type -> api.manage.GetNetworkInstanceConfigRequest + 23, // 43: api.manage.WebClientService.ListNetworkInstanceMeta:input_type -> api.manage.ListNetworkInstanceMetaRequest + 10, // 44: api.manage.WebClientService.ValidateConfig:output_type -> api.manage.ValidateConfigResponse + 12, // 45: api.manage.WebClientService.RunNetworkInstance:output_type -> api.manage.RunNetworkInstanceResponse + 14, // 46: api.manage.WebClientService.RetainNetworkInstance:output_type -> api.manage.RetainNetworkInstanceResponse + 16, // 47: api.manage.WebClientService.CollectNetworkInfo:output_type -> api.manage.CollectNetworkInfoResponse + 18, // 48: api.manage.WebClientService.ListNetworkInstance:output_type -> api.manage.ListNetworkInstanceResponse + 20, // 49: api.manage.WebClientService.DeleteNetworkInstance:output_type -> api.manage.DeleteNetworkInstanceResponse + 22, // 50: api.manage.WebClientService.GetNetworkInstanceConfig:output_type -> api.manage.GetNetworkInstanceConfigResponse + 24, // 51: api.manage.WebClientService.ListNetworkInstanceMeta:output_type -> api.manage.ListNetworkInstanceMetaResponse + 44, // [44:52] is the sub-list for method output_type + 36, // [36:44] is the sub-list for method input_type + 36, // [36:36] is the sub-list for extension type_name + 36, // [36:36] is the sub-list for extension extendee + 0, // [0:36] is the sub-list for field type_name +} + +func init() { file_api_manage_proto_init() } +func file_api_manage_proto_init() { + if File_api_manage_proto != nil { + return + } + file_api_manage_proto_msgTypes[0].OneofWrappers = []any{} + file_api_manage_proto_msgTypes[1].OneofWrappers = []any{} + file_api_manage_proto_msgTypes[3].OneofWrappers = []any{} + file_api_manage_proto_msgTypes[4].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_api_manage_proto_rawDesc), len(file_api_manage_proto_rawDesc)), + NumEnums: 2, + NumMessages: 24, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_api_manage_proto_goTypes, + DependencyIndexes: file_api_manage_proto_depIdxs, + EnumInfos: file_api_manage_proto_enumTypes, + MessageInfos: file_api_manage_proto_msgTypes, + }.Build() + File_api_manage_proto = out.File + file_api_manage_proto_goTypes = nil + file_api_manage_proto_depIdxs = nil +} diff --git a/easytier-go/proto/common/common.pb.go b/easytier-go/proto/common/common.pb.go new file mode 100644 index 00000000..dd7622e3 --- /dev/null +++ b/easytier-go/proto/common/common.pb.go @@ -0,0 +1,2532 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.35.1 +// source: common.proto + +package common + +import ( + error1 "github.com/EasyTier/EasyTier/easytier-go/proto/error" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type CompressionAlgoPb int32 + +const ( + CompressionAlgoPb_Invalid CompressionAlgoPb = 0 + CompressionAlgoPb_None CompressionAlgoPb = 1 + CompressionAlgoPb_Zstd CompressionAlgoPb = 2 +) + +// Enum value maps for CompressionAlgoPb. +var ( + CompressionAlgoPb_name = map[int32]string{ + 0: "Invalid", + 1: "None", + 2: "Zstd", + } + CompressionAlgoPb_value = map[string]int32{ + "Invalid": 0, + "None": 1, + "Zstd": 2, + } +) + +func (x CompressionAlgoPb) Enum() *CompressionAlgoPb { + p := new(CompressionAlgoPb) + *p = x + return p +} + +func (x CompressionAlgoPb) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CompressionAlgoPb) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[0].Descriptor() +} + +func (CompressionAlgoPb) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[0] +} + +func (x CompressionAlgoPb) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CompressionAlgoPb.Descriptor instead. +func (CompressionAlgoPb) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{0} +} + +type NatType int32 + +const ( + // has NAT; but own a single public IP, port is not changed + NatType_Unknown NatType = 0 + NatType_OpenInternet NatType = 1 + NatType_NoPAT NatType = 2 + NatType_FullCone NatType = 3 + NatType_Restricted NatType = 4 + NatType_PortRestricted NatType = 5 + NatType_Symmetric NatType = 6 + NatType_SymUdpFirewall NatType = 7 + NatType_SymmetricEasyInc NatType = 8 + NatType_SymmetricEasyDec NatType = 9 +) + +// Enum value maps for NatType. +var ( + NatType_name = map[int32]string{ + 0: "Unknown", + 1: "OpenInternet", + 2: "NoPAT", + 3: "FullCone", + 4: "Restricted", + 5: "PortRestricted", + 6: "Symmetric", + 7: "SymUdpFirewall", + 8: "SymmetricEasyInc", + 9: "SymmetricEasyDec", + } + NatType_value = map[string]int32{ + "Unknown": 0, + "OpenInternet": 1, + "NoPAT": 2, + "FullCone": 3, + "Restricted": 4, + "PortRestricted": 5, + "Symmetric": 6, + "SymUdpFirewall": 7, + "SymmetricEasyInc": 8, + "SymmetricEasyDec": 9, + } +) + +func (x NatType) Enum() *NatType { + p := new(NatType) + *p = x + return p +} + +func (x NatType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (NatType) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[1].Descriptor() +} + +func (NatType) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[1] +} + +func (x NatType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use NatType.Descriptor instead. +func (NatType) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{1} +} + +type SocketType int32 + +const ( + SocketType_TCP SocketType = 0 + SocketType_UDP SocketType = 1 +) + +// Enum value maps for SocketType. +var ( + SocketType_name = map[int32]string{ + 0: "TCP", + 1: "UDP", + } + SocketType_value = map[string]int32{ + "TCP": 0, + "UDP": 1, + } +) + +func (x SocketType) Enum() *SocketType { + p := new(SocketType) + *p = x + return p +} + +func (x SocketType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SocketType) Descriptor() protoreflect.EnumDescriptor { + return file_common_proto_enumTypes[2].Descriptor() +} + +func (SocketType) Type() protoreflect.EnumType { + return &file_common_proto_enumTypes[2] +} + +func (x SocketType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SocketType.Descriptor instead. +func (SocketType) EnumDescriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{2} +} + +type FlagsInConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + DefaultProtocol string `protobuf:"bytes,1,opt,name=default_protocol,json=defaultProtocol,proto3" json:"default_protocol,omitempty"` + DevName string `protobuf:"bytes,2,opt,name=dev_name,json=devName,proto3" json:"dev_name,omitempty"` + EnableEncryption bool `protobuf:"varint,3,opt,name=enable_encryption,json=enableEncryption,proto3" json:"enable_encryption,omitempty"` + EnableIpv6 bool `protobuf:"varint,4,opt,name=enable_ipv6,json=enableIpv6,proto3" json:"enable_ipv6,omitempty"` + Mtu uint32 `protobuf:"varint,5,opt,name=mtu,proto3" json:"mtu,omitempty"` + LatencyFirst bool `protobuf:"varint,6,opt,name=latency_first,json=latencyFirst,proto3" json:"latency_first,omitempty"` + EnableExitNode bool `protobuf:"varint,7,opt,name=enable_exit_node,json=enableExitNode,proto3" json:"enable_exit_node,omitempty"` + NoTun bool `protobuf:"varint,8,opt,name=no_tun,json=noTun,proto3" json:"no_tun,omitempty"` + UseSmoltcp bool `protobuf:"varint,9,opt,name=use_smoltcp,json=useSmoltcp,proto3" json:"use_smoltcp,omitempty"` + RelayNetworkWhitelist string `protobuf:"bytes,10,opt,name=relay_network_whitelist,json=relayNetworkWhitelist,proto3" json:"relay_network_whitelist,omitempty"` + DisableP2P bool `protobuf:"varint,11,opt,name=disable_p2p,json=disableP2p,proto3" json:"disable_p2p,omitempty"` + RelayAllPeerRpc bool `protobuf:"varint,12,opt,name=relay_all_peer_rpc,json=relayAllPeerRpc,proto3" json:"relay_all_peer_rpc,omitempty"` + DisableUdpHolePunching bool `protobuf:"varint,13,opt,name=disable_udp_hole_punching,json=disableUdpHolePunching,proto3" json:"disable_udp_hole_punching,omitempty"` + // string ipv6_listener = 14; [deprecated = true]; use -l udp://[::]:12345 + // instead + MultiThread bool `protobuf:"varint,15,opt,name=multi_thread,json=multiThread,proto3" json:"multi_thread,omitempty"` + DataCompressAlgo CompressionAlgoPb `protobuf:"varint,16,opt,name=data_compress_algo,json=dataCompressAlgo,proto3,enum=common.CompressionAlgoPb" json:"data_compress_algo,omitempty"` + BindDevice bool `protobuf:"varint,17,opt,name=bind_device,json=bindDevice,proto3" json:"bind_device,omitempty"` + // should we convert all tcp streams into kcp streams + EnableKcpProxy bool `protobuf:"varint,18,opt,name=enable_kcp_proxy,json=enableKcpProxy,proto3" json:"enable_kcp_proxy,omitempty"` + // does this peer allow kcp input + DisableKcpInput bool `protobuf:"varint,19,opt,name=disable_kcp_input,json=disableKcpInput,proto3" json:"disable_kcp_input,omitempty"` + // disable relay local network kcp packets + DisableRelayKcp bool `protobuf:"varint,20,opt,name=disable_relay_kcp,json=disableRelayKcp,proto3" json:"disable_relay_kcp,omitempty"` + ProxyForwardBySystem bool `protobuf:"varint,21,opt,name=proxy_forward_by_system,json=proxyForwardBySystem,proto3" json:"proxy_forward_by_system,omitempty"` + // enable magic dns or not + AcceptDns bool `protobuf:"varint,22,opt,name=accept_dns,json=acceptDns,proto3" json:"accept_dns,omitempty"` + // enable private mode + PrivateMode bool `protobuf:"varint,23,opt,name=private_mode,json=privateMode,proto3" json:"private_mode,omitempty"` + // should we convert all tcp streams into quic streams + EnableQuicProxy bool `protobuf:"varint,24,opt,name=enable_quic_proxy,json=enableQuicProxy,proto3" json:"enable_quic_proxy,omitempty"` + // does this peer allow quic input + DisableQuicInput bool `protobuf:"varint,25,opt,name=disable_quic_input,json=disableQuicInput,proto3" json:"disable_quic_input,omitempty"` + // disable relay local network quic packets + DisableRelayQuic bool `protobuf:"varint,35,opt,name=disable_relay_quic,json=disableRelayQuic,proto3" json:"disable_relay_quic,omitempty"` + // quic listen port + // + // Deprecated: Marked as deprecated in common.proto. + QuicListenPort uint32 `protobuf:"varint,33,opt,name=quic_listen_port,json=quicListenPort,proto3" json:"quic_listen_port,omitempty"` + // a global relay limit, only work for foreign network + ForeignRelayBpsLimit uint64 `protobuf:"varint,26,opt,name=foreign_relay_bps_limit,json=foreignRelayBpsLimit,proto3" json:"foreign_relay_bps_limit,omitempty"` + MultiThreadCount uint32 `protobuf:"varint,27,opt,name=multi_thread_count,json=multiThreadCount,proto3" json:"multi_thread_count,omitempty"` + // enable relay foreign network kcp packets + EnableRelayForeignNetworkKcp bool `protobuf:"varint,28,opt,name=enable_relay_foreign_network_kcp,json=enableRelayForeignNetworkKcp,proto3" json:"enable_relay_foreign_network_kcp,omitempty"` + // enable relay foreign network quic packets + EnableRelayForeignNetworkQuic bool `protobuf:"varint,36,opt,name=enable_relay_foreign_network_quic,json=enableRelayForeignNetworkQuic,proto3" json:"enable_relay_foreign_network_quic,omitempty"` + // encryption algorithm to use, empty string means default (aes-gcm) + EncryptionAlgorithm string `protobuf:"bytes,29,opt,name=encryption_algorithm,json=encryptionAlgorithm,proto3" json:"encryption_algorithm,omitempty"` + // disable symmetric nat hole punching, treat symmetric as cone when enabled + DisableSymHolePunching bool `protobuf:"varint,30,opt,name=disable_sym_hole_punching,json=disableSymHolePunching,proto3" json:"disable_sym_hole_punching,omitempty"` + // tld dns zone for magic dns + TldDnsZone string `protobuf:"bytes,31,opt,name=tld_dns_zone,json=tldDnsZone,proto3" json:"tld_dns_zone,omitempty"` + P2POnly bool `protobuf:"varint,32,opt,name=p2p_only,json=p2pOnly,proto3" json:"p2p_only,omitempty"` + DisableTcpHolePunching bool `protobuf:"varint,34,opt,name=disable_tcp_hole_punching,json=disableTcpHolePunching,proto3" json:"disable_tcp_hole_punching,omitempty"` + LazyP2P bool `protobuf:"varint,37,opt,name=lazy_p2p,json=lazyP2p,proto3" json:"lazy_p2p,omitempty"` + NeedP2P bool `protobuf:"varint,38,opt,name=need_p2p,json=needP2p,proto3" json:"need_p2p,omitempty"` + InstanceRecvBpsLimit uint64 `protobuf:"varint,39,opt,name=instance_recv_bps_limit,json=instanceRecvBpsLimit,proto3" json:"instance_recv_bps_limit,omitempty"` + DisableUpnp bool `protobuf:"varint,40,opt,name=disable_upnp,json=disableUpnp,proto3" json:"disable_upnp,omitempty"` + DisableRelayData bool `protobuf:"varint,41,opt,name=disable_relay_data,json=disableRelayData,proto3" json:"disable_relay_data,omitempty"` + EnableUdpBroadcastRelay bool `protobuf:"varint,42,opt,name=enable_udp_broadcast_relay,json=enableUdpBroadcastRelay,proto3" json:"enable_udp_broadcast_relay,omitempty"` + // Linux-only: SO_MARK (fwmark) value applied to every outbound underlay + // socket (TCP/UDP/QUIC/WS/WG connectors and listeners). Unset = leave + // SO_MARK untouched (kernel default 0). Any set value (including 0) is + // applied via setsockopt. Requires CAP_NET_ADMIN; silently ignored on + // non-Linux platforms. + SocketMark *uint32 `protobuf:"varint,43,opt,name=socket_mark,json=socketMark,proto3,oneof" json:"socket_mark,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *FlagsInConfig) Reset() { + *x = FlagsInConfig{} + mi := &file_common_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *FlagsInConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FlagsInConfig) ProtoMessage() {} + +func (x *FlagsInConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FlagsInConfig.ProtoReflect.Descriptor instead. +func (*FlagsInConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{0} +} + +func (x *FlagsInConfig) GetDefaultProtocol() string { + if x != nil { + return x.DefaultProtocol + } + return "" +} + +func (x *FlagsInConfig) GetDevName() string { + if x != nil { + return x.DevName + } + return "" +} + +func (x *FlagsInConfig) GetEnableEncryption() bool { + if x != nil { + return x.EnableEncryption + } + return false +} + +func (x *FlagsInConfig) GetEnableIpv6() bool { + if x != nil { + return x.EnableIpv6 + } + return false +} + +func (x *FlagsInConfig) GetMtu() uint32 { + if x != nil { + return x.Mtu + } + return 0 +} + +func (x *FlagsInConfig) GetLatencyFirst() bool { + if x != nil { + return x.LatencyFirst + } + return false +} + +func (x *FlagsInConfig) GetEnableExitNode() bool { + if x != nil { + return x.EnableExitNode + } + return false +} + +func (x *FlagsInConfig) GetNoTun() bool { + if x != nil { + return x.NoTun + } + return false +} + +func (x *FlagsInConfig) GetUseSmoltcp() bool { + if x != nil { + return x.UseSmoltcp + } + return false +} + +func (x *FlagsInConfig) GetRelayNetworkWhitelist() string { + if x != nil { + return x.RelayNetworkWhitelist + } + return "" +} + +func (x *FlagsInConfig) GetDisableP2P() bool { + if x != nil { + return x.DisableP2P + } + return false +} + +func (x *FlagsInConfig) GetRelayAllPeerRpc() bool { + if x != nil { + return x.RelayAllPeerRpc + } + return false +} + +func (x *FlagsInConfig) GetDisableUdpHolePunching() bool { + if x != nil { + return x.DisableUdpHolePunching + } + return false +} + +func (x *FlagsInConfig) GetMultiThread() bool { + if x != nil { + return x.MultiThread + } + return false +} + +func (x *FlagsInConfig) GetDataCompressAlgo() CompressionAlgoPb { + if x != nil { + return x.DataCompressAlgo + } + return CompressionAlgoPb_Invalid +} + +func (x *FlagsInConfig) GetBindDevice() bool { + if x != nil { + return x.BindDevice + } + return false +} + +func (x *FlagsInConfig) GetEnableKcpProxy() bool { + if x != nil { + return x.EnableKcpProxy + } + return false +} + +func (x *FlagsInConfig) GetDisableKcpInput() bool { + if x != nil { + return x.DisableKcpInput + } + return false +} + +func (x *FlagsInConfig) GetDisableRelayKcp() bool { + if x != nil { + return x.DisableRelayKcp + } + return false +} + +func (x *FlagsInConfig) GetProxyForwardBySystem() bool { + if x != nil { + return x.ProxyForwardBySystem + } + return false +} + +func (x *FlagsInConfig) GetAcceptDns() bool { + if x != nil { + return x.AcceptDns + } + return false +} + +func (x *FlagsInConfig) GetPrivateMode() bool { + if x != nil { + return x.PrivateMode + } + return false +} + +func (x *FlagsInConfig) GetEnableQuicProxy() bool { + if x != nil { + return x.EnableQuicProxy + } + return false +} + +func (x *FlagsInConfig) GetDisableQuicInput() bool { + if x != nil { + return x.DisableQuicInput + } + return false +} + +func (x *FlagsInConfig) GetDisableRelayQuic() bool { + if x != nil { + return x.DisableRelayQuic + } + return false +} + +// Deprecated: Marked as deprecated in common.proto. +func (x *FlagsInConfig) GetQuicListenPort() uint32 { + if x != nil { + return x.QuicListenPort + } + return 0 +} + +func (x *FlagsInConfig) GetForeignRelayBpsLimit() uint64 { + if x != nil { + return x.ForeignRelayBpsLimit + } + return 0 +} + +func (x *FlagsInConfig) GetMultiThreadCount() uint32 { + if x != nil { + return x.MultiThreadCount + } + return 0 +} + +func (x *FlagsInConfig) GetEnableRelayForeignNetworkKcp() bool { + if x != nil { + return x.EnableRelayForeignNetworkKcp + } + return false +} + +func (x *FlagsInConfig) GetEnableRelayForeignNetworkQuic() bool { + if x != nil { + return x.EnableRelayForeignNetworkQuic + } + return false +} + +func (x *FlagsInConfig) GetEncryptionAlgorithm() string { + if x != nil { + return x.EncryptionAlgorithm + } + return "" +} + +func (x *FlagsInConfig) GetDisableSymHolePunching() bool { + if x != nil { + return x.DisableSymHolePunching + } + return false +} + +func (x *FlagsInConfig) GetTldDnsZone() string { + if x != nil { + return x.TldDnsZone + } + return "" +} + +func (x *FlagsInConfig) GetP2POnly() bool { + if x != nil { + return x.P2POnly + } + return false +} + +func (x *FlagsInConfig) GetDisableTcpHolePunching() bool { + if x != nil { + return x.DisableTcpHolePunching + } + return false +} + +func (x *FlagsInConfig) GetLazyP2P() bool { + if x != nil { + return x.LazyP2P + } + return false +} + +func (x *FlagsInConfig) GetNeedP2P() bool { + if x != nil { + return x.NeedP2P + } + return false +} + +func (x *FlagsInConfig) GetInstanceRecvBpsLimit() uint64 { + if x != nil { + return x.InstanceRecvBpsLimit + } + return 0 +} + +func (x *FlagsInConfig) GetDisableUpnp() bool { + if x != nil { + return x.DisableUpnp + } + return false +} + +func (x *FlagsInConfig) GetDisableRelayData() bool { + if x != nil { + return x.DisableRelayData + } + return false +} + +func (x *FlagsInConfig) GetEnableUdpBroadcastRelay() bool { + if x != nil { + return x.EnableUdpBroadcastRelay + } + return false +} + +func (x *FlagsInConfig) GetSocketMark() uint32 { + if x != nil && x.SocketMark != nil { + return *x.SocketMark + } + return 0 +} + +type RpcDescriptor struct { + state protoimpl.MessageState `protogen:"open.v1"` + // allow same service registered multiple times in different domain + DomainName string `protobuf:"bytes,1,opt,name=domain_name,json=domainName,proto3" json:"domain_name,omitempty"` + ProtoName string `protobuf:"bytes,2,opt,name=proto_name,json=protoName,proto3" json:"proto_name,omitempty"` + ServiceName string `protobuf:"bytes,3,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + MethodIndex uint32 `protobuf:"varint,4,opt,name=method_index,json=methodIndex,proto3" json:"method_index,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RpcDescriptor) Reset() { + *x = RpcDescriptor{} + mi := &file_common_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RpcDescriptor) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RpcDescriptor) ProtoMessage() {} + +func (x *RpcDescriptor) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RpcDescriptor.ProtoReflect.Descriptor instead. +func (*RpcDescriptor) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{1} +} + +func (x *RpcDescriptor) GetDomainName() string { + if x != nil { + return x.DomainName + } + return "" +} + +func (x *RpcDescriptor) GetProtoName() string { + if x != nil { + return x.ProtoName + } + return "" +} + +func (x *RpcDescriptor) GetServiceName() string { + if x != nil { + return x.ServiceName + } + return "" +} + +func (x *RpcDescriptor) GetMethodIndex() uint32 { + if x != nil { + return x.MethodIndex + } + return 0 +} + +type RpcRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Deprecated: Marked as deprecated in common.proto. + Descriptor_ *RpcDescriptor `protobuf:"bytes,1,opt,name=descriptor,proto3" json:"descriptor,omitempty"` + Request []byte `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + TimeoutMs int32 `protobuf:"varint,3,opt,name=timeout_ms,json=timeoutMs,proto3" json:"timeout_ms,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RpcRequest) Reset() { + *x = RpcRequest{} + mi := &file_common_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RpcRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RpcRequest) ProtoMessage() {} + +func (x *RpcRequest) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RpcRequest.ProtoReflect.Descriptor instead. +func (*RpcRequest) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{2} +} + +// Deprecated: Marked as deprecated in common.proto. +func (x *RpcRequest) GetDescriptor_() *RpcDescriptor { + if x != nil { + return x.Descriptor_ + } + return nil +} + +func (x *RpcRequest) GetRequest() []byte { + if x != nil { + return x.Request + } + return nil +} + +func (x *RpcRequest) GetTimeoutMs() int32 { + if x != nil { + return x.TimeoutMs + } + return 0 +} + +// One transport-neutral RPC invocation submitted through a direct ABI. +// +// full_method_name uses the protobuf reflection form: +// ".." or "." for an empty package. +type DirectRpcRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + FullMethodName string `protobuf:"bytes,1,opt,name=full_method_name,json=fullMethodName,proto3" json:"full_method_name,omitempty"` + Request []byte `protobuf:"bytes,2,opt,name=request,proto3" json:"request,omitempty"` + TimeoutMs *uint64 `protobuf:"varint,3,opt,name=timeout_ms,json=timeoutMs,proto3,oneof" json:"timeout_ms,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DirectRpcRequest) Reset() { + *x = DirectRpcRequest{} + mi := &file_common_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DirectRpcRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectRpcRequest) ProtoMessage() {} + +func (x *DirectRpcRequest) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DirectRpcRequest.ProtoReflect.Descriptor instead. +func (*DirectRpcRequest) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{3} +} + +func (x *DirectRpcRequest) GetFullMethodName() string { + if x != nil { + return x.FullMethodName + } + return "" +} + +func (x *DirectRpcRequest) GetRequest() []byte { + if x != nil { + return x.Request + } + return nil +} + +func (x *DirectRpcRequest) GetTimeoutMs() uint64 { + if x != nil && x.TimeoutMs != nil { + return *x.TimeoutMs + } + return 0 +} + +// One process-level management call delegated by the WASI WebClient to its host. +type HostManagementRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Rpc *DirectRpcRequest `protobuf:"bytes,1,opt,name=rpc,proto3" json:"rpc,omitempty"` + PreparedConfig *string `protobuf:"bytes,2,opt,name=prepared_config,json=preparedConfig,proto3,oneof" json:"prepared_config,omitempty"` + // Runtime identity paired with prepared_config without rewriting rpc.request. + PreparedInstanceId *UUID `protobuf:"bytes,3,opt,name=prepared_instance_id,json=preparedInstanceId,proto3" json:"prepared_instance_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *HostManagementRequest) Reset() { + *x = HostManagementRequest{} + mi := &file_common_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HostManagementRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HostManagementRequest) ProtoMessage() {} + +func (x *HostManagementRequest) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HostManagementRequest.ProtoReflect.Descriptor instead. +func (*HostManagementRequest) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{4} +} + +func (x *HostManagementRequest) GetRpc() *DirectRpcRequest { + if x != nil { + return x.Rpc + } + return nil +} + +func (x *HostManagementRequest) GetPreparedConfig() string { + if x != nil && x.PreparedConfig != nil { + return *x.PreparedConfig + } + return "" +} + +func (x *HostManagementRequest) GetPreparedInstanceId() *UUID { + if x != nil { + return x.PreparedInstanceId + } + return nil +} + +type RpcResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + Response []byte `protobuf:"bytes,1,opt,name=response,proto3" json:"response,omitempty"` + Error *error1.Error `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"` + RuntimeUs uint64 `protobuf:"varint,3,opt,name=runtime_us,json=runtimeUs,proto3" json:"runtime_us,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RpcResponse) Reset() { + *x = RpcResponse{} + mi := &file_common_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RpcResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RpcResponse) ProtoMessage() {} + +func (x *RpcResponse) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RpcResponse.ProtoReflect.Descriptor instead. +func (*RpcResponse) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{5} +} + +func (x *RpcResponse) GetResponse() []byte { + if x != nil { + return x.Response + } + return nil +} + +func (x *RpcResponse) GetError() *error1.Error { + if x != nil { + return x.Error + } + return nil +} + +func (x *RpcResponse) GetRuntimeUs() uint64 { + if x != nil { + return x.RuntimeUs + } + return 0 +} + +type RpcCompressionInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + // use this to compress the content + Algo CompressionAlgoPb `protobuf:"varint,1,opt,name=algo,proto3,enum=common.CompressionAlgoPb" json:"algo,omitempty"` + // tell the peer which compression algo is used to compress the next + // response/request + AcceptedAlgo CompressionAlgoPb `protobuf:"varint,2,opt,name=accepted_algo,json=acceptedAlgo,proto3,enum=common.CompressionAlgoPb" json:"accepted_algo,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RpcCompressionInfo) Reset() { + *x = RpcCompressionInfo{} + mi := &file_common_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RpcCompressionInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RpcCompressionInfo) ProtoMessage() {} + +func (x *RpcCompressionInfo) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RpcCompressionInfo.ProtoReflect.Descriptor instead. +func (*RpcCompressionInfo) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{6} +} + +func (x *RpcCompressionInfo) GetAlgo() CompressionAlgoPb { + if x != nil { + return x.Algo + } + return CompressionAlgoPb_Invalid +} + +func (x *RpcCompressionInfo) GetAcceptedAlgo() CompressionAlgoPb { + if x != nil { + return x.AcceptedAlgo + } + return CompressionAlgoPb_Invalid +} + +type RpcPacket struct { + state protoimpl.MessageState `protogen:"open.v1"` + FromPeer uint32 `protobuf:"varint,1,opt,name=from_peer,json=fromPeer,proto3" json:"from_peer,omitempty"` + ToPeer uint32 `protobuf:"varint,2,opt,name=to_peer,json=toPeer,proto3" json:"to_peer,omitempty"` + TransactionId int64 `protobuf:"varint,3,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` + Descriptor_ *RpcDescriptor `protobuf:"bytes,4,opt,name=descriptor,proto3" json:"descriptor,omitempty"` + Body []byte `protobuf:"bytes,5,opt,name=body,proto3" json:"body,omitempty"` + IsRequest bool `protobuf:"varint,6,opt,name=is_request,json=isRequest,proto3" json:"is_request,omitempty"` + TotalPieces uint32 `protobuf:"varint,7,opt,name=total_pieces,json=totalPieces,proto3" json:"total_pieces,omitempty"` + PieceIdx uint32 `protobuf:"varint,8,opt,name=piece_idx,json=pieceIdx,proto3" json:"piece_idx,omitempty"` + TraceId int32 `protobuf:"varint,9,opt,name=trace_id,json=traceId,proto3" json:"trace_id,omitempty"` + CompressionInfo *RpcCompressionInfo `protobuf:"bytes,10,opt,name=compression_info,json=compressionInfo,proto3" json:"compression_info,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RpcPacket) Reset() { + *x = RpcPacket{} + mi := &file_common_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RpcPacket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RpcPacket) ProtoMessage() {} + +func (x *RpcPacket) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RpcPacket.ProtoReflect.Descriptor instead. +func (*RpcPacket) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{7} +} + +func (x *RpcPacket) GetFromPeer() uint32 { + if x != nil { + return x.FromPeer + } + return 0 +} + +func (x *RpcPacket) GetToPeer() uint32 { + if x != nil { + return x.ToPeer + } + return 0 +} + +func (x *RpcPacket) GetTransactionId() int64 { + if x != nil { + return x.TransactionId + } + return 0 +} + +func (x *RpcPacket) GetDescriptor_() *RpcDescriptor { + if x != nil { + return x.Descriptor_ + } + return nil +} + +func (x *RpcPacket) GetBody() []byte { + if x != nil { + return x.Body + } + return nil +} + +func (x *RpcPacket) GetIsRequest() bool { + if x != nil { + return x.IsRequest + } + return false +} + +func (x *RpcPacket) GetTotalPieces() uint32 { + if x != nil { + return x.TotalPieces + } + return 0 +} + +func (x *RpcPacket) GetPieceIdx() uint32 { + if x != nil { + return x.PieceIdx + } + return 0 +} + +func (x *RpcPacket) GetTraceId() int32 { + if x != nil { + return x.TraceId + } + return 0 +} + +func (x *RpcPacket) GetCompressionInfo() *RpcCompressionInfo { + if x != nil { + return x.CompressionInfo + } + return nil +} + +type Void struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Void) Reset() { + *x = Void{} + mi := &file_common_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Void) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Void) ProtoMessage() {} + +func (x *Void) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Void.ProtoReflect.Descriptor instead. +func (*Void) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{8} +} + +type UUID struct { + state protoimpl.MessageState `protogen:"open.v1"` + Part1 uint32 `protobuf:"varint,1,opt,name=part1,proto3" json:"part1,omitempty"` + Part2 uint32 `protobuf:"varint,2,opt,name=part2,proto3" json:"part2,omitempty"` + Part3 uint32 `protobuf:"varint,3,opt,name=part3,proto3" json:"part3,omitempty"` + Part4 uint32 `protobuf:"varint,4,opt,name=part4,proto3" json:"part4,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *UUID) Reset() { + *x = UUID{} + mi := &file_common_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *UUID) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UUID) ProtoMessage() {} + +func (x *UUID) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UUID.ProtoReflect.Descriptor instead. +func (*UUID) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{9} +} + +func (x *UUID) GetPart1() uint32 { + if x != nil { + return x.Part1 + } + return 0 +} + +func (x *UUID) GetPart2() uint32 { + if x != nil { + return x.Part2 + } + return 0 +} + +func (x *UUID) GetPart3() uint32 { + if x != nil { + return x.Part3 + } + return 0 +} + +func (x *UUID) GetPart4() uint32 { + if x != nil { + return x.Part4 + } + return 0 +} + +type Ipv4Addr struct { + state protoimpl.MessageState `protogen:"open.v1"` + Addr uint32 `protobuf:"varint,1,opt,name=addr,proto3" json:"addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Ipv4Addr) Reset() { + *x = Ipv4Addr{} + mi := &file_common_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Ipv4Addr) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ipv4Addr) ProtoMessage() {} + +func (x *Ipv4Addr) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Ipv4Addr.ProtoReflect.Descriptor instead. +func (*Ipv4Addr) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{10} +} + +func (x *Ipv4Addr) GetAddr() uint32 { + if x != nil { + return x.Addr + } + return 0 +} + +type Ipv6Addr struct { + state protoimpl.MessageState `protogen:"open.v1"` + Part1 uint32 `protobuf:"varint,1,opt,name=part1,proto3" json:"part1,omitempty"` + Part2 uint32 `protobuf:"varint,2,opt,name=part2,proto3" json:"part2,omitempty"` + Part3 uint32 `protobuf:"varint,3,opt,name=part3,proto3" json:"part3,omitempty"` + Part4 uint32 `protobuf:"varint,4,opt,name=part4,proto3" json:"part4,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Ipv6Addr) Reset() { + *x = Ipv6Addr{} + mi := &file_common_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Ipv6Addr) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ipv6Addr) ProtoMessage() {} + +func (x *Ipv6Addr) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Ipv6Addr.ProtoReflect.Descriptor instead. +func (*Ipv6Addr) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{11} +} + +func (x *Ipv6Addr) GetPart1() uint32 { + if x != nil { + return x.Part1 + } + return 0 +} + +func (x *Ipv6Addr) GetPart2() uint32 { + if x != nil { + return x.Part2 + } + return 0 +} + +func (x *Ipv6Addr) GetPart3() uint32 { + if x != nil { + return x.Part3 + } + return 0 +} + +func (x *Ipv6Addr) GetPart4() uint32 { + if x != nil { + return x.Part4 + } + return 0 +} + +type IpAddr struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Ip: + // + // *IpAddr_Ipv4 + // *IpAddr_Ipv6 + Ip isIpAddr_Ip `protobuf_oneof:"ip"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IpAddr) Reset() { + *x = IpAddr{} + mi := &file_common_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IpAddr) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IpAddr) ProtoMessage() {} + +func (x *IpAddr) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IpAddr.ProtoReflect.Descriptor instead. +func (*IpAddr) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{12} +} + +func (x *IpAddr) GetIp() isIpAddr_Ip { + if x != nil { + return x.Ip + } + return nil +} + +func (x *IpAddr) GetIpv4() *Ipv4Addr { + if x != nil { + if x, ok := x.Ip.(*IpAddr_Ipv4); ok { + return x.Ipv4 + } + } + return nil +} + +func (x *IpAddr) GetIpv6() *Ipv6Addr { + if x != nil { + if x, ok := x.Ip.(*IpAddr_Ipv6); ok { + return x.Ipv6 + } + } + return nil +} + +type isIpAddr_Ip interface { + isIpAddr_Ip() +} + +type IpAddr_Ipv4 struct { + Ipv4 *Ipv4Addr `protobuf:"bytes,1,opt,name=ipv4,proto3,oneof"` +} + +type IpAddr_Ipv6 struct { + Ipv6 *Ipv6Addr `protobuf:"bytes,2,opt,name=ipv6,proto3,oneof"` +} + +func (*IpAddr_Ipv4) isIpAddr_Ip() {} + +func (*IpAddr_Ipv6) isIpAddr_Ip() {} + +type Ipv4Inet struct { + state protoimpl.MessageState `protogen:"open.v1"` + Address *Ipv4Addr `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + NetworkLength uint32 `protobuf:"varint,2,opt,name=network_length,json=networkLength,proto3" json:"network_length,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Ipv4Inet) Reset() { + *x = Ipv4Inet{} + mi := &file_common_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Ipv4Inet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ipv4Inet) ProtoMessage() {} + +func (x *Ipv4Inet) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Ipv4Inet.ProtoReflect.Descriptor instead. +func (*Ipv4Inet) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{13} +} + +func (x *Ipv4Inet) GetAddress() *Ipv4Addr { + if x != nil { + return x.Address + } + return nil +} + +func (x *Ipv4Inet) GetNetworkLength() uint32 { + if x != nil { + return x.NetworkLength + } + return 0 +} + +type Ipv6Inet struct { + state protoimpl.MessageState `protogen:"open.v1"` + Address *Ipv6Addr `protobuf:"bytes,1,opt,name=address,proto3" json:"address,omitempty"` + NetworkLength uint32 `protobuf:"varint,2,opt,name=network_length,json=networkLength,proto3" json:"network_length,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Ipv6Inet) Reset() { + *x = Ipv6Inet{} + mi := &file_common_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Ipv6Inet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ipv6Inet) ProtoMessage() {} + +func (x *Ipv6Inet) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Ipv6Inet.ProtoReflect.Descriptor instead. +func (*Ipv6Inet) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{14} +} + +func (x *Ipv6Inet) GetAddress() *Ipv6Addr { + if x != nil { + return x.Address + } + return nil +} + +func (x *Ipv6Inet) GetNetworkLength() uint32 { + if x != nil { + return x.NetworkLength + } + return 0 +} + +type IpInet struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Ip: + // + // *IpInet_Ipv4 + // *IpInet_Ipv6 + Ip isIpInet_Ip `protobuf_oneof:"ip"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *IpInet) Reset() { + *x = IpInet{} + mi := &file_common_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *IpInet) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*IpInet) ProtoMessage() {} + +func (x *IpInet) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use IpInet.ProtoReflect.Descriptor instead. +func (*IpInet) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{15} +} + +func (x *IpInet) GetIp() isIpInet_Ip { + if x != nil { + return x.Ip + } + return nil +} + +func (x *IpInet) GetIpv4() *Ipv4Inet { + if x != nil { + if x, ok := x.Ip.(*IpInet_Ipv4); ok { + return x.Ipv4 + } + } + return nil +} + +func (x *IpInet) GetIpv6() *Ipv6Inet { + if x != nil { + if x, ok := x.Ip.(*IpInet_Ipv6); ok { + return x.Ipv6 + } + } + return nil +} + +type isIpInet_Ip interface { + isIpInet_Ip() +} + +type IpInet_Ipv4 struct { + Ipv4 *Ipv4Inet `protobuf:"bytes,1,opt,name=ipv4,proto3,oneof"` +} + +type IpInet_Ipv6 struct { + Ipv6 *Ipv6Inet `protobuf:"bytes,2,opt,name=ipv6,proto3,oneof"` +} + +func (*IpInet_Ipv4) isIpInet_Ip() {} + +func (*IpInet_Ipv6) isIpInet_Ip() {} + +type Url struct { + state protoimpl.MessageState `protogen:"open.v1"` + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Url) Reset() { + *x = Url{} + mi := &file_common_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Url) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Url) ProtoMessage() {} + +func (x *Url) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Url.ProtoReflect.Descriptor instead. +func (*Url) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{16} +} + +func (x *Url) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type SocketAddr struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to Ip: + // + // *SocketAddr_Ipv4 + // *SocketAddr_Ipv6 + Ip isSocketAddr_Ip `protobuf_oneof:"ip"` + Port uint32 `protobuf:"varint,3,opt,name=port,proto3" json:"port,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SocketAddr) Reset() { + *x = SocketAddr{} + mi := &file_common_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SocketAddr) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SocketAddr) ProtoMessage() {} + +func (x *SocketAddr) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SocketAddr.ProtoReflect.Descriptor instead. +func (*SocketAddr) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{17} +} + +func (x *SocketAddr) GetIp() isSocketAddr_Ip { + if x != nil { + return x.Ip + } + return nil +} + +func (x *SocketAddr) GetIpv4() *Ipv4Addr { + if x != nil { + if x, ok := x.Ip.(*SocketAddr_Ipv4); ok { + return x.Ipv4 + } + } + return nil +} + +func (x *SocketAddr) GetIpv6() *Ipv6Addr { + if x != nil { + if x, ok := x.Ip.(*SocketAddr_Ipv6); ok { + return x.Ipv6 + } + } + return nil +} + +func (x *SocketAddr) GetPort() uint32 { + if x != nil { + return x.Port + } + return 0 +} + +type isSocketAddr_Ip interface { + isSocketAddr_Ip() +} + +type SocketAddr_Ipv4 struct { + Ipv4 *Ipv4Addr `protobuf:"bytes,1,opt,name=ipv4,proto3,oneof"` +} + +type SocketAddr_Ipv6 struct { + Ipv6 *Ipv6Addr `protobuf:"bytes,2,opt,name=ipv6,proto3,oneof"` +} + +func (*SocketAddr_Ipv4) isSocketAddr_Ip() {} + +func (*SocketAddr_Ipv6) isSocketAddr_Ip() {} + +type TunnelInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + TunnelType string `protobuf:"bytes,1,opt,name=tunnel_type,json=tunnelType,proto3" json:"tunnel_type,omitempty"` + LocalAddr *Url `protobuf:"bytes,2,opt,name=local_addr,json=localAddr,proto3" json:"local_addr,omitempty"` + RemoteAddr *Url `protobuf:"bytes,3,opt,name=remote_addr,json=remoteAddr,proto3" json:"remote_addr,omitempty"` + ResolvedRemoteAddr *Url `protobuf:"bytes,4,opt,name=resolved_remote_addr,json=resolvedRemoteAddr,proto3" json:"resolved_remote_addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TunnelInfo) Reset() { + *x = TunnelInfo{} + mi := &file_common_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TunnelInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TunnelInfo) ProtoMessage() {} + +func (x *TunnelInfo) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TunnelInfo.ProtoReflect.Descriptor instead. +func (*TunnelInfo) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{18} +} + +func (x *TunnelInfo) GetTunnelType() string { + if x != nil { + return x.TunnelType + } + return "" +} + +func (x *TunnelInfo) GetLocalAddr() *Url { + if x != nil { + return x.LocalAddr + } + return nil +} + +func (x *TunnelInfo) GetRemoteAddr() *Url { + if x != nil { + return x.RemoteAddr + } + return nil +} + +func (x *TunnelInfo) GetResolvedRemoteAddr() *Url { + if x != nil { + return x.ResolvedRemoteAddr + } + return nil +} + +type StunInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + UdpNatType NatType `protobuf:"varint,1,opt,name=udp_nat_type,json=udpNatType,proto3,enum=common.NatType" json:"udp_nat_type,omitempty"` + TcpNatType NatType `protobuf:"varint,2,opt,name=tcp_nat_type,json=tcpNatType,proto3,enum=common.NatType" json:"tcp_nat_type,omitempty"` + LastUpdateTime int64 `protobuf:"varint,3,opt,name=last_update_time,json=lastUpdateTime,proto3" json:"last_update_time,omitempty"` + PublicIp []string `protobuf:"bytes,4,rep,name=public_ip,json=publicIp,proto3" json:"public_ip,omitempty"` + MinPort uint32 `protobuf:"varint,5,opt,name=min_port,json=minPort,proto3" json:"min_port,omitempty"` + MaxPort uint32 `protobuf:"varint,6,opt,name=max_port,json=maxPort,proto3" json:"max_port,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *StunInfo) Reset() { + *x = StunInfo{} + mi := &file_common_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *StunInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StunInfo) ProtoMessage() {} + +func (x *StunInfo) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StunInfo.ProtoReflect.Descriptor instead. +func (*StunInfo) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{19} +} + +func (x *StunInfo) GetUdpNatType() NatType { + if x != nil { + return x.UdpNatType + } + return NatType_Unknown +} + +func (x *StunInfo) GetTcpNatType() NatType { + if x != nil { + return x.TcpNatType + } + return NatType_Unknown +} + +func (x *StunInfo) GetLastUpdateTime() int64 { + if x != nil { + return x.LastUpdateTime + } + return 0 +} + +func (x *StunInfo) GetPublicIp() []string { + if x != nil { + return x.PublicIp + } + return nil +} + +func (x *StunInfo) GetMinPort() uint32 { + if x != nil { + return x.MinPort + } + return 0 +} + +func (x *StunInfo) GetMaxPort() uint32 { + if x != nil { + return x.MaxPort + } + return 0 +} + +type PeerFeatureFlag struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsPublicServer bool `protobuf:"varint,1,opt,name=is_public_server,json=isPublicServer,proto3" json:"is_public_server,omitempty"` + AvoidRelayData bool `protobuf:"varint,2,opt,name=avoid_relay_data,json=avoidRelayData,proto3" json:"avoid_relay_data,omitempty"` + KcpInput bool `protobuf:"varint,3,opt,name=kcp_input,json=kcpInput,proto3" json:"kcp_input,omitempty"` + NoRelayKcp bool `protobuf:"varint,4,opt,name=no_relay_kcp,json=noRelayKcp,proto3" json:"no_relay_kcp,omitempty"` + SupportConnListSync bool `protobuf:"varint,5,opt,name=support_conn_list_sync,json=supportConnListSync,proto3" json:"support_conn_list_sync,omitempty"` + QuicInput bool `protobuf:"varint,6,opt,name=quic_input,json=quicInput,proto3" json:"quic_input,omitempty"` + NoRelayQuic bool `protobuf:"varint,7,opt,name=no_relay_quic,json=noRelayQuic,proto3" json:"no_relay_quic,omitempty"` + IsCredentialPeer bool `protobuf:"varint,8,opt,name=is_credential_peer,json=isCredentialPeer,proto3" json:"is_credential_peer,omitempty"` + NeedP2P bool `protobuf:"varint,9,opt,name=need_p2p,json=needP2p,proto3" json:"need_p2p,omitempty"` + DisableP2P bool `protobuf:"varint,10,opt,name=disable_p2p,json=disableP2p,proto3" json:"disable_p2p,omitempty"` + Ipv6PublicAddrProvider bool `protobuf:"varint,11,opt,name=ipv6_public_addr_provider,json=ipv6PublicAddrProvider,proto3" json:"ipv6_public_addr_provider,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerFeatureFlag) Reset() { + *x = PeerFeatureFlag{} + mi := &file_common_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerFeatureFlag) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerFeatureFlag) ProtoMessage() {} + +func (x *PeerFeatureFlag) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerFeatureFlag.ProtoReflect.Descriptor instead. +func (*PeerFeatureFlag) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{20} +} + +func (x *PeerFeatureFlag) GetIsPublicServer() bool { + if x != nil { + return x.IsPublicServer + } + return false +} + +func (x *PeerFeatureFlag) GetAvoidRelayData() bool { + if x != nil { + return x.AvoidRelayData + } + return false +} + +func (x *PeerFeatureFlag) GetKcpInput() bool { + if x != nil { + return x.KcpInput + } + return false +} + +func (x *PeerFeatureFlag) GetNoRelayKcp() bool { + if x != nil { + return x.NoRelayKcp + } + return false +} + +func (x *PeerFeatureFlag) GetSupportConnListSync() bool { + if x != nil { + return x.SupportConnListSync + } + return false +} + +func (x *PeerFeatureFlag) GetQuicInput() bool { + if x != nil { + return x.QuicInput + } + return false +} + +func (x *PeerFeatureFlag) GetNoRelayQuic() bool { + if x != nil { + return x.NoRelayQuic + } + return false +} + +func (x *PeerFeatureFlag) GetIsCredentialPeer() bool { + if x != nil { + return x.IsCredentialPeer + } + return false +} + +func (x *PeerFeatureFlag) GetNeedP2P() bool { + if x != nil { + return x.NeedP2P + } + return false +} + +func (x *PeerFeatureFlag) GetDisableP2P() bool { + if x != nil { + return x.DisableP2P + } + return false +} + +func (x *PeerFeatureFlag) GetIpv6PublicAddrProvider() bool { + if x != nil { + return x.Ipv6PublicAddrProvider + } + return false +} + +type PortForwardConfigPb struct { + state protoimpl.MessageState `protogen:"open.v1"` + BindAddr *SocketAddr `protobuf:"bytes,1,opt,name=bind_addr,json=bindAddr,proto3" json:"bind_addr,omitempty"` + DstAddr *SocketAddr `protobuf:"bytes,2,opt,name=dst_addr,json=dstAddr,proto3" json:"dst_addr,omitempty"` + SocketType SocketType `protobuf:"varint,3,opt,name=socket_type,json=socketType,proto3,enum=common.SocketType" json:"socket_type,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PortForwardConfigPb) Reset() { + *x = PortForwardConfigPb{} + mi := &file_common_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PortForwardConfigPb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PortForwardConfigPb) ProtoMessage() {} + +func (x *PortForwardConfigPb) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PortForwardConfigPb.ProtoReflect.Descriptor instead. +func (*PortForwardConfigPb) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{21} +} + +func (x *PortForwardConfigPb) GetBindAddr() *SocketAddr { + if x != nil { + return x.BindAddr + } + return nil +} + +func (x *PortForwardConfigPb) GetDstAddr() *SocketAddr { + if x != nil { + return x.DstAddr + } + return nil +} + +func (x *PortForwardConfigPb) GetSocketType() SocketType { + if x != nil { + return x.SocketType + } + return SocketType_TCP +} + +type ProxyDstInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + DstAddr *SocketAddr `protobuf:"bytes,1,opt,name=dst_addr,json=dstAddr,proto3" json:"dst_addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ProxyDstInfo) Reset() { + *x = ProxyDstInfo{} + mi := &file_common_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ProxyDstInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProxyDstInfo) ProtoMessage() {} + +func (x *ProxyDstInfo) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProxyDstInfo.ProtoReflect.Descriptor instead. +func (*ProxyDstInfo) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{22} +} + +func (x *ProxyDstInfo) GetDstAddr() *SocketAddr { + if x != nil { + return x.DstAddr + } + return nil +} + +type LimiterConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + BurstRate *uint64 `protobuf:"varint,1,opt,name=burst_rate,json=burstRate,proto3,oneof" json:"burst_rate,omitempty"` // default 1 means no burst (capacity is same with bps) + Bps *uint64 `protobuf:"varint,2,opt,name=bps,proto3,oneof" json:"bps,omitempty"` // default 0 means no limit (unit is B/s) + FillDurationMs *uint64 `protobuf:"varint,3,opt,name=fill_duration_ms,json=fillDurationMs,proto3,oneof" json:"fill_duration_ms,omitempty"` // default 10ms, the period to fill the bucket + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LimiterConfig) Reset() { + *x = LimiterConfig{} + mi := &file_common_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LimiterConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LimiterConfig) ProtoMessage() {} + +func (x *LimiterConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LimiterConfig.ProtoReflect.Descriptor instead. +func (*LimiterConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{23} +} + +func (x *LimiterConfig) GetBurstRate() uint64 { + if x != nil && x.BurstRate != nil { + return *x.BurstRate + } + return 0 +} + +func (x *LimiterConfig) GetBps() uint64 { + if x != nil && x.Bps != nil { + return *x.Bps + } + return 0 +} + +func (x *LimiterConfig) GetFillDurationMs() uint64 { + if x != nil && x.FillDurationMs != nil { + return *x.FillDurationMs + } + return 0 +} + +type SecureModeConfig struct { + state protoimpl.MessageState `protogen:"open.v1"` + Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"` + // base64(X25519 private key), used by shared node to present a stable identity + LocalPrivateKey *string `protobuf:"bytes,2,opt,name=local_private_key,json=localPrivateKey,proto3,oneof" json:"local_private_key,omitempty"` + // base64(X25519 public key), required if local_private_key is set + LocalPublicKey *string `protobuf:"bytes,3,opt,name=local_public_key,json=localPublicKey,proto3,oneof" json:"local_public_key,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SecureModeConfig) Reset() { + *x = SecureModeConfig{} + mi := &file_common_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SecureModeConfig) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SecureModeConfig) ProtoMessage() {} + +func (x *SecureModeConfig) ProtoReflect() protoreflect.Message { + mi := &file_common_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SecureModeConfig.ProtoReflect.Descriptor instead. +func (*SecureModeConfig) Descriptor() ([]byte, []int) { + return file_common_proto_rawDescGZIP(), []int{24} +} + +func (x *SecureModeConfig) GetEnabled() bool { + if x != nil { + return x.Enabled + } + return false +} + +func (x *SecureModeConfig) GetLocalPrivateKey() string { + if x != nil && x.LocalPrivateKey != nil { + return *x.LocalPrivateKey + } + return "" +} + +func (x *SecureModeConfig) GetLocalPublicKey() string { + if x != nil && x.LocalPublicKey != nil { + return *x.LocalPublicKey + } + return "" +} + +var File_common_proto protoreflect.FileDescriptor + +const file_common_proto_rawDesc = "" + + "\n" + + "\fcommon.proto\x12\x06common\x1a\verror.proto\"\xc9\x0e\n" + + "\rFlagsInConfig\x12)\n" + + "\x10default_protocol\x18\x01 \x01(\tR\x0fdefaultProtocol\x12\x19\n" + + "\bdev_name\x18\x02 \x01(\tR\adevName\x12+\n" + + "\x11enable_encryption\x18\x03 \x01(\bR\x10enableEncryption\x12\x1f\n" + + "\venable_ipv6\x18\x04 \x01(\bR\n" + + "enableIpv6\x12\x10\n" + + "\x03mtu\x18\x05 \x01(\rR\x03mtu\x12#\n" + + "\rlatency_first\x18\x06 \x01(\bR\flatencyFirst\x12(\n" + + "\x10enable_exit_node\x18\a \x01(\bR\x0eenableExitNode\x12\x15\n" + + "\x06no_tun\x18\b \x01(\bR\x05noTun\x12\x1f\n" + + "\vuse_smoltcp\x18\t \x01(\bR\n" + + "useSmoltcp\x126\n" + + "\x17relay_network_whitelist\x18\n" + + " \x01(\tR\x15relayNetworkWhitelist\x12\x1f\n" + + "\vdisable_p2p\x18\v \x01(\bR\n" + + "disableP2p\x12+\n" + + "\x12relay_all_peer_rpc\x18\f \x01(\bR\x0frelayAllPeerRpc\x129\n" + + "\x19disable_udp_hole_punching\x18\r \x01(\bR\x16disableUdpHolePunching\x12!\n" + + "\fmulti_thread\x18\x0f \x01(\bR\vmultiThread\x12G\n" + + "\x12data_compress_algo\x18\x10 \x01(\x0e2\x19.common.CompressionAlgoPbR\x10dataCompressAlgo\x12\x1f\n" + + "\vbind_device\x18\x11 \x01(\bR\n" + + "bindDevice\x12(\n" + + "\x10enable_kcp_proxy\x18\x12 \x01(\bR\x0eenableKcpProxy\x12*\n" + + "\x11disable_kcp_input\x18\x13 \x01(\bR\x0fdisableKcpInput\x12*\n" + + "\x11disable_relay_kcp\x18\x14 \x01(\bR\x0fdisableRelayKcp\x125\n" + + "\x17proxy_forward_by_system\x18\x15 \x01(\bR\x14proxyForwardBySystem\x12\x1d\n" + + "\n" + + "accept_dns\x18\x16 \x01(\bR\tacceptDns\x12!\n" + + "\fprivate_mode\x18\x17 \x01(\bR\vprivateMode\x12*\n" + + "\x11enable_quic_proxy\x18\x18 \x01(\bR\x0fenableQuicProxy\x12,\n" + + "\x12disable_quic_input\x18\x19 \x01(\bR\x10disableQuicInput\x12,\n" + + "\x12disable_relay_quic\x18# \x01(\bR\x10disableRelayQuic\x12,\n" + + "\x10quic_listen_port\x18! \x01(\rB\x02\x18\x01R\x0equicListenPort\x125\n" + + "\x17foreign_relay_bps_limit\x18\x1a \x01(\x04R\x14foreignRelayBpsLimit\x12,\n" + + "\x12multi_thread_count\x18\x1b \x01(\rR\x10multiThreadCount\x12F\n" + + " enable_relay_foreign_network_kcp\x18\x1c \x01(\bR\x1cenableRelayForeignNetworkKcp\x12H\n" + + "!enable_relay_foreign_network_quic\x18$ \x01(\bR\x1denableRelayForeignNetworkQuic\x121\n" + + "\x14encryption_algorithm\x18\x1d \x01(\tR\x13encryptionAlgorithm\x129\n" + + "\x19disable_sym_hole_punching\x18\x1e \x01(\bR\x16disableSymHolePunching\x12 \n" + + "\ftld_dns_zone\x18\x1f \x01(\tR\n" + + "tldDnsZone\x12\x19\n" + + "\bp2p_only\x18 \x01(\bR\ap2pOnly\x129\n" + + "\x19disable_tcp_hole_punching\x18\" \x01(\bR\x16disableTcpHolePunching\x12\x19\n" + + "\blazy_p2p\x18% \x01(\bR\alazyP2p\x12\x19\n" + + "\bneed_p2p\x18& \x01(\bR\aneedP2p\x125\n" + + "\x17instance_recv_bps_limit\x18' \x01(\x04R\x14instanceRecvBpsLimit\x12!\n" + + "\fdisable_upnp\x18( \x01(\bR\vdisableUpnp\x12,\n" + + "\x12disable_relay_data\x18) \x01(\bR\x10disableRelayData\x12;\n" + + "\x1aenable_udp_broadcast_relay\x18* \x01(\bR\x17enableUdpBroadcastRelay\x12$\n" + + "\vsocket_mark\x18+ \x01(\rH\x00R\n" + + "socketMark\x88\x01\x01B\x0e\n" + + "\f_socket_mark\"\x95\x01\n" + + "\rRpcDescriptor\x12\x1f\n" + + "\vdomain_name\x18\x01 \x01(\tR\n" + + "domainName\x12\x1d\n" + + "\n" + + "proto_name\x18\x02 \x01(\tR\tprotoName\x12!\n" + + "\fservice_name\x18\x03 \x01(\tR\vserviceName\x12!\n" + + "\fmethod_index\x18\x04 \x01(\rR\vmethodIndex\"\x80\x01\n" + + "\n" + + "RpcRequest\x129\n" + + "\n" + + "descriptor\x18\x01 \x01(\v2\x15.common.RpcDescriptorB\x02\x18\x01R\n" + + "descriptor\x12\x18\n" + + "\arequest\x18\x02 \x01(\fR\arequest\x12\x1d\n" + + "\n" + + "timeout_ms\x18\x03 \x01(\x05R\ttimeoutMs\"\x89\x01\n" + + "\x10DirectRpcRequest\x12(\n" + + "\x10full_method_name\x18\x01 \x01(\tR\x0efullMethodName\x12\x18\n" + + "\arequest\x18\x02 \x01(\fR\arequest\x12\"\n" + + "\n" + + "timeout_ms\x18\x03 \x01(\x04H\x00R\ttimeoutMs\x88\x01\x01B\r\n" + + "\v_timeout_ms\"\xc5\x01\n" + + "\x15HostManagementRequest\x12*\n" + + "\x03rpc\x18\x01 \x01(\v2\x18.common.DirectRpcRequestR\x03rpc\x12,\n" + + "\x0fprepared_config\x18\x02 \x01(\tH\x00R\x0epreparedConfig\x88\x01\x01\x12>\n" + + "\x14prepared_instance_id\x18\x03 \x01(\v2\f.common.UUIDR\x12preparedInstanceIdB\x12\n" + + "\x10_prepared_config\"l\n" + + "\vRpcResponse\x12\x1a\n" + + "\bresponse\x18\x01 \x01(\fR\bresponse\x12\"\n" + + "\x05error\x18\x02 \x01(\v2\f.error.ErrorR\x05error\x12\x1d\n" + + "\n" + + "runtime_us\x18\x03 \x01(\x04R\truntimeUs\"\x83\x01\n" + + "\x12RpcCompressionInfo\x12-\n" + + "\x04algo\x18\x01 \x01(\x0e2\x19.common.CompressionAlgoPbR\x04algo\x12>\n" + + "\raccepted_algo\x18\x02 \x01(\x0e2\x19.common.CompressionAlgoPbR\facceptedAlgo\"\xf4\x02\n" + + "\tRpcPacket\x12\x1b\n" + + "\tfrom_peer\x18\x01 \x01(\rR\bfromPeer\x12\x17\n" + + "\ato_peer\x18\x02 \x01(\rR\x06toPeer\x12%\n" + + "\x0etransaction_id\x18\x03 \x01(\x03R\rtransactionId\x125\n" + + "\n" + + "descriptor\x18\x04 \x01(\v2\x15.common.RpcDescriptorR\n" + + "descriptor\x12\x12\n" + + "\x04body\x18\x05 \x01(\fR\x04body\x12\x1d\n" + + "\n" + + "is_request\x18\x06 \x01(\bR\tisRequest\x12!\n" + + "\ftotal_pieces\x18\a \x01(\rR\vtotalPieces\x12\x1b\n" + + "\tpiece_idx\x18\b \x01(\rR\bpieceIdx\x12\x19\n" + + "\btrace_id\x18\t \x01(\x05R\atraceId\x12E\n" + + "\x10compression_info\x18\n" + + " \x01(\v2\x1a.common.RpcCompressionInfoR\x0fcompressionInfo\"\x06\n" + + "\x04Void\"^\n" + + "\x04UUID\x12\x14\n" + + "\x05part1\x18\x01 \x01(\rR\x05part1\x12\x14\n" + + "\x05part2\x18\x02 \x01(\rR\x05part2\x12\x14\n" + + "\x05part3\x18\x03 \x01(\rR\x05part3\x12\x14\n" + + "\x05part4\x18\x04 \x01(\rR\x05part4\"\x1e\n" + + "\bIpv4Addr\x12\x12\n" + + "\x04addr\x18\x01 \x01(\rR\x04addr\"b\n" + + "\bIpv6Addr\x12\x14\n" + + "\x05part1\x18\x01 \x01(\rR\x05part1\x12\x14\n" + + "\x05part2\x18\x02 \x01(\rR\x05part2\x12\x14\n" + + "\x05part3\x18\x03 \x01(\rR\x05part3\x12\x14\n" + + "\x05part4\x18\x04 \x01(\rR\x05part4\"^\n" + + "\x06IpAddr\x12&\n" + + "\x04ipv4\x18\x01 \x01(\v2\x10.common.Ipv4AddrH\x00R\x04ipv4\x12&\n" + + "\x04ipv6\x18\x02 \x01(\v2\x10.common.Ipv6AddrH\x00R\x04ipv6B\x04\n" + + "\x02ip\"]\n" + + "\bIpv4Inet\x12*\n" + + "\aaddress\x18\x01 \x01(\v2\x10.common.Ipv4AddrR\aaddress\x12%\n" + + "\x0enetwork_length\x18\x02 \x01(\rR\rnetworkLength\"]\n" + + "\bIpv6Inet\x12*\n" + + "\aaddress\x18\x01 \x01(\v2\x10.common.Ipv6AddrR\aaddress\x12%\n" + + "\x0enetwork_length\x18\x02 \x01(\rR\rnetworkLength\"^\n" + + "\x06IpInet\x12&\n" + + "\x04ipv4\x18\x01 \x01(\v2\x10.common.Ipv4InetH\x00R\x04ipv4\x12&\n" + + "\x04ipv6\x18\x02 \x01(\v2\x10.common.Ipv6InetH\x00R\x04ipv6B\x04\n" + + "\x02ip\"\x17\n" + + "\x03Url\x12\x10\n" + + "\x03url\x18\x01 \x01(\tR\x03url\"v\n" + + "\n" + + "SocketAddr\x12&\n" + + "\x04ipv4\x18\x01 \x01(\v2\x10.common.Ipv4AddrH\x00R\x04ipv4\x12&\n" + + "\x04ipv6\x18\x02 \x01(\v2\x10.common.Ipv6AddrH\x00R\x04ipv6\x12\x12\n" + + "\x04port\x18\x03 \x01(\rR\x04portB\x04\n" + + "\x02ip\"\xc6\x01\n" + + "\n" + + "TunnelInfo\x12\x1f\n" + + "\vtunnel_type\x18\x01 \x01(\tR\n" + + "tunnelType\x12*\n" + + "\n" + + "local_addr\x18\x02 \x01(\v2\v.common.UrlR\tlocalAddr\x12,\n" + + "\vremote_addr\x18\x03 \x01(\v2\v.common.UrlR\n" + + "remoteAddr\x12=\n" + + "\x14resolved_remote_addr\x18\x04 \x01(\v2\v.common.UrlR\x12resolvedRemoteAddr\"\xed\x01\n" + + "\bStunInfo\x121\n" + + "\fudp_nat_type\x18\x01 \x01(\x0e2\x0f.common.NatTypeR\n" + + "udpNatType\x121\n" + + "\ftcp_nat_type\x18\x02 \x01(\x0e2\x0f.common.NatTypeR\n" + + "tcpNatType\x12(\n" + + "\x10last_update_time\x18\x03 \x01(\x03R\x0elastUpdateTime\x12\x1b\n" + + "\tpublic_ip\x18\x04 \x03(\tR\bpublicIp\x12\x19\n" + + "\bmin_port\x18\x05 \x01(\rR\aminPort\x12\x19\n" + + "\bmax_port\x18\x06 \x01(\rR\amaxPort\"\xc1\x03\n" + + "\x0fPeerFeatureFlag\x12(\n" + + "\x10is_public_server\x18\x01 \x01(\bR\x0eisPublicServer\x12(\n" + + "\x10avoid_relay_data\x18\x02 \x01(\bR\x0eavoidRelayData\x12\x1b\n" + + "\tkcp_input\x18\x03 \x01(\bR\bkcpInput\x12 \n" + + "\fno_relay_kcp\x18\x04 \x01(\bR\n" + + "noRelayKcp\x123\n" + + "\x16support_conn_list_sync\x18\x05 \x01(\bR\x13supportConnListSync\x12\x1d\n" + + "\n" + + "quic_input\x18\x06 \x01(\bR\tquicInput\x12\"\n" + + "\rno_relay_quic\x18\a \x01(\bR\vnoRelayQuic\x12,\n" + + "\x12is_credential_peer\x18\b \x01(\bR\x10isCredentialPeer\x12\x19\n" + + "\bneed_p2p\x18\t \x01(\bR\aneedP2p\x12\x1f\n" + + "\vdisable_p2p\x18\n" + + " \x01(\bR\n" + + "disableP2p\x129\n" + + "\x19ipv6_public_addr_provider\x18\v \x01(\bR\x16ipv6PublicAddrProvider\"\xaa\x01\n" + + "\x13PortForwardConfigPb\x12/\n" + + "\tbind_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\bbindAddr\x12-\n" + + "\bdst_addr\x18\x02 \x01(\v2\x12.common.SocketAddrR\adstAddr\x123\n" + + "\vsocket_type\x18\x03 \x01(\x0e2\x12.common.SocketTypeR\n" + + "socketType\"=\n" + + "\fProxyDstInfo\x12-\n" + + "\bdst_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\adstAddr\"\xa5\x01\n" + + "\rLimiterConfig\x12\"\n" + + "\n" + + "burst_rate\x18\x01 \x01(\x04H\x00R\tburstRate\x88\x01\x01\x12\x15\n" + + "\x03bps\x18\x02 \x01(\x04H\x01R\x03bps\x88\x01\x01\x12-\n" + + "\x10fill_duration_ms\x18\x03 \x01(\x04H\x02R\x0efillDurationMs\x88\x01\x01B\r\n" + + "\v_burst_rateB\x06\n" + + "\x04_bpsB\x13\n" + + "\x11_fill_duration_ms\"\xb7\x01\n" + + "\x10SecureModeConfig\x12\x18\n" + + "\aenabled\x18\x01 \x01(\bR\aenabled\x12/\n" + + "\x11local_private_key\x18\x02 \x01(\tH\x00R\x0flocalPrivateKey\x88\x01\x01\x12-\n" + + "\x10local_public_key\x18\x03 \x01(\tH\x01R\x0elocalPublicKey\x88\x01\x01B\x14\n" + + "\x12_local_private_keyB\x13\n" + + "\x11_local_public_key*4\n" + + "\x11CompressionAlgoPb\x12\v\n" + + "\aInvalid\x10\x00\x12\b\n" + + "\x04None\x10\x01\x12\b\n" + + "\x04Zstd\x10\x02*\xb4\x01\n" + + "\aNatType\x12\v\n" + + "\aUnknown\x10\x00\x12\x10\n" + + "\fOpenInternet\x10\x01\x12\t\n" + + "\x05NoPAT\x10\x02\x12\f\n" + + "\bFullCone\x10\x03\x12\x0e\n" + + "\n" + + "Restricted\x10\x04\x12\x12\n" + + "\x0ePortRestricted\x10\x05\x12\r\n" + + "\tSymmetric\x10\x06\x12\x12\n" + + "\x0eSymUdpFirewall\x10\a\x12\x14\n" + + "\x10SymmetricEasyInc\x10\b\x12\x14\n" + + "\x10SymmetricEasyDec\x10\t*\x1e\n" + + "\n" + + "SocketType\x12\a\n" + + "\x03TCP\x10\x00\x12\a\n" + + "\x03UDP\x10\x01b\x06proto3" + +var ( + file_common_proto_rawDescOnce sync.Once + file_common_proto_rawDescData []byte +) + +func file_common_proto_rawDescGZIP() []byte { + file_common_proto_rawDescOnce.Do(func() { + file_common_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_common_proto_rawDesc), len(file_common_proto_rawDesc))) + }) + return file_common_proto_rawDescData +} + +var file_common_proto_enumTypes = make([]protoimpl.EnumInfo, 3) +var file_common_proto_msgTypes = make([]protoimpl.MessageInfo, 25) +var file_common_proto_goTypes = []any{ + (CompressionAlgoPb)(0), // 0: common.CompressionAlgoPb + (NatType)(0), // 1: common.NatType + (SocketType)(0), // 2: common.SocketType + (*FlagsInConfig)(nil), // 3: common.FlagsInConfig + (*RpcDescriptor)(nil), // 4: common.RpcDescriptor + (*RpcRequest)(nil), // 5: common.RpcRequest + (*DirectRpcRequest)(nil), // 6: common.DirectRpcRequest + (*HostManagementRequest)(nil), // 7: common.HostManagementRequest + (*RpcResponse)(nil), // 8: common.RpcResponse + (*RpcCompressionInfo)(nil), // 9: common.RpcCompressionInfo + (*RpcPacket)(nil), // 10: common.RpcPacket + (*Void)(nil), // 11: common.Void + (*UUID)(nil), // 12: common.UUID + (*Ipv4Addr)(nil), // 13: common.Ipv4Addr + (*Ipv6Addr)(nil), // 14: common.Ipv6Addr + (*IpAddr)(nil), // 15: common.IpAddr + (*Ipv4Inet)(nil), // 16: common.Ipv4Inet + (*Ipv6Inet)(nil), // 17: common.Ipv6Inet + (*IpInet)(nil), // 18: common.IpInet + (*Url)(nil), // 19: common.Url + (*SocketAddr)(nil), // 20: common.SocketAddr + (*TunnelInfo)(nil), // 21: common.TunnelInfo + (*StunInfo)(nil), // 22: common.StunInfo + (*PeerFeatureFlag)(nil), // 23: common.PeerFeatureFlag + (*PortForwardConfigPb)(nil), // 24: common.PortForwardConfigPb + (*ProxyDstInfo)(nil), // 25: common.ProxyDstInfo + (*LimiterConfig)(nil), // 26: common.LimiterConfig + (*SecureModeConfig)(nil), // 27: common.SecureModeConfig + (*error1.Error)(nil), // 28: error.Error +} +var file_common_proto_depIdxs = []int32{ + 0, // 0: common.FlagsInConfig.data_compress_algo:type_name -> common.CompressionAlgoPb + 4, // 1: common.RpcRequest.descriptor:type_name -> common.RpcDescriptor + 6, // 2: common.HostManagementRequest.rpc:type_name -> common.DirectRpcRequest + 12, // 3: common.HostManagementRequest.prepared_instance_id:type_name -> common.UUID + 28, // 4: common.RpcResponse.error:type_name -> error.Error + 0, // 5: common.RpcCompressionInfo.algo:type_name -> common.CompressionAlgoPb + 0, // 6: common.RpcCompressionInfo.accepted_algo:type_name -> common.CompressionAlgoPb + 4, // 7: common.RpcPacket.descriptor:type_name -> common.RpcDescriptor + 9, // 8: common.RpcPacket.compression_info:type_name -> common.RpcCompressionInfo + 13, // 9: common.IpAddr.ipv4:type_name -> common.Ipv4Addr + 14, // 10: common.IpAddr.ipv6:type_name -> common.Ipv6Addr + 13, // 11: common.Ipv4Inet.address:type_name -> common.Ipv4Addr + 14, // 12: common.Ipv6Inet.address:type_name -> common.Ipv6Addr + 16, // 13: common.IpInet.ipv4:type_name -> common.Ipv4Inet + 17, // 14: common.IpInet.ipv6:type_name -> common.Ipv6Inet + 13, // 15: common.SocketAddr.ipv4:type_name -> common.Ipv4Addr + 14, // 16: common.SocketAddr.ipv6:type_name -> common.Ipv6Addr + 19, // 17: common.TunnelInfo.local_addr:type_name -> common.Url + 19, // 18: common.TunnelInfo.remote_addr:type_name -> common.Url + 19, // 19: common.TunnelInfo.resolved_remote_addr:type_name -> common.Url + 1, // 20: common.StunInfo.udp_nat_type:type_name -> common.NatType + 1, // 21: common.StunInfo.tcp_nat_type:type_name -> common.NatType + 20, // 22: common.PortForwardConfigPb.bind_addr:type_name -> common.SocketAddr + 20, // 23: common.PortForwardConfigPb.dst_addr:type_name -> common.SocketAddr + 2, // 24: common.PortForwardConfigPb.socket_type:type_name -> common.SocketType + 20, // 25: common.ProxyDstInfo.dst_addr:type_name -> common.SocketAddr + 26, // [26:26] is the sub-list for method output_type + 26, // [26:26] is the sub-list for method input_type + 26, // [26:26] is the sub-list for extension type_name + 26, // [26:26] is the sub-list for extension extendee + 0, // [0:26] is the sub-list for field type_name +} + +func init() { file_common_proto_init() } +func file_common_proto_init() { + if File_common_proto != nil { + return + } + file_common_proto_msgTypes[0].OneofWrappers = []any{} + file_common_proto_msgTypes[3].OneofWrappers = []any{} + file_common_proto_msgTypes[4].OneofWrappers = []any{} + file_common_proto_msgTypes[12].OneofWrappers = []any{ + (*IpAddr_Ipv4)(nil), + (*IpAddr_Ipv6)(nil), + } + file_common_proto_msgTypes[15].OneofWrappers = []any{ + (*IpInet_Ipv4)(nil), + (*IpInet_Ipv6)(nil), + } + file_common_proto_msgTypes[17].OneofWrappers = []any{ + (*SocketAddr_Ipv4)(nil), + (*SocketAddr_Ipv6)(nil), + } + file_common_proto_msgTypes[23].OneofWrappers = []any{} + file_common_proto_msgTypes[24].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_common_proto_rawDesc), len(file_common_proto_rawDesc)), + NumEnums: 3, + NumMessages: 25, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_common_proto_goTypes, + DependencyIndexes: file_common_proto_depIdxs, + EnumInfos: file_common_proto_enumTypes, + MessageInfos: file_common_proto_msgTypes, + }.Build() + File_common_proto = out.File + file_common_proto_goTypes = nil + file_common_proto_depIdxs = nil +} diff --git a/easytier-go/proto/error/error.pb.go b/easytier-go/proto/error/error.pb.go new file mode 100644 index 00000000..fbaff4b7 --- /dev/null +++ b/easytier-go/proto/error/error.pb.go @@ -0,0 +1,652 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.35.1 +// source: error.proto + +package error + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type OtherError struct { + state protoimpl.MessageState `protogen:"open.v1"` + ErrorMessage string `protobuf:"bytes,1,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *OtherError) Reset() { + *x = OtherError{} + mi := &file_error_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *OtherError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*OtherError) ProtoMessage() {} + +func (x *OtherError) ProtoReflect() protoreflect.Message { + mi := &file_error_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use OtherError.ProtoReflect.Descriptor instead. +func (*OtherError) Descriptor() ([]byte, []int) { + return file_error_proto_rawDescGZIP(), []int{0} +} + +func (x *OtherError) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +type InvalidMethodIndex struct { + state protoimpl.MessageState `protogen:"open.v1"` + ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + MethodIndex uint32 `protobuf:"varint,2,opt,name=method_index,json=methodIndex,proto3" json:"method_index,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InvalidMethodIndex) Reset() { + *x = InvalidMethodIndex{} + mi := &file_error_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InvalidMethodIndex) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InvalidMethodIndex) ProtoMessage() {} + +func (x *InvalidMethodIndex) ProtoReflect() protoreflect.Message { + mi := &file_error_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InvalidMethodIndex.ProtoReflect.Descriptor instead. +func (*InvalidMethodIndex) Descriptor() ([]byte, []int) { + return file_error_proto_rawDescGZIP(), []int{1} +} + +func (x *InvalidMethodIndex) GetServiceName() string { + if x != nil { + return x.ServiceName + } + return "" +} + +func (x *InvalidMethodIndex) GetMethodIndex() uint32 { + if x != nil { + return x.MethodIndex + } + return 0 +} + +type InvalidService struct { + state protoimpl.MessageState `protogen:"open.v1"` + ServiceName string `protobuf:"bytes,1,opt,name=service_name,json=serviceName,proto3" json:"service_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *InvalidService) Reset() { + *x = InvalidService{} + mi := &file_error_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *InvalidService) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*InvalidService) ProtoMessage() {} + +func (x *InvalidService) ProtoReflect() protoreflect.Message { + mi := &file_error_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use InvalidService.ProtoReflect.Descriptor instead. +func (*InvalidService) Descriptor() ([]byte, []int) { + return file_error_proto_rawDescGZIP(), []int{2} +} + +func (x *InvalidService) GetServiceName() string { + if x != nil { + return x.ServiceName + } + return "" +} + +type ProstDecodeError struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ProstDecodeError) Reset() { + *x = ProstDecodeError{} + mi := &file_error_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ProstDecodeError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProstDecodeError) ProtoMessage() {} + +func (x *ProstDecodeError) ProtoReflect() protoreflect.Message { + mi := &file_error_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProstDecodeError.ProtoReflect.Descriptor instead. +func (*ProstDecodeError) Descriptor() ([]byte, []int) { + return file_error_proto_rawDescGZIP(), []int{3} +} + +type ProstEncodeError struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ProstEncodeError) Reset() { + *x = ProstEncodeError{} + mi := &file_error_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ProstEncodeError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ProstEncodeError) ProtoMessage() {} + +func (x *ProstEncodeError) ProtoReflect() protoreflect.Message { + mi := &file_error_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ProstEncodeError.ProtoReflect.Descriptor instead. +func (*ProstEncodeError) Descriptor() ([]byte, []int) { + return file_error_proto_rawDescGZIP(), []int{4} +} + +type ExecuteError struct { + state protoimpl.MessageState `protogen:"open.v1"` + ErrorMessage string `protobuf:"bytes,1,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ExecuteError) Reset() { + *x = ExecuteError{} + mi := &file_error_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ExecuteError) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ExecuteError) ProtoMessage() {} + +func (x *ExecuteError) ProtoReflect() protoreflect.Message { + mi := &file_error_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ExecuteError.ProtoReflect.Descriptor instead. +func (*ExecuteError) Descriptor() ([]byte, []int) { + return file_error_proto_rawDescGZIP(), []int{5} +} + +func (x *ExecuteError) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +type MalformatRpcPacket struct { + state protoimpl.MessageState `protogen:"open.v1"` + ErrorMessage string `protobuf:"bytes,1,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *MalformatRpcPacket) Reset() { + *x = MalformatRpcPacket{} + mi := &file_error_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *MalformatRpcPacket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MalformatRpcPacket) ProtoMessage() {} + +func (x *MalformatRpcPacket) ProtoReflect() protoreflect.Message { + mi := &file_error_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MalformatRpcPacket.ProtoReflect.Descriptor instead. +func (*MalformatRpcPacket) Descriptor() ([]byte, []int) { + return file_error_proto_rawDescGZIP(), []int{6} +} + +func (x *MalformatRpcPacket) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +type Timeout struct { + state protoimpl.MessageState `protogen:"open.v1"` + ErrorMessage string `protobuf:"bytes,1,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Timeout) Reset() { + *x = Timeout{} + mi := &file_error_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Timeout) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Timeout) ProtoMessage() {} + +func (x *Timeout) ProtoReflect() protoreflect.Message { + mi := &file_error_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Timeout.ProtoReflect.Descriptor instead. +func (*Timeout) Descriptor() ([]byte, []int) { + return file_error_proto_rawDescGZIP(), []int{7} +} + +func (x *Timeout) GetErrorMessage() string { + if x != nil { + return x.ErrorMessage + } + return "" +} + +type Error struct { + state protoimpl.MessageState `protogen:"open.v1"` + // Types that are valid to be assigned to ErrorKind: + // + // *Error_OtherError + // *Error_InvalidMethodIndex + // *Error_InvalidService + // *Error_ProstDecodeError + // *Error_ProstEncodeError + // *Error_ExecuteError + // *Error_MalformatRpcPacket + // *Error_Timeout + ErrorKind isError_ErrorKind `protobuf_oneof:"error_kind"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Error) Reset() { + *x = Error{} + mi := &file_error_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Error) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Error) ProtoMessage() {} + +func (x *Error) ProtoReflect() protoreflect.Message { + mi := &file_error_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Error.ProtoReflect.Descriptor instead. +func (*Error) Descriptor() ([]byte, []int) { + return file_error_proto_rawDescGZIP(), []int{8} +} + +func (x *Error) GetErrorKind() isError_ErrorKind { + if x != nil { + return x.ErrorKind + } + return nil +} + +func (x *Error) GetOtherError() *OtherError { + if x != nil { + if x, ok := x.ErrorKind.(*Error_OtherError); ok { + return x.OtherError + } + } + return nil +} + +func (x *Error) GetInvalidMethodIndex() *InvalidMethodIndex { + if x != nil { + if x, ok := x.ErrorKind.(*Error_InvalidMethodIndex); ok { + return x.InvalidMethodIndex + } + } + return nil +} + +func (x *Error) GetInvalidService() *InvalidService { + if x != nil { + if x, ok := x.ErrorKind.(*Error_InvalidService); ok { + return x.InvalidService + } + } + return nil +} + +func (x *Error) GetProstDecodeError() *ProstDecodeError { + if x != nil { + if x, ok := x.ErrorKind.(*Error_ProstDecodeError); ok { + return x.ProstDecodeError + } + } + return nil +} + +func (x *Error) GetProstEncodeError() *ProstEncodeError { + if x != nil { + if x, ok := x.ErrorKind.(*Error_ProstEncodeError); ok { + return x.ProstEncodeError + } + } + return nil +} + +func (x *Error) GetExecuteError() *ExecuteError { + if x != nil { + if x, ok := x.ErrorKind.(*Error_ExecuteError); ok { + return x.ExecuteError + } + } + return nil +} + +func (x *Error) GetMalformatRpcPacket() *MalformatRpcPacket { + if x != nil { + if x, ok := x.ErrorKind.(*Error_MalformatRpcPacket); ok { + return x.MalformatRpcPacket + } + } + return nil +} + +func (x *Error) GetTimeout() *Timeout { + if x != nil { + if x, ok := x.ErrorKind.(*Error_Timeout); ok { + return x.Timeout + } + } + return nil +} + +type isError_ErrorKind interface { + isError_ErrorKind() +} + +type Error_OtherError struct { + OtherError *OtherError `protobuf:"bytes,1,opt,name=other_error,json=otherError,proto3,oneof"` +} + +type Error_InvalidMethodIndex struct { + InvalidMethodIndex *InvalidMethodIndex `protobuf:"bytes,2,opt,name=invalid_method_index,json=invalidMethodIndex,proto3,oneof"` +} + +type Error_InvalidService struct { + InvalidService *InvalidService `protobuf:"bytes,3,opt,name=invalid_service,json=invalidService,proto3,oneof"` +} + +type Error_ProstDecodeError struct { + ProstDecodeError *ProstDecodeError `protobuf:"bytes,4,opt,name=prost_decode_error,json=prostDecodeError,proto3,oneof"` +} + +type Error_ProstEncodeError struct { + ProstEncodeError *ProstEncodeError `protobuf:"bytes,5,opt,name=prost_encode_error,json=prostEncodeError,proto3,oneof"` +} + +type Error_ExecuteError struct { + ExecuteError *ExecuteError `protobuf:"bytes,6,opt,name=execute_error,json=executeError,proto3,oneof"` +} + +type Error_MalformatRpcPacket struct { + MalformatRpcPacket *MalformatRpcPacket `protobuf:"bytes,7,opt,name=malformat_rpc_packet,json=malformatRpcPacket,proto3,oneof"` +} + +type Error_Timeout struct { + Timeout *Timeout `protobuf:"bytes,8,opt,name=timeout,proto3,oneof"` +} + +func (*Error_OtherError) isError_ErrorKind() {} + +func (*Error_InvalidMethodIndex) isError_ErrorKind() {} + +func (*Error_InvalidService) isError_ErrorKind() {} + +func (*Error_ProstDecodeError) isError_ErrorKind() {} + +func (*Error_ProstEncodeError) isError_ErrorKind() {} + +func (*Error_ExecuteError) isError_ErrorKind() {} + +func (*Error_MalformatRpcPacket) isError_ErrorKind() {} + +func (*Error_Timeout) isError_ErrorKind() {} + +var File_error_proto protoreflect.FileDescriptor + +const file_error_proto_rawDesc = "" + + "\n" + + "\verror.proto\x12\x05error\"1\n" + + "\n" + + "OtherError\x12#\n" + + "\rerror_message\x18\x01 \x01(\tR\ferrorMessage\"Z\n" + + "\x12InvalidMethodIndex\x12!\n" + + "\fservice_name\x18\x01 \x01(\tR\vserviceName\x12!\n" + + "\fmethod_index\x18\x02 \x01(\rR\vmethodIndex\"3\n" + + "\x0eInvalidService\x12!\n" + + "\fservice_name\x18\x01 \x01(\tR\vserviceName\"\x12\n" + + "\x10ProstDecodeError\"\x12\n" + + "\x10ProstEncodeError\"3\n" + + "\fExecuteError\x12#\n" + + "\rerror_message\x18\x01 \x01(\tR\ferrorMessage\"9\n" + + "\x12MalformatRpcPacket\x12#\n" + + "\rerror_message\x18\x01 \x01(\tR\ferrorMessage\".\n" + + "\aTimeout\x12#\n" + + "\rerror_message\x18\x01 \x01(\tR\ferrorMessage\"\xa5\x04\n" + + "\x05Error\x124\n" + + "\vother_error\x18\x01 \x01(\v2\x11.error.OtherErrorH\x00R\n" + + "otherError\x12M\n" + + "\x14invalid_method_index\x18\x02 \x01(\v2\x19.error.InvalidMethodIndexH\x00R\x12invalidMethodIndex\x12@\n" + + "\x0finvalid_service\x18\x03 \x01(\v2\x15.error.InvalidServiceH\x00R\x0einvalidService\x12G\n" + + "\x12prost_decode_error\x18\x04 \x01(\v2\x17.error.ProstDecodeErrorH\x00R\x10prostDecodeError\x12G\n" + + "\x12prost_encode_error\x18\x05 \x01(\v2\x17.error.ProstEncodeErrorH\x00R\x10prostEncodeError\x12:\n" + + "\rexecute_error\x18\x06 \x01(\v2\x13.error.ExecuteErrorH\x00R\fexecuteError\x12M\n" + + "\x14malformat_rpc_packet\x18\a \x01(\v2\x19.error.MalformatRpcPacketH\x00R\x12malformatRpcPacket\x12*\n" + + "\atimeout\x18\b \x01(\v2\x0e.error.TimeoutH\x00R\atimeoutB\f\n" + + "\n" + + "error_kindb\x06proto3" + +var ( + file_error_proto_rawDescOnce sync.Once + file_error_proto_rawDescData []byte +) + +func file_error_proto_rawDescGZIP() []byte { + file_error_proto_rawDescOnce.Do(func() { + file_error_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_error_proto_rawDesc), len(file_error_proto_rawDesc))) + }) + return file_error_proto_rawDescData +} + +var file_error_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_error_proto_goTypes = []any{ + (*OtherError)(nil), // 0: error.OtherError + (*InvalidMethodIndex)(nil), // 1: error.InvalidMethodIndex + (*InvalidService)(nil), // 2: error.InvalidService + (*ProstDecodeError)(nil), // 3: error.ProstDecodeError + (*ProstEncodeError)(nil), // 4: error.ProstEncodeError + (*ExecuteError)(nil), // 5: error.ExecuteError + (*MalformatRpcPacket)(nil), // 6: error.MalformatRpcPacket + (*Timeout)(nil), // 7: error.Timeout + (*Error)(nil), // 8: error.Error +} +var file_error_proto_depIdxs = []int32{ + 0, // 0: error.Error.other_error:type_name -> error.OtherError + 1, // 1: error.Error.invalid_method_index:type_name -> error.InvalidMethodIndex + 2, // 2: error.Error.invalid_service:type_name -> error.InvalidService + 3, // 3: error.Error.prost_decode_error:type_name -> error.ProstDecodeError + 4, // 4: error.Error.prost_encode_error:type_name -> error.ProstEncodeError + 5, // 5: error.Error.execute_error:type_name -> error.ExecuteError + 6, // 6: error.Error.malformat_rpc_packet:type_name -> error.MalformatRpcPacket + 7, // 7: error.Error.timeout:type_name -> error.Timeout + 8, // [8:8] is the sub-list for method output_type + 8, // [8:8] is the sub-list for method input_type + 8, // [8:8] is the sub-list for extension type_name + 8, // [8:8] is the sub-list for extension extendee + 0, // [0:8] is the sub-list for field type_name +} + +func init() { file_error_proto_init() } +func file_error_proto_init() { + if File_error_proto != nil { + return + } + file_error_proto_msgTypes[8].OneofWrappers = []any{ + (*Error_OtherError)(nil), + (*Error_InvalidMethodIndex)(nil), + (*Error_InvalidService)(nil), + (*Error_ProstDecodeError)(nil), + (*Error_ProstEncodeError)(nil), + (*Error_ExecuteError)(nil), + (*Error_MalformatRpcPacket)(nil), + (*Error_Timeout)(nil), + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_error_proto_rawDesc), len(file_error_proto_rawDesc)), + NumEnums: 0, + NumMessages: 9, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_error_proto_goTypes, + DependencyIndexes: file_error_proto_depIdxs, + MessageInfos: file_error_proto_msgTypes, + }.Build() + File_error_proto = out.File + file_error_proto_goTypes = nil + file_error_proto_depIdxs = nil +} diff --git a/easytier-go/proto/generate.go b/easytier-go/proto/generate.go new file mode 100644 index 00000000..0c7ccb87 --- /dev/null +++ b/easytier-go/proto/generate.go @@ -0,0 +1,3 @@ +// Package proto owns generated Go bindings for the protobuf definitions used +// by the embedded EasyTier core. +package proto diff --git a/easytier-go/proto/peer_rpc/peer_rpc.pb.go b/easytier-go/proto/peer_rpc/peer_rpc.pb.go new file mode 100644 index 00000000..5ec454ef --- /dev/null +++ b/easytier-go/proto/peer_rpc/peer_rpc.pb.go @@ -0,0 +1,3895 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.35.1 +// source: peer_rpc.proto + +package peer_rpc + +import ( + common "github.com/EasyTier/EasyTier/easytier-go/proto/common" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type SyncRouteInfoError int32 + +const ( + SyncRouteInfoError_DuplicatePeerId SyncRouteInfoError = 0 + SyncRouteInfoError_Stopped SyncRouteInfoError = 1 +) + +// Enum value maps for SyncRouteInfoError. +var ( + SyncRouteInfoError_name = map[int32]string{ + 0: "DuplicatePeerId", + 1: "Stopped", + } + SyncRouteInfoError_value = map[string]int32{ + "DuplicatePeerId": 0, + "Stopped": 1, + } +) + +func (x SyncRouteInfoError) Enum() *SyncRouteInfoError { + p := new(SyncRouteInfoError) + *p = x + return p +} + +func (x SyncRouteInfoError) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SyncRouteInfoError) Descriptor() protoreflect.EnumDescriptor { + return file_peer_rpc_proto_enumTypes[0].Descriptor() +} + +func (SyncRouteInfoError) Type() protoreflect.EnumType { + return &file_peer_rpc_proto_enumTypes[0] +} + +func (x SyncRouteInfoError) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SyncRouteInfoError.Descriptor instead. +func (SyncRouteInfoError) EnumDescriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{0} +} + +type SecureAuthLevel int32 + +const ( + SecureAuthLevel_None SecureAuthLevel = 0 + SecureAuthLevel_EncryptedUnauthenticated SecureAuthLevel = 1 + SecureAuthLevel_PeerVerified SecureAuthLevel = 2 + SecureAuthLevel_NetworkSecretConfirmed SecureAuthLevel = 3 +) + +// Enum value maps for SecureAuthLevel. +var ( + SecureAuthLevel_name = map[int32]string{ + 0: "None", + 1: "EncryptedUnauthenticated", + 2: "PeerVerified", + 3: "NetworkSecretConfirmed", + } + SecureAuthLevel_value = map[string]int32{ + "None": 0, + "EncryptedUnauthenticated": 1, + "PeerVerified": 2, + "NetworkSecretConfirmed": 3, + } +) + +func (x SecureAuthLevel) Enum() *SecureAuthLevel { + p := new(SecureAuthLevel) + *p = x + return p +} + +func (x SecureAuthLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SecureAuthLevel) Descriptor() protoreflect.EnumDescriptor { + return file_peer_rpc_proto_enumTypes[1].Descriptor() +} + +func (SecureAuthLevel) Type() protoreflect.EnumType { + return &file_peer_rpc_proto_enumTypes[1] +} + +func (x SecureAuthLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SecureAuthLevel.Descriptor instead. +func (SecureAuthLevel) EnumDescriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{1} +} + +type PeerIdentityType int32 + +const ( + PeerIdentityType_Admin PeerIdentityType = 0 + PeerIdentityType_Credential PeerIdentityType = 1 + PeerIdentityType_SharedNode PeerIdentityType = 2 +) + +// Enum value maps for PeerIdentityType. +var ( + PeerIdentityType_name = map[int32]string{ + 0: "Admin", + 1: "Credential", + 2: "SharedNode", + } + PeerIdentityType_value = map[string]int32{ + "Admin": 0, + "Credential": 1, + "SharedNode": 2, + } +) + +func (x PeerIdentityType) Enum() *PeerIdentityType { + p := new(PeerIdentityType) + *p = x + return p +} + +func (x PeerIdentityType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PeerIdentityType) Descriptor() protoreflect.EnumDescriptor { + return file_peer_rpc_proto_enumTypes[2].Descriptor() +} + +func (PeerIdentityType) Type() protoreflect.EnumType { + return &file_peer_rpc_proto_enumTypes[2] +} + +func (x PeerIdentityType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PeerIdentityType.Descriptor instead. +func (PeerIdentityType) EnumDescriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{2} +} + +type PeerConnSessionActionPb int32 + +const ( + PeerConnSessionActionPb_Join PeerConnSessionActionPb = 0 + PeerConnSessionActionPb_Sync PeerConnSessionActionPb = 1 + PeerConnSessionActionPb_Create PeerConnSessionActionPb = 2 +) + +// Enum value maps for PeerConnSessionActionPb. +var ( + PeerConnSessionActionPb_name = map[int32]string{ + 0: "Join", + 1: "Sync", + 2: "Create", + } + PeerConnSessionActionPb_value = map[string]int32{ + "Join": 0, + "Sync": 1, + "Create": 2, + } +) + +func (x PeerConnSessionActionPb) Enum() *PeerConnSessionActionPb { + p := new(PeerConnSessionActionPb) + *p = x + return p +} + +func (x PeerConnSessionActionPb) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PeerConnSessionActionPb) Descriptor() protoreflect.EnumDescriptor { + return file_peer_rpc_proto_enumTypes[3].Descriptor() +} + +func (PeerConnSessionActionPb) Type() protoreflect.EnumType { + return &file_peer_rpc_proto_enumTypes[3] +} + +func (x PeerConnSessionActionPb) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PeerConnSessionActionPb.Descriptor instead. +func (PeerConnSessionActionPb) EnumDescriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{3} +} + +type TrustedCredentialPubkey struct { + state protoimpl.MessageState `protogen:"open.v1"` + Pubkey []byte `protobuf:"bytes,1,opt,name=pubkey,proto3" json:"pubkey,omitempty"` // X25519 public key (32 bytes) + Groups []string `protobuf:"bytes,2,rep,name=groups,proto3" json:"groups,omitempty"` // ACL groups this credential belongs to + AllowRelay bool `protobuf:"varint,3,opt,name=allow_relay,json=allowRelay,proto3" json:"allow_relay,omitempty"` // whether this credential node can relay data + ExpiryUnix int64 `protobuf:"varint,4,opt,name=expiry_unix,json=expiryUnix,proto3" json:"expiry_unix,omitempty"` // expiry time (Unix timestamp) + AllowedProxyCidrs []string `protobuf:"bytes,5,rep,name=allowed_proxy_cidrs,json=allowedProxyCidrs,proto3" json:"allowed_proxy_cidrs,omitempty"` // allowed proxy_cidrs ranges + Reusable *bool `protobuf:"varint,6,opt,name=reusable,proto3,oneof" json:"reusable,omitempty"` // whether multiple peers may use the same credential concurrently + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TrustedCredentialPubkey) Reset() { + *x = TrustedCredentialPubkey{} + mi := &file_peer_rpc_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrustedCredentialPubkey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrustedCredentialPubkey) ProtoMessage() {} + +func (x *TrustedCredentialPubkey) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrustedCredentialPubkey.ProtoReflect.Descriptor instead. +func (*TrustedCredentialPubkey) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{0} +} + +func (x *TrustedCredentialPubkey) GetPubkey() []byte { + if x != nil { + return x.Pubkey + } + return nil +} + +func (x *TrustedCredentialPubkey) GetGroups() []string { + if x != nil { + return x.Groups + } + return nil +} + +func (x *TrustedCredentialPubkey) GetAllowRelay() bool { + if x != nil { + return x.AllowRelay + } + return false +} + +func (x *TrustedCredentialPubkey) GetExpiryUnix() int64 { + if x != nil { + return x.ExpiryUnix + } + return 0 +} + +func (x *TrustedCredentialPubkey) GetAllowedProxyCidrs() []string { + if x != nil { + return x.AllowedProxyCidrs + } + return nil +} + +func (x *TrustedCredentialPubkey) GetReusable() bool { + if x != nil && x.Reusable != nil { + return *x.Reusable + } + return false +} + +type TrustedCredentialPubkeyProof struct { + state protoimpl.MessageState `protogen:"open.v1"` + Credential *TrustedCredentialPubkey `protobuf:"bytes,1,opt,name=credential,proto3" json:"credential,omitempty"` + CredentialHmac []byte `protobuf:"bytes,2,opt,name=credential_hmac,json=credentialHmac,proto3" json:"credential_hmac,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TrustedCredentialPubkeyProof) Reset() { + *x = TrustedCredentialPubkeyProof{} + mi := &file_peer_rpc_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TrustedCredentialPubkeyProof) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TrustedCredentialPubkeyProof) ProtoMessage() {} + +func (x *TrustedCredentialPubkeyProof) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TrustedCredentialPubkeyProof.ProtoReflect.Descriptor instead. +func (*TrustedCredentialPubkeyProof) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{1} +} + +func (x *TrustedCredentialPubkeyProof) GetCredential() *TrustedCredentialPubkey { + if x != nil { + return x.Credential + } + return nil +} + +func (x *TrustedCredentialPubkeyProof) GetCredentialHmac() []byte { + if x != nil { + return x.CredentialHmac + } + return nil +} + +type RoutePeerInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + // means next hop in route table. + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + InstId *common.UUID `protobuf:"bytes,2,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + Cost uint32 `protobuf:"varint,3,opt,name=cost,proto3" json:"cost,omitempty"` + Ipv4Addr *common.Ipv4Addr `protobuf:"bytes,4,opt,name=ipv4_addr,json=ipv4Addr,proto3,oneof" json:"ipv4_addr,omitempty"` + ProxyCidrs []string `protobuf:"bytes,5,rep,name=proxy_cidrs,json=proxyCidrs,proto3" json:"proxy_cidrs,omitempty"` + Hostname *string `protobuf:"bytes,6,opt,name=hostname,proto3,oneof" json:"hostname,omitempty"` + UdpNatType common.NatType `protobuf:"varint,7,opt,name=udp_nat_type,json=udpNatType,proto3,enum=common.NatType" json:"udp_nat_type,omitempty"` + LastUpdate *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=last_update,json=lastUpdate,proto3" json:"last_update,omitempty"` + Version uint32 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"` + EasytierVersion string `protobuf:"bytes,10,opt,name=easytier_version,json=easytierVersion,proto3" json:"easytier_version,omitempty"` + FeatureFlag *common.PeerFeatureFlag `protobuf:"bytes,11,opt,name=feature_flag,json=featureFlag,proto3" json:"feature_flag,omitempty"` + PeerRouteId uint64 `protobuf:"varint,12,opt,name=peer_route_id,json=peerRouteId,proto3" json:"peer_route_id,omitempty"` + NetworkLength uint32 `protobuf:"varint,13,opt,name=network_length,json=networkLength,proto3" json:"network_length,omitempty"` + // Deprecated: Marked as deprecated in peer_rpc.proto. + QuicPort *uint32 `protobuf:"varint,14,opt,name=quic_port,json=quicPort,proto3,oneof" json:"quic_port,omitempty"` + Ipv6Addr *common.Ipv6Inet `protobuf:"bytes,15,opt,name=ipv6_addr,json=ipv6Addr,proto3,oneof" json:"ipv6_addr,omitempty"` + Groups []*PeerGroupInfo `protobuf:"bytes,16,rep,name=groups,proto3" json:"groups,omitempty"` + TcpNatType common.NatType `protobuf:"varint,17,opt,name=tcp_nat_type,json=tcpNatType,proto3,enum=common.NatType" json:"tcp_nat_type,omitempty"` + NoiseStaticPubkey []byte `protobuf:"bytes,18,opt,name=noise_static_pubkey,json=noiseStaticPubkey,proto3" json:"noise_static_pubkey,omitempty"` + // Trusted credential public keys published by admin nodes (holding network_secret) + TrustedCredentialPubkeys []*TrustedCredentialPubkeyProof `protobuf:"bytes,19,rep,name=trusted_credential_pubkeys,json=trustedCredentialPubkeys,proto3" json:"trusted_credential_pubkeys,omitempty"` + Ipv6PublicAddrPrefix *common.Ipv6Inet `protobuf:"bytes,22,opt,name=ipv6_public_addr_prefix,json=ipv6PublicAddrPrefix,proto3,oneof" json:"ipv6_public_addr_prefix,omitempty"` + Ipv6PublicAddrLease *common.Ipv6Inet `protobuf:"bytes,24,opt,name=ipv6_public_addr_lease,json=ipv6PublicAddrLease,proto3,oneof" json:"ipv6_public_addr_lease,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RoutePeerInfo) Reset() { + *x = RoutePeerInfo{} + mi := &file_peer_rpc_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RoutePeerInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RoutePeerInfo) ProtoMessage() {} + +func (x *RoutePeerInfo) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RoutePeerInfo.ProtoReflect.Descriptor instead. +func (*RoutePeerInfo) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{2} +} + +func (x *RoutePeerInfo) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *RoutePeerInfo) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +func (x *RoutePeerInfo) GetCost() uint32 { + if x != nil { + return x.Cost + } + return 0 +} + +func (x *RoutePeerInfo) GetIpv4Addr() *common.Ipv4Addr { + if x != nil { + return x.Ipv4Addr + } + return nil +} + +func (x *RoutePeerInfo) GetProxyCidrs() []string { + if x != nil { + return x.ProxyCidrs + } + return nil +} + +func (x *RoutePeerInfo) GetHostname() string { + if x != nil && x.Hostname != nil { + return *x.Hostname + } + return "" +} + +func (x *RoutePeerInfo) GetUdpNatType() common.NatType { + if x != nil { + return x.UdpNatType + } + return common.NatType(0) +} + +func (x *RoutePeerInfo) GetLastUpdate() *timestamppb.Timestamp { + if x != nil { + return x.LastUpdate + } + return nil +} + +func (x *RoutePeerInfo) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *RoutePeerInfo) GetEasytierVersion() string { + if x != nil { + return x.EasytierVersion + } + return "" +} + +func (x *RoutePeerInfo) GetFeatureFlag() *common.PeerFeatureFlag { + if x != nil { + return x.FeatureFlag + } + return nil +} + +func (x *RoutePeerInfo) GetPeerRouteId() uint64 { + if x != nil { + return x.PeerRouteId + } + return 0 +} + +func (x *RoutePeerInfo) GetNetworkLength() uint32 { + if x != nil { + return x.NetworkLength + } + return 0 +} + +// Deprecated: Marked as deprecated in peer_rpc.proto. +func (x *RoutePeerInfo) GetQuicPort() uint32 { + if x != nil && x.QuicPort != nil { + return *x.QuicPort + } + return 0 +} + +func (x *RoutePeerInfo) GetIpv6Addr() *common.Ipv6Inet { + if x != nil { + return x.Ipv6Addr + } + return nil +} + +func (x *RoutePeerInfo) GetGroups() []*PeerGroupInfo { + if x != nil { + return x.Groups + } + return nil +} + +func (x *RoutePeerInfo) GetTcpNatType() common.NatType { + if x != nil { + return x.TcpNatType + } + return common.NatType(0) +} + +func (x *RoutePeerInfo) GetNoiseStaticPubkey() []byte { + if x != nil { + return x.NoiseStaticPubkey + } + return nil +} + +func (x *RoutePeerInfo) GetTrustedCredentialPubkeys() []*TrustedCredentialPubkeyProof { + if x != nil { + return x.TrustedCredentialPubkeys + } + return nil +} + +func (x *RoutePeerInfo) GetIpv6PublicAddrPrefix() *common.Ipv6Inet { + if x != nil { + return x.Ipv6PublicAddrPrefix + } + return nil +} + +func (x *RoutePeerInfo) GetIpv6PublicAddrLease() *common.Ipv6Inet { + if x != nil { + return x.Ipv6PublicAddrLease + } + return nil +} + +type PeerIdVersion struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + Version uint32 `protobuf:"varint,2,opt,name=version,proto3" json:"version,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerIdVersion) Reset() { + *x = PeerIdVersion{} + mi := &file_peer_rpc_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerIdVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerIdVersion) ProtoMessage() {} + +func (x *PeerIdVersion) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerIdVersion.ProtoReflect.Descriptor instead. +func (*PeerIdVersion) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{3} +} + +func (x *PeerIdVersion) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *PeerIdVersion) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +type RouteConnBitmap struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerIds []*PeerIdVersion `protobuf:"bytes,1,rep,name=peer_ids,json=peerIds,proto3" json:"peer_ids,omitempty"` + Bitmap []byte `protobuf:"bytes,2,opt,name=bitmap,proto3" json:"bitmap,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RouteConnBitmap) Reset() { + *x = RouteConnBitmap{} + mi := &file_peer_rpc_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouteConnBitmap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteConnBitmap) ProtoMessage() {} + +func (x *RouteConnBitmap) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteConnBitmap.ProtoReflect.Descriptor instead. +func (*RouteConnBitmap) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{4} +} + +func (x *RouteConnBitmap) GetPeerIds() []*PeerIdVersion { + if x != nil { + return x.PeerIds + } + return nil +} + +func (x *RouteConnBitmap) GetBitmap() []byte { + if x != nil { + return x.Bitmap + } + return nil +} + +type RouteConnPeerList struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerConnInfos []*RouteConnPeerList_PeerConnInfo `protobuf:"bytes,1,rep,name=peer_conn_infos,json=peerConnInfos,proto3" json:"peer_conn_infos,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RouteConnPeerList) Reset() { + *x = RouteConnPeerList{} + mi := &file_peer_rpc_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouteConnPeerList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteConnPeerList) ProtoMessage() {} + +func (x *RouteConnPeerList) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteConnPeerList.ProtoReflect.Descriptor instead. +func (*RouteConnPeerList) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{5} +} + +func (x *RouteConnPeerList) GetPeerConnInfos() []*RouteConnPeerList_PeerConnInfo { + if x != nil { + return x.PeerConnInfos + } + return nil +} + +type RoutePeerInfos struct { + state protoimpl.MessageState `protogen:"open.v1"` + Items []*RoutePeerInfo `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RoutePeerInfos) Reset() { + *x = RoutePeerInfos{} + mi := &file_peer_rpc_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RoutePeerInfos) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RoutePeerInfos) ProtoMessage() {} + +func (x *RoutePeerInfos) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RoutePeerInfos.ProtoReflect.Descriptor instead. +func (*RoutePeerInfos) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{6} +} + +func (x *RoutePeerInfos) GetItems() []*RoutePeerInfo { + if x != nil { + return x.Items + } + return nil +} + +type ForeignNetworkRouteInfoKey struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + NetworkName string `protobuf:"bytes,2,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ForeignNetworkRouteInfoKey) Reset() { + *x = ForeignNetworkRouteInfoKey{} + mi := &file_peer_rpc_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ForeignNetworkRouteInfoKey) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForeignNetworkRouteInfoKey) ProtoMessage() {} + +func (x *ForeignNetworkRouteInfoKey) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[7] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ForeignNetworkRouteInfoKey.ProtoReflect.Descriptor instead. +func (*ForeignNetworkRouteInfoKey) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{7} +} + +func (x *ForeignNetworkRouteInfoKey) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *ForeignNetworkRouteInfoKey) GetNetworkName() string { + if x != nil { + return x.NetworkName + } + return "" +} + +type ForeignNetworkRouteInfoEntry struct { + state protoimpl.MessageState `protogen:"open.v1"` + ForeignPeerIds []uint32 `protobuf:"varint,1,rep,packed,name=foreign_peer_ids,json=foreignPeerIds,proto3" json:"foreign_peer_ids,omitempty"` + LastUpdate *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=last_update,json=lastUpdate,proto3" json:"last_update,omitempty"` + Version uint32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` + NetworkSecretDigest []byte `protobuf:"bytes,4,opt,name=network_secret_digest,json=networkSecretDigest,proto3" json:"network_secret_digest,omitempty"` + MyPeerIdForThisNetwork uint32 `protobuf:"varint,5,opt,name=my_peer_id_for_this_network,json=myPeerIdForThisNetwork,proto3" json:"my_peer_id_for_this_network,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ForeignNetworkRouteInfoEntry) Reset() { + *x = ForeignNetworkRouteInfoEntry{} + mi := &file_peer_rpc_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ForeignNetworkRouteInfoEntry) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ForeignNetworkRouteInfoEntry) ProtoMessage() {} + +func (x *ForeignNetworkRouteInfoEntry) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[8] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ForeignNetworkRouteInfoEntry.ProtoReflect.Descriptor instead. +func (*ForeignNetworkRouteInfoEntry) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{8} +} + +func (x *ForeignNetworkRouteInfoEntry) GetForeignPeerIds() []uint32 { + if x != nil { + return x.ForeignPeerIds + } + return nil +} + +func (x *ForeignNetworkRouteInfoEntry) GetLastUpdate() *timestamppb.Timestamp { + if x != nil { + return x.LastUpdate + } + return nil +} + +func (x *ForeignNetworkRouteInfoEntry) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *ForeignNetworkRouteInfoEntry) GetNetworkSecretDigest() []byte { + if x != nil { + return x.NetworkSecretDigest + } + return nil +} + +func (x *ForeignNetworkRouteInfoEntry) GetMyPeerIdForThisNetwork() uint32 { + if x != nil { + return x.MyPeerIdForThisNetwork + } + return 0 +} + +type RouteForeignNetworkInfos struct { + state protoimpl.MessageState `protogen:"open.v1"` + Infos []*RouteForeignNetworkInfos_Info `protobuf:"bytes,1,rep,name=infos,proto3" json:"infos,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RouteForeignNetworkInfos) Reset() { + *x = RouteForeignNetworkInfos{} + mi := &file_peer_rpc_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouteForeignNetworkInfos) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteForeignNetworkInfos) ProtoMessage() {} + +func (x *RouteForeignNetworkInfos) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[9] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteForeignNetworkInfos.ProtoReflect.Descriptor instead. +func (*RouteForeignNetworkInfos) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{9} +} + +func (x *RouteForeignNetworkInfos) GetInfos() []*RouteForeignNetworkInfos_Info { + if x != nil { + return x.Infos + } + return nil +} + +type RouteForeignNetworkSummary struct { + state protoimpl.MessageState `protogen:"open.v1"` + InfoMap map[uint32]*RouteForeignNetworkSummary_Info `protobuf:"bytes,1,rep,name=info_map,json=infoMap,proto3" json:"info_map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RouteForeignNetworkSummary) Reset() { + *x = RouteForeignNetworkSummary{} + mi := &file_peer_rpc_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouteForeignNetworkSummary) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteForeignNetworkSummary) ProtoMessage() {} + +func (x *RouteForeignNetworkSummary) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[10] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteForeignNetworkSummary.ProtoReflect.Descriptor instead. +func (*RouteForeignNetworkSummary) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{10} +} + +func (x *RouteForeignNetworkSummary) GetInfoMap() map[uint32]*RouteForeignNetworkSummary_Info { + if x != nil { + return x.InfoMap + } + return nil +} + +type PeerGroupInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + GroupName string `protobuf:"bytes,1,opt,name=group_name,json=groupName,proto3" json:"group_name,omitempty"` + GroupProof []byte `protobuf:"bytes,2,opt,name=group_proof,json=groupProof,proto3" json:"group_proof,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerGroupInfo) Reset() { + *x = PeerGroupInfo{} + mi := &file_peer_rpc_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerGroupInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerGroupInfo) ProtoMessage() {} + +func (x *PeerGroupInfo) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[11] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerGroupInfo.ProtoReflect.Descriptor instead. +func (*PeerGroupInfo) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{11} +} + +func (x *PeerGroupInfo) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" +} + +func (x *PeerGroupInfo) GetGroupProof() []byte { + if x != nil { + return x.GroupProof + } + return nil +} + +type SyncRouteInfoRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + MyPeerId uint32 `protobuf:"varint,1,opt,name=my_peer_id,json=myPeerId,proto3" json:"my_peer_id,omitempty"` + MySessionId uint64 `protobuf:"varint,2,opt,name=my_session_id,json=mySessionId,proto3" json:"my_session_id,omitempty"` + IsInitiator bool `protobuf:"varint,3,opt,name=is_initiator,json=isInitiator,proto3" json:"is_initiator,omitempty"` + PeerInfos *RoutePeerInfos `protobuf:"bytes,4,opt,name=peer_infos,json=peerInfos,proto3" json:"peer_infos,omitempty"` + // Types that are valid to be assigned to ConnInfo: + // + // *SyncRouteInfoRequest_ConnBitmap + // *SyncRouteInfoRequest_ConnPeerList + ConnInfo isSyncRouteInfoRequest_ConnInfo `protobuf_oneof:"conn_info"` + ForeignNetworkInfos *RouteForeignNetworkInfos `protobuf:"bytes,6,opt,name=foreign_network_infos,json=foreignNetworkInfos,proto3" json:"foreign_network_infos,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SyncRouteInfoRequest) Reset() { + *x = SyncRouteInfoRequest{} + mi := &file_peer_rpc_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SyncRouteInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncRouteInfoRequest) ProtoMessage() {} + +func (x *SyncRouteInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[12] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SyncRouteInfoRequest.ProtoReflect.Descriptor instead. +func (*SyncRouteInfoRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{12} +} + +func (x *SyncRouteInfoRequest) GetMyPeerId() uint32 { + if x != nil { + return x.MyPeerId + } + return 0 +} + +func (x *SyncRouteInfoRequest) GetMySessionId() uint64 { + if x != nil { + return x.MySessionId + } + return 0 +} + +func (x *SyncRouteInfoRequest) GetIsInitiator() bool { + if x != nil { + return x.IsInitiator + } + return false +} + +func (x *SyncRouteInfoRequest) GetPeerInfos() *RoutePeerInfos { + if x != nil { + return x.PeerInfos + } + return nil +} + +func (x *SyncRouteInfoRequest) GetConnInfo() isSyncRouteInfoRequest_ConnInfo { + if x != nil { + return x.ConnInfo + } + return nil +} + +func (x *SyncRouteInfoRequest) GetConnBitmap() *RouteConnBitmap { + if x != nil { + if x, ok := x.ConnInfo.(*SyncRouteInfoRequest_ConnBitmap); ok { + return x.ConnBitmap + } + } + return nil +} + +func (x *SyncRouteInfoRequest) GetConnPeerList() *RouteConnPeerList { + if x != nil { + if x, ok := x.ConnInfo.(*SyncRouteInfoRequest_ConnPeerList); ok { + return x.ConnPeerList + } + } + return nil +} + +func (x *SyncRouteInfoRequest) GetForeignNetworkInfos() *RouteForeignNetworkInfos { + if x != nil { + return x.ForeignNetworkInfos + } + return nil +} + +type isSyncRouteInfoRequest_ConnInfo interface { + isSyncRouteInfoRequest_ConnInfo() +} + +type SyncRouteInfoRequest_ConnBitmap struct { + ConnBitmap *RouteConnBitmap `protobuf:"bytes,5,opt,name=conn_bitmap,json=connBitmap,proto3,oneof"` +} + +type SyncRouteInfoRequest_ConnPeerList struct { + ConnPeerList *RouteConnPeerList `protobuf:"bytes,7,opt,name=conn_peer_list,json=connPeerList,proto3,oneof"` +} + +func (*SyncRouteInfoRequest_ConnBitmap) isSyncRouteInfoRequest_ConnInfo() {} + +func (*SyncRouteInfoRequest_ConnPeerList) isSyncRouteInfoRequest_ConnInfo() {} + +type SyncRouteInfoResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + IsInitiator bool `protobuf:"varint,1,opt,name=is_initiator,json=isInitiator,proto3" json:"is_initiator,omitempty"` + SessionId uint64 `protobuf:"varint,2,opt,name=session_id,json=sessionId,proto3" json:"session_id,omitempty"` + Error *SyncRouteInfoError `protobuf:"varint,3,opt,name=error,proto3,enum=peer_rpc.SyncRouteInfoError,oneof" json:"error,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SyncRouteInfoResponse) Reset() { + *x = SyncRouteInfoResponse{} + mi := &file_peer_rpc_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SyncRouteInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SyncRouteInfoResponse) ProtoMessage() {} + +func (x *SyncRouteInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[13] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SyncRouteInfoResponse.ProtoReflect.Descriptor instead. +func (*SyncRouteInfoResponse) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{13} +} + +func (x *SyncRouteInfoResponse) GetIsInitiator() bool { + if x != nil { + return x.IsInitiator + } + return false +} + +func (x *SyncRouteInfoResponse) GetSessionId() uint64 { + if x != nil { + return x.SessionId + } + return 0 +} + +func (x *SyncRouteInfoResponse) GetError() SyncRouteInfoError { + if x != nil && x.Error != nil { + return *x.Error + } + return SyncRouteInfoError_DuplicatePeerId +} + +type AcquireIpv6PublicAddrLeaseRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + InstId *common.UUID `protobuf:"bytes,2,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *AcquireIpv6PublicAddrLeaseRequest) Reset() { + *x = AcquireIpv6PublicAddrLeaseRequest{} + mi := &file_peer_rpc_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *AcquireIpv6PublicAddrLeaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AcquireIpv6PublicAddrLeaseRequest) ProtoMessage() {} + +func (x *AcquireIpv6PublicAddrLeaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[14] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AcquireIpv6PublicAddrLeaseRequest.ProtoReflect.Descriptor instead. +func (*AcquireIpv6PublicAddrLeaseRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{14} +} + +func (x *AcquireIpv6PublicAddrLeaseRequest) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *AcquireIpv6PublicAddrLeaseRequest) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +type RenewIpv6PublicAddrLeaseRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + InstId *common.UUID `protobuf:"bytes,2,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + LeasedAddr *common.Ipv6Inet `protobuf:"bytes,3,opt,name=leased_addr,json=leasedAddr,proto3" json:"leased_addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RenewIpv6PublicAddrLeaseRequest) Reset() { + *x = RenewIpv6PublicAddrLeaseRequest{} + mi := &file_peer_rpc_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RenewIpv6PublicAddrLeaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RenewIpv6PublicAddrLeaseRequest) ProtoMessage() {} + +func (x *RenewIpv6PublicAddrLeaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[15] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RenewIpv6PublicAddrLeaseRequest.ProtoReflect.Descriptor instead. +func (*RenewIpv6PublicAddrLeaseRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{15} +} + +func (x *RenewIpv6PublicAddrLeaseRequest) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *RenewIpv6PublicAddrLeaseRequest) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +func (x *RenewIpv6PublicAddrLeaseRequest) GetLeasedAddr() *common.Ipv6Inet { + if x != nil { + return x.LeasedAddr + } + return nil +} + +type ReleaseIpv6PublicAddrLeaseRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + InstId *common.UUID `protobuf:"bytes,2,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReleaseIpv6PublicAddrLeaseRequest) Reset() { + *x = ReleaseIpv6PublicAddrLeaseRequest{} + mi := &file_peer_rpc_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReleaseIpv6PublicAddrLeaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReleaseIpv6PublicAddrLeaseRequest) ProtoMessage() {} + +func (x *ReleaseIpv6PublicAddrLeaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[16] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReleaseIpv6PublicAddrLeaseRequest.ProtoReflect.Descriptor instead. +func (*ReleaseIpv6PublicAddrLeaseRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{16} +} + +func (x *ReleaseIpv6PublicAddrLeaseRequest) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *ReleaseIpv6PublicAddrLeaseRequest) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +type GetIpv6PublicAddrLeaseRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + InstId *common.UUID `protobuf:"bytes,2,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetIpv6PublicAddrLeaseRequest) Reset() { + *x = GetIpv6PublicAddrLeaseRequest{} + mi := &file_peer_rpc_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetIpv6PublicAddrLeaseRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIpv6PublicAddrLeaseRequest) ProtoMessage() {} + +func (x *GetIpv6PublicAddrLeaseRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[17] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetIpv6PublicAddrLeaseRequest.ProtoReflect.Descriptor instead. +func (*GetIpv6PublicAddrLeaseRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{17} +} + +func (x *GetIpv6PublicAddrLeaseRequest) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *GetIpv6PublicAddrLeaseRequest) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +type Ipv6PublicAddrLeaseReply struct { + state protoimpl.MessageState `protogen:"open.v1"` + ProviderPeerId uint32 `protobuf:"varint,1,opt,name=provider_peer_id,json=providerPeerId,proto3" json:"provider_peer_id,omitempty"` + ProviderInstId *common.UUID `protobuf:"bytes,2,opt,name=provider_inst_id,json=providerInstId,proto3" json:"provider_inst_id,omitempty"` + ProviderPrefix *common.Ipv6Inet `protobuf:"bytes,3,opt,name=provider_prefix,json=providerPrefix,proto3" json:"provider_prefix,omitempty"` + LeasedAddr *common.Ipv6Inet `protobuf:"bytes,4,opt,name=leased_addr,json=leasedAddr,proto3" json:"leased_addr,omitempty"` + ValidUntil *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=valid_until,json=validUntil,proto3" json:"valid_until,omitempty"` + Reused bool `protobuf:"varint,6,opt,name=reused,proto3" json:"reused,omitempty"` + ErrorMsg *string `protobuf:"bytes,7,opt,name=error_msg,json=errorMsg,proto3,oneof" json:"error_msg,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *Ipv6PublicAddrLeaseReply) Reset() { + *x = Ipv6PublicAddrLeaseReply{} + mi := &file_peer_rpc_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *Ipv6PublicAddrLeaseReply) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Ipv6PublicAddrLeaseReply) ProtoMessage() {} + +func (x *Ipv6PublicAddrLeaseReply) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[18] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Ipv6PublicAddrLeaseReply.ProtoReflect.Descriptor instead. +func (*Ipv6PublicAddrLeaseReply) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{18} +} + +func (x *Ipv6PublicAddrLeaseReply) GetProviderPeerId() uint32 { + if x != nil { + return x.ProviderPeerId + } + return 0 +} + +func (x *Ipv6PublicAddrLeaseReply) GetProviderInstId() *common.UUID { + if x != nil { + return x.ProviderInstId + } + return nil +} + +func (x *Ipv6PublicAddrLeaseReply) GetProviderPrefix() *common.Ipv6Inet { + if x != nil { + return x.ProviderPrefix + } + return nil +} + +func (x *Ipv6PublicAddrLeaseReply) GetLeasedAddr() *common.Ipv6Inet { + if x != nil { + return x.LeasedAddr + } + return nil +} + +func (x *Ipv6PublicAddrLeaseReply) GetValidUntil() *timestamppb.Timestamp { + if x != nil { + return x.ValidUntil + } + return nil +} + +func (x *Ipv6PublicAddrLeaseReply) GetReused() bool { + if x != nil { + return x.Reused + } + return false +} + +func (x *Ipv6PublicAddrLeaseReply) GetErrorMsg() string { + if x != nil && x.ErrorMsg != nil { + return *x.ErrorMsg + } + return "" +} + +type GetIpListRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetIpListRequest) Reset() { + *x = GetIpListRequest{} + mi := &file_peer_rpc_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetIpListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIpListRequest) ProtoMessage() {} + +func (x *GetIpListRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[19] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetIpListRequest.ProtoReflect.Descriptor instead. +func (*GetIpListRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{19} +} + +type GetIpListResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + PublicIpv4 *common.Ipv4Addr `protobuf:"bytes,1,opt,name=public_ipv4,json=publicIpv4,proto3" json:"public_ipv4,omitempty"` + InterfaceIpv4S []*common.Ipv4Addr `protobuf:"bytes,2,rep,name=interface_ipv4s,json=interfaceIpv4s,proto3" json:"interface_ipv4s,omitempty"` + PublicIpv6 *common.Ipv6Addr `protobuf:"bytes,3,opt,name=public_ipv6,json=publicIpv6,proto3" json:"public_ipv6,omitempty"` + InterfaceIpv6S []*common.Ipv6Addr `protobuf:"bytes,4,rep,name=interface_ipv6s,json=interfaceIpv6s,proto3" json:"interface_ipv6s,omitempty"` + Listeners []*common.Url `protobuf:"bytes,5,rep,name=listeners,proto3" json:"listeners,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetIpListResponse) Reset() { + *x = GetIpListResponse{} + mi := &file_peer_rpc_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetIpListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetIpListResponse) ProtoMessage() {} + +func (x *GetIpListResponse) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[20] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetIpListResponse.ProtoReflect.Descriptor instead. +func (*GetIpListResponse) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{20} +} + +func (x *GetIpListResponse) GetPublicIpv4() *common.Ipv4Addr { + if x != nil { + return x.PublicIpv4 + } + return nil +} + +func (x *GetIpListResponse) GetInterfaceIpv4S() []*common.Ipv4Addr { + if x != nil { + return x.InterfaceIpv4S + } + return nil +} + +func (x *GetIpListResponse) GetPublicIpv6() *common.Ipv6Addr { + if x != nil { + return x.PublicIpv6 + } + return nil +} + +func (x *GetIpListResponse) GetInterfaceIpv6S() []*common.Ipv6Addr { + if x != nil { + return x.InterfaceIpv6S + } + return nil +} + +func (x *GetIpListResponse) GetListeners() []*common.Url { + if x != nil { + return x.Listeners + } + return nil +} + +type SendUdpHolePunchPacketRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ConnectorAddr *common.SocketAddr `protobuf:"bytes,1,opt,name=connector_addr,json=connectorAddr,proto3" json:"connector_addr,omitempty"` + ListenerPort uint32 `protobuf:"varint,2,opt,name=listener_port,json=listenerPort,proto3" json:"listener_port,omitempty"` + PreferredSrcIpv6 *common.Ipv6Addr `protobuf:"bytes,3,opt,name=preferred_src_ipv6,json=preferredSrcIpv6,proto3" json:"preferred_src_ipv6,omitempty"` + ConnectorAddrs []*common.SocketAddr `protobuf:"bytes,4,rep,name=connector_addrs,json=connectorAddrs,proto3" json:"connector_addrs,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SendUdpHolePunchPacketRequest) Reset() { + *x = SendUdpHolePunchPacketRequest{} + mi := &file_peer_rpc_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SendUdpHolePunchPacketRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendUdpHolePunchPacketRequest) ProtoMessage() {} + +func (x *SendUdpHolePunchPacketRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[21] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendUdpHolePunchPacketRequest.ProtoReflect.Descriptor instead. +func (*SendUdpHolePunchPacketRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{21} +} + +func (x *SendUdpHolePunchPacketRequest) GetConnectorAddr() *common.SocketAddr { + if x != nil { + return x.ConnectorAddr + } + return nil +} + +func (x *SendUdpHolePunchPacketRequest) GetListenerPort() uint32 { + if x != nil { + return x.ListenerPort + } + return 0 +} + +func (x *SendUdpHolePunchPacketRequest) GetPreferredSrcIpv6() *common.Ipv6Addr { + if x != nil { + return x.PreferredSrcIpv6 + } + return nil +} + +func (x *SendUdpHolePunchPacketRequest) GetConnectorAddrs() []*common.SocketAddr { + if x != nil { + return x.ConnectorAddrs + } + return nil +} + +type SelectPunchListenerRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ForceNew bool `protobuf:"varint,1,opt,name=force_new,json=forceNew,proto3" json:"force_new,omitempty"` + PreferPortMapping bool `protobuf:"varint,2,opt,name=prefer_port_mapping,json=preferPortMapping,proto3" json:"prefer_port_mapping,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SelectPunchListenerRequest) Reset() { + *x = SelectPunchListenerRequest{} + mi := &file_peer_rpc_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SelectPunchListenerRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SelectPunchListenerRequest) ProtoMessage() {} + +func (x *SelectPunchListenerRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[22] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SelectPunchListenerRequest.ProtoReflect.Descriptor instead. +func (*SelectPunchListenerRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{22} +} + +func (x *SelectPunchListenerRequest) GetForceNew() bool { + if x != nil { + return x.ForceNew + } + return false +} + +func (x *SelectPunchListenerRequest) GetPreferPortMapping() bool { + if x != nil { + return x.PreferPortMapping + } + return false +} + +type SelectPunchListenerResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + ListenerMappedAddr *common.SocketAddr `protobuf:"bytes,1,opt,name=listener_mapped_addr,json=listenerMappedAddr,proto3" json:"listener_mapped_addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SelectPunchListenerResponse) Reset() { + *x = SelectPunchListenerResponse{} + mi := &file_peer_rpc_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SelectPunchListenerResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SelectPunchListenerResponse) ProtoMessage() {} + +func (x *SelectPunchListenerResponse) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[23] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SelectPunchListenerResponse.ProtoReflect.Descriptor instead. +func (*SelectPunchListenerResponse) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{23} +} + +func (x *SelectPunchListenerResponse) GetListenerMappedAddr() *common.SocketAddr { + if x != nil { + return x.ListenerMappedAddr + } + return nil +} + +type SendPunchPacketConeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ListenerMappedAddr *common.SocketAddr `protobuf:"bytes,1,opt,name=listener_mapped_addr,json=listenerMappedAddr,proto3" json:"listener_mapped_addr,omitempty"` + DestAddr *common.SocketAddr `protobuf:"bytes,2,opt,name=dest_addr,json=destAddr,proto3" json:"dest_addr,omitempty"` + TransactionId uint32 `protobuf:"varint,3,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` + // send this many packets in a batch + PacketCountPerBatch uint32 `protobuf:"varint,4,opt,name=packet_count_per_batch,json=packetCountPerBatch,proto3" json:"packet_count_per_batch,omitempty"` + // send total this batch count, total packet count = packet_batch_size * packet_batch_count + PacketBatchCount uint32 `protobuf:"varint,5,opt,name=packet_batch_count,json=packetBatchCount,proto3" json:"packet_batch_count,omitempty"` + // interval between each batch + PacketIntervalMs uint32 `protobuf:"varint,6,opt,name=packet_interval_ms,json=packetIntervalMs,proto3" json:"packet_interval_ms,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SendPunchPacketConeRequest) Reset() { + *x = SendPunchPacketConeRequest{} + mi := &file_peer_rpc_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SendPunchPacketConeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendPunchPacketConeRequest) ProtoMessage() {} + +func (x *SendPunchPacketConeRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[24] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendPunchPacketConeRequest.ProtoReflect.Descriptor instead. +func (*SendPunchPacketConeRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{24} +} + +func (x *SendPunchPacketConeRequest) GetListenerMappedAddr() *common.SocketAddr { + if x != nil { + return x.ListenerMappedAddr + } + return nil +} + +func (x *SendPunchPacketConeRequest) GetDestAddr() *common.SocketAddr { + if x != nil { + return x.DestAddr + } + return nil +} + +func (x *SendPunchPacketConeRequest) GetTransactionId() uint32 { + if x != nil { + return x.TransactionId + } + return 0 +} + +func (x *SendPunchPacketConeRequest) GetPacketCountPerBatch() uint32 { + if x != nil { + return x.PacketCountPerBatch + } + return 0 +} + +func (x *SendPunchPacketConeRequest) GetPacketBatchCount() uint32 { + if x != nil { + return x.PacketBatchCount + } + return 0 +} + +func (x *SendPunchPacketConeRequest) GetPacketIntervalMs() uint32 { + if x != nil { + return x.PacketIntervalMs + } + return 0 +} + +type SendPunchPacketHardSymRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ListenerMappedAddr *common.SocketAddr `protobuf:"bytes,1,opt,name=listener_mapped_addr,json=listenerMappedAddr,proto3" json:"listener_mapped_addr,omitempty"` + PublicIps []*common.Ipv4Addr `protobuf:"bytes,2,rep,name=public_ips,json=publicIps,proto3" json:"public_ips,omitempty"` + TransactionId uint32 `protobuf:"varint,3,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` + PortIndex uint32 `protobuf:"varint,4,opt,name=port_index,json=portIndex,proto3" json:"port_index,omitempty"` + Round uint32 `protobuf:"varint,5,opt,name=round,proto3" json:"round,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SendPunchPacketHardSymRequest) Reset() { + *x = SendPunchPacketHardSymRequest{} + mi := &file_peer_rpc_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SendPunchPacketHardSymRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendPunchPacketHardSymRequest) ProtoMessage() {} + +func (x *SendPunchPacketHardSymRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[25] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendPunchPacketHardSymRequest.ProtoReflect.Descriptor instead. +func (*SendPunchPacketHardSymRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{25} +} + +func (x *SendPunchPacketHardSymRequest) GetListenerMappedAddr() *common.SocketAddr { + if x != nil { + return x.ListenerMappedAddr + } + return nil +} + +func (x *SendPunchPacketHardSymRequest) GetPublicIps() []*common.Ipv4Addr { + if x != nil { + return x.PublicIps + } + return nil +} + +func (x *SendPunchPacketHardSymRequest) GetTransactionId() uint32 { + if x != nil { + return x.TransactionId + } + return 0 +} + +func (x *SendPunchPacketHardSymRequest) GetPortIndex() uint32 { + if x != nil { + return x.PortIndex + } + return 0 +} + +func (x *SendPunchPacketHardSymRequest) GetRound() uint32 { + if x != nil { + return x.Round + } + return 0 +} + +type SendPunchPacketHardSymResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + NextPortIndex uint32 `protobuf:"varint,1,opt,name=next_port_index,json=nextPortIndex,proto3" json:"next_port_index,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SendPunchPacketHardSymResponse) Reset() { + *x = SendPunchPacketHardSymResponse{} + mi := &file_peer_rpc_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SendPunchPacketHardSymResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendPunchPacketHardSymResponse) ProtoMessage() {} + +func (x *SendPunchPacketHardSymResponse) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[26] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendPunchPacketHardSymResponse.ProtoReflect.Descriptor instead. +func (*SendPunchPacketHardSymResponse) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{26} +} + +func (x *SendPunchPacketHardSymResponse) GetNextPortIndex() uint32 { + if x != nil { + return x.NextPortIndex + } + return 0 +} + +type SendPunchPacketEasySymRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ListenerMappedAddr *common.SocketAddr `protobuf:"bytes,1,opt,name=listener_mapped_addr,json=listenerMappedAddr,proto3" json:"listener_mapped_addr,omitempty"` + PublicIps []*common.Ipv4Addr `protobuf:"bytes,2,rep,name=public_ips,json=publicIps,proto3" json:"public_ips,omitempty"` + TransactionId uint32 `protobuf:"varint,3,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` + BasePortNum uint32 `protobuf:"varint,4,opt,name=base_port_num,json=basePortNum,proto3" json:"base_port_num,omitempty"` + MaxPortNum uint32 `protobuf:"varint,5,opt,name=max_port_num,json=maxPortNum,proto3" json:"max_port_num,omitempty"` + IsIncremental bool `protobuf:"varint,6,opt,name=is_incremental,json=isIncremental,proto3" json:"is_incremental,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SendPunchPacketEasySymRequest) Reset() { + *x = SendPunchPacketEasySymRequest{} + mi := &file_peer_rpc_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SendPunchPacketEasySymRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendPunchPacketEasySymRequest) ProtoMessage() {} + +func (x *SendPunchPacketEasySymRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[27] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendPunchPacketEasySymRequest.ProtoReflect.Descriptor instead. +func (*SendPunchPacketEasySymRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{27} +} + +func (x *SendPunchPacketEasySymRequest) GetListenerMappedAddr() *common.SocketAddr { + if x != nil { + return x.ListenerMappedAddr + } + return nil +} + +func (x *SendPunchPacketEasySymRequest) GetPublicIps() []*common.Ipv4Addr { + if x != nil { + return x.PublicIps + } + return nil +} + +func (x *SendPunchPacketEasySymRequest) GetTransactionId() uint32 { + if x != nil { + return x.TransactionId + } + return 0 +} + +func (x *SendPunchPacketEasySymRequest) GetBasePortNum() uint32 { + if x != nil { + return x.BasePortNum + } + return 0 +} + +func (x *SendPunchPacketEasySymRequest) GetMaxPortNum() uint32 { + if x != nil { + return x.MaxPortNum + } + return 0 +} + +func (x *SendPunchPacketEasySymRequest) GetIsIncremental() bool { + if x != nil { + return x.IsIncremental + } + return false +} + +type SendPunchPacketBothEasySymRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + UdpSocketCount uint32 `protobuf:"varint,1,opt,name=udp_socket_count,json=udpSocketCount,proto3" json:"udp_socket_count,omitempty"` + PublicIp *common.Ipv4Addr `protobuf:"bytes,2,opt,name=public_ip,json=publicIp,proto3" json:"public_ip,omitempty"` + TransactionId uint32 `protobuf:"varint,3,opt,name=transaction_id,json=transactionId,proto3" json:"transaction_id,omitempty"` + DstPortNum uint32 `protobuf:"varint,4,opt,name=dst_port_num,json=dstPortNum,proto3" json:"dst_port_num,omitempty"` + WaitTimeMs uint32 `protobuf:"varint,5,opt,name=wait_time_ms,json=waitTimeMs,proto3" json:"wait_time_ms,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SendPunchPacketBothEasySymRequest) Reset() { + *x = SendPunchPacketBothEasySymRequest{} + mi := &file_peer_rpc_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SendPunchPacketBothEasySymRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendPunchPacketBothEasySymRequest) ProtoMessage() {} + +func (x *SendPunchPacketBothEasySymRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[28] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendPunchPacketBothEasySymRequest.ProtoReflect.Descriptor instead. +func (*SendPunchPacketBothEasySymRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{28} +} + +func (x *SendPunchPacketBothEasySymRequest) GetUdpSocketCount() uint32 { + if x != nil { + return x.UdpSocketCount + } + return 0 +} + +func (x *SendPunchPacketBothEasySymRequest) GetPublicIp() *common.Ipv4Addr { + if x != nil { + return x.PublicIp + } + return nil +} + +func (x *SendPunchPacketBothEasySymRequest) GetTransactionId() uint32 { + if x != nil { + return x.TransactionId + } + return 0 +} + +func (x *SendPunchPacketBothEasySymRequest) GetDstPortNum() uint32 { + if x != nil { + return x.DstPortNum + } + return 0 +} + +func (x *SendPunchPacketBothEasySymRequest) GetWaitTimeMs() uint32 { + if x != nil { + return x.WaitTimeMs + } + return 0 +} + +type SendPunchPacketBothEasySymResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + // is doing punch with other peer + IsBusy bool `protobuf:"varint,1,opt,name=is_busy,json=isBusy,proto3" json:"is_busy,omitempty"` + BaseMappedAddr *common.SocketAddr `protobuf:"bytes,2,opt,name=base_mapped_addr,json=baseMappedAddr,proto3" json:"base_mapped_addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *SendPunchPacketBothEasySymResponse) Reset() { + *x = SendPunchPacketBothEasySymResponse{} + mi := &file_peer_rpc_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *SendPunchPacketBothEasySymResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SendPunchPacketBothEasySymResponse) ProtoMessage() {} + +func (x *SendPunchPacketBothEasySymResponse) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[29] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SendPunchPacketBothEasySymResponse.ProtoReflect.Descriptor instead. +func (*SendPunchPacketBothEasySymResponse) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{29} +} + +func (x *SendPunchPacketBothEasySymResponse) GetIsBusy() bool { + if x != nil { + return x.IsBusy + } + return false +} + +func (x *SendPunchPacketBothEasySymResponse) GetBaseMappedAddr() *common.SocketAddr { + if x != nil { + return x.BaseMappedAddr + } + return nil +} + +type TcpHolePunchRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + ConnectorMappedAddr *common.SocketAddr `protobuf:"bytes,1,opt,name=connector_mapped_addr,json=connectorMappedAddr,proto3" json:"connector_mapped_addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TcpHolePunchRequest) Reset() { + *x = TcpHolePunchRequest{} + mi := &file_peer_rpc_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TcpHolePunchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TcpHolePunchRequest) ProtoMessage() {} + +func (x *TcpHolePunchRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[30] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TcpHolePunchRequest.ProtoReflect.Descriptor instead. +func (*TcpHolePunchRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{30} +} + +func (x *TcpHolePunchRequest) GetConnectorMappedAddr() *common.SocketAddr { + if x != nil { + return x.ConnectorMappedAddr + } + return nil +} + +type TcpHolePunchResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + ListenerMappedAddr *common.SocketAddr `protobuf:"bytes,1,opt,name=listener_mapped_addr,json=listenerMappedAddr,proto3" json:"listener_mapped_addr,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *TcpHolePunchResponse) Reset() { + *x = TcpHolePunchResponse{} + mi := &file_peer_rpc_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *TcpHolePunchResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TcpHolePunchResponse) ProtoMessage() {} + +func (x *TcpHolePunchResponse) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[31] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TcpHolePunchResponse.ProtoReflect.Descriptor instead. +func (*TcpHolePunchResponse) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{31} +} + +func (x *TcpHolePunchResponse) GetListenerMappedAddr() *common.SocketAddr { + if x != nil { + return x.ListenerMappedAddr + } + return nil +} + +type DirectConnectedPeerInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + LatencyMs int32 `protobuf:"varint,1,opt,name=latency_ms,json=latencyMs,proto3" json:"latency_ms,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DirectConnectedPeerInfo) Reset() { + *x = DirectConnectedPeerInfo{} + mi := &file_peer_rpc_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DirectConnectedPeerInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DirectConnectedPeerInfo) ProtoMessage() {} + +func (x *DirectConnectedPeerInfo) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[32] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DirectConnectedPeerInfo.ProtoReflect.Descriptor instead. +func (*DirectConnectedPeerInfo) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{32} +} + +func (x *DirectConnectedPeerInfo) GetLatencyMs() int32 { + if x != nil { + return x.LatencyMs + } + return 0 +} + +type PeerInfoForGlobalMap struct { + state protoimpl.MessageState `protogen:"open.v1"` + DirectPeers map[uint32]*DirectConnectedPeerInfo `protobuf:"bytes,1,rep,name=direct_peers,json=directPeers,proto3" json:"direct_peers,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerInfoForGlobalMap) Reset() { + *x = PeerInfoForGlobalMap{} + mi := &file_peer_rpc_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerInfoForGlobalMap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerInfoForGlobalMap) ProtoMessage() {} + +func (x *PeerInfoForGlobalMap) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[33] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerInfoForGlobalMap.ProtoReflect.Descriptor instead. +func (*PeerInfoForGlobalMap) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{33} +} + +func (x *PeerInfoForGlobalMap) GetDirectPeers() map[uint32]*DirectConnectedPeerInfo { + if x != nil { + return x.DirectPeers + } + return nil +} + +type ReportPeersRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + MyPeerId uint32 `protobuf:"varint,1,opt,name=my_peer_id,json=myPeerId,proto3" json:"my_peer_id,omitempty"` + PeerInfos *PeerInfoForGlobalMap `protobuf:"bytes,2,opt,name=peer_infos,json=peerInfos,proto3" json:"peer_infos,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReportPeersRequest) Reset() { + *x = ReportPeersRequest{} + mi := &file_peer_rpc_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReportPeersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportPeersRequest) ProtoMessage() {} + +func (x *ReportPeersRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[34] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportPeersRequest.ProtoReflect.Descriptor instead. +func (*ReportPeersRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{34} +} + +func (x *ReportPeersRequest) GetMyPeerId() uint32 { + if x != nil { + return x.MyPeerId + } + return 0 +} + +func (x *ReportPeersRequest) GetPeerInfos() *PeerInfoForGlobalMap { + if x != nil { + return x.PeerInfos + } + return nil +} + +type ReportPeersResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *ReportPeersResponse) Reset() { + *x = ReportPeersResponse{} + mi := &file_peer_rpc_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *ReportPeersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ReportPeersResponse) ProtoMessage() {} + +func (x *ReportPeersResponse) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[35] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ReportPeersResponse.ProtoReflect.Descriptor instead. +func (*ReportPeersResponse) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{35} +} + +type GlobalPeerMap struct { + state protoimpl.MessageState `protogen:"open.v1"` + Map map[uint32]*PeerInfoForGlobalMap `protobuf:"bytes,1,rep,name=map,proto3" json:"map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GlobalPeerMap) Reset() { + *x = GlobalPeerMap{} + mi := &file_peer_rpc_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GlobalPeerMap) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GlobalPeerMap) ProtoMessage() {} + +func (x *GlobalPeerMap) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[36] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GlobalPeerMap.ProtoReflect.Descriptor instead. +func (*GlobalPeerMap) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{36} +} + +func (x *GlobalPeerMap) GetMap() map[uint32]*PeerInfoForGlobalMap { + if x != nil { + return x.Map + } + return nil +} + +type GetGlobalPeerMapRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Digest uint64 `protobuf:"varint,1,opt,name=digest,proto3" json:"digest,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetGlobalPeerMapRequest) Reset() { + *x = GetGlobalPeerMapRequest{} + mi := &file_peer_rpc_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetGlobalPeerMapRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGlobalPeerMapRequest) ProtoMessage() {} + +func (x *GetGlobalPeerMapRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[37] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGlobalPeerMapRequest.ProtoReflect.Descriptor instead. +func (*GetGlobalPeerMapRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{37} +} + +func (x *GetGlobalPeerMapRequest) GetDigest() uint64 { + if x != nil { + return x.Digest + } + return 0 +} + +type GetGlobalPeerMapResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + GlobalPeerMap map[uint32]*PeerInfoForGlobalMap `protobuf:"bytes,1,rep,name=global_peer_map,json=globalPeerMap,proto3" json:"global_peer_map,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` + Digest *uint64 `protobuf:"varint,2,opt,name=digest,proto3,oneof" json:"digest,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetGlobalPeerMapResponse) Reset() { + *x = GetGlobalPeerMapResponse{} + mi := &file_peer_rpc_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetGlobalPeerMapResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGlobalPeerMapResponse) ProtoMessage() {} + +func (x *GetGlobalPeerMapResponse) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[38] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGlobalPeerMapResponse.ProtoReflect.Descriptor instead. +func (*GetGlobalPeerMapResponse) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{38} +} + +func (x *GetGlobalPeerMapResponse) GetGlobalPeerMap() map[uint32]*PeerInfoForGlobalMap { + if x != nil { + return x.GlobalPeerMap + } + return nil +} + +func (x *GetGlobalPeerMapResponse) GetDigest() uint64 { + if x != nil && x.Digest != nil { + return *x.Digest + } + return 0 +} + +type HandshakeRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Magic uint32 `protobuf:"varint,1,opt,name=magic,proto3" json:"magic,omitempty"` + MyPeerId uint32 `protobuf:"varint,2,opt,name=my_peer_id,json=myPeerId,proto3" json:"my_peer_id,omitempty"` + Version uint32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` + Features []string `protobuf:"bytes,4,rep,name=features,proto3" json:"features,omitempty"` + NetworkName string `protobuf:"bytes,5,opt,name=network_name,json=networkName,proto3" json:"network_name,omitempty"` + NetworkSecretDigest []byte `protobuf:"bytes,6,opt,name=network_secret_digest,json=networkSecretDigest,proto3" json:"network_secret_digest,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *HandshakeRequest) Reset() { + *x = HandshakeRequest{} + mi := &file_peer_rpc_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HandshakeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HandshakeRequest) ProtoMessage() {} + +func (x *HandshakeRequest) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[39] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HandshakeRequest.ProtoReflect.Descriptor instead. +func (*HandshakeRequest) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{39} +} + +func (x *HandshakeRequest) GetMagic() uint32 { + if x != nil { + return x.Magic + } + return 0 +} + +func (x *HandshakeRequest) GetMyPeerId() uint32 { + if x != nil { + return x.MyPeerId + } + return 0 +} + +func (x *HandshakeRequest) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *HandshakeRequest) GetFeatures() []string { + if x != nil { + return x.Features + } + return nil +} + +func (x *HandshakeRequest) GetNetworkName() string { + if x != nil { + return x.NetworkName + } + return "" +} + +func (x *HandshakeRequest) GetNetworkSecretDigest() []byte { + if x != nil { + return x.NetworkSecretDigest + } + return nil +} + +type KcpConnData struct { + state protoimpl.MessageState `protogen:"open.v1"` + Src *common.SocketAddr `protobuf:"bytes,1,opt,name=src,proto3" json:"src,omitempty"` + Dst *common.SocketAddr `protobuf:"bytes,4,opt,name=dst,proto3" json:"dst,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *KcpConnData) Reset() { + *x = KcpConnData{} + mi := &file_peer_rpc_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *KcpConnData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KcpConnData) ProtoMessage() {} + +func (x *KcpConnData) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[40] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use KcpConnData.ProtoReflect.Descriptor instead. +func (*KcpConnData) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{40} +} + +func (x *KcpConnData) GetSrc() *common.SocketAddr { + if x != nil { + return x.Src + } + return nil +} + +func (x *KcpConnData) GetDst() *common.SocketAddr { + if x != nil { + return x.Dst + } + return nil +} + +type PeerConnNoiseMsg1Pb struct { + state protoimpl.MessageState `protogen:"open.v1"` + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + ANetworkName string `protobuf:"bytes,2,opt,name=a_network_name,json=aNetworkName,proto3" json:"a_network_name,omitempty"` + ASessionGeneration *uint32 `protobuf:"varint,3,opt,name=a_session_generation,json=aSessionGeneration,proto3,oneof" json:"a_session_generation,omitempty"` + AConnId *common.UUID `protobuf:"bytes,4,opt,name=a_conn_id,json=aConnId,proto3" json:"a_conn_id,omitempty"` + ClientEncryptionAlgorithm string `protobuf:"bytes,5,opt,name=client_encryption_algorithm,json=clientEncryptionAlgorithm,proto3" json:"client_encryption_algorithm,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerConnNoiseMsg1Pb) Reset() { + *x = PeerConnNoiseMsg1Pb{} + mi := &file_peer_rpc_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerConnNoiseMsg1Pb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerConnNoiseMsg1Pb) ProtoMessage() {} + +func (x *PeerConnNoiseMsg1Pb) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[41] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerConnNoiseMsg1Pb.ProtoReflect.Descriptor instead. +func (*PeerConnNoiseMsg1Pb) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{41} +} + +func (x *PeerConnNoiseMsg1Pb) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *PeerConnNoiseMsg1Pb) GetANetworkName() string { + if x != nil { + return x.ANetworkName + } + return "" +} + +func (x *PeerConnNoiseMsg1Pb) GetASessionGeneration() uint32 { + if x != nil && x.ASessionGeneration != nil { + return *x.ASessionGeneration + } + return 0 +} + +func (x *PeerConnNoiseMsg1Pb) GetAConnId() *common.UUID { + if x != nil { + return x.AConnId + } + return nil +} + +func (x *PeerConnNoiseMsg1Pb) GetClientEncryptionAlgorithm() string { + if x != nil { + return x.ClientEncryptionAlgorithm + } + return "" +} + +type PeerConnNoiseMsg2Pb struct { + state protoimpl.MessageState `protogen:"open.v1"` + BNetworkName string `protobuf:"bytes,1,opt,name=b_network_name,json=bNetworkName,proto3" json:"b_network_name,omitempty"` + RoleHint uint32 `protobuf:"varint,2,opt,name=role_hint,json=roleHint,proto3" json:"role_hint,omitempty"` + Action PeerConnSessionActionPb `protobuf:"varint,3,opt,name=action,proto3,enum=peer_rpc.PeerConnSessionActionPb" json:"action,omitempty"` + BSessionGeneration uint32 `protobuf:"varint,4,opt,name=b_session_generation,json=bSessionGeneration,proto3" json:"b_session_generation,omitempty"` + RootKey_32 []byte `protobuf:"bytes,5,opt,name=root_key_32,json=rootKey32,proto3,oneof" json:"root_key_32,omitempty"` + InitialEpoch uint32 `protobuf:"varint,6,opt,name=initial_epoch,json=initialEpoch,proto3" json:"initial_epoch,omitempty"` + BConnId *common.UUID `protobuf:"bytes,7,opt,name=b_conn_id,json=bConnId,proto3" json:"b_conn_id,omitempty"` + AConnIdEcho *common.UUID `protobuf:"bytes,8,opt,name=a_conn_id_echo,json=aConnIdEcho,proto3" json:"a_conn_id_echo,omitempty"` + SecretProof_32 []byte `protobuf:"bytes,9,opt,name=secret_proof_32,json=secretProof32,proto3,oneof" json:"secret_proof_32,omitempty"` + ServerEncryptionAlgorithm string `protobuf:"bytes,10,opt,name=server_encryption_algorithm,json=serverEncryptionAlgorithm,proto3" json:"server_encryption_algorithm,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerConnNoiseMsg2Pb) Reset() { + *x = PeerConnNoiseMsg2Pb{} + mi := &file_peer_rpc_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerConnNoiseMsg2Pb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerConnNoiseMsg2Pb) ProtoMessage() {} + +func (x *PeerConnNoiseMsg2Pb) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[42] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerConnNoiseMsg2Pb.ProtoReflect.Descriptor instead. +func (*PeerConnNoiseMsg2Pb) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{42} +} + +func (x *PeerConnNoiseMsg2Pb) GetBNetworkName() string { + if x != nil { + return x.BNetworkName + } + return "" +} + +func (x *PeerConnNoiseMsg2Pb) GetRoleHint() uint32 { + if x != nil { + return x.RoleHint + } + return 0 +} + +func (x *PeerConnNoiseMsg2Pb) GetAction() PeerConnSessionActionPb { + if x != nil { + return x.Action + } + return PeerConnSessionActionPb_Join +} + +func (x *PeerConnNoiseMsg2Pb) GetBSessionGeneration() uint32 { + if x != nil { + return x.BSessionGeneration + } + return 0 +} + +func (x *PeerConnNoiseMsg2Pb) GetRootKey_32() []byte { + if x != nil { + return x.RootKey_32 + } + return nil +} + +func (x *PeerConnNoiseMsg2Pb) GetInitialEpoch() uint32 { + if x != nil { + return x.InitialEpoch + } + return 0 +} + +func (x *PeerConnNoiseMsg2Pb) GetBConnId() *common.UUID { + if x != nil { + return x.BConnId + } + return nil +} + +func (x *PeerConnNoiseMsg2Pb) GetAConnIdEcho() *common.UUID { + if x != nil { + return x.AConnIdEcho + } + return nil +} + +func (x *PeerConnNoiseMsg2Pb) GetSecretProof_32() []byte { + if x != nil { + return x.SecretProof_32 + } + return nil +} + +func (x *PeerConnNoiseMsg2Pb) GetServerEncryptionAlgorithm() string { + if x != nil { + return x.ServerEncryptionAlgorithm + } + return "" +} + +type RelayNoiseMsg1Pb struct { + state protoimpl.MessageState `protogen:"open.v1"` + Version uint32 `protobuf:"varint,1,opt,name=version,proto3" json:"version,omitempty"` + ASessionGeneration *uint32 `protobuf:"varint,3,opt,name=a_session_generation,json=aSessionGeneration,proto3,oneof" json:"a_session_generation,omitempty"` + AConnId *common.UUID `protobuf:"bytes,4,opt,name=a_conn_id,json=aConnId,proto3" json:"a_conn_id,omitempty"` + ClientEncryptionAlgorithm string `protobuf:"bytes,5,opt,name=client_encryption_algorithm,json=clientEncryptionAlgorithm,proto3" json:"client_encryption_algorithm,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RelayNoiseMsg1Pb) Reset() { + *x = RelayNoiseMsg1Pb{} + mi := &file_peer_rpc_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RelayNoiseMsg1Pb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RelayNoiseMsg1Pb) ProtoMessage() {} + +func (x *RelayNoiseMsg1Pb) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[43] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RelayNoiseMsg1Pb.ProtoReflect.Descriptor instead. +func (*RelayNoiseMsg1Pb) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{43} +} + +func (x *RelayNoiseMsg1Pb) GetVersion() uint32 { + if x != nil { + return x.Version + } + return 0 +} + +func (x *RelayNoiseMsg1Pb) GetASessionGeneration() uint32 { + if x != nil && x.ASessionGeneration != nil { + return *x.ASessionGeneration + } + return 0 +} + +func (x *RelayNoiseMsg1Pb) GetAConnId() *common.UUID { + if x != nil { + return x.AConnId + } + return nil +} + +func (x *RelayNoiseMsg1Pb) GetClientEncryptionAlgorithm() string { + if x != nil { + return x.ClientEncryptionAlgorithm + } + return "" +} + +type RelayNoiseMsg2Pb struct { + state protoimpl.MessageState `protogen:"open.v1"` + Action PeerConnSessionActionPb `protobuf:"varint,3,opt,name=action,proto3,enum=peer_rpc.PeerConnSessionActionPb" json:"action,omitempty"` + BSessionGeneration uint32 `protobuf:"varint,4,opt,name=b_session_generation,json=bSessionGeneration,proto3" json:"b_session_generation,omitempty"` + RootKey_32 []byte `protobuf:"bytes,5,opt,name=root_key_32,json=rootKey32,proto3,oneof" json:"root_key_32,omitempty"` + InitialEpoch uint32 `protobuf:"varint,6,opt,name=initial_epoch,json=initialEpoch,proto3" json:"initial_epoch,omitempty"` + BConnId *common.UUID `protobuf:"bytes,7,opt,name=b_conn_id,json=bConnId,proto3" json:"b_conn_id,omitempty"` + AConnIdEcho *common.UUID `protobuf:"bytes,8,opt,name=a_conn_id_echo,json=aConnIdEcho,proto3" json:"a_conn_id_echo,omitempty"` + ServerEncryptionAlgorithm string `protobuf:"bytes,10,opt,name=server_encryption_algorithm,json=serverEncryptionAlgorithm,proto3" json:"server_encryption_algorithm,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RelayNoiseMsg2Pb) Reset() { + *x = RelayNoiseMsg2Pb{} + mi := &file_peer_rpc_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RelayNoiseMsg2Pb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RelayNoiseMsg2Pb) ProtoMessage() {} + +func (x *RelayNoiseMsg2Pb) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[44] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RelayNoiseMsg2Pb.ProtoReflect.Descriptor instead. +func (*RelayNoiseMsg2Pb) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{44} +} + +func (x *RelayNoiseMsg2Pb) GetAction() PeerConnSessionActionPb { + if x != nil { + return x.Action + } + return PeerConnSessionActionPb_Join +} + +func (x *RelayNoiseMsg2Pb) GetBSessionGeneration() uint32 { + if x != nil { + return x.BSessionGeneration + } + return 0 +} + +func (x *RelayNoiseMsg2Pb) GetRootKey_32() []byte { + if x != nil { + return x.RootKey_32 + } + return nil +} + +func (x *RelayNoiseMsg2Pb) GetInitialEpoch() uint32 { + if x != nil { + return x.InitialEpoch + } + return 0 +} + +func (x *RelayNoiseMsg2Pb) GetBConnId() *common.UUID { + if x != nil { + return x.BConnId + } + return nil +} + +func (x *RelayNoiseMsg2Pb) GetAConnIdEcho() *common.UUID { + if x != nil { + return x.AConnIdEcho + } + return nil +} + +func (x *RelayNoiseMsg2Pb) GetServerEncryptionAlgorithm() string { + if x != nil { + return x.ServerEncryptionAlgorithm + } + return "" +} + +type PeerConnNoiseMsg3Pb struct { + state protoimpl.MessageState `protogen:"open.v1"` + AConnIdEcho *common.UUID `protobuf:"bytes,1,opt,name=a_conn_id_echo,json=aConnIdEcho,proto3" json:"a_conn_id_echo,omitempty"` + BConnIdEcho *common.UUID `protobuf:"bytes,2,opt,name=b_conn_id_echo,json=bConnIdEcho,proto3" json:"b_conn_id_echo,omitempty"` + SecretProof_32 []byte `protobuf:"bytes,3,opt,name=secret_proof_32,json=secretProof32,proto3,oneof" json:"secret_proof_32,omitempty"` + SecretDigest []byte `protobuf:"bytes,4,opt,name=secret_digest,json=secretDigest,proto3" json:"secret_digest,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *PeerConnNoiseMsg3Pb) Reset() { + *x = PeerConnNoiseMsg3Pb{} + mi := &file_peer_rpc_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *PeerConnNoiseMsg3Pb) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PeerConnNoiseMsg3Pb) ProtoMessage() {} + +func (x *PeerConnNoiseMsg3Pb) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[45] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PeerConnNoiseMsg3Pb.ProtoReflect.Descriptor instead. +func (*PeerConnNoiseMsg3Pb) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{45} +} + +func (x *PeerConnNoiseMsg3Pb) GetAConnIdEcho() *common.UUID { + if x != nil { + return x.AConnIdEcho + } + return nil +} + +func (x *PeerConnNoiseMsg3Pb) GetBConnIdEcho() *common.UUID { + if x != nil { + return x.BConnIdEcho + } + return nil +} + +func (x *PeerConnNoiseMsg3Pb) GetSecretProof_32() []byte { + if x != nil { + return x.SecretProof_32 + } + return nil +} + +func (x *PeerConnNoiseMsg3Pb) GetSecretDigest() []byte { + if x != nil { + return x.SecretDigest + } + return nil +} + +type RouteConnPeerList_PeerConnInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId *PeerIdVersion `protobuf:"bytes,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + ConnectedPeerIds []uint32 `protobuf:"varint,2,rep,packed,name=connected_peer_ids,json=connectedPeerIds,proto3" json:"connected_peer_ids,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RouteConnPeerList_PeerConnInfo) Reset() { + *x = RouteConnPeerList_PeerConnInfo{} + mi := &file_peer_rpc_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouteConnPeerList_PeerConnInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteConnPeerList_PeerConnInfo) ProtoMessage() {} + +func (x *RouteConnPeerList_PeerConnInfo) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[46] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteConnPeerList_PeerConnInfo.ProtoReflect.Descriptor instead. +func (*RouteConnPeerList_PeerConnInfo) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{5, 0} +} + +func (x *RouteConnPeerList_PeerConnInfo) GetPeerId() *PeerIdVersion { + if x != nil { + return x.PeerId + } + return nil +} + +func (x *RouteConnPeerList_PeerConnInfo) GetConnectedPeerIds() []uint32 { + if x != nil { + return x.ConnectedPeerIds + } + return nil +} + +type RouteForeignNetworkInfos_Info struct { + state protoimpl.MessageState `protogen:"open.v1"` + Key *ForeignNetworkRouteInfoKey `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"` + Value *ForeignNetworkRouteInfoEntry `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RouteForeignNetworkInfos_Info) Reset() { + *x = RouteForeignNetworkInfos_Info{} + mi := &file_peer_rpc_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouteForeignNetworkInfos_Info) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteForeignNetworkInfos_Info) ProtoMessage() {} + +func (x *RouteForeignNetworkInfos_Info) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[47] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteForeignNetworkInfos_Info.ProtoReflect.Descriptor instead. +func (*RouteForeignNetworkInfos_Info) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *RouteForeignNetworkInfos_Info) GetKey() *ForeignNetworkRouteInfoKey { + if x != nil { + return x.Key + } + return nil +} + +func (x *RouteForeignNetworkInfos_Info) GetValue() *ForeignNetworkRouteInfoEntry { + if x != nil { + return x.Value + } + return nil +} + +type RouteForeignNetworkSummary_Info struct { + state protoimpl.MessageState `protogen:"open.v1"` + PeerId uint32 `protobuf:"varint,1,opt,name=peer_id,json=peerId,proto3" json:"peer_id,omitempty"` + NetworkCount uint32 `protobuf:"varint,2,opt,name=network_count,json=networkCount,proto3" json:"network_count,omitempty"` + PeerCount uint32 `protobuf:"varint,3,opt,name=peer_count,json=peerCount,proto3" json:"peer_count,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RouteForeignNetworkSummary_Info) Reset() { + *x = RouteForeignNetworkSummary_Info{} + mi := &file_peer_rpc_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RouteForeignNetworkSummary_Info) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RouteForeignNetworkSummary_Info) ProtoMessage() {} + +func (x *RouteForeignNetworkSummary_Info) ProtoReflect() protoreflect.Message { + mi := &file_peer_rpc_proto_msgTypes[48] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use RouteForeignNetworkSummary_Info.ProtoReflect.Descriptor instead. +func (*RouteForeignNetworkSummary_Info) Descriptor() ([]byte, []int) { + return file_peer_rpc_proto_rawDescGZIP(), []int{10, 0} +} + +func (x *RouteForeignNetworkSummary_Info) GetPeerId() uint32 { + if x != nil { + return x.PeerId + } + return 0 +} + +func (x *RouteForeignNetworkSummary_Info) GetNetworkCount() uint32 { + if x != nil { + return x.NetworkCount + } + return 0 +} + +func (x *RouteForeignNetworkSummary_Info) GetPeerCount() uint32 { + if x != nil { + return x.PeerCount + } + return 0 +} + +var File_peer_rpc_proto protoreflect.FileDescriptor + +const file_peer_rpc_proto_rawDesc = "" + + "\n" + + "\x0epeer_rpc.proto\x12\bpeer_rpc\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\fcommon.proto\"\xe9\x01\n" + + "\x17TrustedCredentialPubkey\x12\x16\n" + + "\x06pubkey\x18\x01 \x01(\fR\x06pubkey\x12\x16\n" + + "\x06groups\x18\x02 \x03(\tR\x06groups\x12\x1f\n" + + "\vallow_relay\x18\x03 \x01(\bR\n" + + "allowRelay\x12\x1f\n" + + "\vexpiry_unix\x18\x04 \x01(\x03R\n" + + "expiryUnix\x12.\n" + + "\x13allowed_proxy_cidrs\x18\x05 \x03(\tR\x11allowedProxyCidrs\x12\x1f\n" + + "\breusable\x18\x06 \x01(\bH\x00R\breusable\x88\x01\x01B\v\n" + + "\t_reusable\"\x8a\x01\n" + + "\x1cTrustedCredentialPubkeyProof\x12A\n" + + "\n" + + "credential\x18\x01 \x01(\v2!.peer_rpc.TrustedCredentialPubkeyR\n" + + "credential\x12'\n" + + "\x0fcredential_hmac\x18\x02 \x01(\fR\x0ecredentialHmac\"\xf1\b\n" + + "\rRoutePeerInfo\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12%\n" + + "\ainst_id\x18\x02 \x01(\v2\f.common.UUIDR\x06instId\x12\x12\n" + + "\x04cost\x18\x03 \x01(\rR\x04cost\x122\n" + + "\tipv4_addr\x18\x04 \x01(\v2\x10.common.Ipv4AddrH\x00R\bipv4Addr\x88\x01\x01\x12\x1f\n" + + "\vproxy_cidrs\x18\x05 \x03(\tR\n" + + "proxyCidrs\x12\x1f\n" + + "\bhostname\x18\x06 \x01(\tH\x01R\bhostname\x88\x01\x01\x121\n" + + "\fudp_nat_type\x18\a \x01(\x0e2\x0f.common.NatTypeR\n" + + "udpNatType\x12;\n" + + "\vlast_update\x18\b \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "lastUpdate\x12\x18\n" + + "\aversion\x18\t \x01(\rR\aversion\x12)\n" + + "\x10easytier_version\x18\n" + + " \x01(\tR\x0feasytierVersion\x12:\n" + + "\ffeature_flag\x18\v \x01(\v2\x17.common.PeerFeatureFlagR\vfeatureFlag\x12\"\n" + + "\rpeer_route_id\x18\f \x01(\x04R\vpeerRouteId\x12%\n" + + "\x0enetwork_length\x18\r \x01(\rR\rnetworkLength\x12$\n" + + "\tquic_port\x18\x0e \x01(\rB\x02\x18\x01H\x02R\bquicPort\x88\x01\x01\x122\n" + + "\tipv6_addr\x18\x0f \x01(\v2\x10.common.Ipv6InetH\x03R\bipv6Addr\x88\x01\x01\x12/\n" + + "\x06groups\x18\x10 \x03(\v2\x17.peer_rpc.PeerGroupInfoR\x06groups\x121\n" + + "\ftcp_nat_type\x18\x11 \x01(\x0e2\x0f.common.NatTypeR\n" + + "tcpNatType\x12.\n" + + "\x13noise_static_pubkey\x18\x12 \x01(\fR\x11noiseStaticPubkey\x12d\n" + + "\x1atrusted_credential_pubkeys\x18\x13 \x03(\v2&.peer_rpc.TrustedCredentialPubkeyProofR\x18trustedCredentialPubkeys\x12L\n" + + "\x17ipv6_public_addr_prefix\x18\x16 \x01(\v2\x10.common.Ipv6InetH\x04R\x14ipv6PublicAddrPrefix\x88\x01\x01\x12J\n" + + "\x16ipv6_public_addr_lease\x18\x18 \x01(\v2\x10.common.Ipv6InetH\x05R\x13ipv6PublicAddrLease\x88\x01\x01B\f\n" + + "\n" + + "_ipv4_addrB\v\n" + + "\t_hostnameB\f\n" + + "\n" + + "_quic_portB\f\n" + + "\n" + + "_ipv6_addrB\x1a\n" + + "\x18_ipv6_public_addr_prefixB\x19\n" + + "\x17_ipv6_public_addr_lease\"B\n" + + "\rPeerIdVersion\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12\x18\n" + + "\aversion\x18\x02 \x01(\rR\aversion\"]\n" + + "\x0fRouteConnBitmap\x122\n" + + "\bpeer_ids\x18\x01 \x03(\v2\x17.peer_rpc.PeerIdVersionR\apeerIds\x12\x16\n" + + "\x06bitmap\x18\x02 \x01(\fR\x06bitmap\"\xd5\x01\n" + + "\x11RouteConnPeerList\x12P\n" + + "\x0fpeer_conn_infos\x18\x01 \x03(\v2(.peer_rpc.RouteConnPeerList.PeerConnInfoR\rpeerConnInfos\x1an\n" + + "\fPeerConnInfo\x120\n" + + "\apeer_id\x18\x01 \x01(\v2\x17.peer_rpc.PeerIdVersionR\x06peerId\x12,\n" + + "\x12connected_peer_ids\x18\x02 \x03(\rR\x10connectedPeerIds\"?\n" + + "\x0eRoutePeerInfos\x12-\n" + + "\x05items\x18\x01 \x03(\v2\x17.peer_rpc.RoutePeerInfoR\x05items\"X\n" + + "\x1aForeignNetworkRouteInfoKey\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12!\n" + + "\fnetwork_name\x18\x02 \x01(\tR\vnetworkName\"\x90\x02\n" + + "\x1cForeignNetworkRouteInfoEntry\x12(\n" + + "\x10foreign_peer_ids\x18\x01 \x03(\rR\x0eforeignPeerIds\x12;\n" + + "\vlast_update\x18\x02 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "lastUpdate\x12\x18\n" + + "\aversion\x18\x03 \x01(\rR\aversion\x122\n" + + "\x15network_secret_digest\x18\x04 \x01(\fR\x13networkSecretDigest\x12;\n" + + "\x1bmy_peer_id_for_this_network\x18\x05 \x01(\rR\x16myPeerIdForThisNetwork\"\xd7\x01\n" + + "\x18RouteForeignNetworkInfos\x12=\n" + + "\x05infos\x18\x01 \x03(\v2'.peer_rpc.RouteForeignNetworkInfos.InfoR\x05infos\x1a|\n" + + "\x04Info\x126\n" + + "\x03key\x18\x01 \x01(\v2$.peer_rpc.ForeignNetworkRouteInfoKeyR\x03key\x12<\n" + + "\x05value\x18\x02 \x01(\v2&.peer_rpc.ForeignNetworkRouteInfoEntryR\x05value\"\xb6\x02\n" + + "\x1aRouteForeignNetworkSummary\x12L\n" + + "\binfo_map\x18\x01 \x03(\v21.peer_rpc.RouteForeignNetworkSummary.InfoMapEntryR\ainfoMap\x1ac\n" + + "\x04Info\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12#\n" + + "\rnetwork_count\x18\x02 \x01(\rR\fnetworkCount\x12\x1d\n" + + "\n" + + "peer_count\x18\x03 \x01(\rR\tpeerCount\x1ae\n" + + "\fInfoMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\rR\x03key\x12?\n" + + "\x05value\x18\x02 \x01(\v2).peer_rpc.RouteForeignNetworkSummary.InfoR\x05value:\x028\x01\"O\n" + + "\rPeerGroupInfo\x12\x1d\n" + + "\n" + + "group_name\x18\x01 \x01(\tR\tgroupName\x12\x1f\n" + + "\vgroup_proof\x18\x02 \x01(\fR\n" + + "groupProof\"\x9c\x03\n" + + "\x14SyncRouteInfoRequest\x12\x1c\n" + + "\n" + + "my_peer_id\x18\x01 \x01(\rR\bmyPeerId\x12\"\n" + + "\rmy_session_id\x18\x02 \x01(\x04R\vmySessionId\x12!\n" + + "\fis_initiator\x18\x03 \x01(\bR\visInitiator\x127\n" + + "\n" + + "peer_infos\x18\x04 \x01(\v2\x18.peer_rpc.RoutePeerInfosR\tpeerInfos\x12<\n" + + "\vconn_bitmap\x18\x05 \x01(\v2\x19.peer_rpc.RouteConnBitmapH\x00R\n" + + "connBitmap\x12C\n" + + "\x0econn_peer_list\x18\a \x01(\v2\x1b.peer_rpc.RouteConnPeerListH\x00R\fconnPeerList\x12V\n" + + "\x15foreign_network_infos\x18\x06 \x01(\v2\".peer_rpc.RouteForeignNetworkInfosR\x13foreignNetworkInfosB\v\n" + + "\tconn_info\"\x9c\x01\n" + + "\x15SyncRouteInfoResponse\x12!\n" + + "\fis_initiator\x18\x01 \x01(\bR\visInitiator\x12\x1d\n" + + "\n" + + "session_id\x18\x02 \x01(\x04R\tsessionId\x127\n" + + "\x05error\x18\x03 \x01(\x0e2\x1c.peer_rpc.SyncRouteInfoErrorH\x00R\x05error\x88\x01\x01B\b\n" + + "\x06_error\"c\n" + + "!AcquireIpv6PublicAddrLeaseRequest\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12%\n" + + "\ainst_id\x18\x02 \x01(\v2\f.common.UUIDR\x06instId\"\x94\x01\n" + + "\x1fRenewIpv6PublicAddrLeaseRequest\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12%\n" + + "\ainst_id\x18\x02 \x01(\v2\f.common.UUIDR\x06instId\x121\n" + + "\vleased_addr\x18\x03 \x01(\v2\x10.common.Ipv6InetR\n" + + "leasedAddr\"c\n" + + "!ReleaseIpv6PublicAddrLeaseRequest\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12%\n" + + "\ainst_id\x18\x02 \x01(\v2\f.common.UUIDR\x06instId\"_\n" + + "\x1dGetIpv6PublicAddrLeaseRequest\x12\x17\n" + + "\apeer_id\x18\x01 \x01(\rR\x06peerId\x12%\n" + + "\ainst_id\x18\x02 \x01(\v2\f.common.UUIDR\x06instId\"\xef\x02\n" + + "\x18Ipv6PublicAddrLeaseReply\x12(\n" + + "\x10provider_peer_id\x18\x01 \x01(\rR\x0eproviderPeerId\x126\n" + + "\x10provider_inst_id\x18\x02 \x01(\v2\f.common.UUIDR\x0eproviderInstId\x129\n" + + "\x0fprovider_prefix\x18\x03 \x01(\v2\x10.common.Ipv6InetR\x0eproviderPrefix\x121\n" + + "\vleased_addr\x18\x04 \x01(\v2\x10.common.Ipv6InetR\n" + + "leasedAddr\x12;\n" + + "\vvalid_until\x18\x05 \x01(\v2\x1a.google.protobuf.TimestampR\n" + + "validUntil\x12\x16\n" + + "\x06reused\x18\x06 \x01(\bR\x06reused\x12 \n" + + "\terror_msg\x18\a \x01(\tH\x00R\berrorMsg\x88\x01\x01B\f\n" + + "\n" + + "_error_msg\"\x12\n" + + "\x10GetIpListRequest\"\x9a\x02\n" + + "\x11GetIpListResponse\x121\n" + + "\vpublic_ipv4\x18\x01 \x01(\v2\x10.common.Ipv4AddrR\n" + + "publicIpv4\x129\n" + + "\x0finterface_ipv4s\x18\x02 \x03(\v2\x10.common.Ipv4AddrR\x0einterfaceIpv4s\x121\n" + + "\vpublic_ipv6\x18\x03 \x01(\v2\x10.common.Ipv6AddrR\n" + + "publicIpv6\x129\n" + + "\x0finterface_ipv6s\x18\x04 \x03(\v2\x10.common.Ipv6AddrR\x0einterfaceIpv6s\x12)\n" + + "\tlisteners\x18\x05 \x03(\v2\v.common.UrlR\tlisteners\"\xfc\x01\n" + + "\x1dSendUdpHolePunchPacketRequest\x129\n" + + "\x0econnector_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\rconnectorAddr\x12#\n" + + "\rlistener_port\x18\x02 \x01(\rR\flistenerPort\x12>\n" + + "\x12preferred_src_ipv6\x18\x03 \x01(\v2\x10.common.Ipv6AddrR\x10preferredSrcIpv6\x12;\n" + + "\x0fconnector_addrs\x18\x04 \x03(\v2\x12.common.SocketAddrR\x0econnectorAddrs\"i\n" + + "\x1aSelectPunchListenerRequest\x12\x1b\n" + + "\tforce_new\x18\x01 \x01(\bR\bforceNew\x12.\n" + + "\x13prefer_port_mapping\x18\x02 \x01(\bR\x11preferPortMapping\"c\n" + + "\x1bSelectPunchListenerResponse\x12D\n" + + "\x14listener_mapped_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\x12listenerMappedAddr\"\xcb\x02\n" + + "\x1aSendPunchPacketConeRequest\x12D\n" + + "\x14listener_mapped_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\x12listenerMappedAddr\x12/\n" + + "\tdest_addr\x18\x02 \x01(\v2\x12.common.SocketAddrR\bdestAddr\x12%\n" + + "\x0etransaction_id\x18\x03 \x01(\rR\rtransactionId\x123\n" + + "\x16packet_count_per_batch\x18\x04 \x01(\rR\x13packetCountPerBatch\x12,\n" + + "\x12packet_batch_count\x18\x05 \x01(\rR\x10packetBatchCount\x12,\n" + + "\x12packet_interval_ms\x18\x06 \x01(\rR\x10packetIntervalMs\"\xf2\x01\n" + + "\x1dSendPunchPacketHardSymRequest\x12D\n" + + "\x14listener_mapped_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\x12listenerMappedAddr\x12/\n" + + "\n" + + "public_ips\x18\x02 \x03(\v2\x10.common.Ipv4AddrR\tpublicIps\x12%\n" + + "\x0etransaction_id\x18\x03 \x01(\rR\rtransactionId\x12\x1d\n" + + "\n" + + "port_index\x18\x04 \x01(\rR\tportIndex\x12\x14\n" + + "\x05round\x18\x05 \x01(\rR\x05round\"H\n" + + "\x1eSendPunchPacketHardSymResponse\x12&\n" + + "\x0fnext_port_index\x18\x01 \x01(\rR\rnextPortIndex\"\xaa\x02\n" + + "\x1dSendPunchPacketEasySymRequest\x12D\n" + + "\x14listener_mapped_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\x12listenerMappedAddr\x12/\n" + + "\n" + + "public_ips\x18\x02 \x03(\v2\x10.common.Ipv4AddrR\tpublicIps\x12%\n" + + "\x0etransaction_id\x18\x03 \x01(\rR\rtransactionId\x12\"\n" + + "\rbase_port_num\x18\x04 \x01(\rR\vbasePortNum\x12 \n" + + "\fmax_port_num\x18\x05 \x01(\rR\n" + + "maxPortNum\x12%\n" + + "\x0eis_incremental\x18\x06 \x01(\bR\risIncremental\"\xe7\x01\n" + + "!SendPunchPacketBothEasySymRequest\x12(\n" + + "\x10udp_socket_count\x18\x01 \x01(\rR\x0eudpSocketCount\x12-\n" + + "\tpublic_ip\x18\x02 \x01(\v2\x10.common.Ipv4AddrR\bpublicIp\x12%\n" + + "\x0etransaction_id\x18\x03 \x01(\rR\rtransactionId\x12 \n" + + "\fdst_port_num\x18\x04 \x01(\rR\n" + + "dstPortNum\x12 \n" + + "\fwait_time_ms\x18\x05 \x01(\rR\n" + + "waitTimeMs\"{\n" + + "\"SendPunchPacketBothEasySymResponse\x12\x17\n" + + "\ais_busy\x18\x01 \x01(\bR\x06isBusy\x12<\n" + + "\x10base_mapped_addr\x18\x02 \x01(\v2\x12.common.SocketAddrR\x0ebaseMappedAddr\"]\n" + + "\x13TcpHolePunchRequest\x12F\n" + + "\x15connector_mapped_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\x13connectorMappedAddr\"\\\n" + + "\x14TcpHolePunchResponse\x12D\n" + + "\x14listener_mapped_addr\x18\x01 \x01(\v2\x12.common.SocketAddrR\x12listenerMappedAddr\"8\n" + + "\x17DirectConnectedPeerInfo\x12\x1d\n" + + "\n" + + "latency_ms\x18\x01 \x01(\x05R\tlatencyMs\"\xcd\x01\n" + + "\x14PeerInfoForGlobalMap\x12R\n" + + "\fdirect_peers\x18\x01 \x03(\v2/.peer_rpc.PeerInfoForGlobalMap.DirectPeersEntryR\vdirectPeers\x1aa\n" + + "\x10DirectPeersEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\rR\x03key\x127\n" + + "\x05value\x18\x02 \x01(\v2!.peer_rpc.DirectConnectedPeerInfoR\x05value:\x028\x01\"q\n" + + "\x12ReportPeersRequest\x12\x1c\n" + + "\n" + + "my_peer_id\x18\x01 \x01(\rR\bmyPeerId\x12=\n" + + "\n" + + "peer_infos\x18\x02 \x01(\v2\x1e.peer_rpc.PeerInfoForGlobalMapR\tpeerInfos\"\x15\n" + + "\x13ReportPeersResponse\"\x9b\x01\n" + + "\rGlobalPeerMap\x122\n" + + "\x03map\x18\x01 \x03(\v2 .peer_rpc.GlobalPeerMap.MapEntryR\x03map\x1aV\n" + + "\bMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\rR\x03key\x124\n" + + "\x05value\x18\x02 \x01(\v2\x1e.peer_rpc.PeerInfoForGlobalMapR\x05value:\x028\x01\"1\n" + + "\x17GetGlobalPeerMapRequest\x12\x16\n" + + "\x06digest\x18\x01 \x01(\x04R\x06digest\"\x83\x02\n" + + "\x18GetGlobalPeerMapResponse\x12]\n" + + "\x0fglobal_peer_map\x18\x01 \x03(\v25.peer_rpc.GetGlobalPeerMapResponse.GlobalPeerMapEntryR\rglobalPeerMap\x12\x1b\n" + + "\x06digest\x18\x02 \x01(\x04H\x00R\x06digest\x88\x01\x01\x1a`\n" + + "\x12GlobalPeerMapEntry\x12\x10\n" + + "\x03key\x18\x01 \x01(\rR\x03key\x124\n" + + "\x05value\x18\x02 \x01(\v2\x1e.peer_rpc.PeerInfoForGlobalMapR\x05value:\x028\x01B\t\n" + + "\a_digest\"\xd3\x01\n" + + "\x10HandshakeRequest\x12\x14\n" + + "\x05magic\x18\x01 \x01(\rR\x05magic\x12\x1c\n" + + "\n" + + "my_peer_id\x18\x02 \x01(\rR\bmyPeerId\x12\x18\n" + + "\aversion\x18\x03 \x01(\rR\aversion\x12\x1a\n" + + "\bfeatures\x18\x04 \x03(\tR\bfeatures\x12!\n" + + "\fnetwork_name\x18\x05 \x01(\tR\vnetworkName\x122\n" + + "\x15network_secret_digest\x18\x06 \x01(\fR\x13networkSecretDigest\"Y\n" + + "\vKcpConnData\x12$\n" + + "\x03src\x18\x01 \x01(\v2\x12.common.SocketAddrR\x03src\x12$\n" + + "\x03dst\x18\x04 \x01(\v2\x12.common.SocketAddrR\x03dst\"\x8f\x02\n" + + "\x13PeerConnNoiseMsg1Pb\x12\x18\n" + + "\aversion\x18\x01 \x01(\rR\aversion\x12$\n" + + "\x0ea_network_name\x18\x02 \x01(\tR\faNetworkName\x125\n" + + "\x14a_session_generation\x18\x03 \x01(\rH\x00R\x12aSessionGeneration\x88\x01\x01\x12(\n" + + "\ta_conn_id\x18\x04 \x01(\v2\f.common.UUIDR\aaConnId\x12>\n" + + "\x1bclient_encryption_algorithm\x18\x05 \x01(\tR\x19clientEncryptionAlgorithmB\x17\n" + + "\x15_a_session_generation\"\xfd\x03\n" + + "\x13PeerConnNoiseMsg2Pb\x12$\n" + + "\x0eb_network_name\x18\x01 \x01(\tR\fbNetworkName\x12\x1b\n" + + "\trole_hint\x18\x02 \x01(\rR\broleHint\x129\n" + + "\x06action\x18\x03 \x01(\x0e2!.peer_rpc.PeerConnSessionActionPbR\x06action\x120\n" + + "\x14b_session_generation\x18\x04 \x01(\rR\x12bSessionGeneration\x12#\n" + + "\vroot_key_32\x18\x05 \x01(\fH\x00R\trootKey32\x88\x01\x01\x12#\n" + + "\rinitial_epoch\x18\x06 \x01(\rR\finitialEpoch\x12(\n" + + "\tb_conn_id\x18\a \x01(\v2\f.common.UUIDR\abConnId\x121\n" + + "\x0ea_conn_id_echo\x18\b \x01(\v2\f.common.UUIDR\vaConnIdEcho\x12+\n" + + "\x0fsecret_proof_32\x18\t \x01(\fH\x01R\rsecretProof32\x88\x01\x01\x12>\n" + + "\x1bserver_encryption_algorithm\x18\n" + + " \x01(\tR\x19serverEncryptionAlgorithmB\x0e\n" + + "\f_root_key_32B\x12\n" + + "\x10_secret_proof_32\"\xe6\x01\n" + + "\x10RelayNoiseMsg1Pb\x12\x18\n" + + "\aversion\x18\x01 \x01(\rR\aversion\x125\n" + + "\x14a_session_generation\x18\x03 \x01(\rH\x00R\x12aSessionGeneration\x88\x01\x01\x12(\n" + + "\ta_conn_id\x18\x04 \x01(\v2\f.common.UUIDR\aaConnId\x12>\n" + + "\x1bclient_encryption_algorithm\x18\x05 \x01(\tR\x19clientEncryptionAlgorithmB\x17\n" + + "\x15_a_session_generation\"\xf6\x02\n" + + "\x10RelayNoiseMsg2Pb\x129\n" + + "\x06action\x18\x03 \x01(\x0e2!.peer_rpc.PeerConnSessionActionPbR\x06action\x120\n" + + "\x14b_session_generation\x18\x04 \x01(\rR\x12bSessionGeneration\x12#\n" + + "\vroot_key_32\x18\x05 \x01(\fH\x00R\trootKey32\x88\x01\x01\x12#\n" + + "\rinitial_epoch\x18\x06 \x01(\rR\finitialEpoch\x12(\n" + + "\tb_conn_id\x18\a \x01(\v2\f.common.UUIDR\abConnId\x121\n" + + "\x0ea_conn_id_echo\x18\b \x01(\v2\f.common.UUIDR\vaConnIdEcho\x12>\n" + + "\x1bserver_encryption_algorithm\x18\n" + + " \x01(\tR\x19serverEncryptionAlgorithmB\x0e\n" + + "\f_root_key_32\"\xe1\x01\n" + + "\x13PeerConnNoiseMsg3Pb\x121\n" + + "\x0ea_conn_id_echo\x18\x01 \x01(\v2\f.common.UUIDR\vaConnIdEcho\x121\n" + + "\x0eb_conn_id_echo\x18\x02 \x01(\v2\f.common.UUIDR\vbConnIdEcho\x12+\n" + + "\x0fsecret_proof_32\x18\x03 \x01(\fH\x00R\rsecretProof32\x88\x01\x01\x12#\n" + + "\rsecret_digest\x18\x04 \x01(\fR\fsecretDigestB\x12\n" + + "\x10_secret_proof_32*6\n" + + "\x12SyncRouteInfoError\x12\x13\n" + + "\x0fDuplicatePeerId\x10\x00\x12\v\n" + + "\aStopped\x10\x01*g\n" + + "\x0fSecureAuthLevel\x12\b\n" + + "\x04None\x10\x00\x12\x1c\n" + + "\x18EncryptedUnauthenticated\x10\x01\x12\x10\n" + + "\fPeerVerified\x10\x02\x12\x1a\n" + + "\x16NetworkSecretConfirmed\x10\x03*=\n" + + "\x10PeerIdentityType\x12\t\n" + + "\x05Admin\x10\x00\x12\x0e\n" + + "\n" + + "Credential\x10\x01\x12\x0e\n" + + "\n" + + "SharedNode\x10\x02*9\n" + + "\x17PeerConnSessionActionPb\x12\b\n" + + "\x04Join\x10\x00\x12\b\n" + + "\x04Sync\x10\x01\x12\n" + + "\n" + + "\x06Create\x10\x022`\n" + + "\fOspfRouteRpc\x12P\n" + + "\rSyncRouteInfo\x12\x1e.peer_rpc.SyncRouteInfoRequest\x1a\x1f.peer_rpc.SyncRouteInfoResponse2\xf5\x02\n" + + "\x11PublicIpv6AddrRpc\x12_\n" + + "\fAcquireLease\x12+.peer_rpc.AcquireIpv6PublicAddrLeaseRequest\x1a\".peer_rpc.Ipv6PublicAddrLeaseReply\x12[\n" + + "\n" + + "RenewLease\x12).peer_rpc.RenewIpv6PublicAddrLeaseRequest\x1a\".peer_rpc.Ipv6PublicAddrLeaseReply\x12I\n" + + "\fReleaseLease\x12+.peer_rpc.ReleaseIpv6PublicAddrLeaseRequest\x1a\f.common.Void\x12W\n" + + "\bGetLease\x12'.peer_rpc.GetIpv6PublicAddrLeaseRequest\x1a\".peer_rpc.Ipv6PublicAddrLeaseReply2\xab\x01\n" + + "\x12DirectConnectorRpc\x12D\n" + + "\tGetIpList\x12\x1a.peer_rpc.GetIpListRequest\x1a\x1b.peer_rpc.GetIpListResponse\x12O\n" + + "\x16SendUdpHolePunchPacket\x12'.peer_rpc.SendUdpHolePunchPacketRequest\x1a\f.common.Void2\xf7\x03\n" + + "\x0fUdpHolePunchRpc\x12b\n" + + "\x13SelectPunchListener\x12$.peer_rpc.SelectPunchListenerRequest\x1a%.peer_rpc.SelectPunchListenerResponse\x12I\n" + + "\x13SendPunchPacketCone\x12$.peer_rpc.SendPunchPacketConeRequest\x1a\f.common.Void\x12k\n" + + "\x16SendPunchPacketHardSym\x12'.peer_rpc.SendPunchPacketHardSymRequest\x1a(.peer_rpc.SendPunchPacketHardSymResponse\x12O\n" + + "\x16SendPunchPacketEasySym\x12'.peer_rpc.SendPunchPacketEasySymRequest\x1a\f.common.Void\x12w\n" + + "\x1aSendPunchPacketBothEasySym\x12+.peer_rpc.SendPunchPacketBothEasySymRequest\x1a,.peer_rpc.SendPunchPacketBothEasySymResponse2f\n" + + "\x0fTcpHolePunchRpc\x12S\n" + + "\x12ExchangeMappedAddr\x12\x1d.peer_rpc.TcpHolePunchRequest\x1a\x1e.peer_rpc.TcpHolePunchResponse2\xb6\x01\n" + + "\rPeerCenterRpc\x12J\n" + + "\vReportPeers\x12\x1c.peer_rpc.ReportPeersRequest\x1a\x1d.peer_rpc.ReportPeersResponse\x12Y\n" + + "\x10GetGlobalPeerMap\x12!.peer_rpc.GetGlobalPeerMapRequest\x1a\".peer_rpc.GetGlobalPeerMapResponseb\x06proto3" + +var ( + file_peer_rpc_proto_rawDescOnce sync.Once + file_peer_rpc_proto_rawDescData []byte +) + +func file_peer_rpc_proto_rawDescGZIP() []byte { + file_peer_rpc_proto_rawDescOnce.Do(func() { + file_peer_rpc_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_peer_rpc_proto_rawDesc), len(file_peer_rpc_proto_rawDesc))) + }) + return file_peer_rpc_proto_rawDescData +} + +var file_peer_rpc_proto_enumTypes = make([]protoimpl.EnumInfo, 4) +var file_peer_rpc_proto_msgTypes = make([]protoimpl.MessageInfo, 53) +var file_peer_rpc_proto_goTypes = []any{ + (SyncRouteInfoError)(0), // 0: peer_rpc.SyncRouteInfoError + (SecureAuthLevel)(0), // 1: peer_rpc.SecureAuthLevel + (PeerIdentityType)(0), // 2: peer_rpc.PeerIdentityType + (PeerConnSessionActionPb)(0), // 3: peer_rpc.PeerConnSessionActionPb + (*TrustedCredentialPubkey)(nil), // 4: peer_rpc.TrustedCredentialPubkey + (*TrustedCredentialPubkeyProof)(nil), // 5: peer_rpc.TrustedCredentialPubkeyProof + (*RoutePeerInfo)(nil), // 6: peer_rpc.RoutePeerInfo + (*PeerIdVersion)(nil), // 7: peer_rpc.PeerIdVersion + (*RouteConnBitmap)(nil), // 8: peer_rpc.RouteConnBitmap + (*RouteConnPeerList)(nil), // 9: peer_rpc.RouteConnPeerList + (*RoutePeerInfos)(nil), // 10: peer_rpc.RoutePeerInfos + (*ForeignNetworkRouteInfoKey)(nil), // 11: peer_rpc.ForeignNetworkRouteInfoKey + (*ForeignNetworkRouteInfoEntry)(nil), // 12: peer_rpc.ForeignNetworkRouteInfoEntry + (*RouteForeignNetworkInfos)(nil), // 13: peer_rpc.RouteForeignNetworkInfos + (*RouteForeignNetworkSummary)(nil), // 14: peer_rpc.RouteForeignNetworkSummary + (*PeerGroupInfo)(nil), // 15: peer_rpc.PeerGroupInfo + (*SyncRouteInfoRequest)(nil), // 16: peer_rpc.SyncRouteInfoRequest + (*SyncRouteInfoResponse)(nil), // 17: peer_rpc.SyncRouteInfoResponse + (*AcquireIpv6PublicAddrLeaseRequest)(nil), // 18: peer_rpc.AcquireIpv6PublicAddrLeaseRequest + (*RenewIpv6PublicAddrLeaseRequest)(nil), // 19: peer_rpc.RenewIpv6PublicAddrLeaseRequest + (*ReleaseIpv6PublicAddrLeaseRequest)(nil), // 20: peer_rpc.ReleaseIpv6PublicAddrLeaseRequest + (*GetIpv6PublicAddrLeaseRequest)(nil), // 21: peer_rpc.GetIpv6PublicAddrLeaseRequest + (*Ipv6PublicAddrLeaseReply)(nil), // 22: peer_rpc.Ipv6PublicAddrLeaseReply + (*GetIpListRequest)(nil), // 23: peer_rpc.GetIpListRequest + (*GetIpListResponse)(nil), // 24: peer_rpc.GetIpListResponse + (*SendUdpHolePunchPacketRequest)(nil), // 25: peer_rpc.SendUdpHolePunchPacketRequest + (*SelectPunchListenerRequest)(nil), // 26: peer_rpc.SelectPunchListenerRequest + (*SelectPunchListenerResponse)(nil), // 27: peer_rpc.SelectPunchListenerResponse + (*SendPunchPacketConeRequest)(nil), // 28: peer_rpc.SendPunchPacketConeRequest + (*SendPunchPacketHardSymRequest)(nil), // 29: peer_rpc.SendPunchPacketHardSymRequest + (*SendPunchPacketHardSymResponse)(nil), // 30: peer_rpc.SendPunchPacketHardSymResponse + (*SendPunchPacketEasySymRequest)(nil), // 31: peer_rpc.SendPunchPacketEasySymRequest + (*SendPunchPacketBothEasySymRequest)(nil), // 32: peer_rpc.SendPunchPacketBothEasySymRequest + (*SendPunchPacketBothEasySymResponse)(nil), // 33: peer_rpc.SendPunchPacketBothEasySymResponse + (*TcpHolePunchRequest)(nil), // 34: peer_rpc.TcpHolePunchRequest + (*TcpHolePunchResponse)(nil), // 35: peer_rpc.TcpHolePunchResponse + (*DirectConnectedPeerInfo)(nil), // 36: peer_rpc.DirectConnectedPeerInfo + (*PeerInfoForGlobalMap)(nil), // 37: peer_rpc.PeerInfoForGlobalMap + (*ReportPeersRequest)(nil), // 38: peer_rpc.ReportPeersRequest + (*ReportPeersResponse)(nil), // 39: peer_rpc.ReportPeersResponse + (*GlobalPeerMap)(nil), // 40: peer_rpc.GlobalPeerMap + (*GetGlobalPeerMapRequest)(nil), // 41: peer_rpc.GetGlobalPeerMapRequest + (*GetGlobalPeerMapResponse)(nil), // 42: peer_rpc.GetGlobalPeerMapResponse + (*HandshakeRequest)(nil), // 43: peer_rpc.HandshakeRequest + (*KcpConnData)(nil), // 44: peer_rpc.KcpConnData + (*PeerConnNoiseMsg1Pb)(nil), // 45: peer_rpc.PeerConnNoiseMsg1Pb + (*PeerConnNoiseMsg2Pb)(nil), // 46: peer_rpc.PeerConnNoiseMsg2Pb + (*RelayNoiseMsg1Pb)(nil), // 47: peer_rpc.RelayNoiseMsg1Pb + (*RelayNoiseMsg2Pb)(nil), // 48: peer_rpc.RelayNoiseMsg2Pb + (*PeerConnNoiseMsg3Pb)(nil), // 49: peer_rpc.PeerConnNoiseMsg3Pb + (*RouteConnPeerList_PeerConnInfo)(nil), // 50: peer_rpc.RouteConnPeerList.PeerConnInfo + (*RouteForeignNetworkInfos_Info)(nil), // 51: peer_rpc.RouteForeignNetworkInfos.Info + (*RouteForeignNetworkSummary_Info)(nil), // 52: peer_rpc.RouteForeignNetworkSummary.Info + nil, // 53: peer_rpc.RouteForeignNetworkSummary.InfoMapEntry + nil, // 54: peer_rpc.PeerInfoForGlobalMap.DirectPeersEntry + nil, // 55: peer_rpc.GlobalPeerMap.MapEntry + nil, // 56: peer_rpc.GetGlobalPeerMapResponse.GlobalPeerMapEntry + (*common.UUID)(nil), // 57: common.UUID + (*common.Ipv4Addr)(nil), // 58: common.Ipv4Addr + (common.NatType)(0), // 59: common.NatType + (*timestamppb.Timestamp)(nil), // 60: google.protobuf.Timestamp + (*common.PeerFeatureFlag)(nil), // 61: common.PeerFeatureFlag + (*common.Ipv6Inet)(nil), // 62: common.Ipv6Inet + (*common.Ipv6Addr)(nil), // 63: common.Ipv6Addr + (*common.Url)(nil), // 64: common.Url + (*common.SocketAddr)(nil), // 65: common.SocketAddr + (*common.Void)(nil), // 66: common.Void +} +var file_peer_rpc_proto_depIdxs = []int32{ + 4, // 0: peer_rpc.TrustedCredentialPubkeyProof.credential:type_name -> peer_rpc.TrustedCredentialPubkey + 57, // 1: peer_rpc.RoutePeerInfo.inst_id:type_name -> common.UUID + 58, // 2: peer_rpc.RoutePeerInfo.ipv4_addr:type_name -> common.Ipv4Addr + 59, // 3: peer_rpc.RoutePeerInfo.udp_nat_type:type_name -> common.NatType + 60, // 4: peer_rpc.RoutePeerInfo.last_update:type_name -> google.protobuf.Timestamp + 61, // 5: peer_rpc.RoutePeerInfo.feature_flag:type_name -> common.PeerFeatureFlag + 62, // 6: peer_rpc.RoutePeerInfo.ipv6_addr:type_name -> common.Ipv6Inet + 15, // 7: peer_rpc.RoutePeerInfo.groups:type_name -> peer_rpc.PeerGroupInfo + 59, // 8: peer_rpc.RoutePeerInfo.tcp_nat_type:type_name -> common.NatType + 5, // 9: peer_rpc.RoutePeerInfo.trusted_credential_pubkeys:type_name -> peer_rpc.TrustedCredentialPubkeyProof + 62, // 10: peer_rpc.RoutePeerInfo.ipv6_public_addr_prefix:type_name -> common.Ipv6Inet + 62, // 11: peer_rpc.RoutePeerInfo.ipv6_public_addr_lease:type_name -> common.Ipv6Inet + 7, // 12: peer_rpc.RouteConnBitmap.peer_ids:type_name -> peer_rpc.PeerIdVersion + 50, // 13: peer_rpc.RouteConnPeerList.peer_conn_infos:type_name -> peer_rpc.RouteConnPeerList.PeerConnInfo + 6, // 14: peer_rpc.RoutePeerInfos.items:type_name -> peer_rpc.RoutePeerInfo + 60, // 15: peer_rpc.ForeignNetworkRouteInfoEntry.last_update:type_name -> google.protobuf.Timestamp + 51, // 16: peer_rpc.RouteForeignNetworkInfos.infos:type_name -> peer_rpc.RouteForeignNetworkInfos.Info + 53, // 17: peer_rpc.RouteForeignNetworkSummary.info_map:type_name -> peer_rpc.RouteForeignNetworkSummary.InfoMapEntry + 10, // 18: peer_rpc.SyncRouteInfoRequest.peer_infos:type_name -> peer_rpc.RoutePeerInfos + 8, // 19: peer_rpc.SyncRouteInfoRequest.conn_bitmap:type_name -> peer_rpc.RouteConnBitmap + 9, // 20: peer_rpc.SyncRouteInfoRequest.conn_peer_list:type_name -> peer_rpc.RouteConnPeerList + 13, // 21: peer_rpc.SyncRouteInfoRequest.foreign_network_infos:type_name -> peer_rpc.RouteForeignNetworkInfos + 0, // 22: peer_rpc.SyncRouteInfoResponse.error:type_name -> peer_rpc.SyncRouteInfoError + 57, // 23: peer_rpc.AcquireIpv6PublicAddrLeaseRequest.inst_id:type_name -> common.UUID + 57, // 24: peer_rpc.RenewIpv6PublicAddrLeaseRequest.inst_id:type_name -> common.UUID + 62, // 25: peer_rpc.RenewIpv6PublicAddrLeaseRequest.leased_addr:type_name -> common.Ipv6Inet + 57, // 26: peer_rpc.ReleaseIpv6PublicAddrLeaseRequest.inst_id:type_name -> common.UUID + 57, // 27: peer_rpc.GetIpv6PublicAddrLeaseRequest.inst_id:type_name -> common.UUID + 57, // 28: peer_rpc.Ipv6PublicAddrLeaseReply.provider_inst_id:type_name -> common.UUID + 62, // 29: peer_rpc.Ipv6PublicAddrLeaseReply.provider_prefix:type_name -> common.Ipv6Inet + 62, // 30: peer_rpc.Ipv6PublicAddrLeaseReply.leased_addr:type_name -> common.Ipv6Inet + 60, // 31: peer_rpc.Ipv6PublicAddrLeaseReply.valid_until:type_name -> google.protobuf.Timestamp + 58, // 32: peer_rpc.GetIpListResponse.public_ipv4:type_name -> common.Ipv4Addr + 58, // 33: peer_rpc.GetIpListResponse.interface_ipv4s:type_name -> common.Ipv4Addr + 63, // 34: peer_rpc.GetIpListResponse.public_ipv6:type_name -> common.Ipv6Addr + 63, // 35: peer_rpc.GetIpListResponse.interface_ipv6s:type_name -> common.Ipv6Addr + 64, // 36: peer_rpc.GetIpListResponse.listeners:type_name -> common.Url + 65, // 37: peer_rpc.SendUdpHolePunchPacketRequest.connector_addr:type_name -> common.SocketAddr + 63, // 38: peer_rpc.SendUdpHolePunchPacketRequest.preferred_src_ipv6:type_name -> common.Ipv6Addr + 65, // 39: peer_rpc.SendUdpHolePunchPacketRequest.connector_addrs:type_name -> common.SocketAddr + 65, // 40: peer_rpc.SelectPunchListenerResponse.listener_mapped_addr:type_name -> common.SocketAddr + 65, // 41: peer_rpc.SendPunchPacketConeRequest.listener_mapped_addr:type_name -> common.SocketAddr + 65, // 42: peer_rpc.SendPunchPacketConeRequest.dest_addr:type_name -> common.SocketAddr + 65, // 43: peer_rpc.SendPunchPacketHardSymRequest.listener_mapped_addr:type_name -> common.SocketAddr + 58, // 44: peer_rpc.SendPunchPacketHardSymRequest.public_ips:type_name -> common.Ipv4Addr + 65, // 45: peer_rpc.SendPunchPacketEasySymRequest.listener_mapped_addr:type_name -> common.SocketAddr + 58, // 46: peer_rpc.SendPunchPacketEasySymRequest.public_ips:type_name -> common.Ipv4Addr + 58, // 47: peer_rpc.SendPunchPacketBothEasySymRequest.public_ip:type_name -> common.Ipv4Addr + 65, // 48: peer_rpc.SendPunchPacketBothEasySymResponse.base_mapped_addr:type_name -> common.SocketAddr + 65, // 49: peer_rpc.TcpHolePunchRequest.connector_mapped_addr:type_name -> common.SocketAddr + 65, // 50: peer_rpc.TcpHolePunchResponse.listener_mapped_addr:type_name -> common.SocketAddr + 54, // 51: peer_rpc.PeerInfoForGlobalMap.direct_peers:type_name -> peer_rpc.PeerInfoForGlobalMap.DirectPeersEntry + 37, // 52: peer_rpc.ReportPeersRequest.peer_infos:type_name -> peer_rpc.PeerInfoForGlobalMap + 55, // 53: peer_rpc.GlobalPeerMap.map:type_name -> peer_rpc.GlobalPeerMap.MapEntry + 56, // 54: peer_rpc.GetGlobalPeerMapResponse.global_peer_map:type_name -> peer_rpc.GetGlobalPeerMapResponse.GlobalPeerMapEntry + 65, // 55: peer_rpc.KcpConnData.src:type_name -> common.SocketAddr + 65, // 56: peer_rpc.KcpConnData.dst:type_name -> common.SocketAddr + 57, // 57: peer_rpc.PeerConnNoiseMsg1Pb.a_conn_id:type_name -> common.UUID + 3, // 58: peer_rpc.PeerConnNoiseMsg2Pb.action:type_name -> peer_rpc.PeerConnSessionActionPb + 57, // 59: peer_rpc.PeerConnNoiseMsg2Pb.b_conn_id:type_name -> common.UUID + 57, // 60: peer_rpc.PeerConnNoiseMsg2Pb.a_conn_id_echo:type_name -> common.UUID + 57, // 61: peer_rpc.RelayNoiseMsg1Pb.a_conn_id:type_name -> common.UUID + 3, // 62: peer_rpc.RelayNoiseMsg2Pb.action:type_name -> peer_rpc.PeerConnSessionActionPb + 57, // 63: peer_rpc.RelayNoiseMsg2Pb.b_conn_id:type_name -> common.UUID + 57, // 64: peer_rpc.RelayNoiseMsg2Pb.a_conn_id_echo:type_name -> common.UUID + 57, // 65: peer_rpc.PeerConnNoiseMsg3Pb.a_conn_id_echo:type_name -> common.UUID + 57, // 66: peer_rpc.PeerConnNoiseMsg3Pb.b_conn_id_echo:type_name -> common.UUID + 7, // 67: peer_rpc.RouteConnPeerList.PeerConnInfo.peer_id:type_name -> peer_rpc.PeerIdVersion + 11, // 68: peer_rpc.RouteForeignNetworkInfos.Info.key:type_name -> peer_rpc.ForeignNetworkRouteInfoKey + 12, // 69: peer_rpc.RouteForeignNetworkInfos.Info.value:type_name -> peer_rpc.ForeignNetworkRouteInfoEntry + 52, // 70: peer_rpc.RouteForeignNetworkSummary.InfoMapEntry.value:type_name -> peer_rpc.RouteForeignNetworkSummary.Info + 36, // 71: peer_rpc.PeerInfoForGlobalMap.DirectPeersEntry.value:type_name -> peer_rpc.DirectConnectedPeerInfo + 37, // 72: peer_rpc.GlobalPeerMap.MapEntry.value:type_name -> peer_rpc.PeerInfoForGlobalMap + 37, // 73: peer_rpc.GetGlobalPeerMapResponse.GlobalPeerMapEntry.value:type_name -> peer_rpc.PeerInfoForGlobalMap + 16, // 74: peer_rpc.OspfRouteRpc.SyncRouteInfo:input_type -> peer_rpc.SyncRouteInfoRequest + 18, // 75: peer_rpc.PublicIpv6AddrRpc.AcquireLease:input_type -> peer_rpc.AcquireIpv6PublicAddrLeaseRequest + 19, // 76: peer_rpc.PublicIpv6AddrRpc.RenewLease:input_type -> peer_rpc.RenewIpv6PublicAddrLeaseRequest + 20, // 77: peer_rpc.PublicIpv6AddrRpc.ReleaseLease:input_type -> peer_rpc.ReleaseIpv6PublicAddrLeaseRequest + 21, // 78: peer_rpc.PublicIpv6AddrRpc.GetLease:input_type -> peer_rpc.GetIpv6PublicAddrLeaseRequest + 23, // 79: peer_rpc.DirectConnectorRpc.GetIpList:input_type -> peer_rpc.GetIpListRequest + 25, // 80: peer_rpc.DirectConnectorRpc.SendUdpHolePunchPacket:input_type -> peer_rpc.SendUdpHolePunchPacketRequest + 26, // 81: peer_rpc.UdpHolePunchRpc.SelectPunchListener:input_type -> peer_rpc.SelectPunchListenerRequest + 28, // 82: peer_rpc.UdpHolePunchRpc.SendPunchPacketCone:input_type -> peer_rpc.SendPunchPacketConeRequest + 29, // 83: peer_rpc.UdpHolePunchRpc.SendPunchPacketHardSym:input_type -> peer_rpc.SendPunchPacketHardSymRequest + 31, // 84: peer_rpc.UdpHolePunchRpc.SendPunchPacketEasySym:input_type -> peer_rpc.SendPunchPacketEasySymRequest + 32, // 85: peer_rpc.UdpHolePunchRpc.SendPunchPacketBothEasySym:input_type -> peer_rpc.SendPunchPacketBothEasySymRequest + 34, // 86: peer_rpc.TcpHolePunchRpc.ExchangeMappedAddr:input_type -> peer_rpc.TcpHolePunchRequest + 38, // 87: peer_rpc.PeerCenterRpc.ReportPeers:input_type -> peer_rpc.ReportPeersRequest + 41, // 88: peer_rpc.PeerCenterRpc.GetGlobalPeerMap:input_type -> peer_rpc.GetGlobalPeerMapRequest + 17, // 89: peer_rpc.OspfRouteRpc.SyncRouteInfo:output_type -> peer_rpc.SyncRouteInfoResponse + 22, // 90: peer_rpc.PublicIpv6AddrRpc.AcquireLease:output_type -> peer_rpc.Ipv6PublicAddrLeaseReply + 22, // 91: peer_rpc.PublicIpv6AddrRpc.RenewLease:output_type -> peer_rpc.Ipv6PublicAddrLeaseReply + 66, // 92: peer_rpc.PublicIpv6AddrRpc.ReleaseLease:output_type -> common.Void + 22, // 93: peer_rpc.PublicIpv6AddrRpc.GetLease:output_type -> peer_rpc.Ipv6PublicAddrLeaseReply + 24, // 94: peer_rpc.DirectConnectorRpc.GetIpList:output_type -> peer_rpc.GetIpListResponse + 66, // 95: peer_rpc.DirectConnectorRpc.SendUdpHolePunchPacket:output_type -> common.Void + 27, // 96: peer_rpc.UdpHolePunchRpc.SelectPunchListener:output_type -> peer_rpc.SelectPunchListenerResponse + 66, // 97: peer_rpc.UdpHolePunchRpc.SendPunchPacketCone:output_type -> common.Void + 30, // 98: peer_rpc.UdpHolePunchRpc.SendPunchPacketHardSym:output_type -> peer_rpc.SendPunchPacketHardSymResponse + 66, // 99: peer_rpc.UdpHolePunchRpc.SendPunchPacketEasySym:output_type -> common.Void + 33, // 100: peer_rpc.UdpHolePunchRpc.SendPunchPacketBothEasySym:output_type -> peer_rpc.SendPunchPacketBothEasySymResponse + 35, // 101: peer_rpc.TcpHolePunchRpc.ExchangeMappedAddr:output_type -> peer_rpc.TcpHolePunchResponse + 39, // 102: peer_rpc.PeerCenterRpc.ReportPeers:output_type -> peer_rpc.ReportPeersResponse + 42, // 103: peer_rpc.PeerCenterRpc.GetGlobalPeerMap:output_type -> peer_rpc.GetGlobalPeerMapResponse + 89, // [89:104] is the sub-list for method output_type + 74, // [74:89] is the sub-list for method input_type + 74, // [74:74] is the sub-list for extension type_name + 74, // [74:74] is the sub-list for extension extendee + 0, // [0:74] is the sub-list for field type_name +} + +func init() { file_peer_rpc_proto_init() } +func file_peer_rpc_proto_init() { + if File_peer_rpc_proto != nil { + return + } + file_peer_rpc_proto_msgTypes[0].OneofWrappers = []any{} + file_peer_rpc_proto_msgTypes[2].OneofWrappers = []any{} + file_peer_rpc_proto_msgTypes[12].OneofWrappers = []any{ + (*SyncRouteInfoRequest_ConnBitmap)(nil), + (*SyncRouteInfoRequest_ConnPeerList)(nil), + } + file_peer_rpc_proto_msgTypes[13].OneofWrappers = []any{} + file_peer_rpc_proto_msgTypes[18].OneofWrappers = []any{} + file_peer_rpc_proto_msgTypes[38].OneofWrappers = []any{} + file_peer_rpc_proto_msgTypes[41].OneofWrappers = []any{} + file_peer_rpc_proto_msgTypes[42].OneofWrappers = []any{} + file_peer_rpc_proto_msgTypes[43].OneofWrappers = []any{} + file_peer_rpc_proto_msgTypes[44].OneofWrappers = []any{} + file_peer_rpc_proto_msgTypes[45].OneofWrappers = []any{} + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_peer_rpc_proto_rawDesc), len(file_peer_rpc_proto_rawDesc)), + NumEnums: 4, + NumMessages: 53, + NumExtensions: 0, + NumServices: 6, + }, + GoTypes: file_peer_rpc_proto_goTypes, + DependencyIndexes: file_peer_rpc_proto_depIdxs, + EnumInfos: file_peer_rpc_proto_enumTypes, + MessageInfos: file_peer_rpc_proto_msgTypes, + }.Build() + File_peer_rpc_proto = out.File + file_peer_rpc_proto_goTypes = nil + file_peer_rpc_proto_depIdxs = nil +} diff --git a/easytier-go/proto/provenance.go b/easytier-go/proto/provenance.go new file mode 100644 index 00000000..8bdf7878 --- /dev/null +++ b/easytier-go/proto/provenance.go @@ -0,0 +1,8 @@ +// Code generated by go generate; DO NOT EDIT. + +package proto + +const ( + EasyTierCommit = "63519db2b5f2a6a1b9b7f20905f036dab54eb829" + SchemaSHA256 = "4fc7f40eac5d3803ed8afe707f2be1db121a022547f91568955c369212875064" +) diff --git a/easytier-go/proto/web/web.pb.go b/easytier-go/proto/web/web.pb.go new file mode 100644 index 00000000..8977ef01 --- /dev/null +++ b/easytier-go/proto/web/web.pb.go @@ -0,0 +1,399 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.11 +// protoc v7.35.1 +// source: web.proto + +package web + +import ( + common "github.com/EasyTier/EasyTier/easytier-go/proto/common" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" + unsafe "unsafe" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type DeviceOsInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + OsType string `protobuf:"bytes,1,opt,name=os_type,json=osType,proto3" json:"os_type,omitempty"` + Version string `protobuf:"bytes,2,opt,name=version,proto3" json:"version,omitempty"` + Distribution string `protobuf:"bytes,3,opt,name=distribution,proto3" json:"distribution,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *DeviceOsInfo) Reset() { + *x = DeviceOsInfo{} + mi := &file_web_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *DeviceOsInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeviceOsInfo) ProtoMessage() {} + +func (x *DeviceOsInfo) ProtoReflect() protoreflect.Message { + mi := &file_web_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeviceOsInfo.ProtoReflect.Descriptor instead. +func (*DeviceOsInfo) Descriptor() ([]byte, []int) { + return file_web_proto_rawDescGZIP(), []int{0} +} + +func (x *DeviceOsInfo) GetOsType() string { + if x != nil { + return x.OsType + } + return "" +} + +func (x *DeviceOsInfo) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *DeviceOsInfo) GetDistribution() string { + if x != nil { + return x.Distribution + } + return "" +} + +type HeartbeatRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + MachineId *common.UUID `protobuf:"bytes,1,opt,name=machine_id,json=machineId,proto3" json:"machine_id,omitempty"` + InstId *common.UUID `protobuf:"bytes,2,opt,name=inst_id,json=instId,proto3" json:"inst_id,omitempty"` + UserToken string `protobuf:"bytes,3,opt,name=user_token,json=userToken,proto3" json:"user_token,omitempty"` + EasytierVersion string `protobuf:"bytes,4,opt,name=easytier_version,json=easytierVersion,proto3" json:"easytier_version,omitempty"` + ReportTime string `protobuf:"bytes,5,opt,name=report_time,json=reportTime,proto3" json:"report_time,omitempty"` + Hostname string `protobuf:"bytes,6,opt,name=hostname,proto3" json:"hostname,omitempty"` + RunningNetworkInstances []*common.UUID `protobuf:"bytes,7,rep,name=running_network_instances,json=runningNetworkInstances,proto3" json:"running_network_instances,omitempty"` + DeviceOs *DeviceOsInfo `protobuf:"bytes,8,opt,name=device_os,json=deviceOs,proto3" json:"device_os,omitempty"` + SupportConfigSource bool `protobuf:"varint,9,opt,name=support_config_source,json=supportConfigSource,proto3" json:"support_config_source,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *HeartbeatRequest) Reset() { + *x = HeartbeatRequest{} + mi := &file_web_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HeartbeatRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeartbeatRequest) ProtoMessage() {} + +func (x *HeartbeatRequest) ProtoReflect() protoreflect.Message { + mi := &file_web_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HeartbeatRequest.ProtoReflect.Descriptor instead. +func (*HeartbeatRequest) Descriptor() ([]byte, []int) { + return file_web_proto_rawDescGZIP(), []int{1} +} + +func (x *HeartbeatRequest) GetMachineId() *common.UUID { + if x != nil { + return x.MachineId + } + return nil +} + +func (x *HeartbeatRequest) GetInstId() *common.UUID { + if x != nil { + return x.InstId + } + return nil +} + +func (x *HeartbeatRequest) GetUserToken() string { + if x != nil { + return x.UserToken + } + return "" +} + +func (x *HeartbeatRequest) GetEasytierVersion() string { + if x != nil { + return x.EasytierVersion + } + return "" +} + +func (x *HeartbeatRequest) GetReportTime() string { + if x != nil { + return x.ReportTime + } + return "" +} + +func (x *HeartbeatRequest) GetHostname() string { + if x != nil { + return x.Hostname + } + return "" +} + +func (x *HeartbeatRequest) GetRunningNetworkInstances() []*common.UUID { + if x != nil { + return x.RunningNetworkInstances + } + return nil +} + +func (x *HeartbeatRequest) GetDeviceOs() *DeviceOsInfo { + if x != nil { + return x.DeviceOs + } + return nil +} + +func (x *HeartbeatRequest) GetSupportConfigSource() bool { + if x != nil { + return x.SupportConfigSource + } + return false +} + +type HeartbeatResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *HeartbeatResponse) Reset() { + *x = HeartbeatResponse{} + mi := &file_web_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *HeartbeatResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HeartbeatResponse) ProtoMessage() {} + +func (x *HeartbeatResponse) ProtoReflect() protoreflect.Message { + mi := &file_web_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HeartbeatResponse.ProtoReflect.Descriptor instead. +func (*HeartbeatResponse) Descriptor() ([]byte, []int) { + return file_web_proto_rawDescGZIP(), []int{2} +} + +type GetFeatureRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetFeatureRequest) Reset() { + *x = GetFeatureRequest{} + mi := &file_web_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetFeatureRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFeatureRequest) ProtoMessage() {} + +func (x *GetFeatureRequest) ProtoReflect() protoreflect.Message { + mi := &file_web_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFeatureRequest.ProtoReflect.Descriptor instead. +func (*GetFeatureRequest) Descriptor() ([]byte, []int) { + return file_web_proto_rawDescGZIP(), []int{3} +} + +type GetFeatureResponse struct { + state protoimpl.MessageState `protogen:"open.v1"` + SupportEncryption bool `protobuf:"varint,1,opt,name=support_encryption,json=supportEncryption,proto3" json:"support_encryption,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *GetFeatureResponse) Reset() { + *x = GetFeatureResponse{} + mi := &file_web_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *GetFeatureResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFeatureResponse) ProtoMessage() {} + +func (x *GetFeatureResponse) ProtoReflect() protoreflect.Message { + mi := &file_web_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFeatureResponse.ProtoReflect.Descriptor instead. +func (*GetFeatureResponse) Descriptor() ([]byte, []int) { + return file_web_proto_rawDescGZIP(), []int{4} +} + +func (x *GetFeatureResponse) GetSupportEncryption() bool { + if x != nil { + return x.SupportEncryption + } + return false +} + +var File_web_proto protoreflect.FileDescriptor + +const file_web_proto_rawDesc = "" + + "\n" + + "\tweb.proto\x12\x03web\x1a\fcommon.proto\"e\n" + + "\fDeviceOsInfo\x12\x17\n" + + "\aos_type\x18\x01 \x01(\tR\x06osType\x12\x18\n" + + "\aversion\x18\x02 \x01(\tR\aversion\x12\"\n" + + "\fdistribution\x18\x03 \x01(\tR\fdistribution\"\x9b\x03\n" + + "\x10HeartbeatRequest\x12+\n" + + "\n" + + "machine_id\x18\x01 \x01(\v2\f.common.UUIDR\tmachineId\x12%\n" + + "\ainst_id\x18\x02 \x01(\v2\f.common.UUIDR\x06instId\x12\x1d\n" + + "\n" + + "user_token\x18\x03 \x01(\tR\tuserToken\x12)\n" + + "\x10easytier_version\x18\x04 \x01(\tR\x0feasytierVersion\x12\x1f\n" + + "\vreport_time\x18\x05 \x01(\tR\n" + + "reportTime\x12\x1a\n" + + "\bhostname\x18\x06 \x01(\tR\bhostname\x12H\n" + + "\x19running_network_instances\x18\a \x03(\v2\f.common.UUIDR\x17runningNetworkInstances\x12.\n" + + "\tdevice_os\x18\b \x01(\v2\x11.web.DeviceOsInfoR\bdeviceOs\x122\n" + + "\x15support_config_source\x18\t \x01(\bR\x13supportConfigSource\"\x13\n" + + "\x11HeartbeatResponse\"\x13\n" + + "\x11GetFeatureRequest\"C\n" + + "\x12GetFeatureResponse\x12-\n" + + "\x12support_encryption\x18\x01 \x01(\bR\x11supportEncryption2\x8d\x01\n" + + "\x10WebServerService\x12:\n" + + "\tHeartbeat\x12\x15.web.HeartbeatRequest\x1a\x16.web.HeartbeatResponse\x12=\n" + + "\n" + + "GetFeature\x12\x16.web.GetFeatureRequest\x1a\x17.web.GetFeatureResponseb\x06proto3" + +var ( + file_web_proto_rawDescOnce sync.Once + file_web_proto_rawDescData []byte +) + +func file_web_proto_rawDescGZIP() []byte { + file_web_proto_rawDescOnce.Do(func() { + file_web_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_web_proto_rawDesc), len(file_web_proto_rawDesc))) + }) + return file_web_proto_rawDescData +} + +var file_web_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_web_proto_goTypes = []any{ + (*DeviceOsInfo)(nil), // 0: web.DeviceOsInfo + (*HeartbeatRequest)(nil), // 1: web.HeartbeatRequest + (*HeartbeatResponse)(nil), // 2: web.HeartbeatResponse + (*GetFeatureRequest)(nil), // 3: web.GetFeatureRequest + (*GetFeatureResponse)(nil), // 4: web.GetFeatureResponse + (*common.UUID)(nil), // 5: common.UUID +} +var file_web_proto_depIdxs = []int32{ + 5, // 0: web.HeartbeatRequest.machine_id:type_name -> common.UUID + 5, // 1: web.HeartbeatRequest.inst_id:type_name -> common.UUID + 5, // 2: web.HeartbeatRequest.running_network_instances:type_name -> common.UUID + 0, // 3: web.HeartbeatRequest.device_os:type_name -> web.DeviceOsInfo + 1, // 4: web.WebServerService.Heartbeat:input_type -> web.HeartbeatRequest + 3, // 5: web.WebServerService.GetFeature:input_type -> web.GetFeatureRequest + 2, // 6: web.WebServerService.Heartbeat:output_type -> web.HeartbeatResponse + 4, // 7: web.WebServerService.GetFeature:output_type -> web.GetFeatureResponse + 6, // [6:8] is the sub-list for method output_type + 4, // [4:6] is the sub-list for method input_type + 4, // [4:4] is the sub-list for extension type_name + 4, // [4:4] is the sub-list for extension extendee + 0, // [0:4] is the sub-list for field type_name +} + +func init() { file_web_proto_init() } +func file_web_proto_init() { + if File_web_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: unsafe.Slice(unsafe.StringData(file_web_proto_rawDesc), len(file_web_proto_rawDesc)), + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_web_proto_goTypes, + DependencyIndexes: file_web_proto_depIdxs, + MessageInfos: file_web_proto_msgTypes, + }.Build() + File_web_proto = out.File + file_web_proto_goTypes = nil + file_web_proto_depIdxs = nil +} diff --git a/easytier-go/rpc.go b/easytier-go/rpc.go new file mode 100644 index 00000000..673cad1b --- /dev/null +++ b/easytier-go/rpc.go @@ -0,0 +1,9 @@ +package host + +import internalhost "github.com/EasyTier/EasyTier/easytier-go/internal/host" + +// PeerInfo describes one peer visible to an EasyTier instance. +type PeerInfo = internalhost.PeerInfo + +// Route describes one route visible to an EasyTier instance. +type Route = internalhost.Route diff --git a/easytier-go/script/generate-proto.sh b/easytier-go/script/generate-proto.sh new file mode 100755 index 00000000..3019cd8e --- /dev/null +++ b/easytier-go/script/generate-proto.sh @@ -0,0 +1,42 @@ +#!/usr/bin/env bash + +set -euo pipefail + +repository_root="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)" +easytier_source="${1:-${EASYTIER_SOURCE:-"${repository_root}/.."}}" +proto_root="${easytier_source}/easytier-proto/proto" + +if [[ ! -f "${proto_root}/api_instance.proto" ]]; then + echo "EasyTier proto source not found at ${proto_root}" >&2 + exit 1 +fi + +if [[ "$(protoc --version)" != "libprotoc 35.1" ]]; then + echo "protoc 35.1 is required" >&2 + exit 1 +fi +if [[ "$(protoc-gen-go --version)" != "protoc-gen-go v1.36.11" ]]; then + echo "protoc-gen-go v1.36.11 is required" >&2 + exit 1 +fi + +protoc \ + -I "${proto_root}" \ + --go_out="${repository_root}" \ + --go_opt=module=github.com/EasyTier/EasyTier/easytier-go \ + --go_opt=Mcommon.proto=github.com/EasyTier/EasyTier/easytier-go/proto/common \ + --go_opt=Merror.proto=github.com/EasyTier/EasyTier/easytier-go/proto/error \ + --go_opt=Macl.proto=github.com/EasyTier/EasyTier/easytier-go/proto/acl \ + --go_opt=Mpeer_rpc.proto=github.com/EasyTier/EasyTier/easytier-go/proto/peer_rpc \ + --go_opt=Mapi_instance.proto=github.com/EasyTier/EasyTier/easytier-go/proto/api/instance \ + --go_opt=Mapi_config.proto=github.com/EasyTier/EasyTier/easytier-go/proto/api/config \ + --go_opt=Mapi_manage.proto=github.com/EasyTier/EasyTier/easytier-go/proto/api/manage \ + --go_opt=Mweb.proto=github.com/EasyTier/EasyTier/easytier-go/proto/web \ + "${proto_root}/common.proto" \ + "${proto_root}/error.proto" \ + "${proto_root}/acl.proto" \ + "${proto_root}/peer_rpc.proto" \ + "${proto_root}/api_instance.proto" \ + "${proto_root}/api_config.proto" \ + "${proto_root}/api_manage.proto" \ + "${proto_root}/web.proto" diff --git a/easytier-go/testdata/wasi_socket_guest.source b/easytier-go/testdata/wasi_socket_guest.source new file mode 100644 index 00000000..1e855924 --- /dev/null +++ b/easytier-go/testdata/wasi_socket_guest.source @@ -0,0 +1,4 @@ +repository=https://github.com/EasyTier/EasyTier +commit=6a3d15f8758eed759d55401ff4ed7c47021b0819 +path=tools/wasi-socket-poc/guest +sha256=b672ae94eb31219b49b9c7cbe974ace81bb28effefae1cabde1c8abd68c01959 diff --git a/easytier-go/testdata/wasi_socket_guest.wasm b/easytier-go/testdata/wasi_socket_guest.wasm new file mode 100644 index 0000000000000000000000000000000000000000..436dc8c166dbffa71f331be0870d6e98c4b474e4 GIT binary patch literal 9525296 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

    H2-e$2Qwe_58!dYwPIhzT68QF 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%0AtYn@A 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 OFysUWRcEWp;{QsW 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 z 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

2A_6CvwxR;1PT8dvH(sJ96?YRg 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 z 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