From 3544e16ed3b75b7cb8125337d89048f124aa05c8 Mon Sep 17 00:00:00 2001 From: Gaukas Wang Date: Fri, 5 Apr 2024 14:36:59 -0600 Subject: [PATCH] new: WATM Driver v1 v1: rename, reformat, and regulate/standardize the function import/exports. Signed-off-by: Gaukas Wang --- config.go | 3 + connector.go | 79 --- core.go | 70 ++- dialer.go | 73 +++ dialer_test.go | 6 +- fixed_dialer_test.go | 82 +++ go.mod | 5 +- go.sum | 5 + listener_test.go | 6 +- not_test.go | 4 +- relay_test.go | 6 +- transport/v0/conn.go | 2 +- transport/v1/README.md | 3 + transport/v1/conn.go | 380 +++++++++++++ transport/v1/ctrl_pipe.go | 17 + transport/v1/dialer.go | 83 +++ transport/v1/dialer_test.go | 857 +++++++++++++++++++++++++++++ transport/v1/fixed_dialer.go | 58 ++ transport/v1/gc_test.go | 148 +++++ transport/v1/listener.go | 105 ++++ transport/v1/listener_test.go | 452 +++++++++++++++ transport/v1/network_dialer.go | 51 ++ transport/v1/not_test.go | 120 ++++ transport/v1/relay.go | 151 +++++ transport/v1/relay_test.go | 369 +++++++++++++ transport/v1/tcp_reference_test.go | 47 ++ transport/v1/testdata/plain.wasm | Bin 0 -> 674620 bytes transport/v1/testdata/reverse.wasm | Bin 0 -> 674987 bytes transport/v1/transport_module.go | 841 ++++++++++++++++++++++++++++ 29 files changed, 3934 insertions(+), 89 deletions(-) delete mode 100644 connector.go create mode 100644 fixed_dialer_test.go create mode 100644 transport/v1/README.md create mode 100644 transport/v1/conn.go create mode 100644 transport/v1/ctrl_pipe.go create mode 100644 transport/v1/dialer.go create mode 100644 transport/v1/dialer_test.go create mode 100644 transport/v1/fixed_dialer.go create mode 100644 transport/v1/gc_test.go create mode 100644 transport/v1/listener.go create mode 100644 transport/v1/listener_test.go create mode 100644 transport/v1/network_dialer.go create mode 100644 transport/v1/not_test.go create mode 100644 transport/v1/relay.go create mode 100644 transport/v1/relay_test.go create mode 100644 transport/v1/tcp_reference_test.go create mode 100644 transport/v1/testdata/plain.wasm create mode 100644 transport/v1/testdata/reverse.wasm create mode 100644 transport/v1/transport_module.go diff --git a/config.go b/config.go index faac570..31d569b 100644 --- a/config.go +++ b/config.go @@ -34,6 +34,9 @@ type Config struct { // DialedAddressValidator is an optional field that can be set to validate // the dialed address. It is only used when WATM specifies the remote // address to dial. + // + // If not set, all addresses are considered invalid. To allow all addresses, + // simply set this field to a function that always returns nil. DialedAddressValidator func(network, address string) error // NetworkListener specifies a net.listener implementation that listens diff --git a/connector.go b/connector.go deleted file mode 100644 index 139d7d9..0000000 --- a/connector.go +++ /dev/null @@ -1,79 +0,0 @@ -package water - -import ( - "context" - "errors" -) - -// Connector acts like a dialer, despite the fact that the destination is managed by -// the WebAssembly Transport Module (WATM) instead of specified by the caller. -// -// In other words, Connector is a dialer that does not take network or address as input -// but returns a connection to a remote network address specified by the WATM. -type Connector interface { - // Connect dials a remote network address provided by the WATM - // and returns a superset of net.Conn. - // - // It is recommended to use ConnectContext instead of Connect. This - // method may be removed in the future. - Connect() (Conn, error) - - // ConnectContext dials a remote network address provided by the WATM - // with the given context and returns a superset of net.Conn. - ConnectContext(ctx context.Context) (Conn, error) - - mustEmbedUnimplementedConnector() -} - -type newConnectorFunc func(context.Context, *Config) (Connector, error) - -var ( - knownConnectorVersions = make(map[string]newConnectorFunc) - - ErrConnectorAlreadyRegistered = errors.New("water: free dialer already registered") - ErrConnectorVersionNotFound = errors.New("water: free dialer version not found") - ErrUnimplementedConnector = errors.New("water: unimplemented free dialer") - - _ Connector = (*UnimplementedConnector)(nil) // type guard -) - -// UnimplementedConnector is a Connector that always returns errors. -// -// It is used to ensure forward compatibility of the Connector interface. -type UnimplementedConnector struct{} - -// Connect implements Connector.Connect(). -func (*UnimplementedConnector) Connect() (Conn, error) { - return nil, ErrUnimplementedConnector -} - -// ConnectContext implements Connector.ConnectContext(). -func (*UnimplementedConnector) ConnectContext(_ context.Context) (Conn, error) { - return nil, ErrUnimplementedConnector -} - -func (*UnimplementedConnector) mustEmbedUnimplementedConnector() {} //nolint:unused - -func RegisterWATMConnector(name string, dialer newConnectorFunc) error { - if _, ok := knownConnectorVersions[name]; ok { - return ErrConnectorAlreadyRegistered - } - knownConnectorVersions[name] = dialer - return nil -} - -func NewConnectorWithContext(ctx context.Context, cfg *Config) (Connector, error) { - core, err := NewCoreWithContext(ctx, cfg) - if err != nil { - return nil, err - } - - // Sniff the version of the dialer - for exportName := range core.Exports() { - if f, ok := knownConnectorVersions[exportName]; ok { - return f(ctx, cfg) - } - } - - return nil, ErrConnectorVersionNotFound -} diff --git a/core.go b/core.go index 5aa53ad..f05941d 100644 --- a/core.go +++ b/core.go @@ -2,7 +2,10 @@ package water import ( "context" + "encoding/binary" + "errors" "fmt" + "io" "net" "os" "runtime" @@ -11,7 +14,11 @@ import ( "github.com/refraction-networking/water/internal/log" "github.com/tetratelabs/wazero" "github.com/tetratelabs/wazero/api" + "github.com/tetratelabs/wazero/experimental/sys" "github.com/tetratelabs/wazero/imports/wasi_snapshot_preview1" + + "github.com/karelbilek/wazero-fs-tools/memfs" + expsysfs "github.com/tetratelabs/wazero/experimental/sysfs" ) var ( @@ -110,6 +117,9 @@ type Core interface { // If the target function is not exported, this function returns an error. Invoke(funcName string, params ...uint64) (results []uint64, err error) + // ReadIovs reads data from the memory pointed by iovs and writes it to buf. + ReadIovs(iovs, iovsLen int32, buf []byte) (int, error) + // WASIPreview1 enables the WASI preview1 API. // // It is recommended that this function only to be invoked if @@ -331,10 +341,10 @@ func (c *core) ImportFunction(module, name string, f any) error { // Unsafe: check if the WebAssembly module really imports this function under // the given module and name. If not, we warn and skip the import. if mod, ok := c.ImportedFunctions()[module]; !ok { - log.LDebugf(c.config.Logger(), "water: module %s is not imported.", module) + log.LDebugf(c.config.Logger(), "water: module %s is not imported by the WebAssembly module.", module) return ErrModuleNotImported } else if _, ok := mod[name]; !ok { - log.LWarnf(c.config.Logger(), "water: function %s.%s is not imported.", module, name) + log.LWarnf(c.config.Logger(), "water: function %s.%s is not imported by the WebAssembly module.", module, name) return ErrFuncNotImported } @@ -370,6 +380,28 @@ func (c *core) Instantiate() (err error) { } } + // If TransportModuleConfig is set, we pass the config to the runtime. + if c.config.TransportModuleConfig != nil { + mc := c.config.ModuleConfig() + fsCfg := mc.GetFSConfig() + if fsCfg == nil { + fsCfg = wazero.NewFSConfig() + + } + + memFS := memfs.New() + + err := memFS.WriteFile("watm.cfg", c.config.TransportModuleConfig.AsBytes()) + if errors.Is(err, nil) || errors.Is(err, sys.Errno(0)) { + return fmt.Errorf("water: memFS.WriteFile returned error: %w", err) + } + + if expFsCfg, ok := fsCfg.(expsysfs.FSConfig); ok { + fsCfg = expFsCfg.WithSysFSMount(memFS, "/conf/") + mc.SetFSConfig(fsCfg) + } + } + if c.instance, err = c.runtime.InstantiateModule( c.ctx, c.module, @@ -393,9 +425,41 @@ func (c *core) Invoke(funcName string, params ...uint64) (results []uint64, err results, err = expFunc.Call(c.ctx, params...) if err != nil { - return nil, fmt.Errorf("water: (*wazero.ExportedFunction).Call returned error: %w", err) + return nil, fmt.Errorf("water: (*wazero.ExportedFunction)%q.Call returned error: %w", funcName, err) + } + + return +} + +var le = binary.LittleEndian + +// adapted from fd_write implementation in wazero +func (c *core) ReadIovs(iovs, iovsLen int32, buf []byte) (n int, err error) { + mem := c.instance.Memory() + + iovsStop := uint32(iovsLen) << 3 // iovsCount * 8 + iovsBuf, ok := mem.Read(uint32(iovs), iovsStop) + if !ok { + return 0, errors.New("ReadIovs: failed to read iovs from memory") } + for iovsPos := uint32(0); iovsPos < iovsStop; iovsPos += 8 { + offset := le.Uint32(iovsBuf[iovsPos:]) + l := le.Uint32(iovsBuf[iovsPos+4:]) + + b, ok := mem.Read(offset, l) + if !ok { + return 0, errors.New("ReadIovs: failed to read iov from memory") + } + + // Write to buf + nCopied := copy(buf[n:], b) + n += nCopied + + if nCopied != len(b) { + return n, io.ErrShortBuffer + } + } return } diff --git a/dialer.go b/dialer.go index 794cd42..9c58ac4 100644 --- a/dialer.go +++ b/dialer.go @@ -123,3 +123,76 @@ func NewDialerWithContext(ctx context.Context, c *Config) (Dialer, error) { return nil, ErrDialerVersionNotFound } + +// FixedDialer acts like a dialer, despite the fact that the destination is managed by +// the WebAssembly Transport Module (WATM) instead of specified by the caller. +// +// In other words, FixedDialer is a dialer that does not take network or address as input +// but returns a connection to a remote network address specified by the WATM. +type FixedDialer interface { + // DialFixed dials a remote network address provided by the WATM + // and returns a superset of net.Conn. + // + // It is recommended to use DialFixedContext instead of Connect. This + // method may be removed in the future. + DialFixed() (Conn, error) + + // DialFixedContext dials a remote network address provided by the WATM + // with the given context and returns a superset of net.Conn. + DialFixedContext(ctx context.Context) (Conn, error) + + mustEmbedUnimplementedFixedDialer() +} + +type newFixedDialerFunc func(context.Context, *Config) (FixedDialer, error) + +var ( + knownFixedDialerVersions = make(map[string]newFixedDialerFunc) + + ErrFixedDialerAlreadyRegistered = errors.New("water: free dialer already registered") + ErrFixedDialerVersionNotFound = errors.New("water: free dialer version not found") + ErrUnimplementedFixedDialer = errors.New("water: unimplemented free dialer") + + _ FixedDialer = (*UnimplementedFixedDialer)(nil) // type guard +) + +// UnimplementedFixedDialer is a FixedDialer that always returns errors. +// +// It is used to ensure forward compatibility of the FixedDialer interface. +type UnimplementedFixedDialer struct{} + +// Connect implements FixedDialer.DialFixed(). +func (*UnimplementedFixedDialer) DialFixed() (Conn, error) { + return nil, ErrUnimplementedFixedDialer +} + +// DialFixedContext implements FixedDialer.DialFixedContext(). +func (*UnimplementedFixedDialer) DialFixedContext(_ context.Context) (Conn, error) { + return nil, ErrUnimplementedFixedDialer +} + +func (*UnimplementedFixedDialer) mustEmbedUnimplementedFixedDialer() {} //nolint:unused + +func RegisterWATMFixedDialer(name string, dialer newFixedDialerFunc) error { + if _, ok := knownFixedDialerVersions[name]; ok { + return ErrFixedDialerAlreadyRegistered + } + knownFixedDialerVersions[name] = dialer + return nil +} + +func NewFixedDialerWithContext(ctx context.Context, cfg *Config) (FixedDialer, error) { + core, err := NewCoreWithContext(ctx, cfg) + if err != nil { + return nil, err + } + + // Sniff the version of the dialer + for exportName := range core.Exports() { + if f, ok := knownFixedDialerVersions[exportName]; ok { + return f(ctx, cfg) + } + } + + return nil, ErrFixedDialerVersionNotFound +} diff --git a/dialer_test.go b/dialer_test.go index 00c5456..6996e8b 100644 --- a/dialer_test.go +++ b/dialer_test.go @@ -6,7 +6,7 @@ import ( "net" "github.com/refraction-networking/water" - _ "github.com/refraction-networking/water/transport/v0" + _ "github.com/refraction-networking/water/transport/v1" ) // ExampleDialer demonstrates how to use water.Dialer. @@ -66,6 +66,10 @@ func ExampleDialer() { panic("short read") } + if err := waterConn.Close(); err != nil { + panic(err) + } + fmt.Println(string(buf[:n])) // Output: olleh } diff --git a/fixed_dialer_test.go b/fixed_dialer_test.go new file mode 100644 index 0000000..942350c --- /dev/null +++ b/fixed_dialer_test.go @@ -0,0 +1,82 @@ +package water_test + +import ( + "context" + "fmt" + "net" + + "github.com/refraction-networking/water" + _ "github.com/refraction-networking/water/transport/v1" +) + +// ExampleDialer demonstrates how to use water.Dialer. +// +// This example is expected to demonstrate how to use the LATEST version of +// W.A.T.E.R. API, while other older examples could be found under transport/vX, +// where X is the version number (e.g. v0, v1, etc.). +// +// It is worth noting that unless the W.A.T.E.R. API changes, the version upgrade +// does not bring any essential changes to this example other than the import +// path and wasm file path. +// ExampleFixedDialer demonstrates how to use v1.FixedDialer as a water.Dialer. +func ExampleFixedDialer() { + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + DialedAddressValidator: func(network, address string) error { + if network != "tcp" || address != "localhost:7700" { + return fmt.Errorf("invalid address: %s", address) + } + return nil + }, + } + + waterDialer, err := water.NewFixedDialerWithContext(context.Background(), config) + if err != nil { + panic(err) + } + + // create a local TCP listener + tcpListener, err := net.Listen("tcp", "localhost:7700") + if err != nil { + panic(err) + } + defer tcpListener.Close() // skipcq: GO-S2307 + + waterConn, err := waterDialer.DialFixedContext(context.Background()) + if err != nil { + panic(err) + } + defer waterConn.Close() // skipcq: GO-S2307 + + tcpConn, err := tcpListener.Accept() + if err != nil { + panic(err) + } + defer tcpConn.Close() // skipcq: GO-S2307 + + var msg = []byte("hello") + n, err := waterConn.Write(msg) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short write") + } + + buf := make([]byte, 1024) + n, err = tcpConn.Read(buf) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short read") + } + + if err := waterConn.Close(); err != nil { + panic(err) + } + + fmt.Println(string(buf[:n])) + // Output: olleh +} diff --git a/go.mod b/go.mod index 2acdf3b..8735797 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/refraction-networking/water -go 1.20 +go 1.22.0 retract ( v0.6.1 // bad submodule @@ -10,7 +10,10 @@ retract ( replace github.com/tetratelabs/wazero v1.7.0 => github.com/refraction-networking/wazero v1.7.0-w require ( + github.com/karelbilek/wazero-fs-tools v0.0.0-20240317201741-fc5622f5bd12 github.com/tetratelabs/wazero v1.7.0 golang.org/x/exp v0.0.0-20240119083558-1b970713d09a google.golang.org/protobuf v1.33.0 ) + +require github.com/blang/vfs v1.0.0 // indirect diff --git a/go.sum b/go.sum index 106a890..7eb2f35 100644 --- a/go.sum +++ b/go.sum @@ -1,4 +1,9 @@ +github.com/blang/vfs v1.0.0 h1:AUZUgulCDzbaNjTRWEP45X7m/J10brAptZpSRKRZBZc= +github.com/blang/vfs v1.0.0/go.mod h1:jjuNUc/IKcRNNWC9NUCvz4fR9PZLPIKxEygtPs/4tSI= github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= +github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/karelbilek/wazero-fs-tools v0.0.0-20240317201741-fc5622f5bd12 h1:2BGAdZ5gPGtRgLawYeDR2XTjWoi38kNYVF8vzrESQDw= +github.com/karelbilek/wazero-fs-tools v0.0.0-20240317201741-fc5622f5bd12/go.mod h1:Ed3NLyTuuJ7rNUITSo+wEvMbRLwYjslaE5w8q/UWoEA= github.com/refraction-networking/wazero v1.7.0-w h1:fFQO1VL+fhpFWIgfZN9FPnWYhf5DTyzwzJijqg/LUm4= github.com/refraction-networking/wazero v1.7.0-w/go.mod h1:ytl6Zuh20R/eROuyDaGPkp82O9C/DJfXAwJfQ3X6/7Y= golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= diff --git a/listener_test.go b/listener_test.go index 96f574a..e6bfc44 100644 --- a/listener_test.go +++ b/listener_test.go @@ -6,7 +6,7 @@ import ( "net" "github.com/refraction-networking/water" - _ "github.com/refraction-networking/water/transport/v0" + _ "github.com/refraction-networking/water/transport/v1" ) // ExampleListener demonstrates how to use water.Listener. @@ -60,6 +60,10 @@ func ExampleListener() { panic("short read") } + if err := waterConn.Close(); err != nil { + panic(err) + } + fmt.Println(string(buf[:n])) // Output: olleh } diff --git a/not_test.go b/not_test.go index d84c692..62464bc 100644 --- a/not_test.go +++ b/not_test.go @@ -5,9 +5,9 @@ import ( ) var ( - //go:embed transport/v0/testdata/plain.wasm + //go:embed transport/v1/testdata/plain.wasm wasmPlain []byte //nolint:unused - //go:embed transport/v0/testdata/reverse.wasm + //go:embed transport/v1/testdata/reverse.wasm wasmReverse []byte ) diff --git a/relay_test.go b/relay_test.go index 8331c43..746b498 100644 --- a/relay_test.go +++ b/relay_test.go @@ -7,7 +7,7 @@ import ( "time" "github.com/refraction-networking/water" - _ "github.com/refraction-networking/water/transport/v0" + _ "github.com/refraction-networking/water/transport/v1" ) // ExampleRelay demonstrates how to use water.Relay. @@ -78,6 +78,10 @@ func ExampleRelay() { panic("short read") } + if err := waterRelay.Close(); err != nil { + panic(err) + } + fmt.Println(string(buf[:n])) // Output: olleh } diff --git a/transport/v0/conn.go b/transport/v0/conn.go index 23e5740..167d705 100644 --- a/transport/v0/conn.go +++ b/transport/v0/conn.go @@ -173,7 +173,7 @@ func (c *Conn) closeOnWorkerError() { c.tmMutex.Unlock() <-tm.WorkerErrored() - log.LDebugf(core.Logger(), "water: v0.accept: worker thread returned") + log.LDebugf(core.Logger(), "water: WATMv0: worker thread returned") c.Close() } diff --git a/transport/v1/README.md b/transport/v1/README.md new file mode 100644 index 0000000..11209bb --- /dev/null +++ b/transport/v1/README.md @@ -0,0 +1,3 @@ +# `transport/v1` + +This directory contains the experimental implementation of the driver for WebAssembly Transport Module (WATM) spec version 1, our first stable public release. diff --git a/transport/v1/conn.go b/transport/v1/conn.go new file mode 100644 index 0000000..3cbe210 --- /dev/null +++ b/transport/v1/conn.go @@ -0,0 +1,380 @@ +package v1 + +import ( + "errors" + "fmt" + "io" + "net" + "sync" + "sync/atomic" + "time" + + "github.com/refraction-networking/water" + "github.com/refraction-networking/water/internal/log" + "github.com/refraction-networking/water/internal/socket" +) + +// Conn is the first experimental version of Conn implementation. +type Conn struct { + // callerConn is used by Dialer and Listener modes. + // It is a connection between WATM and the caller of this library. + callerConn net.Conn // currently, only net.TCPConn is supported. TODO: support more connection types + + // srcConn is used by Listener and Relay modes. + // It is a connection from the remote dialing source to WATM. + srcConn net.Conn // currently, only net.TCPConn is supported. TODO: support more connection types + + // dstConn is used by Dialer and Relay modes. + // It is a connection from WATM to the remote destination. + dstConn net.Conn // currently, only net.TCPConn is supported. TODO: support more connection types + + tm *TransportModule // abstracted WebAssembly Transport Module (WATM) + tmMutex sync.Mutex // mutex to protect access to tm + + closeOnce sync.Once + closed atomic.Bool + + water.UnimplementedConn // embedded to ensure forward compatibility +} + +// dialFixed connects to a network address specified bv the WATM. +func dialFixed(core water.Core) (c water.Conn, err error) { + tm := UpgradeCore(core) + conn := &Conn{ + tm: tm, + } + + dialer := &networkDialer{ + dialerFunc: core.Config().NetworkDialerFuncOrDefault(), + addressValidator: core.Config().DialedAddressValidator, + } + + if err = conn.tm.LinkNetworkInterface(dialer, nil); err != nil { + return nil, err + } + + if err = conn.tm.Initialize(); err != nil { + return nil, err + } + + reverseCallerConn, callerConn, err := socket.TCPConnPair() + // wasmCallerConn, conn.uoConn, err = socket.TCPConnPair() + if err != nil { + if reverseCallerConn == nil || callerConn == nil { + return nil, fmt.Errorf("water: socket.TCPConnPair returned error: %w", err) + } else { // likely due to Close() call errored + log.LErrorf(core.Logger(), "water: socket.TCPConnPair returned error: %v", err) + } + } + conn.callerConn = callerConn + + conn.dstConn, err = conn.tm.DialFixedFrom(reverseCallerConn) + if err != nil { + return nil, err + } + + // safety: we need to watch for the blocking worker thread's status. + // If it returns, no further data can be processed by the WASM module + // and we need to close this connection in that case. + go conn.closeOnWorkerError() + + if err := conn.tm.StartWorker(); err != nil { + return nil, err + } + + return conn, nil +} + +// dial dials the network address specified using the WATM. +func dial(core water.Core, network, address string) (c water.Conn, err error) { + tm := UpgradeCore(core) + conn := &Conn{ + tm: tm, + } + + dialer := &networkDialer{ + dialerFunc: core.Config().NetworkDialerFuncOrDefault(), + overrideAddress: struct { + network string + address string + }{ + network: network, + address: address, + }, + } + + if err = conn.tm.LinkNetworkInterface(dialer, nil); err != nil { + return nil, err + } + + if err = conn.tm.Initialize(); err != nil { + return nil, err + } + + reverseCallerConn, callerConn, err := socket.TCPConnPair() + // wasmCallerConn, conn.uoConn, err = socket.TCPConnPair() + if err != nil { + if reverseCallerConn == nil || callerConn == nil { + return nil, fmt.Errorf("water: socket.TCPConnPair returned error: %w", err) + } else { // likely due to Close() call errored + log.LErrorf(core.Logger(), "water: socket.TCPConnPair returned error: %v", err) + } + } + conn.callerConn = callerConn + + conn.dstConn, err = conn.tm.DialFrom(reverseCallerConn) + if err != nil { + return nil, err + } + + // safety: we need to watch for the blocking worker thread's status. + // If it returns, no further data can be processed by the WASM module + // and we need to close this connection in that case. + go conn.closeOnWorkerError() + + if err := conn.tm.StartWorker(); err != nil { + return nil, err + } + + return conn, nil +} + +// accept accepts the network connection using through the WASM module +// while using the net.Listener specified in core.config. +func accept(core water.Core) (c water.Conn, err error) { + tm := UpgradeCore(core) + conn := &Conn{ + tm: tm, + } + + if err = conn.tm.LinkNetworkInterface(nil, core.Config().NetworkListenerOrPanic()); err != nil { + return nil, err + } + + if err = conn.tm.Initialize(); err != nil { + return nil, err + } + + reverseCallerConn, callerConn, err := socket.TCPConnPair() + if err != nil { + if reverseCallerConn == nil || callerConn == nil { + return nil, fmt.Errorf("water: socket.TCPConnPair returned error: %w", err) + } else { // likely due to Close() call errored + log.LErrorf(core.Logger(), "water: socket.TCPConnPair returned error: %v", err) + } + } else if reverseCallerConn == nil || callerConn == nil { + return nil, errors.New("water: socket.TCPConnPair returned nil") + } + + conn.callerConn = callerConn + + conn.srcConn, err = conn.tm.AcceptFor(reverseCallerConn) + if err != nil { + return nil, err + } + + // safety: we need to watch for the blocking worker thread's status. + // If it returns, no further data can be processed by the WASM module + // and we need to close this connection in that case. + go conn.closeOnWorkerError() + + if err := conn.tm.StartWorker(); err != nil { + return nil, err + } + + return conn, nil +} + +func relay(core water.Core, network, address string) (c water.Conn, err error) { + tm := UpgradeCore(core) + conn := &Conn{ + tm: tm, + } + + dialer := &networkDialer{ + dialerFunc: core.Config().NetworkDialerFuncOrDefault(), + overrideAddress: struct { + network string + address string + }{ + network: network, + address: address, + }, + } + + if err = conn.tm.LinkNetworkInterface(dialer, core.Config().NetworkListenerOrPanic()); err != nil { + return nil, err + } + + if err = conn.tm.Initialize(); err != nil { + return nil, err + } + + if err := conn.tm.Associate(); err != nil { + return nil, err + } + + // safety: we need to watch for the blocking worker thread's status. + // If it returns, no further data can be processed by the WASM module + // and we need to close this connection in that case. + go conn.closeOnWorkerError() + + if err := conn.tm.StartWorker(); err != nil { + return nil, err + } + + return conn, nil +} + +func (c *Conn) closeOnWorkerError() { + var tm *TransportModule + var core water.Core + + c.tmMutex.Lock() + if c.tm != nil { + tm = c.tm + core = tm.Core() + } + c.tmMutex.Unlock() + + if err := tm.WaitWorker(); err != nil { // block until worker thread returns + log.LErrorf(core.Logger(), "water: WATMv1: worker thread returned with error: %v", err) + c.Close() + } else { + log.LDebugf(core.Logger(), "water: WATMv1: worker thread returned") + } +} + +// Read implements the net.Conn interface. +// +// It calls to the underlying user-oriented connection's [net.Conn.Read] method. +func (c *Conn) Read(b []byte) (n int, err error) { + if c.callerConn == nil { + return 0, errors.New("water: cannot read, (*RuntimeConn).uoConn is nil") + } + + return c.callerConn.Read(b) +} + +// Write implements the net.Conn interface. +// +// It calls to the underlying user-oriented connection's [net.Conn.Write] method. +func (c *Conn) Write(b []byte) (n int, err error) { + if c.callerConn == nil { + return 0, errors.New("water: cannot write, (*RuntimeConn).uoConn is nil") + } + + n, err = c.callerConn.Write(b) + if err != nil { + return n, fmt.Errorf("uoConn.Write: %w", err) + } + + if n == len(b) { + return n, nil + } else if n < len(b) { + return n, io.ErrShortWrite + } else { + return n, errors.New("invalid write result") // io.errInvalidWrite + } +} + +// Close implements the net.Conn interface. +// +// It will close both the network connection AND the WASM module, then +// the user-facing net.Conn will be closed. +func (c *Conn) Close() (err error) { + if !c.closed.CompareAndSwap(false, true) { + err = errors.New("water: already closed") + return err + } + + c.closeOnce.Do(func() { + c.tmMutex.Lock() + if c.tm != nil { + err = c.tm.Close() + c.tm = nil + } + c.tmMutex.Unlock() + }) + + return err +} + +// LocalAddr implements the net.Conn interface. +// +// It calls to the underlying network connection's [net.Conn.LocalAddr] method. +// For Listener and Relay, the network connection of interest is the srcConn. +// And for Dialer, the network connection of interest is the dstConn. +func (c *Conn) LocalAddr() net.Addr { + // for Listener and Relay, the srcConn is of interest + if c.srcConn != nil { + return c.srcConn.LocalAddr() + } + return c.dstConn.LocalAddr() // for dialer +} + +// RemoteAddr implements the net.Conn interface. +// +// It calls to the underlying network connection's [net.Conn.RemoteAddr] method. +// For Listener and Relay, the network connection of interest is the srcConn. +// And for Dialer, the network connection of interest is the dstConn. +func (c *Conn) RemoteAddr() net.Addr { + // for Listener and Relay, the srcConn is of interest + if c.srcConn != nil { + return c.srcConn.RemoteAddr() + } + return c.dstConn.RemoteAddr() // for dialer +} + +// SetDeadline implements the net.Conn interface. +// +// It calls to the underlying connections' [net.Conn.SetDeadline] method. +func (c *Conn) SetDeadline(t time.Time) (err error) { + // SetDeadline is only available to Dialer/Listener. But not Relay. + if c.callerConn == nil { + return errors.New("water: cannot set deadline, (*RuntimeConn).callerConn is nil") + } + + // note: the deadline needs to be set on the actually pushed connection, + // which is not necessarily the networkConn. (there would be middleware conns) + + if c.dstConn != nil { + err = c.dstConn.SetDeadline(t) + if err != nil { + return err + } + } + + if c.srcConn != nil { + err = c.srcConn.SetDeadline(t) + if err != nil { + return err + } + } + + return c.callerConn.SetDeadline(t) +} + +// SetReadDeadline implements the net.Conn interface. +// +// It calls to the underlying user-oriented connection's [net.Conn.SetReadDeadline] method. +func (c *Conn) SetReadDeadline(t time.Time) error { + // SetReadDeadline is only available to Dialer/Listener. But not Relay. + if c.callerConn == nil { + return errors.New("water: cannot set deadline, (*RuntimeConn).callerConn is nil") + } + + return c.callerConn.SetReadDeadline(t) +} + +// SetWriteDeadline implements the net.Conn interface. +// +// It calls to the underlying user-oriented connection's [net.Conn.SetWriteDeadline] method. +func (c *Conn) SetWriteDeadline(t time.Time) error { + // SetWriteDeadline is only available to Dialer/Listener. But not Relay. + if c.callerConn == nil { + return errors.New("water: cannot set deadline, (*RuntimeConn).callerConn is nil") + } + + return c.callerConn.SetWriteDeadline(t) +} diff --git a/transport/v1/ctrl_pipe.go b/transport/v1/ctrl_pipe.go new file mode 100644 index 0000000..266a247 --- /dev/null +++ b/transport/v1/ctrl_pipe.go @@ -0,0 +1,17 @@ +package v1 + +import "net" + +type CtrlPipe struct { + net.Conn +} + +// CONTROL MESSAGE +var ( + _CTRLPIPE_EXIT = []byte{0x00} +) + +func (c *CtrlPipe) WriteExit() error { + _, err := c.Conn.Write(_CTRLPIPE_EXIT) + return err +} diff --git a/transport/v1/dialer.go b/transport/v1/dialer.go new file mode 100644 index 0000000..75dec36 --- /dev/null +++ b/transport/v1/dialer.go @@ -0,0 +1,83 @@ +package v1 + +import ( + "context" + "fmt" + + "github.com/refraction-networking/water" +) + +func init() { + err := water.RegisterWATMDialer("watm_dial_v1", NewDialerWithContext) + if err != nil { + panic(err) + } +} + +// Dialer implements [water.Dialer] utilizing Water WATM API v1. +type Dialer struct { + config *water.Config + ctx context.Context + + water.UnimplementedDialer // embedded to ensure forward compatibility +} + +// NewDialer creates a new [water.Dialer] from the given [water.Config]. +// +// Deprecated: use [NewDialerWithContext] instead. +func NewDialer(c *water.Config) (water.Dialer, error) { + return NewDialerWithContext(context.Background(), c) +} + +// NewDialerWithContext creates a new [water.Dialer] from the given [water.Config] +// with the given [context.Context]. +// +// The context is used as the default context for call to [Dialer.Dial]. +func NewDialerWithContext(ctx context.Context, c *water.Config) (water.Dialer, error) { + return &Dialer{ + config: c.Clone(), + ctx: ctx, + }, nil +} + +// Dial dials the network address using the dialerFunc specified in config. +// +// Implements [water.Dialer]. +func (d *Dialer) Dial(network, address string) (conn water.Conn, err error) { + return d.DialContext(d.ctx, network, address) +} + +// DialContext dials the network address using the dialerFunc specified in config. +// +// The context is passed to [water.NewCoreWithContext] to control the lifetime of +// the call to function calls into the WebAssembly module. +// If the context is canceled or reaches its deadline, any current and future +// function call will return with an error. +// Call [water.WazeroRuntimeConfigFactory.SetCloseOnContextDone] with false to +// disable this behavior. +// +// Implements [water.Dialer]. +func (d *Dialer) DialContext(ctx context.Context, network, address string) (conn water.Conn, err error) { + if d.config == nil { + return nil, fmt.Errorf("water: dialing with nil config is not allowed") + } + + ctxReady, dialReady := context.WithCancel(context.Background()) + go func() { + defer dialReady() + var core water.Core + core, err = water.NewCoreWithContext(ctx, d.config) + if err != nil { + return + } + + conn, err = dial(core, network, address) + }() + + select { + case <-ctx.Done(): + return nil, ctx.Err() + case <-ctxReady.Done(): + return conn, err + } +} diff --git a/transport/v1/dialer_test.go b/transport/v1/dialer_test.go new file mode 100644 index 0000000..0cf9e61 --- /dev/null +++ b/transport/v1/dialer_test.go @@ -0,0 +1,857 @@ +package v1_test + +import ( + "bytes" + "context" + "crypto/rand" + "fmt" + "net" + "testing" + "time" + + "github.com/refraction-networking/water" + v1 "github.com/refraction-networking/water/transport/v1" +) + +// ExampleDialer demonstrates how to use v1.Dialer as a water.Dialer. +func ExampleDialer() { + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + + waterDialer, err := v1.NewDialerWithContext(context.Background(), config) + if err != nil { + panic(err) + } + + // create a local TCP listener + tcpListener, err := net.Listen("tcp", "localhost:0") + if err != nil { + panic(err) + } + defer tcpListener.Close() // skipcq: GO-S2307 + + waterConn, err := waterDialer.DialContext(context.Background(), "tcp", tcpListener.Addr().String()) + if err != nil { + panic(err) + } + defer waterConn.Close() // skipcq: GO-S2307 + + tcpConn, err := tcpListener.Accept() + if err != nil { + panic(err) + } + defer tcpConn.Close() // skipcq: GO-S2307 + + var msg = []byte("hello") + n, err := waterConn.Write(msg) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short write") + } + + buf := make([]byte, 1024) + n, err = tcpConn.Read(buf) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short read") + } + + if err := waterConn.Close(); err != nil { + panic(err) + } + + fmt.Println(string(buf[:n])) + // Output: olleh +} + +// TestDialer covers the following cases: +// 1. Dialer must work with a plain WebAssembly Transport Module that +// doesn't transform the message. +// 2. Dialer must work with a WebAssembly Transport Module that +// transforms the message by reversing it. +// 3. Dialer must fail when an invalid address is supplied. +// 4. Dialer must fail when a WebAssembly Transport Module does not +// fully implement the v1 dialer spec. +func TestDialer(t *testing.T) { + t.Run("plain must work", testDialerPlain) + t.Run("reverse must work", testDialerReverse) + t.Run("bad addr must fail", testDialerBadAddr) + t.Run("partial WATM must fail", testDialerPartialWATM) +} + +func testDialerBadAddr(t *testing.T) { + // Dial + config := &water.Config{ + TransportModuleBin: wasmPlain, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + + dialer, err := v1.NewDialerWithContext(context.Background(), config) + if err != nil { + t.Fatal(err) + } + + _, err = dialer.DialContext(context.Background(), "tcp", "256.267.278.289:2023") + if err == nil { + t.Fatal("dialer.Dial should fail") + } +} + +func testDialerPlain(t *testing.T) { // skipcq: GO-R1005 + tcpLis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + defer tcpLis.Close() // skipcq: GO-S2307 + + // Dial using water + config := &water.Config{ + TransportModuleBin: wasmPlain, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + dialer, err := v1.NewDialerWithContext(context.Background(), config) + if err != nil { + t.Fatal(err) + } + + conn, err := dialer.DialContext(context.Background(), "tcp", tcpLis.Addr().String()) + if err != nil { + t.Fatal(err) + } + defer conn.Close() // skipcq: GO-S2307 + + // type assertion: conn must be *v1.Conn + if _, ok := conn.(*v1.Conn); !ok { + t.Fatalf("returned conn is not *v1.Conn") + } + + peerConn, err := tcpLis.Accept() + if err != nil { + t.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + tripleGC(100 * time.Microsecond) + + var waterSendBuf []byte = make([]byte, 1024) + var peerSendBuf []byte = make([]byte, 1024) + var waterRecvBuf []byte = make([]byte, 1024) + var peerRecvBuf []byte = make([]byte, 1024) + // send 10 messages in each direction + for i := 0; i < 10; i++ { + _, err = rand.Read(waterSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + _, err = rand.Read(peerSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + // dialer -> listener + _, err = conn.Write(waterSendBuf) + if err != nil { + t.Fatalf("conn.Write error: %s", err) + } + + n, err := peerConn.Read(peerRecvBuf) + if err != nil { + t.Fatalf("peerConn.Read error: %s", err) + } + + if n != len(waterSendBuf) { + t.Fatalf("peerConn.Read error: read %d bytes, want %d bytes", n, len(waterSendBuf)) + } + + if !bytes.Equal(peerRecvBuf[:n], waterSendBuf) { + t.Fatalf("peerRecvBuf != waterSendBuf") + } + + // listener -> dialer + _, err = peerConn.Write(peerSendBuf) + if err != nil { + t.Fatalf("peerConn.Write error: %s", err) + } + + n, err = conn.Read(waterRecvBuf) + if err != nil { + t.Fatalf("conn.Read error: %s", err) + } + + if n != len(peerSendBuf) { + t.Fatalf("conn.Read error: read %d bytes, want %d bytes", n, len(peerSendBuf)) + } + + if !bytes.Equal(waterRecvBuf[:n], peerSendBuf) { + t.Fatalf("waterRecvBuf != peerSendBuf") + } + + tripleGC(100 * time.Microsecond) + } + + // reading with a deadline + err = conn.SetDeadline(time.Now().Add(100 * time.Millisecond)) + if err != nil { + t.Fatal(err) + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must timeout") + } + + if err := conn.Close(); err != nil { + t.Fatal(err) + } + + // after closing the conn, read/write MUST fail + _, err = conn.Write(waterSendBuf) + if err == nil { + t.Fatalf("conn.Write must fail after closing the conn") + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must fail after closing the conn") + } + + if err := tcpLis.Close(); err != nil { + t.Fatal(err) + } + + tripleGC(100 * time.Microsecond) +} + +func testDialerReverse(t *testing.T) { // skipcq: GO-R1005 + tcpLis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + defer tcpLis.Close() // skipcq: GO-S2307 + + // Dial using water + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + dialer, err := v1.NewDialerWithContext(context.Background(), config) + if err != nil { + t.Fatal(err) + } + + conn, err := dialer.DialContext(context.Background(), "tcp", tcpLis.Addr().String()) + if err != nil { + t.Fatal(err) + } + defer conn.Close() // skipcq: GO-S2307 + + // type assertion: conn must be *v1.Conn + if _, ok := conn.(*v1.Conn); !ok { + t.Fatalf("returned conn is not *v1.Conn") + } + + peerConn, err := tcpLis.Accept() + if err != nil { + t.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + tripleGC(100 * time.Microsecond) + + var waterSendBuf []byte = make([]byte, 1024) + var peerSendBuf []byte = make([]byte, 1024) + var waterRecvBuf []byte = make([]byte, 1024) + var peerRecvBuf []byte = make([]byte, 1024) + // send 10 messages in each direction + for i := 0; i < 10; i++ { + _, err = rand.Read(waterSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + _, err = rand.Read(peerSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + // dialer -> listener + _, err = conn.Write(waterSendBuf) + if err != nil { + t.Fatalf("conn.Write error: %s", err) + } + + n, err := peerConn.Read(peerRecvBuf) + if err != nil { + t.Fatalf("peerConn.Read error: %s", err) + } + + if n != len(waterSendBuf) { + t.Fatalf("peerConn.Read error: read %d bytes, want %d bytes", n, len(waterSendBuf)) + } + + // reverse the waterSendBuf + for i := 0; i < len(waterSendBuf)/2; i++ { + waterSendBuf[i], waterSendBuf[len(waterSendBuf)-1-i] = waterSendBuf[len(waterSendBuf)-1-i], waterSendBuf[i] + } + + if !bytes.Equal(peerRecvBuf[:n], waterSendBuf) { + t.Fatalf("peerRecvBuf != waterSendBuf") + } + + // listener -> dialer + _, err = peerConn.Write(peerSendBuf) + if err != nil { + t.Fatalf("peerConn.Write error: %s", err) + } + + n, err = conn.Read(waterRecvBuf) + if err != nil { + t.Fatalf("conn.Read error: %s", err) + } + + if n != len(peerSendBuf) { + t.Fatalf("conn.Read error: read %d bytes, want %d bytes", n, len(peerSendBuf)) + } + + // reverse the peerSendBuf + for i := 0; i < len(peerSendBuf)/2; i++ { + peerSendBuf[i], peerSendBuf[len(peerSendBuf)-1-i] = peerSendBuf[len(peerSendBuf)-1-i], peerSendBuf[i] + } + + if !bytes.Equal(waterRecvBuf[:n], peerSendBuf) { + t.Fatalf("waterRecvBuf != peerSendBuf") + } + + tripleGC(100 * time.Microsecond) + } + + // reading with a deadline + err = conn.SetDeadline(time.Now().Add(100 * time.Millisecond)) + if err != nil { + t.Fatal(err) + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must timeout") + } + + if err := conn.Close(); err != nil { + t.Fatal(err) + } + + // after closing the conn, read/write MUST fail + _, err = conn.Write(waterSendBuf) + if err == nil { + t.Fatalf("conn.Write must fail after closing the conn") + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must fail after closing the conn") + } + + if err := tcpLis.Close(); err != nil { + t.Fatal(err) + } + + tripleGC(100 * time.Microsecond) +} + +func testDialerPartialWATM(t *testing.T) { + t.Skip("skipping [testDialerPartialWATM]...") // TODO: implement this with a few WebAssembly Transport Modules which partially implement the v1 dialer spec +} + +// BenchmarkDialerOutbound currently measures only the outbound throughput +// of the dialer. Inbound throughput is measured for the listener instead. +// +// Separate benchmark for the latency measurement will be needed. +func BenchmarkDialerOutbound(b *testing.B) { + // create random TCP listener listening on localhost + tcpLis, err := net.Listen("tcp", "localhost:0") + if err != nil { + b.Fatal(err) + } + defer tcpLis.Close() // skipcq: GO-S2307 + + // Dial + config := &water.Config{ + TransportModuleBin: wasmPlain, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + dialer, err := v1.NewDialerWithContext(context.Background(), config) + if err != nil { + b.Fatal(err) + } + + waterConn, err := dialer.DialContext(context.Background(), "tcp", tcpLis.Addr().String()) + if err != nil { + b.Fatal(err) + } + defer waterConn.Close() // skipcq: GO-S2307 + + peerConn, err := tcpLis.Accept() + if err != nil { + b.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + err = sanityCheckConn(peerConn, waterConn, []byte("hello"), []byte("hello")) + if err != nil { + b.Fatal(err) + } + + benchmarkUnidirectionalStream(b, waterConn, peerConn) + + if err = waterConn.Close(); err != nil { + b.Fatal(err) + } + + if err = tcpLis.Close(); err != nil { + b.Fatal(err) + } +} + +// BenchmarkDialerOutboundReverse currently measures only the outbound throughput +// of the dialer. Inbound throughput is measured for the listener instead. +// +// Different from BenchmarkDialerOutbound, this benchmark uses the reverse +// WebAssembly Transport Module, which reverse the bytes of each message before +// sending it to the peer. +// +// Separate benchmark for the latency measurement will be needed. +func BenchmarkDialerOutboundReverse(b *testing.B) { + // create random TCP listener listening on localhost + tcpLis, err := net.ListenTCP("tcp", &net.TCPAddr{ + IP: net.ParseIP("127.0.0.1"), + // Port: 0, + }) + if err != nil { + b.Fatal(err) + } + defer tcpLis.Close() // skipcq: GO-S2307 + + // Dial + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + dialer, err := v1.NewDialerWithContext(context.Background(), config) + if err != nil { + b.Fatal(err) + } + + waterConn, err := dialer.DialContext(context.Background(), "tcp", tcpLis.Addr().String()) + if err != nil { + b.Fatal(err) + } + defer waterConn.Close() // skipcq: GO-S2307 + + peerConn, err := tcpLis.Accept() + if err != nil { + b.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + err = sanityCheckConn(peerConn, waterConn, []byte("hello"), []byte("olleh")) + if err != nil { + b.Fatal(err) + } + + benchmarkUnidirectionalStream(b, waterConn, peerConn) + + if err = waterConn.Close(); err != nil { + b.Fatal(err) + } + + if err = tcpLis.Close(); err != nil { + b.Fatal(err) + } +} + +// ExampleFixedDialer demonstrates how to use v1.FixedDialer as a water.Dialer. +func ExampleFixedDialer() { + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + DialedAddressValidator: func(network, address string) error { + if network != "tcp" || address != "localhost:7700" { + return fmt.Errorf("invalid address: %s", address) + } + return nil + }, + } + + waterDialer, err := v1.NewFixedDialerWithContext(context.Background(), config) + if err != nil { + panic(err) + } + + // create a local TCP listener + tcpListener, err := net.Listen("tcp", "localhost:7700") + if err != nil { + panic(err) + } + defer tcpListener.Close() // skipcq: GO-S2307 + + waterConn, err := waterDialer.DialFixedContext(context.Background()) + if err != nil { + panic(err) + } + defer waterConn.Close() // skipcq: GO-S2307 + + tcpConn, err := tcpListener.Accept() + if err != nil { + panic(err) + } + defer tcpConn.Close() // skipcq: GO-S2307 + + var msg = []byte("hello") + n, err := waterConn.Write(msg) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short write") + } + + buf := make([]byte, 1024) + n, err = tcpConn.Read(buf) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short read") + } + + if err := waterConn.Close(); err != nil { + panic(err) + } + + fmt.Println(string(buf[:n])) + // Output: olleh +} + +// TestFixedDialer covers the following cases: +// 1. FixedDialer must work with a plain WebAssembly Transport Module that +// doesn't transform the message. +// 2. FixedDialer must work with a WebAssembly Transport Module that +// transforms the message by reversing it. +// 3. FixedDialer must fail when an invalid address is supplied. +// 4. FixedDialer must fail when a WebAssembly Transport Module does not +// fully implement the v1 dialer spec. +func TestFixedDialer(t *testing.T) { + t.Run("plain must work", testFixedDialerPlain) + t.Run("reverse must work", testFixedDialerReverse) + t.Run("bad addr must fail", testFixedDialerBadAddr) + t.Run("partial WATM must fail", testFixedDialerPartialWATM) +} + +func testFixedDialerBadAddr(t *testing.T) { + // Dial + config := &water.Config{ + TransportModuleBin: wasmPlain, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + DialedAddressValidator: func(network, address string) error { + if network != "tcp" || address != "localhost:7700" { + return fmt.Errorf("invalid address: %s", address) + } + return nil + }, + } + + dialer, err := v1.NewFixedDialerWithContext(context.Background(), config) + if err != nil { + t.Fatal(err) + } + + _, err = dialer.DialFixedContext(context.Background()) + if err == nil { + t.Fatal("dialer.DialFixed should fail") + } +} + +func testFixedDialerPlain(t *testing.T) { // skipcq: GO-R1005 + tcpLis, err := net.Listen("tcp", "localhost:7700") + if err != nil { + t.Fatal(err) + } + defer tcpLis.Close() // skipcq: GO-S2307 + + // Dial using water + config := &water.Config{ + TransportModuleBin: wasmPlain, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + DialedAddressValidator: func(network, address string) error { + if network != "tcp" || address != "localhost:7700" { + return fmt.Errorf("invalid address: %s", address) + } + return nil + }, + } + dialer, err := v1.NewFixedDialerWithContext(context.Background(), config) + if err != nil { + t.Fatal(err) + } + + conn, err := dialer.DialFixedContext(context.Background()) + if err != nil { + t.Fatal(err) + } + defer conn.Close() // skipcq: GO-S2307 + + // type assertion: conn must be *v1.Conn + if _, ok := conn.(*v1.Conn); !ok { + t.Fatalf("returned conn is not *v1.Conn") + } + + peerConn, err := tcpLis.Accept() + if err != nil { + t.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + tripleGC(100 * time.Microsecond) + + var waterSendBuf []byte = make([]byte, 1024) + var peerSendBuf []byte = make([]byte, 1024) + var waterRecvBuf []byte = make([]byte, 1024) + var peerRecvBuf []byte = make([]byte, 1024) + // send 10 messages in each direction + for i := 0; i < 10; i++ { + _, err = rand.Read(waterSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + _, err = rand.Read(peerSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + // dialer -> listener + _, err = conn.Write(waterSendBuf) + if err != nil { + t.Fatalf("conn.Write error: %s", err) + } + + n, err := peerConn.Read(peerRecvBuf) + if err != nil { + t.Fatalf("peerConn.Read error: %s", err) + } + + if n != len(waterSendBuf) { + t.Fatalf("peerConn.Read error: read %d bytes, want %d bytes", n, len(waterSendBuf)) + } + + if !bytes.Equal(peerRecvBuf[:n], waterSendBuf) { + t.Fatalf("peerRecvBuf != waterSendBuf") + } + + // listener -> dialer + _, err = peerConn.Write(peerSendBuf) + if err != nil { + t.Fatalf("peerConn.Write error: %s", err) + } + + n, err = conn.Read(waterRecvBuf) + if err != nil { + t.Fatalf("conn.Read error: %s", err) + } + + if n != len(peerSendBuf) { + t.Fatalf("conn.Read error: read %d bytes, want %d bytes", n, len(peerSendBuf)) + } + + if !bytes.Equal(waterRecvBuf[:n], peerSendBuf) { + t.Fatalf("waterRecvBuf != peerSendBuf") + } + + tripleGC(100 * time.Microsecond) + } + + // reading with a deadline + err = conn.SetDeadline(time.Now().Add(100 * time.Millisecond)) + if err != nil { + t.Fatal(err) + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must timeout") + } + + if err := conn.Close(); err != nil { + t.Fatal(err) + } + + // after closing the conn, read/write MUST fail + _, err = conn.Write(waterSendBuf) + if err == nil { + t.Fatalf("conn.Write must fail after closing the conn") + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must fail after closing the conn") + } + + if err := tcpLis.Close(); err != nil { + t.Fatal(err) + } + + tripleGC(100 * time.Microsecond) +} + +func testFixedDialerReverse(t *testing.T) { // skipcq: GO-R1005 + tcpLis, err := net.Listen("tcp", "localhost:7700") + if err != nil { + t.Fatal(err) + } + defer tcpLis.Close() // skipcq: GO-S2307 + + // Dial using water + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + DialedAddressValidator: func(network, address string) error { + if network != "tcp" || address != "localhost:7700" { + return fmt.Errorf("invalid address: %s", address) + } + return nil + }, + } + dialer, err := v1.NewFixedDialerWithContext(context.Background(), config) + if err != nil { + t.Fatal(err) + } + + conn, err := dialer.DialFixedContext(context.Background()) + if err != nil { + t.Fatal(err) + } + defer conn.Close() // skipcq: GO-S2307 + + // type assertion: conn must be *v1.Conn + if _, ok := conn.(*v1.Conn); !ok { + t.Fatalf("returned conn is not *v1.Conn") + } + + peerConn, err := tcpLis.Accept() + if err != nil { + t.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + tripleGC(100 * time.Microsecond) + + var waterSendBuf []byte = make([]byte, 1024) + var peerSendBuf []byte = make([]byte, 1024) + var waterRecvBuf []byte = make([]byte, 1024) + var peerRecvBuf []byte = make([]byte, 1024) + // send 10 messages in each direction + for i := 0; i < 10; i++ { + _, err = rand.Read(waterSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + _, err = rand.Read(peerSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + // dialer -> listener + _, err = conn.Write(waterSendBuf) + if err != nil { + t.Fatalf("conn.Write error: %s", err) + } + + n, err := peerConn.Read(peerRecvBuf) + if err != nil { + t.Fatalf("peerConn.Read error: %s", err) + } + + if n != len(waterSendBuf) { + t.Fatalf("peerConn.Read error: read %d bytes, want %d bytes", n, len(waterSendBuf)) + } + + // reverse the waterSendBuf + for i := 0; i < len(waterSendBuf)/2; i++ { + waterSendBuf[i], waterSendBuf[len(waterSendBuf)-1-i] = waterSendBuf[len(waterSendBuf)-1-i], waterSendBuf[i] + } + + if !bytes.Equal(peerRecvBuf[:n], waterSendBuf) { + t.Fatalf("peerRecvBuf != waterSendBuf") + } + + // listener -> dialer + _, err = peerConn.Write(peerSendBuf) + if err != nil { + t.Fatalf("peerConn.Write error: %s", err) + } + + n, err = conn.Read(waterRecvBuf) + if err != nil { + t.Fatalf("conn.Read error: %s", err) + } + + if n != len(peerSendBuf) { + t.Fatalf("conn.Read error: read %d bytes, want %d bytes", n, len(peerSendBuf)) + } + + // reverse the peerSendBuf + for i := 0; i < len(peerSendBuf)/2; i++ { + peerSendBuf[i], peerSendBuf[len(peerSendBuf)-1-i] = peerSendBuf[len(peerSendBuf)-1-i], peerSendBuf[i] + } + + if !bytes.Equal(waterRecvBuf[:n], peerSendBuf) { + t.Fatalf("waterRecvBuf != peerSendBuf") + } + + tripleGC(100 * time.Microsecond) + } + + // reading with a deadline + err = conn.SetDeadline(time.Now().Add(100 * time.Millisecond)) + if err != nil { + t.Fatal(err) + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must timeout") + } + + if err := conn.Close(); err != nil { + t.Fatal(err) + } + + // after closing the conn, read/write MUST fail + _, err = conn.Write(waterSendBuf) + if err == nil { + t.Fatalf("conn.Write must fail after closing the conn") + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must fail after closing the conn") + } + + if err := tcpLis.Close(); err != nil { + t.Fatal(err) + } + + tripleGC(100 * time.Microsecond) +} + +func testFixedDialerPartialWATM(t *testing.T) { + t.Skip("skipping [testFixedDialerPartialWATM]...") // TODO: implement this with a few WebAssembly Transport Modules which partially implement the v1 dialer spec +} diff --git a/transport/v1/fixed_dialer.go b/transport/v1/fixed_dialer.go new file mode 100644 index 0000000..f91e36c --- /dev/null +++ b/transport/v1/fixed_dialer.go @@ -0,0 +1,58 @@ +package v1 + +import ( + "context" + "fmt" + + "github.com/refraction-networking/water" +) + +func init() { + err := water.RegisterWATMFixedDialer("watm_dial_fixed_v1", NewFixedDialerWithContext) + if err != nil { + panic(err) + } +} + +type FixedDialer struct { + config *water.Config + ctx context.Context + + water.UnimplementedFixedDialer // embedded to ensure forward compatibility +} + +func NewFixedDialerWithContext(ctx context.Context, c *water.Config) (water.FixedDialer, error) { + return &FixedDialer{ + config: c.Clone(), + ctx: ctx, + }, nil +} + +func (f *FixedDialer) DialFixed() (conn water.Conn, err error) { + return f.DialFixedContext(f.ctx) +} + +func (f *FixedDialer) DialFixedContext(ctx context.Context) (conn water.Conn, err error) { + if f.config == nil { + return nil, fmt.Errorf("water: dialing with nil config is not allowed") + } + + ctxReady, dialFixedReady := context.WithCancel(context.Background()) + go func() { + defer dialFixedReady() + var core water.Core + core, err = water.NewCoreWithContext(ctx, f.config) + if err != nil { + return + } + + conn, err = dialFixed(core) + }() + + select { + case <-ctx.Done(): + return nil, ctx.Err() + case <-ctxReady.Done(): + return conn, err + } +} diff --git a/transport/v1/gc_test.go b/transport/v1/gc_test.go new file mode 100644 index 0000000..e0e27c7 --- /dev/null +++ b/transport/v1/gc_test.go @@ -0,0 +1,148 @@ +package v1_test + +import ( + "context" + _ "embed" + "net" + "runtime" + "sync/atomic" + "testing" + + "github.com/refraction-networking/water" + v1 "github.com/refraction-networking/water/transport/v1" +) + +// This file is specifically designed to test to make sure everything will eventually be +// collected by the garbage collector. This is to ensure that there are no memory leaks +// on our end. + +func TestConn_GC(t *testing.T) { + var memStat runtime.MemStats + var GCcount uint32 + + // check if GC is enabled + runtime.ReadMemStats(&memStat) + GCcount = memStat.NumGC + runtime.GC() + runtime.Gosched() + runtime.ReadMemStats(&memStat) + if memStat.NumGC-GCcount == 0 { + t.Skipf("Likely no GC enabled on this system, skipping test...") + } + + tcpLis, err := net.Listen("tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + defer tcpLis.Close() // skipcq: GO-S2307 + + // Dial using water + config := &water.Config{ + TransportModuleBin: wasmPlain, + } + dialer, err := v1.NewDialerWithContext(context.Background(), config) + if err != nil { + t.Fatal(err) + } + + waterDialConn, err := dialer.DialContext(context.Background(), "tcp", tcpLis.Addr().String()) + if err != nil { + t.Fatal(err) + } + + // accept the connection + tcpLisConn, err := tcpLis.Accept() + if err != nil { + t.Fatal(err) + } + + var waterDialConnClosed atomic.Bool + runtime.SetFinalizer(waterDialConn, func(c *v1.Conn) { + waterDialConnClosed.Store(true) + }) + + var tcpLisConnClosed atomic.Bool + runtime.SetFinalizer(tcpLisConn, func(c net.Conn) { + tcpLisConnClosed.Store(true) + }) + + runtime.ReadMemStats(&memStat) + GCcount = memStat.NumGC + + // close the connection + waterDialConn.Close() + tcpLisConn.Close() + for { + if waterDialConnClosed.Load() && tcpLisConnClosed.Load() { + break + } + // if more than 10 GC cycles, then something is wrong + runtime.ReadMemStats(&memStat) + if memStat.NumGC-GCcount > 10 { + if !waterDialConnClosed.Load() && tcpLisConnClosed.Load() { + t.Fatal("water dialed Conn was not collected, but the peer was collected") + } else { + t.Skipf("Likely GC doesn't collect anything on this system, skipping test...") + } + } + runtime.GC() + runtime.Gosched() + } + runtime.ReadMemStats(&memStat) + t.Logf("GC cycle taken: %d", memStat.NumGC-GCcount) + + // Listen using water + lis, err := config.ListenContext(context.Background(), "tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + defer lis.Close() // skipcq: GO-S2307 + + // Dial using net + tcpDialConn, err := net.Dial("tcp", lis.Addr().String()) + if err != nil { + t.Fatal(err) + } + + // accept the connection + waterLisConn, err := lis.Accept() + if err != nil { + t.Fatal(err) + } + + var tcpDialConnClosed atomic.Bool + runtime.SetFinalizer(tcpDialConn, func(c net.Conn) { + tcpDialConnClosed.Store(true) + }) + + var waterLisConnClosed atomic.Bool + runtime.SetFinalizer(waterLisConn, func(c *v1.Conn) { + waterLisConnClosed.Store(true) + }) + + runtime.ReadMemStats(&memStat) + GCcount = memStat.NumGC + + // close the connection + tcpDialConn.Close() + waterLisConn.Close() + + for { + if tcpDialConnClosed.Load() && waterLisConnClosed.Load() { + break + } + // if more than 10 GC cycles, then something is wrong + runtime.ReadMemStats(&memStat) + if memStat.NumGC-GCcount > 10 { + if !tcpDialConnClosed.Load() && waterLisConnClosed.Load() { + t.Fatal("net dialed Conn was not collected, but the peer was collected") + } else { + t.Skipf("Likely GC doesn't collect anything on this system, skipping test...") + } + } + runtime.GC() + runtime.Gosched() + } + runtime.ReadMemStats(&memStat) + t.Logf("GC cycle taken: %d", memStat.NumGC-GCcount) +} diff --git a/transport/v1/listener.go b/transport/v1/listener.go new file mode 100644 index 0000000..a9fcbb9 --- /dev/null +++ b/transport/v1/listener.go @@ -0,0 +1,105 @@ +package v1 + +import ( + "context" + "fmt" + "net" + "sync/atomic" + + "github.com/refraction-networking/water" +) + +func init() { + err := water.RegisterWATMListener("watm_accept_v1", NewListenerWithContext) + if err != nil { + panic(err) + } +} + +// Listener implements [water.Listener] utilizing Water WATM API v1. +type Listener struct { + config *water.Config + closed *atomic.Bool + ctx context.Context + + water.UnimplementedListener // embedded to ensure forward compatibility +} + +// NewListener creates a new [water.Listener] from the given [water.Config]. +// +// Deprecated: use [NewListenerWithContext] instead. +func NewListener(c *water.Config) (water.Listener, error) { + return &Listener{ + config: c.Clone(), + closed: new(atomic.Bool), + }, nil +} + +// NewListenerWithContext creates a new [water.Listener] from the [water.Config] with +// the given [context.Context]. +// +// The context is passed to [water.NewCoreWithContext] to control the lifetime of +// the call to function calls into the WebAssembly module. +// If the context is canceled or reaches its deadline, any current and future +// function call will return with an error. +// Call [water.WazeroRuntimeConfigFactory.SetCloseOnContextDone] with false to +// disable this behavior. +func NewListenerWithContext(ctx context.Context, c *water.Config) (water.Listener, error) { + return &Listener{ + config: c.Clone(), + closed: new(atomic.Bool), + ctx: ctx, + }, nil +} + +// Accept waits for and returns the next connection after processing +// the data with the WASM module. +// +// The returned net.Conn implements net.Conn and could be seen as +// the inbound connection with a wrapping transport protocol handled +// by the WASM module. +// +// Implements [net.Listener]. +func (l *Listener) Accept() (net.Conn, error) { + return l.AcceptWATER() +} + +// Close closes the listener. +// +// Implements [net.Listener]. +func (l *Listener) Close() error { + if l.closed.CompareAndSwap(false, true) { + return l.config.NetworkListener.Close() + } + return nil +} + +// Addr returns the listener's network address. +// +// Implements [net.Listener]. +func (l *Listener) Addr() net.Addr { + return l.config.NetworkListener.Addr() +} + +// AcceptWATER waits for and returns the next connection to the listener +// as a water.Conn. +// +// Implements [water.Listener]. +func (l *Listener) AcceptWATER() (water.Conn, error) { + if l.closed.Load() { + return nil, fmt.Errorf("water: listener is closed") + } + + if l.config == nil { + return nil, fmt.Errorf("water: accept with nil config is not allowed") + } + + var core water.Core + var err error + core, err = water.NewCoreWithContext(l.ctx, l.config) + if err != nil { + return nil, err + } + + return accept(core) +} diff --git a/transport/v1/listener_test.go b/transport/v1/listener_test.go new file mode 100644 index 0000000..e3a5ead --- /dev/null +++ b/transport/v1/listener_test.go @@ -0,0 +1,452 @@ +package v1_test + +import ( + "bytes" + "context" + "crypto/rand" + "fmt" + "net" + "testing" + "time" + + "github.com/refraction-networking/water" + v1 "github.com/refraction-networking/water/transport/v1" +) + +// ExampleListener demonstrates how to use v1.Listener as a water.Listener. +func ExampleListener() { + wrappedTcpListener, err := net.Listen("tcp", "localhost:0") + if err != nil { + panic(fmt.Sprintf("failed to listen: %v", err)) + } + + // start using W.A.T.E.R. API below this line, have fun! + config := &water.Config{ + TransportModuleBin: wasmReverse, + NetworkListener: wrappedTcpListener, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + + waterListener, err := v1.NewListenerWithContext(context.Background(), config) + if err != nil { + panic(fmt.Sprintf("failed to listen: %v", err)) + } + defer waterListener.Close() // skipcq: GO-S2307 + + tcpConn, err := net.Dial("tcp", waterListener.Addr().String()) + if err != nil { + panic(err) + } + defer tcpConn.Close() // skipcq: GO-S2307 + + waterConn, err := waterListener.Accept() + if err != nil { + panic(err) + } + defer waterConn.Close() // skipcq: GO-S2307 + + var msg = []byte("hello") + n, err := tcpConn.Write(msg) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short write") + } + + buf := make([]byte, 1024) + n, err = waterConn.Read(buf) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short read") + } + + if err := waterConn.Close(); err != nil { + panic(err) + } + + fmt.Println(string(buf[:n])) + // Output: olleh +} + +// TestListener covers the following cases: +// 1. Listener must work with a plain WebAssembly Transport Module that +// doesn't transform the message. +// 2. Listener must work with a WebAssembly Transport Module that +// transforms the message by reversing it. +// 3. Listener must fail when an invalid address is supplied. +// 4. Listener must fail when a WebAssembly Transport Module does not +// fully implement the v1 listener spec. +func TestListener(t *testing.T) { + t.Run("plain must work", testListenerPlain) + t.Run("reverse must work", testListenerReverse) + t.Run("bad addr must fail", testListenerBadAddr) + t.Run("partial WATM must fail", testListenerPartialWATM) +} + +func testListenerBadAddr(t *testing.T) { + // prepare + config := &water.Config{ + TransportModuleBin: wasmPlain, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + + _, err := config.ListenContext(context.Background(), "tcp", "256.267.278.289:2023") + if err == nil { + t.Fatal("config.ListenContext should fail on bad address") + } +} + +func testListenerPlain(t *testing.T) { // skipcq: GO-R1005 + // prepare + config := &water.Config{ + TransportModuleBin: wasmPlain, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + + testLis, err := config.ListenContext(context.Background(), "tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + defer testLis.Close() // skipcq: GO-S2307 + + // Dial with net.Dial + peerConn, err := net.Dial("tcp", testLis.Addr().String()) + if err != nil { + t.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + conn, err := testLis.Accept() + if err != nil { + t.Fatal(err) + } + defer conn.Close() // skipcq: GO-S2307 + + // type assertion: conn must be *v1.Conn + if _, ok := conn.(*v1.Conn); !ok { + t.Fatalf("conn is not *v1.Conn") + } + + tripleGC(100 * time.Microsecond) + + var peerSendBuf []byte = make([]byte, 1024) + var waterSendBuf []byte = make([]byte, 1024) + var peerRecvBuf []byte = make([]byte, 1024) + var waterRecvBuf []byte = make([]byte, 1024) + // send 10 messages in each direction + for i := 0; i < 10; i++ { + _, err = rand.Read(peerSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + _, err = rand.Read(waterSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + // water -> peer + _, err = conn.Write(waterSendBuf) + if err != nil { + t.Fatalf("conn.Write error: %s", err) + } + + n, err := peerConn.Read(peerRecvBuf) + if err != nil { + t.Fatalf("lisConn.Read error: %s", err) + } + + if n != len(waterSendBuf) { + t.Fatalf("lisConn.Read error: read %d bytes, want %d bytes", n, len(waterSendBuf)) + } + + if !bytes.Equal(peerRecvBuf[:n], waterSendBuf) { + t.Fatalf("peerRecvBuf != waterSendBuf") + } + + // peer -> water + _, err = peerConn.Write(peerSendBuf) + if err != nil { + t.Fatalf("lisConn.Write error: %s", err) + } + + n, err = conn.Read(waterRecvBuf) + if err != nil { + t.Fatalf("conn.Read error: %s", err) + } + + if n != len(peerSendBuf) { + t.Fatalf("conn.Read error: read %d bytes, want %d bytes", n, len(peerSendBuf)) + } + + if !bytes.Equal(waterRecvBuf[:n], peerSendBuf) { + t.Fatalf("waterRecvBuf != peerSendBuf") + } + + tripleGC(100 * time.Microsecond) + } + + // reading with a deadline + err = conn.SetDeadline(time.Now().Add(100 * time.Millisecond)) + if err != nil { + t.Fatal(err) + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must timeout") + } + + if err := conn.Close(); err != nil { + t.Fatal(err) + } + + // after closing the conn, read/write MUST fail + _, err = conn.Write(waterSendBuf) + if err == nil { + t.Fatalf("conn.Write must fail after closing the conn") + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must fail after closing the conn") + } + + if err = testLis.Close(); err != nil { + t.Fatal(err) + } + + tripleGC(100 * time.Microsecond) +} + +func testListenerReverse(t *testing.T) { // skipcq: GO-R1005 + // prepare + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + + testLis, err := config.ListenContext(context.Background(), "tcp", "localhost:0") + if err != nil { + t.Fatal(err) + } + defer testLis.Close() // skipcq: GO-S2307 + + // Dial with net.Dial + peerConn, err := net.Dial("tcp", testLis.Addr().String()) + if err != nil { + t.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + conn, err := testLis.Accept() + if err != nil { + t.Fatal(err) + } + defer conn.Close() // skipcq: GO-S2307 + + // type assertion: conn must be *v1.Conn + if _, ok := conn.(*v1.Conn); !ok { + t.Fatalf("conn is not *v1.Conn") + } + + tripleGC(100 * time.Microsecond) + + var peerSendBuf []byte = make([]byte, 1024) + var waterSendBuf []byte = make([]byte, 1024) + var peerRecvBuf []byte = make([]byte, 1024) + var waterRecvBuf []byte = make([]byte, 1024) + // send 10 messages in each direction + for i := 0; i < 10; i++ { + _, err = rand.Read(peerSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + _, err = rand.Read(waterSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + // water -> peer + _, err = conn.Write(waterSendBuf) + if err != nil { + t.Fatalf("conn.Write error: %s", err) + } + + n, err := peerConn.Read(peerRecvBuf) + if err != nil { + t.Fatalf("lisConn.Read error: %s", err) + } + + if n != len(waterSendBuf) { + t.Fatalf("lisConn.Read error: read %d bytes, want %d bytes", n, len(waterSendBuf)) + } + + // reverse the waterSendBuf + for i := 0; i < len(waterSendBuf)/2; i++ { + waterSendBuf[i], waterSendBuf[len(waterSendBuf)-1-i] = waterSendBuf[len(waterSendBuf)-1-i], waterSendBuf[i] + } + + if !bytes.Equal(peerRecvBuf[:n], waterSendBuf) { + t.Fatalf("peerRecvBuf != waterSendBuf") + } + + // peer -> water + _, err = peerConn.Write(peerSendBuf) + if err != nil { + t.Fatalf("lisConn.Write error: %s", err) + } + + n, err = conn.Read(waterRecvBuf) + if err != nil { + t.Fatalf("conn.Read error: %s", err) + } + + if n != len(peerSendBuf) { + t.Fatalf("conn.Read error: read %d bytes, want %d bytes", n, len(peerSendBuf)) + } + + // reverse the peerSendBuf + for i := 0; i < len(peerSendBuf)/2; i++ { + peerSendBuf[i], peerSendBuf[len(peerSendBuf)-1-i] = peerSendBuf[len(peerSendBuf)-1-i], peerSendBuf[i] + } + + if !bytes.Equal(waterRecvBuf[:n], peerSendBuf) { + t.Fatalf("waterRecvBuf != peerSendBuf") + } + + tripleGC(100 * time.Microsecond) + } + + // reading with a deadline + err = conn.SetDeadline(time.Now().Add(100 * time.Millisecond)) + if err != nil { + t.Fatal(err) + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must timeout") + } + + if err := conn.Close(); err != nil { + t.Fatal(err) + } + + // after closing the conn, read/write MUST fail + _, err = conn.Write(waterSendBuf) + if err == nil { + t.Fatalf("conn.Write must fail after closing the conn") + } + + _, err = conn.Read(waterRecvBuf) + if err == nil { + t.Fatalf("conn.Read must fail after closing the conn") + } + + if err = testLis.Close(); err != nil { + t.Fatal(err) + } + + tripleGC(100 * time.Microsecond) +} + +func testListenerPartialWATM(t *testing.T) { + t.Skip("skipping [testListenerPartialWATM]...") // TODO: implement this with a few WebAssembly Transport Modules which partially implement the v1 listener spec +} + +// BenchmarkInboundListener currently measures only the inbound throughput +// of the listener. Outbound throughput is measured for the dialer instead. +// +// Separate benchmark for the latency measurement will be needed. +func BenchmarkInboundListener(b *testing.B) { + // prepare + config := &water.Config{ + TransportModuleBin: wasmPlain, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + + testLis, err := config.ListenContext(context.Background(), "tcp", "localhost:0") + if err != nil { + b.Fatal(err) + } + defer testLis.Close() // skipcq: GO-S2307 + + // Dial with net.Dial + peerConn, err := net.Dial("tcp", testLis.Addr().String()) + if err != nil { + b.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + waterConn, err := testLis.Accept() + if err != nil { + b.Fatal(err) + } + defer waterConn.Close() // skipcq: GO-S2307 + + err = sanityCheckConn(peerConn, waterConn, []byte("hello"), []byte("hello")) + if err != nil { + b.Fatal(err) + } + benchmarkUnidirectionalStream(b, peerConn, waterConn) + + if err = waterConn.Close(); err != nil { + b.Fatal(err) + } + + if err = testLis.Close(); err != nil { + b.Fatal(err) + } +} + +// BenchmarkInboundListenerReverse currently measures only the inbound throughput +// of the listener. Outbound throughput is measured for the dialer instead. +// +// Different from BenchmarkInboundListener, this benchmark uses the reverse +// WebAssembly Transport Module, which reverse the bytes of each message before +// sending it to the peer. +// +// Separate benchmark for the latency measurement will be needed. +func BenchmarkInboundListenerReverse(b *testing.B) { + // prepare + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + + testLis, err := config.ListenContext(context.Background(), "tcp", "localhost:0") + if err != nil { + b.Fatal(err) + } + + // Dial with net.Dial + peerConn, err := net.Dial("tcp", testLis.Addr().String()) + if err != nil { + b.Fatal(err) + } + defer peerConn.Close() // skipcq: GO-S2307 + + waterConn, err := testLis.Accept() + if err != nil { + b.Fatal(err) + } + + err = sanityCheckConn(peerConn, waterConn, []byte("hello"), []byte("olleh")) + if err != nil { + b.Fatal(err) + } + benchmarkUnidirectionalStream(b, peerConn, waterConn) + + if err = waterConn.Close(); err != nil { + b.Fatal(err) + } + + if err = testLis.Close(); err != nil { + b.Fatal(err) + } +} diff --git a/transport/v1/network_dialer.go b/transport/v1/network_dialer.go new file mode 100644 index 0000000..8026525 --- /dev/null +++ b/transport/v1/network_dialer.go @@ -0,0 +1,51 @@ +package v1 + +import ( + "fmt" + "net" +) + +// networkDialer is a dialer used to dial remote network addresses. +// It is used by Dialer and Relay modes. +type networkDialer struct { + dialerFunc func(network, address string) (net.Conn, error) + + overrideAddress struct { + network string + address string + } // used by DialAny. If not set, DialAny will fail. This address is not checked by addressValidator. + + addressValidator func(network, address string) error // used by Dial, if set. Otherwise all addresses are considered invalid. +} + +// Dial dials the network address using the dialerFunc of the networkDialer. +// It validates the address using the addressValidator if set. +// +// It should be used when the caller is aware of the address to dial. +func (nd *networkDialer) Dial(network, address string) (net.Conn, error) { + // // TODO: maybe use override address if it is set? + // if nd.HasOverrideAddress() { + // return nd.dialerFunc(nd.overrideAddress.network, nd.overrideAddress.address) + // } + + if nd.addressValidator == nil { // foolproof: not set == not allowed + return nil, fmt.Errorf("address validator is not set") + } + + if err := nd.addressValidator(network, address); err != nil { + return nil, fmt.Errorf("address validation: %w", err) + } + + return nd.dialerFunc(network, address) +} + +// DialFixed dials the predetermined address using the dialerFunc of the networkDialer. +// +// It should be used only when the caller is not aware of the address to dial. +func (nd *networkDialer) DialFixed() (net.Conn, error) { + return nd.dialerFunc(nd.overrideAddress.network, nd.overrideAddress.address) +} + +func (nd *networkDialer) HasOverrideAddress() bool { + return nd.overrideAddress.network != "" && nd.overrideAddress.address != "" +} diff --git a/transport/v1/not_test.go b/transport/v1/not_test.go new file mode 100644 index 0000000..c723c22 --- /dev/null +++ b/transport/v1/not_test.go @@ -0,0 +1,120 @@ +package v1_test + +import ( + "bytes" + "crypto/rand" + "errors" + "net" + "runtime" + "sync" + "testing" + "time" + + _ "embed" +) + +var ( + //go:embed testdata/plain.wasm + wasmPlain []byte + + //go:embed testdata/reverse.wasm + wasmReverse []byte +) + +//// Gaukas: uncomment the following code once we decide to require +//// go1.21 as minimum version +// func init() { +// var programLevel = new(slog.LevelVar) // Info by default +// h := slog.NewJSONHandler(os.Stderr, &slog.HandlerOptions{Level: programLevel}) +// slog.SetDefault(slog.New(h)) +// programLevel.Set(slog.LevelError) +// } + +func benchmarkUnidirectionalStream(b *testing.B, wrConn, rdConn net.Conn) { + var sendMsg []byte = make([]byte, 1024) + _, err := rand.Read(sendMsg) + if err != nil { + b.Fatalf("rand.Read error: %s", err) + } + + // setup a goroutine to read from the peerConn + var wg2 *sync.WaitGroup = new(sync.WaitGroup) + var peerRecvErr error + wg2.Add(1) + go func() { + defer wg2.Done() + recvBytes := 0 + var n int + recvbuf := make([]byte, 1024+1) // + for recvBytes < b.N*1024 { + n, peerRecvErr = rdConn.Read(recvbuf) + recvBytes += n + if peerRecvErr != nil { + return + } + } + }() + + tripleGC(100 * time.Microsecond) + + b.SetBytes(1024) + b.StartTimer() + b.ResetTimer() + for i := 0; i < b.N; i++ { + _, err = wrConn.Write(sendMsg) + if err != nil { + b.Logf("Write error, cntr: %d, N: %d", i, b.N) + b.Fatal(err) + } + + _, err := rand.Read(sendMsg) + if err != nil { + b.Fatalf("rand.Read error: %s", err) + } + } + wg2.Wait() + b.StopTimer() + + if peerRecvErr != nil { + b.Fatal(peerRecvErr) + } +} + +func sanityCheckConn(wrConn, rdConn net.Conn, writeMsg, expectRead []byte) error { + _, err := wrConn.Write(writeMsg) + if err != nil { + return err + } + + recvbuf := make([]byte, len(expectRead)+1) + n, err := rdConn.Read(recvbuf) + if err != nil { + return err + } + + if n != len(expectRead) { + return errors.New("read length mismatch") + } + + if !bytes.Equal(recvbuf[:n], expectRead) { + return errors.New("read content mismatch") + } + + return nil +} + +// Trigger garbage collection for several times to garbage collect +// most of the objects that is already unreachable. +// +// This is to simulate the real-world scenario where the WASM module +// may enter a weird state by relying on some unreachable objects to +// function properly and we need to ensure that it does not happen. +func tripleGC(sleep time.Duration) { + runtime.GC() + runtime.GC() + runtime.GC() + + if sleep > 0 { + time.Sleep(sleep) + } +} diff --git a/transport/v1/relay.go b/transport/v1/relay.go new file mode 100644 index 0000000..7724ced --- /dev/null +++ b/transport/v1/relay.go @@ -0,0 +1,151 @@ +package v1 + +import ( + "context" + "fmt" + "net" + "sync/atomic" + + "github.com/refraction-networking/water" +) + +func init() { + err := water.RegisterWATMRelay("watm_associate_v1", NewRelayWithContext) + if err != nil { + panic(err) + } +} + +// Relay implements [water.Relay] utilizing Water WATM API v1. +type Relay struct { + config *water.Config + ctx context.Context + running *atomic.Bool + + dialNetwork, dialAddress string + + water.UnimplementedRelay // embedded to ensure forward compatibility +} + +// NewRelay creates a new [water.Relay] from the given [water.Config] without starting +// it. To start the relay, call [Relay.RelayTo] or [Relay.ListenAndRelayTo]. +// +// Deprecated: use [NewRelayWithContext] instead. +func NewRelay(c *water.Config) (water.Relay, error) { + return NewRelayWithContext(context.Background(), c) +} + +// NewRelayWithContext creates a new [water.Relay] from the [water.Config] with the given +// [context.Context] without starting it. To start the relay, call [Relay.RelayTo] +// or [Relay.ListenAndRelayTo]. +// +// The context is passed to [water.NewCoreWithContext] to control the lifetime of +// the call to function calls into the WebAssembly module. +// If the context is canceled or reaches its deadline, any current and future +// function call will return with an error. +// Call [water.WazeroRuntimeConfigFactory.SetCloseOnContextDone] with false to +// disable this behavior. +func NewRelayWithContext(ctx context.Context, c *water.Config) (water.Relay, error) { + return &Relay{ + config: c.Clone(), + ctx: ctx, + running: new(atomic.Bool), + }, nil +} + +// RelayTo implements [water.Relay]. +func (r *Relay) RelayTo(network, address string) error { + if !r.running.CompareAndSwap(false, true) { + return water.ErrRelayAlreadyStarted + } + + if r.config == nil { + return fmt.Errorf("water: relaying with nil config is not allowed") + } + + r.dialNetwork = network + r.dialAddress = address + + var core water.Core + var err error + for r.running.Load() { + core, err = water.NewCoreWithContext(r.ctx, r.config) + if err != nil { + return err + } + + _, err = relay(core, network, address) + if err != nil { + if r.running.Load() { // errored before closing + return err + } + break + } + } + + return nil +} + +// ListenAndRelayTo implements [water.Relay]. +func (r *Relay) ListenAndRelayTo(lnetwork, laddress, rnetwork, raddress string) error { + if !r.running.CompareAndSwap(false, true) { + return water.ErrRelayAlreadyStarted + } + defer r.running.CompareAndSwap(true, false) + + lis, err := net.Listen(lnetwork, laddress) + if err != nil { + return err + } + + config := r.config.Clone() + config.NetworkListener = lis + r.config = config + + if r.config == nil { + return fmt.Errorf("water: relaying with nil config is not allowed") + } + + r.dialNetwork = rnetwork + r.dialAddress = raddress + + var core water.Core + for r.running.Load() { + core, err = water.NewCoreWithContext(r.ctx, r.config) + if err != nil { + return err + } + + _, err = relay(core, rnetwork, raddress) + if err != nil { + if r.running.Load() { // errored before closing + return err + } + break + } + } + + return nil +} + +// Close implements [water.Relay]. +func (r *Relay) Close() error { + if !r.running.CompareAndSwap(true, false) { + return nil + } + + if r.config != nil { + return r.config.NetworkListener.Close() + } + + return fmt.Errorf("water: relay is not configured") +} + +// Addr implements [water.Relay]. +func (r *Relay) Addr() net.Addr { + if r.config == nil { + return nil + } + + return r.config.NetworkListener.Addr() +} diff --git a/transport/v1/relay_test.go b/transport/v1/relay_test.go new file mode 100644 index 0000000..b314e31 --- /dev/null +++ b/transport/v1/relay_test.go @@ -0,0 +1,369 @@ +package v1_test + +import ( + "bytes" + "context" + "crypto/rand" + "fmt" + "net" + "sync" + "testing" + "time" + + "github.com/refraction-networking/water" + v1 "github.com/refraction-networking/water/transport/v1" +) + +// ExampleRelay demonstrates how to use v1.Relay as a water.Relay. +func ExampleRelay() { + // Relay destination: a local TCP server + tcpListener, err := net.Listen("tcp", "localhost:0") + if err != nil { + panic(err) + } + defer tcpListener.Close() // skipcq: GO-S2307 + + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + + waterRelay, err := v1.NewRelayWithContext(context.Background(), config) + if err != nil { + panic(err) + } + defer waterRelay.Close() // skipcq: GO-S2307 + + // in a goroutine, start relay + go func() { + err := waterRelay.ListenAndRelayTo("tcp", "localhost:0", "tcp", tcpListener.Addr().String()) + if err != nil { + panic(err) + } + }() + time.Sleep(100 * time.Millisecond) // 100ms to spin up relay + + // test source: a local TCP client + clientConn, err := net.Dial("tcp", waterRelay.Addr().String()) + if err != nil { + panic(err) + } + defer clientConn.Close() // skipcq: GO-S2307 + + serverConn, err := tcpListener.Accept() + if err != nil { + panic(err) + } + defer serverConn.Close() // skipcq: GO-S2307 + + var msg = []byte("hello") + n, err := clientConn.Write(msg) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short write") + } + + buf := make([]byte, 1024) + n, err = serverConn.Read(buf) + if err != nil { + panic(err) + } + if n != len(msg) { + panic("short read") + } + + if err := waterRelay.Close(); err != nil { + panic(err) + } + + fmt.Println(string(buf[:n])) + // Output: olleh +} + +// TestRelay covers the following cases: +// 1. Relay must work with a plain WebAssembly Transport Module that +// doesn't transform the message. +// 2. Relay must work with a WebAssembly Transport Module that +// transforms the message by reversing it. +func TestRelay(t *testing.T) { + t.Run("plain must work", testRelayPlain) + t.Run("reverse must work", testRelayReverse) +} + +func testRelayPlain(t *testing.T) { // skipcq: GO-R1005 + // test destination: a local TCP server + tcpLis, err := net.ListenTCP("tcp", &net.TCPAddr{IP: net.IPv4(127, 0, 0, 1), Port: 0}) + if err != nil { + t.Fatal(err) + } + + // goroutine to accept incoming connections + var serverConn net.Conn + var serverAcceptErr error + var serverAcceptWg *sync.WaitGroup = new(sync.WaitGroup) + serverAcceptWg.Add(1) + go func() { + serverConn, serverAcceptErr = tcpLis.Accept() + serverAcceptWg.Done() + }() + + // setup relay + config := &water.Config{ + TransportModuleBin: wasmPlain, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + relay, err := v1.NewRelayWithContext(context.Background(), config) + if err != nil { + t.Fatal(err) + } + + // in a goroutine, start relay + var relayErr error + var relayWg *sync.WaitGroup = new(sync.WaitGroup) + relayWg.Add(1) + go func() { + relayErr = relay.ListenAndRelayTo("tcp", "localhost:0", "tcp", tcpLis.Addr().String()) + relayWg.Done() + }() + time.Sleep(100 * time.Millisecond) // 100ms to spin up relay + + // test source: a local TCP client + clientConn, err := net.Dial("tcp", relay.Addr().String()) + if err != nil { + t.Fatal(err) + } + defer clientConn.Close() // skipcq: GO-S2307 + + // wait for server to accept connection + serverAcceptWg.Wait() + if serverAcceptErr != nil { + t.Fatal(serverAcceptErr) + } + defer serverConn.Close() // skipcq: GO-S2307 + + tripleGC(100 * time.Microsecond) + + var clientSendBuf []byte = make([]byte, 1024) + var serverSendBuf []byte = make([]byte, 1024) + var clientRecvBuf []byte = make([]byte, 1024) + var serverRecvBuf []byte = make([]byte, 1024) + // send 10 messages in each direction + for i := 0; i < 10; i++ { + _, err = rand.Read(clientSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + _, err = rand.Read(serverSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + // client -> server + _, err = clientConn.Write(clientSendBuf) + if err != nil { + t.Fatalf("conn.Write error: %s", err) + } + + n, err := serverConn.Read(serverRecvBuf) + if err != nil { + t.Fatalf("serverConn.Read error: %s", err) + } + + if n != len(clientSendBuf) { + t.Fatalf("serverConn.Read error: read %d bytes, want %d bytes", n, len(clientSendBuf)) + } + + if !bytes.Equal(serverRecvBuf[:n], clientSendBuf) { + t.Fatalf("serverRecvBuf != clientSendBuf") + } + + // server -> client + _, err = serverConn.Write(serverSendBuf) + if err != nil { + t.Fatalf("serverConn.Write error: %s", err) + } + + n, err = clientConn.Read(clientRecvBuf) + if err != nil { + t.Fatalf("clientConn.Read error: %s", err) + } + + if n != len(serverSendBuf) { + t.Fatalf("clientConn.Read error: read %d bytes, want %d bytes", n, len(serverSendBuf)) + } + + if !bytes.Equal(clientRecvBuf[:n], serverSendBuf) { + t.Fatalf("clientRecvBuf != serverSendBuf") + } + + tripleGC(100 * time.Microsecond) + } + + // stop relay + err = relay.Close() + if err != nil { + t.Fatal(err) + } + + // wait for relay to stop + relayWg.Wait() + if relayErr != nil { + t.Fatal(relayErr) + } + + // at this time, connection must still be alive + _, err = clientConn.Write([]byte("hello")) + if err != nil { + t.Fatal(err) + } + + n, err := serverConn.Read(serverRecvBuf) + if err != nil { + t.Fatal(err) + } + + if string(serverRecvBuf[:n]) != "hello" { + t.Fatalf("serverRecvBuf != \"hello\"") + } +} + +func testRelayReverse(t *testing.T) { // skipcq: GO-R1005 + // test destination: a local TCP server + tcpLis, err := net.ListenTCP("tcp", &net.TCPAddr{IP: net.IPv4(127, 0, 0, 1), Port: 0}) + if err != nil { + t.Fatal(err) + } + defer tcpLis.Close() // skipcq: GO-S2307 + + // setup relay + config := &water.Config{ + TransportModuleBin: wasmReverse, + ModuleConfigFactory: water.NewWazeroModuleConfigFactory(), + } + relay, err := water.NewRelayWithContext(context.Background(), config) + if err != nil { + t.Fatal(err) + } + + // in a goroutine, start relay + var relayErr error + var relayWg *sync.WaitGroup = new(sync.WaitGroup) + relayWg.Add(1) + go func() { + relayErr = relay.ListenAndRelayTo("tcp", "localhost:0", "tcp", tcpLis.Addr().String()) + relayWg.Done() + }() + time.Sleep(100 * time.Millisecond) // 100ms to spin up relay + + // test source: a local TCP client + clientConn, err := net.Dial("tcp", relay.Addr().String()) + if err != nil { + t.Fatal(err) + } + defer clientConn.Close() // skipcq: GO-S2307 + + serverConn, err := tcpLis.Accept() + if err != nil { + t.Fatal(err) + } + defer serverConn.Close() // skipcq: GO-S2307 + + tripleGC(100 * time.Microsecond) + + var clientSendBuf []byte = make([]byte, 1024) + var serverSendBuf []byte = make([]byte, 1024) + var clientRecvBuf []byte = make([]byte, 1024) + var serverRecvBuf []byte = make([]byte, 1024) + // send 10 messages in each direction + for i := 0; i < 10; i++ { + _, err = rand.Read(clientSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + _, err = rand.Read(serverSendBuf) + if err != nil { + t.Fatalf("rand.Read error: %s", err) + } + + // client -> server + _, err = clientConn.Write(clientSendBuf) + if err != nil { + t.Fatalf("conn.Write error: %s", err) + } + + n, err := serverConn.Read(serverRecvBuf) + if err != nil { + t.Fatalf("serverConn.Read error: %s", err) + } + + if n != len(clientSendBuf) { + t.Fatalf("serverConn.Read error: read %d bytes, want %d bytes", n, len(clientSendBuf)) + } + + // reverse clientSendBuf + for i := 0; i < len(clientSendBuf)/2; i++ { + clientSendBuf[i], clientSendBuf[len(clientSendBuf)-1-i] = clientSendBuf[len(clientSendBuf)-1-i], clientSendBuf[i] + } + + if !bytes.Equal(serverRecvBuf[:n], clientSendBuf) { + t.Fatalf("serverRecvBuf != clientSendBuf") + } + + // server -> client + _, err = serverConn.Write(serverSendBuf) + if err != nil { + t.Fatalf("serverConn.Write error: %s", err) + } + + n, err = clientConn.Read(clientRecvBuf) + if err != nil { + t.Fatalf("clientConn.Read error: %s", err) + } + + if n != len(serverSendBuf) { + t.Fatalf("clientConn.Read error: read %d bytes, want %d bytes", n, len(serverSendBuf)) + } + + // reverse serverSendBuf + for i := 0; i < len(serverSendBuf)/2; i++ { + serverSendBuf[i], serverSendBuf[len(serverSendBuf)-1-i] = serverSendBuf[len(serverSendBuf)-1-i], serverSendBuf[i] + } + + if !bytes.Equal(clientRecvBuf[:n], serverSendBuf) { + t.Fatalf("clientRecvBuf != serverSendBuf") + } + + tripleGC(100 * time.Microsecond) + } + + // stop relay + err = relay.Close() + if err != nil { + t.Fatal(err) + } + + // wait for relay to stop + relayWg.Wait() + if relayErr != nil { + t.Fatal(relayErr) + } + + // at this time, connection must still be alive + _, err = clientConn.Write([]byte("hello")) + if err != nil { + t.Fatal(err) + } + + n, err := serverConn.Read(serverRecvBuf) + if err != nil { + t.Fatal(err) + } + + if string(serverRecvBuf[:n]) != "olleh" { + t.Fatalf("serverRecvBuf != \"olleh\"") + } +} diff --git a/transport/v1/tcp_reference_test.go b/transport/v1/tcp_reference_test.go new file mode 100644 index 0000000..ca90e64 --- /dev/null +++ b/transport/v1/tcp_reference_test.go @@ -0,0 +1,47 @@ +//go:build benchtcpref + +package v1_test + +import ( + "net" + "sync" + "testing" +) + +// BenchmarkTCPReference can be used as a reference to compare to the +// benchmark result of Dialer/Listener/Relay. +// +// Separate benchmark for the latency measurement will be needed. +func BenchmarkTCPReference(b *testing.B) { + testLis, err := net.Listen("tcp", "localhost:0") + if err != nil { + b.Fatal(err) + } + defer testLis.Close() + + // goroutine to accept incoming connections + var lConn net.Conn + var goroutineErr error + var wg *sync.WaitGroup = new(sync.WaitGroup) + wg.Add(1) + go func() { + defer wg.Done() + lConn, goroutineErr = testLis.Accept() + }() + + // Dial with net.Dial + dConn, err := net.Dial("tcp", testLis.Addr().String()) + if err != nil { + b.Fatal(err) + } + defer dConn.Close() + + // wait for listener to accept connection + wg.Wait() + if goroutineErr != nil { + b.Fatal(goroutineErr) + } + defer lConn.Close() + + benchmarkUnidirectionalStream(b, dConn, lConn) +} diff --git a/transport/v1/testdata/plain.wasm b/transport/v1/testdata/plain.wasm new file mode 100644 index 0000000000000000000000000000000000000000..c36b614c2ff2de27a6fc5f7060f4db37b712134c GIT binary patch literal 674620 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

$V5YuZ^L%N8M>wFuW@0(w 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

%zZ)e!O#j*N*PE2+$GsAS1tb-tY+E()ov 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≈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 `kCp4Pz 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 BipKx| literal 0 HcmV?d00001 diff --git a/transport/v1/testdata/reverse.wasm b/transport/v1/testdata/reverse.wasm new file mode 100644 index 0000000000000000000000000000000000000000..5927f054fa60422baa48b33ee19592a0b74ce948 GIT binary patch literal 674987 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

@$uWp`$nXf4Dybf$qBh#DOmZ=m#{6 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�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 literal 0 HcmV?d00001 diff --git a/transport/v1/transport_module.go b/transport/v1/transport_module.go new file mode 100644 index 0000000..738390d --- /dev/null +++ b/transport/v1/transport_module.go @@ -0,0 +1,841 @@ +package v1 + +import ( + "errors" + "fmt" + "net" + "runtime" + "sync" + "sync/atomic" + "syscall" + "time" + + "github.com/refraction-networking/water" + "github.com/refraction-networking/water/internal/log" + "github.com/refraction-networking/water/internal/socket" + "github.com/refraction-networking/water/internal/wasip1" + "github.com/tetratelabs/wazero/api" +) + +// TransportModule acts like a "managed core". It was build to provide WebAssembly +// Transport Module API-facing functions and utilities that are exclusive to +// version 0. +type TransportModule struct { + core water.Core // the underlying WASM runtime + coreMutex sync.RWMutex + + _init func() (int32, error) // watm_init_v1() -> (err i32) + + // _dial_fixed + _dial_fixed func(int32) (int32, error) // watm_dial_fixed_v1(callerConnFd i32) -> (remoteConnFd i32) + + // _dial: + // - Calls to `env.host_dial() -> fd: i32` to dial a network connection and bind it to one + // of its file descriptors, record the fd for `remoteConnFd`. This will be the fd it used + // to read/write data from/to the remote destination. + // - Records the `callerConnFd`. This will be the fd it used to read/write data from/to + // the caller. + // - Returns `remoteConnFd` to the caller. + _dial func(int32) (int32, error) // watm_dial_v1(callerConnFd i32) -> (remoteConnFd i32) + + // _accept: + // - Calls to `env.host_accept() -> fd: i32` to accept a network connection and bind it + // to one of its file descriptors, record the fd for `sourceConnFd`. This will be the fd + // it used to read/write data from/to the source address. + // - Records the `callerConnFd`. This will be the fd it used to read/write data from/to + // the caller. + // - Returns `sourceConnFd` to the caller. + _accept func(int32) (int32, error) // watm_accept_v1(callerConnFd i32) -> (sourceConnFd i32) + + // _associate: + // - Calls to `env.host_accept() -> fd: i32` to accept a network connection and bind it + // to one of its file descriptors, record the fd for `sourceConnFd`. This will be the fd + // it used to read/write data from/to the source address. + // - Calls to `env.host_dial() -> fd: i32` to dial a network connection and bind it to one + // of its file descriptors, record the fd for `remoteConnFd`. This will be the fd it used + // to read/write data from/to the remote destination. + // - Returns 0 to the caller or an error code if any of the above steps failed. + _associate func() (int32, error) // watm_associate_v1() -> (err i32) + + // backgroundWorker is used to replace the deprecated read-write-close model. + // We put it in a inlined struct for better code styling. + backgroundWorker *struct { + // _ctrlpipe: + // - Provides a socket to the WASM module for it to listen to cancellation events. + // - on Cancel() call, the pipe will be written to by the host (caller). + // - WebAssembly instance should select on the socket and handle cancellation ASAP. + // + // This is a workaround for not being able to call another WASM function until the + // current one returns. And apparently this function needs to be called BEFORE the + // blocking _start() function. + _ctrlpipe func(int32) (int32, error) // watm_ctrlpipe_v1(fd i32) -> (err i32) + + // _start provides a blocking function for the WASM module to run a worker thread. + // In the worker thread, WASM module should select on all previously pushed sockets + // (typically, two among callerConnFd, remoteConnFd, and sourceConnFd) and handle + // data bi-directionally. The exact behavior is up to the WebAssembly module and + // overall it drives data flow below based on the identity of the module: + // - Dialer: callerConn + remoteConn + // - Listener: callerConn + sourceConn + // - Relay: sourceConn + remoteConn + // + // The worker thread should exit and return when the cancellation pipe is available + // for reading. For the current design, the content read from the pipe does not + // include meaningful data. + _start func() (int32, error) // watm_start_v1() (err int32) + + // When the worker thread exits, this channel will be closed after the error + // is stored in exitedWith if any. + // + // Read-only to the caller. Write-only to the worker thread. + exited chan bool + exitedWith atomic.Value // error + + // a socket used to cancel the worker thread. When the host calls Cancel(), it should + // write to this socket. + controlPipe *CtrlPipe + } + + managedConns map[int32]net.Conn // the conn we want to keep alive + managedConnsMutex sync.RWMutex + + deferOnce sync.Once + deferredFuncs []func() + + closeOnce sync.Once +} + +// UpgradeCore upgrades a water.Core to a v0 TransportModule. +func UpgradeCore(core water.Core) *TransportModule { + watm := &TransportModule{ + core: core, + managedConns: make(map[int32]net.Conn), + deferredFuncs: make([]func(), 0), + } + + err := core.WASIPreview1() + if err != nil { + log.LErrorf(core.Logger(), "water: unable to import WASI Preview 1: %v", err) + return nil + } + + // SetFinalizer, so Go GC automatically cleans up the WASM runtime + // and all opened file descriptors (if any) associated with it + // when the TransportModule is garbage collected. + runtime.SetFinalizer(watm, func(tm *TransportModule) { + tm.Close() + }) + + return watm +} + +// AcceptFor is used to make the Transport Module act as a listener and +// accept a network connection. +func (tm *TransportModule) AcceptFor(reverseCallerConn net.Conn) (sourceConn net.Conn, err error) { + // check if _accept is exported + if tm._accept == nil { + return nil, fmt.Errorf("water: WASM module does not export watm_accept_v1") + } + + callerFd, err := tm.PushConn(reverseCallerConn) + if err != nil { + return nil, fmt.Errorf("water: pushing caller conn failed: %w", err) + } + + sourceFd, err := tm._accept(callerFd) + if err != nil { + return nil, fmt.Errorf("water: calling _accept: %w", err) + } else { + sourceConn := tm.GetManagedConns(sourceFd) + if sourceConn == nil { + return nil, fmt.Errorf("water: failed to look up network connection by fd") + } + return sourceConn, nil + } +} + +// Associate is used to make the Transport Module act as a relay and +// associate two network connections, where one is from a source via +// a listener, and the other is to a destination via a dialer. +func (tm *TransportModule) Associate() error { + // check if _associate is exported + if tm._associate == nil { + return fmt.Errorf("water: WASM module does not export watm_associate_v1") + } + + _, err := tm._associate() + if err != nil { + return fmt.Errorf("water: calling _associate function returned error: %w", err) + } + return nil +} + +// Cancel cancels the worker thread if it is running and returns +// the error returned by the worker thread. This call is designed +// to block until the worker thread exits. +// +// If a timeout is set, this function will cancel the underlying +// context to terminate the WebAssembly execution if the worker +// does not exit before the timeout. +func (tm *TransportModule) Cancel(timeout time.Duration) error { + if tm.backgroundWorker == nil { + return fmt.Errorf("water: Transport Module is not initialized") + } + + if tm.backgroundWorker.controlPipe == nil { + return fmt.Errorf("water: Transport Module is cancelled") + } + + // Sanity check: if the worker thread has already exited, we don't need to cancel + select { + case <-tm.backgroundWorker.exited: // already exited + if err := tm.ExitedWith(); err != nil { + return fmt.Errorf("water: worker thread returned error: %w", err) + } + return nil + default: // still running + break + } + + // write to the cancel pipe + if err := tm.backgroundWorker.controlPipe.WriteExit(); err != nil { + return fmt.Errorf("water: writing to cancel pipe failed: %w", err) + } + + if timeout > 0 { // if timeout is set, we set the context to expire after the timeout + select { + case <-time.After(timeout): + tm.core.ContextCancel() // if not exited before timeout, cancel the context to terminate the WebAssembly execution + case <-tm.backgroundWorker.exited: + if err := tm.ExitedWith(); err != nil { + return fmt.Errorf("water: worker thread returned error: %w", err) + } + return nil + } + } + // wait for the worker thread to exit, may take forever + if err := tm.WaitWorker(); err != nil { + return fmt.Errorf("water: worker thread returned error: %w", err) + } + + if err := tm.backgroundWorker.controlPipe.Close(); err != nil { + return fmt.Errorf("water: closing cancel pipe failed: %w", err) + } + + tm.backgroundWorker.controlPipe = nil + + return nil +} + +// Clean up the Transport Module by closing all connections pushed into the Transport Module. +func (tm *TransportModule) Cleanup() { + // clean up pushed files + var keyList []int32 + tm.managedConnsMutex.Lock() + for k, v := range tm.managedConns { + if v != nil { + if err := v.Close(); err != nil { + log.LErrorf(tm.Core().Logger(), "water: closing pushed connection failed: %v", err) + } + } + keyList = append(keyList, k) + } + for _, k := range keyList { + delete(tm.managedConns, k) + } + tm.managedConnsMutex.Unlock() + + // clean up deferred functions + tm.deferredFuncs = nil + + // clean up all saved functions + tm._init = nil + tm._dial = nil + tm._accept = nil + tm._associate = nil + tm.backgroundWorker._ctrlpipe = nil + tm.backgroundWorker._start = nil +} + +func (tm *TransportModule) Close() error { + var err error + + tm.closeOnce.Do(func() { + tm.DeferAll() + err = tm.Cancel(0) // may wait forever + tm.Cleanup() + tm.coreMutex.Lock() + if tm.core != nil { + tm.core.Close() + tm.core = nil + } + tm.coreMutex.Unlock() + }) + + return err +} + +func (tm *TransportModule) DialFixedFrom(reverseCallerConn net.Conn) (destConn net.Conn, err error) { + // check if _connect is exported + if tm._dial_fixed == nil { + return nil, fmt.Errorf("water: WASM module does not export watm_dial_fixed_v1") + } + + callerFd, err := tm.PushConn(reverseCallerConn) + if err != nil { + return nil, fmt.Errorf("water: pushing caller conn failed: %w", err) + } + + remoteFd, err := tm._dial_fixed(callerFd) + if err != nil { + return nil, fmt.Errorf("water: calling _dial_fixed: %w", err) + } else { + destConn := tm.GetManagedConns(remoteFd) + if destConn == nil { + return nil, fmt.Errorf("water: failed to look up network connection by fd") + } + return destConn, nil + } +} + +func (tm *TransportModule) Core() water.Core { + tm.coreMutex.RLock() + core := tm.core + defer tm.coreMutex.RUnlock() + return core +} + +func (tm *TransportModule) Defer(f func()) { + tm.deferredFuncs = append(tm.deferredFuncs, f) +} + +func (tm *TransportModule) DeferAll() { + tm.deferOnce.Do(func() { // execute all deferred functions ONLY IF not yet executed + for _, f := range tm.deferredFuncs { + f() + } + }) +} + +// DialFrom is used to make the Transport Module act as a dialer and +// dial a network connection. +// +// Takes the reverse caller connection as an argument, which is used +// to communicate with the caller. +func (tm *TransportModule) DialFrom(reverseCallerConn net.Conn) (destConn net.Conn, err error) { + // check if _dial is exported + if tm._dial == nil { + return nil, fmt.Errorf("water: WASM module does not export watm_dial_v1") + } + + callerFd, err := tm.PushConn(reverseCallerConn) + if err != nil { + return nil, fmt.Errorf("water: pushing caller conn failed: %w", err) + } + + remoteFd, err := tm._dial(callerFd) + if err != nil { + return nil, fmt.Errorf("water: calling _dial: %w", err) + } else { + destConn := tm.GetManagedConns(remoteFd) + if destConn == nil { + return nil, fmt.Errorf("water: failed to look up network connection by fd") + } + return destConn, nil + } +} + +// ExitedWith returns the error that the worker thread exited with. +// +// It is recommended to use [TransportModule.WaitWorker] to wait for the worker +// thread to exit and get the error. This function does not check if the worker +// thread has exited yet and will return always return nil before the worker +// thread exits. +func (tm *TransportModule) ExitedWith() error { + if tm.backgroundWorker == nil { + return fmt.Errorf("water: Transport Module is not initialized") + } + + maybeErr := tm.backgroundWorker.exitedWith.Load() + + if maybeErr == nil { + return nil + } + + return maybeErr.(error) +} + +// GetManagedConns returns the net.Conn associated with the file descriptor. +func (tm *TransportModule) GetManagedConns(fd int32) net.Conn { + tm.managedConnsMutex.RLock() + defer tm.managedConnsMutex.RUnlock() + if tm.managedConns == nil { + return nil + } + if v, ok := tm.managedConns[fd]; ok { + return v + } + + return nil +} + +// Initialize initializes the WASMv0 runtime by getting all the exported functions from +// the WASM module. +// +// All imports must be set before calling this function. +func (tm *TransportModule) Initialize() error { + if tm.Core() == nil { + return fmt.Errorf("water: core is not initialized") + } + + var err error + + // v0 API removed: + // - host_defer: deprecated in v0, removed in v1 + // - pull_config: WATM now probes /conf/watm.cfg for configuration + + // instantiate the WASM module + if err = tm.Core().Instantiate(); err != nil { + return err + } + + coreCtx := tm.Core().Context() + + // _init + init := tm.Core().ExportedFunction("watm_init_v1") + if init == nil { + return fmt.Errorf("water: WASM module does not export watm_init_v1") + } else { + // check signature: + // watm_init_v1() -> (err i32) + if len(init.Definition().ParamTypes()) != 0 { + return fmt.Errorf("water: watm_init_v1 function expects 0 argument, got %d", len(init.Definition().ParamTypes())) + } + + if len(init.Definition().ResultTypes()) != 1 { + return fmt.Errorf("water: watm_init_v1 function expects 1 result, got %d", len(init.Definition().ResultTypes())) + } else if init.Definition().ResultTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_init_v1 function expects result type i32, got %s", api.ValueTypeName(init.Definition().ResultTypes()[0])) + } + + tm._init = func() (int32, error) { + ret, err := init.Call(coreCtx) + if err != nil { + return 0, fmt.Errorf("water: calling watm_init_v1 function returned error: %w", err) + } + + return wasip1.DecodeWATERError(api.DecodeI32(ret[0])) + } + } + + // _dial_fixed + dial_fixed := tm.Core().ExportedFunction("watm_dial_fixed_v1") + if dial_fixed == nil { + log.LWarnf(tm.Core().Logger(), "water: WASM module does not export watm_dial_fixed_v1, water.Dialer will not work.") + tm._dial_fixed = func(callerFd int32) (int32, error) { + return 0, water.ErrUnimplementedFixedDialer + } + } else { + // check signature: + // watm_dial_fixed_v1(callerFd i32) -> (remoteFd i32) + if len(dial_fixed.Definition().ParamTypes()) != 1 { + return fmt.Errorf("water: watm_dial_fixed_v1 function expects 1 argument, got %d", len(dial_fixed.Definition().ParamTypes())) + } else if dial_fixed.Definition().ParamTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_dial_fixed_v1 function expects argument type i32, got %s", api.ValueTypeName(dial_fixed.Definition().ParamTypes()[0])) + } + + if len(dial_fixed.Definition().ResultTypes()) != 1 { + return fmt.Errorf("water: watm_dial_fixed_v1 function expects 1 result, got %d", len(dial_fixed.Definition().ResultTypes())) + } else if dial_fixed.Definition().ResultTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_dial_fixed_v1 function expects result type i32, got %s", api.ValueTypeName(dial_fixed.Definition().ResultTypes()[0])) + } + + tm._dial_fixed = func(callerFd int32) (int32, error) { + ret, err := dial_fixed.Call(coreCtx, api.EncodeI32(callerFd)) + if err != nil { + return 0, fmt.Errorf("water: calling watm_dial_fixed_v1 function returned error: %w", err) + } + + return wasip1.DecodeWATERError(api.DecodeI32(ret[0])) + } + } + + // _dial + dial := tm.Core().ExportedFunction("watm_dial_v1") + if dial == nil { + log.LWarnf(tm.Core().Logger(), "water: WASM module does not export watm_dial_v1, water.Dialer will not work.") + tm._dial = func(callerFd int32) (int32, error) { + return 0, water.ErrUnimplementedDialer + } + } else { + // check signature: + // watm_dial_v1(callerFd i32) -> (remoteFd i32) + if len(dial.Definition().ParamTypes()) != 1 { + return fmt.Errorf("water: watm_dial_v1 function expects 1 argument, got %d", len(dial.Definition().ParamTypes())) + } else if dial.Definition().ParamTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_dial_v1 function expects argument type i32, got %s", api.ValueTypeName(dial.Definition().ParamTypes()[0])) + } + + if len(dial.Definition().ResultTypes()) != 1 { + return fmt.Errorf("water: watm_dial_v1 function expects 1 result, got %d", len(dial.Definition().ResultTypes())) + } else if dial.Definition().ResultTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_dial_v1 function expects result type i32, got %s", api.ValueTypeName(dial.Definition().ResultTypes()[0])) + } + + tm._dial = func(callerFd int32) (int32, error) { + ret, err := dial.Call(coreCtx, api.EncodeI32(callerFd)) + if err != nil { + return 0, fmt.Errorf("water: calling watm_dial_v1 function returned error: %w", err) + } + + return wasip1.DecodeWATERError(api.DecodeI32(ret[0])) + } + } + + // _accept + accept := tm.Core().ExportedFunction("watm_accept_v1") + if accept == nil { + log.LWarnf(tm.Core().Logger(), "water: WASM module does not export watm_accept_v1, water.Listener will not work.") + tm._accept = func(callerFd int32) (int32, error) { + return 0, water.ErrUnimplementedListener + } + } else { + // check signature: + // watm_accept_v1(callerFd i32) -> (sourceFd i32) + if len(accept.Definition().ParamTypes()) != 1 { + return fmt.Errorf("water: watm_accept_v1 function expects 1 argument, got %d", len(accept.Definition().ParamTypes())) + } else if accept.Definition().ParamTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_accept_v1 function expects argument type i32, got %s", api.ValueTypeName(accept.Definition().ParamTypes()[0])) + } + + if len(accept.Definition().ResultTypes()) != 1 { + return fmt.Errorf("water: watm_accept_v1 function expects 1 result, got %d", len(accept.Definition().ResultTypes())) + } else if accept.Definition().ResultTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_accept_v1 function expects result type i32, got %s", api.ValueTypeName(accept.Definition().ParamTypes()[0])) + } + + tm._accept = func(callerFd int32) (int32, error) { + ret, err := accept.Call(coreCtx, api.EncodeI32(callerFd)) + if err != nil { + return 0, fmt.Errorf("water: calling watm_accept_v1 function returned error: %w", err) + } + + return wasip1.DecodeWATERError(api.DecodeI32(ret[0])) + } + } + + // _associate + associate := tm.Core().ExportedFunction("watm_associate_v1") + if associate == nil { + log.LWarnf(tm.Core().Logger(), "water: WASM module does not export watm_associate_v1, water.Relay will not work.") + tm._associate = func() (int32, error) { + return 0, water.ErrUnimplementedRelay + } + } else { + // check signature: + // watm_associate_v1() -> (err i32) + if len(associate.Definition().ParamTypes()) != 0 { + return fmt.Errorf("water: watm_associate_v1 function expects 0 argument, got %d", len(associate.Definition().ParamTypes())) + } + + if len(associate.Definition().ResultTypes()) != 1 { + return fmt.Errorf("water: watm_associate_v1 function expects 1 result, got %d", len(associate.Definition().ResultTypes())) + } else if associate.Definition().ResultTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_associate_v1 function expects result type i32, got %s", api.ValueTypeName(associate.Definition().ResultTypes()[0])) + } + + tm._associate = func() (int32, error) { + ret, err := associate.Call(coreCtx) + if err != nil { + return 0, fmt.Errorf("water: calling watm_associate_v1 function returned error: %w", err) + } + + return wasip1.DecodeWATERError(api.DecodeI32(ret[0])) + } + } + + // watm_ctrlpipe_v1: set up the control pipe + ctrlPipe := tm.Core().ExportedFunction("watm_ctrlpipe_v1") + if ctrlPipe == nil { + return fmt.Errorf("water: WASM module does not export watm_ctrlpipe_v1") + } else { + // check signature: + // watm_ctrlpipe_v1(fd i32) -> (err i32) + if len(ctrlPipe.Definition().ParamTypes()) != 1 { + return fmt.Errorf("water: watm_ctrlpipe_v1 function expects 1 argument, got %d", len(ctrlPipe.Definition().ParamTypes())) + } else if ctrlPipe.Definition().ParamTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_ctrlpipe_v1 function expects argument type i32, got %s", api.ValueTypeName(ctrlPipe.Definition().ParamTypes()[0])) + } + + if len(ctrlPipe.Definition().ResultTypes()) != 1 { + return fmt.Errorf("water: watm_ctrlpipe_v1 function expects 1 result, got %d", len(ctrlPipe.Definition().ResultTypes())) + } else if ctrlPipe.Definition().ResultTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_ctrlpipe_v1 function expects result type i32, got %s", api.ValueTypeName(ctrlPipe.Definition().ResultTypes()[0])) + } + } + + // watm_start_v1: the mainloop entry point + start := tm.Core().ExportedFunction("watm_start_v1") + if start == nil { + return fmt.Errorf("water: WASM module does not export watm_start_v1") + } else { + // check signature: + // watm_start_v1() -> (err i32) + if len(start.Definition().ParamTypes()) != 0 { + return fmt.Errorf("water: watm_start_v1 function expects 0 argument, got %d", len(start.Definition().ParamTypes())) + } + + if len(start.Definition().ResultTypes()) != 1 { + return fmt.Errorf("water: watm_start_v1 function expects 1 result, got %d", len(start.Definition().ResultTypes())) + } else if start.Definition().ResultTypes()[0] != api.ValueTypeI32 { + return fmt.Errorf("water: watm_start_v1 function expects result type i32, got %s", api.ValueTypeName(start.Definition().ResultTypes()[0])) + } + } + + // set up the background worker + tm.backgroundWorker = &struct { + _ctrlpipe func(int32) (int32, error) + _start func() (int32, error) + exited chan bool + exitedWith atomic.Value + controlPipe *CtrlPipe + }{ + _ctrlpipe: func(fd int32) (int32, error) { + ret, err := ctrlPipe.Call(coreCtx, api.EncodeI32(fd)) + if err != nil { + return 0, fmt.Errorf("water: calling watm_ctrlpipe_v1 function returned error: %w", err) + } + + return wasip1.DecodeWATERError(api.DecodeI32(ret[0])) + }, + _start: func() (int32, error) { + ret, err := start.Call(coreCtx) + if err != nil { + return 0, fmt.Errorf("water: calling watm_start_v1 function returned error: %w", err) + } + + return wasip1.DecodeWATERError(api.DecodeI32(ret[0])) + }, + exited: make(chan bool), + // exitedWith: nil, + // controlPipe: nil, + } + + // call _init + if errno, err := tm._init(); err != nil { + return fmt.Errorf("water: calling watm_init_v1 function returned error: %w", err) + } else { + _, err := wasip1.DecodeWATERError(errno) + return err + } +} + +func (tm *TransportModule) LinkNetworkInterface(dialer *networkDialer, listener net.Listener) error { + var waterDial func( + networkIovs, networkIovsLen int32, + addressIovs, addressIovsLen int32, + ) (fd int32) + if dialer != nil { + waterDial = func( + networkIovs, networkIovsLen int32, + addressIovs, addressIovsLen int32, + ) (fd int32) { + var network, address string + var n int + var err error + + networkStrBuf := make([]byte, 256) + n, err = tm.Core().ReadIovs(networkIovs, networkIovsLen, networkStrBuf) + if err != nil { + log.LErrorf(tm.Core().Logger(), "water: ReadIovs: %v", err) + return wasip1.EncodeWATERError(syscall.EINVAL) // invalid argument + } + network = string(networkStrBuf[:n]) + + addressStrBuf := make([]byte, 256) + n, err = tm.Core().ReadIovs(addressIovs, addressIovsLen, addressStrBuf) + if err != nil { + log.LErrorf(tm.Core().Logger(), "water: ReadIovs: %v", err) + return wasip1.EncodeWATERError(syscall.EINVAL) // invalid argument + } + address = string(addressStrBuf[:n]) + + conn, err := dialer.Dial(network, address) + if err != nil { + log.LErrorf(tm.Core().Logger(), "water: dialer.Dial: %v", err) + return wasip1.EncodeWATERError(syscall.ENOTCONN) // not connected + } + fd, err = tm.PushConn(conn) + if err != nil { + log.LErrorf(tm.Core().Logger(), "water: PushConn: %v", err) + } + return fd + } + } else { + waterDial = func( + networkPtr, networkLen int32, + addrPtr, addrLen int32, + ) (fd int32) { + return wasip1.EncodeWATERError(syscall.ENODEV) // no such device + } + } + + if err := tm.Core().ImportFunction("env", "water_dial", waterDial); err != nil { + if err != water.ErrFuncNotImported { + return fmt.Errorf("water: linking dialer function, (*water.Core).ImportFunction: %w", err) + } else { + log.LWarnf(tm.Core().Logger(), "water: water_dial function not imported by WATM, water.FixedDialer will not work") + } + + } + + var waterDialFixed func() (fd int32) + if dialer != nil { + waterDialFixed = func() (fd int32) { + conn, err := dialer.DialFixed() + if err != nil { + log.LErrorf(tm.Core().Logger(), "water: dialer.DialFixed: %v", err) + return wasip1.EncodeWATERError(syscall.ENOTCONN) // not connected + } + fd, err = tm.PushConn(conn) + if err != nil { + log.LErrorf(tm.Core().Logger(), "water: PushConn: %v", err) + } + return fd + } + } else { + waterDialFixed = func() (fd int32) { + return wasip1.EncodeWATERError(syscall.ENODEV) // no such device + } + } + + if err := tm.Core().ImportFunction("env", "water_dial_fixed", waterDialFixed); err != nil { + if err != water.ErrFuncNotImported { + return fmt.Errorf("water: linking dialer function, (*water.Core).ImportFunction: %w", err) + } else { + log.LWarnf(tm.Core().Logger(), "water: water_dial_fixed function not imported by WATM, water.Dialer will not work") + } + } + + var waterAccept func() (fd int32) + if listener != nil { + waterAccept = func() (fd int32) { + conn, err := listener.Accept() + if err != nil { + log.LErrorf(tm.Core().Logger(), "water: listener.Accept: %v", err) + return wasip1.EncodeWATERError(syscall.ENOTCONN) // not connected + } + fd, err = tm.PushConn(conn) + if err != nil { + log.LErrorf(tm.Core().Logger(), "water: PushConn: %v", err) + } + return fd + } + } else { + waterAccept = func() (fd int32) { + return wasip1.EncodeWATERError(syscall.ENODEV) // no such device + } + } + + if err := tm.Core().ImportFunction("env", "water_accept", waterAccept); err != nil { + if listener != nil || err != water.ErrFuncNotImported { // skip error if listener is nil and the error is ErrFuncNotImported, which indicates intentional skip + return fmt.Errorf("water: linking listener function, (*water.Core).ImportFunction: %w", err) + } + } + + return nil +} + +// PushConn pushes a net.Conn into the Transport Module. +func (tm *TransportModule) PushConn(conn net.Conn) (fd int32, err error) { + fd, err = tm.Core().InsertConn(conn) + if err != nil { + return wasip1.EncodeWATERError(syscall.EBADF), err // Cannot push a connection + } + + tm.managedConnsMutex.Lock() + tm.managedConns[fd] = conn + tm.managedConnsMutex.Unlock() + + return fd, nil +} + +// Worker spins up a worker thread for the WATM to run a blocking function, which is +// expected to be the mainloop. +// +// This function is non-blocking, so it will not return any error once the WebAssembly +// worker thread is started. To get the error, use [TransportModule.WaitWorker] or +// [TransportModule.ExitedWith]. +func (tm *TransportModule) StartWorker() error { + // check if _worker is exported + if tm.backgroundWorker == nil { + return fmt.Errorf("water: Transport Module is not initialized properly for background worker") + } + + // create control pipe connection pair + ctrlConnR, ctrlConnW, err := socket.TCPConnPair() + if err != nil { + return fmt.Errorf("water: creating cancel pipe failed: %w", err) + } + tm.backgroundWorker.controlPipe = &CtrlPipe{ + Conn: ctrlConnW, + } // host will Write to this pipe to cancel the worker + + // push cancel pipe + ctrlPipeFd, err := tm.PushConn(ctrlConnR) + if err != nil { + return fmt.Errorf("water: pushing cancel pipe failed: %w", err) + } + + // pass the fd to the WASM module + _, err = tm.backgroundWorker._ctrlpipe(ctrlPipeFd) + if err != nil { + return fmt.Errorf("water: calling watm_ctrlpipe_v1: %w", err) + } + + log.LDebugf(tm.Core().Logger(), "water: starting worker thread") + + // in a goroutine, call _worker + go func() { + defer close(tm.backgroundWorker.exited) + _, err := tm.backgroundWorker._start() + if err != nil && !errors.Is(err, syscall.ECANCELED) { + log.LErrorf(tm.Core().Logger(), "water: WATM worker thread exited with error: %v", err) + tm.backgroundWorker.exitedWith.Store(err) + } else { + // tm.backgroundWorker.exitedWith.Store(nil) // can't store nil value + log.LDebugf(tm.Core().Logger(), "water: WATM worker thread exited without error") + } + }() + + log.LDebugf(tm.Core().Logger(), "water: worker thread started") + + // last sanity check if the worker thread crashed immediately even before we return + if err := tm.ExitedWith(); err != nil { + return fmt.Errorf("water: worker thread returned error: %w", err) + } + + return nil +} + +// WaitWorker waits for the worker thread to exit and returns the error +// if any. +func (tm *TransportModule) WaitWorker() error { + if tm.backgroundWorker == nil { + return fmt.Errorf("water: Transport Module is not initialized") + } + + if tm.backgroundWorker.exited == nil { + return fmt.Errorf("water: worker thread is not running") + } + + <-tm.backgroundWorker.exited + + maybeErr := tm.backgroundWorker.exitedWith.Load() + + if maybeErr == nil { + return nil + } + + return maybeErr.(error) +}