From f11ca28abba6cf22057b84dcec1f85a52801ef47 Mon Sep 17 00:00:00 2001 From: Wago Networking Agent Date: Mon, 20 Jul 2026 05:16:51 +0000 Subject: [PATCH 1/7] ci: define the TinyGo-supported networking surface --- internal/dependencytest/inspection_test.go | 4 - .../dependencytest/inspection_tls_test.go | 46 ++++ .../dependencytest/tinygo_surface_test.go | 124 ++++++++++ scripts/tinygo-excluded-packages.tsv | 5 + scripts/tinygo-supported-test.sh | 214 ++++++++++++++++++ selective_composition_test.go | 9 - 6 files changed, 389 insertions(+), 13 deletions(-) create mode 100644 internal/dependencytest/inspection_tls_test.go create mode 100644 internal/dependencytest/tinygo_surface_test.go create mode 100644 scripts/tinygo-excluded-packages.tsv create mode 100755 scripts/tinygo-supported-test.sh diff --git a/internal/dependencytest/inspection_test.go b/internal/dependencytest/inspection_test.go index e35a77c..e73e876 100644 --- a/internal/dependencytest/inspection_test.go +++ b/internal/dependencytest/inspection_test.go @@ -18,9 +18,7 @@ import ( rootfixture "github.com/wago-org/net/internal/dependencytest/testdata/root" tcpfixture "github.com/wago-org/net/internal/dependencytest/testdata/tcp" tcpdnsfixture "github.com/wago-org/net/internal/dependencytest/testdata/tcpdns" - tcptlsfixture "github.com/wago-org/net/internal/dependencytest/testdata/tcptls" tcpudpfixture "github.com/wago-org/net/internal/dependencytest/testdata/tcpudp" - tlsfixture "github.com/wago-org/net/internal/dependencytest/testdata/tls" udpfixture "github.com/wago-org/net/internal/dependencytest/testdata/udp" udpdnsfixture "github.com/wago-org/net/internal/dependencytest/testdata/udpdns" wago "github.com/wago-org/wago" @@ -47,9 +45,7 @@ func TestFixtureRuntimeInspection(t *testing.T) { {name: "linklocal4", newNetwork: linklocalfixture.Network, capabilities: []wago.Capability{wagonet.CapInfo, wagonet.CapLinkLocal4}, imports: map[string]int{wagonet.Module: 1, wagonet.LinkLocal4Module: 7}}, {name: "ipv6", newNetwork: ipv6fixture.Network, capabilities: []wago.Capability{wagonet.CapInfo, wagonet.CapIPv6}, imports: map[string]int{wagonet.Module: 1, wagonet.IPv6Module: 3}}, {name: "dhcpv6", newNetwork: dhcpv6fixture.Network, capabilities: []wago.Capability{wagonet.CapDHCPv6, wagonet.CapInfo}, imports: map[string]int{wagonet.Module: 1, wagonet.DHCPv6Module: 7}}, - {name: "tls", newNetwork: tlsfixture.Network, capabilities: []wago.Capability{wagonet.CapInfo, wagonet.CapTLS}, imports: map[string]int{wagonet.Module: 1, wagonet.TLSModule: 9}}, {name: "tcp_udp", newNetwork: tcpudpfixture.Network, capabilities: []wago.Capability{wagonet.CapInfo, wagonet.CapTCP, wagonet.CapUDP}, imports: map[string]int{wagonet.Module: 1, wagonet.TCPModule: 11, wagonet.UDPModule: 6}}, - {name: "tcp_tls", newNetwork: tcptlsfixture.Network, capabilities: []wago.Capability{wagonet.CapInfo, wagonet.CapTCP, wagonet.CapTLS}, imports: map[string]int{wagonet.Module: 1, wagonet.TCPModule: 11, wagonet.TLSModule: 9}}, {name: "tcp_dns", newNetwork: tcpdnsfixture.Network, capabilities: []wago.Capability{wagonet.CapDNS, wagonet.CapInfo, wagonet.CapTCP}, imports: map[string]int{wagonet.Module: 1, wagonet.TCPModule: 11, wagonet.DNSModule: 6}}, {name: "udp_dns", newNetwork: udpdnsfixture.Network, capabilities: []wago.Capability{wagonet.CapDNS, wagonet.CapInfo, wagonet.CapUDP}, imports: map[string]int{wagonet.Module: 1, wagonet.UDPModule: 6, wagonet.DNSModule: 6}}, {name: "all", newNetwork: allfixture.Network, capabilities: []wago.Capability{wagonet.CapDHCPv4, wagonet.CapDHCPv6, wagonet.CapDNS, wagonet.CapICMPv4, wagonet.CapICMPv6, wagonet.CapInfo, wagonet.CapIPv6, wagonet.CapLinkLocal4, wagonet.CapMDNS, wagonet.CapNTP, wagonet.CapTCP, wagonet.CapUDP}, imports: map[string]int{wagonet.Module: 1, wagonet.TCPModule: 11, wagonet.UDPModule: 6, wagonet.DNSModule: 6, wagonet.ICMPv4Module: 6, wagonet.ICMPv6Module: 14, wagonet.NTPModule: 6, wagonet.MDNSModule: 10, wagonet.DHCPv4Module: 7, wagonet.DHCPv6Module: 7, wagonet.LinkLocal4Module: 7, wagonet.IPv6Module: 3}}, diff --git a/internal/dependencytest/inspection_tls_test.go b/internal/dependencytest/inspection_tls_test.go new file mode 100644 index 0000000..9019558 --- /dev/null +++ b/internal/dependencytest/inspection_tls_test.go @@ -0,0 +1,46 @@ +//go:build !tinygo + +package dependencytest + +import ( + "reflect" + "testing" + + wagonet "github.com/wago-org/net" + tcptlsfixture "github.com/wago-org/net/internal/dependencytest/testdata/tcptls" + tlsfixture "github.com/wago-org/net/internal/dependencytest/testdata/tls" + wago "github.com/wago-org/wago" +) + +func TestTLSFixtureRuntimeInspection(t *testing.T) { + for _, test := range []struct { + name string + newNetwork networkFactory + capabilities []wago.Capability + imports map[string]int + }{ + {name: "tls", newNetwork: tlsfixture.Network, capabilities: []wago.Capability{wagonet.CapInfo, wagonet.CapTLS}, imports: map[string]int{wagonet.Module: 1, wagonet.TLSModule: 9}}, + {name: "tcp_tls", newNetwork: tcptlsfixture.Network, capabilities: []wago.Capability{wagonet.CapInfo, wagonet.CapTCP, wagonet.CapTLS}, imports: map[string]int{wagonet.Module: 1, wagonet.TCPModule: 11, wagonet.TLSModule: 9}}, + } { + t.Run(test.name, func(t *testing.T) { + network, err := test.newNetwork() + if err != nil { + t.Fatalf("compose fixture: %v", err) + } + runtime := wago.NewRuntime() + if err := runtime.Use(network); err != nil { + t.Fatalf("Use: %v", err) + } + if got := runtime.Capabilities(); !reflect.DeepEqual(got, test.capabilities) { + t.Fatalf("Capabilities = %v, want %v", got, test.capabilities) + } + gotImports := make(map[string]int) + for _, spec := range runtime.ProvidedImports() { + gotImports[spec.Module]++ + } + if !reflect.DeepEqual(gotImports, test.imports) { + t.Fatalf("import modules = %v, want %v", gotImports, test.imports) + } + }) + } +} diff --git a/internal/dependencytest/tinygo_surface_test.go b/internal/dependencytest/tinygo_surface_test.go new file mode 100644 index 0000000..11b297c --- /dev/null +++ b/internal/dependencytest/tinygo_surface_test.go @@ -0,0 +1,124 @@ +//go:build !tinygo + +package dependencytest + +import ( + "bufio" + "bytes" + "os" + "os/exec" + "path/filepath" + "sort" + "strings" + "testing" +) + +func TestTinyGoExclusionManifestIsReviewedAndFailClosed(t *testing.T) { + root, err := filepath.Abs(filepath.Join("..", "..")) + if err != nil { + t.Fatal(err) + } + manifestPath := filepath.Join(root, "scripts", "tinygo-excluded-packages.tsv") + manifest, err := os.ReadFile(manifestPath) + if err != nil { + t.Fatal(err) + } + rows := parseTinyGoManifest(t, manifest) + if len(rows) == 0 { + t.Fatal("TinyGo exclusion manifest is empty") + } + packages := make([]string, len(rows)) + for index, row := range rows { + packages[index] = row[0] + if strings.TrimSpace(row[1]) == "" { + t.Fatalf("excluded package %q has no reason", row[0]) + } + } + if !sort.StringsAreSorted(packages) { + t.Fatalf("excluded package manifest is not sorted: %v", packages) + } + for index := 1; index < len(packages); index++ { + if packages[index] == packages[index-1] { + t.Fatalf("duplicate excluded package %q", packages[index]) + } + } + + runTinyGoBoundaryValidation(t, root, manifestPath, true) + + // Removing an actual TLS-closure package simulates unreviewed exclusion + // growth: discovery must reject the now-unlisted package. + withoutPublicTLS := make([][]string, 0, len(rows)-1) + for _, row := range rows { + if row[0] != modulePath+"/tls" { + withoutPublicTLS = append(withoutPublicTLS, row) + } + } + if len(withoutPublicTLS) == len(rows) { + t.Fatal("public TLS exclusion is absent") + } + runTinyGoBoundaryValidation(t, root, writeTinyGoManifest(t, withoutPublicTLS), false) + + // Adding an unrelated supported package must not be accepted as an + // exclusion merely because someone listed it in the manifest. + withUnrelated := append([][]string(nil), rows...) + withUnrelated = append(withUnrelated, []string{modulePath + "/udp", "unrelated exclusion must fail"}) + sort.Slice(withUnrelated, func(i, j int) bool { return withUnrelated[i][0] < withUnrelated[j][0] }) + runTinyGoBoundaryValidation(t, root, writeTinyGoManifest(t, withUnrelated), false) +} + +func parseTinyGoManifest(t testing.TB, data []byte) [][]string { + t.Helper() + var rows [][]string + scanner := bufio.NewScanner(bytes.NewReader(data)) + for scanner.Scan() { + fields := strings.Split(scanner.Text(), "\t") + if len(fields) != 2 || fields[0] == "" || fields[1] == "" { + t.Fatalf("invalid TinyGo exclusion row %q", scanner.Text()) + } + rows = append(rows, fields) + } + if err := scanner.Err(); err != nil { + t.Fatal(err) + } + return rows +} + +func writeTinyGoManifest(t testing.TB, rows [][]string) string { + t.Helper() + path := filepath.Join(t.TempDir(), "excluded.tsv") + var content strings.Builder + for _, row := range rows { + content.WriteString(row[0]) + content.WriteByte('\t') + content.WriteString(row[1]) + content.WriteByte('\n') + } + if err := os.WriteFile(path, []byte(content.String()), 0o600); err != nil { + t.Fatal(err) + } + return path +} + +func runTinyGoBoundaryValidation(t testing.TB, root, manifest string, wantSuccess bool) { + t.Helper() + bin := t.TempDir() + fakeTinyGo := filepath.Join(bin, "tinygo") + if err := os.WriteFile(fakeTinyGo, []byte("#!/bin/sh\necho 'tinygo version test-boundary'\n"), 0o700); err != nil { + t.Fatal(err) + } + command := exec.Command(filepath.Join(root, "scripts", "tinygo-supported-test.sh")) + command.Dir = root + command.Env = append(os.Environ(), + "PATH="+bin+string(os.PathListSeparator)+os.Getenv("PATH"), + "TINYGO_VALIDATE_ONLY=1", + "TINYGO_EXCLUSION_MANIFEST="+manifest, + "TINYGO_LOG_DIR="+filepath.Join(t.TempDir(), "evidence"), + ) + output, err := command.CombinedOutput() + if wantSuccess && err != nil { + t.Fatalf("TinyGo boundary validation failed: %v\n%s", err, output) + } + if !wantSuccess && err == nil { + t.Fatalf("TinyGo boundary validation unexpectedly accepted manifest\n%s", output) + } +} diff --git a/scripts/tinygo-excluded-packages.tsv b/scripts/tinygo-excluded-packages.tsv new file mode 100644 index 0000000..22e0bd7 --- /dev/null +++ b/scripts/tinygo-excluded-packages.tsv @@ -0,0 +1,5 @@ +github.com/wago-org/net/internal/backend/gotls requires standard Go crypto/tls client APIs unavailable in TinyGo +github.com/wago-org/net/internal/backend/lneto/tls depends on the standard-Go-only crypto/tls engine +github.com/wago-org/net/internal/dependencytest/testdata/tcptls composition fixture depends on the standard-Go-only crypto/tls engine +github.com/wago-org/net/internal/dependencytest/testdata/tls composition fixture depends on the standard-Go-only crypto/tls engine +github.com/wago-org/net/tls depends on the standard-Go-only crypto/tls engine diff --git a/scripts/tinygo-supported-test.sh b/scripts/tinygo-supported-test.sh new file mode 100755 index 0000000..b0be1fe --- /dev/null +++ b/scripts/tinygo-supported-test.sh @@ -0,0 +1,214 @@ +#!/usr/bin/env bash +set -uo pipefail + +root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +# shellcheck source=scripts/lib/ci-dependency-env.sh +source "$root/scripts/lib/ci-dependency-env.sh" +ci_select_dependency_workspace "$root" +cd "$root" + +out=$(realpath -m "${TINYGO_LOG_DIR:-$root/.wago/tinygo-supported}") +manifest=$(realpath -m "${TINYGO_EXCLUSION_MANIFEST:-$root/scripts/tinygo-excluded-packages.tsv}") +validate_only=${TINYGO_VALIDATE_ONLY:-0} +module=github.com/wago-org/net +engine=$module/internal/backend/gotls +policy=$root/internal/inspectionpolicy/policy.json + +fail() { + echo "tinygo-supported-test: $*" >&2 + exit 1 +} + +for command in git go tinygo python3 realpath; do + command -v "$command" >/dev/null || fail "missing required command: $command" +done +[[ -f $manifest ]] || fail "missing exclusion manifest: $manifest" +[[ -f $policy ]] || fail "missing inspection policy: $policy" +[[ $out != / && $out != "$root" && $out != "$root/scripts" ]] || fail "unsafe output directory: $out" +case "$validate_only" in 0|1) ;; *) fail "TINYGO_VALIDATE_ONLY must be 0 or 1" ;; esac + +rm -rf "$out" +mkdir -p "$out/logs" +work=$(mktemp -d "${TMPDIR:-/tmp}/wago-net-tinygo-supported.XXXXXX") +trap 'rm -rf "$work"' EXIT + +# go list ./... intentionally skips testdata. Discover every tracked Go package +# directory so the reviewed TLS composition fixtures remain in the matrix. +mapfile -t directories < <( + git ls-files '*.go' | while IFS= read -r file; do dirname "$file"; done | LC_ALL=C sort -u +) +((${#directories[@]} != 0)) || fail 'no tracked Go package directories discovered' +list_args=() +for directory in "${directories[@]}"; do + if [[ $directory == . ]]; then + list_args+=(.) + else + list_args+=("./$directory") + fi +done +if ! go list -json "${list_args[@]}" >"$work/packages.json" 2>"$work/go-list.err"; then + cat "$work/go-list.err" >&2 + fail 'repository package discovery failed' +fi + +if ! python3 - "$work/packages.json" "$manifest" "$policy" "$out" "$module" "$engine" <<'PY' +import json +import os +import sys + +source, manifest_path, policy_path, out, module, engine = sys.argv[1:] + +def fail(message): + raise SystemExit(f"tinygo-supported-test: {message}") + +text = open(source, encoding="utf-8").read() +decoder = json.JSONDecoder() +index = 0 +packages = [] +while index < len(text): + while index < len(text) and text[index].isspace(): + index += 1 + if index == len(text): + break + package, index = decoder.raw_decode(text, index) + packages.append(package) + +by_path = {} +for package in packages: + path = package.get("ImportPath", "") + if not path.startswith(module): + fail(f"discovered package outside repository module: {path!r}") + if path in by_path: + fail(f"duplicate discovered package: {path}") + by_path[path] = package +if not by_path: + fail("repository package discovery is empty") + +rows = [] +with open(manifest_path, encoding="utf-8") as stream: + for line_number, raw in enumerate(stream, 1): + line = raw.rstrip("\n") + if not line: + fail(f"blank exclusion row at line {line_number}") + fields = line.split("\t") + if len(fields) != 2 or not fields[0] or not fields[1]: + fail(f"exclusion row {line_number} must contain exactly package and reason") + if "\r" in line or "\n" in fields[1]: + fail(f"invalid exclusion row {line_number}") + rows.append((fields[0], fields[1])) +if not rows: + fail("exclusion manifest is empty") +if rows != sorted(rows): + fail("exclusion manifest is not sorted") +paths = [path for path, _ in rows] +if len(paths) != len(set(paths)): + fail("exclusion manifest contains duplicate packages") +for path, reason in rows: + if path not in by_path: + fail(f"expected excluded package disappeared: {path}") + if not reason.strip(): + fail(f"excluded package has no reason: {path}") + +# The only exclusion root is the real standard-Go crypto/tls engine. Any +# repository package depending on it belongs to the exact derived closure. +derived = sorted( + path for path, package in by_path.items() + if path == engine or engine in package.get("Deps", []) +) +if paths != derived: + missing = sorted(set(derived) - set(paths)) + extra = sorted(set(paths) - set(derived)) + fail(f"reviewed exclusion set differs from derived TLS closure: unlisted={missing} stale={extra}") + +supported = sorted(set(by_path) - set(paths)) +if not supported: + fail("supported TinyGo package set is empty") +if module + "/tls" not in paths: + fail("public TLS package must be explicitly standard-Go-only") +if module + "/register" not in supported: + fail("aggregate register package is absent from TinyGo-supported surface") +if module + "/tls/register" in by_path or os.path.isdir(os.path.join(os.path.dirname(os.path.dirname(manifest_path)), "tls", "register")): + fail("tls/register must not exist") + +with open(policy_path, encoding="utf-8") as stream: + policy = json.load(stream) +bundles = policy.get("bundles", []) +if len(bundles) != 12: + fail(f"canonical custom-CLI bundle count is {len(bundles)}, want 12") +keys = [bundle.get("key", "") for bundle in bundles] +if "net-tls" in keys: + fail("net-tls custom-CLI key must not exist") +if keys != sorted(keys) or len(keys) != len(set(keys)): + fail("inspection bundle keys must be sorted and unique") +for bundle in bundles: + package_path = bundle.get("package", "") + package = by_path.get(package_path) + if package is None: + fail(f"canonical bundle package was not discovered: {package_path}") + if package_path in paths or engine in package.get("Deps", []): + fail(f"canonical TinyGo custom-CLI bundle depends on TLS: {package_path}") + +with open(os.path.join(out, "supported-packages.tsv"), "w", encoding="utf-8") as stream: + for path in supported: + stream.write(path + "\n") +with open(os.path.join(out, "excluded-packages.tsv"), "w", encoding="utf-8") as stream: + for path, reason in rows: + stream.write(f"{path}\t{reason}\n") +with open(os.path.join(out, "counts.env"), "w", encoding="utf-8") as stream: + stream.write(f"repository_packages={len(by_path)}\n") + stream.write(f"supported_packages={len(supported)}\n") + stream.write(f"excluded_packages={len(paths)}\n") +PY +then + exit 1 +fi + +repository_packages=$(sed -n 's/^repository_packages=//p' "$out/counts.env") +supported_packages=$(sed -n 's/^supported_packages=//p' "$out/counts.env") +excluded_packages=$(sed -n 's/^excluded_packages=//p' "$out/counts.env") +tinygo_version=$(tinygo version | tr '\n' ' ' | sed 's/[[:space:]]*$//') +mode=test +[[ $validate_only == 0 ]] || mode=validate-only +cat >"$out/detail.txt" < tinygo-supported-test [%d/%d] %s\n' "$attempted" "$supported_packages" "$package" + if tinygo test "$package" >"$log" 2>&1; then + printf 'tinygo-supported-test: PASS %s\n' "$package" + else + cat "$log" >&2 + printf 'tinygo-supported-test: FAIL %s\n' "$package" >&2 + failures=$((failures + 1)) + fi +done <"$out/supported-packages.tsv" + +[[ $attempted == "$supported_packages" ]] || fail "attempted $attempted packages, expected $supported_packages" +if ((failures != 0)); then + fail "$failures of $attempted supported packages failed" +fi +printf '\ntinygo-supported-test: all %d supported packages passed; %d standard-Go-only packages retained explicitly\n' \ + "$attempted" "$excluded_packages" diff --git a/selective_composition_test.go b/selective_composition_test.go index beb98cc..bb355b2 100644 --- a/selective_composition_test.go +++ b/selective_composition_test.go @@ -2,7 +2,6 @@ package net_test import ( "context" - cryptotls "crypto/tls" "net/netip" "reflect" "slices" @@ -20,7 +19,6 @@ import ( "github.com/wago-org/net/mdns" "github.com/wago-org/net/ntp" "github.com/wago-org/net/tcp" - wagonettls "github.com/wago-org/net/tls" "github.com/wago-org/net/udp" wago "github.com/wago-org/wago" "github.com/wago-org/wago/src/core/compiler/wasm" @@ -49,13 +47,6 @@ var publicProtocols = []protocolSelection{ }}, {name: "icmpv6", module: wagonet.ICMPv6Module, capability: wagonet.CapICMPv6, imports: 14, register: func(network *wagonet.Network) error { return icmpv6.Register(network) }}, {name: "dhcpv6", module: wagonet.DHCPv6Module, capability: wagonet.CapDHCPv6, imports: 7, register: func(network *wagonet.Network) error { return dhcpv6.Register(network) }}, - {name: "tls", module: wagonet.TLSModule, capability: wagonet.CapTLS, imports: 9, register: func(network *wagonet.Network) error { - profile, err := wagonettls.NewClientProfile(1, &cryptotls.Config{}, wagonettls.AllowServerNames("api.example.com")) - if err != nil { - return err - } - return wagonettls.Register(network, wagonettls.WithClientProfile(profile)) - }}, } func TestPublicSelectiveCompositionMatrix(t *testing.T) { From a8ea934d85de296ec2cbfec5bf3b3bd4e7ad1aec Mon Sep 17 00:00:00 2001 From: Wago Networking Agent Date: Mon, 20 Jul 2026 05:19:56 +0000 Subject: [PATCH 2/7] release: add explicit standard-Go TLS signoff --- .github/workflows/ci.yml | 43 +++++++ internal/releaseprovenance/verify_test.go | 28 ++++ scripts/release-signoff.sh | 14 +- scripts/tls-signoff-packages.tsv | 17 +++ scripts/tls-signoff.sh | 150 ++++++++++++++++++++++ 5 files changed, 249 insertions(+), 3 deletions(-) create mode 100644 scripts/tls-signoff-packages.tsv create mode 100755 scripts/tls-signoff.sh diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9b77db7..6bc6e0d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -39,6 +39,49 @@ jobs: - name: Enforce source boundaries run: scripts/check-source-boundaries.sh + tls-standard-go: + name: Standard-Go TLS signoff + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: "1.24.4" + cache: true + - name: Prepare exact dependency worktrees + run: scripts/ci-prepare-dependencies.sh + - name: Run explicit TLS signoff + run: TLS_SIGNOFF_DIR="$RUNNER_TEMP/tls-signoff" scripts/tls-signoff.sh + - name: Retain TLS evidence + if: failure() || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' + uses: actions/upload-artifact@v4 + with: + name: tls-standard-go + path: ${{ runner.temp }}/tls-signoff + + tinygo-supported: + name: TinyGo supported package surface + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: "1.24.4" + cache: true + - uses: acifani/setup-tinygo@v2 + with: + tinygo-version: "0.41.1" + - name: Prepare exact dependency worktrees + run: scripts/ci-prepare-dependencies.sh + - name: Test exact supported package surface + run: TINYGO_LOG_DIR="$RUNNER_TEMP/tinygo-supported" scripts/tinygo-supported-test.sh + - name: Retain TinyGo package manifests and logs + if: failure() || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' + uses: actions/upload-artifact@v4 + with: + name: tinygo-supported + path: ${{ runner.temp }}/tinygo-supported + race: name: Race detector runs-on: ubuntu-latest diff --git a/internal/releaseprovenance/verify_test.go b/internal/releaseprovenance/verify_test.go index 04c8d1c..f04a851 100644 --- a/internal/releaseprovenance/verify_test.go +++ b/internal/releaseprovenance/verify_test.go @@ -1334,6 +1334,34 @@ func TestReleaseSignoffBenchmarkCheckMatchesProvenancePolicy(t *testing.T) { } } +func TestTLSPlatformSignoffScriptsAreWiredToReleaseAndCI(t *testing.T) { + files := []struct { + path string + required []string + }{ + {path: "../../scripts/release-signoff.sh", required: []string{ + "TLS_SIGNOFF_DIR=\"$out/tls\"", "scripts/tls-signoff.sh", "record_check tls-standard-go pass", + "TINYGO_LOG_DIR=\"$out/tinygo\"", "scripts/tinygo-supported-test.sh", "record_check tinygo-test pass", + }}, + {path: "../../.github/workflows/ci.yml", required: []string{ + "name: Standard-Go TLS signoff", "scripts/tls-signoff.sh", "name: TinyGo supported package surface", + "tinygo-version: \"0.41.1\"", "scripts/tinygo-supported-test.sh", + }}, + } + for _, file := range files { + data, err := os.ReadFile(file.path) + if err != nil { + t.Fatal(err) + } + contents := string(data) + for _, required := range file.required { + if !strings.Contains(contents, required) { + t.Fatalf("%s does not retain %q", file.path, required) + } + } + } +} + func validReviewFixture(t *testing.T) (string, VerifyOptions) { t.Helper() dir := t.TempDir() diff --git a/scripts/release-signoff.sh b/scripts/release-signoff.sh index 11bdc93..fcb5d6f 100755 --- a/scripts/release-signoff.sh +++ b/scripts/release-signoff.sh @@ -185,6 +185,12 @@ cmp "$release_sum.after-tidy" "$release_sum" git diff --exit-code -- go.mod go.sum record_check go-mod-tidy pass 'generated release module is idempotent; repository module files unchanged' +log "explicit standard-Go TLS signoff" +GOWORK="$release_work" TLS_SIGNOFF_DIR="$out/tls" \ + "$root/scripts/tls-signoff.sh" | tee "$out/tls-signoff.txt" +tls_detail=$(tr '\n' ' ' <"$out/tls/detail.txt" | sed 's/[[:space:]]*$//') +record_check tls-standard-go pass "$tls_detail" + log "bounded discovered fuzz smoke ($fuzztime each)" GOWORK="$release_work" FUZZTIME="$fuzztime" FUZZ_LOG_DIR="$out/fuzz" \ "$root/scripts/fuzz-smoke.sh" | tee "$out/fuzz-smoke.txt" @@ -196,9 +202,11 @@ GOWORK="$release_work" BENCH_LOG_DIR="$out/benchmark" \ benchmark_detail=$(cat "$out/benchmark/detail.txt") record_check benchmark-runtime pass "$benchmark_detail" -log "TinyGo and cross-compile" -GOWORK=off GOFLAGS="$release_goflags" tinygo test ./... -record_check tinygo-test pass +log "TinyGo supported surface and cross-compile" +GOWORK=off GOFLAGS="$release_goflags" TINYGO_LOG_DIR="$out/tinygo" \ + "$root/scripts/tinygo-supported-test.sh" | tee "$out/tinygo-supported-test.txt" +tinygo_detail=$(tr '\n' ' ' <"$out/tinygo/detail.txt" | sed 's/[[:space:]]*$//') +record_check tinygo-test pass "$tinygo_detail" cross_goos=${CROSS_GOOS:-linux} cross_goarch=${CROSS_GOARCH:-arm64} GOOS=$cross_goos GOARCH=$cross_goarch CGO_ENABLED=0 GOWORK=off GOFLAGS="$release_goflags" go build ./... diff --git a/scripts/tls-signoff-packages.tsv b/scripts/tls-signoff-packages.tsv new file mode 100644 index 0000000..9fb1937 --- /dev/null +++ b/scripts/tls-signoff-packages.tsv @@ -0,0 +1,17 @@ +ordinary github.com/wago-org/net/internal/abi/tls ^Test fixed checked TLS ABI +ordinary github.com/wago-org/net/internal/backend/gotls ^Test standard-library TLS security and lifecycle engine +ordinary github.com/wago-org/net/internal/backend/lneto/core ^TestTCPPort shared TCP local-port lease ownership +ordinary github.com/wago-org/net/internal/backend/lneto/tcp ^(TestTCPConnectLoopbackRequiresTCPScopedAuthority|TestQuotaDeniedConnectDoesNotAllocateOrRetainOutboundStorage|TestOutboundStreamCountTracksReuseAndCoreClose)$ private transport policy and quota behavior +ordinary github.com/wago-org/net/internal/backend/lneto/tls ^Test mixed raw TCP and private TLS transport +ordinary github.com/wago-org/net/internal/binding/tls ^Test checked guest binding surface +ordinary github.com/wago-org/net/internal/dependencytest ^(TestFixtureDependencyBoundaries|TestSelfRegisterPackageDependencyBoundaries|TestTLSFixtureRuntimeInspection)$ composition and dependency isolation +ordinary github.com/wago-org/net/internal/instance/tls ^Test kind-safe instance resource ownership +ordinary github.com/wago-org/net/internal/namespace/tls ^Test backend-neutral TLS contract +ordinary github.com/wago-org/net/tls ^Test explicit public profile and registration composition +race github.com/wago-org/net/internal/backend/gotls ^Test worker bridge security and lifecycle races +race github.com/wago-org/net/internal/backend/lneto/core ^TestTCPPort shared TCP lease concurrency and teardown +race github.com/wago-org/net/internal/backend/lneto/tcp ^(TestTCPConnectLoopbackRequiresTCPScopedAuthority|TestQuotaDeniedConnectDoesNotAllocateOrRetainOutboundStorage|TestOutboundStreamCountTracksReuseAndCoreClose)$ private transport concurrency and quota release +race github.com/wago-org/net/internal/backend/lneto/tls ^Test mixed raw TCP and TLS transport races +race github.com/wago-org/net/internal/binding/tls ^Test checked binding concurrency +race github.com/wago-org/net/internal/instance/tls ^Test instance handle and teardown concurrency +race github.com/wago-org/net/tls ^Test public TLS composition concurrency diff --git a/scripts/tls-signoff.sh b/scripts/tls-signoff.sh new file mode 100755 index 0000000..9e90d5a --- /dev/null +++ b/scripts/tls-signoff.sh @@ -0,0 +1,150 @@ +#!/usr/bin/env bash +set -uo pipefail + +root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) +# shellcheck source=scripts/lib/ci-dependency-env.sh +source "$root/scripts/lib/ci-dependency-env.sh" +ci_select_dependency_workspace "$root" +cd "$root" + +out=$(realpath -m "${TLS_SIGNOFF_DIR:-$root/.wago/tls-signoff}") +manifest=$(realpath -m "${TLS_SIGNOFF_PACKAGE_MANIFEST:-$root/scripts/tls-signoff-packages.tsv}") +module=github.com/wago-org/net + +fail() { + echo "tls-signoff: $*" >&2 + exit 1 +} + +for command in go python3 realpath; do + command -v "$command" >/dev/null || fail "missing required command: $command" +done +[[ -f $manifest ]] || fail "missing package manifest: $manifest" +[[ $out != / && $out != "$root" && $out != "$root/scripts" ]] || fail "unsafe output directory: $out" +[[ ! -d $root/tls/register ]] || fail 'tls/register must not exist' + +rm -rf "$out" +mkdir -p "$out/logs" +cp "$manifest" "$out/packages.tsv" + +if ! python3 - "$out/packages.tsv" <<'PY' +import sys + +path = sys.argv[1] +rows = [] +with open(path, encoding="utf-8") as stream: + for line_number, raw in enumerate(stream, 1): + line = raw.rstrip("\n") + fields = line.split("\t") + if len(fields) != 4 or any(not field for field in fields): + raise SystemExit(f"tls-signoff: invalid package manifest row {line_number}") + mode, package, pattern, reason = fields + if mode not in ("ordinary", "race"): + raise SystemExit(f"tls-signoff: invalid mode at row {line_number}: {mode}") + if not package.startswith("github.com/wago-org/net/"): + raise SystemExit(f"tls-signoff: package outside repository at row {line_number}: {package}") + rows.append(tuple(fields)) +if not rows: + raise SystemExit("tls-signoff: package manifest is empty") +if rows != sorted(rows): + raise SystemExit("tls-signoff: package manifest is not sorted") +keys = [(mode, package) for mode, package, _, _ in rows] +if len(keys) != len(set(keys)): + raise SystemExit("tls-signoff: duplicate mode/package rows") +if not any(mode == "ordinary" and package == "github.com/wago-org/net/tls" for mode, package, _, _ in rows): + raise SystemExit("tls-signoff: public TLS package lacks ordinary standard-Go coverage") +if not any(mode == "race" for mode, _, _, _ in rows): + raise SystemExit("tls-signoff: race package set is empty") +PY +then + exit 1 +fi + +# Aggregate registration and every self-registering bundle must stay outside the +# TLS implementation. This is checked independently from the Go unit tests. +if go list -deps ./register | grep -Eq "^$module/(tls|internal/(abi|backend|binding|instance|namespace)/tls)$|^$module/internal/backend/gotls$"; then + fail 'aggregate register depends on TLS' +fi +while IFS=$'\t' read -r key package; do + [[ $key != net-tls ]] || fail 'net-tls custom-CLI key must not exist' + if go list -deps "$package" | grep -Eq "^$module/(tls|internal/(abi|backend|binding|instance|namespace)/tls)$|^$module/internal/backend/gotls$"; then + fail "canonical custom-CLI bundle $key depends on TLS" + fi +done < <(python3 - "$root/internal/inspectionpolicy/policy.json" <<'PY' +import json, sys +with open(sys.argv[1], encoding="utf-8") as stream: + policy = json.load(stream) +for bundle in policy.get("bundles", []): + print(f"{bundle['key']}\t{bundle['package']}") +PY +) + +: >"$out/tests.tsv" +rows=0 +ordinary_packages=0 +race_packages=0 +while IFS=$'\t' read -r mode package pattern reason; do + [[ -n $mode ]] || continue + rows=$((rows + 1)) + if [[ $mode == ordinary ]]; then + ordinary_packages=$((ordinary_packages + 1)) + else + race_packages=$((race_packages + 1)) + fi + list_log="$out/logs/$mode/${package#"$module/"}/list.log" + mkdir -p "$(dirname "$list_log")" + if ! go test "$package" -run '^$' -list "$pattern" >"$list_log" 2>&1; then + cat "$list_log" >&2 + fail "test discovery failed for $mode $package" + fi + matched=0 + while IFS= read -r test_name; do + [[ $test_name =~ ^Test[A-Za-z0-9_]+$ ]] || continue + printf '%s\t%s\t%s\n' "$mode" "$package" "$test_name" >>"$out/tests.tsv" + matched=$((matched + 1)) + done <"$list_log" + ((matched != 0)) || fail "test pattern matched no tests for $mode $package: $pattern" +done <"$out/packages.tsv" + +LC_ALL=C sort -u -o "$out/tests.tsv" "$out/tests.tsv" +test_targets=$(wc -l <"$out/tests.tsv") +((test_targets != 0)) || fail 'resolved TLS test manifest is empty' + +failures=0 +attempted=0 +while IFS=$'\t' read -r mode package pattern reason; do + [[ -n $mode ]] || continue + attempted=$((attempted + 1)) + relative=${package#"$module/"} + log="$out/logs/$mode/$relative/test.log" + mkdir -p "$(dirname "$log")" + command=(go test "$package" -count=1 -run "$pattern" -v) + if [[ $mode == race ]]; then + command=(go test -race "$package" -count=1 -run "$pattern" -v) + fi + printf '\n==> tls-signoff [%d/%d] %s %s %s\n' "$attempted" "$rows" "$mode" "$package" "$pattern" + if "${command[@]}" >"$log" 2>&1; then + printf 'tls-signoff: PASS %s %s\n' "$mode" "$package" + else + cat "$log" >&2 + printf 'tls-signoff: FAIL %s %s\n' "$mode" "$package" >&2 + failures=$((failures + 1)) + fi +done <"$out/packages.tsv" + +cat >"$out/detail.txt" < Date: Mon, 20 Jul 2026 05:21:54 +0000 Subject: [PATCH 3/7] release: retain TLS-aware arm64 evidence --- internal/releaseprovenance/verify_test.go | 40 ++++++ scripts/arm64-execution-signoff.sh | 167 ++++++++++++++++------ scripts/arm64-test-binaries.tsv | 4 + 3 files changed, 165 insertions(+), 46 deletions(-) create mode 100644 scripts/arm64-test-binaries.tsv diff --git a/internal/releaseprovenance/verify_test.go b/internal/releaseprovenance/verify_test.go index f04a851..3677480 100644 --- a/internal/releaseprovenance/verify_test.go +++ b/internal/releaseprovenance/verify_test.go @@ -12,6 +12,7 @@ import ( "os" "path/filepath" "reflect" + "sort" "strings" "testing" ) @@ -1362,6 +1363,45 @@ func TestTLSPlatformSignoffScriptsAreWiredToReleaseAndCI(t *testing.T) { } } +func TestArm64TLSExecutionManifestAndStatusesRemainExplicit(t *testing.T) { + manifestData, err := os.ReadFile("../../scripts/arm64-test-binaries.tsv") + if err != nil { + t.Fatal(err) + } + rows := strings.Split(strings.TrimSpace(string(manifestData)), "\n") + if len(rows) != 4 { + t.Fatalf("arm64 binary rows = %d, want 4", len(rows)) + } + if !sort.StringsAreSorted(rows) { + t.Fatal("arm64 binary manifest is not sorted") + } + manifest := string(manifestData) + for _, required := range []string{ + "github.com/wago-org/net/internal/backend/gotls", + "github.com/wago-org/net/internal/backend/lneto/tls", + "github.com/wago-org/net/tls", + } { + if !strings.Contains(manifest, required) { + t.Fatalf("arm64 manifest does not retain %q", required) + } + } + + scriptData, err := os.ReadFile("../../scripts/arm64-execution-signoff.sh") + if err != nil { + t.Fatal(err) + } + script := string(scriptData) + for _, required := range []string{ + "GOOS=linux GOARCH=arm64 CGO_ENABLED=0", "timeout \"$limit\"", "ARM64_EXECUTION must be auto, required, or skip", + "status=executed-%s", "status=skipped-no-runner", "status=skipped-disabled", + "if [[ $mode == required ]]", "run_failures=$((run_failures + 1))", + } { + if !strings.Contains(script, required) { + t.Fatalf("arm64 execution script does not enforce %q", required) + } + } +} + func validReviewFixture(t *testing.T) (string, VerifyOptions) { t.Helper() dir := t.TempDir() diff --git a/scripts/arm64-execution-signoff.sh b/scripts/arm64-execution-signoff.sh index 9f23342..2f83155 100755 --- a/scripts/arm64-execution-signoff.sh +++ b/scripts/arm64-execution-signoff.sh @@ -1,86 +1,161 @@ #!/usr/bin/env bash -set -euo pipefail +set -uo pipefail root=$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd) out=${ARM64_SIGNOFF_DIR:-$root/.wago/arm64-execution} +manifest=${ARM64_TEST_MANIFEST:-$root/scripts/arm64-test-binaries.tsv} mode=${ARM64_EXECUTION:-auto} limit=${ARM64_TIMEOUT:-2m} -keep_binary=${KEEP_ARM64_BINARY:-0} +keep_binaries=${KEEP_ARM64_BINARY:-0} fail() { echo "arm64-execution-signoff: $*" >&2; exit 1; } -for command in go sha256sum timeout; do +for command in go sha256sum timeout python3; do command -v "$command" >/dev/null || fail "missing required command: $command" done case "$mode" in auto|required|skip) ;; *) fail "ARM64_EXECUTION must be auto, required, or skip (got $mode)" ;; esac +[[ -f $manifest ]] || fail "missing binary manifest: $manifest" +[[ $keep_binaries == 0 || $keep_binaries == 1 ]] || fail "KEEP_ARM64_BINARY must be 0 or 1" rm -rf "$out" -mkdir -p "$out" -binary="$out/net-linux-arm64.test" +mkdir -p "$out/logs" "$out/binaries" +cp "$manifest" "$out/manifest.tsv" +if ! python3 - "$out/manifest.tsv" <<'PY' +import os +import sys + +rows = [] +with open(sys.argv[1], encoding="utf-8") as stream: + for line_number, raw in enumerate(stream, 1): + fields = raw.rstrip("\n").split("\t") + if len(fields) != 4 or any(not field for field in fields): + raise SystemExit(f"arm64-execution-signoff: invalid manifest row {line_number}") + name, package, pattern, binary = fields + if not package.startswith("github.com/wago-org/net"): + raise SystemExit(f"arm64-execution-signoff: package outside repository at row {line_number}") + if "/" in name or os.path.basename(binary) != binary or not binary.endswith("-linux-arm64.test"): + raise SystemExit(f"arm64-execution-signoff: invalid artifact name at row {line_number}") + rows.append(tuple(fields)) +if not rows: + raise SystemExit("arm64-execution-signoff: binary manifest is empty") +if rows != sorted(rows): + raise SystemExit("arm64-execution-signoff: binary manifest is not sorted") +if len({row[0] for row in rows}) != len(rows) or len({row[3] for row in rows}) != len(rows): + raise SystemExit("arm64-execution-signoff: duplicate manifest identity or binary") +if not any(row[1] == "github.com/wago-org/net/internal/backend/gotls" for row in rows): + raise SystemExit("arm64-execution-signoff: Go TLS engine smoke is missing") +if not any(row[1] == "github.com/wago-org/net/internal/backend/lneto/tls" for row in rows): + raise SystemExit("arm64-execution-signoff: mixed TLS transport smoke is missing") +if not any(row[1] == "github.com/wago-org/net/tls" for row in rows): + raise SystemExit("arm64-execution-signoff: public TLS smoke is missing") +PY +then + exit 1 +fi + +: >"$out/commands.tsv" +: >"$out/binaries.sha256" +compile_failures=0 +compiled=0 +while IFS=$'\t' read -r name package pattern binary_name; do + [[ -n $name ]] || continue + binary="$out/binaries/$binary_name" + compile_log="$out/logs/$name.compile.txt" + printf '%s\tcompile\tGOOS=linux GOARCH=arm64 CGO_ENABLED=0 GOWORK=off go test -c -o binaries/%s %s\n' \ + "$name" "$binary_name" "$package" >>"$out/commands.tsv" + if ( + cd "$root" + GOOS=linux GOARCH=arm64 CGO_ENABLED=0 GOWORK=off go test -c -o "$binary" "$package" + ) >"$compile_log" 2>&1; then + compiled=$((compiled + 1)) + sha256sum "$binary" | sed "s# $binary# binaries/$binary_name#" >>"$out/binaries.sha256" + printf 'arm64-execution-signoff: cross-build PASS %s\n' "$name" + else + cat "$compile_log" >&2 + printf 'arm64-execution-signoff: cross-build FAIL %s\n' "$name" >&2 + compile_failures=$((compile_failures + 1)) + fi +done <"$out/manifest.tsv" + +binary_count=$(wc -l <"$out/manifest.tsv") +cat >"$out/detail.txt" <"$runner_file" - echo 'arm64-execution-signoff: SKIP (disabled explicitly)' + [[ $keep_binaries == 1 ]] || rm -rf "$out/binaries" + echo 'arm64-execution-signoff: SKIP execution (all smoke binaries cross-compiled; execution disabled explicitly)' exit 0 fi -# This is intentionally distinct from the release gate's GOOS/GOARCH package -# cross-build: it creates an executable test artifact for a bounded smoke run. -( - cd "$root" - GOOS=linux GOARCH=arm64 CGO_ENABLED=0 GOWORK=off go test -c -o "$binary" . -) -sha256sum "$binary" | sed "s# $binary# net-linux-arm64.test#" >"$out/binary.sha256" - -runner_kind= +runner_status= +runner_detail= runner=() if [[ -n ${ARM64_RUNNER:-} ]]; then command -v "$ARM64_RUNNER" >/dev/null || fail "ARM64_RUNNER is not executable: $ARM64_RUNNER" - runner_kind=custom + runner_status=custom + runner_detail=$ARM64_RUNNER runner=("$ARM64_RUNNER") elif [[ $(go env GOOS) == linux && $(go env GOARCH) == arm64 ]]; then - runner_kind=native + runner_status=native + runner_detail=native elif command -v qemu-aarch64 >/dev/null; then - runner_kind=qemu - runner=("$(command -v qemu-aarch64)") + runner_status=qemu + runner_detail=$(command -v qemu-aarch64) + runner=("$runner_detail") elif command -v qemu-aarch64-static >/dev/null; then - runner_kind=qemu-static - runner=("$(command -v qemu-aarch64-static)") + runner_status=qemu + runner_detail=$(command -v qemu-aarch64-static) + runner=("$runner_detail") fi -if [[ -z "$runner_kind" ]]; then +if [[ -z $runner_status ]]; then printf 'status=skipped-no-runner\n' | tee "$status_file" printf 'runner=none\n' >"$runner_file" - [[ "$keep_binary" == 1 ]] || rm -f "$binary" - if [[ "$mode" == required ]]; then - fail 'no native linux/arm64 or qemu-aarch64 runner is available' + [[ $keep_binaries == 1 ]] || rm -rf "$out/binaries" + if [[ $mode == required ]]; then + fail 'no native linux/arm64, qemu-aarch64, or explicit runner is available' fi - echo 'arm64-execution-signoff: SKIP (cross-compiled smoke binary; no execution runner)' + echo 'arm64-execution-signoff: SKIP execution (all smoke binaries cross-compiled; no execution runner)' exit 0 fi -printf 'runner=%s\n' "$runner_kind" >"$runner_file" -printf 'command=%q' timeout >>"$runner_file" -printf ' %q' "$limit" "${runner[@]}" "$binary" >>"$runner_file" -printf ' %q\n' '-test.run=^(TestExtensionMetadataAndABIBinding|TestGuestUDPEmptyTruncationAndFailedMemoryWrites|TestRegisteredGuestTCPTwoNamespaceExchange|TestRegisteredGuestDNSActualBackendSmoke)$' >>"$runner_file" +printf 'runner=%s\nrunner_command=%s\n' "$runner_status" "$runner_detail" >"$runner_file" +run_failures=0 +executed=0 +while IFS=$'\t' read -r name package pattern binary_name; do + [[ -n $name ]] || continue + binary="$out/binaries/$binary_name" + log="$out/logs/$name.test.txt" + printf '%s\texecute\ttimeout %s %s binaries/%s -test.run=%s -test.count=1 -test.v\n' \ + "$name" "$limit" "$runner_detail" "$binary_name" "$pattern" >>"$out/commands.tsv" + if timeout "$limit" "${runner[@]}" "$binary" -test.run="$pattern" -test.count=1 -test.v >"$log" 2>&1; then + executed=$((executed + 1)) + printf 'arm64-execution-signoff: execution PASS %s through %s\n' "$name" "$runner_status" + else + run_status=$? + cat "$log" >&2 + printf 'arm64-execution-signoff: execution FAIL %s through %s status=%d\n' "$name" "$runner_status" "$run_status" >&2 + run_failures=$((run_failures + 1)) + fi +done <"$out/manifest.tsv" -set +e -timeout "$limit" "${runner[@]}" "$binary" \ - -test.run='^(TestExtensionMetadataAndABIBinding|TestGuestUDPEmptyTruncationAndFailedMemoryWrites|TestRegisteredGuestTCPTwoNamespaceExchange|TestRegisteredGuestDNSActualBackendSmoke)$' \ - -test.count=1 -test.v >"$log_file" 2>&1 -run_status=$? -set -e -if ((run_status != 0)); then - cat "$log_file" >&2 - fail "linux/arm64 smoke failed through $runner_kind with status $run_status" +printf 'executed=%d\nexecution_failures=%d\n' "$executed" "$run_failures" >>"$out/detail.txt" +if ((run_failures != 0)); then + fail "$run_failures of $binary_count linux/arm64 smoke binaries failed through $runner_status" fi - -printf 'status=executed-%s\n' "$runner_kind" | tee "$status_file" -[[ "$keep_binary" == 1 ]] || rm -f "$binary" -echo "arm64-execution-signoff: PASS ($runner_kind)" +printf 'status=executed-%s\n' "$runner_status" | tee "$status_file" +[[ $keep_binaries == 1 ]] || rm -rf "$out/binaries" +echo "arm64-execution-signoff: PASS ($runner_status; $executed binaries)" diff --git a/scripts/arm64-test-binaries.tsv b/scripts/arm64-test-binaries.tsv new file mode 100644 index 0000000..2d50df4 --- /dev/null +++ b/scripts/arm64-test-binaries.tsv @@ -0,0 +1,4 @@ +gotls github.com/wago-org/net/internal/backend/gotls ^(TestClientHandshakeVerificationALPNAndPlaintext|TestCloseNotifyProducesStableEOFWithoutRepeatedServiceWork|TestRawEOFWithoutCloseNotifyIsTLSProtocolFailure)$ gotls-linux-arm64.test +lneto-tls github.com/wago-org/net/internal/backend/lneto/tls ^(TestRawTCPThenTLSAndTLSThenRawShareLivePortDomain|TestMixedTCPListenerPreventsTLSOutboundPortCollision|TestMixedTCPAndTLSSharedPortExhaustionIsBounded|TestTLSUsesPrivateTCPWithoutRawTCPAuthorityAndRollsBack)$ lneto-tls-linux-arm64.test +root github.com/wago-org/net ^(TestExtensionMetadataAndABIBinding|TestGuestUDPEmptyTruncationAndFailedMemoryWrites|TestRegisteredGuestTCPTwoNamespaceExchange|TestRegisteredGuestDNSActualBackendSmoke)$ net-linux-arm64.test +tls-public github.com/wago-org/net/tls ^(TestRegisterExposesOnlyTLSAndSharedCore|TestTCPAndTLSComposeWithoutCapabilityWidening|TestPublicTLSRegistrationLoopbackOptionControlsOnlyTLSConnect)$ tls-public-linux-arm64.test From 97b2bfca08df8d3e154bf7b4bb2cc932ec359ca8 Mon Sep 17 00:00:00 2001 From: Wago Networking Agent Date: Mon, 20 Jul 2026 05:28:52 +0000 Subject: [PATCH 4/7] release: bind TLS platform evidence into provenance --- internal/releaseprovenance/platform.go | 336 ++++++++++++++++++++ internal/releaseprovenance/platform_test.go | 160 ++++++++++ internal/releaseprovenance/provenance.go | 68 +++- internal/releaseprovenance/verify.go | 144 ++++++++- scripts/release-signoff.sh | 2 +- 5 files changed, 686 insertions(+), 24 deletions(-) create mode 100644 internal/releaseprovenance/platform.go create mode 100644 internal/releaseprovenance/platform_test.go diff --git a/internal/releaseprovenance/platform.go b/internal/releaseprovenance/platform.go new file mode 100644 index 0000000..4de7a07 --- /dev/null +++ b/internal/releaseprovenance/platform.go @@ -0,0 +1,336 @@ +package releaseprovenance + +import ( + "bufio" + "bytes" + "fmt" + "io/fs" + "os" + "path/filepath" + "strings" +) + +const ( + platformRepositoryPackages = 128 + platformSupportedPackages = 123 + platformExcludedPackages = 5 + platformTLSTestTargets = 109 +) + +var platformExcludedPackageNames = []string{ + "github.com/wago-org/net/internal/backend/gotls", + "github.com/wago-org/net/internal/backend/lneto/tls", + "github.com/wago-org/net/internal/dependencytest/testdata/tcptls", + "github.com/wago-org/net/internal/dependencytest/testdata/tls", + "github.com/wago-org/net/tls", +} + +func validateTLSPlatformArtifacts(root string, checks []Check) error { + if checkStatus(checks, "tls-standard-go") != "pass" { + return fmt.Errorf("release provenance: schema-v3 evidence requires tls-standard-go") + } + if err := validateTLSArtifacts(root, checks); err != nil { + return err + } + return validateTinyGoArtifacts(root, checks) +} + +func validateTLSArtifacts(root string, checks []Check) error { + detailData, err := os.ReadFile(filepath.Join(root, "tls", "detail.txt")) + if err != nil { + return err + } + detail := flattenCanonicalDetail(detailData) + if detail == "" || detail != checkDetail(checks, "tls-standard-go") { + return fmt.Errorf("release provenance: TLS detail does not match tls-standard-go check") + } + if err := validateTLSCheckDetails(detail, checkDetail(checks, "tinygo-test")); err != nil { + return err + } + + packageData, err := os.ReadFile(filepath.Join(root, "tls", "packages.tsv")) + if err != nil { + return err + } + packageRows, err := canonicalTSVRows(packageData, 4, "TLS package manifest") + if err != nil { + return err + } + if len(packageRows) != 17 { + return fmt.Errorf("release provenance: TLS package run count %d, want 17", len(packageRows)) + } + wantOrdinary := []string{ + "github.com/wago-org/net/internal/abi/tls", + "github.com/wago-org/net/internal/backend/gotls", + "github.com/wago-org/net/internal/backend/lneto/core", + "github.com/wago-org/net/internal/backend/lneto/tcp", + "github.com/wago-org/net/internal/backend/lneto/tls", + "github.com/wago-org/net/internal/binding/tls", + "github.com/wago-org/net/internal/dependencytest", + "github.com/wago-org/net/internal/instance/tls", + "github.com/wago-org/net/internal/namespace/tls", + "github.com/wago-org/net/tls", + } + wantRace := []string{ + "github.com/wago-org/net/internal/backend/gotls", + "github.com/wago-org/net/internal/backend/lneto/core", + "github.com/wago-org/net/internal/backend/lneto/tcp", + "github.com/wago-org/net/internal/backend/lneto/tls", + "github.com/wago-org/net/internal/binding/tls", + "github.com/wago-org/net/internal/instance/tls", + "github.com/wago-org/net/tls", + } + var ordinary, race []string + expectedLogs := make(map[string]struct{}) + for _, row := range packageRows { + mode, packagePath := row[0], row[1] + if mode == "ordinary" { + ordinary = append(ordinary, packagePath) + } else if mode == "race" { + race = append(race, packagePath) + } else { + return fmt.Errorf("release provenance: invalid TLS test mode %q", mode) + } + relative := strings.TrimPrefix(packagePath, "github.com/wago-org/net/") + if relative == packagePath || relative == "" { + return fmt.Errorf("release provenance: invalid TLS package %q", packagePath) + } + expectedLogs[filepath.ToSlash(filepath.Join("tls", "logs", mode, relative, "list.log"))] = struct{}{} + expectedLogs[filepath.ToSlash(filepath.Join("tls", "logs", mode, relative, "test.log"))] = struct{}{} + } + if !equalStrings(ordinary, wantOrdinary) || !equalStrings(race, wantRace) { + return fmt.Errorf("release provenance: TLS package matrix differs from reviewed ordinary/race sets") + } + + testData, err := os.ReadFile(filepath.Join(root, "tls", "tests.tsv")) + if err != nil { + return err + } + testRows, err := canonicalTSVRows(testData, 3, "TLS test manifest") + if err != nil { + return err + } + if len(testRows) != platformTLSTestTargets { + return fmt.Errorf("release provenance: TLS test target count %d, want %d", len(testRows), platformTLSTestTargets) + } + testsByRun := make(map[string][]string) + allTests := make(map[string]struct{}, len(testRows)) + for _, row := range testRows { + if !strings.HasPrefix(row[2], "Test") { + return fmt.Errorf("release provenance: invalid TLS test name %q", row[2]) + } + key := row[0] + "\t" + row[1] + testsByRun[key] = append(testsByRun[key], row[2]) + allTests[row[2]] = struct{}{} + } + for _, required := range []string{ + "TestRegisterExposesOnlyTLSAndSharedCore", "TestTCPAndTLSComposeWithoutCapabilityWidening", + "TestUnknownRootFailsAuthentication", "TestWrongIPSANFailsAuthentication", "TestClientRejectsWrongHostname", + "TestMissingAndInvalidIntermediateFailAuthentication", "TestCertificateValidityWindowIsEnforced", + "TestRequiredALPNMissingFailsAuthentication", "TestTLSVersionBelowMinimumFailsClosed", "TestCorruptedRecordFailsTLSProtocol", + "TestCloseDuringHandshakeJoinsWorkers", "TestTransportEOFConsumesExactlyOneServiceOperation", + "TestCloseNotifyProducesStableEOFWithoutRepeatedServiceWork", "TestRawEOFWithoutCloseNotifyIsTLSProtocolFailure", + "TestRawTCPThenTLSAndTLSThenRawShareLivePortDomain", "TestMixedTCPListenerPreventsTLSOutboundPortCollision", + "TestCheckCreateRejectsOverlapAndOverflow", "TestTLSHandleIsCrossInstanceAndWrongKindSafe", + "TestFixtureDependencyBoundaries", "TestSelfRegisterPackageDependencyBoundaries", + } { + if _, ok := allTests[required]; !ok { + return fmt.Errorf("release provenance: required TLS test %q is absent", required) + } + } + for key, tests := range testsByRun { + mode, packagePath, _ := strings.Cut(key, "\t") + relative := strings.TrimPrefix(packagePath, "github.com/wago-org/net/") + for _, filename := range []string{"list.log", "test.log"} { + data, err := os.ReadFile(filepath.Join(root, "tls", "logs", mode, relative, filename)) + if err != nil { + return err + } + if len(data) == 0 { + return fmt.Errorf("release provenance: empty TLS log for %s %s", mode, packagePath) + } + for _, test := range tests { + if !bytes.Contains(data, []byte(test)) { + return fmt.Errorf("release provenance: TLS log for %s %s omits %s", mode, packagePath, test) + } + } + } + } + return validateExactLogInventory(root, filepath.Join(root, "tls", "logs"), expectedLogs, "TLS") +} + +func validateTinyGoArtifacts(root string, checks []Check) error { + detailData, err := os.ReadFile(filepath.Join(root, "tinygo", "detail.txt")) + if err != nil { + return err + } + lines := strings.Split(strings.TrimSpace(string(detailData)), "\n") + values := make(map[string]string) + for _, line := range lines { + key, value, ok := strings.Cut(line, "=") + if !ok || key == "" || value == "" { + return fmt.Errorf("release provenance: malformed TinyGo detail line %q", line) + } + values[key] = value + } + if values["mode"] != "test" || values["tinygo_version"] == "" || values["repository_packages"] != "128" || + values["supported_packages"] != "123" || values["excluded_packages"] != "5" || + values["exclusion_root"] != "github.com/wago-org/net/internal/backend/gotls" || len(values) != 6 { + return fmt.Errorf("release provenance: TinyGo detail does not match the reviewed supported surface") + } + checkWant := strings.Join([]string{ + "repository_packages=" + values["repository_packages"], + "supported_packages=" + values["supported_packages"], + "excluded_packages=" + values["excluded_packages"], + "exclusion_root=" + values["exclusion_root"], + }, " ") + if checkDetail(checks, "tinygo-test") != checkWant { + return fmt.Errorf("release provenance: TinyGo check detail does not match retained evidence") + } + + supportedData, err := os.ReadFile(filepath.Join(root, "tinygo", "supported-packages.tsv")) + if err != nil { + return err + } + supportedRows, err := canonicalTSVRows(supportedData, 1, "TinyGo supported package manifest") + if err != nil { + return err + } + if len(supportedRows) != platformSupportedPackages { + return fmt.Errorf("release provenance: TinyGo supported package count %d, want %d", len(supportedRows), platformSupportedPackages) + } + excludedData, err := os.ReadFile(filepath.Join(root, "tinygo", "excluded-packages.tsv")) + if err != nil { + return err + } + excludedRows, err := canonicalTSVRows(excludedData, 2, "TinyGo excluded package manifest") + if err != nil { + return err + } + if len(excludedRows) != platformExcludedPackages { + return fmt.Errorf("release provenance: TinyGo excluded package count %d, want %d", len(excludedRows), platformExcludedPackages) + } + gotExcluded := make([]string, len(excludedRows)) + excluded := make(map[string]struct{}, len(excludedRows)) + for index, row := range excludedRows { + gotExcluded[index] = row[0] + excluded[row[0]] = struct{}{} + if strings.TrimSpace(row[1]) == "" { + return fmt.Errorf("release provenance: TinyGo exclusion %q has no reason", row[0]) + } + } + if !equalStrings(gotExcluded, platformExcludedPackageNames) { + return fmt.Errorf("release provenance: TinyGo excluded package set differs from reviewed TLS closure") + } + expectedLogs := make(map[string]struct{}, len(supportedRows)) + supported := make(map[string]struct{}, len(supportedRows)) + for _, row := range supportedRows { + packagePath := row[0] + if packagePath != "github.com/wago-org/net" && !strings.HasPrefix(packagePath, "github.com/wago-org/net/") { + return fmt.Errorf("release provenance: TinyGo supported package is outside the repository: %q", packagePath) + } + if _, isExcluded := excluded[packagePath]; isExcluded { + return fmt.Errorf("release provenance: package %q is both supported and excluded", packagePath) + } + supported[packagePath] = struct{}{} + relative := strings.TrimPrefix(packagePath, "github.com/wago-org/net") + relative = strings.TrimPrefix(relative, "/") + if relative == "" { + relative = "_root" + } + expectedLogs[filepath.ToSlash(filepath.Join("tinygo", "logs", relative, "test.log"))] = struct{}{} + } + for _, required := range []string{"github.com/wago-org/net", "github.com/wago-org/net/register"} { + if _, ok := supported[required]; !ok { + return fmt.Errorf("release provenance: TinyGo supported package set omits %q", required) + } + } + if _, ok := supported["github.com/wago-org/net/tls"]; ok { + return fmt.Errorf("release provenance: public TLS package is incorrectly TinyGo-supported") + } + if len(supportedRows)+len(excludedRows) != platformRepositoryPackages { + return fmt.Errorf("release provenance: TinyGo package manifests do not cover the repository package count") + } + return validateExactLogInventory(root, filepath.Join(root, "tinygo", "logs"), expectedLogs, "TinyGo") +} + +func canonicalTSVRows(data []byte, fields int, label string) ([][]string, error) { + if len(data) == 0 || data[len(data)-1] != '\n' { + return nil, fmt.Errorf("release provenance: %s is empty or noncanonical", label) + } + var rows [][]string + previous := "" + scanner := bufio.NewScanner(bytes.NewReader(data)) + for scanner.Scan() { + line := scanner.Text() + parts := strings.Split(line, "\t") + if len(parts) != fields || line <= previous { + return nil, fmt.Errorf("release provenance: invalid or unsorted %s row %q", label, line) + } + for _, part := range parts { + if part == "" { + return nil, fmt.Errorf("release provenance: empty %s field", label) + } + } + previous = line + rows = append(rows, parts) + } + if err := scanner.Err(); err != nil { + return nil, err + } + return rows, nil +} + +func validateExactLogInventory(root, logsRoot string, expected map[string]struct{}, label string) error { + seen := make(map[string]struct{}, len(expected)) + if err := filepath.WalkDir(logsRoot, func(path string, entry fs.DirEntry, walkErr error) error { + if walkErr != nil { + return walkErr + } + if entry.IsDir() { + return nil + } + if !entry.Type().IsRegular() { + return fmt.Errorf("release provenance: %s log is not regular: %s", label, path) + } + relative, err := filepath.Rel(root, path) + if err != nil { + return err + } + relative = filepath.ToSlash(relative) + if _, ok := expected[relative]; !ok { + return fmt.Errorf("release provenance: unexpected %s log %q", label, relative) + } + data, err := os.ReadFile(path) + if err != nil { + return err + } + if len(data) == 0 { + return fmt.Errorf("release provenance: empty %s log %q", label, relative) + } + seen[relative] = struct{}{} + return nil + }); err != nil { + return err + } + if len(seen) != len(expected) { + return fmt.Errorf("release provenance: %s logs are incomplete", label) + } + return nil +} + +func flattenCanonicalDetail(data []byte) string { + if len(data) == 0 || data[len(data)-1] != '\n' { + return "" + } + return strings.Join(strings.Split(strings.TrimSuffix(string(data), "\n"), "\n"), " ") +} + +func checkDetail(checks []Check, name string) string { + for _, check := range checks { + if check.Name == name { + return check.Detail + } + } + return "" +} diff --git a/internal/releaseprovenance/platform_test.go b/internal/releaseprovenance/platform_test.go new file mode 100644 index 0000000..4600272 --- /dev/null +++ b/internal/releaseprovenance/platform_test.go @@ -0,0 +1,160 @@ +//go:build !tinygo + +package releaseprovenance + +import ( + "fmt" + "os" + "path/filepath" + "sort" + "strings" + "testing" +) + +func TestTLSPlatformEvidenceValidation(t *testing.T) { + checks := platformFixture(t) + if err := validateTLSPlatformArtifacts(t.TempDir(), checks); err == nil { + t.Fatal("missing platform artifacts unexpectedly accepted") + } + + t.Run("positive", func(t *testing.T) { + dir := t.TempDir() + writePlatformFixture(t, dir) + if err := validateTLSPlatformArtifacts(dir, checks); err != nil { + t.Fatal(err) + } + }) + t.Run("missing artifact", func(t *testing.T) { + dir := t.TempDir() + writePlatformFixture(t, dir) + if err := os.Remove(filepath.Join(dir, "tinygo", "detail.txt")); err != nil { + t.Fatal(err) + } + if err := validateTLSPlatformArtifacts(dir, checks); err == nil { + t.Fatal("missing TinyGo detail unexpectedly accepted") + } + }) + t.Run("extra artifact", func(t *testing.T) { + dir := t.TempDir() + writePlatformFixture(t, dir) + writeTestFile(t, filepath.Join(dir, "tls", "logs", "extra.log"), "unexpected\n") + if err := validateTLSPlatformArtifacts(dir, checks); err == nil { + t.Fatal("extra TLS log unexpectedly accepted") + } + }) + t.Run("wrong package count", func(t *testing.T) { + dir := t.TempDir() + writePlatformFixture(t, dir) + path := filepath.Join(dir, "tinygo", "supported-packages.tsv") + data, err := os.ReadFile(path) + if err != nil { + t.Fatal(err) + } + lines := strings.Split(strings.TrimSuffix(string(data), "\n"), "\n") + writeTestFile(t, path, strings.Join(lines[:len(lines)-1], "\n")+"\n") + if err := validateTLSPlatformArtifacts(dir, checks); err == nil { + t.Fatal("wrong TinyGo package count unexpectedly accepted") + } + }) + t.Run("incorrect exclusion", func(t *testing.T) { + dir := t.TempDir() + writePlatformFixture(t, dir) + path := filepath.Join(dir, "tinygo", "excluded-packages.tsv") + data, err := os.ReadFile(path) + if err != nil { + t.Fatal(err) + } + writeTestFile(t, path, strings.Replace(string(data), "github.com/wago-org/net/tls\t", "github.com/wago-org/net/udp\t", 1)) + if err := validateTLSPlatformArtifacts(dir, checks); err == nil { + t.Fatal("incorrect TinyGo exclusion unexpectedly accepted") + } + }) +} + +func platformFixture(t testing.TB) []Check { + t.Helper() + return []Check{ + {Name: "tls-standard-go", Status: "pass", Detail: "standard_go_tls=tested aggregate_registration=absent self_registration=absent scope=outbound-client-only ordinary_packages=10 race_packages=7 test_targets=109 package_runs=17"}, + {Name: "tinygo-test", Status: "pass", Detail: "repository_packages=128 supported_packages=123 excluded_packages=5 exclusion_root=github.com/wago-org/net/internal/backend/gotls"}, + } +} + +func writePlatformFixture(t testing.TB, dir string) { + t.Helper() + checks := platformFixture(t) + tlsDetail := strings.ReplaceAll(checks[0].Detail, " ", "\n") + "\n" + writeTestFile(t, filepath.Join(dir, "tls", "detail.txt"), tlsDetail) + packageData, err := os.ReadFile("../../scripts/tls-signoff-packages.tsv") + if err != nil { + t.Fatal(err) + } + writeTestFile(t, filepath.Join(dir, "tls", "packages.tsv"), string(packageData)) + packageRows, err := canonicalTSVRows(packageData, 4, "fixture") + if err != nil { + t.Fatal(err) + } + required := []string{ + "TestRegisterExposesOnlyTLSAndSharedCore", "TestTCPAndTLSComposeWithoutCapabilityWidening", + "TestUnknownRootFailsAuthentication", "TestWrongIPSANFailsAuthentication", "TestClientRejectsWrongHostname", + "TestMissingAndInvalidIntermediateFailAuthentication", "TestCertificateValidityWindowIsEnforced", + "TestRequiredALPNMissingFailsAuthentication", "TestTLSVersionBelowMinimumFailsClosed", "TestCorruptedRecordFailsTLSProtocol", + "TestCloseDuringHandshakeJoinsWorkers", "TestTransportEOFConsumesExactlyOneServiceOperation", + "TestCloseNotifyProducesStableEOFWithoutRepeatedServiceWork", "TestRawEOFWithoutCloseNotifyIsTLSProtocolFailure", + "TestRawTCPThenTLSAndTLSThenRawShareLivePortDomain", "TestMixedTCPListenerPreventsTLSOutboundPortCollision", + "TestCheckCreateRejectsOverlapAndOverflow", "TestTLSHandleIsCrossInstanceAndWrongKindSafe", + "TestFixtureDependencyBoundaries", "TestSelfRegisterPackageDependencyBoundaries", + } + var testRows []string + testsByRun := make(map[string][]string) + for index, row := range packageRows { + name := fmt.Sprintf("TestPlatformRun%02d", index) + key := row[0] + "\t" + row[1] + testsByRun[key] = append(testsByRun[key], name) + testRows = append(testRows, key+"\t"+name) + } + for index, name := range required { + row := packageRows[index%len(packageRows)] + key := row[0] + "\t" + row[1] + testsByRun[key] = append(testsByRun[key], name) + testRows = append(testRows, key+"\t"+name) + } + for len(testRows) < platformTLSTestTargets { + index := len(testRows) + row := packageRows[index%len(packageRows)] + name := fmt.Sprintf("TestPlatformSynthetic%03d", index) + key := row[0] + "\t" + row[1] + testsByRun[key] = append(testsByRun[key], name) + testRows = append(testRows, key+"\t"+name) + } + sort.Strings(testRows) + writeTestFile(t, filepath.Join(dir, "tls", "tests.tsv"), strings.Join(testRows, "\n")+"\n") + for key, tests := range testsByRun { + mode, packagePath, _ := strings.Cut(key, "\t") + relative := strings.TrimPrefix(packagePath, "github.com/wago-org/net/") + content := strings.Join(tests, "\n") + "\nPASS\n" + writeTestFile(t, filepath.Join(dir, "tls", "logs", mode, relative, "list.log"), content) + writeTestFile(t, filepath.Join(dir, "tls", "logs", mode, relative, "test.log"), content) + } + + writeTestFile(t, filepath.Join(dir, "tinygo", "detail.txt"), "mode=test\ntinygo_version=tinygo version fixture\nrepository_packages=128\nsupported_packages=123\nexcluded_packages=5\nexclusion_root=github.com/wago-org/net/internal/backend/gotls\n") + var supported []string + supported = append(supported, "github.com/wago-org/net", "github.com/wago-org/net/register") + for index := 0; len(supported) < platformSupportedPackages; index++ { + supported = append(supported, fmt.Sprintf("github.com/wago-org/net/synthetic%03d", index)) + } + sort.Strings(supported) + writeTestFile(t, filepath.Join(dir, "tinygo", "supported-packages.tsv"), strings.Join(supported, "\n")+"\n") + for _, packagePath := range supported { + relative := strings.TrimPrefix(packagePath, "github.com/wago-org/net") + relative = strings.TrimPrefix(relative, "/") + if relative == "" { + relative = "_root" + } + writeTestFile(t, filepath.Join(dir, "tinygo", "logs", relative, "test.log"), "PASS "+packagePath+"\n") + } + var excluded strings.Builder + for _, packagePath := range platformExcludedPackageNames { + excluded.WriteString(packagePath + "\treviewed standard-Go-only TLS closure\n") + } + writeTestFile(t, filepath.Join(dir, "tinygo", "excluded-packages.tsv"), excluded.String()) +} diff --git a/internal/releaseprovenance/provenance.go b/internal/releaseprovenance/provenance.go index 72f0cca..261a2e5 100644 --- a/internal/releaseprovenance/provenance.go +++ b/internal/releaseprovenance/provenance.go @@ -21,7 +21,10 @@ import ( "github.com/wago-org/net/internal/inspectionpolicy" ) -const SchemaV2 = "github.com/wago-org/net/release-provenance/v2" +const ( + SchemaV2 = "github.com/wago-org/net/release-provenance/v2" + SchemaV3 = "github.com/wago-org/net/release-provenance/v3" +) type Config struct { OutputDir string @@ -96,11 +99,17 @@ type Targets struct { } type TargetResult struct { - GOOS string `json:"goos"` - GOARCH string `json:"goarch"` - Status string `json:"status"` - Runner string `json:"runner,omitempty"` - BinarySHA256 string `json:"binarySha256,omitempty"` + GOOS string `json:"goos"` + GOARCH string `json:"goarch"` + Status string `json:"status"` + Runner string `json:"runner,omitempty"` + BinarySHA256 string `json:"binarySha256,omitempty"` // Historical single-binary evidence. + Binaries []TargetBinary `json:"binaries,omitempty"` +} + +type TargetBinary struct { + Name string `json:"name"` + SHA256 string `json:"sha256"` } type Check struct { @@ -134,7 +143,7 @@ func Generate(cfg Config) (*Manifest, error) { return nil, err } manifest := &Manifest{ - Schema: SchemaV2, + Schema: SchemaV3, Subject: repo(cfg.PluginDir, "net", false), Inputs: []Repository{ repo(cfg.WagoDir, "wago", true), @@ -180,6 +189,9 @@ func Generate(cfg Config) (*Manifest, error) { if status := manifest.Targets.Arm64Execution.Status; !strings.HasPrefix(status, "executed-") && !strings.HasPrefix(status, "skipped-") { return nil, fmt.Errorf("release provenance: invalid arm64 execution status %q", status) } + if err := validateTLSPlatformArtifacts(cfg.OutputDir, checks); err != nil { + return nil, err + } manifest.Artifacts, err = scanArtifacts(cfg.OutputDir) if err != nil { return nil, err @@ -192,7 +204,13 @@ func Generate(cfg Config) (*Manifest, error) { if strings.HasPrefix(manifest.Targets.Arm64Execution.Status, "skipped-") { manifest.Limitations = append(manifest.Limitations, Limitation{ ID: "linux-arm64-execution", Status: manifest.Targets.Arm64Execution.Status, - Detail: "cross-build passed, but this release gate did not execute the arm64 smoke binary", + Detail: "cross-build passed, but this release gate did not execute the arm64 smoke binaries", + }) + } + if checkStatus(checks, "tls-standard-go") == "pass" { + manifest.Limitations = append(manifest.Limitations, Limitation{ + ID: "tls-tinygo", Status: "unsupported-explicit", + Detail: "outbound client TLS is tested under standard Go and intentionally unavailable under TinyGo; no stub or guest module is registered", }) } return manifest, nil @@ -513,10 +531,36 @@ func readArm64(out string, dst *TargetResult) error { return err } dst.Status, dst.Runner = status, runner - checksum, err := os.ReadFile(filepath.Join(out, "arm64", "binary.sha256")) + multiPath := filepath.Join(out, "arm64", "binaries.sha256") + checksum, err := os.ReadFile(multiPath) + if err == nil { + if len(checksum) == 0 || checksum[len(checksum)-1] != '\n' { + return fmt.Errorf("release provenance: empty or noncanonical arm64 binary checksums") + } + previous := "" + scanner := bufio.NewScanner(bytes.NewReader(checksum)) + for scanner.Scan() { + fields := strings.Fields(scanner.Text()) + if len(fields) != 2 || !validSHA256(fields[0]) || !strings.HasPrefix(fields[1], "binaries/") || fields[1] <= previous { + return fmt.Errorf("release provenance: invalid or unsorted arm64 binary checksum %q", scanner.Text()) + } + previous = fields[1] + dst.Binaries = append(dst.Binaries, TargetBinary{Name: fields[1], SHA256: fields[0]}) + } + if err := scanner.Err(); err != nil { + return err + } + if len(dst.Binaries) == 0 { + return fmt.Errorf("release provenance: arm64 binary checksum set is empty") + } + return nil + } else if !os.IsNotExist(err) { + return err + } + checksum, err = os.ReadFile(filepath.Join(out, "arm64", "binary.sha256")) if err == nil { fields := strings.Fields(string(checksum)) - if len(fields) == 0 { + if len(fields) == 0 || !validSHA256(fields[0]) { return fmt.Errorf("release provenance: empty arm64 binary checksum") } dst.BinarySHA256 = fields[0] @@ -591,6 +635,10 @@ func artifactKind(path string) string { return "inspection" case strings.HasPrefix(path, "arm64/"): return "arm64" + case strings.HasPrefix(path, "tls/") || path == "tls-signoff.txt": + return "tls" + case strings.HasPrefix(path, "tinygo/") || path == "tinygo-supported-test.txt": + return "tinygo" case path == "wasi-test.txt" || path == "wasi-status.txt" || strings.HasPrefix(path, "wasi-upstream/"): return "exception" case path == "checks.tsv": diff --git a/internal/releaseprovenance/verify.go b/internal/releaseprovenance/verify.go index c65fa6f..8aacd9a 100644 --- a/internal/releaseprovenance/verify.go +++ b/internal/releaseprovenance/verify.go @@ -290,9 +290,14 @@ func verifyDirectory(root string, opts VerifyOptions) (*Verification, error) { if err := readArm64(root, &arm64); err != nil { return nil, err } - if arm64 != manifest.Targets.Arm64Execution { + if !reflect.DeepEqual(arm64, manifest.Targets.Arm64Execution) { return nil, fmt.Errorf("release provenance: arm64 evidence does not match manifest target") } + if manifest.Schema == SchemaV3 { + if err := validateTLSPlatformArtifacts(root, checks); err != nil { + return nil, err + } + } if err := verifyRevisions(filepath.Join(root, "revisions.txt"), &manifest); err != nil { return nil, err } @@ -303,8 +308,8 @@ func verifyDirectory(root string, opts VerifyOptions) (*Verification, error) { } func validateManifest(manifest *Manifest, opts VerifyOptions) error { - if manifest.Schema != SchemaV2 { - return fmt.Errorf("release provenance: schema %q, want %q", manifest.Schema, SchemaV2) + if manifest.Schema != SchemaV2 && manifest.Schema != SchemaV3 { + return fmt.Errorf("release provenance: schema %q, want %q or %q", manifest.Schema, SchemaV2, SchemaV3) } if manifest.Subject.Name != "net" || !validObjectID(manifest.Subject.Revision) || !validObjectID(manifest.Subject.Tree) || len(manifest.Subject.Parents) != 0 { return fmt.Errorf("release provenance: invalid net subject identity") @@ -371,30 +376,40 @@ func validateManifest(manifest *Manifest, opts VerifyOptions) error { benchmarks.CPU != releaseBenchmarkCPU || !benchmarks.Benchmem { return fmt.Errorf("release provenance: benchmark facts do not prove the required non-empty bounded run") } - if manifest.Targets.CrossBuild != (TargetResult{GOOS: "linux", GOARCH: "arm64", Status: "pass"}) { + if !reflect.DeepEqual(manifest.Targets.CrossBuild, TargetResult{GOOS: "linux", GOARCH: "arm64", Status: "pass"}) { return fmt.Errorf("release provenance: cross-build target is not the required linux/arm64 pass") } arm64 := manifest.Targets.Arm64Execution if arm64.GOOS != "linux" || arm64.GOARCH != "arm64" { return fmt.Errorf("release provenance: invalid arm64 execution result") } + if arm64.BinarySHA256 != "" && len(arm64.Binaries) != 0 { + return fmt.Errorf("release provenance: arm64 result mixes historical and multi-binary evidence") + } + validBinaries := validArm64Binaries(arm64.Binaries) + hasHistoricalBinary := validSHA256(arm64.BinarySHA256) switch { case strings.HasPrefix(arm64.Status, "executed-"): - if !validSHA256(arm64.BinarySHA256) || arm64.Runner == "" || arm64.Runner == "none" { + if (!hasHistoricalBinary && !validBinaries) || arm64.Runner == "" || arm64.Runner == "none" { return fmt.Errorf("release provenance: invalid executed arm64 result") } case arm64.Status == "skipped-no-runner": - if !validSHA256(arm64.BinarySHA256) || arm64.Runner != "none" { + if (!hasHistoricalBinary && !validBinaries) || arm64.Runner != "none" { return fmt.Errorf("release provenance: invalid no-runner arm64 result") } case arm64.Status == "skipped-disabled": - if arm64.BinarySHA256 != "" || arm64.Runner != "none" { + if hasHistoricalBinary || arm64.Runner != "none" { return fmt.Errorf("release provenance: disabled arm64 result retained a binary or runner") } + // Historical evidence did not cross-compile when execution was disabled; + // current evidence retains the complete multi-binary cross-build set. + if len(arm64.Binaries) != 0 && !validBinaries { + return fmt.Errorf("release provenance: invalid disabled arm64 binaries") + } default: return fmt.Errorf("release provenance: invalid arm64 execution status %q", arm64.Status) } - if err := validateChecks(manifest.Checks, arm64.Status, benchmarks); err != nil { + if err := validateChecks(manifest.Checks, arm64.Status, benchmarks, manifest.Schema == SchemaV3); err != nil { return err } if err := validateArtifacts(manifest.Artifacts); err != nil { @@ -411,10 +426,17 @@ func validateManifest(manifest *Manifest, opts VerifyOptions) error { } var limitations []Limitation if strings.HasPrefix(arm64.Status, "skipped-") { - limitations = []Limitation{{ - ID: "linux-arm64-execution", Status: arm64.Status, - Detail: "cross-build passed, but this release gate did not execute the arm64 smoke binary", - }} + detail := "cross-build passed, but this release gate did not execute the arm64 smoke binary" + if len(arm64.Binaries) != 0 { + detail = "cross-build passed, but this release gate did not execute the arm64 smoke binaries" + } + limitations = append(limitations, Limitation{ID: "linux-arm64-execution", Status: arm64.Status, Detail: detail}) + } + if checkStatus(manifest.Checks, "tls-standard-go") == "pass" { + limitations = append(limitations, Limitation{ + ID: "tls-tinygo", Status: "unsupported-explicit", + Detail: "outbound client TLS is tested under standard Go and intentionally unavailable under TinyGo; no stub or guest module is registered", + }) } if !reflect.DeepEqual(manifest.Limitations, limitations) { return fmt.Errorf("release provenance: limitations do not exactly match target truth") @@ -450,7 +472,7 @@ func expectedReviewSourceRepositories(opts VerifyOptions) []Repository { const releaseBenchmarkCheck = "benchmark-runtime" -func validateChecks(checks []Check, arm64Status string, benchmarks BenchmarkEvidence) error { +func validateChecks(checks []Check, arm64Status string, benchmarks BenchmarkEvidence, requireTLSPlatform bool) error { requiredPass := []string{ "pinned-revisions", "initial-clean-trees", "wago-plugin-plan-compat", "current-plugin-topology-audit", "wasi-preview1-fix-review", "go-test-workspace", "go-test-module", "go-test-race", "go-vet", "go-list", "go-mod-tidy", @@ -483,11 +505,19 @@ func validateChecks(checks []Check, arm64Status string, benchmarks BenchmarkEvid } } } + if requireTLSPlatform { + requiredPass = append(requiredPass, "tls-standard-go") + } for _, name := range requiredPass { if seen[name].Status != "pass" { return fmt.Errorf("release provenance: required check %q is %q, want pass", name, seen[name].Status) } } + if requireTLSPlatform { + if err := validateTLSCheckDetails(seen["tls-standard-go"].Detail, seen["tinygo-test"].Detail); err != nil { + return err + } + } if benchmark := seen[releaseBenchmarkCheck]; benchmark.Status != "pass" || benchmark.Detail != benchmarkDetail(benchmarks) { return fmt.Errorf("release provenance: benchmark check does not match benchmark facts") } @@ -505,6 +535,94 @@ func validateChecks(checks []Check, arm64Status string, benchmarks BenchmarkEvid return nil } +func validateTLSCheckDetails(tlsDetail, tinygoDetail string) error { + tlsValues, err := parseCheckDetail(tlsDetail) + if err != nil { + return fmt.Errorf("release provenance: TLS standard-Go detail: %w", err) + } + wantTLS := map[string]string{ + "standard_go_tls": "tested", "aggregate_registration": "absent", "self_registration": "absent", "scope": "outbound-client-only", + "ordinary_packages": "10", "race_packages": "7", "package_runs": "17", + } + for key, want := range wantTLS { + if tlsValues[key] != want { + return fmt.Errorf("release provenance: TLS standard-Go detail %s=%q, want %q", key, tlsValues[key], want) + } + } + if len(tlsValues) != len(wantTLS)+1 { + return fmt.Errorf("release provenance: TLS standard-Go detail has unexpected fields") + } + if tests := tlsValues["test_targets"]; tests == "" || tests[0] == '0' { + return fmt.Errorf("release provenance: TLS standard-Go detail has no test targets") + } + + tinygoValues, err := parseCheckDetail(tinygoDetail) + if err != nil { + return fmt.Errorf("release provenance: TinyGo detail: %w", err) + } + if len(tinygoValues) != 4 || tinygoValues["excluded_packages"] != "5" || + tinygoValues["exclusion_root"] != "github.com/wago-org/net/internal/backend/gotls" { + return fmt.Errorf("release provenance: TinyGo detail does not describe the reviewed TLS exclusion") + } + repositoryCount, okRepository := positiveDecimal(tinygoValues["repository_packages"]) + supportedCount, okSupported := positiveDecimal(tinygoValues["supported_packages"]) + excludedCount, okExcluded := positiveDecimal(tinygoValues["excluded_packages"]) + if !okRepository || !okSupported || !okExcluded || repositoryCount != supportedCount+excludedCount { + return fmt.Errorf("release provenance: TinyGo package counts are invalid") + } + return nil +} + +func parseCheckDetail(detail string) (map[string]string, error) { + values := make(map[string]string) + for _, field := range strings.Fields(detail) { + key, value, ok := strings.Cut(field, "=") + if !ok || key == "" || value == "" { + return nil, fmt.Errorf("malformed field %q", field) + } + if _, duplicate := values[key]; duplicate { + return nil, fmt.Errorf("duplicate field %q", key) + } + values[key] = value + } + if len(values) == 0 { + return nil, fmt.Errorf("empty detail") + } + return values, nil +} + +func positiveDecimal(value string) (int, bool) { + if value == "" { + return 0, false + } + result := 0 + for _, digit := range value { + if digit < '0' || digit > '9' { + return 0, false + } + result = result*10 + int(digit-'0') + } + return result, result > 0 +} + +func validArm64Binaries(binaries []TargetBinary) bool { + want := []string{ + "binaries/gotls-linux-arm64.test", + "binaries/lneto-tls-linux-arm64.test", + "binaries/net-linux-arm64.test", + "binaries/tls-public-linux-arm64.test", + } + if len(binaries) != len(want) { + return false + } + for index, binary := range binaries { + if binary.Name != want[index] || !validSHA256(binary.SHA256) { + return false + } + } + return true +} + func validateArtifacts(artifacts []Artifact) error { previous := "" for _, artifact := range artifacts { diff --git a/scripts/release-signoff.sh b/scripts/release-signoff.sh index fcb5d6f..5a97298 100755 --- a/scripts/release-signoff.sh +++ b/scripts/release-signoff.sh @@ -205,7 +205,7 @@ record_check benchmark-runtime pass "$benchmark_detail" log "TinyGo supported surface and cross-compile" GOWORK=off GOFLAGS="$release_goflags" TINYGO_LOG_DIR="$out/tinygo" \ "$root/scripts/tinygo-supported-test.sh" | tee "$out/tinygo-supported-test.txt" -tinygo_detail=$(tr '\n' ' ' <"$out/tinygo/detail.txt" | sed 's/[[:space:]]*$//') +tinygo_detail=$(grep -E '^(repository_packages|supported_packages|excluded_packages|exclusion_root)=' "$out/tinygo/detail.txt" | tr '\n' ' ' | sed 's/[[:space:]]*$//') record_check tinygo-test pass "$tinygo_detail" cross_goos=${CROSS_GOOS:-linux} cross_goarch=${CROSS_GOARCH:-arm64} From 645852d89e8d9bc740c61104242f611787618a1c Mon Sep 17 00:00:00 2001 From: Wago Networking Agent Date: Mon, 20 Jul 2026 05:40:31 +0000 Subject: [PATCH 5/7] bench: refresh the TLS-aware benchmark baseline --- benchmarks/README.md | 14 +- benchmarks/baseline-summary.md | 163 +-- benchmarks/baseline.txt | 1754 ++++++++++++++++++++------ benchmarks/benchstat.txt | 2089 +++++++++++++++++++++---------- benchmarks/candidate-summary.md | 155 +-- benchmarks/candidate.txt | 2054 +++++++++++++++++++----------- 6 files changed, 4135 insertions(+), 2094 deletions(-) diff --git a/benchmarks/README.md b/benchmarks/README.md index d27279b..e1cb0f6 100644 --- a/benchmarks/README.md +++ b/benchmarks/README.md @@ -21,12 +21,14 @@ in `docs/architecture.md`: - instance manager attach/lookup/locking/poll and protocol operation wrappers; - guest status mapping and complete UDP/TCP guest poll host calls. -The checked-in capture is in `baseline.txt`; `baseline-summary.md` lists the -median timing and allocation result for the pre-TLS 114 benchmark cases. TLS -benchmarks are discoverable in current runs and require a refreshed retained -baseline before TLS release signoff. The existing baseline was captured -with three 100 ms samples to keep the initial audit bounded. The script defaults -to the stronger five-by-200 ms profile for future comparison runs. +The checked-in capture is in `baseline.txt`; `baseline-summary.md` records the +TLS-aware medians and environment. Discovery now finds 172 top-level benchmark +targets in 50 packages, with 195 distinct result names after subbenchmark +expansion. The baseline and independent repeatability candidate both use the +repository's full five-by-200 ms, single-CPU, `-benchmem` profile on the same Go +1.24.4 Linux/amd64 Ryzen 7 8845HS environment. `candidate-summary.md` and +`benchstat.txt` document the comparison without treating timing noise as a +protocol correctness assertion. These are microbenchmarks. The adapter and guest benchmarks include the locks, validation, policy, accounting, and copies performed by the named path, but they diff --git a/benchmarks/baseline-summary.md b/benchmarks/baseline-summary.md index e796f89..de38a95 100644 --- a/benchmarks/baseline-summary.md +++ b/benchmarks/baseline-summary.md @@ -1,131 +1,42 @@ -# Baseline summary +# TLS-aware baseline summary -This summary is derived from `benchmarks/baseline.txt`. Values are medians of three 100 ms samples with `GOMAXPROCS=1` on Go 1.24.4, Linux/amd64, AMD Ryzen 7 8845HS. +The canonical baseline in `benchmarks/baseline.txt` was captured on July 20, +2026 from clean source commit `97b2bfca08df8d3e154bf7b4bb2cc932ec359ca8`. +It uses Go 1.24.4 on Linux/amd64, AMD Ryzen 7 8845HS, `GOMAXPROCS=1`, five +samples, 200 ms per benchmark, and `-benchmem`. -| Package | Benchmark | ns/op | B/op | allocs/op | -|---|---:|---:|---:|---:| -| `.` | `BenchmarkGuestDNSPoll` | 94.3 | 0 | 0 | -| `.` | `BenchmarkGuestUDPPoll` | 116.3 | 0 | 0 | -| `.` | `BenchmarkGuestTCPPoll` | 112.5 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkSlice` | 1.718 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkWrite` | 8.590 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkZero` | 8.320 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkReadUint32LE` | 1.280 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkWriteUint32LE` | 1.484 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkCheckRanges` | 5.377 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkElements` | 1.913 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkEncodeAddressV1` | 11.7 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkDecodeAddressV1` | 22.4 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkEncodeEndpointV1` | 23.6 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkDecodeEndpointV1` | 39.9 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkEncodeHandleV1` | 1.490 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkDecodePollBudgetV1` | 2.541 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkEncodePollEventsV1/events=1` | 5.268 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkEncodePollEventsV1/events=16` | 26.9 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkEncodePollEventsV1/events=256` | 411.8 | 0 | 0 | -| `/internal/abi/core` | `BenchmarkEncodePollResultV1` | 8.640 | 0 | 0 | -| `/internal/abi/dns` | `BenchmarkEncodeDNSNameV1` | 99.0 | 112 | 2 | -| `/internal/abi/dns` | `BenchmarkDecodeDNSNameV1` | 155.3 | 136 | 3 | -| `/internal/abi/dns` | `BenchmarkEncodeDNSQueryV1` | 205.6 | 224 | 4 | -| `/internal/abi/dns` | `BenchmarkDecodeDNSQueryV1` | 249.2 | 248 | 5 | -| `/internal/abi/dns` | `BenchmarkCheckDNSResolveV1` | 3.643 | 0 | 0 | -| `/internal/abi/dns` | `BenchmarkEncodeDNSRecordV1/A` | 215.8 | 224 | 4 | -| `/internal/abi/dns` | `BenchmarkEncodeDNSRecordV1/AAAA` | 224.0 | 224 | 4 | -| `/internal/abi/dns` | `BenchmarkEncodeDNSRecordV1/CNAME` | 381.7 | 416 | 8 | -| `/internal/abi/tcp` | `BenchmarkCheckListenV1` | 3.690 | 0 | 0 | -| `/internal/abi/tcp` | `BenchmarkCheckCreateV1` | 3.609 | 0 | 0 | -| `/internal/abi/tcp` | `BenchmarkCheckIOV1` | 3.666 | 0 | 0 | -| `/internal/abi/tcp` | `BenchmarkEncodeStreamV1` | 42.4 | 0 | 0 | -| `/internal/abi/tcp` | `BenchmarkEncodeIOResultV1` | 4.912 | 0 | 0 | -| `/internal/abi/udp` | `BenchmarkEncodeReceiveResultV1` | 28.8 | 0 | 0 | -| `/internal/abi/udp` | `BenchmarkValidReceiveFlagsV1` | 1.242 | 0 | 0 | -| `/internal/backend/lneto/core` | `BenchmarkNamespaceReadiness` | 17.0 | 0 | 0 | -| `/internal/backend/lneto/core` | `BenchmarkUDPPortLeaseAcquireRelease` | 52.2 | 16 | 1 | -| `/internal/backend/lneto/core` | `BenchmarkUDPPortLeaseRangeAcquireRelease` | 53.0 | 16 | 1 | -| `/internal/backend/lneto/core` | `BenchmarkNamespaceTryServiceIdle` | 65.5 | 0 | 0 | -| `/internal/backend/lneto/core` | `BenchmarkNamespaceTryServiceIngress` | 43.0 | 0 | 0 | -| `/internal/backend/lneto/core` | `BenchmarkNamespaceTryServiceEgress` | 63.7 | 0 | 0 | -| `/internal/backend/lneto/dns` | `BenchmarkBuildDNSQueryPacket` | 158.2 | 152 | 4 | -| `/internal/backend/lneto/dns` | `BenchmarkDecodeDNSName` | 96.2 | 56 | 5 | -| `/internal/backend/lneto/dns` | `BenchmarkParseDNSResponse` | 1096 | 1048 | 37 | -| `/internal/backend/lneto/dns` | `BenchmarkSelectDNSAnswers` | 445.7 | 592 | 9 | -| `/internal/backend/lneto/dns` | `BenchmarkAdapterTryResolveClose` | 837.7 | 1072 | 17 | -| `/internal/backend/lneto/dns` | `BenchmarkQueryTryNext` | 90.6 | 80 | 2 | -| `/internal/backend/lneto/dns` | `BenchmarkQueryReadiness` | 4.065 | 0 | 0 | -| `/internal/backend/lneto/tcp` | `BenchmarkAdapterTryListenClose` | 533.0 | 1792 | 11 | -| `/internal/backend/lneto/tcp` | `BenchmarkTCPStreamFinishConnect` | 5.414 | 0 | 0 | -| `/internal/backend/lneto/tcp` | `BenchmarkTCPStreamReadiness` | 13.4 | 0 | 0 | -| `/internal/backend/lneto/tcp` | `BenchmarkTCPListenerTryAcceptWouldBlock` | 22.2 | 0 | 0 | -| `/internal/backend/lneto/tcp` | `BenchmarkTCPStreamRoundTrip` | 1327 | 0 | 0 | -| `/internal/backend/lneto/udp` | `BenchmarkAdapterTryBindClose` | 425.4 | 832 | 12 | -| `/internal/backend/lneto/udp` | `BenchmarkUDPSocketSendEgress` | 146.9 | 0 | 0 | -| `/internal/backend/lneto/udp` | `BenchmarkUDPSocketReceive` | 34.1 | 0 | 0 | -| `/internal/backend/lneto/udp` | `BenchmarkUDPSocketReadiness` | 4.437 | 0 | 0 | -| `/internal/backend/lneto/udp` | `BenchmarkUDPDatagramQueueRoundTrip` | 20.1 | 0 | 0 | -| `/internal/guest` | `BenchmarkFromProgress` | 1.242 | 0 | 0 | -| `/internal/guest` | `BenchmarkFromIOResult` | 1.682 | 0 | 0 | -| `/internal/guest` | `BenchmarkFromError/semantic` | 48.9 | 8 | 1 | -| `/internal/guest` | `BenchmarkFromError/shared` | 50.6 | 8 | 1 | -| `/internal/instance/core` | `BenchmarkManagerAttachDetach` | 1248 | 18152 | 12 | -| `/internal/instance/core` | `BenchmarkManagerForInstance` | 4.023 | 0 | 0 | -| `/internal/instance/core` | `BenchmarkStateWithLock` | 4.697 | 0 | 0 | -| `/internal/instance/core` | `BenchmarkStatePollIdle` | 25.8 | 0 | 0 | -| `/internal/instance/dns` | `BenchmarkResolveClose` | 87.0 | 0 | 0 | -| `/internal/instance/dns` | `BenchmarkNext` | 135.1 | 112 | 2 | -| `/internal/instance/dns` | `BenchmarkCancel` | 15.7 | 0 | 0 | -| `/internal/instance/tcp` | `BenchmarkConnectClose` | 81.5 | 0 | 0 | -| `/internal/instance/tcp` | `BenchmarkEndpoints` | 44.0 | 0 | 0 | -| `/internal/instance/tcp` | `BenchmarkFinishConnect` | 14.4 | 0 | 0 | -| `/internal/instance/tcp` | `BenchmarkRead` | 16.8 | 0 | 0 | -| `/internal/instance/tcp` | `BenchmarkWrite` | 16.9 | 0 | 0 | -| `/internal/instance/tcp` | `BenchmarkShutdownWrite` | 14.4 | 0 | 0 | -| `/internal/instance/udp` | `BenchmarkBindClose` | 81.0 | 0 | 0 | -| `/internal/instance/udp` | `BenchmarkSend` | 17.4 | 0 | 0 | -| `/internal/instance/udp` | `BenchmarkReceive` | 28.6 | 0 | 0 | -| `/internal/namespace/core` | `BenchmarkEndpointValid` | 2.131 | 0 | 0 | -| `/internal/namespace/core` | `BenchmarkIOResultValid` | 1.686 | 0 | 0 | -| `/internal/namespace/core` | `BenchmarkReadinessValid` | 1.243 | 0 | 0 | -| `/internal/namespace/core` | `BenchmarkServiceReportValidResult` | 1.707 | 0 | 0 | -| `/internal/namespace/core` | `BenchmarkResolveNamespaceService` | 8.930 | 0 | 0 | -| `/internal/namespace/core` | `BenchmarkResolveNamespaceBase` | 4.171 | 0 | 0 | -| `/internal/namespace/dns` | `BenchmarkRequestValid` | 93.3 | 112 | 2 | -| `/internal/namespace/dns` | `BenchmarkRecordValid` | 93.5 | 112 | 2 | -| `/internal/packetlink` | `BenchmarkLinkTryEnqueueDequeue/bytes=64` | 24.6 | 0 | 0 | -| `/internal/packetlink` | `BenchmarkLinkTryEnqueueDequeue/bytes=512` | 34.0 | 0 | 0 | -| `/internal/packetlink` | `BenchmarkLinkTryEnqueueDequeue/bytes=1514` | 49.0 | 0 | 0 | -| `/internal/packetlink` | `BenchmarkLinkTryFillDequeue` | 37.0 | 0 | 0 | -| `/internal/packetlink` | `BenchmarkLinkSnapshot` | 11.8 | 0 | 0 | -| `/internal/policy` | `BenchmarkMerge` | 421.7 | 1136 | 16 | -| `/internal/policy` | `BenchmarkCompile` | 587.6 | 792 | 17 | -| `/internal/policy` | `BenchmarkPolicyCheckEndpoint` | 33.2 | 0 | 0 | -| `/internal/policy` | `BenchmarkPolicyCheckDNS` | 134.7 | 112 | 2 | -| `/internal/quota` | `BenchmarkReserveResourceRollback` | 44.0 | 80 | 1 | -| `/internal/quota` | `BenchmarkReserveResourceCommitRelease` | 60.6 | 88 | 2 | -| `/internal/quota` | `BenchmarkWithService` | 20.9 | 0 | 0 | -| `/internal/quota` | `BenchmarkSnapshot` | 11.7 | 0 | 0 | -| `/internal/readiness` | `BenchmarkCoordinatorRegisterUnregister` | 36.4 | 0 | 0 | -| `/internal/readiness` | `BenchmarkCoordinatorTryPoll/registrations=1` | 27.5 | 0 | 0 | -| `/internal/readiness` | `BenchmarkCoordinatorTryPoll/registrations=16` | 177.8 | 0 | 0 | -| `/internal/readiness` | `BenchmarkCoordinatorTryPoll/registrations=256` | 2608 | 0 | 0 | -| `/internal/readiness` | `BenchmarkCoordinatorTryPollService` | 27.5 | 0 | 0 | -| `/internal/resource` | `BenchmarkNewTable` | 22.3 | 64 | 1 | -| `/internal/resource` | `BenchmarkTableAddCloseHandle` | 12.3 | 0 | 0 | -| `/internal/resource` | `BenchmarkTableLen` | 3.999 | 0 | 0 | -| `/internal/resource` | `BenchmarkMakeHandle` | 1.256 | 0 | 0 | -| `/internal/resource` | `BenchmarkSplitHandle` | 1.483 | 0 | 0 | -| `/internal/resource` | `BenchmarkTableLookupBadHandle` | 5.348 | 0 | 0 | -| `/internal/resource` | `BenchmarkTableLookup` | 5.978 | 0 | 0 | -| `/internal/resource` | `BenchmarkTableCloseLive/resources=1` | 199.2 | 176 | 4 | -| `/internal/resource` | `BenchmarkTableCloseLive/resources=64` | 3014 | 10080 | 73 | -| `/internal/resource` | `BenchmarkTableCloseLive/resources=1024` | 44362 | 157408 | 1037 | +Discovery found **172 top-level benchmark targets in 50 packages**. Subbenchmark +expansion produced 195 distinct benchmark result names. This replaces the +pre-TLS three-by-100 ms baseline and includes the complete current TLS, shared +TCP-port, protocol, ABI, policy, quota, readiness, lifecycle, and guest-binding +benchmark surface. -## Initial findings +## TLS and private-transport medians -- The steady-state shared ABI, resource lookup/reuse, quota scoped charge, readiness polling, packet-link, UDP data plane, TCP data plane, and guest poll paths are allocation-free in this baseline. -- The live in-memory TCP 64-byte round trip is about 1.33 µs and 0 allocations; UDP send plus frame egress is about 147 ns and 0 allocations. -- DNS is the largest optimization surface: response parsing is about 1.10 µs with 1,048 B and 37 allocations; answer selection is about 0.45 µs with 592 B and 9 allocations. -- DNS name/request/record validation and DNS policy checks currently allocate because normalization/validation builds temporary strings or label slices. This also appears in DNS ABI encoding/decoding and record iteration. -- UDP port lease creation allocates one 16-byte lease object per acquisition. Resource/quota creation paths allocate by design, while reuse and scoped service paths do not. -- `guest.FromError` allocates 8 B once per mapped error in this baseline; simple progress and I/O-result status mapping are allocation-free. +| Path | ns/op | B/op | allocs/op | +|---|---:|---:|---:| +| TLS 1.3 client handshake | 1,465,373 | 388,334 | 935 | +| TLS fixed byte-ring steady state | 125.8 | 0 | 0 | +| TLS profile authorization | 15.04 | 0 | 0 | +| Shared TCP local-port lease acquire/release | 41.49 | 0 | 0 | +| Live in-memory TCP 64-byte round trip | 1,584 | 0 | 0 | +| Private/raw TCP adapter connect/close | 791.3 | 1,128 | 4 | -Treat sub-10 ns results as compiler- and CPU-sensitive. Use the raw multi-sample file and `benchstat` for regression decisions rather than comparing a single rounded number. +The TLS handshake allocation result is dominated by Go's standard-library TLS +and X.509 implementation. The repository-owned fixed byte ring, profile +authorization, shared local-port lease, and steady TCP round-trip paths remain +allocation-free. + +## Interpretation + +- TLS handshake timing is scheduling- and cryptography-sensitive; use repeated + captures rather than exact timing assertions. +- The retained allocation counts are more stable than small timing differences. +- The byte-ring and profile-authorization paths show no per-operation heap + growth. +- Shared TCP port leasing remains zero-allocation after raw TCP and private TLS + transport were moved into one namespace-wide lease domain. +- This capture was produced on the same hardware and toolchain family as the + preceding optimization evidence, so it is suitable as the repository's new + TLS-aware local baseline. Release adoption still requires the separate strict + release and platform gates. diff --git a/benchmarks/baseline.txt b/benchmarks/baseline.txt index 91bb92d..c025e7e 100644 --- a/benchmarks/baseline.txt +++ b/benchmarks/baseline.txt @@ -1,509 +1,1429 @@ wago-net performance baseline -source_head: 8bd170211da9e3d455d26aba7bdd27cd907fc08b -source_tree: modified +source_head: 97b2bfca08df8d3e154bf7b4bb2cc932ec359ca8 +source_tree: clean go: go version go1.24.4 linux/amd64 goos: linux goarch: amd64 kernel: Linux 6.12.95+deb13-amd64 x86_64 GNU/Linux cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics gomaxprocs: 1 -samples: 3 -benchtime: 100ms +samples: 5 +benchtime: 200ms goos: linux goarch: amd64 pkg: github.com/wago-org/net -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkGuestDNSPoll 1325596 90.70 ns/op 0 B/op 0 allocs/op -BenchmarkGuestDNSPoll 1231605 98.52 ns/op 0 B/op 0 allocs/op -BenchmarkGuestDNSPoll 1264873 94.35 ns/op 0 B/op 0 allocs/op -BenchmarkGuestUDPPoll 1000000 114.9 ns/op 0 B/op 0 allocs/op -BenchmarkGuestUDPPoll 1000000 116.9 ns/op 0 B/op 0 allocs/op -BenchmarkGuestUDPPoll 1000000 116.3 ns/op 0 B/op 0 allocs/op -BenchmarkGuestTCPPoll 1000000 112.5 ns/op 0 B/op 0 allocs/op -BenchmarkGuestTCPPoll 1000000 112.2 ns/op 0 B/op 0 allocs/op -BenchmarkGuestTCPPoll 1000000 114.7 ns/op 0 B/op 0 allocs/op +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkGuestDNSPoll 1868667 128.0 ns/op 0 B/op 0 allocs/op +BenchmarkGuestDNSPoll 1851199 131.9 ns/op 0 B/op 0 allocs/op +BenchmarkGuestDNSPoll 1795946 132.2 ns/op 0 B/op 0 allocs/op +BenchmarkGuestDNSPoll 1853998 130.9 ns/op 0 B/op 0 allocs/op +BenchmarkGuestDNSPoll 1808659 132.7 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1572007 150.6 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1615149 148.7 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1602656 151.4 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1574379 151.5 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1467414 161.5 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1600208 152.9 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1625875 147.7 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1618003 146.9 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1622242 148.5 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1641657 145.7 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net 5.143s +PASS +ok github.com/wago-org/net/compat 0.003s +PASS +ok github.com/wago-org/net/dhcpv4 0.003s PASS -ok github.com/wago-org/net 1.065s +ok github.com/wago-org/net/dhcpv4/register 0.003s PASS -ok github.com/wago-org/net/compat 0.002s +ok github.com/wago-org/net/dhcpv6 0.003s +PASS +ok github.com/wago-org/net/dhcpv6/register 0.002s PASS ok github.com/wago-org/net/dns 0.003s PASS ok github.com/wago-org/net/dns/register 0.003s +PASS +ok github.com/wago-org/net/icmpv4 0.003s +PASS +ok github.com/wago-org/net/icmpv4/register 0.003s +PASS +ok github.com/wago-org/net/icmpv6 0.003s +PASS +ok github.com/wago-org/net/icmpv6/register 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/abi/core -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkSlice 64447453 1.749 ns/op 0 B/op 0 allocs/op -BenchmarkSlice 69612109 1.718 ns/op 0 B/op 0 allocs/op -BenchmarkSlice 69118053 1.705 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 14247024 8.590 ns/op 119206.91 MB/s 0 B/op 0 allocs/op -BenchmarkWrite 13694595 8.649 ns/op 118399.79 MB/s 0 B/op 0 allocs/op -BenchmarkWrite 13907218 8.528 ns/op 120074.27 MB/s 0 B/op 0 allocs/op -BenchmarkZero 14410406 8.320 ns/op 123074.54 MB/s 0 B/op 0 allocs/op -BenchmarkZero 14497105 8.301 ns/op 123365.53 MB/s 0 B/op 0 allocs/op -BenchmarkZero 14445129 8.586 ns/op 119257.25 MB/s 0 B/op 0 allocs/op -BenchmarkReadUint32LE 95982261 1.310 ns/op 0 B/op 0 allocs/op -BenchmarkReadUint32LE 94156268 1.278 ns/op 0 B/op 0 allocs/op -BenchmarkReadUint32LE 94285290 1.280 ns/op 0 B/op 0 allocs/op -BenchmarkWriteUint32LE 80198035 1.421 ns/op 0 B/op 0 allocs/op -BenchmarkWriteUint32LE 80839436 1.485 ns/op 0 B/op 0 allocs/op -BenchmarkWriteUint32LE 80942658 1.484 ns/op 0 B/op 0 allocs/op -BenchmarkCheckRanges 22905501 5.615 ns/op 0 B/op 0 allocs/op -BenchmarkCheckRanges 24961735 5.305 ns/op 0 B/op 0 allocs/op -BenchmarkCheckRanges 22088736 5.377 ns/op 0 B/op 0 allocs/op -BenchmarkElements 63060714 1.906 ns/op 0 B/op 0 allocs/op -BenchmarkElements 62916592 1.913 ns/op 0 B/op 0 allocs/op -BenchmarkElements 62329243 1.924 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeAddressV1 10036662 11.70 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeAddressV1 10335376 11.66 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeAddressV1 10291756 11.70 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeAddressV1 5526014 22.40 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeAddressV1 5285493 23.00 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeAddressV1 5325633 22.03 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeEndpointV1 5136157 23.65 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeEndpointV1 5082224 23.64 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeEndpointV1 5082938 23.70 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeEndpointV1 3014936 39.94 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeEndpointV1 3009400 39.82 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeEndpointV1 3029742 40.29 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeHandleV1 81665041 1.524 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeHandleV1 79289670 1.490 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeHandleV1 81695674 1.479 ns/op 0 B/op 0 allocs/op -BenchmarkDecodePollBudgetV1 44877696 2.541 ns/op 0 B/op 0 allocs/op -BenchmarkDecodePollBudgetV1 47480318 2.534 ns/op 0 B/op 0 allocs/op -BenchmarkDecodePollBudgetV1 47144662 2.543 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=1 22841422 5.268 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=1 22848438 5.258 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=1 22902564 5.411 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=16 4080800 27.88 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=16 4451490 26.79 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=16 4471850 26.85 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=256 290514 414.2 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=256 291883 411.8 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=256 291584 411.8 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollResultV1 14010138 8.474 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollResultV1 13795668 8.640 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollResultV1 13786297 8.903 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/abi/core 6.146s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkSlice 133188826 1.822 ns/op 0 B/op 0 allocs/op +BenchmarkSlice 100000000 2.075 ns/op 0 B/op 0 allocs/op +BenchmarkSlice 122693660 1.956 ns/op 0 B/op 0 allocs/op +BenchmarkSlice 130133347 1.839 ns/op 0 B/op 0 allocs/op +BenchmarkSlice 131769075 1.840 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 23557387 9.149 ns/op 111929.00 MB/s 0 B/op 0 allocs/op +BenchmarkWrite 26188798 9.336 ns/op 109685.69 MB/s 0 B/op 0 allocs/op +BenchmarkWrite 24807860 9.338 ns/op 109658.83 MB/s 0 B/op 0 allocs/op +BenchmarkWrite 25934079 9.243 ns/op 110785.57 MB/s 0 B/op 0 allocs/op +BenchmarkWrite 26184507 9.317 ns/op 109903.79 MB/s 0 B/op 0 allocs/op +BenchmarkZero 25935904 8.835 ns/op 115904.68 MB/s 0 B/op 0 allocs/op +BenchmarkZero 27163780 8.995 ns/op 113846.75 MB/s 0 B/op 0 allocs/op +BenchmarkZero 26877469 9.047 ns/op 113185.85 MB/s 0 B/op 0 allocs/op +BenchmarkZero 26983710 8.856 ns/op 115633.71 MB/s 0 B/op 0 allocs/op +BenchmarkZero 27233544 9.013 ns/op 113609.57 MB/s 0 B/op 0 allocs/op +BenchmarkReadUint32LE 176524636 1.369 ns/op 0 B/op 0 allocs/op +BenchmarkReadUint32LE 169436019 1.393 ns/op 0 B/op 0 allocs/op +BenchmarkReadUint32LE 176156934 1.361 ns/op 0 B/op 0 allocs/op +BenchmarkReadUint32LE 177204018 1.351 ns/op 0 B/op 0 allocs/op +BenchmarkReadUint32LE 178843546 1.345 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 164215339 1.483 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 161485048 1.483 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 164812436 1.493 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 161562552 1.489 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 159473306 1.506 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 43684725 5.098 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 47421120 5.093 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 51627103 5.194 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 44651685 5.037 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 52088713 5.029 ns/op 0 B/op 0 allocs/op +BenchmarkElements 100000000 2.013 ns/op 0 B/op 0 allocs/op +BenchmarkElements 100000000 2.037 ns/op 0 B/op 0 allocs/op +BenchmarkElements 100000000 2.029 ns/op 0 B/op 0 allocs/op +BenchmarkElements 100000000 2.031 ns/op 0 B/op 0 allocs/op +BenchmarkElements 121359523 1.981 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 18764114 12.50 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 19280875 12.61 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 19313661 12.53 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 19253170 12.54 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 19186443 12.52 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10252687 23.56 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10366514 23.26 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10329043 23.28 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10193340 23.33 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10304468 23.25 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9527628 25.15 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9456321 25.30 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9446871 25.38 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9406467 25.37 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9540732 25.26 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5532268 42.97 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5652415 42.74 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5632036 42.58 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5573822 42.90 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5648792 42.46 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 156939622 1.532 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 154949209 1.552 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 153647610 1.553 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 154910269 1.546 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 155483268 1.539 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 91809237 2.624 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 91639603 2.618 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 91659237 2.625 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 91563980 2.636 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 91813136 2.625 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 47896609 4.880 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 50009865 4.807 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 50034512 4.805 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 50013295 4.809 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 50154548 4.802 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8611564 27.86 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8598789 27.87 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8543800 27.93 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8625177 27.88 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8627815 27.84 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 553174 431.7 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 558987 433.6 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 553825 431.5 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 552121 429.5 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 556351 430.0 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32761803 7.352 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32632144 7.365 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32675595 7.353 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32656441 7.367 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32667572 7.382 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/abi/core 20.239s +PASS +ok github.com/wago-org/net/internal/abi/dhcpv4 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/abi/dhcpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkEncodeConfigurationV1 564063 412.0 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeConfigurationV1 595117 407.0 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeConfigurationV1 588175 409.0 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeConfigurationV1 582093 411.3 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeConfigurationV1 578613 413.5 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/abi/dhcpv6 1.197s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/abi/dns -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkEncodeDNSNameV1 1200235 99.45 ns/op 112 B/op 2 allocs/op -BenchmarkEncodeDNSNameV1 1211101 99.01 ns/op 112 B/op 2 allocs/op -BenchmarkEncodeDNSNameV1 1222554 98.12 ns/op 112 B/op 2 allocs/op -BenchmarkDecodeDNSNameV1 855961 158.7 ns/op 136 B/op 3 allocs/op -BenchmarkDecodeDNSNameV1 707636 155.3 ns/op 136 B/op 3 allocs/op -BenchmarkDecodeDNSNameV1 758497 153.1 ns/op 136 B/op 3 allocs/op -BenchmarkEncodeDNSQueryV1 659534 205.6 ns/op 224 B/op 4 allocs/op -BenchmarkEncodeDNSQueryV1 662845 207.4 ns/op 224 B/op 4 allocs/op -BenchmarkEncodeDNSQueryV1 672986 201.4 ns/op 224 B/op 4 allocs/op -BenchmarkDecodeDNSQueryV1 542283 251.0 ns/op 248 B/op 5 allocs/op -BenchmarkDecodeDNSQueryV1 540210 247.5 ns/op 248 B/op 5 allocs/op -BenchmarkDecodeDNSQueryV1 543651 249.2 ns/op 248 B/op 5 allocs/op -BenchmarkCheckDNSResolveV1 33773608 3.630 ns/op 0 B/op 0 allocs/op -BenchmarkCheckDNSResolveV1 32860389 3.643 ns/op 0 B/op 0 allocs/op -BenchmarkCheckDNSResolveV1 32578594 3.758 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/A 528394 225.5 ns/op 224 B/op 4 allocs/op -BenchmarkEncodeDNSRecordV1/A 624800 215.2 ns/op 224 B/op 4 allocs/op -BenchmarkEncodeDNSRecordV1/A 628021 215.8 ns/op 224 B/op 4 allocs/op -BenchmarkEncodeDNSRecordV1/AAAA 600595 224.6 ns/op 224 B/op 4 allocs/op -BenchmarkEncodeDNSRecordV1/AAAA 602365 222.6 ns/op 224 B/op 4 allocs/op -BenchmarkEncodeDNSRecordV1/AAAA 595650 224.0 ns/op 224 B/op 4 allocs/op -BenchmarkEncodeDNSRecordV1/CNAME 338415 381.7 ns/op 416 B/op 8 allocs/op -BenchmarkEncodeDNSRecordV1/CNAME 314916 386.2 ns/op 416 B/op 8 allocs/op -BenchmarkEncodeDNSRecordV1/CNAME 326990 377.9 ns/op 416 B/op 8 allocs/op -PASS -ok github.com/wago-org/net/internal/abi/dns 3.072s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkEncodeDNSNameV1 6251847 38.41 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSNameV1 6168799 38.70 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSNameV1 6156373 38.74 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSNameV1 6124015 39.10 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSNameV1 6242695 38.31 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameV1 2395989 95.76 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameV1 2542344 93.62 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameV1 2592276 93.38 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameV1 2534688 95.50 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameV1 2355586 117.0 ns/op 24 B/op 1 allocs/op +BenchmarkEncodeDNSQueryV1 3140505 72.86 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSQueryV1 3204771 76.67 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSQueryV1 3274384 74.21 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSQueryV1 3831475 68.26 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSQueryV1 3656128 74.06 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1 1000000 202.5 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1 1261074 190.4 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1 1000000 203.0 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1 1272100 186.4 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1 1459653 155.4 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 65113722 3.811 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 56746455 3.909 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 89848134 4.465 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 78157692 4.911 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 48069421 4.602 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 55253388 4.374 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 59846179 5.565 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 59908743 4.792 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 60803163 6.114 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 45333498 6.036 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 2072752 115.5 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 2587100 96.60 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 3600950 60.19 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 3554408 70.51 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 3581245 61.38 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3616614 66.21 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3705231 67.07 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3709599 65.34 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3558092 67.15 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3724240 64.51 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3486034 67.35 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3542653 68.48 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3500512 67.04 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3614102 66.24 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3618016 66.39 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/abi/dns 11.358s +PASS +ok github.com/wago-org/net/internal/abi/icmpv4 0.002s +PASS +ok github.com/wago-org/net/internal/abi/icmpv6 0.002s +PASS +ok github.com/wago-org/net/internal/abi/ipv6 0.002s +PASS +ok github.com/wago-org/net/internal/abi/linklocal4 0.002s +PASS +ok github.com/wago-org/net/internal/abi/mdns 0.002s +PASS +ok github.com/wago-org/net/internal/abi/ntp 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/abi/tcp -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkCheckListenV1 30719268 3.732 ns/op 0 B/op 0 allocs/op -BenchmarkCheckListenV1 32905352 3.690 ns/op 0 B/op 0 allocs/op -BenchmarkCheckListenV1 33288254 3.616 ns/op 0 B/op 0 allocs/op -BenchmarkCheckCreateV1 33518054 3.593 ns/op 0 B/op 0 allocs/op -BenchmarkCheckCreateV1 33511960 3.609 ns/op 0 B/op 0 allocs/op -BenchmarkCheckCreateV1 33459157 3.634 ns/op 0 B/op 0 allocs/op -BenchmarkCheckIOV1 33549128 3.763 ns/op 0 B/op 0 allocs/op -BenchmarkCheckIOV1 32545390 3.666 ns/op 0 B/op 0 allocs/op -BenchmarkCheckIOV1 33599854 3.602 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeStreamV1 2795754 42.44 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeStreamV1 2793061 42.32 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeStreamV1 2777970 42.59 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeIOResultV1 23673565 4.912 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeIOResultV1 24533128 4.887 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeIOResultV1 24614556 5.084 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/abi/tcp 1.807s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkCheckListenV1 63278256 3.923 ns/op 0 B/op 0 allocs/op +BenchmarkCheckListenV1 62477823 4.276 ns/op 0 B/op 0 allocs/op +BenchmarkCheckListenV1 54323997 4.016 ns/op 0 B/op 0 allocs/op +BenchmarkCheckListenV1 54953571 4.039 ns/op 0 B/op 0 allocs/op +BenchmarkCheckListenV1 54640964 3.938 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 62151031 4.003 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 59745260 3.849 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 63612994 3.806 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 64800693 3.795 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 64385626 3.771 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 64620476 3.829 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 62371926 3.790 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 63146793 3.860 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 64094175 3.789 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 63761649 3.954 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5359855 44.51 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5227183 44.90 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5450412 44.20 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5322241 44.64 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5362638 44.88 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 45515706 5.217 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 46103229 5.210 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 46008405 5.215 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 46150401 5.205 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 46158123 5.216 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/abi/tcp 6.002s +PASS +ok github.com/wago-org/net/internal/abi/tls 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/abi/udp -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkEncodeReceiveResultV1 3921650 29.67 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeReceiveResultV1 4103396 28.74 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeReceiveResultV1 4222074 28.75 ns/op 0 B/op 0 allocs/op -BenchmarkValidReceiveFlagsV1 96799797 1.244 ns/op 0 B/op 0 allocs/op -BenchmarkValidReceiveFlagsV1 96809169 1.241 ns/op 0 B/op 0 allocs/op -BenchmarkValidReceiveFlagsV1 96810652 1.242 ns/op 0 B/op 0 allocs/op +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkEncodeReceiveResultV1 7615534 30.46 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeReceiveResultV1 7905579 30.81 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeReceiveResultV1 7982721 30.80 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeReceiveResultV1 7799022 31.50 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeReceiveResultV1 7396418 31.91 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 174261891 1.348 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 196241733 1.188 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 210377793 1.146 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 197570608 1.218 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 210350596 1.171 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/abi/udp 2.404s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/gotls +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkTLS13Handshake 168 1450007 ns/op 388362 B/op 935 allocs/op +BenchmarkTLS13Handshake 151 1560362 ns/op 388334 B/op 934 allocs/op +BenchmarkTLS13Handshake 159 1486610 ns/op 388333 B/op 935 allocs/op +BenchmarkTLS13Handshake 165 1465373 ns/op 388338 B/op 935 allocs/op +BenchmarkTLS13Handshake 170 1403524 ns/op 388316 B/op 934 allocs/op +BenchmarkByteRingSteadyState 1947772 123.5 ns/op 33154.58 MB/s 0 B/op 0 allocs/op +BenchmarkByteRingSteadyState 1918501 126.6 ns/op 32366.09 MB/s 0 B/op 0 allocs/op +BenchmarkByteRingSteadyState 1909830 125.3 ns/op 32677.78 MB/s 0 B/op 0 allocs/op +BenchmarkByteRingSteadyState 1895918 125.8 ns/op 32554.41 MB/s 0 B/op 0 allocs/op +BenchmarkByteRingSteadyState 1783285 131.0 ns/op 31261.98 MB/s 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 16095154 15.04 ns/op 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 15288358 15.18 ns/op 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 16094042 15.11 ns/op 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 16006172 14.78 ns/op 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 16251309 14.70 ns/op 0 B/op 0 allocs/op PASS -ok github.com/wago-org/net/internal/abi/udp 0.719s +ok github.com/wago-org/net/internal/backend/gotls 4.476s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkDisabledNamespaceNew 77646 2763 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceNew 83893 2914 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceNew 81867 2798 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceNew 83438 2967 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceNew 68599 3395 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3539074 68.06 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3725419 63.86 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3726730 63.16 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3786516 63.40 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3705325 65.46 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 79504 2983 ns/op 20104 B/op 24 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 82244 2880 ns/op 20104 B/op 24 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 85485 2722 ns/op 20104 B/op 24 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 84267 2897 ns/op 20104 B/op 24 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 79920 2946 ns/op 20104 B/op 24 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 92533 2721 ns/op 19272 B/op 21 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 90398 2784 ns/op 19272 B/op 21 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 74104 2841 ns/op 19272 B/op 21 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 87682 2730 ns/op 19272 B/op 21 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 88692 2665 ns/op 19272 B/op 21 allocs/op PASS -ok github.com/wago-org/net/internal/backend/lneto 0.003s +ok github.com/wago-org/net/internal/backend/lneto 4.749s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/backend/lneto/core -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkNamespaceReadiness 7266495 16.48 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceReadiness 7237586 17.02 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceReadiness 7193834 17.05 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseAcquireRelease 2306893 51.68 ns/op 16 B/op 1 allocs/op -BenchmarkUDPPortLeaseAcquireRelease 2278287 52.67 ns/op 16 B/op 1 allocs/op -BenchmarkUDPPortLeaseAcquireRelease 2299659 52.19 ns/op 16 B/op 1 allocs/op -BenchmarkUDPPortLeaseRangeAcquireRelease 2180472 54.90 ns/op 16 B/op 1 allocs/op -BenchmarkUDPPortLeaseRangeAcquireRelease 2261761 53.01 ns/op 16 B/op 1 allocs/op -BenchmarkUDPPortLeaseRangeAcquireRelease 2271927 52.97 ns/op 16 B/op 1 allocs/op -BenchmarkNamespaceTryServiceIdle 1865988 65.50 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIdle 1782538 66.46 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIdle 1883559 63.45 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIngress 2797405 43.02 ns/op 1487.62 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIngress 2809149 42.86 ns/op 1493.24 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIngress 2804272 43.02 ns/op 1487.77 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceEgress 1891003 63.35 ns/op 1010.23 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceEgress 1839196 65.25 ns/op 980.84 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceEgress 1908129 63.74 ns/op 1004.12 MB/s 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/backend/lneto/core 2.174s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkNamespaceReadiness 13131252 17.71 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceReadiness 13284121 17.99 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceReadiness 12939955 18.02 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceReadiness 13147374 17.94 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceReadiness 13234801 18.28 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5722969 41.78 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5841398 41.32 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5937788 41.49 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5711863 41.79 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5779488 41.08 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 5959047 40.09 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 6082256 38.98 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 5957348 39.41 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 6133761 38.82 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 6034567 39.72 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5938329 40.74 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5880410 40.77 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5878275 40.92 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5864758 40.64 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5648454 42.23 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3446570 69.62 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3329512 72.29 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3523622 69.49 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3513175 71.17 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3478729 68.47 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 5172711 47.24 ns/op 1354.80 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 5090018 47.03 ns/op 1360.97 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 5096320 47.05 ns/op 1360.29 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 5012775 47.06 ns/op 1360.08 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 5132230 46.78 ns/op 1368.23 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2766464 86.63 ns/op 738.73 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2845605 85.74 ns/op 746.46 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2737712 87.65 ns/op 730.21 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2718414 87.25 ns/op 733.48 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2658606 90.14 ns/op 710.04 MB/s 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/core 8.398s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/dhcpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkClientLeaseSnapshot 2545568 94.88 ns/op 0 B/op 0 allocs/op +BenchmarkClientLeaseSnapshot 2502355 96.67 ns/op 0 B/op 0 allocs/op +BenchmarkClientLeaseSnapshot 2477162 96.16 ns/op 0 B/op 0 allocs/op +BenchmarkClientLeaseSnapshot 2492683 94.94 ns/op 0 B/op 0 allocs/op +BenchmarkClientLeaseSnapshot 2586579 97.28 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 220.7 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 229.1 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 219.6 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 230.2 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 225.7 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1750898 136.7 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1750023 137.2 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1740319 138.3 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1714050 139.7 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1730298 138.7 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 21191967 11.54 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 20427320 11.71 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 20109207 11.60 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 21185691 11.35 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 21502530 11.21 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 22910584 10.48 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 22682068 10.55 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 22932298 10.52 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 23037254 10.50 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 23063514 10.45 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/dhcpv4 5.947s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/dhcpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkInspectMessageReply 562644 433.5 ns/op 0 B/op 0 allocs/op +BenchmarkInspectMessageReply 561199 428.6 ns/op 0 B/op 0 allocs/op +BenchmarkInspectMessageReply 558394 429.7 ns/op 0 B/op 0 allocs/op +BenchmarkInspectMessageReply 558610 436.8 ns/op 0 B/op 0 allocs/op +BenchmarkInspectMessageReply 562714 431.5 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterTryAcquireClose 293767 816.6 ns/op 6032 B/op 8 allocs/op +BenchmarkAdapterTryAcquireClose 298080 814.9 ns/op 6032 B/op 8 allocs/op +BenchmarkAdapterTryAcquireClose 282607 846.1 ns/op 6032 B/op 8 allocs/op +BenchmarkAdapterTryAcquireClose 295836 845.4 ns/op 6032 B/op 8 allocs/op +BenchmarkAdapterTryAcquireClose 301770 830.0 ns/op 6032 B/op 8 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/dhcpv6 2.439s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/backend/lneto/dns -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkBuildDNSQueryPacket 717885 166.6 ns/op 152 B/op 4 allocs/op -BenchmarkBuildDNSQueryPacket 817274 158.2 ns/op 152 B/op 4 allocs/op -BenchmarkBuildDNSQueryPacket 830470 158.1 ns/op 152 B/op 4 allocs/op -BenchmarkDecodeDNSName 1237716 97.19 ns/op 56 B/op 5 allocs/op -BenchmarkDecodeDNSName 1242445 96.24 ns/op 56 B/op 5 allocs/op -BenchmarkDecodeDNSName 1296706 93.20 ns/op 56 B/op 5 allocs/op -BenchmarkParseDNSResponse 114644 1096 ns/op 178.84 MB/s 1048 B/op 37 allocs/op -BenchmarkParseDNSResponse 114318 1084 ns/op 180.84 MB/s 1048 B/op 37 allocs/op -BenchmarkParseDNSResponse 109394 1101 ns/op 178.02 MB/s 1048 B/op 37 allocs/op -BenchmarkSelectDNSAnswers 265677 445.7 ns/op 592 B/op 9 allocs/op -BenchmarkSelectDNSAnswers 294342 444.2 ns/op 592 B/op 9 allocs/op -BenchmarkSelectDNSAnswers 276460 447.7 ns/op 592 B/op 9 allocs/op -BenchmarkAdapterTryResolveClose 144423 837.7 ns/op 1072 B/op 17 allocs/op -BenchmarkAdapterTryResolveClose 145504 837.5 ns/op 1072 B/op 17 allocs/op -BenchmarkAdapterTryResolveClose 144886 841.8 ns/op 1072 B/op 17 allocs/op -BenchmarkQueryTryNext 1301307 93.16 ns/op 80 B/op 2 allocs/op -BenchmarkQueryTryNext 1347962 90.56 ns/op 80 B/op 2 allocs/op -BenchmarkQueryTryNext 1345052 89.07 ns/op 80 B/op 2 allocs/op -BenchmarkQueryReadiness 30038764 4.050 ns/op 0 B/op 0 allocs/op -BenchmarkQueryReadiness 29675284 4.065 ns/op 0 B/op 0 allocs/op -BenchmarkQueryReadiness 29095860 4.175 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/backend/lneto/dns 2.582s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkBuildDNSQueryPacket 2169969 106.8 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacket 2271888 106.1 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacket 2160630 109.5 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacket 2156390 115.0 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacket 2096805 114.8 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacketInto 2594372 91.40 ns/op 0 B/op 0 allocs/op +BenchmarkBuildDNSQueryPacketInto 2746986 88.67 ns/op 0 B/op 0 allocs/op +BenchmarkBuildDNSQueryPacketInto 2755065 87.31 ns/op 0 B/op 0 allocs/op +BenchmarkBuildDNSQueryPacketInto 2777137 87.11 ns/op 0 B/op 0 allocs/op +BenchmarkBuildDNSQueryPacketInto 2783256 88.74 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSName 5994928 39.28 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSName 6648260 37.97 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSName 6267984 37.68 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSName 6646744 37.62 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSName 6438058 37.95 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameInto 11556474 20.22 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameInto 11011551 20.15 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameInto 12738272 20.96 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameInto 11541429 21.37 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameInto 12455689 21.60 ns/op 0 B/op 0 allocs/op +BenchmarkParseDNSResponse 685882 364.9 ns/op 537.13 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponse 683925 357.3 ns/op 548.55 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponse 703381 357.9 ns/op 547.58 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponse 692847 372.2 ns/op 526.64 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponse 698078 359.8 ns/op 544.76 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1000000 205.3 ns/op 662.54 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1221769 196.7 ns/op 691.38 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1000000 202.8 ns/op 670.76 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1243081 192.3 ns/op 707.14 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1264194 190.1 ns/op 715.48 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 734708 352.9 ns/op 538.38 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 693290 360.4 ns/op 527.17 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 748588 353.6 ns/op 537.33 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 698911 355.6 ns/op 534.33 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 750355 347.0 ns/op 547.54 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 282171 867.2 ns/op 398.99 MB/s 96 B/op 4 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 286837 873.0 ns/op 396.36 MB/s 96 B/op 4 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 281518 879.2 ns/op 393.54 MB/s 96 B/op 4 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 298249 899.2 ns/op 384.80 MB/s 96 B/op 4 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 284472 925.1 ns/op 374.02 MB/s 96 B/op 4 allocs/op +BenchmarkSelectDNSAnswers 1876046 127.8 ns/op 0 B/op 0 allocs/op +BenchmarkSelectDNSAnswers 1883644 127.6 ns/op 0 B/op 0 allocs/op +BenchmarkSelectDNSAnswers 1850636 128.9 ns/op 0 B/op 0 allocs/op +BenchmarkSelectDNSAnswers 1858909 129.0 ns/op 0 B/op 0 allocs/op +BenchmarkSelectDNSAnswers 1865488 128.6 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2141038 112.2 ns/op 1961.09 MB/s 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2152546 111.2 ns/op 1979.22 MB/s 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2192304 110.2 ns/op 1995.95 MB/s 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2165948 110.5 ns/op 1990.15 MB/s 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2163200 110.6 ns/op 1989.95 MB/s 0 B/op 0 allocs/op +BenchmarkAdapterTryResolveClose 412326 581.4 ns/op 1792 B/op 1 allocs/op +BenchmarkAdapterTryResolveClose 418827 569.9 ns/op 1792 B/op 1 allocs/op +BenchmarkAdapterTryResolveClose 443460 572.6 ns/op 1792 B/op 1 allocs/op +BenchmarkAdapterTryResolveClose 440457 566.3 ns/op 1792 B/op 1 allocs/op +BenchmarkAdapterTryResolveClose 402972 572.6 ns/op 1792 B/op 1 allocs/op +BenchmarkQueryTryNext 8738504 26.51 ns/op 0 B/op 0 allocs/op +BenchmarkQueryTryNext 9040041 26.36 ns/op 0 B/op 0 allocs/op +BenchmarkQueryTryNext 9036512 26.28 ns/op 0 B/op 0 allocs/op +BenchmarkQueryTryNext 9146250 26.83 ns/op 0 B/op 0 allocs/op +BenchmarkQueryTryNext 8999244 26.86 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 55993378 4.252 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 57463089 4.218 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 56698998 4.288 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 57659097 4.173 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 56515068 4.267 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/dns 15.835s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/icmpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkIngressEchoReply 4534207 52.69 ns/op 0 B/op 0 allocs/op +BenchmarkIngressEchoReply 4572520 52.71 ns/op 0 B/op 0 allocs/op +BenchmarkIngressEchoReply 4551900 53.45 ns/op 0 B/op 0 allocs/op +BenchmarkIngressEchoReply 4411831 53.55 ns/op 0 B/op 0 allocs/op +BenchmarkIngressEchoReply 4547156 52.82 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/icmpv4 1.204s +PASS +ok github.com/wago-org/net/internal/backend/lneto/icmpv6 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/ipv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkIngressLocked/accepted 21885508 10.71 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/accepted 22595227 10.69 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/accepted 23338298 10.63 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/accepted 22343670 10.67 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/accepted 22323285 10.67 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 60897321 3.944 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 60773401 3.945 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 60376977 4.050 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 58172128 3.975 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 60970017 3.956 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/ipv6 2.402s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/linklocal4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkIngressUnrelatedARP 6492644 36.38 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUnrelatedARP 6684860 37.11 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUnrelatedARP 6681664 35.78 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUnrelatedARP 6775267 35.43 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUnrelatedARP 6846150 35.02 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/linklocal4 1.207s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/mdns +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkMDNSCancelClose/Query 298740 801.6 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Query 299650 794.3 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Query 310749 800.0 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Query 281428 810.0 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Query 294980 801.1 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Announcement 195580 1208 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCancelClose/Announcement 172515 1224 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCancelClose/Announcement 199190 1213 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCancelClose/Announcement 204666 1189 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCancelClose/Announcement 199663 1181 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 55317536 4.379 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 55020985 4.397 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 54688252 4.471 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 54695842 4.461 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 54629882 4.434 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 1893345 126.1 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 1941712 123.4 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 1883158 127.4 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 1912698 125.4 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 2005867 120.2 ns/op 0 B/op 0 allocs/op +BenchmarkIngressQueryResponse 893238 254.1 ns/op 32 B/op 2 allocs/op +BenchmarkIngressQueryResponse 1000000 255.9 ns/op 32 B/op 2 allocs/op +BenchmarkIngressQueryResponse 1000000 261.8 ns/op 32 B/op 2 allocs/op +BenchmarkIngressQueryResponse 998518 264.1 ns/op 32 B/op 2 allocs/op +BenchmarkIngressQueryResponse 1000000 264.3 ns/op 32 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 479785 538.7 ns/op 48 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 463636 543.0 ns/op 48 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 475806 546.7 ns/op 48 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 473376 544.4 ns/op 48 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 475779 542.3 ns/op 48 B/op 2 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/mdns 7.343s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/ntp +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkIngressNTPOriginMismatch 4213387 56.27 ns/op 1599.42 MB/s 0 B/op 0 allocs/op +BenchmarkIngressNTPOriginMismatch 4320789 57.10 ns/op 1576.14 MB/s 0 B/op 0 allocs/op +BenchmarkIngressNTPOriginMismatch 4252452 55.83 ns/op 1612.10 MB/s 0 B/op 0 allocs/op +BenchmarkIngressNTPOriginMismatch 4314910 55.50 ns/op 1621.56 MB/s 0 B/op 0 allocs/op +BenchmarkIngressNTPOriginMismatch 4366149 55.01 ns/op 1636.09 MB/s 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/ntp 1.205s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/backend/lneto/tcp -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkAdapterTryListenClose 222396 536.9 ns/op 1792 B/op 11 allocs/op -BenchmarkAdapterTryListenClose 230596 533.0 ns/op 1792 B/op 11 allocs/op -BenchmarkAdapterTryListenClose 231078 529.3 ns/op 1792 B/op 11 allocs/op -BenchmarkTCPStreamFinishConnect 21674025 5.601 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamFinishConnect 21269901 5.414 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamFinishConnect 22473820 5.390 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamReadiness 8850498 13.53 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamReadiness 8722258 13.38 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamReadiness 8996958 13.34 ns/op 0 B/op 0 allocs/op -BenchmarkTCPListenerTryAcceptWouldBlock 5516802 21.90 ns/op 0 B/op 0 allocs/op -BenchmarkTCPListenerTryAcceptWouldBlock 5397654 22.20 ns/op 0 B/op 0 allocs/op -BenchmarkTCPListenerTryAcceptWouldBlock 5435038 22.66 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamRoundTrip 88826 1364 ns/op 46.91 MB/s 0 B/op 0 allocs/op -BenchmarkTCPStreamRoundTrip 90844 1324 ns/op 48.32 MB/s 0 B/op 0 allocs/op -BenchmarkTCPStreamRoundTrip 90825 1327 ns/op 48.24 MB/s 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/backend/lneto/tcp 1.811s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkAdapterNew 71641 3175 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterNew 77869 3157 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterNew 71803 3250 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterNew 73153 3287 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterNew 75052 3204 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterTryListenClose 612730 406.0 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryListenClose 603717 400.9 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryListenClose 643995 390.7 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryListenClose 660541 444.1 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryListenClose 574057 460.5 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryConnectClose 317335 767.3 ns/op 1128 B/op 4 allocs/op +BenchmarkAdapterTryConnectClose 344616 804.7 ns/op 1128 B/op 4 allocs/op +BenchmarkAdapterTryConnectClose 324460 791.3 ns/op 1128 B/op 4 allocs/op +BenchmarkAdapterTryConnectClose 320686 794.1 ns/op 1128 B/op 4 allocs/op +BenchmarkAdapterTryConnectClose 354525 733.3 ns/op 1128 B/op 4 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 210258537 1.139 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 212355578 1.130 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 214871995 1.127 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 213064322 1.125 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 216399133 1.115 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 212826907 1.130 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 211542196 1.124 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 216708090 1.109 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 216201654 1.109 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 215584351 1.123 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 215901028 1.111 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 215148580 1.119 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 213374199 1.125 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 211576926 1.120 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 215364192 1.116 ns/op 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 4827012 44.93 ns/op 1335.28 MB/s 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 5655438 42.27 ns/op 1419.38 MB/s 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 5704256 42.11 ns/op 1424.83 MB/s 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 5679073 42.11 ns/op 1424.69 MB/s 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 5708450 42.09 ns/op 1425.42 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 37774894 6.376 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 39664064 6.092 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 39654279 6.099 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 40067634 6.050 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 39546981 6.098 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 16575345 14.68 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 16459462 14.50 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 16640539 14.43 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 16688545 14.43 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 16723380 14.37 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 10086346 24.12 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 9858528 24.16 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 10193588 23.89 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 10054455 23.83 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 10015486 23.79 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 147307 1580 ns/op 40.51 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 151802 1584 ns/op 40.41 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 152025 1581 ns/op 40.48 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 150421 1617 ns/op 39.57 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 148336 1602 ns/op 39.94 MB/s 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/tcp 13.385s +PASS +ok github.com/wago-org/net/internal/backend/lneto/tls 0.003s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/backend/lneto/udp -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkAdapterTryBindClose 235717 425.0 ns/op 832 B/op 12 allocs/op -BenchmarkAdapterTryBindClose 291759 425.4 ns/op 832 B/op 12 allocs/op -BenchmarkAdapterTryBindClose 297116 425.5 ns/op 832 B/op 12 allocs/op -BenchmarkUDPSocketSendEgress 831704 144.0 ns/op 222.19 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketSendEgress 830292 146.9 ns/op 217.78 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketSendEgress 814394 148.3 ns/op 215.74 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReceive 3481117 34.14 ns/op 937.35 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReceive 3442696 34.86 ns/op 917.83 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReceive 3547598 33.69 ns/op 949.79 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReadiness 27917169 4.437 ns/op 0 B/op 0 allocs/op -BenchmarkUDPSocketReadiness 25419727 4.404 ns/op 0 B/op 0 allocs/op -BenchmarkUDPSocketReadiness 27133231 4.491 ns/op 0 B/op 0 allocs/op -BenchmarkUDPDatagramQueueRoundTrip 6085543 20.01 ns/op 0 B/op 0 allocs/op -BenchmarkUDPDatagramQueueRoundTrip 5910685 20.60 ns/op 0 B/op 0 allocs/op -BenchmarkUDPDatagramQueueRoundTrip 5951505 20.05 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/backend/lneto/udp 1.798s -? github.com/wago-org/net/internal/binding/dns [no test files] -? github.com/wago-org/net/internal/binding/tcp [no test files] -? github.com/wago-org/net/internal/binding/udp [no test files] +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkNewSocketDatagramQueues 497004 477.3 ns/op 5088 B/op 3 allocs/op +BenchmarkNewSocketDatagramQueues 524091 470.1 ns/op 5088 B/op 3 allocs/op +BenchmarkNewSocketDatagramQueues 532338 518.7 ns/op 5088 B/op 3 allocs/op +BenchmarkNewSocketDatagramQueues 501781 488.0 ns/op 5088 B/op 3 allocs/op +BenchmarkNewSocketDatagramQueues 534858 477.1 ns/op 5088 B/op 3 allocs/op +BenchmarkAdapterTryBindClose 732710 333.4 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindClose 772104 338.0 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindClose 744522 326.1 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindClose 797023 325.9 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindClose 769968 331.2 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 807308 319.6 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 793143 319.3 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 779331 318.4 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 791532 324.6 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 789745 323.8 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 155040700 1.546 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 155219732 1.551 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 152412895 1.571 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 153365301 1.591 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 152820862 1.574 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 34768503 7.023 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 35113581 6.962 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 35180365 6.960 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 29620761 7.098 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 35136103 7.030 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 240.3 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 240.2 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 239.3 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 239.7 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 239.8 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3870768 62.05 ns/op 515.71 MB/s 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3906321 61.78 ns/op 517.98 MB/s 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3945136 61.42 ns/op 521.02 MB/s 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3848374 61.79 ns/op 517.89 MB/s 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3912697 60.95 ns/op 525.04 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1408051 170.9 ns/op 187.20 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1396155 172.5 ns/op 185.50 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1387569 172.1 ns/op 185.89 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1390512 171.8 ns/op 186.21 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1396726 171.5 ns/op 186.64 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6524565 35.49 ns/op 901.77 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6182085 35.69 ns/op 896.58 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6827416 35.47 ns/op 902.20 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6756577 35.54 ns/op 900.45 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6792668 36.05 ns/op 887.76 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 51180379 5.000 ns/op 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 47118603 4.999 ns/op 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 51275356 4.970 ns/op 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 47323593 4.961 ns/op 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 49705504 4.806 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11309913 20.62 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11831863 20.33 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11581252 20.45 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11724177 20.58 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11720436 20.36 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/udp 13.398s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/dhcpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 888789 274.6 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 851536 276.7 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 933238 273.4 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 921850 273.7 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 925162 273.4 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/dhcpv4 1.244s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/dhcpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 256330 990.9 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 220318 988.8 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 248402 978.2 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 249601 1012 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 257612 971.5 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/dhcpv6 1.223s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/dns +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkNextBindingReady 1651262 145.7 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1629159 147.4 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1586736 150.2 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1606071 146.7 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1622731 149.4 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/dns 1.202s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/icmpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 2139440 116.9 ns/op 2190.40 MB/s 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2041935 117.9 ns/op 2171.80 MB/s 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2051193 117.0 ns/op 2188.88 MB/s 32 B/op 1 allocs/op +BenchmarkResultBindingReady 1900154 127.0 ns/op 2015.90 MB/s 32 B/op 1 allocs/op +BenchmarkResultBindingReady 1961048 120.5 ns/op 2124.88 MB/s 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/icmpv4 1.213s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/icmpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkEchoResultBindingReady 1607619 148.7 ns/op 1722.09 MB/s 32 B/op 1 allocs/op +BenchmarkEchoResultBindingReady 1630735 145.7 ns/op 1756.98 MB/s 32 B/op 1 allocs/op +BenchmarkEchoResultBindingReady 1650000 145.8 ns/op 1755.28 MB/s 32 B/op 1 allocs/op +BenchmarkEchoResultBindingReady 1661337 144.6 ns/op 1770.76 MB/s 32 B/op 1 allocs/op +BenchmarkEchoResultBindingReady 1649373 144.6 ns/op 1771.01 MB/s 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 2158419 111.3 ns/op 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 2144400 111.9 ns/op 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 2168026 110.7 ns/op 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 2175771 110.5 ns/op 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 2168119 110.8 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/icmpv6 2.402s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/ipv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkConfigurationBinding 1830603 132.1 ns/op 32 B/op 1 allocs/op +BenchmarkConfigurationBinding 1795969 133.6 ns/op 32 B/op 1 allocs/op +BenchmarkConfigurationBinding 1803454 133.8 ns/op 32 B/op 1 allocs/op +BenchmarkConfigurationBinding 1701675 142.2 ns/op 32 B/op 1 allocs/op +BenchmarkConfigurationBinding 1736118 138.1 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/ipv6 1.209s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/linklocal4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 2349568 102.3 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2258541 105.2 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2377591 107.6 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2207083 105.2 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 1995594 110.8 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/linklocal4 1.191s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/mdns +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkFinishAnnouncementBindingReady 4631517 52.50 ns/op 32 B/op 1 allocs/op +BenchmarkFinishAnnouncementBindingReady 4520434 52.38 ns/op 32 B/op 1 allocs/op +BenchmarkFinishAnnouncementBindingReady 4458600 52.79 ns/op 32 B/op 1 allocs/op +BenchmarkFinishAnnouncementBindingReady 4654059 52.76 ns/op 32 B/op 1 allocs/op +BenchmarkFinishAnnouncementBindingReady 4568677 52.85 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1469472 163.7 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1456212 165.1 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1484193 162.1 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1476711 162.0 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1462644 164.0 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/mdns 2.408s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/ntp +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 2381688 101.5 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2375668 101.0 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2371094 101.2 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2360299 102.8 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2232237 103.9 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/ntp 1.200s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/tcp +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkReadBindingReady 3151362 76.24 ns/op 3357.78 MB/s 32 B/op 1 allocs/op +BenchmarkReadBindingReady 3119486 76.71 ns/op 3337.07 MB/s 32 B/op 1 allocs/op +BenchmarkReadBindingReady 3176989 75.81 ns/op 3376.71 MB/s 32 B/op 1 allocs/op +BenchmarkReadBindingReady 3060416 77.15 ns/op 3318.15 MB/s 32 B/op 1 allocs/op +BenchmarkReadBindingReady 3098376 76.18 ns/op 3360.63 MB/s 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/tcp 1.196s +PASS +ok github.com/wago-org/net/internal/binding/tls 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/udp +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkReceiveBindingReady 2209227 109.9 ns/op 2330.00 MB/s 32 B/op 1 allocs/op +BenchmarkReceiveBindingReady 2129697 111.7 ns/op 2291.09 MB/s 32 B/op 1 allocs/op +BenchmarkReceiveBindingReady 2158386 111.0 ns/op 2305.45 MB/s 32 B/op 1 allocs/op +BenchmarkReceiveBindingReady 2183852 109.6 ns/op 2334.71 MB/s 32 B/op 1 allocs/op +BenchmarkReceiveBindingReady 2202180 109.8 ns/op 2332.16 MB/s 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/udp 1.205s +PASS +ok github.com/wago-org/net/internal/checked 0.002s ? github.com/wago-org/net/internal/cmd/release-provenance [no test files] ? github.com/wago-org/net/internal/cmd/release-review [no test files] ? github.com/wago-org/net/internal/cmd/release-source-objects [no test files] PASS -ok github.com/wago-org/net/internal/dependencytest 0.003s +ok github.com/wago-org/net/internal/dependencytest 0.002s +PASS +ok github.com/wago-org/net/internal/dnsname 0.001s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/guest -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkFromProgress 100000000 1.039 ns/op 0 B/op 0 allocs/op -BenchmarkFromProgress 96804405 1.247 ns/op 0 B/op 0 allocs/op -BenchmarkFromProgress 96803702 1.242 ns/op 0 B/op 0 allocs/op -BenchmarkFromIOResult 72414966 1.655 ns/op 0 B/op 0 allocs/op -BenchmarkFromIOResult 72443469 1.682 ns/op 0 B/op 0 allocs/op -BenchmarkFromIOResult 72608589 1.686 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/semantic 2406963 50.03 ns/op 8 B/op 1 allocs/op -BenchmarkFromError/semantic 2403850 48.81 ns/op 8 B/op 1 allocs/op -BenchmarkFromError/semantic 2432515 48.90 ns/op 8 B/op 1 allocs/op -BenchmarkFromError/shared 2328504 51.24 ns/op 8 B/op 1 allocs/op -BenchmarkFromError/shared 2346909 50.38 ns/op 8 B/op 1 allocs/op -BenchmarkFromError/shared 2364459 50.61 ns/op 8 B/op 1 allocs/op -PASS -ok github.com/wago-org/net/internal/guest 1.428s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkPollReady 1679516 144.4 ns/op 32 B/op 1 allocs/op +BenchmarkPollReady 1603094 148.4 ns/op 32 B/op 1 allocs/op +BenchmarkPollReady 1627932 147.3 ns/op 32 B/op 1 allocs/op +BenchmarkPollReady 1630956 147.0 ns/op 32 B/op 1 allocs/op +BenchmarkPollReady 1619164 148.2 ns/op 32 B/op 1 allocs/op +BenchmarkFromProgress 183096656 1.399 ns/op 0 B/op 0 allocs/op +BenchmarkFromProgress 158899526 1.511 ns/op 0 B/op 0 allocs/op +BenchmarkFromProgress 159292137 1.508 ns/op 0 B/op 0 allocs/op +BenchmarkFromProgress 176411922 1.426 ns/op 0 B/op 0 allocs/op +BenchmarkFromProgress 177063469 1.420 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 158334454 1.514 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 158636938 1.513 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 158654065 1.513 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 158278150 1.515 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 158902888 1.511 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 50364195 4.762 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 50281207 4.787 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 50127385 4.792 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 50229012 4.772 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 50265169 4.765 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 85238653 2.824 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 84747736 2.838 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 84270993 2.791 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 91144478 2.623 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 91592670 2.465 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/guest 6.028s +PASS +ok github.com/wago-org/net/internal/inspectionpolicy 0.003s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/instance/core -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkManagerAttachDetach 85178 1248 ns/op 18152 B/op 12 allocs/op -BenchmarkManagerAttachDetach 96750 1221 ns/op 18152 B/op 12 allocs/op -BenchmarkManagerAttachDetach 97212 1294 ns/op 18152 B/op 12 allocs/op -BenchmarkManagerForInstance 29558607 4.070 ns/op 0 B/op 0 allocs/op -BenchmarkManagerForInstance 30065218 4.019 ns/op 0 B/op 0 allocs/op -BenchmarkManagerForInstance 29899135 4.023 ns/op 0 B/op 0 allocs/op -BenchmarkStateWithLock 25884801 4.646 ns/op 0 B/op 0 allocs/op -BenchmarkStateWithLock 25713704 4.773 ns/op 0 B/op 0 allocs/op -BenchmarkStateWithLock 25926264 4.697 ns/op 0 B/op 0 allocs/op -BenchmarkStatePollIdle 4755543 25.14 ns/op 0 B/op 0 allocs/op -BenchmarkStatePollIdle 4806703 25.78 ns/op 0 B/op 0 allocs/op -BenchmarkStatePollIdle 4398355 26.02 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/instance/core 1.438s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkManagerAttachDetach 132962 1667 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerAttachDetach 138780 1669 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerAttachDetach 136951 1631 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerAttachDetach 136900 1676 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerAttachDetach 138116 1686 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerForInstance 58350390 4.151 ns/op 0 B/op 0 allocs/op +BenchmarkManagerForInstance 57799458 4.147 ns/op 0 B/op 0 allocs/op +BenchmarkManagerForInstance 57925246 4.144 ns/op 0 B/op 0 allocs/op +BenchmarkManagerForInstance 57543289 4.146 ns/op 0 B/op 0 allocs/op +BenchmarkManagerForInstance 57887175 4.145 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 50010490 4.816 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 50170422 4.816 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 50196918 4.818 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 50312366 4.853 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 48535658 4.800 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9631153 24.72 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9749234 24.72 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9699794 24.74 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9707674 24.67 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9714068 24.68 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/core 4.746s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/dhcpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultReady 3273856 72.76 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 3319076 72.59 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 3309393 72.73 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 3268094 73.32 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 3265566 73.95 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/dhcpv4 1.205s +PASS +ok github.com/wago-org/net/internal/instance/dhcpv6 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/instance/dns -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkResolveClose 1400097 85.85 ns/op 0 B/op 0 allocs/op -BenchmarkResolveClose 1368162 87.36 ns/op 0 B/op 0 allocs/op -BenchmarkResolveClose 1376194 87.02 ns/op 0 B/op 0 allocs/op -BenchmarkNext 894555 133.8 ns/op 112 B/op 2 allocs/op -BenchmarkNext 1000000 135.8 ns/op 112 B/op 2 allocs/op -BenchmarkNext 1000000 135.1 ns/op 112 B/op 2 allocs/op -BenchmarkCancel 7895908 15.68 ns/op 0 B/op 0 allocs/op -BenchmarkCancel 7799910 16.24 ns/op 0 B/op 0 allocs/op -BenchmarkCancel 7832200 15.23 ns/op 0 B/op 0 allocs/op +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResolveClose 1950130 127.8 ns/op 0 B/op 0 allocs/op +BenchmarkResolveClose 2110722 112.0 ns/op 0 B/op 0 allocs/op +BenchmarkResolveClose 2160066 108.3 ns/op 0 B/op 0 allocs/op +BenchmarkResolveClose 2307890 106.8 ns/op 0 B/op 0 allocs/op +BenchmarkResolveClose 2296549 108.1 ns/op 0 B/op 0 allocs/op +BenchmarkNext 3944287 57.88 ns/op 0 B/op 0 allocs/op +BenchmarkNext 4101259 57.90 ns/op 0 B/op 0 allocs/op +BenchmarkNext 4012328 57.31 ns/op 0 B/op 0 allocs/op +BenchmarkNext 4119214 56.75 ns/op 0 B/op 0 allocs/op +BenchmarkNext 4137211 56.55 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16910296 14.31 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16873930 14.36 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16854222 14.39 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16763264 14.22 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16929633 14.32 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/dns 3.592s +PASS +ok github.com/wago-org/net/internal/instance/icmpv4 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/icmpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkEchoResultReady 4800964 50.92 ns/op 5027.72 MB/s 0 B/op 0 allocs/op +BenchmarkEchoResultReady 4741197 50.21 ns/op 5098.88 MB/s 0 B/op 0 allocs/op +BenchmarkEchoResultReady 4842657 49.40 ns/op 5182.70 MB/s 0 B/op 0 allocs/op +BenchmarkEchoResultReady 4912917 49.04 ns/op 5219.72 MB/s 0 B/op 0 allocs/op +BenchmarkEchoResultReady 4836560 49.43 ns/op 5179.55 MB/s 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/icmpv6 1.205s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/ipv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkConfiguration 4273022 55.77 ns/op 0 B/op 0 allocs/op +BenchmarkConfiguration 4281666 55.37 ns/op 0 B/op 0 allocs/op +BenchmarkConfiguration 4409036 54.41 ns/op 0 B/op 0 allocs/op +BenchmarkConfiguration 4410192 60.92 ns/op 0 B/op 0 allocs/op +BenchmarkConfiguration 3090046 83.33 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/ipv6 1.245s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/linklocal4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultReady 4519436 49.68 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 4892312 49.23 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 4223816 47.77 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 5927655 40.78 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 5718453 40.84 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/linklocal4 1.147s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/mdns +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkInstanceMDNSOperations/Next 3200965 72.30 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/Next 3204297 73.19 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/Next 3274389 71.06 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/Next 3407836 68.68 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/Next 3323758 71.12 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 16179756 15.58 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 13917518 16.96 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 14842682 15.69 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 15762501 15.83 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 15483334 16.05 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 14269768 17.46 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 13552663 16.59 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 14106744 16.72 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 14332802 16.86 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 14092984 16.60 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 15154599 14.87 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 16547774 15.41 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 15395164 15.15 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 16716206 14.47 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 15996757 14.99 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/mdns 4.777s PASS -ok github.com/wago-org/net/internal/instance/dns 1.124s +ok github.com/wago-org/net/internal/instance/ntp 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/instance/tcp -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkConnectClose 1484796 80.99 ns/op 0 B/op 0 allocs/op -BenchmarkConnectClose 1473454 81.50 ns/op 0 B/op 0 allocs/op -BenchmarkConnectClose 1470895 81.59 ns/op 0 B/op 0 allocs/op -BenchmarkEndpoints 2718432 44.00 ns/op 0 B/op 0 allocs/op -BenchmarkEndpoints 2741016 44.02 ns/op 0 B/op 0 allocs/op -BenchmarkEndpoints 2725212 45.22 ns/op 0 B/op 0 allocs/op -BenchmarkFinishConnect 8258710 14.95 ns/op 0 B/op 0 allocs/op -BenchmarkFinishConnect 8250303 14.42 ns/op 0 B/op 0 allocs/op -BenchmarkFinishConnect 8329311 14.45 ns/op 0 B/op 0 allocs/op -BenchmarkRead 7259040 16.76 ns/op 0 B/op 0 allocs/op -BenchmarkRead 7280583 16.87 ns/op 0 B/op 0 allocs/op -BenchmarkRead 7167678 16.68 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 7266240 16.55 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 7141012 16.95 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 6998707 17.09 ns/op 0 B/op 0 allocs/op -BenchmarkShutdownWrite 8258181 14.44 ns/op 0 B/op 0 allocs/op -BenchmarkShutdownWrite 8312184 14.44 ns/op 0 B/op 0 allocs/op -BenchmarkShutdownWrite 8233606 14.56 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/instance/tcp 2.176s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkConnectClose 2193386 113.3 ns/op 0 B/op 0 allocs/op +BenchmarkConnectClose 1981220 117.4 ns/op 0 B/op 0 allocs/op +BenchmarkConnectClose 2158802 110.9 ns/op 0 B/op 0 allocs/op +BenchmarkConnectClose 2213578 108.4 ns/op 0 B/op 0 allocs/op +BenchmarkConnectClose 2244212 107.4 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 5068323 48.55 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 4915418 48.30 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 4925629 47.64 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 4938331 48.24 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 4979084 47.48 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 15336448 16.65 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 14831260 16.35 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 14796320 16.60 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 14011203 16.62 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 14488724 16.25 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2724171 88.44 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2689563 88.78 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2720703 88.70 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2706645 88.37 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2772776 86.97 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 13821877 17.79 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 13368242 17.98 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 13338415 18.19 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 13336149 18.22 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 13335870 18.33 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 15065020 16.36 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 13866393 16.66 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 14422966 16.70 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 14829562 16.59 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 14278622 16.43 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/tcp 7.233s +PASS +ok github.com/wago-org/net/internal/instance/tls 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/instance/udp -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkBindClose 1484409 80.84 ns/op 0 B/op 0 allocs/op -BenchmarkBindClose 1482774 80.98 ns/op 0 B/op 0 allocs/op -BenchmarkBindClose 1408479 85.22 ns/op 0 B/op 0 allocs/op -BenchmarkSend 6790143 17.39 ns/op 0 B/op 0 allocs/op -BenchmarkSend 6231738 18.13 ns/op 0 B/op 0 allocs/op -BenchmarkSend 6770740 17.41 ns/op 0 B/op 0 allocs/op -BenchmarkReceive 4157925 28.62 ns/op 0 B/op 0 allocs/op -BenchmarkReceive 4197327 28.65 ns/op 0 B/op 0 allocs/op -BenchmarkReceive 4171926 28.64 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/instance/udp 1.071s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkBindClose 2108000 112.9 ns/op 0 B/op 0 allocs/op +BenchmarkBindClose 2152596 110.8 ns/op 0 B/op 0 allocs/op +BenchmarkBindClose 2192630 109.1 ns/op 0 B/op 0 allocs/op +BenchmarkBindClose 2147912 114.0 ns/op 0 B/op 0 allocs/op +BenchmarkBindClose 2164100 109.7 ns/op 0 B/op 0 allocs/op +BenchmarkSend 12072264 21.61 ns/op 0 B/op 0 allocs/op +BenchmarkSend 11062185 22.24 ns/op 0 B/op 0 allocs/op +BenchmarkSend 10694985 21.92 ns/op 0 B/op 0 allocs/op +BenchmarkSend 11354236 22.74 ns/op 0 B/op 0 allocs/op +BenchmarkSend 12061044 20.01 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 4697860 51.25 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 4795431 53.36 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 4423110 57.10 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 3677460 63.90 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 3849818 62.65 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/udp 3.673s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/mdnsname +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkValidCanonical 4246977 56.93 ns/op 0 B/op 0 allocs/op +BenchmarkValidCanonical 6197582 38.45 ns/op 0 B/op 0 allocs/op +BenchmarkValidCanonical 6924466 35.82 ns/op 0 B/op 0 allocs/op +BenchmarkValidCanonical 6694501 35.31 ns/op 0 B/op 0 allocs/op +BenchmarkValidCanonical 6906973 35.80 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/mdnsname 1.215s PASS ok github.com/wago-org/net/internal/namespace 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/namespace/core -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkEndpointValid 56182892 2.134 ns/op 0 B/op 0 allocs/op -BenchmarkEndpointValid 56273696 2.131 ns/op 0 B/op 0 allocs/op -BenchmarkEndpointValid 56152329 2.131 ns/op 0 B/op 0 allocs/op -BenchmarkIOResultValid 69792558 1.731 ns/op 0 B/op 0 allocs/op -BenchmarkIOResultValid 70289380 1.686 ns/op 0 B/op 0 allocs/op -BenchmarkIOResultValid 72298737 1.655 ns/op 0 B/op 0 allocs/op -BenchmarkReadinessValid 96379813 1.243 ns/op 0 B/op 0 allocs/op -BenchmarkReadinessValid 96358994 1.242 ns/op 0 B/op 0 allocs/op -BenchmarkReadinessValid 90477744 1.248 ns/op 0 B/op 0 allocs/op -BenchmarkServiceReportValidResult 72596685 1.677 ns/op 0 B/op 0 allocs/op -BenchmarkServiceReportValidResult 72199384 1.707 ns/op 0 B/op 0 allocs/op -BenchmarkServiceReportValidResult 72607227 1.711 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceService 13723384 9.104 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceService 13444662 8.900 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceService 13457203 8.930 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceBase 28437110 4.201 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceBase 28824175 4.168 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceBase 28753382 4.171 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/namespace/core 2.169s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkEndpointValid 102590202 2.322 ns/op 0 B/op 0 allocs/op +BenchmarkEndpointValid 98842920 2.377 ns/op 0 B/op 0 allocs/op +BenchmarkEndpointValid 100000000 2.316 ns/op 0 B/op 0 allocs/op +BenchmarkEndpointValid 100000000 2.346 ns/op 0 B/op 0 allocs/op +BenchmarkEndpointValid 100000000 2.243 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 176371130 1.348 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 174270214 1.375 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 167693755 1.429 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 172090028 1.388 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 174806492 1.381 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 200080558 1.169 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 216549895 1.128 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 216312956 1.168 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 200462462 1.163 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 208955894 1.158 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 129792226 1.830 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 134580574 1.800 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 133246764 1.795 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 135106398 1.771 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 134381097 1.805 ns/op 0 B/op 0 allocs/op +BenchmarkComposeNamespace/empty 3689384 60.85 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/empty 4247665 54.70 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/empty 4410308 54.14 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/empty 4545304 52.94 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/empty 4390125 54.07 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 4008486 59.08 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 3844120 61.32 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 3802614 61.59 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 4064050 73.65 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 3781015 61.21 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 3055437 78.60 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 2928595 80.56 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 3060176 79.25 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 2977555 81.20 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 3013533 78.95 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2695746 88.21 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2718716 85.76 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2865066 84.49 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2849334 88.27 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2513902 91.92 ns/op 576 B/op 1 allocs/op +BenchmarkResolveNamespaceService 14723875 14.99 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceService 13860337 15.86 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceService 15241184 15.11 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceService 15036565 16.17 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceService 16878152 14.93 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 10231576 23.72 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 8842298 26.66 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 8971408 27.10 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 8149304 28.98 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 9155113 26.42 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/namespace/core 11.950s +PASS +ok github.com/wago-org/net/internal/namespace/dhcpv4 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/namespace/dhcpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkNewName 2061039 108.0 ns/op 0 B/op 0 allocs/op +BenchmarkNewName 2633046 89.30 ns/op 0 B/op 0 allocs/op +BenchmarkNewName 2745446 87.58 ns/op 0 B/op 0 allocs/op +BenchmarkNewName 2744919 87.07 ns/op 0 B/op 0 allocs/op +BenchmarkNewName 2781421 86.43 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1896396 126.5 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1885153 127.3 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1871131 128.4 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1894834 126.7 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1893060 126.9 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 700196 346.5 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 688395 349.6 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 697731 349.7 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 690319 349.3 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 691969 350.0 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/namespace/dhcpv6 3.594s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/namespace/dns -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkRequestValid 1338129 89.80 ns/op 112 B/op 2 allocs/op -BenchmarkRequestValid 1310900 93.35 ns/op 112 B/op 2 allocs/op -BenchmarkRequestValid 1260811 94.72 ns/op 112 B/op 2 allocs/op -BenchmarkRecordValid 1279518 93.49 ns/op 112 B/op 2 allocs/op -BenchmarkRecordValid 1296314 92.82 ns/op 112 B/op 2 allocs/op -BenchmarkRecordValid 1278366 93.91 ns/op 112 B/op 2 allocs/op +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkRequestValid 7680259 30.08 ns/op 0 B/op 0 allocs/op +BenchmarkRequestValid 8164675 28.67 ns/op 0 B/op 0 allocs/op +BenchmarkRequestValid 8399450 28.55 ns/op 0 B/op 0 allocs/op +BenchmarkRequestValid 8447286 28.47 ns/op 0 B/op 0 allocs/op +BenchmarkRequestValid 8415013 29.15 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 8167059 29.53 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 8191314 29.43 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 8194496 29.29 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 8101042 29.48 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 8149126 29.01 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/namespace/dns 2.392s +PASS +ok github.com/wago-org/net/internal/namespace/icmpv4 0.001s +PASS +ok github.com/wago-org/net/internal/namespace/icmpv6 0.003s +PASS +ok github.com/wago-org/net/internal/namespace/ipv6 0.002s +PASS +ok github.com/wago-org/net/internal/namespace/linklocal4 0.002s +PASS +ok github.com/wago-org/net/internal/namespace/mdns 0.002s PASS -ok github.com/wago-org/net/internal/namespace/dns 0.725s +ok github.com/wago-org/net/internal/namespace/ntp 0.002s PASS -ok github.com/wago-org/net/internal/namespace/tcp 0.002s +ok github.com/wago-org/net/internal/namespace/tcp 0.001s PASS -ok github.com/wago-org/net/internal/namespace/udp 0.002s +ok github.com/wago-org/net/internal/namespace/tls 0.002s +PASS +ok github.com/wago-org/net/internal/namespace/udp 0.001s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/packetlink -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkLinkTryEnqueueDequeue/bytes=64 4900585 24.72 ns/op 2588.58 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=64 4904250 24.57 ns/op 2604.87 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=64 4892854 24.55 ns/op 2606.55 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=512 3576168 34.05 ns/op 15038.00 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=512 3499981 34.79 ns/op 14716.67 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=512 3574374 33.18 ns/op 15429.01 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=1514 2455947 49.05 ns/op 30869.06 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=1514 2515879 47.63 ns/op 31784.93 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=1514 2447974 49.25 ns/op 30739.54 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryFillDequeue 3167062 37.00 ns/op 40922.13 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryFillDequeue 3257194 36.93 ns/op 40993.46 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryFillDequeue 3232296 37.15 ns/op 40751.66 MB/s 0 B/op 0 allocs/op -BenchmarkLinkSnapshot 10359622 12.32 ns/op 0 B/op 0 allocs/op -BenchmarkLinkSnapshot 9922046 11.80 ns/op 0 B/op 0 allocs/op -BenchmarkLinkSnapshot 10500094 11.35 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/packetlink 1.811s -PASS -ok github.com/wago-org/net/internal/plugin 0.002s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkLinkTryEnqueueDequeue/bytes=64 8690234 25.81 ns/op 2479.69 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=64 9541380 25.17 ns/op 2543.09 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=64 9616299 25.35 ns/op 2525.02 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=64 9594945 25.02 ns/op 2557.63 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=64 9433400 25.04 ns/op 2555.63 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6874504 35.10 ns/op 14587.91 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6832245 35.14 ns/op 14570.00 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6895878 34.95 ns/op 14650.83 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6868351 34.89 ns/op 14672.74 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6861182 34.98 ns/op 14635.93 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4699365 51.04 ns/op 29665.80 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4472467 53.42 ns/op 28340.08 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4695807 51.12 ns/op 29614.55 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4691192 51.39 ns/op 29461.24 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4679076 51.19 ns/op 29578.84 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 6129610 39.29 ns/op 38537.21 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 6173420 38.63 ns/op 39193.22 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 6204177 38.76 ns/op 39064.69 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 6251440 38.79 ns/op 39029.46 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 6230542 38.68 ns/op 39146.20 MB/s 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 19723640 12.05 ns/op 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 19895610 11.99 ns/op 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 20021527 11.95 ns/op 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 20119594 11.95 ns/op 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 20102342 11.97 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/packetlink 5.993s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/plugin +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkHostStateAttached 23003982 10.50 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateAttached 22742065 10.49 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateAttached 21146136 10.67 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateAttached 22927779 10.58 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateAttached 22919684 10.49 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 25588003 9.502 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 25480519 9.382 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 25586637 9.381 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 24179822 10.17 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 25509366 9.474 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/plugin 2.403s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/policy -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkMerge 281798 424.6 ns/op 1136 B/op 16 allocs/op -BenchmarkMerge 298119 421.7 ns/op 1136 B/op 16 allocs/op -BenchmarkMerge 289344 420.1 ns/op 1136 B/op 16 allocs/op -BenchmarkCompile 209263 585.8 ns/op 792 B/op 17 allocs/op -BenchmarkCompile 209961 587.6 ns/op 792 B/op 17 allocs/op -BenchmarkCompile 210702 613.8 ns/op 792 B/op 17 allocs/op -BenchmarkPolicyCheckEndpoint 3586604 33.24 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpoint 3603109 33.37 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpoint 3615538 33.17 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckDNS 869545 137.6 ns/op 112 B/op 2 allocs/op -BenchmarkPolicyCheckDNS 976670 134.7 ns/op 112 B/op 2 allocs/op -BenchmarkPolicyCheckDNS 978049 134.5 ns/op 112 B/op 2 allocs/op -PASS -ok github.com/wago-org/net/internal/policy 1.489s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkMerge 503892 476.2 ns/op 1136 B/op 16 allocs/op +BenchmarkMerge 516656 478.1 ns/op 1136 B/op 16 allocs/op +BenchmarkMerge 527188 472.0 ns/op 1136 B/op 16 allocs/op +BenchmarkMerge 511040 468.4 ns/op 1136 B/op 16 allocs/op +BenchmarkMerge 528541 481.7 ns/op 1136 B/op 16 allocs/op +BenchmarkCompile 438885 516.2 ns/op 680 B/op 13 allocs/op +BenchmarkCompile 479970 516.1 ns/op 680 B/op 13 allocs/op +BenchmarkCompile 473203 533.5 ns/op 680 B/op 13 allocs/op +BenchmarkCompile 464581 528.8 ns/op 680 B/op 13 allocs/op +BenchmarkCompile 465778 529.1 ns/op 680 B/op 13 allocs/op +BenchmarkPolicyCheckEndpoint 6483926 36.95 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpoint 6385459 37.12 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpoint 6461742 36.91 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpoint 6597502 36.52 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpoint 6466974 36.93 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 12001134 20.01 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 12002221 20.67 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 11138719 20.95 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 11726180 20.38 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 11710737 19.85 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1400451 171.2 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1403484 170.8 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1414780 169.8 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1419962 169.0 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1416168 169.4 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 93778 2561 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 93298 2569 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 93514 2572 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 92221 2704 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 87819 2704 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3323908 72.54 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3101209 75.77 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3317082 74.25 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3108560 76.99 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3189334 75.40 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/policy 8.455s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/quota -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkReserveResourceRollback 2677158 44.02 ns/op 80 B/op 1 allocs/op -BenchmarkReserveResourceRollback 2608668 45.65 ns/op 80 B/op 1 allocs/op -BenchmarkReserveResourceRollback 2707976 43.89 ns/op 80 B/op 1 allocs/op -BenchmarkReserveResourceCommitRelease 1988302 60.52 ns/op 88 B/op 2 allocs/op -BenchmarkReserveResourceCommitRelease 1952732 61.00 ns/op 88 B/op 2 allocs/op -BenchmarkReserveResourceCommitRelease 1987196 60.65 ns/op 88 B/op 2 allocs/op -BenchmarkWithService 5660270 20.89 ns/op 0 B/op 0 allocs/op -BenchmarkWithService 5735972 20.90 ns/op 0 B/op 0 allocs/op -BenchmarkWithService 5711974 20.90 ns/op 0 B/op 0 allocs/op -BenchmarkSnapshot 10495677 11.69 ns/op 0 B/op 0 allocs/op -BenchmarkSnapshot 10386103 11.73 ns/op 0 B/op 0 allocs/op -BenchmarkSnapshot 10565624 11.22 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/quota 1.440s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkReserveResourceRollback 1922730 122.4 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceRollback 2048602 114.4 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceRollback 2227948 106.9 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceRollback 2292273 106.4 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceRollback 2338239 103.9 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceCommitRelease 1956099 125.0 ns/op 232 B/op 2 allocs/op +BenchmarkReserveResourceCommitRelease 1832746 127.3 ns/op 232 B/op 2 allocs/op +BenchmarkReserveResourceCommitRelease 1860073 128.7 ns/op 232 B/op 2 allocs/op +BenchmarkReserveResourceCommitRelease 1957222 124.7 ns/op 232 B/op 2 allocs/op +BenchmarkReserveResourceCommitRelease 1925941 126.0 ns/op 232 B/op 2 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3406876 70.54 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3398760 69.88 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3425342 69.11 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3466780 69.01 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3478832 69.22 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3553083 67.42 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3529212 67.23 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3612544 66.59 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3601980 66.73 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3658519 66.37 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 5533356 43.39 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 5548250 43.19 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 5518618 43.19 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 5537034 49.12 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 4858482 46.06 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 16883340 15.98 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 9613053 23.75 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 9522688 23.92 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 12943604 18.09 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 16763899 15.02 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/quota 7.569s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/readiness -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkCoordinatorRegisterUnregister 3317818 36.38 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorRegisterUnregister 3243764 36.67 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorRegisterUnregister 3297825 36.42 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=1 4363074 27.47 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=1 4366363 27.47 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=1 4370724 28.20 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=16 669217 183.5 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=16 677859 176.9 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=16 680061 177.8 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=256 45979 2607 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=256 45969 2608 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=256 46026 2609 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollService 4422423 27.04 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollService 4430625 27.48 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollService 4289644 28.19 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/readiness 1.813s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkCoordinatorRegisterUnregister 5148931 42.81 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorRegisterUnregister 5763424 41.68 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorRegisterUnregister 5822882 41.30 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorRegisterUnregister 5797778 41.36 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorRegisterUnregister 5818629 41.25 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8573079 27.93 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8596964 27.83 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8607588 28.02 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8579020 27.76 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8640117 27.72 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1284450 187.1 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1278080 187.7 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1277575 187.0 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1248870 194.7 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1213581 196.5 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 84123 2856 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 84536 2905 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 82570 2933 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 79039 2843 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 84128 2819 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1235050 189.5 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1277028 199.9 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1261284 192.3 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1265600 191.3 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1266276 188.2 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7829216 30.59 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7881098 31.10 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7640540 30.87 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7816942 30.62 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7825590 30.64 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/readiness 8.155s PASS ok github.com/wago-org/net/internal/releaseprovenance 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/resource -cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkNewTable 5060697 22.73 ns/op 64 B/op 1 allocs/op -BenchmarkNewTable 5383581 22.32 ns/op 64 B/op 1 allocs/op -BenchmarkNewTable 5289762 22.33 ns/op 64 B/op 1 allocs/op -BenchmarkTableAddCloseHandle 9587196 12.37 ns/op 0 B/op 0 allocs/op -BenchmarkTableAddCloseHandle 9743176 12.34 ns/op 0 B/op 0 allocs/op -BenchmarkTableAddCloseHandle 9753951 12.34 ns/op 0 B/op 0 allocs/op -BenchmarkTableLen 30091930 3.999 ns/op 0 B/op 0 allocs/op -BenchmarkTableLen 29881207 4.046 ns/op 0 B/op 0 allocs/op -BenchmarkTableLen 30742318 3.944 ns/op 0 B/op 0 allocs/op -BenchmarkMakeHandle 93480877 1.254 ns/op 0 B/op 0 allocs/op -BenchmarkMakeHandle 94588884 1.262 ns/op 0 B/op 0 allocs/op -BenchmarkMakeHandle 95845267 1.256 ns/op 0 B/op 0 allocs/op -BenchmarkSplitHandle 82966551 1.484 ns/op 0 B/op 0 allocs/op -BenchmarkSplitHandle 79651708 1.483 ns/op 0 B/op 0 allocs/op -BenchmarkSplitHandle 81150936 1.482 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupBadHandle 22669071 5.552 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupBadHandle 22133838 5.348 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupBadHandle 22622403 5.332 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookup 20291263 5.978 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookup 20009407 5.996 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookup 20205380 5.946 ns/op 0 B/op 0 allocs/op -BenchmarkTableCloseLive/resources=1 609157 196.4 ns/op 176 B/op 4 allocs/op -BenchmarkTableCloseLive/resources=1 519580 199.6 ns/op 176 B/op 4 allocs/op -BenchmarkTableCloseLive/resources=1 528421 199.2 ns/op 176 B/op 4 allocs/op -BenchmarkTableCloseLive/resources=64 38606 2983 ns/op 10080 B/op 73 allocs/op -BenchmarkTableCloseLive/resources=64 38953 3014 ns/op 10080 B/op 73 allocs/op -BenchmarkTableCloseLive/resources=64 39025 3036 ns/op 10080 B/op 73 allocs/op -BenchmarkTableCloseLive/resources=1024 2316 43820 ns/op 157408 B/op 1037 allocs/op -BenchmarkTableCloseLive/resources=1024 2516 44806 ns/op 157408 B/op 1037 allocs/op -BenchmarkTableCloseLive/resources=1024 2262 44362 ns/op 157408 B/op 1037 allocs/op -PASS -ok github.com/wago-org/net/internal/resource 3.756s +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkNewTable 10128804 22.40 ns/op 64 B/op 1 allocs/op +BenchmarkNewTable 10726358 22.37 ns/op 64 B/op 1 allocs/op +BenchmarkNewTable 10917172 22.22 ns/op 64 B/op 1 allocs/op +BenchmarkNewTable 10256907 22.87 ns/op 64 B/op 1 allocs/op +BenchmarkNewTable 10312850 22.70 ns/op 64 B/op 1 allocs/op +BenchmarkTableAddCloseHandle 15792211 14.94 ns/op 0 B/op 0 allocs/op +BenchmarkTableAddCloseHandle 16046125 14.83 ns/op 0 B/op 0 allocs/op +BenchmarkTableAddCloseHandle 16196155 14.83 ns/op 0 B/op 0 allocs/op +BenchmarkTableAddCloseHandle 16166457 14.96 ns/op 0 B/op 0 allocs/op +BenchmarkTableAddCloseHandle 15715803 15.11 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 59862510 4.061 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 57141536 4.103 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 59296579 4.126 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 56834865 4.162 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 57733581 4.189 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 182049518 1.278 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 207155720 1.150 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 182206792 1.316 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 182692167 1.314 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 203243084 1.249 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 182493392 1.315 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 181802852 1.325 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 182770380 1.327 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 178537820 1.342 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 175735923 1.354 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 38730790 5.555 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 43718704 5.877 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 40812876 5.877 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 38737230 5.919 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 41953890 5.707 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 37948617 6.323 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 38888097 6.302 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 37822137 6.276 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 38634216 6.300 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 38657656 6.341 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 37037470 6.705 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 36678672 6.845 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 35689408 6.626 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 36459280 6.623 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 37163955 6.488 ns/op 0 B/op 0 allocs/op +BenchmarkTableCloseLive/resources=1 1131043 210.0 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=1 1114209 210.5 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=1 1103056 222.8 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=1 961128 216.0 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=1 982972 216.2 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=64 59559 3953 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=64 59266 3995 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=64 61741 4012 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=64 57625 3909 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=64 64147 4136 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=1024 3723 58076 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableCloseLive/resources=1024 4050 59123 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableCloseLive/resources=1024 3889 57630 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableCloseLive/resources=1024 3607 55718 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableCloseLive/resources=1024 4269 55200 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableClosePreloaded/resources=1 5294208 46.22 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1 5433408 43.39 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1 5330169 44.29 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1 5167270 45.86 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1 5281578 45.27 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 239712 1084 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 244671 1082 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 241062 1031 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 237978 1058 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 242994 1040 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 15657 15641 ns/op 66 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 14972 15728 ns/op 66 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 15013 15514 ns/op 66 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 15645 15144 ns/op 66 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 15210 15624 ns/op 66 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/resource 19.073s +? github.com/wago-org/net/internal/tlslimits [no test files] +PASS +ok github.com/wago-org/net/ipv6 0.003s +PASS +ok github.com/wago-org/net/ipv6/register 0.003s +PASS +ok github.com/wago-org/net/linklocal4 0.003s +PASS +ok github.com/wago-org/net/linklocal4/register 0.003s +PASS +ok github.com/wago-org/net/mdns 0.003s +PASS +ok github.com/wago-org/net/mdns/register 0.003s +PASS +ok github.com/wago-org/net/ntp 0.003s +PASS +ok github.com/wago-org/net/ntp/register 0.003s PASS ok github.com/wago-org/net/register 0.003s PASS @@ -511,6 +1431,8 @@ ok github.com/wago-org/net/tcp 0.003s PASS ok github.com/wago-org/net/tcp/register 0.003s PASS -ok github.com/wago-org/net/udp 0.002s +ok github.com/wago-org/net/tls 0.003s +PASS +ok github.com/wago-org/net/udp 0.003s PASS ok github.com/wago-org/net/udp/register 0.003s diff --git a/benchmarks/benchstat.txt b/benchmarks/benchstat.txt index d820b30..1cc1051 100644 --- a/benchmarks/benchstat.txt +++ b/benchmarks/benchstat.txt @@ -2,885 +2,1596 @@ goos: linux goarch: amd64 cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics pkg: github.com/wago-org/net - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -GuestDNSPoll 94.35n ± ∞ ¹ 98.11n ± ∞ ¹ ~ (p=0.250 n=3+5) -GuestUDPPoll 116.3n ± ∞ ¹ 124.9n ± ∞ ¹ +7.39% (p=0.036 n=3+5) -GuestTCPPoll 112.5n ± ∞ ¹ 113.1n ± ∞ ¹ ~ (p=0.929 n=3+5) -geomean 107.3n 111.5n +3.93% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +GuestDNSPoll 131.9n ± ∞ ¹ 128.0n ± ∞ ¹ ~ (p=0.056 n=5) +GuestUDPPoll 151.4n ± ∞ ¹ 147.1n ± ∞ ¹ -2.84% (p=0.008 n=5) +GuestTCPPoll 147.7n ± ∞ ¹ 146.7n ± ∞ ¹ ~ (p=0.310 n=5) +geomean 143.4n 140.3n -2.16% ¹ need >= 6 samples for confidence interval at level 0.95 - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -GuestDNSPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -GuestUDPPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -GuestTCPPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +GuestDNSPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +GuestUDPPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +GuestTCPPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -GuestDNSPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -GuestUDPPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -GuestTCPPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +GuestDNSPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +GuestUDPPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +GuestTCPPoll 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean pkg: github.com/wago-org/net/internal/abi/core - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -Slice 1.718n ± ∞ ¹ 1.809n ± ∞ ¹ +5.30% (p=0.036 n=3+5) -Write 8.590n ± ∞ ¹ 9.194n ± ∞ ¹ +7.03% (p=0.036 n=3+5) -Zero 8.320n ± ∞ ¹ 8.742n ± ∞ ¹ +5.07% (p=0.036 n=3+5) -ReadUint32LE 1.280n ± ∞ ¹ 1.354n ± ∞ ¹ +5.78% (p=0.036 n=3+5) -WriteUint32LE 1.484n ± ∞ ¹ 1.569n ± ∞ ¹ +5.73% (p=0.036 n=3+5) -CheckRanges 5.377n ± ∞ ¹ 5.352n ± ∞ ¹ ~ (p=0.571 n=3+5) -Elements 1.913n ± ∞ ¹ 2.033n ± ∞ ¹ +6.27% (p=0.036 n=3+5) -EncodeAddressV1 11.70n ± ∞ ¹ 12.49n ± ∞ ¹ +6.75% (p=0.036 n=3+5) -DecodeAddressV1 22.40n ± ∞ ¹ 23.43n ± ∞ ¹ +4.60% (p=0.036 n=3+5) -EncodeEndpointV1 23.65n ± ∞ ¹ 25.64n ± ∞ ¹ +8.41% (p=0.036 n=3+5) -DecodeEndpointV1 39.94n ± ∞ ¹ 43.12n ± ∞ ¹ +7.96% (p=0.036 n=3+5) -EncodeHandleV1 1.490n ± ∞ ¹ 1.565n ± ∞ ¹ +5.03% (p=0.036 n=3+5) -DecodePollBudgetV1 2.541n ± ∞ ¹ 2.668n ± ∞ ¹ +5.00% (p=0.036 n=3+5) -EncodePollEventsV1/events=1 5.268n ± ∞ ¹ 5.334n ± ∞ ¹ ~ (p=0.571 n=3+5) -EncodePollEventsV1/events=16 26.85n ± ∞ ¹ 28.35n ± ∞ ¹ +5.59% (p=0.036 n=3+5) -EncodePollEventsV1/events=256 411.8n ± ∞ ¹ 433.4n ± ∞ ¹ +5.25% (p=0.036 n=3+5) -EncodePollResultV1 8.640n ± ∞ ¹ 8.972n ± ∞ ¹ ~ (p=0.071 n=3+5) -geomean 7.683n 8.081n +5.18% -¹ need >= 6 samples for confidence interval at level 0.95 - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -Slice 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Write 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Zero 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ReadUint32LE 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -WriteUint32LE 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CheckRanges 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Elements 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeAddressV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -DecodeAddressV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeEndpointV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -DecodeEndpointV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeHandleV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -DecodePollBudgetV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodePollEventsV1/events=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodePollEventsV1/events=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodePollEventsV1/events=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodePollResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ -¹ need >= 6 samples for confidence interval at level 0.95 -² all samples are equal -³ summaries must be >0 to compute geomean - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -Slice 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Write 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Zero 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ReadUint32LE 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -WriteUint32LE 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CheckRanges 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Elements 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeAddressV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -DecodeAddressV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeEndpointV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -DecodeEndpointV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeHandleV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -DecodePollBudgetV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodePollEventsV1/events=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodePollEventsV1/events=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodePollEventsV1/events=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodePollResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ -¹ need >= 6 samples for confidence interval at level 0.95 -² all samples are equal -³ summaries must be >0 to compute geomean - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/s │ B/s vs base │ -Write 111.0Gi ± ∞ ¹ 103.7Gi ± ∞ ¹ -6.57% (p=0.036 n=3+5) -Zero 114.6Gi ± ∞ ¹ 109.1Gi ± ∞ ¹ -4.83% (p=0.036 n=3+5) -geomean 112.8Gi 106.4Gi -5.70% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +Slice 1.840n ± ∞ ¹ 1.808n ± ∞ ¹ ~ (p=0.056 n=5) +Write 9.317n ± ∞ ¹ 9.175n ± ∞ ¹ ~ (p=0.151 n=5) +Zero 8.995n ± ∞ ¹ 8.894n ± ∞ ¹ ~ (p=0.421 n=5) +ReadUint32LE 1.361n ± ∞ ¹ 1.342n ± ∞ ¹ ~ (p=0.198 n=5) +WriteUint32LE 1.489n ± ∞ ¹ 1.517n ± ∞ ¹ ~ (p=0.056 n=5) +CheckRanges 5.093n ± ∞ ¹ 5.187n ± ∞ ¹ ~ (p=0.389 n=5) +Elements 2.029n ± ∞ ¹ 2.028n ± ∞ ¹ ~ (p=0.690 n=5) +EncodeAddressV1 12.53n ± ∞ ¹ 12.58n ± ∞ ¹ ~ (p=0.595 n=5) +DecodeAddressV1 23.28n ± ∞ ¹ 23.55n ± ∞ ¹ ~ (p=0.063 n=5) +EncodeEndpointV1 25.30n ± ∞ ¹ 25.74n ± ∞ ¹ +1.74% (p=0.008 n=5) +DecodeEndpointV1 42.74n ± ∞ ¹ 43.77n ± ∞ ¹ +2.41% (p=0.008 n=5) +EncodeHandleV1 1.546n ± ∞ ¹ 1.574n ± ∞ ¹ +1.81% (p=0.008 n=5) +DecodePollBudgetV1 2.625n ± ∞ ¹ 2.696n ± ∞ ¹ +2.70% (p=0.008 n=5) +EncodePollEventsV1/events=1 4.807n ± ∞ ¹ 4.942n ± ∞ ¹ +2.81% (p=0.008 n=5) +EncodePollEventsV1/events=16 27.87n ± ∞ ¹ 28.65n ± ∞ ¹ +2.80% (p=0.008 n=5) +EncodePollEventsV1/events=256 431.5n ± ∞ ¹ 435.5n ± ∞ ¹ +0.93% (p=0.016 n=5) +EncodePollResultV1 7.365n ± ∞ ¹ 7.416n ± ∞ ¹ +0.69% (p=0.008 n=5) +geomean 7.885n 7.955n +0.89% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +Slice 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Write 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Zero 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ReadUint32LE 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +WriteUint32LE 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CheckRanges 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Elements 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeAddressV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeAddressV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeEndpointV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeEndpointV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeHandleV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodePollBudgetV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodePollEventsV1/events=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodePollEventsV1/events=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodePollEventsV1/events=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodePollResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +Slice 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Write 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Zero 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ReadUint32LE 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +WriteUint32LE 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CheckRanges 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Elements 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeAddressV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeAddressV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeEndpointV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeEndpointV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeHandleV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodePollBudgetV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodePollEventsV1/events=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodePollEventsV1/events=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodePollEventsV1/events=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodePollResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +Write 102.4Gi ± ∞ ¹ 103.9Gi ± ∞ ¹ ~ (p=0.151 n=5) +Zero 106.0Gi ± ∞ ¹ 107.2Gi ± ∞ ¹ ~ (p=0.421 n=5) +geomean 104.2Gi 105.6Gi +1.34% +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/abi/dhcpv6 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +EncodeConfigurationV1 411.3n ± ∞ ¹ 412.1n ± ∞ ¹ ~ (p=0.222 n=5) ¹ need >= 6 samples for confidence interval at level 0.95 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +EncodeConfigurationV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +EncodeConfigurationV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + pkg: github.com/wago-org/net/internal/abi/dns - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -EncodeDNSNameV1 99.01n ± ∞ ¹ 39.18n ± ∞ ¹ -60.43% (p=0.036 n=3+5) -DecodeDNSNameV1 155.30n ± ∞ ¹ 94.42n ± ∞ ¹ -39.20% (p=0.036 n=3+5) -EncodeDNSQueryV1 205.60n ± ∞ ¹ 40.46n ± ∞ ¹ -80.32% (p=0.036 n=3+5) -DecodeDNSQueryV1 249.20n ± ∞ ¹ 95.13n ± ∞ ¹ -61.83% (p=0.036 n=3+5) -CheckDNSResolveV1 3.643n ± ∞ ¹ 3.794n ± ∞ ¹ +4.14% (p=0.036 n=3+5) -EncodeDNSRecordV1/A 215.80n ± ∞ ¹ 59.99n ± ∞ ¹ -72.20% (p=0.036 n=3+5) -EncodeDNSRecordV1/AAAA 224.00n ± ∞ ¹ 65.20n ± ∞ ¹ -70.89% (p=0.036 n=3+5) -EncodeDNSRecordV1/CNAME 381.70n ± ∞ ¹ 67.50n ± ∞ ¹ -82.32% (p=0.036 n=3+5) -DecodeDNSQueryV1InvalidTypes 2.455n ± ∞ ¹ -geomean 123.2n 31.98n -64.21% -¹ need >= 6 samples for confidence interval at level 0.95 - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -EncodeDNSNameV1 112.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -DecodeDNSNameV1 136.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=0.357 n=3+5) -EncodeDNSQueryV1 224.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -DecodeDNSQueryV1 248.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=0.357 n=3+5) -CheckDNSResolveV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeDNSRecordV1/A 224.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -EncodeDNSRecordV1/AAAA 224.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -EncodeDNSRecordV1/CNAME 416.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -DecodeDNSQueryV1InvalidTypes 0.000 ± ∞ ¹ -geomean ³ ? ³ ⁴ -¹ need >= 6 samples for confidence interval at level 0.95 -² all samples are equal -³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -EncodeDNSNameV1 2.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -DecodeDNSNameV1 3.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -EncodeDNSQueryV1 4.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -DecodeDNSQueryV1 5.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -CheckDNSResolveV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeDNSRecordV1/A 4.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -EncodeDNSRecordV1/AAAA 4.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -EncodeDNSRecordV1/CNAME 8.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -DecodeDNSQueryV1InvalidTypes 0.000 ± ∞ ¹ -geomean ³ ? ³ ⁴ -¹ need >= 6 samples for confidence interval at level 0.95 -² all samples are equal -³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +EncodeDNSNameV1 38.70n ± ∞ ¹ 40.28n ± ∞ ¹ +4.08% (p=0.008 n=5) +DecodeDNSNameV1 95.50n ± ∞ ¹ 98.09n ± ∞ ¹ ~ (p=0.222 n=5) +EncodeDNSQueryV1 74.06n ± ∞ ¹ 40.75n ± ∞ ¹ -44.98% (p=0.008 n=5) +DecodeDNSQueryV1 190.40n ± ∞ ¹ 95.42n ± ∞ ¹ -49.88% (p=0.008 n=5) +DecodeDNSQueryV1InvalidTypes 4.465n ± ∞ ¹ 2.460n ± ∞ ¹ -44.90% (p=0.008 n=5) +CheckDNSResolveV1 5.565n ± ∞ ¹ 3.821n ± ∞ ¹ -31.34% (p=0.008 n=5) +EncodeDNSRecordV1/A 70.51n ± ∞ ¹ 55.31n ± ∞ ¹ -21.56% (p=0.008 n=5) +EncodeDNSRecordV1/AAAA 66.21n ± ∞ ¹ 63.55n ± ∞ ¹ -4.02% (p=0.008 n=5) +EncodeDNSRecordV1/CNAME 67.04n ± ∞ ¹ 66.93n ± ∞ ¹ ~ (p=0.841 n=5) +geomean 41.98n 31.88n -24.08% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +EncodeDNSNameV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSNameV1 24.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeDNSQueryV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSQueryV1 24.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSQueryV1InvalidTypes 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CheckDNSResolveV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeDNSRecordV1/A 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeDNSRecordV1/AAAA 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeDNSRecordV1/CNAME 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean -pkg: github.com/wago-org/net/internal/abi/tcp - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -CheckListenV1 3.690n ± ∞ ¹ 3.899n ± ∞ ¹ +5.66% (p=0.036 n=3+5) -CheckCreateV1 3.609n ± ∞ ¹ 3.914n ± ∞ ¹ +8.45% (p=0.036 n=3+5) -CheckIOV1 3.666n ± ∞ ¹ 3.899n ± ∞ ¹ +6.36% (p=0.036 n=3+5) -EncodeStreamV1 42.44n ± ∞ ¹ 45.38n ± ∞ ¹ +6.93% (p=0.036 n=3+5) -EncodeIOResultV1 4.912n ± ∞ ¹ 5.161n ± ∞ ¹ +5.07% (p=0.036 n=3+5) -geomean 6.332n 6.743n +6.49% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +EncodeDNSNameV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSNameV1 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeDNSQueryV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSQueryV1 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSQueryV1InvalidTypes 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CheckDNSResolveV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeDNSRecordV1/A 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeDNSRecordV1/AAAA 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeDNSRecordV1/CNAME 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -CheckListenV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CheckCreateV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CheckIOV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeStreamV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeIOResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ +pkg: github.com/wago-org/net/internal/abi/tcp + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +CheckListenV1 4.016n ± ∞ ¹ 3.835n ± ∞ ¹ -4.51% (p=0.008 n=5) +CheckCreateV1 3.806n ± ∞ ¹ 3.829n ± ∞ ¹ ~ (p=1.000 n=5) +CheckIOV1 3.829n ± ∞ ¹ 3.855n ± ∞ ¹ ~ (p=1.000 n=5) +EncodeStreamV1 44.64n ± ∞ ¹ 45.19n ± ∞ ¹ +1.23% (p=0.032 n=5) +EncodeIOResultV1 5.215n ± ∞ ¹ 5.287n ± ∞ ¹ +1.38% (p=0.008 n=5) +geomean 6.712n 6.702n -0.15% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +CheckListenV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CheckCreateV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CheckIOV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeStreamV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeIOResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -CheckListenV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CheckCreateV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CheckIOV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeStreamV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -EncodeIOResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +CheckListenV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CheckCreateV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CheckIOV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeStreamV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +EncodeIOResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean pkg: github.com/wago-org/net/internal/abi/udp - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -EncodeReceiveResultV1 28.75n ± ∞ ¹ 30.46n ± ∞ ¹ +5.95% (p=0.036 n=3+5) -ValidReceiveFlagsV1 1.242n ± ∞ ¹ 1.317n ± ∞ ¹ +6.04% (p=0.036 n=3+5) -geomean 5.976n 6.334n +5.99% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +EncodeReceiveResultV1 30.81n ± ∞ ¹ 30.45n ± ∞ ¹ -1.17% (p=0.032 n=5) +ValidReceiveFlagsV1 1.188n ± ∞ ¹ 1.148n ± ∞ ¹ ~ (p=0.548 n=5) +geomean 6.050n 5.912n -2.27% ¹ need >= 6 samples for confidence interval at level 0.95 - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -EncodeReceiveResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ValidReceiveFlagsV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +EncodeReceiveResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ValidReceiveFlagsV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -EncodeReceiveResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ValidReceiveFlagsV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +EncodeReceiveResultV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ValidReceiveFlagsV1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -pkg: github.com/wago-org/net/internal/backend/lneto/core - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -NamespaceReadiness 17.02n ± ∞ ¹ 17.70n ± ∞ ¹ +4.00% (p=0.036 n=3+5) -UDPPortLeaseAcquireRelease 52.19n ± ∞ ¹ 38.89n ± ∞ ¹ -25.48% (p=0.036 n=3+5) -UDPPortLeaseRangeAcquireRelease 53.01n ± ∞ ¹ 40.43n ± ∞ ¹ -23.73% (p=0.036 n=3+5) -NamespaceTryServiceIdle 65.50n ± ∞ ¹ 67.39n ± ∞ ¹ +2.89% (p=0.036 n=3+5) -NamespaceTryServiceIngress 43.02n ± ∞ ¹ 46.30n ± ∞ ¹ +7.62% (p=0.036 n=3+5) -NamespaceTryServiceEgress 63.74n ± ∞ ¹ 67.29n ± ∞ ¹ +5.57% (p=0.036 n=3+5) -geomean 45.14n 42.44n -5.98% +pkg: github.com/wago-org/net/internal/backend/gotls + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +TLS13Handshake 1.465m ± ∞ ¹ 1.279m ± ∞ ¹ -12.74% (p=0.008 n=5) +ByteRingSteadyState 125.80n ± ∞ ¹ 70.48n ± ∞ ¹ -43.97% (p=0.008 n=5) +ProfileAuthorization 15.04n ± ∞ ¹ 14.83n ± ∞ ¹ ~ (p=0.310 n=5) +geomean 1.405µ 1.101µ -21.59% ¹ need >= 6 samples for confidence interval at level 0.95 - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -NamespaceReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -UDPPortLeaseAcquireRelease 16.00 ± ∞ ¹ 0.00 ± ∞ ¹ ~ (p=0.357 n=3+5) -UDPPortLeaseRangeAcquireRelease 16.00 ± ∞ ¹ 0.00 ± ∞ ¹ ~ (p=0.357 n=3+5) -NamespaceTryServiceIdle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -NamespaceTryServiceIngress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -NamespaceTryServiceEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ ? ³ ⁴ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +TLS13Handshake 379.2Ki ± ∞ ¹ 379.2Ki ± ∞ ¹ ~ (p=0.310 n=5) +ByteRingSteadyState 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ProfileAuthorization 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ -0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +TLS13Handshake 935.0 ± ∞ ¹ 934.0 ± ∞ ¹ ~ (p=1.000 n=5) +ByteRingSteadyState 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ProfileAuthorization 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ -0.04% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +ByteRingSteadyState 30.32Gi ± ∞ ¹ 54.12Gi ± ∞ ¹ +78.52% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/backend/lneto + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +DisabledNamespaceNew 2.914µ ± ∞ ¹ 2.322µ ± ∞ ¹ -20.32% (p=0.008 n=5) +DisabledNamespaceIdleEgress 63.86n ± ∞ ¹ 61.50n ± ∞ ¹ -3.70% (p=0.008 n=5) +DisabledSelectiveAdaptersNew 2.897µ ± ∞ ¹ 2.460µ ± ∞ ¹ -15.08% (p=0.008 n=5) +InoperableIPv6SelectiveAdaptersNew 2.730µ ± ∞ ¹ 2.234µ ± ∞ ¹ -18.17% (p=0.008 n=5) +geomean 1.101µ 941.2n -14.55% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +DisabledNamespaceNew 18.63Ki ± ∞ ¹ 18.63Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +DisabledNamespaceIdleEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DisabledSelectiveAdaptersNew 19.63Ki ± ∞ ¹ 19.63Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +InoperableIPv6SelectiveAdaptersNew 18.82Ki ± ∞ ¹ 18.82Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +DisabledNamespaceNew 22.00 ± ∞ ¹ 22.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +DisabledNamespaceIdleEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DisabledSelectiveAdaptersNew 24.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +InoperableIPv6SelectiveAdaptersNew 21.00 ± ∞ ¹ 21.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean +pkg: github.com/wago-org/net/internal/backend/lneto/core │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -NamespaceReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -UDPPortLeaseAcquireRelease 1.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -UDPPortLeaseRangeAcquireRelease 1.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -NamespaceTryServiceIdle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -NamespaceTryServiceIngress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -NamespaceTryServiceEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ ? ³ ⁴ + │ sec/op │ sec/op vs base │ +NamespaceReadiness 17.99n ± ∞ ¹ 17.45n ± ∞ ¹ -3.00% (p=0.008 n=5) +TCPPortLeaseAcquireRelease 41.49n ± ∞ ¹ 40.39n ± ∞ ¹ -2.65% (p=0.008 n=5) +UDPPortLeaseAcquireRelease 39.41n ± ∞ ¹ 39.14n ± ∞ ¹ ~ (p=0.690 n=5) +UDPPortLeaseRangeAcquireRelease 40.77n ± ∞ ¹ 41.03n ± ∞ ¹ ~ (p=0.341 n=5) +NamespaceTryServiceIdle 69.62n ± ∞ ¹ 67.35n ± ∞ ¹ -3.26% (p=0.016 n=5) +NamespaceTryServiceIngress 47.05n ± ∞ ¹ 47.53n ± ∞ ¹ ~ (p=0.690 n=5) +NamespaceTryServiceEgress 87.25n ± ∞ ¹ 83.20n ± ∞ ¹ -4.64% (p=0.008 n=5) +geomean 44.45n 43.64n -1.82% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +NamespaceReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPPortLeaseAcquireRelease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPPortLeaseAcquireRelease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPPortLeaseRangeAcquireRelease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +NamespaceTryServiceIdle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +NamespaceTryServiceIngress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +NamespaceTryServiceEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/s │ B/s vs base │ -NamespaceTryServiceIngress 1.386Gi ± ∞ ¹ 1.287Gi ± ∞ ¹ -7.08% (p=0.036 n=3+5) -NamespaceTryServiceEgress 957.6Mi ± ∞ ¹ 907.0Mi ± ∞ ¹ -5.28% (p=0.036 n=3+5) -geomean 1.138Gi 1.068Gi -6.19% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +NamespaceReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPPortLeaseAcquireRelease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPPortLeaseAcquireRelease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPPortLeaseRangeAcquireRelease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +NamespaceTryServiceIdle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +NamespaceTryServiceIngress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +NamespaceTryServiceEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +NamespaceTryServiceIngress 1.267Gi ± ∞ ¹ 1.254Gi ± ∞ ¹ ~ (p=0.690 n=5) +NamespaceTryServiceEgress 699.5Mi ± ∞ ¹ 733.6Mi ± ∞ ¹ +4.87% (p=0.008 n=5) +geomean 952.6Mi 970.6Mi +1.89% +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/backend/lneto/dhcpv4 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ClientLeaseSnapshot 96.16n ± ∞ ¹ 91.51n ± ∞ ¹ -4.84% (p=0.008 n=5) +IngressDHCPv4DiscoverKnownClient 225.7n ± ∞ ¹ 215.9n ± ∞ ¹ -4.34% (p=0.008 n=5) +IngressDHCPv4OfferWithoutLease 138.3n ± ∞ ¹ 135.8n ± ∞ ¹ ~ (p=0.087 n=5) +ClientKey 11.54n ± ∞ ¹ 11.32n ± ∞ ¹ ~ (p=0.198 n=5) +ServerClientIdentityCanonical 10.50n ± ∞ ¹ 10.60n ± ∞ ¹ +0.95% (p=0.008 n=5) +geomean 51.54n 50.30n -2.41% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ClientLeaseSnapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressDHCPv4DiscoverKnownClient 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressDHCPv4OfferWithoutLease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ClientKey 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ServerClientIdentityCanonical 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ClientLeaseSnapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressDHCPv4DiscoverKnownClient 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressDHCPv4OfferWithoutLease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ClientKey 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ServerClientIdentityCanonical 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + +pkg: github.com/wago-org/net/internal/backend/lneto/dhcpv6 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +InspectMessageReply 431.5n ± ∞ ¹ 435.3n ± ∞ ¹ +0.88% (p=0.048 n=5) +AdapterTryAcquireClose 830.0n ± ∞ ¹ 880.7n ± ∞ ¹ +6.11% (p=0.024 n=5) +geomean 598.5n 619.2n +3.46% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +InspectMessageReply 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryAcquireClose 5.891Ki ± ∞ ¹ 5.891Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +InspectMessageReply 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryAcquireClose 8.000 ± ∞ ¹ 8.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean pkg: github.com/wago-org/net/internal/backend/lneto/dns + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +BuildDNSQueryPacket 109.5n ± ∞ ¹ 109.7n ± ∞ ¹ ~ (p=0.690 n=5) +BuildDNSQueryPacketInto 88.67n ± ∞ ¹ 87.52n ± ∞ ¹ ~ (p=0.222 n=5) +DecodeDNSName 37.95n ± ∞ ¹ 35.71n ± ∞ ¹ -5.90% (p=0.008 n=5) +DecodeDNSNameInto 20.96n ± ∞ ¹ 19.70n ± ∞ ¹ -6.01% (p=0.008 n=5) +ParseDNSResponse 359.8n ± ∞ ¹ 351.8n ± ∞ ¹ -2.22% (p=0.032 n=5) +ParseDNSResponseShapes/cname_depth=0 196.7n ± ∞ ¹ 189.7n ± ∞ ¹ -3.56% (p=0.032 n=5) +ParseDNSResponseShapes/cname_depth=1 353.6n ± ∞ ¹ 350.8n ± ∞ ¹ ~ (p=0.310 n=5) +ParseDNSResponseShapes/cname_depth=4 879.2n ± ∞ ¹ 889.7n ± ∞ ¹ ~ (p=0.690 n=5) +SelectDNSAnswers 128.6n ± ∞ ¹ 128.6n ± ∞ ¹ ~ (p=1.000 n=5) +IngressDNSResponseMismatch 110.6n ± ∞ ¹ 110.9n ± ∞ ¹ ~ (p=0.841 n=5) +AdapterTryResolveClose 572.6n ± ∞ ¹ 568.2n ± ∞ ¹ ~ (p=0.198 n=5) +QueryTryNext 26.51n ± ∞ ¹ 26.52n ± ∞ ¹ ~ (p=1.000 n=5) +QueryReadiness 4.252n ± ∞ ¹ 4.263n ± ∞ ¹ ~ (p=0.310 n=5) +geomean 103.5n 102.0n -1.46% +¹ need >= 6 samples for confidence interval at level 0.95 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -BuildDNSQueryPacket 158.2n ± ∞ ¹ 100.2n ± ∞ ¹ -36.66% (p=0.036 n=3+5) -DecodeDNSName 96.24n ± ∞ ¹ 37.68n ± ∞ ¹ -60.85% (p=0.036 n=3+5) -ParseDNSResponse 1096.0n ± ∞ ¹ 352.8n ± ∞ ¹ -67.81% (p=0.036 n=3+5) -SelectDNSAnswers 445.7n ± ∞ ¹ 116.7n ± ∞ ¹ -73.82% (p=0.036 n=3+5) -AdapterTryResolveClose 837.7n ± ∞ ¹ 428.4n ± ∞ ¹ -48.86% (p=0.036 n=3+5) -QueryTryNext 90.56n ± ∞ ¹ 24.97n ± ∞ ¹ -72.43% (p=0.036 n=3+5) -QueryReadiness 4.065n ± ∞ ¹ 4.307n ± ∞ ¹ +5.95% (p=0.036 n=3+5) -BuildDNSQueryPacketInto 81.22n ± ∞ ¹ -DecodeDNSNameInto 22.02n ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=0 189.6n ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=1 347.2n ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=4 860.6n ± ∞ ¹ -geomean 156.4n 97.36n -56.14% -¹ need >= 6 samples for confidence interval at level 0.95 - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -BuildDNSQueryPacket 152.00 ± ∞ ¹ 96.00 ± ∞ ¹ ~ (p=0.357 n=3+5) -DecodeDNSName 56.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=0.357 n=3+5) -ParseDNSResponse 1048.00 ± ∞ ¹ 16.00 ± ∞ ¹ ~ (p=0.357 n=3+5) -SelectDNSAnswers 592.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -AdapterTryResolveClose 1.047Ki ± ∞ ¹ 1.375Ki ± ∞ ¹ +31.34% (p=0.036 n=3+5) -QueryTryNext 80.00 ± ∞ ¹ 0.00 ± ∞ ¹ ~ (p=0.357 n=3+5) -QueryReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -BuildDNSQueryPacketInto 0.000 ± ∞ ¹ -DecodeDNSNameInto 0.000 ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=0 0.000 ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=1 24.00 ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=4 96.00 ± ∞ ¹ -geomean ³ ? ³ ⁴ -¹ need >= 6 samples for confidence interval at level 0.95 -² all samples are equal -³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean + │ B/op │ B/op vs base │ +BuildDNSQueryPacket 96.00 ± ∞ ¹ 96.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +BuildDNSQueryPacketInto 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSName 24.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSNameInto 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ParseDNSResponse 16.00 ± ∞ ¹ 16.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +ParseDNSResponseShapes/cname_depth=0 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ParseDNSResponseShapes/cname_depth=1 24.00 ± ∞ ¹ 24.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +ParseDNSResponseShapes/cname_depth=4 96.00 ± ∞ ¹ 96.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +SelectDNSAnswers 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressDNSResponseMismatch 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryResolveClose 1.750Ki ± ∞ ¹ 1.750Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +QueryTryNext 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +QueryReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -BuildDNSQueryPacket 4.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -DecodeDNSName 5.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -ParseDNSResponse 37.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -SelectDNSAnswers 9.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -AdapterTryResolveClose 17.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -QueryTryNext 2.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -QueryReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -BuildDNSQueryPacketInto 0.000 ± ∞ ¹ -DecodeDNSNameInto 0.000 ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=0 0.000 ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=1 1.000 ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=4 4.000 ± ∞ ¹ -geomean ³ ? ³ ⁴ -¹ need >= 6 samples for confidence interval at level 0.95 -² all samples are equal -³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/s │ B/s vs base │ -ParseDNSResponse 170.6Mi ± ∞ ¹ 529.8Mi ± ∞ ¹ +210.63% (p=0.036 n=3+5) -ParseDNSResponseShapes/cname_depth=0 683.9Mi ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=1 521.9Mi ± ∞ ¹ -ParseDNSResponseShapes/cname_depth=4 383.4Mi ± ∞ ¹ -geomean 170.6Mi 518.9Mi +210.63% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +BuildDNSQueryPacket 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +BuildDNSQueryPacketInto 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSName 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +DecodeDNSNameInto 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ParseDNSResponse 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ParseDNSResponseShapes/cname_depth=0 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ParseDNSResponseShapes/cname_depth=1 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ParseDNSResponseShapes/cname_depth=4 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +SelectDNSAnswers 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressDNSResponseMismatch 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryResolveClose 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +QueryTryNext 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +QueryReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +ParseDNSResponse 519.5Mi ± ∞ ¹ 531.3Mi ± ∞ ¹ +2.26% (p=0.032 n=5) +ParseDNSResponseShapes/cname_depth=0 659.4Mi ± ∞ ¹ 683.8Mi ± ∞ ¹ +3.70% (p=0.032 n=5) +ParseDNSResponseShapes/cname_depth=1 512.4Mi ± ∞ ¹ 516.5Mi ± ∞ ¹ ~ (p=0.310 n=5) +ParseDNSResponseShapes/cname_depth=4 375.3Mi ± ∞ ¹ 370.9Mi ± ∞ ¹ ~ (p=0.690 n=5) +IngressDNSResponseMismatch 1.853Gi ± ∞ ¹ 1.848Gi ± ∞ ¹ ~ (p=0.841 n=5) +geomean 659.8Mi 666.7Mi +1.05% +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/backend/lneto/icmpv4 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +IngressEchoReply 52.82n ± ∞ ¹ 53.58n ± ∞ ¹ ~ (p=0.056 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +IngressEchoReply 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +IngressEchoReply 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/backend/lneto/ipv6 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +IngressLocked/accepted 10.67n ± ∞ ¹ 10.62n ± ∞ ¹ -0.47% (p=0.024 n=5) +IngressLocked/dropped 3.956n ± ∞ ¹ 3.979n ± ∞ ¹ ~ (p=0.206 n=5) +geomean 6.497n 6.501n +0.06% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +IngressLocked/accepted 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressLocked/dropped 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +IngressLocked/accepted 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressLocked/dropped 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + +pkg: github.com/wago-org/net/internal/backend/lneto/linklocal4 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +IngressUnrelatedARP 35.78n ± ∞ ¹ 35.87n ± ∞ ¹ ~ (p=0.690 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +IngressUnrelatedARP 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +IngressUnrelatedARP 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/backend/lneto/mdns + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +MDNSCancelClose/Query 801.1n ± ∞ ¹ 810.5n ± ∞ ¹ +1.17% (p=0.016 n=5) +MDNSCancelClose/Announcement 1.208µ ± ∞ ¹ 1.211µ ± ∞ ¹ ~ (p=0.548 n=5) +MDNSCanceledTerminal/Readiness 4.434n ± ∞ ¹ 4.397n ± ∞ ¹ ~ (p=0.730 n=5) +MDNSCanceledTerminal/TryNext 125.4n ± ∞ ¹ 126.4n ± ∞ ¹ ~ (p=0.548 n=5) +IngressQueryResponse 261.8n ± ∞ ¹ 261.8n ± ∞ ¹ ~ (p=0.889 n=5) +IngressAutomaticResponse 543.0n ± ∞ ¹ 542.0n ± ∞ ¹ ~ (p=0.730 n=5) +geomean 206.0n 206.4n +0.20% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +MDNSCancelClose/Query 4.500Ki ± ∞ ¹ 4.500Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +MDNSCancelClose/Announcement 2.336Ki ± ∞ ¹ 2.336Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +MDNSCanceledTerminal/Readiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +MDNSCanceledTerminal/TryNext 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressQueryResponse 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressAutomaticResponse 48.00 ± ∞ ¹ 48.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +MDNSCancelClose/Query 7.000 ± ∞ ¹ 7.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +MDNSCancelClose/Announcement 21.00 ± ∞ ¹ 21.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +MDNSCanceledTerminal/Readiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +MDNSCanceledTerminal/TryNext 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressQueryResponse 2.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressAutomaticResponse 2.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + +pkg: github.com/wago-org/net/internal/backend/lneto/ntp + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +IngressNTPOriginMismatch 55.83n ± ∞ ¹ 55.15n ± ∞ ¹ ~ (p=0.095 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +IngressNTPOriginMismatch 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +IngressNTPOriginMismatch 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +IngressNTPOriginMismatch 1.501Gi ± ∞ ¹ 1.520Gi ± ∞ ¹ ~ (p=0.095 n=5) ¹ need >= 6 samples for confidence interval at level 0.95 pkg: github.com/wago-org/net/internal/backend/lneto/tcp + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +AdapterNew 3.204µ ± ∞ ¹ 3.392µ ± ∞ ¹ +5.87% (p=0.008 n=5) +AdapterTryListenClose 406.0n ± ∞ ¹ 404.9n ± ∞ ¹ ~ (p=0.841 n=5) +AdapterTryConnectClose 791.3n ± ∞ ¹ 635.9n ± ∞ ¹ -19.64% (p=0.008 n=5) +OutboundStreamCountScaling/streams=1 1.127n ± ∞ ¹ 1.100n ± ∞ ¹ -2.40% (p=0.016 n=5) +OutboundStreamCountScaling/streams=16 1.123n ± ∞ ¹ 1.106n ± ∞ ¹ -1.51% (p=0.032 n=5) +OutboundStreamCountScaling/streams=256 1.119n ± ∞ ¹ 1.092n ± ∞ ¹ -2.41% (p=0.008 n=5) +IngressOwnedIPv4SYN 42.11n ± ∞ ¹ 41.42n ± ∞ ¹ -1.64% (p=0.008 n=5) +TCPStreamFinishConnect 6.098n ± ∞ ¹ 6.043n ± ∞ ¹ ~ (p=0.151 n=5) +TCPStreamReadiness 14.43n ± ∞ ¹ 14.32n ± ∞ ¹ -0.76% (p=0.008 n=5) +TCPListenerTryAcceptWouldBlock 23.89n ± ∞ ¹ 23.79n ± ∞ ¹ ~ (p=0.738 n=5) +TCPStreamRoundTrip 1.584µ ± ∞ ¹ 1.617µ ± ∞ ¹ ~ (p=0.063 n=5) +geomean 37.47n 36.64n -2.20% +¹ need >= 6 samples for confidence interval at level 0.95 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -AdapterTryListenClose 533.0n ± ∞ ¹ 413.6n ± ∞ ¹ -22.40% (p=0.036 n=3+5) -TCPStreamFinishConnect 5.414n ± ∞ ¹ 5.692n ± ∞ ¹ +5.13% (p=0.036 n=3+5) -TCPStreamReadiness 13.38n ± ∞ ¹ 14.27n ± ∞ ¹ +6.65% (p=0.036 n=3+5) -TCPListenerTryAcceptWouldBlock 22.20n ± ∞ ¹ 22.98n ± ∞ ¹ ~ (p=0.143 n=3+5) -TCPStreamRoundTrip 1.327µ ± ∞ ¹ 1.370µ ± ∞ ¹ ~ (p=0.143 n=3+5) -AdapterTryConnectClose 551.5n ± ∞ ¹ -OutboundStreamCountScaling/streams=1 1.767n ± ∞ ¹ -OutboundStreamCountScaling/streams=16 8.399n ± ∞ ¹ -OutboundStreamCountScaling/streams=256 116.2n ± ∞ ¹ -geomean 64.74n 46.45n -1.44% -¹ need >= 6 samples for confidence interval at level 0.95 - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -AdapterTryListenClose 1.750Ki ± ∞ ¹ 1.672Ki ± ∞ ¹ ~ (p=0.357 n=3+5) -TCPStreamFinishConnect 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TCPStreamReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TCPListenerTryAcceptWouldBlock 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TCPStreamRoundTrip 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -AdapterTryConnectClose 1.383Ki ± ∞ ¹ -OutboundStreamCountScaling/streams=1 0.000 ± ∞ ¹ -OutboundStreamCountScaling/streams=16 0.000 ± ∞ ¹ -OutboundStreamCountScaling/streams=256 0.000 ± ∞ ¹ -geomean ³ -0.91% ³ + │ B/op │ B/op vs base │ +AdapterNew 20.03Ki ± ∞ ¹ 20.03Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryListenClose 624.0 ± ∞ ¹ 624.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryConnectClose 1.102Ki ± ∞ ¹ 1.102Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +OutboundStreamCountScaling/streams=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +OutboundStreamCountScaling/streams=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +OutboundStreamCountScaling/streams=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressOwnedIPv4SYN 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPStreamFinishConnect 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPStreamReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPListenerTryAcceptWouldBlock 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPStreamRoundTrip 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -AdapterTryListenClose 11.000 ± ∞ ¹ 7.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -TCPStreamFinishConnect 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TCPStreamReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TCPListenerTryAcceptWouldBlock 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TCPStreamRoundTrip 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -AdapterTryConnectClose 6.000 ± ∞ ¹ -OutboundStreamCountScaling/streams=1 0.000 ± ∞ ¹ -OutboundStreamCountScaling/streams=16 0.000 ± ∞ ¹ -OutboundStreamCountScaling/streams=256 0.000 ± ∞ ¹ -geomean ³ -8.64% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +AdapterNew 38.00 ± ∞ ¹ 38.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryListenClose 3.000 ± ∞ ¹ 3.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryConnectClose 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +OutboundStreamCountScaling/streams=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +OutboundStreamCountScaling/streams=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +OutboundStreamCountScaling/streams=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressOwnedIPv4SYN 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPStreamFinishConnect 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPStreamReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPListenerTryAcceptWouldBlock 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TCPStreamRoundTrip 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/s │ B/s vs base │ -TCPStreamRoundTrip 46.01Mi ± ∞ ¹ 44.57Mi ± ∞ ¹ ~ (p=0.143 n=3+5) + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +IngressOwnedIPv4SYN 1.327Gi ± ∞ ¹ 1.349Gi ± ∞ ¹ +1.66% (p=0.008 n=5) +TCPStreamRoundTrip 38.54Mi ± ∞ ¹ 37.76Mi ± ∞ ¹ ~ (p=0.095 n=5) +geomean 228.8Mi 228.4Mi -0.20% ¹ need >= 6 samples for confidence interval at level 0.95 pkg: github.com/wago-org/net/internal/backend/lneto/udp + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +NewSocketDatagramQueues 477.3n ± ∞ ¹ 404.9n ± ∞ ¹ -15.17% (p=0.008 n=5) +AdapterTryBindClose 331.2n ± ∞ ¹ 325.1n ± ∞ ¹ ~ (p=0.095 n=5) +AdapterTryBindCloseZeroPayload 319.6n ± ∞ ¹ 316.7n ± ∞ ¹ -0.91% (p=0.008 n=5) +AdapterHasEgressScaling/sockets=1 1.571n ± ∞ ¹ 1.541n ± ∞ ¹ -1.91% (p=0.016 n=5) +AdapterHasEgressScaling/sockets=16 7.023n ± ∞ ¹ 7.065n ± ∞ ¹ ~ (p=0.421 n=5) +AdapterHasEgressScaling/sockets=256 239.8n ± ∞ ¹ 236.7n ± ∞ ¹ ~ (p=0.143 n=5) +IngressUDPDatagram 61.78n ± ∞ ¹ 61.66n ± ∞ ¹ ~ (p=1.000 n=5) +UDPSocketSendEgress 171.8n ± ∞ ¹ 171.2n ± ∞ ¹ ~ (p=0.095 n=5) +UDPSocketReceive 35.54n ± ∞ ¹ 35.01n ± ∞ ¹ -1.49% (p=0.008 n=5) +UDPSocketReadiness 4.970n ± ∞ ¹ 4.620n ± ∞ ¹ -7.04% (p=0.008 n=5) +UDPDatagramQueueRoundTrip 20.45n ± ∞ ¹ 20.62n ± ∞ ¹ ~ (p=0.111 n=5) +geomean 50.22n 48.85n -2.72% +¹ need >= 6 samples for confidence interval at level 0.95 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -AdapterTryBindClose 425.4n ± ∞ ¹ 279.7n ± ∞ ¹ -34.25% (p=0.036 n=3+5) -UDPSocketSendEgress 146.9n ± ∞ ¹ 144.1n ± ∞ ¹ ~ (p=0.286 n=3+5) -UDPSocketReceive 34.14n ± ∞ ¹ 35.61n ± ∞ ¹ +4.31% (p=0.036 n=3+5) -UDPSocketReadiness 4.437n ± ∞ ¹ 4.649n ± ∞ ¹ +4.78% (p=0.036 n=3+5) -UDPDatagramQueueRoundTrip 20.05n ± ∞ ¹ 20.18n ± ∞ ¹ ~ (p=0.500 n=3+5) -NewSocketDatagramQueues 347.2n ± ∞ ¹ -AdapterTryBindCloseZeroPayload 247.0n ± ∞ ¹ -AdapterHasEgressScaling/sockets=1 1.561n ± ∞ ¹ -AdapterHasEgressScaling/sockets=16 6.996n ± ∞ ¹ -AdapterHasEgressScaling/sockets=256 235.2n ± ∞ ¹ -geomean 45.25n 44.38n -6.63% -¹ need >= 6 samples for confidence interval at level 0.95 - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -AdapterTryBindClose 832.0 ± ∞ ¹ 640.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -UDPSocketSendEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -UDPSocketReceive 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -UDPSocketReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -UDPDatagramQueueRoundTrip 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -NewSocketDatagramQueues 4.875Ki ± ∞ ¹ -AdapterTryBindCloseZeroPayload 416.0 ± ∞ ¹ -AdapterHasEgressScaling/sockets=1 0.000 ± ∞ ¹ -AdapterHasEgressScaling/sockets=16 0.000 ± ∞ ¹ -AdapterHasEgressScaling/sockets=256 0.000 ± ∞ ¹ -geomean ³ -5.11% ³ -¹ need >= 6 samples for confidence interval at level 0.95 -² all samples are equal -³ summaries must be >0 to compute geomean - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -AdapterTryBindClose 12.000 ± ∞ ¹ 3.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -UDPSocketSendEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -UDPSocketReceive 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -UDPSocketReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -UDPDatagramQueueRoundTrip 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -NewSocketDatagramQueues 2.000 ± ∞ ¹ -AdapterTryBindCloseZeroPayload 2.000 ± ∞ ¹ -AdapterHasEgressScaling/sockets=1 0.000 ± ∞ ¹ -AdapterHasEgressScaling/sockets=16 0.000 ± ∞ ¹ -AdapterHasEgressScaling/sockets=256 0.000 ± ∞ ¹ -geomean ³ -24.21% ³ + │ B/op │ B/op vs base │ +NewSocketDatagramQueues 4.969Ki ± ∞ ¹ 4.969Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryBindClose 480.0 ± ∞ ¹ 480.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryBindCloseZeroPayload 480.0 ± ∞ ¹ 480.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterHasEgressScaling/sockets=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterHasEgressScaling/sockets=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterHasEgressScaling/sockets=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressUDPDatagram 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPSocketSendEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPSocketReceive 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPSocketReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPDatagramQueueRoundTrip 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/s │ B/s vs base │ -UDPSocketSendEgress 207.7Mi ± ∞ ¹ 211.8Mi ± ∞ ¹ ~ (p=0.393 n=3+5) -UDPSocketReceive 893.9Mi ± ∞ ¹ 857.0Mi ± ∞ ¹ -4.13% (p=0.036 n=3+5) -geomean 430.9Mi 426.1Mi -1.11% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +NewSocketDatagramQueues 3.000 ± ∞ ¹ 3.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryBindClose 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterTryBindCloseZeroPayload 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterHasEgressScaling/sockets=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterHasEgressScaling/sockets=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AdapterHasEgressScaling/sockets=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IngressUDPDatagram 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPSocketSendEgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPSocketReceive 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPSocketReadiness 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +UDPDatagramQueueRoundTrip 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean -pkg: github.com/wago-org/net/internal/guest - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -FromProgress 1.242n ± ∞ ¹ 1.303n ± ∞ ¹ +4.91% (p=0.036 n=3+5) -FromIOResult 1.682n ± ∞ ¹ 1.750n ± ∞ ¹ +4.04% (p=0.036 n=3+5) -FromError/semantic 48.900n ± ∞ ¹ 4.833n ± ∞ ¹ -90.12% (p=0.036 n=3+5) -FromError/shared 50.610n ± ∞ ¹ 2.490n ± ∞ ¹ -95.08% (p=0.036 n=3+5) -geomean 8.480n 2.289n -73.01% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +IngressUDPDatagram 494.0Mi ± ∞ ¹ 494.9Mi ± ∞ ¹ ~ (p=1.000 n=5) +UDPSocketSendEgress 177.6Mi ± ∞ ¹ 178.2Mi ± ∞ ¹ ~ (p=0.095 n=5) +UDPSocketReceive 858.7Mi ± ∞ ¹ 871.6Mi ± ∞ ¹ +1.50% (p=0.008 n=5) +geomean 422.3Mi 425.2Mi +0.68% ¹ need >= 6 samples for confidence interval at level 0.95 +pkg: github.com/wago-org/net/internal/binding/dhcpv4 │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -FromProgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -FromIOResult 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -FromError/semantic 8.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -FromError/shared 8.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -geomean ³ ? ³ ⁴ + │ sec/op │ sec/op vs base │ +ResultBindingReady 273.7n ± ∞ ¹ 267.8n ± ∞ ¹ -2.16% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ResultBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal -³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ResultBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/binding/dhcpv6 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ResultBindingReady 988.8n ± ∞ ¹ 962.8n ± ∞ ¹ -2.63% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ResultBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ResultBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/binding/dns + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +NextBindingReady 147.4n ± ∞ ¹ 139.8n ± ∞ ¹ -5.16% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +NextBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +NextBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/binding/icmpv4 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ResultBindingReady 117.9n ± ∞ ¹ 112.0n ± ∞ ¹ ~ (p=0.095 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ResultBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ResultBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +ResultBindingReady 2.023Gi ± ∞ ¹ 2.128Gi ± ∞ ¹ ~ (p=0.095 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/binding/icmpv6 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +EchoResultBindingReady 145.7n ± ∞ ¹ 145.1n ± ∞ ¹ ~ (p=0.952 n=5) +NeighborResultBindingReady 110.8n ± ∞ ¹ 113.5n ± ∞ ¹ +2.44% (p=0.008 n=5) +geomean 127.1n 128.3n +1.00% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +EchoResultBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +NeighborResultBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean 32.00 32.00 +0.00% +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +EchoResultBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +NeighborResultBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean 1.000 1.000 +0.00% +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +EchoResultBindingReady 1.636Gi ± ∞ ¹ 1.643Gi ± ∞ ¹ ~ (p=1.000 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/binding/ipv6 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ConfigurationBinding 133.8n ± ∞ ¹ 137.5n ± ∞ ¹ ~ (p=0.381 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ConfigurationBinding 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ConfigurationBinding 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/binding/linklocal4 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ResultBindingReady 105.2n ± ∞ ¹ 104.0n ± ∞ ¹ ~ (p=0.730 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ResultBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ResultBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/binding/mdns + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +NextBindingReady 163.7n ± ∞ ¹ 167.3n ± ∞ ¹ +2.20% (p=0.016 n=5) +FinishAnnouncementBindingReady 52.76n ± ∞ ¹ 52.49n ± ∞ ¹ ~ (p=0.548 n=5) +geomean 92.93n 93.71n +0.83% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +NextBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +FinishAnnouncementBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean 32.00 32.00 +0.00% +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +NextBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FinishAnnouncementBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean 1.000 1.000 +0.00% +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/binding/ntp + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ResultBindingReady 101.5n ± ∞ ¹ 105.4n ± ∞ ¹ +3.84% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ResultBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ResultBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/binding/tcp + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ReadBindingReady 76.24n ± ∞ ¹ 86.85n ± ∞ ¹ +13.92% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ReadBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ReadBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +ReadBindingReady 3.127Gi ± ∞ ¹ 2.745Gi ± ∞ ¹ -12.22% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/binding/udp + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ReceiveBindingReady 109.9n ± ∞ ¹ 115.6n ± ∞ ¹ +5.19% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ReceiveBindingReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ReceiveBindingReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +ReceiveBindingReady 2.170Gi ± ∞ ¹ 2.062Gi ± ∞ ¹ -4.97% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/guest │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -FromProgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -FromIOResult 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -FromError/semantic 1.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -FromError/shared 1.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -geomean ³ ? ³ ⁴ + │ sec/op │ sec/op vs base │ +PollReady 147.3n ± ∞ ¹ 149.3n ± ∞ ¹ ~ (p=0.095 n=5) +FromProgress 1.426n ± ∞ ¹ 1.340n ± ∞ ¹ -6.03% (p=0.008 n=5) +FromIOResult 1.513n ± ∞ ¹ 1.540n ± ∞ ¹ +1.78% (p=0.008 n=5) +FromError/semantic 4.772n ± ∞ ¹ 4.828n ± ∞ ¹ +1.17% (p=0.008 n=5) +FromError/shared 2.791n ± ∞ ¹ 2.692n ± ∞ ¹ ~ (p=1.000 n=5) +geomean 5.313n 5.254n -1.10% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +PollReady 32.00 ± ∞ ¹ 32.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +FromProgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FromIOResult 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FromError/semantic 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FromError/shared 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +PollReady 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FromProgress 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FromIOResult 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FromError/semantic 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FromError/shared 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean pkg: github.com/wago-org/net/internal/instance/core - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -ManagerAttachDetach 1.248µ ± ∞ ¹ 1.385µ ± ∞ ¹ +10.98% (p=0.036 n=3+5) -ManagerForInstance 4.023n ± ∞ ¹ 4.265n ± ∞ ¹ +6.02% (p=0.036 n=3+5) -StateWithLock 4.697n ± ∞ ¹ 4.916n ± ∞ ¹ +4.66% (p=0.036 n=3+5) -StatePollIdle 25.78n ± ∞ ¹ 26.22n ± ∞ ¹ +1.71% (p=0.036 n=3+5) -geomean 27.92n 29.54n +5.79% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ManagerAttachDetach 1.669µ ± ∞ ¹ 1.692µ ± ∞ ¹ +1.38% (p=0.016 n=5) +ManagerForInstance 4.146n ± ∞ ¹ 4.286n ± ∞ ¹ +3.38% (p=0.008 n=5) +StateWithLock 4.816n ± ∞ ¹ 4.901n ± ∞ ¹ +1.76% (p=0.008 n=5) +StatePollIdle 24.72n ± ∞ ¹ 24.89n ± ∞ ¹ +0.69% (p=0.008 n=5) +geomean 30.13n 30.67n +1.80% ¹ need >= 6 samples for confidence interval at level 0.95 - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -ManagerAttachDetach 17.73Ki ± ∞ ¹ 17.73Ki ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ManagerForInstance 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -StateWithLock 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -StatePollIdle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ManagerAttachDetach 18.27Ki ± ∞ ¹ 18.27Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +ManagerForInstance 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +StateWithLock 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +StatePollIdle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -ManagerAttachDetach 12.00 ± ∞ ¹ 12.00 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ManagerForInstance 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -StateWithLock 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -StatePollIdle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ManagerAttachDetach 14.00 ± ∞ ¹ 14.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +ManagerForInstance 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +StateWithLock 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +StatePollIdle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -pkg: github.com/wago-org/net/internal/instance/dns - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -ResolveClose 87.02n ± ∞ ¹ 91.04n ± ∞ ¹ +4.62% (p=0.036 n=3+5) -Next 135.10n ± ∞ ¹ 53.14n ± ∞ ¹ -60.67% (p=0.036 n=3+5) -Cancel 15.68n ± ∞ ¹ 16.11n ± ∞ ¹ ~ (p=0.571 n=3+5) -geomean 56.91n 42.72n -24.95% +pkg: github.com/wago-org/net/internal/instance/dhcpv4 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ResultReady 72.76n ± ∞ ¹ 74.77n ± ∞ ¹ +2.76% (p=0.032 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ResultReady 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² ¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ResultReady 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +pkg: github.com/wago-org/net/internal/instance/dns │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -ResolveClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Next 112.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -Cancel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ ? ³ ⁴ + │ sec/op │ sec/op vs base │ +ResolveClose 108.3n ± ∞ ¹ 101.3n ± ∞ ¹ -6.46% (p=0.008 n=5) +Next 57.31n ± ∞ ¹ 53.91n ± ∞ ¹ -5.93% (p=0.008 n=5) +Cancel 14.32n ± ∞ ¹ 14.32n ± ∞ ¹ ~ (p=0.968 n=5) +geomean 44.63n 42.76n -4.18% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ResolveClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Next 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Cancel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -ResolveClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Next 2.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -Cancel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ ? ³ ⁴ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ResolveClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Next 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Cancel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean -pkg: github.com/wago-org/net/internal/instance/tcp - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -Write 16.95n ± ∞ ¹ 17.45n ± ∞ ¹ +2.95% (p=0.036 n=3+5) -ConnectClose 81.50n ± ∞ ¹ 86.33n ± ∞ ¹ +5.93% (p=0.036 n=3+5) -Endpoints 44.02n ± ∞ ¹ 46.23n ± ∞ ¹ +5.02% (p=0.036 n=3+5) -FinishConnect 14.45n ± ∞ ¹ 15.33n ± ∞ ¹ +6.09% (p=0.036 n=3+5) -Read 16.76n ± ∞ ¹ 17.66n ± ∞ ¹ +5.37% (p=0.036 n=3+5) -ShutdownWrite 14.44n ± ∞ ¹ 15.30n ± ∞ ¹ +5.96% (p=0.036 n=3+5) -geomean 24.43n 25.70n +5.21% +pkg: github.com/wago-org/net/internal/instance/icmpv6 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +EchoResultReady 49.43n ± ∞ ¹ 50.01n ± ∞ ¹ ~ (p=0.421 n=5) ¹ need >= 6 samples for confidence interval at level 0.95 - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -Write 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ConnectClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Endpoints 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -FinishConnect 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Read 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ShutdownWrite 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +EchoResultReady 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +EchoResultReady 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +EchoResultReady 4.824Gi ± ∞ ¹ 4.767Gi ± ∞ ¹ ~ (p=0.421 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/instance/ipv6 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +Configuration 55.77n ± ∞ ¹ 56.91n ± ∞ ¹ ~ (p=1.000 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +Configuration 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +Configuration 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/instance/linklocal4 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ResultReady 47.77n ± ∞ ¹ 35.52n ± ∞ ¹ -25.64% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ResultReady 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ResultReady 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + +pkg: github.com/wago-org/net/internal/instance/mdns + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +InstanceMDNSOperations/Next 71.12n ± ∞ ¹ 65.93n ± ∞ ¹ -7.30% (p=0.008 n=5) +InstanceMDNSOperations/CancelQuery 15.83n ± ∞ ¹ 14.45n ± ∞ ¹ -8.72% (p=0.008 n=5) +InstanceMDNSOperations/FinishAnnouncement 16.72n ± ∞ ¹ 15.63n ± ∞ ¹ -6.52% (p=0.008 n=5) +InstanceMDNSOperations/CancelAnnouncement 14.99n ± ∞ ¹ 14.46n ± ∞ ¹ -3.54% (p=0.032 n=5) +geomean 23.05n 21.54n -6.54% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +InstanceMDNSOperations/Next 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +InstanceMDNSOperations/CancelQuery 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +InstanceMDNSOperations/FinishAnnouncement 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +InstanceMDNSOperations/CancelAnnouncement 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +InstanceMDNSOperations/Next 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +InstanceMDNSOperations/CancelQuery 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +InstanceMDNSOperations/FinishAnnouncement 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +InstanceMDNSOperations/CancelAnnouncement 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + +pkg: github.com/wago-org/net/internal/instance/tcp + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +Write 18.19n ± ∞ ¹ 17.26n ± ∞ ¹ -5.11% (p=0.008 n=5) +ConnectClose 110.9n ± ∞ ¹ 105.9n ± ∞ ¹ -4.51% (p=0.008 n=5) +Endpoints 48.24n ± ∞ ¹ 46.69n ± ∞ ¹ -3.21% (p=0.008 n=5) +FinishConnect 16.60n ± ∞ ¹ 15.30n ± ∞ ¹ -7.83% (p=0.008 n=5) +Read 88.44n ± ∞ ¹ 84.02n ± ∞ ¹ -5.00% (p=0.008 n=5) +ShutdownWrite 16.59n ± ∞ ¹ 15.33n ± ∞ ¹ -7.59% (p=0.008 n=5) +geomean 36.51n 34.48n -5.56% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +Write 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ConnectClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Endpoints 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FinishConnect 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Read 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ShutdownWrite 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -Write 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ConnectClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Endpoints 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -FinishConnect 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Read 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ShutdownWrite 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +Write 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ConnectClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Endpoints 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +FinishConnect 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Read 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ShutdownWrite 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean pkg: github.com/wago-org/net/internal/instance/udp - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -BindClose 80.98n ± ∞ ¹ 88.85n ± ∞ ¹ +9.72% (p=0.036 n=3+5) -Send 17.41n ± ∞ ¹ 18.29n ± ∞ ¹ +5.05% (p=0.036 n=3+5) -Receive 28.64n ± ∞ ¹ 30.11n ± ∞ ¹ +5.13% (p=0.036 n=3+5) -geomean 34.31n 36.58n +6.61% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +BindClose 110.8n ± ∞ ¹ 101.5n ± ∞ ¹ -8.39% (p=0.008 n=5) +Send 21.92n ± ∞ ¹ 19.32n ± ∞ ¹ -11.86% (p=0.008 n=5) +Receive 57.10n ± ∞ ¹ 47.65n ± ∞ ¹ -16.55% (p=0.008 n=5) +geomean 51.76n 45.38n -12.33% ¹ need >= 6 samples for confidence interval at level 0.95 - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -BindClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Send 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Receive 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +BindClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Send 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Receive 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -BindClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Send 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Receive 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +BindClose 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Send 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Receive 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean +pkg: github.com/wago-org/net/internal/mdnsname + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ValidCanonical 35.82n ± ∞ ¹ 34.56n ± ∞ ¹ -3.52% (p=0.008 n=5) +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ValidCanonical 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ValidCanonical 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal + pkg: github.com/wago-org/net/internal/namespace/core - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -EndpointValid 2.131n ± ∞ ¹ 2.233n ± ∞ ¹ +4.79% (p=0.036 n=3+5) -IOResultValid 1.686n ± ∞ ¹ 1.525n ± ∞ ¹ -9.55% (p=0.036 n=3+5) -ReadinessValid 1.243n ± ∞ ¹ 1.293n ± ∞ ¹ ~ (p=0.393 n=3+5) -ServiceReportValidResult 1.707n ± ∞ ¹ 1.750n ± ∞ ¹ +2.52% (p=0.036 n=3+5) -ResolveNamespaceService 8.930n ± ∞ ¹ 9.394n ± ∞ ¹ +5.20% (p=0.036 n=3+5) -ResolveNamespaceBase 4.171n ± ∞ ¹ 3.979n ± ∞ ¹ -4.60% (p=0.036 n=3+5) -geomean 2.564n 2.570n +0.24% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +EndpointValid 2.322n ± ∞ ¹ 2.197n ± ∞ ¹ -5.38% (p=0.008 n=5) +IOResultValid 1.381n ± ∞ ¹ 1.506n ± ∞ ¹ ~ (p=0.151 n=5) +ReadinessValid 1.163n ± ∞ ¹ 1.283n ± ∞ ¹ +10.32% (p=0.008 n=5) +ServiceReportValidResult 1.800n ± ∞ ¹ 1.720n ± ∞ ¹ -4.44% (p=0.008 n=5) +ComposeNamespace/empty 54.14n ± ∞ ¹ 50.90n ± ∞ ¹ -5.98% (p=0.008 n=5) +ComposeNamespace/single 61.32n ± ∞ ¹ 56.11n ± ∞ ¹ -8.50% (p=0.008 n=5) +ComposeNamespace/three 79.25n ± ∞ ¹ 74.82n ± ∞ ¹ -5.59% (p=0.008 n=5) +ComposeNamespace/overflow 88.21n ± ∞ ¹ 81.35n ± ∞ ¹ -7.78% (p=0.008 n=5) +ResolveNamespaceService 15.11n ± ∞ ¹ 14.18n ± ∞ ¹ -6.15% (p=0.008 n=5) +ResolveNamespaceBase 26.66n ± ∞ ¹ 20.80n ± ∞ ¹ -21.98% (p=0.008 n=5) +geomean 12.02n 11.41n -5.04% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +EndpointValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IOResultValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ReadinessValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ServiceReportValidResult 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ComposeNamespace/empty 576.0 ± ∞ ¹ 576.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +ComposeNamespace/single 576.0 ± ∞ ¹ 576.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +ComposeNamespace/three 576.0 ± ∞ ¹ 576.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +ComposeNamespace/overflow 576.0 ± ∞ ¹ 576.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +ResolveNamespaceService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ResolveNamespaceBase 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +EndpointValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +IOResultValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ReadinessValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ServiceReportValidResult 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ComposeNamespace/empty 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ComposeNamespace/single 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ComposeNamespace/three 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ComposeNamespace/overflow 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ResolveNamespaceService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ResolveNamespaceBase 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ +¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean + +pkg: github.com/wago-org/net/internal/namespace/dhcpv6 + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +NewName 87.58n ± ∞ ¹ 86.53n ± ∞ ¹ ~ (p=0.056 n=5) +NameValid 126.9n ± ∞ ¹ 126.0n ± ∞ ¹ -0.71% (p=0.024 n=5) +ConfigurationValid 349.6n ± ∞ ¹ 343.2n ± ∞ ¹ -1.83% (p=0.008 n=5) +geomean 157.2n 155.2n -1.25% ¹ need >= 6 samples for confidence interval at level 0.95 - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -EndpointValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -IOResultValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ReadinessValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ServiceReportValidResult 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ResolveNamespaceService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ResolveNamespaceBase 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +NewName 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +NameValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ConfigurationValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -EndpointValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -IOResultValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ReadinessValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ServiceReportValidResult 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ResolveNamespaceService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ResolveNamespaceBase 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +NewName 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +NameValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ConfigurationValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean pkg: github.com/wago-org/net/internal/namespace/dns - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -RequestValid 93.35n ± ∞ ¹ 29.52n ± ∞ ¹ -68.38% (p=0.036 n=3+5) -RecordValid 93.49n ± ∞ ¹ 30.18n ± ∞ ¹ -67.72% (p=0.036 n=3+5) -geomean 93.42n 29.85n -68.05% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +RequestValid 28.67n ± ∞ ¹ 29.48n ± ∞ ¹ ~ (p=0.151 n=5) +RecordValid 29.43n ± ∞ ¹ 29.83n ± ∞ ¹ ~ (p=0.151 n=5) +geomean 29.05n 29.65n +2.09% ¹ need >= 6 samples for confidence interval at level 0.95 - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -RequestValid 112.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -RecordValid 112.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -geomean 112.0 ? ² ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +RequestValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +RecordValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 -² summaries must be >0 to compute geomean -³ ratios must be >0 to compute geomean +² all samples are equal +³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -RequestValid 2.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -RecordValid 2.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -geomean 2.000 ? ² ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +RequestValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +RecordValid 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 -² summaries must be >0 to compute geomean -³ ratios must be >0 to compute geomean +² all samples are equal +³ summaries must be >0 to compute geomean pkg: github.com/wago-org/net/internal/packetlink - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -LinkTryEnqueueDequeue/bytes=64 24.57n ± ∞ ¹ 25.75n ± ∞ ¹ +4.80% (p=0.036 n=3+5) -LinkTryEnqueueDequeue/bytes=512 34.05n ± ∞ ¹ 34.66n ± ∞ ¹ ~ (p=0.214 n=3+5) -LinkTryEnqueueDequeue/bytes=1514 49.05n ± ∞ ¹ 51.53n ± ∞ ¹ +5.06% (p=0.036 n=3+5) -LinkTryFillDequeue 37.00n ± ∞ ¹ 39.06n ± ∞ ¹ +5.57% (p=0.036 n=3+5) -LinkSnapshot 11.80n ± ∞ ¹ 12.01n ± ∞ ¹ ~ (p=0.571 n=3+5) -geomean 28.23n 29.29n +3.79% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +LinkTryEnqueueDequeue/bytes=64 25.17n ± ∞ ¹ 25.40n ± ∞ ¹ ~ (p=0.333 n=5) +LinkTryEnqueueDequeue/bytes=512 34.98n ± ∞ ¹ 35.71n ± ∞ ¹ +2.09% (p=0.008 n=5) +LinkTryEnqueueDequeue/bytes=1514 51.19n ± ∞ ¹ 52.17n ± ∞ ¹ ~ (p=0.151 n=5) +LinkTryFillDequeue 38.76n ± ∞ ¹ 40.11n ± ∞ ¹ +3.48% (p=0.008 n=5) +LinkSnapshot 11.97n ± ∞ ¹ 12.28n ± ∞ ¹ +2.59% (p=0.008 n=5) +geomean 29.11n 29.75n +2.19% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +LinkTryEnqueueDequeue/bytes=64 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +LinkTryEnqueueDequeue/bytes=512 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +LinkTryEnqueueDequeue/bytes=1514 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +LinkTryFillDequeue 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +LinkSnapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -LinkTryEnqueueDequeue/bytes=64 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -LinkTryEnqueueDequeue/bytes=512 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -LinkTryEnqueueDequeue/bytes=1514 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -LinkTryFillDequeue 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -LinkSnapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +LinkTryEnqueueDequeue/bytes=64 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +LinkTryEnqueueDequeue/bytes=512 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +LinkTryEnqueueDequeue/bytes=1514 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +LinkTryFillDequeue 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +LinkSnapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -LinkTryEnqueueDequeue/bytes=64 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -LinkTryEnqueueDequeue/bytes=512 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -LinkTryEnqueueDequeue/bytes=1514 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -LinkTryFillDequeue 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -LinkSnapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/s │ B/s vs base │ +LinkTryEnqueueDequeue/bytes=64 2.368Gi ± ∞ ¹ 2.347Gi ± ∞ ¹ ~ (p=0.310 n=5) +LinkTryEnqueueDequeue/bytes=512 13.63Gi ± ∞ ¹ 13.35Gi ± ∞ ¹ -2.03% (p=0.008 n=5) +LinkTryEnqueueDequeue/bytes=1514 27.55Gi ± ∞ ¹ 27.03Gi ± ∞ ¹ ~ (p=0.151 n=5) +LinkTryFillDequeue 36.38Gi ± ∞ ¹ 35.15Gi ± ∞ ¹ -3.38% (p=0.008 n=5) +geomean 13.41Gi 13.14Gi -2.06% +¹ need >= 6 samples for confidence interval at level 0.95 + +pkg: github.com/wago-org/net/internal/plugin + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +HostStateAttached 10.50n ± ∞ ¹ 10.80n ± ∞ ¹ +2.86% (p=0.008 n=5) +HostStateUnattached 9.474n ± ∞ ¹ 9.780n ± ∞ ¹ ~ (p=0.151 n=5) +geomean 9.974n 10.28n +3.04% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +HostStateAttached 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +HostStateUnattached 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/s │ B/s vs base │ -LinkTryEnqueueDequeue/bytes=64 2.426Gi ± ∞ ¹ 2.315Gi ± ∞ ¹ -4.59% (p=0.036 n=3+5) -LinkTryEnqueueDequeue/bytes=512 14.01Gi ± ∞ ¹ 13.76Gi ± ∞ ¹ ~ (p=0.250 n=3+5) -LinkTryEnqueueDequeue/bytes=1514 28.75Gi ± ∞ ¹ 27.36Gi ± ∞ ¹ -4.82% (p=0.036 n=3+5) -LinkTryFillDequeue 38.11Gi ± ∞ ¹ 36.10Gi ± ∞ ¹ -5.28% (p=0.036 n=3+5) -geomean 13.89Gi 13.32Gi -4.12% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +HostStateAttached 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +HostStateUnattached 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean pkg: github.com/wago-org/net/internal/policy - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -Merge 421.7n ± ∞ ¹ 452.0n ± ∞ ¹ +7.19% (p=0.036 n=3+5) -Compile 587.6n ± ∞ ¹ 490.0n ± ∞ ¹ -16.61% (p=0.036 n=3+5) -PolicyCheckEndpoint 33.24n ± ∞ ¹ 34.63n ± ∞ ¹ +4.18% (p=0.036 n=3+5) -PolicyCheckDNS 134.70n ± ∞ ¹ 72.42n ± ∞ ¹ -46.24% (p=0.036 n=3+5) -PolicyCheckEndpointScaling/rules=1 19.24n ± ∞ ¹ -PolicyCheckEndpointScaling/rules=16 173.4n ± ∞ ¹ -PolicyCheckEndpointScaling/rules=256 2.753µ ± ∞ ¹ -geomean 182.5n 175.4n -15.88% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +Merge 476.2n ± ∞ ¹ 500.4n ± ∞ ¹ +5.08% (p=0.008 n=5) +Compile 528.8n ± ∞ ¹ 529.9n ± ∞ ¹ ~ (p=0.421 n=5) +PolicyCheckEndpoint 36.93n ± ∞ ¹ 37.53n ± ∞ ¹ +1.62% (p=0.016 n=5) +PolicyCheckEndpointScaling/rules=1 20.38n ± ∞ ¹ 20.12n ± ∞ ¹ ~ (p=0.397 n=5) +PolicyCheckEndpointScaling/rules=16 169.8n ± ∞ ¹ 170.8n ± ∞ ¹ ~ (p=0.167 n=5) +PolicyCheckEndpointScaling/rules=256 2.572µ ± ∞ ¹ 2.600µ ± ∞ ¹ ~ (p=0.635 n=5) +PolicyCheckDNS 75.40n ± ∞ ¹ 69.44n ± ∞ ¹ -7.90% (p=0.008 n=5) +geomean 180.5n 180.2n -0.15% ¹ need >= 6 samples for confidence interval at level 0.95 - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -Merge 1.109Ki ± ∞ ¹ 1.109Ki ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Compile 792.0 ± ∞ ¹ 616.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -PolicyCheckEndpoint 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -PolicyCheckDNS 112.0 ± ∞ ¹ 0.0 ± ∞ ¹ ~ (p=0.357 n=3+5) -PolicyCheckEndpointScaling/rules=1 0.000 ± ∞ ¹ -PolicyCheckEndpointScaling/rules=16 0.000 ± ∞ ¹ -PolicyCheckEndpointScaling/rules=256 0.000 ± ∞ ¹ -geomean ³ ? ³ ⁴ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +Merge 1.109Ki ± ∞ ¹ 1.109Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +Compile 680.0 ± ∞ ¹ 680.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckEndpoint 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckEndpointScaling/rules=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckEndpointScaling/rules=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckEndpointScaling/rules=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckDNS 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -Merge 16.00 ± ∞ ¹ 16.00 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Compile 17.00 ± ∞ ¹ 13.00 ± ∞ ¹ ~ (p=0.357 n=3+5) -PolicyCheckEndpoint 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -PolicyCheckDNS 2.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=0.357 n=3+5) -PolicyCheckEndpointScaling/rules=1 0.000 ± ∞ ¹ -PolicyCheckEndpointScaling/rules=16 0.000 ± ∞ ¹ -PolicyCheckEndpointScaling/rules=256 0.000 ± ∞ ¹ -geomean ³ ? ³ ⁴ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +Merge 16.00 ± ∞ ¹ 16.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +Compile 13.00 ± ∞ ¹ 13.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckEndpoint 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckEndpointScaling/rules=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckEndpointScaling/rules=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckEndpointScaling/rules=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +PolicyCheckDNS 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -⁴ ratios must be >0 to compute geomean pkg: github.com/wago-org/net/internal/quota - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -ReserveResourceRollback 44.02n ± ∞ ¹ 46.75n ± ∞ ¹ +6.20% (p=0.036 n=3+5) -ReserveResourceCommitRelease 60.65n ± ∞ ¹ 65.34n ± ∞ ¹ +7.73% (p=0.036 n=3+5) -WithService 20.90n ± ∞ ¹ 22.16n ± ∞ ¹ +6.03% (p=0.036 n=3+5) -Snapshot 11.69n ± ∞ ¹ 11.83n ± ∞ ¹ +1.20% (p=0.036 n=3+5) -AcquireResourceAndQueuedBytesRelease 28.90n ± ∞ ¹ -AcquireResourceParallel 30.81n ± ∞ ¹ -geomean 28.42n 29.89n +5.26% -¹ need >= 6 samples for confidence interval at level 0.95 - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -ReserveResourceRollback 80.00 ± ∞ ¹ 80.00 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ReserveResourceCommitRelease 88.00 ± ∞ ¹ 88.00 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -WithService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Snapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -AcquireResourceAndQueuedBytesRelease 0.000 ± ∞ ¹ -AcquireResourceParallel 0.000 ± ∞ ¹ -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +ReserveResourceRollback 106.90n ± ∞ ¹ 93.29n ± ∞ ¹ -12.73% (p=0.008 n=5) +ReserveResourceCommitRelease 126.0n ± ∞ ¹ 108.8n ± ∞ ¹ -13.65% (p=0.008 n=5) +AcquireResourceAndQueuedBytesRelease 69.22n ± ∞ ¹ 67.66n ± ∞ ¹ -2.25% (p=0.008 n=5) +AcquireResourceParallel 66.73n ± ∞ ¹ 64.50n ± ∞ ¹ -3.34% (p=0.008 n=5) +WithService 43.39n ± ∞ ¹ 42.72n ± ∞ ¹ -1.54% (p=0.008 n=5) +Snapshot 18.09n ± ∞ ¹ 13.36n ± ∞ ¹ -26.15% (p=0.008 n=5) +geomean 60.46n 54.17n -10.39% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +ReserveResourceRollback 224.0 ± ∞ ¹ 224.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +ReserveResourceCommitRelease 232.0 ± ∞ ¹ 232.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +AcquireResourceAndQueuedBytesRelease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AcquireResourceParallel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +WithService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Snapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -ReserveResourceRollback 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -ReserveResourceCommitRelease 2.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -WithService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -Snapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -AcquireResourceAndQueuedBytesRelease 0.000 ± ∞ ¹ -AcquireResourceParallel 0.000 ± ∞ ¹ -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +ReserveResourceRollback 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +ReserveResourceCommitRelease 2.000 ± ∞ ¹ 2.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AcquireResourceAndQueuedBytesRelease 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +AcquireResourceParallel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +WithService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +Snapshot 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean pkg: github.com/wago-org/net/internal/readiness - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -CoordinatorRegisterUnregister 36.42n ± ∞ ¹ 38.26n ± ∞ ¹ +5.05% (p=0.036 n=3+5) -CoordinatorTryPoll/registrations=1 27.47n ± ∞ ¹ 28.67n ± ∞ ¹ +4.37% (p=0.036 n=3+5) -CoordinatorTryPoll/registrations=16 177.8n ± ∞ ¹ 187.1n ± ∞ ¹ +5.23% (p=0.036 n=3+5) -CoordinatorTryPoll/registrations=256 2.608µ ± ∞ ¹ 2.725µ ± ∞ ¹ +4.49% (p=0.036 n=3+5) -CoordinatorTryPollService 27.48n ± ∞ ¹ 28.23n ± ∞ ¹ ~ (p=0.071 n=3+5) -CoordinatorTryPollParallel 186.5n ± ∞ ¹ -geomean 105.0n 119.7n +4.37% + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +CoordinatorRegisterUnregister 41.36n ± ∞ ¹ 38.25n ± ∞ ¹ -7.52% (p=0.008 n=5) +CoordinatorTryPoll/registrations=1 27.83n ± ∞ ¹ 27.52n ± ∞ ¹ -1.11% (p=0.008 n=5) +CoordinatorTryPoll/registrations=16 187.7n ± ∞ ¹ 185.1n ± ∞ ¹ -1.39% (p=0.008 n=5) +CoordinatorTryPoll/registrations=256 2.856µ ± ∞ ¹ 2.734µ ± ∞ ¹ -4.27% (p=0.008 n=5) +CoordinatorTryPollParallel 191.3n ± ∞ ¹ 184.1n ± ∞ ¹ -3.76% (p=0.008 n=5) +CoordinatorTryPollService 30.64n ± ∞ ¹ 30.83n ± ∞ ¹ ~ (p=0.841 n=5) +geomean 123.9n 120.3n -2.94% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +CoordinatorRegisterUnregister 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPoll/registrations=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPoll/registrations=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPoll/registrations=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPollParallel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPollService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 +² all samples are equal +³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -CoordinatorRegisterUnregister 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPoll/registrations=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPoll/registrations=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPoll/registrations=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPollService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPollParallel 0.000 ± ∞ ¹ -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +CoordinatorRegisterUnregister 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPoll/registrations=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPoll/registrations=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPoll/registrations=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPollParallel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +CoordinatorTryPollService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -CoordinatorRegisterUnregister 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPoll/registrations=1 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPoll/registrations=16 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPoll/registrations=256 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPollService 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -CoordinatorTryPollParallel 0.000 ± ∞ ¹ -geomean ³ +0.00% ³ +pkg: github.com/wago-org/net/internal/resource + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ sec/op │ sec/op vs base │ +NewTable 22.40n ± ∞ ¹ 23.06n ± ∞ ¹ +2.95% (p=0.008 n=5) +TableAddCloseHandle 14.94n ± ∞ ¹ 15.17n ± ∞ ¹ +1.54% (p=0.016 n=5) +TableLen 4.126n ± ∞ ¹ 4.151n ± ∞ ¹ ~ (p=0.421 n=5) +MakeHandle 1.278n ± ∞ ¹ 1.223n ± ∞ ¹ ~ (p=0.548 n=5) +SplitHandle 1.327n ± ∞ ¹ 1.323n ± ∞ ¹ ~ (p=0.548 n=5) +TableLookupBadHandle 5.877n ± ∞ ¹ 5.542n ± ∞ ¹ -5.70% (p=0.008 n=5) +TableLookup 6.302n ± ∞ ¹ 6.228n ± ∞ ¹ ~ (p=0.056 n=5) +TableLookupParallel 6.626n ± ∞ ¹ 6.552n ± ∞ ¹ ~ (p=0.151 n=5) +TableCloseLive/resources=1 216.0n ± ∞ ¹ 201.1n ± ∞ ¹ -6.90% (p=0.008 n=5) +TableCloseLive/resources=64 3.995µ ± ∞ ¹ 3.509µ ± ∞ ¹ -12.17% (p=0.008 n=5) +TableCloseLive/resources=1024 57.63µ ± ∞ ¹ 52.66µ ± ∞ ¹ -8.63% (p=0.008 n=5) +TableClosePreloaded/resources=1 45.27n ± ∞ ¹ 43.74n ± ∞ ¹ ~ (p=0.151 n=5) +TableClosePreloaded/resources=64 1.058µ ± ∞ ¹ 1.071µ ± ∞ ¹ ~ (p=0.548 n=5) +TableClosePreloaded/resources=1024 15.62µ ± ∞ ¹ 15.39µ ± ∞ ¹ ~ (p=0.151 n=5) +geomean 64.46n 62.61n -2.86% +¹ need >= 6 samples for confidence interval at level 0.95 + + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ B/op │ B/op vs base │ +NewTable 64.00 ± ∞ ¹ 64.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableAddCloseHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableLen 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +MakeHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +SplitHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableLookupBadHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableLookup 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableLookupParallel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableCloseLive/resources=1 176.0 ± ∞ ¹ 176.0 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableCloseLive/resources=64 9.719Ki ± ∞ ¹ 9.719Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +TableCloseLive/resources=1024 151.7Ki ± ∞ ¹ 151.7Ki ± ∞ ¹ ~ (p=1.000 n=5) ² +TableClosePreloaded/resources=1 64.00 ± ∞ ¹ 64.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableClosePreloaded/resources=64 64.00 ± ∞ ¹ 64.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableClosePreloaded/resources=1024 66.00 ± ∞ ¹ 66.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean -pkg: github.com/wago-org/net/internal/resource - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ sec/op │ sec/op vs base │ -NewTable 22.33n ± ∞ ¹ 23.71n ± ∞ ¹ +6.18% (p=0.036 n=3+5) -TableAddCloseHandle 12.34n ± ∞ ¹ 12.73n ± ∞ ¹ +3.16% (p=0.036 n=3+5) -TableLen 3.999n ± ∞ ¹ 4.154n ± ∞ ¹ +3.88% (p=0.036 n=3+5) -MakeHandle 1.256n ± ∞ ¹ 1.262n ± ∞ ¹ ~ (p=0.821 n=3+5) -SplitHandle 1.483n ± ∞ ¹ 1.325n ± ∞ ¹ -10.65% (p=0.036 n=3+5) -TableLookupBadHandle 5.348n ± ∞ ¹ 5.481n ± ∞ ¹ ~ (p=0.500 n=3+5) -TableLookup 5.978n ± ∞ ¹ 6.128n ± ∞ ¹ +2.51% (p=0.036 n=3+5) -TableCloseLive/resources=1 199.2n ± ∞ ¹ 203.9n ± ∞ ¹ +2.36% (p=0.036 n=3+5) -TableCloseLive/resources=64 3.014µ ± ∞ ¹ 3.204µ ± ∞ ¹ +6.30% (p=0.036 n=3+5) -TableCloseLive/resources=1024 44.36µ ± ∞ ¹ 46.74µ ± ∞ ¹ +5.35% (p=0.036 n=3+5) -TableLookupParallel 6.150n ± ∞ ¹ -geomean 33.44n 29.21n +2.09% -¹ need >= 6 samples for confidence interval at level 0.95 - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ B/op │ B/op vs base │ -NewTable 64.00 ± ∞ ¹ 64.00 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableAddCloseHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableLen 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -MakeHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -SplitHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableLookupBadHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableLookup 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableCloseLive/resources=1 176.0 ± ∞ ¹ 176.0 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableCloseLive/resources=64 9.844Ki ± ∞ ¹ 9.844Ki ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableCloseLive/resources=1024 153.7Ki ± ∞ ¹ 153.7Ki ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableLookupParallel 0.000 ± ∞ ¹ -geomean ³ +0.00% ³ -¹ need >= 6 samples for confidence interval at level 0.95 -² all samples are equal -³ summaries must be >0 to compute geomean - - │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ - │ allocs/op │ allocs/op vs base │ -NewTable 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableAddCloseHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableLen 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -MakeHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -SplitHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableLookupBadHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableLookup 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableCloseLive/resources=1 4.000 ± ∞ ¹ 4.000 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableCloseLive/resources=64 73.00 ± ∞ ¹ 73.00 ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableCloseLive/resources=1024 1.037k ± ∞ ¹ 1.037k ± ∞ ¹ ~ (p=1.000 n=3+5) ² -TableLookupParallel 0.000 ± ∞ ¹ -geomean ³ +0.00% ³ + │ benchmarks/baseline.txt │ benchmarks/candidate.txt │ + │ allocs/op │ allocs/op vs base │ +NewTable 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableAddCloseHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableLen 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +MakeHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +SplitHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableLookupBadHandle 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableLookup 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableLookupParallel 0.000 ± ∞ ¹ 0.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableCloseLive/resources=1 3.000 ± ∞ ¹ 3.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableCloseLive/resources=64 72.00 ± ∞ ¹ 72.00 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableCloseLive/resources=1024 1.036k ± ∞ ¹ 1.036k ± ∞ ¹ ~ (p=1.000 n=5) ² +TableClosePreloaded/resources=1 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableClosePreloaded/resources=64 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +TableClosePreloaded/resources=1024 1.000 ± ∞ ¹ 1.000 ± ∞ ¹ ~ (p=1.000 n=5) ² +geomean ³ +0.00% ³ ¹ need >= 6 samples for confidence interval at level 0.95 ² all samples are equal ³ summaries must be >0 to compute geomean diff --git a/benchmarks/candidate-summary.md b/benchmarks/candidate-summary.md index e382dc3..63944e3 100644 --- a/benchmarks/candidate-summary.md +++ b/benchmarks/candidate-summary.md @@ -1,121 +1,34 @@ -# Candidate performance and validation summary - -This summary compares the checked-in `benchmarks/baseline.txt` with the current -optimized `benchmarks/candidate.txt`, captured on July 12, 2026. The candidate -uses five 200 ms samples with `GOMAXPROCS=1`; the baseline uses three 100 ms -samples. Both benchmark captures use Go 1.24.4 on Linux/amd64 and an AMD Ryzen 7 -8845HS. `benchmarks/benchstat.txt` contains the comparison after removing capture -metadata that would otherwise make benchstat treat the files as separate -configurations. - -Because the baseline has only three samples, its confidence intervals are not -strong. Allocation counts and large timing changes are more reliable than small -single-digit timing differences. - -## High-impact results - -| Package / path | Baseline | Candidate median | Time change | Allocation change | -|---|---:|---:|---:|---:| -| DNS response parse | 1,096 ns | 353 ns | **-67.8%** | 1,048 B / 37 → **16 B / 1** | -| DNS answer selection | 446 ns | 117 ns | **-73.8%** | 592 B / 9 → **0 / 0** | -| DNS request validation | 93.4 ns | 29.5 ns | **-68.4%** | 112 B / 2 → **0 / 0** | -| DNS record validation | 93.5 ns | 30.2 ns | **-67.7%** | 112 B / 2 → **0 / 0** | -| Policy DNS check | 135 ns | 72.4 ns | **-46.2%** | 112 B / 2 → **0 / 0** | -| DNS wire-name decode | 96.2 ns | 37.7 ns | **-60.9%** | 56 B / 5 → **24 B / 1** | -| DNS query packet build | 158 ns | 100 ns | **-36.7%** | 152 B / 4 → **96 B / 1** | -| Caller-owned DNS query packet build | — | 81.2 ns | new path | **0 / 0** | -| DNS query create/close | 838 ns | 428 ns | **-48.9%** | 1,072 B / 17 → **1,408 B / 1** | -| DNS ABI query encode | 206 ns | 40.5 ns | **-80.3%** | 224 B / 4 → **0 / 0** | -| DNS ABI CNAME record encode | 382 ns | 67.5 ns | **-82.3%** | 416 B / 8 → **0 / 0** | -| Guest semantic error mapping | 48.9 ns | 4.83 ns | **-90.1%** | 8 B / 1 → **0 / 0** | -| Guest shared-error mapping | 50.6 ns | 2.49 ns | **-95.1%** | 8 B / 1 → **0 / 0** | -| UDP port lease | 52.2 ns | 38.9 ns | **-25.5%** | 16 B / 1 → **0 / 0** | -| UDP bind/create/close | 425 ns | 280 ns | **-34.3%** | 832 B / 12 → **640 B / 3** | -| TCP listener create/close | 533 ns | 414 ns | **-22.4%** | 1,792 B / 11 → **1,712 B / 7** | - -The DNS create/close path now performs one allocation rather than 17 and is about -half the latency, but the single escaping `dnsQuery` is larger because it embeds -the maximum query packet and eight-record inline storage. This increases measured -bytes/op by 336 B. The object retains unique lifetime identity and is not pooled -or reanimated. - -## Focused new benchmarks - -The full sweep and consolidated `focused-verification.txt` capture record these -new paths: - -| Benchmark | Measured result | -|---|---:| -| Embedded resource + queued-byte quota charge | 28.9 ns, 0 B, 0 allocs | -| Parallel embedded resource charge, `GOMAXPROCS=1` | 30.4 ns, 0 B, 0 allocs | -| Parallel embedded resource charge, `GOMAXPROCS=8` | 85.7 ns, 0 B, 0 allocs | -| Shared UDP receive/transmit queue allocation, focused | 371 ns, 4,992 B, 2 allocs | -| UDP zero-payload bind/close | 247 ns, 416 B, 2 allocs | -| DNS response, no CNAME | 190 ns, 0 B, 0 allocs | -| DNS response, one CNAME | 347 ns, 24 B, 1 alloc | -| DNS response, four CNAMEs | 861 ns, 96 B, 4 allocs | -| Policy endpoint check, 256 rules | 2.66 µs, 0 allocs | -| UDP egress scan, 256 sockets | 238 ns, 0 allocs | -| TCP outbound stream scan, 256 streams | 117 ns, 0 allocs | -| Parallel readiness poll, `GOMAXPROCS=1` | 186 ns, 0 allocs | -| Parallel readiness poll, `GOMAXPROCS=8` | 202 ns, 0 allocs | -| Parallel resource lookup, `GOMAXPROCS=1` | 6.19 ns, 0 allocs | -| Parallel resource lookup, `GOMAXPROCS=8` | 24.7 ns, 0 allocs | - -The DNS shape results show the remaining parser allocation rule directly: the -no-alias response is allocation-free, while each distinct retained non-request -name currently contributes one string allocation. Repeated uses of the same name -are interned in bounded reusable scratch. - -## Protected TCP steady-state paths - -An initial ad hoc sweep produced order-sensitive TCP timing noise. The final -candidate was recaptured with the repository's official benchmark script, and a -dedicated ten-sample, 500 ms rerun retained in -`benchmarks/focused-verification.txt` independently checked the same paths: - -| TCP benchmark | Baseline | Focused rerun median | -|---|---:|---:| -| Finish connect | 5.41 ns | 5.56 ns | -| Readiness | 13.4 ns | 14.0 ns | -| Accept would-block | 22.2 ns | 22.3 ns | -| Established 64-byte round trip | 1.327 µs | 1.356 µs | - -All four focused paths remained at zero allocations. The final official full -sweep measured 5.69 ns, 14.3 ns, 23.0 ns, and 1.370 µs respectively, also close -to baseline and without the earlier ad hoc anomaly. - -The focused manager rerun retained in `benchmarks/focused-verification.txt` -measured attach/detach around 1.35 µs with the allocation footprint unchanged at -18,152 B / 12 allocations. Other manager lookup, lock, and idle-poll paths were -near the baseline and allocation-free. - -## Validation run for this candidate - -The following commands completed successfully after formatting the modified Go -files: - -- focused tests for DNS name/namespace/ABI/backend, policy, quota, lneto core, - UDP, TCP, guest mapping, readiness, resources, and instance core; -- `go test ./...`; -- `go vet ./...`; -- `go test -race` for the focused packages and the complete `./...` package set; -- the complete benchmark sweep, focused DNS/creation/scaling benchmarks, and - dedicated TCP, manager, UDP zero-payload, and multi-core parallel reruns. - -## Remaining measured caveats - -- DNS response parsing still allocates once per distinct retained non-request - decoded name. It is allocation-free for responses whose retained owner is the - request name and has no distinct CNAME target. -- DNS query creation is down to one allocation, but the embedded query object is - 1,408 B/op in the tested eight-record configuration, larger than the aggregate - baseline byte count despite far fewer allocations and lower latency. -- Normal UDP bind/close still allocates the socket and two shared queue backing - objects. Zero-payload UDP avoids payload backing and measured two allocations. -- TCP outbound creation measured 1,416 B / 6 allocations. Embedded quota charges - removed quota-token allocations, but the stream, lneto connection, and buffer - storage retain independent lifetimes. -- Single-digit timing changes in unrelated ABI, readiness, packet-link, and - manager microbenchmarks are within the run-to-run drift visible across these - captures and are not used to justify architectural lock or policy changes. +# TLS-aware candidate comparison + +`benchmarks/candidate.txt` is an independent second capture of the same clean +commit, toolchain, machine, and five-by-200 ms single-CPU profile as the refreshed +TLS-aware `benchmarks/baseline.txt`. `benchmarks/benchstat.txt` contains the full +comparison generated with `golang.org/x/perf/cmd/benchstat` after ignoring only +capture metadata fields that intentionally differ. + +Both captures were taken on July 20, 2026 with Go 1.24.4 on Linux/amd64 and an +AMD Ryzen 7 8845HS. They are repeatability evidence, not before/after evidence +for a source change. + +## Representative medians + +| Path | Baseline | Candidate | Allocation result | +|---|---:|---:|---:| +| TLS 1.3 client handshake | 1.465 ms | 1.279 ms | 388,334/935 → 388,317/934 B/allocs | +| TLS fixed byte-ring steady state | 125.8 ns | 70.48 ns | 0/0 in both | +| TLS profile authorization | 15.04 ns | 14.83 ns | 0/0 in both | +| Shared TCP local-port lease | 41.49 ns | 40.39 ns | 0/0 in both | +| Live TCP round trip | 1.584 µs | 1.617 µs | 0/0 in both | +| TCP adapter connect/close | 791.3 ns | 635.9 ns | 1,128 B / 4 allocs in both | + +The handshake and fixed-ring timing spread demonstrates why the repository does +not pin exact TLS latency. Standard-library cryptography, worker scheduling, +CPU frequency, and cache state affect these microbenchmarks. The allocation +classification is stable across both captures: repository-owned fixed rings, +profile authorization, shared TCP-port leases, and the live TCP data path remain +allocation-free. + +No materially different hardware was used, and neither capture is represented +as hosted-runner or production-signoff evidence. Future release comparisons +should retain the same Go version, CPU class, power policy, sample count, +benchmark duration, and `GOMAXPROCS=1` setting. diff --git a/benchmarks/candidate.txt b/benchmarks/candidate.txt index 3f1c392..d1167d1 100644 --- a/benchmarks/candidate.txt +++ b/benchmarks/candidate.txt @@ -1,6 +1,6 @@ wago-net performance baseline -source_head: fa8f1809d65be43ac8e1e3d65f704ba40a488a2d -source_tree: modified +source_head: 97b2bfca08df8d3e154bf7b4bb2cc932ec359ca8 +source_tree: clean go: go version go1.24.4 linux/amd64 goos: linux goarch: amd64 @@ -14,843 +14,1425 @@ goos: linux goarch: amd64 pkg: github.com/wago-org/net cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkGuestDNSPoll 2426096 97.23 ns/op 0 B/op 0 allocs/op -BenchmarkGuestDNSPoll 2447854 98.11 ns/op 0 B/op 0 allocs/op -BenchmarkGuestDNSPoll 2459299 98.02 ns/op 0 B/op 0 allocs/op -BenchmarkGuestDNSPoll 2373412 99.37 ns/op 0 B/op 0 allocs/op -BenchmarkGuestDNSPoll 2449258 99.21 ns/op 0 B/op 0 allocs/op -BenchmarkGuestUDPPoll 1949077 124.1 ns/op 0 B/op 0 allocs/op -BenchmarkGuestUDPPoll 1930394 125.3 ns/op 0 B/op 0 allocs/op -BenchmarkGuestUDPPoll 1937787 124.9 ns/op 0 B/op 0 allocs/op -BenchmarkGuestUDPPoll 1932532 124.9 ns/op 0 B/op 0 allocs/op -BenchmarkGuestUDPPoll 1913238 124.7 ns/op 0 B/op 0 allocs/op -BenchmarkGuestTCPPoll 2110326 113.6 ns/op 0 B/op 0 allocs/op -BenchmarkGuestTCPPoll 2095293 110.5 ns/op 0 B/op 0 allocs/op -BenchmarkGuestTCPPoll 2101322 113.1 ns/op 0 B/op 0 allocs/op -BenchmarkGuestTCPPoll 2130938 112.9 ns/op 0 B/op 0 allocs/op -BenchmarkGuestTCPPoll 2140106 113.6 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net 4.813s +BenchmarkGuestDNSPoll 1850047 130.9 ns/op 0 B/op 0 allocs/op +BenchmarkGuestDNSPoll 1868154 127.8 ns/op 0 B/op 0 allocs/op +BenchmarkGuestDNSPoll 1886964 128.0 ns/op 0 B/op 0 allocs/op +BenchmarkGuestDNSPoll 1890321 128.0 ns/op 0 B/op 0 allocs/op +BenchmarkGuestDNSPoll 1890765 126.8 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1623774 147.1 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1468098 147.1 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1630869 147.5 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1633092 146.8 ns/op 0 B/op 0 allocs/op +BenchmarkGuestUDPPoll 1630807 146.7 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1668854 144.6 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1631157 145.3 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1636174 148.6 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1622508 147.5 ns/op 0 B/op 0 allocs/op +BenchmarkGuestTCPPoll 1636328 146.7 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net 5.098s PASS ok github.com/wago-org/net/compat 0.003s PASS +ok github.com/wago-org/net/dhcpv4 0.003s +PASS +ok github.com/wago-org/net/dhcpv4/register 0.003s +PASS +ok github.com/wago-org/net/dhcpv6 0.003s +PASS +ok github.com/wago-org/net/dhcpv6/register 0.003s +PASS ok github.com/wago-org/net/dns 0.003s PASS -ok github.com/wago-org/net/dns/register 0.003s +ok github.com/wago-org/net/dns/register 0.004s +PASS +ok github.com/wago-org/net/icmpv4 0.003s +PASS +ok github.com/wago-org/net/icmpv4/register 0.003s +PASS +ok github.com/wago-org/net/icmpv6 0.003s +PASS +ok github.com/wago-org/net/icmpv6/register 0.003s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/abi/core cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkSlice 131959848 1.812 ns/op 0 B/op 0 allocs/op -BenchmarkSlice 133679286 1.795 ns/op 0 B/op 0 allocs/op -BenchmarkSlice 133769320 1.796 ns/op 0 B/op 0 allocs/op -BenchmarkSlice 132420348 1.810 ns/op 0 B/op 0 allocs/op -BenchmarkSlice 133328148 1.809 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 25936855 9.163 ns/op 111756.82 MB/s 0 B/op 0 allocs/op -BenchmarkWrite 26486382 9.194 ns/op 111377.66 MB/s 0 B/op 0 allocs/op -BenchmarkWrite 26194664 9.196 ns/op 111358.65 MB/s 0 B/op 0 allocs/op -BenchmarkWrite 26023272 9.164 ns/op 111746.27 MB/s 0 B/op 0 allocs/op -BenchmarkWrite 26382126 9.209 ns/op 111199.56 MB/s 0 B/op 0 allocs/op -BenchmarkZero 27374794 8.724 ns/op 117380.48 MB/s 0 B/op 0 allocs/op -BenchmarkZero 27490340 8.800 ns/op 116369.58 MB/s 0 B/op 0 allocs/op -BenchmarkZero 27259192 8.734 ns/op 117246.74 MB/s 0 B/op 0 allocs/op -BenchmarkZero 27400221 8.797 ns/op 116403.24 MB/s 0 B/op 0 allocs/op -BenchmarkZero 27403353 8.742 ns/op 117130.54 MB/s 0 B/op 0 allocs/op -BenchmarkReadUint32LE 174300508 1.366 ns/op 0 B/op 0 allocs/op -BenchmarkReadUint32LE 175909585 1.357 ns/op 0 B/op 0 allocs/op -BenchmarkReadUint32LE 176450020 1.354 ns/op 0 B/op 0 allocs/op -BenchmarkReadUint32LE 178380526 1.346 ns/op 0 B/op 0 allocs/op -BenchmarkReadUint32LE 178133894 1.347 ns/op 0 B/op 0 allocs/op -BenchmarkWriteUint32LE 151659555 1.582 ns/op 0 B/op 0 allocs/op -BenchmarkWriteUint32LE 152389221 1.573 ns/op 0 B/op 0 allocs/op -BenchmarkWriteUint32LE 153860253 1.560 ns/op 0 B/op 0 allocs/op -BenchmarkWriteUint32LE 153779361 1.560 ns/op 0 B/op 0 allocs/op -BenchmarkWriteUint32LE 152602566 1.569 ns/op 0 B/op 0 allocs/op -BenchmarkCheckRanges 43112298 5.352 ns/op 0 B/op 0 allocs/op -BenchmarkCheckRanges 47820224 5.453 ns/op 0 B/op 0 allocs/op -BenchmarkCheckRanges 45358681 5.328 ns/op 0 B/op 0 allocs/op -BenchmarkCheckRanges 45562453 5.357 ns/op 0 B/op 0 allocs/op -BenchmarkCheckRanges 46742212 5.281 ns/op 0 B/op 0 allocs/op -BenchmarkElements 100000000 2.009 ns/op 0 B/op 0 allocs/op -BenchmarkElements 100000000 2.063 ns/op 0 B/op 0 allocs/op -BenchmarkElements 100000000 2.114 ns/op 0 B/op 0 allocs/op -BenchmarkElements 100000000 2.033 ns/op 0 B/op 0 allocs/op -BenchmarkElements 100000000 2.030 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeAddressV1 19316905 12.48 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeAddressV1 19214918 12.48 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeAddressV1 19280244 12.64 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeAddressV1 19406625 12.58 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeAddressV1 19010946 12.49 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeAddressV1 10262334 23.35 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeAddressV1 10257763 23.69 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeAddressV1 10209194 23.43 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeAddressV1 9454802 23.61 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeAddressV1 10277620 23.35 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeEndpointV1 9482542 25.64 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeEndpointV1 9318763 25.78 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeEndpointV1 9383930 25.66 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeEndpointV1 9466890 25.42 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeEndpointV1 9472374 25.42 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeEndpointV1 5332004 43.23 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeEndpointV1 5617258 43.12 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeEndpointV1 5646817 42.60 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeEndpointV1 5624341 42.79 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeEndpointV1 5610481 43.14 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeHandleV1 152362956 1.568 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeHandleV1 154242768 1.557 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeHandleV1 154103286 1.558 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeHandleV1 152931481 1.565 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeHandleV1 154189165 1.569 ns/op 0 B/op 0 allocs/op -BenchmarkDecodePollBudgetV1 89396029 2.663 ns/op 0 B/op 0 allocs/op -BenchmarkDecodePollBudgetV1 90187962 2.680 ns/op 0 B/op 0 allocs/op -BenchmarkDecodePollBudgetV1 90143146 2.688 ns/op 0 B/op 0 allocs/op -BenchmarkDecodePollBudgetV1 93336910 2.668 ns/op 0 B/op 0 allocs/op -BenchmarkDecodePollBudgetV1 91153374 2.660 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=1 45379977 5.316 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=1 45281420 5.357 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=1 45381968 5.324 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=1 44942725 5.334 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=1 45401816 5.377 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=16 8520025 28.40 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=16 8540569 28.16 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=16 8524837 28.38 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=16 8541982 28.11 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=16 8518719 28.35 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=256 548713 433.4 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=256 552895 435.5 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=256 557508 431.9 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=256 552616 433.3 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollEventsV1/events=256 549746 438.9 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollResultV1 26772682 9.002 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollResultV1 26967049 8.915 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollResultV1 26903088 8.892 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollResultV1 27707734 8.972 ns/op 0 B/op 0 allocs/op -BenchmarkEncodePollResultV1 26647006 9.048 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/abi/core 20.296s +BenchmarkSlice 132872301 1.800 ns/op 0 B/op 0 allocs/op +BenchmarkSlice 133315802 1.808 ns/op 0 B/op 0 allocs/op +BenchmarkSlice 131503227 1.813 ns/op 0 B/op 0 allocs/op +BenchmarkSlice 129655646 1.850 ns/op 0 B/op 0 allocs/op +BenchmarkSlice 133672521 1.803 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 25865426 9.142 ns/op 112006.25 MB/s 0 B/op 0 allocs/op +BenchmarkWrite 26749626 9.289 ns/op 110242.04 MB/s 0 B/op 0 allocs/op +BenchmarkWrite 26168356 9.187 ns/op 111461.99 MB/s 0 B/op 0 allocs/op +BenchmarkWrite 26201956 9.165 ns/op 111734.07 MB/s 0 B/op 0 allocs/op +BenchmarkWrite 26160951 9.175 ns/op 111613.40 MB/s 0 B/op 0 allocs/op +BenchmarkZero 27033142 8.952 ns/op 114390.69 MB/s 0 B/op 0 allocs/op +BenchmarkZero 27186354 8.899 ns/op 115068.29 MB/s 0 B/op 0 allocs/op +BenchmarkZero 25272667 8.862 ns/op 115550.94 MB/s 0 B/op 0 allocs/op +BenchmarkZero 27347594 8.796 ns/op 116421.85 MB/s 0 B/op 0 allocs/op +BenchmarkZero 27276685 8.894 ns/op 115131.46 MB/s 0 B/op 0 allocs/op +BenchmarkReadUint32LE 175005261 1.356 ns/op 0 B/op 0 allocs/op +BenchmarkReadUint32LE 178842778 1.342 ns/op 0 B/op 0 allocs/op +BenchmarkReadUint32LE 178101432 1.381 ns/op 0 B/op 0 allocs/op +BenchmarkReadUint32LE 180091741 1.337 ns/op 0 B/op 0 allocs/op +BenchmarkReadUint32LE 178554906 1.342 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 155528512 1.544 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 155675239 1.548 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 163360798 1.499 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 160808193 1.517 ns/op 0 B/op 0 allocs/op +BenchmarkWriteUint32LE 160870159 1.492 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 46865488 5.187 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 48002016 5.187 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 48432237 5.220 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 50014681 5.022 ns/op 0 B/op 0 allocs/op +BenchmarkCheckRanges 45658425 5.130 ns/op 0 B/op 0 allocs/op +BenchmarkElements 100000000 2.075 ns/op 0 B/op 0 allocs/op +BenchmarkElements 100000000 2.036 ns/op 0 B/op 0 allocs/op +BenchmarkElements 100000000 2.017 ns/op 0 B/op 0 allocs/op +BenchmarkElements 100000000 2.016 ns/op 0 B/op 0 allocs/op +BenchmarkElements 100000000 2.028 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 18499689 12.59 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 19217925 12.49 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 19009784 12.64 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 19088203 12.58 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeAddressV1 19186957 12.53 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10187044 23.55 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10223638 23.54 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10209612 23.49 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10284320 23.56 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeAddressV1 10145371 23.73 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9351590 25.65 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9333681 25.69 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9291999 25.74 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9281026 25.81 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeEndpointV1 9272652 25.84 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5363283 44.12 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5343567 43.97 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5484865 43.60 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5494814 43.58 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeEndpointV1 5514852 43.77 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 151682954 1.586 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 152180061 1.573 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 152969616 1.567 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 151794200 1.583 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeHandleV1 152589513 1.574 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 88158867 2.716 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 88458064 2.696 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 88290150 2.703 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 91245939 2.693 ns/op 0 B/op 0 allocs/op +BenchmarkDecodePollBudgetV1 88793451 2.678 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 48148190 4.931 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 48621567 4.942 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 48005107 4.915 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 48229621 5.063 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=1 48204201 4.996 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8355235 28.65 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8380915 28.70 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8394583 28.92 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8448675 28.34 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=16 8524176 28.24 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 546058 435.8 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 554373 435.5 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 552566 434.6 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 551256 432.6 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollEventsV1/events=256 553316 435.6 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32449117 7.395 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32574474 7.415 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32391675 7.424 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32351784 7.416 ns/op 0 B/op 0 allocs/op +BenchmarkEncodePollResultV1 32125740 7.502 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/abi/core 20.266s +PASS +ok github.com/wago-org/net/internal/abi/dhcpv4 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/abi/dhcpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkEncodeConfigurationV1 546436 417.0 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeConfigurationV1 584872 410.6 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeConfigurationV1 555728 424.4 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeConfigurationV1 580297 411.4 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeConfigurationV1 545426 412.1 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/abi/dhcpv6 1.170s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/abi/dns cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkEncodeDNSNameV1 6310851 38.19 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSNameV1 6154161 39.00 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSNameV1 6220652 39.18 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSNameV1 6114231 39.39 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSNameV1 6165858 39.28 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSNameV1 2522271 94.42 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSNameV1 2566266 94.47 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSNameV1 2558427 94.68 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSNameV1 2566446 94.02 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSNameV1 2555203 93.92 ns/op 24 B/op 1 allocs/op -BenchmarkEncodeDNSQueryV1 5939582 40.46 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSQueryV1 5927149 40.17 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSQueryV1 5606596 40.70 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSQueryV1 5942757 40.09 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSQueryV1 5942172 40.97 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSQueryV1 2502098 96.50 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSQueryV1 2463844 95.73 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSQueryV1 2536056 95.13 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSQueryV1 2574045 92.67 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSQueryV1 2543912 93.48 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSQueryV1InvalidTypes 100000000 2.455 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSQueryV1InvalidTypes 98473738 2.485 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSQueryV1InvalidTypes 99608331 2.457 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSQueryV1InvalidTypes 98603810 2.448 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSQueryV1InvalidTypes 99699199 2.439 ns/op 0 B/op 0 allocs/op -BenchmarkCheckDNSResolveV1 64450032 3.782 ns/op 0 B/op 0 allocs/op -BenchmarkCheckDNSResolveV1 64331814 3.794 ns/op 0 B/op 0 allocs/op -BenchmarkCheckDNSResolveV1 64154002 3.822 ns/op 0 B/op 0 allocs/op -BenchmarkCheckDNSResolveV1 63988635 3.798 ns/op 0 B/op 0 allocs/op -BenchmarkCheckDNSResolveV1 61076596 3.786 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/A 4428194 54.54 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/A 4423004 61.61 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/A 3899272 60.77 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/A 3990862 59.99 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/A 4048614 59.53 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/AAAA 3464995 67.82 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/AAAA 3603892 67.22 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/AAAA 3607942 65.20 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/AAAA 3769502 64.12 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/AAAA 3718680 64.89 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/CNAME 3546718 67.51 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/CNAME 3503472 67.50 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/CNAME 3625044 67.26 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/CNAME 3515919 67.15 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeDNSRecordV1/CNAME 3515887 68.69 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/abi/dns 10.858s +BenchmarkEncodeDNSNameV1 6069116 39.36 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSNameV1 6118681 39.87 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSNameV1 5778642 40.44 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSNameV1 5949513 40.28 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSNameV1 5956719 40.50 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameV1 2404057 99.18 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameV1 2472325 98.09 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameV1 2453797 98.00 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameV1 2416305 98.19 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameV1 2488100 95.58 ns/op 24 B/op 1 allocs/op +BenchmarkEncodeDNSQueryV1 5677702 41.78 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSQueryV1 5722237 41.41 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSQueryV1 5853082 40.65 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSQueryV1 5840844 40.75 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSQueryV1 5857582 40.74 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1 2494633 95.42 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1 2529420 96.70 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1 2384784 97.51 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1 2543984 95.12 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1 2579180 93.09 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 97475086 2.460 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 98025080 2.440 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 97563553 2.460 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 97428259 2.466 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSQueryV1InvalidTypes 97686498 2.452 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 63316401 3.842 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 62940600 3.821 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 62598820 3.830 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 64299067 3.785 ns/op 0 B/op 0 allocs/op +BenchmarkCheckDNSResolveV1 63629067 3.816 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 4325070 55.28 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 4311814 55.77 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 4322942 55.31 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 4359423 55.24 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/A 4333119 55.68 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3786324 63.15 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3816278 63.83 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3800028 63.87 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3717440 63.55 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/AAAA 3806966 63.05 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3617272 66.93 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3585073 66.89 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3586432 66.98 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3583056 66.90 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeDNSRecordV1/CNAME 3585586 67.16 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/abi/dns 10.805s +PASS +ok github.com/wago-org/net/internal/abi/icmpv4 0.002s +PASS +ok github.com/wago-org/net/internal/abi/icmpv6 0.002s +PASS +ok github.com/wago-org/net/internal/abi/ipv6 0.002s +PASS +ok github.com/wago-org/net/internal/abi/linklocal4 0.002s +PASS +ok github.com/wago-org/net/internal/abi/mdns 0.002s +PASS +ok github.com/wago-org/net/internal/abi/ntp 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/abi/tcp cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkCheckListenV1 63380828 3.908 ns/op 0 B/op 0 allocs/op -BenchmarkCheckListenV1 61166568 3.872 ns/op 0 B/op 0 allocs/op -BenchmarkCheckListenV1 63295411 3.879 ns/op 0 B/op 0 allocs/op -BenchmarkCheckListenV1 60986734 3.899 ns/op 0 B/op 0 allocs/op -BenchmarkCheckListenV1 62872947 3.908 ns/op 0 B/op 0 allocs/op -BenchmarkCheckCreateV1 62717239 3.889 ns/op 0 B/op 0 allocs/op -BenchmarkCheckCreateV1 62672446 3.914 ns/op 0 B/op 0 allocs/op -BenchmarkCheckCreateV1 59774008 3.910 ns/op 0 B/op 0 allocs/op -BenchmarkCheckCreateV1 61757780 3.946 ns/op 0 B/op 0 allocs/op -BenchmarkCheckCreateV1 61129114 3.947 ns/op 0 B/op 0 allocs/op -BenchmarkCheckIOV1 62479725 3.913 ns/op 0 B/op 0 allocs/op -BenchmarkCheckIOV1 60142281 3.911 ns/op 0 B/op 0 allocs/op -BenchmarkCheckIOV1 61814184 3.899 ns/op 0 B/op 0 allocs/op -BenchmarkCheckIOV1 62943324 3.850 ns/op 0 B/op 0 allocs/op -BenchmarkCheckIOV1 61656493 3.866 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeStreamV1 5328045 45.42 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeStreamV1 5328397 45.38 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeStreamV1 5207383 45.43 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeStreamV1 5205637 44.93 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeStreamV1 5458064 44.42 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeIOResultV1 46033503 5.161 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeIOResultV1 45393392 5.143 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeIOResultV1 47264199 5.160 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeIOResultV1 45075230 5.270 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeIOResultV1 46021551 5.217 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/abi/tcp 6.019s +BenchmarkCheckListenV1 62528576 3.752 ns/op 0 B/op 0 allocs/op +BenchmarkCheckListenV1 64226677 3.796 ns/op 0 B/op 0 allocs/op +BenchmarkCheckListenV1 62979826 3.837 ns/op 0 B/op 0 allocs/op +BenchmarkCheckListenV1 64812121 3.835 ns/op 0 B/op 0 allocs/op +BenchmarkCheckListenV1 64202571 3.853 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 63888356 3.777 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 62347912 3.790 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 64356776 3.865 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 63471762 3.852 ns/op 0 B/op 0 allocs/op +BenchmarkCheckCreateV1 63149319 3.829 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 62712716 3.855 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 62445928 3.866 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 59751567 3.820 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 60314221 3.784 ns/op 0 B/op 0 allocs/op +BenchmarkCheckIOV1 63700116 3.877 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5305273 45.26 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5409520 44.77 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5285124 45.38 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5322591 45.19 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeStreamV1 5296652 45.06 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 44798584 5.306 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 45889161 5.279 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 45412615 5.270 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 45533625 5.287 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeIOResultV1 45291794 5.315 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/abi/tcp 6.024s +PASS +ok github.com/wago-org/net/internal/abi/tls 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/abi/udp cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkEncodeReceiveResultV1 7489576 30.22 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeReceiveResultV1 8006424 30.74 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeReceiveResultV1 7858440 30.37 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeReceiveResultV1 7983189 31.14 ns/op 0 B/op 0 allocs/op -BenchmarkEncodeReceiveResultV1 7896286 30.46 ns/op 0 B/op 0 allocs/op -BenchmarkValidReceiveFlagsV1 178006861 1.343 ns/op 0 B/op 0 allocs/op -BenchmarkValidReceiveFlagsV1 180555963 1.334 ns/op 0 B/op 0 allocs/op -BenchmarkValidReceiveFlagsV1 182473436 1.316 ns/op 0 B/op 0 allocs/op -BenchmarkValidReceiveFlagsV1 199202077 1.260 ns/op 0 B/op 0 allocs/op -BenchmarkValidReceiveFlagsV1 182262627 1.317 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeReceiveResultV1 7717647 30.53 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeReceiveResultV1 7995038 30.15 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeReceiveResultV1 7926218 30.52 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeReceiveResultV1 7907398 30.14 ns/op 0 B/op 0 allocs/op +BenchmarkEncodeReceiveResultV1 7905968 30.45 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 218701322 1.100 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 213909717 1.130 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 183985440 1.296 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 193167088 1.220 ns/op 0 B/op 0 allocs/op +BenchmarkValidReceiveFlagsV1 213756844 1.148 ns/op 0 B/op 0 allocs/op PASS -ok github.com/wago-org/net/internal/abi/udp 2.415s +ok github.com/wago-org/net/internal/abi/udp 2.404s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/gotls +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkTLS13Handshake 188 1261374 ns/op 388368 B/op 935 allocs/op +BenchmarkTLS13Handshake 186 1278625 ns/op 388291 B/op 934 allocs/op +BenchmarkTLS13Handshake 187 1276078 ns/op 388261 B/op 934 allocs/op +BenchmarkTLS13Handshake 175 1329466 ns/op 388329 B/op 935 allocs/op +BenchmarkTLS13Handshake 186 1279476 ns/op 388317 B/op 934 allocs/op +BenchmarkByteRingSteadyState 3479728 68.87 ns/op 59472.41 MB/s 0 B/op 0 allocs/op +BenchmarkByteRingSteadyState 3368184 70.84 ns/op 57820.54 MB/s 0 B/op 0 allocs/op +BenchmarkByteRingSteadyState 3425287 70.48 ns/op 58115.74 MB/s 0 B/op 0 allocs/op +BenchmarkByteRingSteadyState 3355318 70.69 ns/op 57945.10 MB/s 0 B/op 0 allocs/op +BenchmarkByteRingSteadyState 3392198 70.34 ns/op 58233.47 MB/s 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 15861038 15.05 ns/op 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 15887799 14.56 ns/op 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 16187763 14.87 ns/op 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 15989788 14.51 ns/op 0 B/op 0 allocs/op +BenchmarkProfileAuthorization 15582030 14.83 ns/op 0 B/op 0 allocs/op PASS -ok github.com/wago-org/net/internal/backend/lneto 0.002s +ok github.com/wago-org/net/internal/backend/gotls 4.117s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkDisabledNamespaceNew 95848 2322 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceNew 98312 2344 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceNew 103480 2326 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceNew 102759 2293 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceNew 100530 2258 ns/op 19080 B/op 22 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3910786 62.47 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3915967 61.50 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3901525 61.38 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3890439 61.58 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledNamespaceIdleEgress 3904303 61.37 ns/op 0 B/op 0 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 93871 2418 ns/op 20104 B/op 24 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 95659 2437 ns/op 20104 B/op 24 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 94755 2488 ns/op 20104 B/op 24 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 94648 2460 ns/op 20104 B/op 24 allocs/op +BenchmarkDisabledSelectiveAdaptersNew 92786 2606 ns/op 20104 B/op 24 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 102860 2348 ns/op 19272 B/op 21 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 103312 2234 ns/op 19272 B/op 21 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 105139 2235 ns/op 19272 B/op 21 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 107512 2217 ns/op 19272 B/op 21 allocs/op +BenchmarkInoperableIPv6SelectiveAdaptersNew 105181 2206 ns/op 19272 B/op 21 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto 4.716s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/backend/lneto/core cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkNamespaceReadiness 13287694 17.82 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceReadiness 13589942 17.67 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceReadiness 13555796 17.77 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceReadiness 13652376 17.70 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceReadiness 13587630 17.54 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseAcquireRelease 6001935 38.89 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseAcquireRelease 6104251 40.11 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseAcquireRelease 6233534 38.34 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseAcquireRelease 6125269 39.05 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseAcquireRelease 6249102 38.66 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseRangeAcquireRelease 5904241 40.83 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseRangeAcquireRelease 5987029 40.17 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseRangeAcquireRelease 5975025 40.17 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseRangeAcquireRelease 5949668 40.58 ns/op 0 B/op 0 allocs/op -BenchmarkUDPPortLeaseRangeAcquireRelease 5966689 40.43 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIdle 3586656 66.97 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIdle 3572298 67.10 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIdle 3585409 67.39 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIdle 3439562 70.65 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIdle 3535150 67.43 ns/op 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIngress 5209213 46.02 ns/op 1390.59 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIngress 5204143 47.10 ns/op 1358.91 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIngress 5172234 46.30 ns/op 1382.41 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIngress 5109891 46.05 ns/op 1389.77 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceIngress 5180853 46.30 ns/op 1382.41 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceEgress 3513536 68.83 ns/op 929.78 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceEgress 3629500 66.59 ns/op 961.17 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceEgress 3500316 67.29 ns/op 951.07 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceEgress 3571257 67.10 ns/op 953.87 MB/s 0 B/op 0 allocs/op -BenchmarkNamespaceTryServiceEgress 3582126 68.01 ns/op 941.10 MB/s 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/backend/lneto/core 7.214s +BenchmarkNamespaceReadiness 13349596 17.52 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceReadiness 13577846 17.56 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceReadiness 13775649 17.45 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceReadiness 13853166 17.39 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceReadiness 13775254 17.45 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5919600 40.85 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5877141 40.39 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5948864 40.34 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5955450 40.35 ns/op 0 B/op 0 allocs/op +BenchmarkTCPPortLeaseAcquireRelease 5940152 40.49 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 6140355 39.14 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 6075408 39.50 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 6067666 39.37 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 6110270 39.06 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseAcquireRelease 6303249 38.84 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5869758 41.03 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5828216 41.05 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5780428 40.74 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5889906 40.95 ns/op 0 B/op 0 allocs/op +BenchmarkUDPPortLeaseRangeAcquireRelease 5799393 41.30 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3538590 66.93 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3553803 68.56 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3544293 67.76 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3531804 67.35 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIdle 3591578 67.25 ns/op 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 4785757 50.16 ns/op 1275.92 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 5149092 49.64 ns/op 1289.26 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 4779219 47.53 ns/op 1346.57 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 5171203 46.34 ns/op 1381.04 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceIngress 5137911 46.22 ns/op 1384.57 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2890726 83.14 ns/op 769.83 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2881590 83.25 ns/op 768.77 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2869083 83.87 ns/op 763.09 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2879223 83.20 ns/op 769.19 MB/s 0 B/op 0 allocs/op +BenchmarkNamespaceTryServiceEgress 2892331 83.10 ns/op 770.18 MB/s 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/core 8.405s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/dhcpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkClientLeaseSnapshot 2622034 91.51 ns/op 0 B/op 0 allocs/op +BenchmarkClientLeaseSnapshot 2630869 92.44 ns/op 0 B/op 0 allocs/op +BenchmarkClientLeaseSnapshot 2631346 91.37 ns/op 0 B/op 0 allocs/op +BenchmarkClientLeaseSnapshot 2608780 91.46 ns/op 0 B/op 0 allocs/op +BenchmarkClientLeaseSnapshot 2634049 91.98 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 215.9 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 218.5 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 215.4 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 217.9 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4DiscoverKnownClient 1000000 215.4 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1766004 135.6 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1769886 135.6 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1760769 135.8 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1764770 137.8 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDHCPv4OfferWithoutLease 1746423 137.5 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 21269137 11.32 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 21009476 11.27 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 21089790 11.41 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 21511821 11.27 ns/op 0 B/op 0 allocs/op +BenchmarkClientKey 21462522 11.34 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 22479356 10.57 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 22803417 10.60 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 22504974 10.60 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 23033888 10.60 ns/op 0 B/op 0 allocs/op +BenchmarkServerClientIdentityCanonical 22644742 10.58 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/dhcpv4 5.904s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/dhcpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkInspectMessageReply 554083 440.8 ns/op 0 B/op 0 allocs/op +BenchmarkInspectMessageReply 547866 435.3 ns/op 0 B/op 0 allocs/op +BenchmarkInspectMessageReply 554922 435.3 ns/op 0 B/op 0 allocs/op +BenchmarkInspectMessageReply 558470 434.0 ns/op 0 B/op 0 allocs/op +BenchmarkInspectMessageReply 552298 440.6 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterTryAcquireClose 220678 926.5 ns/op 6032 B/op 8 allocs/op +BenchmarkAdapterTryAcquireClose 284163 892.1 ns/op 6032 B/op 8 allocs/op +BenchmarkAdapterTryAcquireClose 279566 880.7 ns/op 6032 B/op 8 allocs/op +BenchmarkAdapterTryAcquireClose 271513 845.4 ns/op 6032 B/op 8 allocs/op +BenchmarkAdapterTryAcquireClose 286194 855.8 ns/op 6032 B/op 8 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/dhcpv6 2.394s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/backend/lneto/dns cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkBuildDNSQueryPacket 2378870 100.2 ns/op 96 B/op 1 allocs/op -BenchmarkBuildDNSQueryPacket 2324362 101.6 ns/op 96 B/op 1 allocs/op -BenchmarkBuildDNSQueryPacket 2411152 99.51 ns/op 96 B/op 1 allocs/op -BenchmarkBuildDNSQueryPacket 2386840 101.1 ns/op 96 B/op 1 allocs/op -BenchmarkBuildDNSQueryPacket 2405721 99.29 ns/op 96 B/op 1 allocs/op -BenchmarkBuildDNSQueryPacketInto 2971209 81.41 ns/op 0 B/op 0 allocs/op -BenchmarkBuildDNSQueryPacketInto 2972564 80.74 ns/op 0 B/op 0 allocs/op -BenchmarkBuildDNSQueryPacketInto 2969282 80.58 ns/op 0 B/op 0 allocs/op -BenchmarkBuildDNSQueryPacketInto 2904367 81.22 ns/op 0 B/op 0 allocs/op -BenchmarkBuildDNSQueryPacketInto 2946939 81.82 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSName 6293619 37.68 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSName 6362668 37.96 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSName 6404172 37.66 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSName 6400212 37.80 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSName 6428034 37.54 ns/op 24 B/op 1 allocs/op -BenchmarkDecodeDNSNameInto 11182855 21.71 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSNameInto 10710799 22.09 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSNameInto 10844079 22.46 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSNameInto 11130939 22.02 ns/op 0 B/op 0 allocs/op -BenchmarkDecodeDNSNameInto 10873929 21.90 ns/op 0 B/op 0 allocs/op -BenchmarkParseDNSResponse 700771 354.6 ns/op 552.80 MB/s 16 B/op 1 allocs/op -BenchmarkParseDNSResponse 693294 352.8 ns/op 555.53 MB/s 16 B/op 1 allocs/op -BenchmarkParseDNSResponse 702360 349.7 ns/op 560.47 MB/s 16 B/op 1 allocs/op -BenchmarkParseDNSResponse 726976 344.2 ns/op 569.44 MB/s 16 B/op 1 allocs/op -BenchmarkParseDNSResponse 700545 358.3 ns/op 547.03 MB/s 16 B/op 1 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=0 1251896 191.5 ns/op 710.27 MB/s 0 B/op 0 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=0 1254355 191.0 ns/op 712.07 MB/s 0 B/op 0 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=0 1270900 188.1 ns/op 723.04 MB/s 0 B/op 0 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=0 1277528 188.7 ns/op 720.56 MB/s 0 B/op 0 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=0 1258676 189.6 ns/op 717.16 MB/s 0 B/op 0 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=1 681892 350.2 ns/op 542.55 MB/s 24 B/op 1 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=1 708859 348.6 ns/op 544.98 MB/s 24 B/op 1 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=1 709350 344.1 ns/op 552.09 MB/s 24 B/op 1 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=1 717103 341.3 ns/op 556.75 MB/s 24 B/op 1 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=1 704547 347.2 ns/op 547.28 MB/s 24 B/op 1 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=4 295268 847.1 ns/op 408.43 MB/s 96 B/op 4 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=4 294079 853.1 ns/op 405.58 MB/s 96 B/op 4 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=4 296406 860.6 ns/op 402.06 MB/s 96 B/op 4 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=4 296128 882.3 ns/op 392.15 MB/s 96 B/op 4 allocs/op -BenchmarkParseDNSResponseShapes/cname_depth=4 284875 890.1 ns/op 388.72 MB/s 96 B/op 4 allocs/op -BenchmarkSelectDNSAnswers 2176015 110.8 ns/op 0 B/op 0 allocs/op -BenchmarkSelectDNSAnswers 2136577 112.6 ns/op 0 B/op 0 allocs/op -BenchmarkSelectDNSAnswers 2003366 118.4 ns/op 0 B/op 0 allocs/op -BenchmarkSelectDNSAnswers 2057304 116.8 ns/op 0 B/op 0 allocs/op -BenchmarkSelectDNSAnswers 2060277 116.7 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterTryResolveClose 554158 427.6 ns/op 1408 B/op 1 allocs/op -BenchmarkAdapterTryResolveClose 572024 448.1 ns/op 1408 B/op 1 allocs/op -BenchmarkAdapterTryResolveClose 480934 433.3 ns/op 1408 B/op 1 allocs/op -BenchmarkAdapterTryResolveClose 572084 425.1 ns/op 1408 B/op 1 allocs/op -BenchmarkAdapterTryResolveClose 575671 428.4 ns/op 1408 B/op 1 allocs/op -BenchmarkQueryTryNext 9336505 25.40 ns/op 0 B/op 0 allocs/op -BenchmarkQueryTryNext 9564550 24.97 ns/op 0 B/op 0 allocs/op -BenchmarkQueryTryNext 9619215 24.97 ns/op 0 B/op 0 allocs/op -BenchmarkQueryTryNext 9727208 24.59 ns/op 0 B/op 0 allocs/op -BenchmarkQueryTryNext 9554967 25.06 ns/op 0 B/op 0 allocs/op -BenchmarkQueryReadiness 57294400 4.307 ns/op 0 B/op 0 allocs/op -BenchmarkQueryReadiness 56698408 4.265 ns/op 0 B/op 0 allocs/op -BenchmarkQueryReadiness 55268352 4.401 ns/op 0 B/op 0 allocs/op -BenchmarkQueryReadiness 56835484 4.242 ns/op 0 B/op 0 allocs/op -BenchmarkQueryReadiness 55451044 4.378 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/backend/lneto/dns 14.549s +BenchmarkBuildDNSQueryPacket 1841362 123.4 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacket 2150234 112.9 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacket 2146884 109.7 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacket 2196302 108.7 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacket 2184049 109.4 ns/op 96 B/op 1 allocs/op +BenchmarkBuildDNSQueryPacketInto 2716213 88.05 ns/op 0 B/op 0 allocs/op +BenchmarkBuildDNSQueryPacketInto 2788622 86.09 ns/op 0 B/op 0 allocs/op +BenchmarkBuildDNSQueryPacketInto 2746515 87.09 ns/op 0 B/op 0 allocs/op +BenchmarkBuildDNSQueryPacketInto 2762781 87.60 ns/op 0 B/op 0 allocs/op +BenchmarkBuildDNSQueryPacketInto 2777098 87.52 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSName 6566799 35.71 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSName 6718810 35.81 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSName 6812384 35.44 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSName 6702270 35.50 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSName 6782635 35.79 ns/op 24 B/op 1 allocs/op +BenchmarkDecodeDNSNameInto 11946080 19.32 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameInto 12719650 19.70 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameInto 12250714 19.70 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameInto 12178208 19.83 ns/op 0 B/op 0 allocs/op +BenchmarkDecodeDNSNameInto 12462938 19.69 ns/op 0 B/op 0 allocs/op +BenchmarkParseDNSResponse 662436 358.5 ns/op 546.79 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponse 641650 356.6 ns/op 549.71 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponse 701877 349.2 ns/op 561.26 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponse 715141 351.8 ns/op 557.06 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponse 722173 349.1 ns/op 561.41 MB/s 16 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1244719 192.8 ns/op 705.48 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1263429 189.2 ns/op 718.95 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1263492 190.0 ns/op 715.65 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1270824 189.5 ns/op 717.68 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=0 1262599 189.7 ns/op 716.98 MB/s 0 B/op 0 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 712302 344.2 ns/op 551.99 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 718737 348.3 ns/op 545.47 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 719832 352.4 ns/op 539.09 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 669326 357.0 ns/op 532.17 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=1 751258 350.8 ns/op 541.59 MB/s 24 B/op 1 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 288349 872.4 ns/op 396.60 MB/s 96 B/op 4 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 271795 889.7 ns/op 388.89 MB/s 96 B/op 4 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 285613 881.0 ns/op 392.73 MB/s 96 B/op 4 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 289144 906.2 ns/op 381.79 MB/s 96 B/op 4 allocs/op +BenchmarkParseDNSResponseShapes/cname_depth=4 289252 902.8 ns/op 383.24 MB/s 96 B/op 4 allocs/op +BenchmarkSelectDNSAnswers 2004301 124.1 ns/op 0 B/op 0 allocs/op +BenchmarkSelectDNSAnswers 1868338 128.4 ns/op 0 B/op 0 allocs/op +BenchmarkSelectDNSAnswers 1852298 130.1 ns/op 0 B/op 0 allocs/op +BenchmarkSelectDNSAnswers 1862540 128.6 ns/op 0 B/op 0 allocs/op +BenchmarkSelectDNSAnswers 1861510 128.8 ns/op 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2135095 111.3 ns/op 1976.56 MB/s 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2177082 110.4 ns/op 1992.59 MB/s 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2155023 110.9 ns/op 1984.60 MB/s 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2173450 110.3 ns/op 1995.41 MB/s 0 B/op 0 allocs/op +BenchmarkIngressDNSResponseMismatch 2174770 112.6 ns/op 1954.59 MB/s 0 B/op 0 allocs/op +BenchmarkAdapterTryResolveClose 422258 568.2 ns/op 1792 B/op 1 allocs/op +BenchmarkAdapterTryResolveClose 432819 564.0 ns/op 1792 B/op 1 allocs/op +BenchmarkAdapterTryResolveClose 434995 565.8 ns/op 1792 B/op 1 allocs/op +BenchmarkAdapterTryResolveClose 434607 573.9 ns/op 1792 B/op 1 allocs/op +BenchmarkAdapterTryResolveClose 434781 569.4 ns/op 1792 B/op 1 allocs/op +BenchmarkQueryTryNext 9078528 26.57 ns/op 0 B/op 0 allocs/op +BenchmarkQueryTryNext 8959900 26.64 ns/op 0 B/op 0 allocs/op +BenchmarkQueryTryNext 8944036 26.52 ns/op 0 B/op 0 allocs/op +BenchmarkQueryTryNext 9056434 26.49 ns/op 0 B/op 0 allocs/op +BenchmarkQueryTryNext 9155814 26.45 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 57734011 4.242 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 56168151 4.263 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 55252866 4.363 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 56646739 4.262 ns/op 0 B/op 0 allocs/op +BenchmarkQueryReadiness 54130677 4.447 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/dns 15.790s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/icmpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkIngressEchoReply 4483066 53.53 ns/op 0 B/op 0 allocs/op +BenchmarkIngressEchoReply 4467385 53.61 ns/op 0 B/op 0 allocs/op +BenchmarkIngressEchoReply 4514533 53.58 ns/op 0 B/op 0 allocs/op +BenchmarkIngressEchoReply 4464133 53.67 ns/op 0 B/op 0 allocs/op +BenchmarkIngressEchoReply 4457054 53.40 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/icmpv4 1.203s +PASS +ok github.com/wago-org/net/internal/backend/lneto/icmpv6 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/ipv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkIngressLocked/accepted 23195772 10.65 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/accepted 23574063 10.66 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/accepted 22263309 10.62 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/accepted 22530246 10.56 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/accepted 22856443 10.55 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 60233540 3.979 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 58154199 3.985 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 60224908 3.979 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 60485836 3.983 ns/op 0 B/op 0 allocs/op +BenchmarkIngressLocked/dropped 60455623 3.964 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/ipv6 2.410s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/linklocal4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkIngressUnrelatedARP 6833004 35.51 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUnrelatedARP 6710199 35.81 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUnrelatedARP 6444091 36.44 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUnrelatedARP 6695834 35.87 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUnrelatedARP 6653182 36.04 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/linklocal4 1.202s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/mdns +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkMDNSCancelClose/Query 290714 820.7 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Query 285316 814.3 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Query 297123 804.3 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Query 297078 810.5 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Query 304081 810.3 ns/op 4608 B/op 7 allocs/op +BenchmarkMDNSCancelClose/Announcement 199873 1222 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCancelClose/Announcement 198098 1233 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCancelClose/Announcement 191728 1211 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCancelClose/Announcement 198561 1198 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCancelClose/Announcement 196722 1201 ns/op 2392 B/op 21 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 48699578 4.532 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 53705187 4.443 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 54879445 4.376 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 55081231 4.385 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/Readiness 54602997 4.397 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 1845057 130.0 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 1881741 127.7 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 1957268 122.5 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 1956501 122.8 ns/op 0 B/op 0 allocs/op +BenchmarkMDNSCanceledTerminal/TryNext 1896141 126.4 ns/op 0 B/op 0 allocs/op +BenchmarkIngressQueryResponse 952149 255.4 ns/op 32 B/op 2 allocs/op +BenchmarkIngressQueryResponse 986702 258.4 ns/op 32 B/op 2 allocs/op +BenchmarkIngressQueryResponse 1000000 261.8 ns/op 32 B/op 2 allocs/op +BenchmarkIngressQueryResponse 998006 267.2 ns/op 32 B/op 2 allocs/op +BenchmarkIngressQueryResponse 943722 263.8 ns/op 32 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 470091 542.0 ns/op 48 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 459904 545.4 ns/op 48 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 468762 549.5 ns/op 48 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 425143 537.8 ns/op 48 B/op 2 allocs/op +BenchmarkIngressAutomaticResponse 467450 538.7 ns/op 48 B/op 2 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/mdns 7.303s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/backend/lneto/ntp +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkIngressNTPOriginMismatch 4365218 55.11 ns/op 1633.02 MB/s 0 B/op 0 allocs/op +BenchmarkIngressNTPOriginMismatch 4365840 55.15 ns/op 1631.99 MB/s 0 B/op 0 allocs/op +BenchmarkIngressNTPOriginMismatch 4364666 54.96 ns/op 1637.57 MB/s 0 B/op 0 allocs/op +BenchmarkIngressNTPOriginMismatch 4350502 55.31 ns/op 1627.08 MB/s 0 B/op 0 allocs/op +BenchmarkIngressNTPOriginMismatch 4350606 55.26 ns/op 1628.55 MB/s 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/ntp 1.206s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/backend/lneto/tcp cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkAdapterTryListenClose 577753 413.1 ns/op 1712 B/op 7 allocs/op -BenchmarkAdapterTryListenClose 596194 413.6 ns/op 1712 B/op 7 allocs/op -BenchmarkAdapterTryListenClose 570516 413.4 ns/op 1712 B/op 7 allocs/op -BenchmarkAdapterTryListenClose 597420 415.3 ns/op 1712 B/op 7 allocs/op -BenchmarkAdapterTryListenClose 595028 414.7 ns/op 1712 B/op 7 allocs/op -BenchmarkAdapterTryConnectClose 473874 565.0 ns/op 1416 B/op 6 allocs/op -BenchmarkAdapterTryConnectClose 467178 549.6 ns/op 1416 B/op 6 allocs/op -BenchmarkAdapterTryConnectClose 438214 551.5 ns/op 1416 B/op 6 allocs/op -BenchmarkAdapterTryConnectClose 349851 572.4 ns/op 1416 B/op 6 allocs/op -BenchmarkAdapterTryConnectClose 433934 542.0 ns/op 1416 B/op 6 allocs/op -BenchmarkOutboundStreamCountScaling/streams=1 135767991 1.767 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=1 135165949 1.772 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=1 136171195 1.762 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=1 134596708 1.793 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=1 136164390 1.764 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=16 28413933 8.451 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=16 28697101 8.365 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=16 28695141 8.360 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=16 28732280 8.399 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=16 28318470 8.468 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=256 2072386 116.0 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=256 2066976 116.2 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=256 2031186 120.0 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=256 2007148 118.3 ns/op 0 B/op 0 allocs/op -BenchmarkOutboundStreamCountScaling/streams=256 2084455 115.2 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamFinishConnect 43516076 5.716 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamFinishConnect 42192994 5.692 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamFinishConnect 42275730 5.704 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamFinishConnect 43296486 5.626 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamFinishConnect 43035207 5.673 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamReadiness 16994887 14.27 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamReadiness 16761316 14.25 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamReadiness 16825443 14.24 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamReadiness 16742466 14.30 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamReadiness 16808275 14.34 ns/op 0 B/op 0 allocs/op -BenchmarkTCPListenerTryAcceptWouldBlock 10612432 22.98 ns/op 0 B/op 0 allocs/op -BenchmarkTCPListenerTryAcceptWouldBlock 10238865 23.00 ns/op 0 B/op 0 allocs/op -BenchmarkTCPListenerTryAcceptWouldBlock 10849921 22.40 ns/op 0 B/op 0 allocs/op -BenchmarkTCPListenerTryAcceptWouldBlock 10453977 23.01 ns/op 0 B/op 0 allocs/op -BenchmarkTCPListenerTryAcceptWouldBlock 10581670 22.56 ns/op 0 B/op 0 allocs/op -BenchmarkTCPStreamRoundTrip 177462 1383 ns/op 46.27 MB/s 0 B/op 0 allocs/op -BenchmarkTCPStreamRoundTrip 175312 1356 ns/op 47.20 MB/s 0 B/op 0 allocs/op -BenchmarkTCPStreamRoundTrip 177034 1383 ns/op 46.29 MB/s 0 B/op 0 allocs/op -BenchmarkTCPStreamRoundTrip 177274 1354 ns/op 47.28 MB/s 0 B/op 0 allocs/op -BenchmarkTCPStreamRoundTrip 176154 1370 ns/op 46.73 MB/s 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/backend/lneto/tcp 10.865s +BenchmarkAdapterNew 69921 3336 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterNew 70377 3294 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterNew 69345 3418 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterNew 69480 3468 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterNew 73621 3392 ns/op 20512 B/op 38 allocs/op +BenchmarkAdapterTryListenClose 630274 406.1 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryListenClose 636646 404.9 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryListenClose 634424 399.6 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryListenClose 633356 403.6 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryListenClose 640240 407.6 ns/op 624 B/op 3 allocs/op +BenchmarkAdapterTryConnectClose 383526 623.6 ns/op 1128 B/op 4 allocs/op +BenchmarkAdapterTryConnectClose 383690 645.8 ns/op 1128 B/op 4 allocs/op +BenchmarkAdapterTryConnectClose 398656 641.1 ns/op 1128 B/op 4 allocs/op +BenchmarkAdapterTryConnectClose 398535 635.4 ns/op 1128 B/op 4 allocs/op +BenchmarkAdapterTryConnectClose 405897 635.9 ns/op 1128 B/op 4 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 216790497 1.106 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 218043969 1.097 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 218936114 1.096 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 218908306 1.100 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=1 213871338 1.117 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 216619338 1.111 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 217217630 1.104 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 217021449 1.106 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 217265268 1.107 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=16 218629736 1.096 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 217675380 1.096 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 219870739 1.092 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 220102396 1.091 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 219925182 1.092 ns/op 0 B/op 0 allocs/op +BenchmarkOutboundStreamCountScaling/streams=256 219789805 1.091 ns/op 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 5885512 41.42 ns/op 1448.41 MB/s 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 5791512 40.94 ns/op 1465.43 MB/s 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 5787932 41.83 ns/op 1434.29 MB/s 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 5704768 41.56 ns/op 1443.85 MB/s 0 B/op 0 allocs/op +BenchmarkIngressOwnedIPv4SYN 5814082 41.16 ns/op 1457.75 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 37588366 6.280 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 39434755 6.013 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 40133818 6.057 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 40930807 6.043 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamFinishConnect 43036867 6.040 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 16543939 14.36 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 16251262 14.34 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 17007174 14.23 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 16940270 14.23 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamReadiness 16808965 14.32 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 10079584 23.79 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 9870624 24.35 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 9885058 23.68 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 9976888 24.30 ns/op 0 B/op 0 allocs/op +BenchmarkTCPListenerTryAcceptWouldBlock 10112019 23.63 ns/op 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 149227 1612 ns/op 39.71 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 147506 1618 ns/op 39.56 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 148296 1593 ns/op 40.18 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 148820 1617 ns/op 39.59 MB/s 0 B/op 0 allocs/op +BenchmarkTCPStreamRoundTrip 147370 1622 ns/op 39.45 MB/s 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/tcp 13.353s +PASS +ok github.com/wago-org/net/internal/backend/lneto/tls 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/backend/lneto/udp cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkNewSocketDatagramQueues 712797 336.6 ns/op 4992 B/op 2 allocs/op -BenchmarkNewSocketDatagramQueues 709398 347.2 ns/op 4992 B/op 2 allocs/op -BenchmarkNewSocketDatagramQueues 698809 359.8 ns/op 4992 B/op 2 allocs/op -BenchmarkNewSocketDatagramQueues 703504 352.9 ns/op 4992 B/op 2 allocs/op -BenchmarkNewSocketDatagramQueues 717270 333.6 ns/op 4992 B/op 2 allocs/op -BenchmarkAdapterTryBindClose 885594 281.1 ns/op 640 B/op 3 allocs/op -BenchmarkAdapterTryBindClose 890924 279.7 ns/op 640 B/op 3 allocs/op -BenchmarkAdapterTryBindClose 825552 283.7 ns/op 640 B/op 3 allocs/op -BenchmarkAdapterTryBindClose 877924 279.2 ns/op 640 B/op 3 allocs/op -BenchmarkAdapterTryBindClose 893952 278.6 ns/op 640 B/op 3 allocs/op -BenchmarkAdapterTryBindCloseZeroPayload 1000000 247.0 ns/op 416 B/op 2 allocs/op -BenchmarkAdapterTryBindCloseZeroPayload 1000000 247.0 ns/op 416 B/op 2 allocs/op -BenchmarkAdapterTryBindCloseZeroPayload 1000000 244.1 ns/op 416 B/op 2 allocs/op -BenchmarkAdapterTryBindCloseZeroPayload 1000000 246.3 ns/op 416 B/op 2 allocs/op -BenchmarkAdapterTryBindCloseZeroPayload 1000000 247.4 ns/op 416 B/op 2 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=1 154736144 1.561 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=1 154906568 1.548 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=1 154999866 1.548 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=1 153026749 1.562 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=1 153843666 1.571 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=16 34999018 6.826 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=16 29893485 6.996 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=16 35214078 7.152 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=16 35748198 7.428 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=16 35401894 6.954 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=256 1000000 233.5 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=256 1000000 237.2 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=256 1000000 234.6 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=256 1000000 237.4 ns/op 0 B/op 0 allocs/op -BenchmarkAdapterHasEgressScaling/sockets=256 1000000 235.2 ns/op 0 B/op 0 allocs/op -BenchmarkUDPSocketSendEgress 1657930 145.4 ns/op 220.03 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketSendEgress 1664104 144.0 ns/op 222.17 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketSendEgress 1639824 145.3 ns/op 220.21 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketSendEgress 1676604 143.5 ns/op 222.99 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketSendEgress 1666851 144.1 ns/op 222.13 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReceive 6444978 35.61 ns/op 898.66 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReceive 6788323 35.70 ns/op 896.26 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReceive 6734269 35.48 ns/op 901.81 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReceive 6739734 35.58 ns/op 899.44 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReceive 6726502 35.69 ns/op 896.56 MB/s 0 B/op 0 allocs/op -BenchmarkUDPSocketReadiness 50602464 4.694 ns/op 0 B/op 0 allocs/op -BenchmarkUDPSocketReadiness 51998902 4.649 ns/op 0 B/op 0 allocs/op -BenchmarkUDPSocketReadiness 52324869 4.648 ns/op 0 B/op 0 allocs/op -BenchmarkUDPSocketReadiness 51141988 4.644 ns/op 0 B/op 0 allocs/op -BenchmarkUDPSocketReadiness 51358539 4.699 ns/op 0 B/op 0 allocs/op -BenchmarkUDPDatagramQueueRoundTrip 11100988 20.18 ns/op 0 B/op 0 allocs/op -BenchmarkUDPDatagramQueueRoundTrip 11932904 20.14 ns/op 0 B/op 0 allocs/op -BenchmarkUDPDatagramQueueRoundTrip 11917322 20.20 ns/op 0 B/op 0 allocs/op -BenchmarkUDPDatagramQueueRoundTrip 11914969 20.14 ns/op 0 B/op 0 allocs/op -BenchmarkUDPDatagramQueueRoundTrip 11919812 20.26 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/backend/lneto/udp 12.068s -? github.com/wago-org/net/internal/binding/dns [no test files] -? github.com/wago-org/net/internal/binding/tcp [no test files] -? github.com/wago-org/net/internal/binding/udp [no test files] +BenchmarkNewSocketDatagramQueues 583642 413.7 ns/op 5088 B/op 3 allocs/op +BenchmarkNewSocketDatagramQueues 534282 401.9 ns/op 5088 B/op 3 allocs/op +BenchmarkNewSocketDatagramQueues 594740 403.3 ns/op 5088 B/op 3 allocs/op +BenchmarkNewSocketDatagramQueues 570322 404.9 ns/op 5088 B/op 3 allocs/op +BenchmarkNewSocketDatagramQueues 562586 410.8 ns/op 5088 B/op 3 allocs/op +BenchmarkAdapterTryBindClose 702181 326.7 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindClose 758302 325.1 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindClose 727309 326.4 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindClose 776401 322.3 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindClose 804686 323.8 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 819765 318.3 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 830908 315.2 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 783619 314.9 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 798189 316.7 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterTryBindCloseZeroPayload 816346 317.1 ns/op 480 B/op 1 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 154749714 1.550 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 155231724 1.542 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 156407019 1.534 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 155537764 1.541 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=1 156225891 1.536 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 35302730 7.028 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 34948736 7.186 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 35049266 7.256 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 35159002 7.065 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=16 34744711 6.941 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 236.7 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 236.4 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 236.4 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 241.7 ns/op 0 B/op 0 allocs/op +BenchmarkAdapterHasEgressScaling/sockets=256 1000000 237.5 ns/op 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3921231 61.66 ns/op 518.95 MB/s 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3884906 62.27 ns/op 513.86 MB/s 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3992044 61.21 ns/op 522.82 MB/s 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3905725 61.69 ns/op 518.76 MB/s 0 B/op 0 allocs/op +BenchmarkIngressUDPDatagram 3935227 61.48 ns/op 520.53 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1391660 171.6 ns/op 186.49 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1419558 169.1 ns/op 189.26 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1403352 171.2 ns/op 186.89 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1415601 169.4 ns/op 188.90 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketSendEgress 1399898 171.4 ns/op 186.68 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6886815 34.86 ns/op 918.05 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6826143 34.95 ns/op 915.47 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6814395 35.11 ns/op 911.38 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6861302 35.01 ns/op 913.95 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReceive 6825202 35.05 ns/op 913.10 MB/s 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 53351756 4.620 ns/op 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 50523433 4.645 ns/op 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 51766029 4.613 ns/op 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 52873881 4.615 ns/op 0 B/op 0 allocs/op +BenchmarkUDPSocketReadiness 51841194 4.620 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11696426 20.54 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11569951 20.62 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11627458 20.74 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11546178 20.63 ns/op 0 B/op 0 allocs/op +BenchmarkUDPDatagramQueueRoundTrip 11706332 20.52 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/backend/lneto/udp 13.319s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/dhcpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 916158 264.3 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 923218 263.7 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 927321 268.6 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 935367 269.5 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 915583 267.8 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/dhcpv4 1.236s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/dhcpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 244364 962.8 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 245493 960.6 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 245778 963.4 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 246328 967.3 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 246495 960.9 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/dhcpv6 1.187s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/dns +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkNextBindingReady 1763690 137.3 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1718823 139.5 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1711456 140.1 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1711148 140.0 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1718104 139.8 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/dns 1.205s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/icmpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 2146249 111.7 ns/op 2291.20 MB/s 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2112866 113.1 ns/op 2263.60 MB/s 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2037932 120.8 ns/op 2118.41 MB/s 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2137578 111.6 ns/op 2293.75 MB/s 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2140496 112.0 ns/op 2285.03 MB/s 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/icmpv4 1.207s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/icmpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkEchoResultBindingReady 1697920 142.8 ns/op 1792.28 MB/s 32 B/op 1 allocs/op +BenchmarkEchoResultBindingReady 1639868 146.1 ns/op 1752.52 MB/s 32 B/op 1 allocs/op +BenchmarkEchoResultBindingReady 1657098 145.1 ns/op 1763.92 MB/s 32 B/op 1 allocs/op +BenchmarkEchoResultBindingReady 1667024 144.8 ns/op 1767.77 MB/s 32 B/op 1 allocs/op +BenchmarkEchoResultBindingReady 1649142 146.0 ns/op 1753.40 MB/s 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 2110650 113.5 ns/op 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 2106360 113.9 ns/op 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 1982044 117.0 ns/op 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 2120768 113.2 ns/op 32 B/op 1 allocs/op +BenchmarkNeighborResultBindingReady 2126334 113.1 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/icmpv6 2.402s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/ipv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkConfigurationBinding 1756226 137.2 ns/op 32 B/op 1 allocs/op +BenchmarkConfigurationBinding 1753256 137.5 ns/op 32 B/op 1 allocs/op +BenchmarkConfigurationBinding 1578928 152.5 ns/op 32 B/op 1 allocs/op +BenchmarkConfigurationBinding 1750108 137.6 ns/op 32 B/op 1 allocs/op +BenchmarkConfigurationBinding 1755559 137.2 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/ipv6 1.209s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/linklocal4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 2348356 102.3 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2309586 103.8 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2324037 104.0 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 1821567 120.4 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2261230 105.4 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/linklocal4 1.184s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/mdns +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkFinishAnnouncementBindingReady 4640251 52.68 ns/op 32 B/op 1 allocs/op +BenchmarkFinishAnnouncementBindingReady 4410224 52.49 ns/op 32 B/op 1 allocs/op +BenchmarkFinishAnnouncementBindingReady 4411737 54.27 ns/op 32 B/op 1 allocs/op +BenchmarkFinishAnnouncementBindingReady 4558590 52.44 ns/op 32 B/op 1 allocs/op +BenchmarkFinishAnnouncementBindingReady 4580731 51.89 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1459408 164.5 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1449788 167.3 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1449310 165.8 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1431782 168.5 ns/op 32 B/op 1 allocs/op +BenchmarkNextBindingReady 1418880 168.4 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/mdns 2.401s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/ntp +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultBindingReady 2326345 104.8 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2211495 108.8 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2304238 104.5 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2259632 106.1 ns/op 32 B/op 1 allocs/op +BenchmarkResultBindingReady 2273262 105.4 ns/op 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/ntp 1.208s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/tcp +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkReadBindingReady 2882167 84.05 ns/op 3045.63 MB/s 32 B/op 1 allocs/op +BenchmarkReadBindingReady 2720553 86.85 ns/op 2947.59 MB/s 32 B/op 1 allocs/op +BenchmarkReadBindingReady 2721609 87.07 ns/op 2940.27 MB/s 32 B/op 1 allocs/op +BenchmarkReadBindingReady 2718381 88.29 ns/op 2899.64 MB/s 32 B/op 1 allocs/op +BenchmarkReadBindingReady 2781660 86.19 ns/op 2970.10 MB/s 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/tcp 1.199s +PASS +ok github.com/wago-org/net/internal/binding/tls 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/binding/udp +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkReceiveBindingReady 2176924 112.5 ns/op 2274.84 MB/s 32 B/op 1 allocs/op +BenchmarkReceiveBindingReady 2104594 114.5 ns/op 2235.49 MB/s 32 B/op 1 allocs/op +BenchmarkReceiveBindingReady 2077956 116.4 ns/op 2199.55 MB/s 32 B/op 1 allocs/op +BenchmarkReceiveBindingReady 2085638 115.6 ns/op 2214.12 MB/s 32 B/op 1 allocs/op +BenchmarkReceiveBindingReady 1979635 120.9 ns/op 2117.29 MB/s 32 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/binding/udp 1.212s +PASS +ok github.com/wago-org/net/internal/checked 0.001s ? github.com/wago-org/net/internal/cmd/release-provenance [no test files] ? github.com/wago-org/net/internal/cmd/release-review [no test files] ? github.com/wago-org/net/internal/cmd/release-source-objects [no test files] PASS ok github.com/wago-org/net/internal/dependencytest 0.003s PASS -ok github.com/wago-org/net/internal/dnsname 0.002s +ok github.com/wago-org/net/internal/dnsname 0.001s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/guest cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkFromProgress 187292371 1.293 ns/op 0 B/op 0 allocs/op -BenchmarkFromProgress 181722657 1.312 ns/op 0 B/op 0 allocs/op -BenchmarkFromProgress 184231646 1.303 ns/op 0 B/op 0 allocs/op -BenchmarkFromProgress 182123137 1.311 ns/op 0 B/op 0 allocs/op -BenchmarkFromProgress 184223116 1.303 ns/op 0 B/op 0 allocs/op -BenchmarkFromIOResult 136877810 1.750 ns/op 0 B/op 0 allocs/op -BenchmarkFromIOResult 138483026 1.732 ns/op 0 B/op 0 allocs/op -BenchmarkFromIOResult 137072982 1.747 ns/op 0 B/op 0 allocs/op -BenchmarkFromIOResult 135446372 1.762 ns/op 0 B/op 0 allocs/op -BenchmarkFromIOResult 138233364 1.750 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/semantic 49889203 4.823 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/semantic 49857428 4.861 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/semantic 49796404 4.833 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/semantic 49723722 4.867 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/semantic 49996968 4.830 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/shared 98637892 2.490 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/shared 97368928 2.471 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/shared 97571208 2.517 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/shared 96951246 2.481 ns/op 0 B/op 0 allocs/op -BenchmarkFromError/shared 97435101 2.503 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/guest 4.828s +BenchmarkPollReady 1648899 146.6 ns/op 32 B/op 1 allocs/op +BenchmarkPollReady 1606746 149.2 ns/op 32 B/op 1 allocs/op +BenchmarkPollReady 1555118 154.6 ns/op 32 B/op 1 allocs/op +BenchmarkPollReady 1606570 149.3 ns/op 32 B/op 1 allocs/op +BenchmarkPollReady 1602928 149.5 ns/op 32 B/op 1 allocs/op +BenchmarkFromProgress 180541080 1.326 ns/op 0 B/op 0 allocs/op +BenchmarkFromProgress 179860834 1.340 ns/op 0 B/op 0 allocs/op +BenchmarkFromProgress 181102431 1.341 ns/op 0 B/op 0 allocs/op +BenchmarkFromProgress 179222923 1.348 ns/op 0 B/op 0 allocs/op +BenchmarkFromProgress 178483868 1.339 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 156059926 1.538 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 154868823 1.545 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 156266130 1.536 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 155529660 1.543 ns/op 0 B/op 0 allocs/op +BenchmarkFromIOResult 155802297 1.540 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 49725546 4.954 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 49610607 4.848 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 49518811 4.828 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 48542853 4.818 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/semantic 50020215 4.824 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 84462966 2.851 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 84282002 2.502 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 88696810 2.666 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 90376348 2.692 ns/op 0 B/op 0 allocs/op +BenchmarkFromError/shared 88539603 2.700 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/guest 5.984s +PASS +ok github.com/wago-org/net/internal/inspectionpolicy 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/instance/core cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkManagerAttachDetach 151500 1385 ns/op 18152 B/op 12 allocs/op -BenchmarkManagerAttachDetach 176320 1369 ns/op 18152 B/op 12 allocs/op -BenchmarkManagerAttachDetach 176707 1378 ns/op 18152 B/op 12 allocs/op -BenchmarkManagerAttachDetach 179136 1427 ns/op 18152 B/op 12 allocs/op -BenchmarkManagerAttachDetach 170427 1394 ns/op 18152 B/op 12 allocs/op -BenchmarkManagerForInstance 57163422 4.272 ns/op 0 B/op 0 allocs/op -BenchmarkManagerForInstance 56659082 4.265 ns/op 0 B/op 0 allocs/op -BenchmarkManagerForInstance 56947485 4.265 ns/op 0 B/op 0 allocs/op -BenchmarkManagerForInstance 57602026 4.237 ns/op 0 B/op 0 allocs/op -BenchmarkManagerForInstance 56713280 4.295 ns/op 0 B/op 0 allocs/op -BenchmarkStateWithLock 49224598 4.924 ns/op 0 B/op 0 allocs/op -BenchmarkStateWithLock 49295505 4.908 ns/op 0 B/op 0 allocs/op -BenchmarkStateWithLock 48818211 4.916 ns/op 0 B/op 0 allocs/op -BenchmarkStateWithLock 49075740 4.899 ns/op 0 B/op 0 allocs/op -BenchmarkStateWithLock 49311619 4.919 ns/op 0 B/op 0 allocs/op -BenchmarkStatePollIdle 9155118 26.20 ns/op 0 B/op 0 allocs/op -BenchmarkStatePollIdle 9049532 26.53 ns/op 0 B/op 0 allocs/op -BenchmarkStatePollIdle 9142442 26.22 ns/op 0 B/op 0 allocs/op -BenchmarkStatePollIdle 9139477 26.28 ns/op 0 B/op 0 allocs/op -BenchmarkStatePollIdle 9119523 26.17 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/instance/core 4.816s +BenchmarkManagerAttachDetach 130130 1689 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerAttachDetach 130972 1692 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerAttachDetach 140413 1693 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerAttachDetach 144184 1698 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerAttachDetach 135855 1677 ns/op 18712 B/op 14 allocs/op +BenchmarkManagerForInstance 57712159 4.239 ns/op 0 B/op 0 allocs/op +BenchmarkManagerForInstance 50341873 4.861 ns/op 0 B/op 0 allocs/op +BenchmarkManagerForInstance 57409675 4.268 ns/op 0 B/op 0 allocs/op +BenchmarkManagerForInstance 57147415 4.286 ns/op 0 B/op 0 allocs/op +BenchmarkManagerForInstance 55158097 4.295 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 48516025 4.924 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 48723732 4.958 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 48862879 4.901 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 46851573 4.901 ns/op 0 B/op 0 allocs/op +BenchmarkStateWithLock 49632810 4.876 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9395971 25.05 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9621048 24.89 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9636072 24.89 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9628964 24.88 ns/op 0 B/op 0 allocs/op +BenchmarkStatePollIdle 9615466 24.90 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/core 4.760s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/dhcpv4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultReady 3179163 75.68 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 3184496 75.42 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 3187444 74.77 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 3209062 73.79 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 3254310 73.35 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/dhcpv4 1.198s +PASS +ok github.com/wago-org/net/internal/instance/dhcpv6 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/instance/dns cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkResolveClose 2612503 91.04 ns/op 0 B/op 0 allocs/op -BenchmarkResolveClose 2651672 90.55 ns/op 0 B/op 0 allocs/op -BenchmarkResolveClose 2632074 91.32 ns/op 0 B/op 0 allocs/op -BenchmarkResolveClose 2647824 90.62 ns/op 0 B/op 0 allocs/op -BenchmarkResolveClose 2642914 91.37 ns/op 0 B/op 0 allocs/op -BenchmarkNext 4578847 52.68 ns/op 0 B/op 0 allocs/op -BenchmarkNext 4495218 53.43 ns/op 0 B/op 0 allocs/op -BenchmarkNext 4366233 52.95 ns/op 0 B/op 0 allocs/op -BenchmarkNext 4467055 53.24 ns/op 0 B/op 0 allocs/op -BenchmarkNext 4578732 53.14 ns/op 0 B/op 0 allocs/op -BenchmarkCancel 15043125 16.05 ns/op 0 B/op 0 allocs/op -BenchmarkCancel 15103780 16.11 ns/op 0 B/op 0 allocs/op -BenchmarkCancel 15095433 16.13 ns/op 0 B/op 0 allocs/op -BenchmarkCancel 13534498 16.10 ns/op 0 B/op 0 allocs/op -BenchmarkCancel 15182709 16.19 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/instance/dns 3.591s +BenchmarkResolveClose 2353160 101.4 ns/op 0 B/op 0 allocs/op +BenchmarkResolveClose 2366833 100.9 ns/op 0 B/op 0 allocs/op +BenchmarkResolveClose 2360996 101.3 ns/op 0 B/op 0 allocs/op +BenchmarkResolveClose 2365344 101.3 ns/op 0 B/op 0 allocs/op +BenchmarkResolveClose 2365591 101.1 ns/op 0 B/op 0 allocs/op +BenchmarkNext 4470505 53.74 ns/op 0 B/op 0 allocs/op +BenchmarkNext 4436842 54.05 ns/op 0 B/op 0 allocs/op +BenchmarkNext 4436522 53.91 ns/op 0 B/op 0 allocs/op +BenchmarkNext 4461994 54.11 ns/op 0 B/op 0 allocs/op +BenchmarkNext 4418775 53.76 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16899802 14.39 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16598344 14.36 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16777898 14.32 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16789504 14.26 ns/op 0 B/op 0 allocs/op +BenchmarkCancel 16884343 14.31 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/dns 3.603s +PASS +ok github.com/wago-org/net/internal/instance/icmpv4 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/icmpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkEchoResultReady 4593429 50.01 ns/op 5118.54 MB/s 0 B/op 0 allocs/op +BenchmarkEchoResultReady 4713091 50.64 ns/op 5055.19 MB/s 0 B/op 0 allocs/op +BenchmarkEchoResultReady 4766052 50.25 ns/op 5094.21 MB/s 0 B/op 0 allocs/op +BenchmarkEchoResultReady 4830176 49.69 ns/op 5152.41 MB/s 0 B/op 0 allocs/op +BenchmarkEchoResultReady 4809312 49.99 ns/op 5121.51 MB/s 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/icmpv6 1.192s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/ipv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkConfiguration 4374387 55.23 ns/op 0 B/op 0 allocs/op +BenchmarkConfiguration 4345512 56.91 ns/op 0 B/op 0 allocs/op +BenchmarkConfiguration 4222915 57.94 ns/op 0 B/op 0 allocs/op +BenchmarkConfiguration 4263774 56.60 ns/op 0 B/op 0 allocs/op +BenchmarkConfiguration 4167632 57.40 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/ipv6 1.218s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/linklocal4 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkResultReady 6569870 35.78 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 6938785 35.10 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 6753028 35.62 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 6727831 35.50 ns/op 0 B/op 0 allocs/op +BenchmarkResultReady 6817332 35.52 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/linklocal4 1.204s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/instance/mdns +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkInstanceMDNSOperations/Next 3639420 66.09 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/Next 3681464 65.93 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/Next 3646116 65.51 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/Next 3650713 66.85 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/Next 3725148 64.40 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 16783916 14.33 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 16851333 14.55 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 15757996 14.53 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 16768902 14.24 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelQuery 16901592 14.45 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 15883071 15.56 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 15454432 15.70 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 15307845 15.63 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 15246522 15.70 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/FinishAnnouncement 15421172 15.53 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 16376067 14.51 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 16828155 14.46 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 16595860 14.55 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 16270998 14.26 ns/op 0 B/op 0 allocs/op +BenchmarkInstanceMDNSOperations/CancelAnnouncement 16831467 14.32 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/mdns 4.815s +PASS +ok github.com/wago-org/net/internal/instance/ntp 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/instance/tcp cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkConnectClose 2698724 87.73 ns/op 0 B/op 0 allocs/op -BenchmarkConnectClose 2788108 86.33 ns/op 0 B/op 0 allocs/op -BenchmarkConnectClose 2792404 86.19 ns/op 0 B/op 0 allocs/op -BenchmarkConnectClose 2796464 86.57 ns/op 0 B/op 0 allocs/op -BenchmarkConnectClose 2802540 86.09 ns/op 0 B/op 0 allocs/op -BenchmarkEndpoints 5235550 45.95 ns/op 0 B/op 0 allocs/op -BenchmarkEndpoints 5018972 46.40 ns/op 0 B/op 0 allocs/op -BenchmarkEndpoints 5196794 46.23 ns/op 0 B/op 0 allocs/op -BenchmarkEndpoints 5205034 46.48 ns/op 0 B/op 0 allocs/op -BenchmarkEndpoints 5234977 46.06 ns/op 0 B/op 0 allocs/op -BenchmarkFinishConnect 15649136 15.45 ns/op 0 B/op 0 allocs/op -BenchmarkFinishConnect 15794456 15.26 ns/op 0 B/op 0 allocs/op -BenchmarkFinishConnect 15790272 15.33 ns/op 0 B/op 0 allocs/op -BenchmarkFinishConnect 15866000 15.25 ns/op 0 B/op 0 allocs/op -BenchmarkFinishConnect 15623120 15.42 ns/op 0 B/op 0 allocs/op -BenchmarkRead 13657708 17.50 ns/op 0 B/op 0 allocs/op -BenchmarkRead 13751060 17.74 ns/op 0 B/op 0 allocs/op -BenchmarkRead 13768964 17.60 ns/op 0 B/op 0 allocs/op -BenchmarkRead 13614844 17.80 ns/op 0 B/op 0 allocs/op -BenchmarkRead 13769516 17.66 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 13813856 17.37 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 12453464 17.60 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 13667496 17.50 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 13782859 17.38 ns/op 0 B/op 0 allocs/op -BenchmarkWrite 13773762 17.45 ns/op 0 B/op 0 allocs/op -BenchmarkShutdownWrite 15844947 15.30 ns/op 0 B/op 0 allocs/op -BenchmarkShutdownWrite 15819896 15.42 ns/op 0 B/op 0 allocs/op -BenchmarkShutdownWrite 15982802 15.23 ns/op 0 B/op 0 allocs/op -BenchmarkShutdownWrite 15697753 15.23 ns/op 0 B/op 0 allocs/op -BenchmarkShutdownWrite 15810228 15.32 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/instance/tcp 7.215s +BenchmarkConnectClose 2246102 105.3 ns/op 0 B/op 0 allocs/op +BenchmarkConnectClose 2293924 105.9 ns/op 0 B/op 0 allocs/op +BenchmarkConnectClose 2256254 106.1 ns/op 0 B/op 0 allocs/op +BenchmarkConnectClose 2259368 106.3 ns/op 0 B/op 0 allocs/op +BenchmarkConnectClose 2266498 105.4 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 5144587 46.40 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 4970550 47.24 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 5120580 46.69 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 5171343 46.82 ns/op 0 B/op 0 allocs/op +BenchmarkEndpoints 5165995 46.28 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 15461036 15.44 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 15683857 15.27 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 15782394 15.33 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 15754255 15.30 ns/op 0 B/op 0 allocs/op +BenchmarkFinishConnect 15663910 15.29 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2843390 84.27 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2846203 84.02 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2915527 82.30 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2860779 83.66 ns/op 0 B/op 0 allocs/op +BenchmarkRead 2853844 84.14 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 13939402 17.27 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 14030667 17.18 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 13897884 17.26 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 13819249 17.18 ns/op 0 B/op 0 allocs/op +BenchmarkWrite 13980552 17.29 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 15798026 15.32 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 15810048 15.33 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 15519552 15.43 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 15654267 15.36 ns/op 0 B/op 0 allocs/op +BenchmarkShutdownWrite 15810256 15.25 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/tcp 7.206s +PASS +ok github.com/wago-org/net/internal/instance/tls 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/instance/udp cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkBindClose 2680012 88.97 ns/op 0 B/op 0 allocs/op -BenchmarkBindClose 2766994 85.81 ns/op 0 B/op 0 allocs/op -BenchmarkBindClose 2701447 88.85 ns/op 0 B/op 0 allocs/op -BenchmarkBindClose 2797562 86.15 ns/op 0 B/op 0 allocs/op -BenchmarkBindClose 2705299 89.43 ns/op 0 B/op 0 allocs/op -BenchmarkSend 13064342 18.29 ns/op 0 B/op 0 allocs/op -BenchmarkSend 13168566 18.23 ns/op 0 B/op 0 allocs/op -BenchmarkSend 13180599 19.04 ns/op 0 B/op 0 allocs/op -BenchmarkSend 13017007 18.27 ns/op 0 B/op 0 allocs/op -BenchmarkSend 13129028 18.38 ns/op 0 B/op 0 allocs/op -BenchmarkReceive 8028852 30.08 ns/op 0 B/op 0 allocs/op -BenchmarkReceive 7973383 30.29 ns/op 0 B/op 0 allocs/op -BenchmarkReceive 8062627 30.11 ns/op 0 B/op 0 allocs/op -BenchmarkReceive 7968476 30.20 ns/op 0 B/op 0 allocs/op -BenchmarkReceive 7984738 30.11 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/instance/udp 3.621s +BenchmarkBindClose 2369626 101.2 ns/op 0 B/op 0 allocs/op +BenchmarkBindClose 2364710 101.5 ns/op 0 B/op 0 allocs/op +BenchmarkBindClose 2346693 101.7 ns/op 0 B/op 0 allocs/op +BenchmarkBindClose 2337099 101.9 ns/op 0 B/op 0 allocs/op +BenchmarkBindClose 2361172 101.5 ns/op 0 B/op 0 allocs/op +BenchmarkSend 12453927 19.32 ns/op 0 B/op 0 allocs/op +BenchmarkSend 12476610 19.25 ns/op 0 B/op 0 allocs/op +BenchmarkSend 12286722 19.26 ns/op 0 B/op 0 allocs/op +BenchmarkSend 12235492 19.72 ns/op 0 B/op 0 allocs/op +BenchmarkSend 12438129 19.37 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 5000055 47.65 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 5062863 47.47 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 5076219 47.43 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 5032479 47.73 ns/op 0 B/op 0 allocs/op +BenchmarkReceive 5001674 47.93 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/instance/udp 3.601s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/mdnsname +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkValidCanonical 7094452 35.25 ns/op 0 B/op 0 allocs/op +BenchmarkValidCanonical 6775196 34.63 ns/op 0 B/op 0 allocs/op +BenchmarkValidCanonical 7081698 34.05 ns/op 0 B/op 0 allocs/op +BenchmarkValidCanonical 6986364 34.52 ns/op 0 B/op 0 allocs/op +BenchmarkValidCanonical 6989660 34.56 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/mdnsname 1.211s PASS ok github.com/wago-org/net/internal/namespace 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/namespace/core cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkEndpointValid 100000000 2.251 ns/op 0 B/op 0 allocs/op -BenchmarkEndpointValid 100000000 2.233 ns/op 0 B/op 0 allocs/op -BenchmarkEndpointValid 100000000 2.251 ns/op 0 B/op 0 allocs/op -BenchmarkEndpointValid 100000000 2.231 ns/op 0 B/op 0 allocs/op -BenchmarkEndpointValid 100000000 2.232 ns/op 0 B/op 0 allocs/op -BenchmarkIOResultValid 166689663 1.470 ns/op 0 B/op 0 allocs/op -BenchmarkIOResultValid 157879225 1.524 ns/op 0 B/op 0 allocs/op -BenchmarkIOResultValid 156266846 1.530 ns/op 0 B/op 0 allocs/op -BenchmarkIOResultValid 157488073 1.525 ns/op 0 B/op 0 allocs/op -BenchmarkIOResultValid 155878063 1.531 ns/op 0 B/op 0 allocs/op -BenchmarkReadinessValid 185284144 1.296 ns/op 0 B/op 0 allocs/op -BenchmarkReadinessValid 182164318 1.306 ns/op 0 B/op 0 allocs/op -BenchmarkReadinessValid 185262277 1.244 ns/op 0 B/op 0 allocs/op -BenchmarkReadinessValid 185240245 1.215 ns/op 0 B/op 0 allocs/op -BenchmarkReadinessValid 185739687 1.293 ns/op 0 B/op 0 allocs/op -BenchmarkServiceReportValidResult 136721534 1.750 ns/op 0 B/op 0 allocs/op -BenchmarkServiceReportValidResult 138103670 1.738 ns/op 0 B/op 0 allocs/op -BenchmarkServiceReportValidResult 138027730 1.751 ns/op 0 B/op 0 allocs/op -BenchmarkServiceReportValidResult 138258948 1.736 ns/op 0 B/op 0 allocs/op -BenchmarkServiceReportValidResult 136463666 1.753 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceService 26894341 9.389 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceService 25575000 9.394 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceService 21474025 9.456 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceService 25664208 9.456 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceService 25602025 9.384 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceBase 60221463 3.974 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceBase 60057805 3.995 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceBase 60612336 3.976 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceBase 60511717 4.002 ns/op 0 B/op 0 allocs/op -BenchmarkResolveNamespaceBase 60594369 3.979 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/namespace/core 7.087s +BenchmarkEndpointValid 100000000 2.193 ns/op 0 B/op 0 allocs/op +BenchmarkEndpointValid 100000000 2.198 ns/op 0 B/op 0 allocs/op +BenchmarkEndpointValid 100000000 2.191 ns/op 0 B/op 0 allocs/op +BenchmarkEndpointValid 100000000 2.200 ns/op 0 B/op 0 allocs/op +BenchmarkEndpointValid 100000000 2.197 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 153882529 1.547 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 173159643 1.359 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 180797736 1.412 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 159120337 1.509 ns/op 0 B/op 0 allocs/op +BenchmarkIOResultValid 159331755 1.506 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 186933264 1.283 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 186813445 1.284 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 186797407 1.284 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 187157304 1.208 ns/op 0 B/op 0 allocs/op +BenchmarkReadinessValid 186490232 1.238 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 139538221 1.719 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 139516539 1.720 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 139484652 1.723 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 139281972 1.723 ns/op 0 B/op 0 allocs/op +BenchmarkServiceReportValidResult 139606410 1.719 ns/op 0 B/op 0 allocs/op +BenchmarkComposeNamespace/empty 4557216 52.61 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/empty 4671328 50.90 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/empty 4702328 51.01 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/empty 4606741 50.29 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/empty 4685853 50.36 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 4319014 55.55 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 4289137 56.37 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 4287337 55.72 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 4253270 56.11 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/single 4050302 56.23 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 3342880 71.88 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 3312156 72.72 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 3212180 74.86 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 3184771 75.61 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/three 3243297 74.82 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2960754 81.35 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2922031 82.01 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2924672 81.71 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2992026 79.30 ns/op 576 B/op 1 allocs/op +BenchmarkComposeNamespace/overflow 2970753 80.01 ns/op 576 B/op 1 allocs/op +BenchmarkResolveNamespaceService 17297092 13.96 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceService 17387170 13.85 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceService 17385682 14.29 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceService 16774833 14.38 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceService 16574571 14.18 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 11563044 20.83 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 11313538 20.80 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 11583759 20.83 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 11450937 20.78 ns/op 0 B/op 0 allocs/op +BenchmarkResolveNamespaceBase 11581442 20.75 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/namespace/core 11.869s +PASS +ok github.com/wago-org/net/internal/namespace/dhcpv4 0.002s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/namespace/dhcpv6 +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkNewName 2780456 86.41 ns/op 0 B/op 0 allocs/op +BenchmarkNewName 2768955 86.88 ns/op 0 B/op 0 allocs/op +BenchmarkNewName 2790592 86.27 ns/op 0 B/op 0 allocs/op +BenchmarkNewName 2774275 86.53 ns/op 0 B/op 0 allocs/op +BenchmarkNewName 2774085 86.63 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1906482 126.0 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1906723 125.9 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1897429 126.7 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1895824 125.9 ns/op 0 B/op 0 allocs/op +BenchmarkNameValid 1902985 126.0 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 691542 344.7 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 698252 345.0 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 695793 343.2 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 697826 340.8 ns/op 0 B/op 0 allocs/op +BenchmarkConfigurationValid 706148 343.2 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/namespace/dhcpv6 3.604s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/namespace/dns cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkRequestValid 8198913 29.52 ns/op 0 B/op 0 allocs/op -BenchmarkRequestValid 8251423 29.38 ns/op 0 B/op 0 allocs/op -BenchmarkRequestValid 8142860 29.53 ns/op 0 B/op 0 allocs/op -BenchmarkRequestValid 8173642 29.31 ns/op 0 B/op 0 allocs/op -BenchmarkRequestValid 8184475 29.60 ns/op 0 B/op 0 allocs/op -BenchmarkRecordValid 7993438 30.55 ns/op 0 B/op 0 allocs/op -BenchmarkRecordValid 7948935 29.97 ns/op 0 B/op 0 allocs/op -BenchmarkRecordValid 8355049 29.15 ns/op 0 B/op 0 allocs/op -BenchmarkRecordValid 7861500 30.88 ns/op 0 B/op 0 allocs/op -BenchmarkRecordValid 7957437 30.18 ns/op 0 B/op 0 allocs/op +BenchmarkRequestValid 8158941 29.40 ns/op 0 B/op 0 allocs/op +BenchmarkRequestValid 8126137 29.55 ns/op 0 B/op 0 allocs/op +BenchmarkRequestValid 8116765 29.38 ns/op 0 B/op 0 allocs/op +BenchmarkRequestValid 8075660 29.52 ns/op 0 B/op 0 allocs/op +BenchmarkRequestValid 8222242 29.48 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 7810568 30.82 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 7737734 30.75 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 7856374 29.83 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 7771605 29.54 ns/op 0 B/op 0 allocs/op +BenchmarkRecordValid 8264335 28.93 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/namespace/dns 2.384s +PASS +ok github.com/wago-org/net/internal/namespace/icmpv4 0.002s +PASS +ok github.com/wago-org/net/internal/namespace/icmpv6 0.002s +PASS +ok github.com/wago-org/net/internal/namespace/ipv6 0.002s PASS -ok github.com/wago-org/net/internal/namespace/dns 2.419s +ok github.com/wago-org/net/internal/namespace/linklocal4 0.002s +PASS +ok github.com/wago-org/net/internal/namespace/mdns 0.001s +PASS +ok github.com/wago-org/net/internal/namespace/ntp 0.001s PASS ok github.com/wago-org/net/internal/namespace/tcp 0.002s PASS -ok github.com/wago-org/net/internal/namespace/udp 0.002s +ok github.com/wago-org/net/internal/namespace/tls 0.002s +PASS +ok github.com/wago-org/net/internal/namespace/udp 0.001s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/packetlink cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkLinkTryEnqueueDequeue/bytes=64 9416025 25.75 ns/op 2485.41 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=64 9380936 25.67 ns/op 2493.61 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=64 9324313 25.85 ns/op 2475.77 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=64 9367752 25.62 ns/op 2498.35 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=64 9369528 25.83 ns/op 2477.72 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=512 6924652 34.66 ns/op 14773.43 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=512 6879162 34.80 ns/op 14713.94 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=512 6954789 34.66 ns/op 14772.04 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=512 6949320 34.84 ns/op 14696.56 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=512 6951610 34.65 ns/op 14775.08 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=1514 4665609 51.53 ns/op 29380.24 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=1514 4259743 54.76 ns/op 27647.13 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=1514 4662968 51.81 ns/op 29224.39 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=1514 4682233 51.38 ns/op 29467.08 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryEnqueueDequeue/bytes=1514 4666144 51.45 ns/op 29428.04 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryFillDequeue 6196284 39.02 ns/op 38796.05 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryFillDequeue 6140192 39.16 ns/op 38665.08 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryFillDequeue 6146992 38.88 ns/op 38939.23 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryFillDequeue 6136112 39.06 ns/op 38760.53 MB/s 0 B/op 0 allocs/op -BenchmarkLinkTryFillDequeue 6179503 39.11 ns/op 38712.54 MB/s 0 B/op 0 allocs/op -BenchmarkLinkSnapshot 20033079 12.00 ns/op 0 B/op 0 allocs/op -BenchmarkLinkSnapshot 19928684 12.11 ns/op 0 B/op 0 allocs/op -BenchmarkLinkSnapshot 20064291 12.01 ns/op 0 B/op 0 allocs/op -BenchmarkLinkSnapshot 20012742 12.12 ns/op 0 B/op 0 allocs/op -BenchmarkLinkSnapshot 20183811 11.99 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/packetlink 6.022s -PASS -ok github.com/wago-org/net/internal/plugin 0.002s +BenchmarkLinkTryEnqueueDequeue/bytes=64 9511140 25.40 ns/op 2519.62 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=64 9472728 25.35 ns/op 2524.20 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=64 9516451 25.16 ns/op 2543.86 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=64 9460766 25.63 ns/op 2497.42 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=64 9528330 25.46 ns/op 2513.92 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6616377 35.65 ns/op 14363.78 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6710314 35.84 ns/op 14284.09 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6720837 35.71 ns/op 14339.10 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6607320 35.67 ns/op 14355.43 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=512 6683236 35.77 ns/op 14314.68 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4681119 51.75 ns/op 29255.03 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4648429 51.65 ns/op 29311.29 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4596576 52.17 ns/op 29018.79 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4550461 52.36 ns/op 28917.71 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryEnqueueDequeue/bytes=1514 4550994 52.67 ns/op 28745.92 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 5636127 42.15 ns/op 35923.38 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 5974557 39.78 ns/op 38063.41 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 5660532 42.33 ns/op 35764.79 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 6041562 39.97 ns/op 37874.32 MB/s 0 B/op 0 allocs/op +BenchmarkLinkTryFillDequeue 5956616 40.11 ns/op 37745.40 MB/s 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 19486886 12.38 ns/op 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 19726437 12.24 ns/op 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 19603284 12.29 ns/op 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 19757646 12.23 ns/op 0 B/op 0 allocs/op +BenchmarkLinkSnapshot 19617508 12.28 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/packetlink 6.006s +goos: linux +goarch: amd64 +pkg: github.com/wago-org/net/internal/plugin +cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics +BenchmarkHostStateAttached 22558251 10.80 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateAttached 22269957 10.75 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateAttached 22311588 10.77 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateAttached 22116836 10.82 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateAttached 22185231 10.83 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 24341844 9.780 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 24411847 9.762 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 24646514 9.802 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 24595392 9.754 ns/op 0 B/op 0 allocs/op +BenchmarkHostStateUnattached 24332295 9.839 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/plugin 2.404s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/policy cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkMerge 528517 452.9 ns/op 1136 B/op 16 allocs/op -BenchmarkMerge 552265 450.2 ns/op 1136 B/op 16 allocs/op -BenchmarkMerge 552637 452.0 ns/op 1136 B/op 16 allocs/op -BenchmarkMerge 553939 449.5 ns/op 1136 B/op 16 allocs/op -BenchmarkMerge 547442 452.4 ns/op 1136 B/op 16 allocs/op -BenchmarkCompile 507566 486.0 ns/op 616 B/op 13 allocs/op -BenchmarkCompile 518680 496.8 ns/op 616 B/op 13 allocs/op -BenchmarkCompile 520302 490.0 ns/op 616 B/op 13 allocs/op -BenchmarkCompile 520390 489.3 ns/op 616 B/op 13 allocs/op -BenchmarkCompile 521138 490.7 ns/op 616 B/op 13 allocs/op -BenchmarkPolicyCheckEndpoint 6916110 34.75 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpoint 6968334 34.41 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpoint 6986685 34.62 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpoint 6910521 34.81 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpoint 6867069 34.63 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=1 12416990 19.33 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=1 12462151 19.39 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=1 12596799 19.06 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=1 12587943 19.24 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=1 12383194 19.19 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=16 1380595 173.4 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=16 1389633 172.8 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=16 1378746 174.8 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=16 1388677 172.9 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=16 1369639 176.3 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=256 89895 2695 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=256 90084 2677 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=256 84494 2811 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=256 86749 2782 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckEndpointScaling/rules=256 86511 2753 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckDNS 3325851 72.23 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckDNS 3226066 73.27 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckDNS 3324189 72.21 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckDNS 3274168 72.59 ns/op 0 B/op 0 allocs/op -BenchmarkPolicyCheckDNS 3316132 72.42 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/policy 8.512s +BenchmarkMerge 478700 500.4 ns/op 1136 B/op 16 allocs/op +BenchmarkMerge 503905 484.1 ns/op 1136 B/op 16 allocs/op +BenchmarkMerge 492050 504.2 ns/op 1136 B/op 16 allocs/op +BenchmarkMerge 440992 500.1 ns/op 1136 B/op 16 allocs/op +BenchmarkMerge 499797 502.0 ns/op 1136 B/op 16 allocs/op +BenchmarkCompile 448900 536.9 ns/op 680 B/op 13 allocs/op +BenchmarkCompile 456038 531.5 ns/op 680 B/op 13 allocs/op +BenchmarkCompile 451916 522.4 ns/op 680 B/op 13 allocs/op +BenchmarkCompile 466992 519.7 ns/op 680 B/op 13 allocs/op +BenchmarkCompile 464238 529.9 ns/op 680 B/op 13 allocs/op +BenchmarkPolicyCheckEndpoint 6304701 37.82 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpoint 6330745 37.58 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpoint 6395642 37.53 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpoint 6452949 37.12 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpoint 6461420 37.20 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 11842664 20.12 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 11930298 20.09 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 11923978 20.12 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 11930998 20.13 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=1 12073740 19.82 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1401212 171.3 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1405506 170.7 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1397802 171.5 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1403572 170.8 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=16 1407160 170.5 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 93129 2600 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 92078 2613 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 92233 2602 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 93511 2580 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckEndpointScaling/rules=256 92690 2588 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3354250 71.62 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3451369 70.11 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3473533 68.76 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3482661 69.03 ns/op 0 B/op 0 allocs/op +BenchmarkPolicyCheckDNS 3509600 69.44 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/policy 8.423s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/quota cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkReserveResourceRollback 5126019 46.84 ns/op 80 B/op 1 allocs/op -BenchmarkReserveResourceRollback 5149105 46.71 ns/op 80 B/op 1 allocs/op -BenchmarkReserveResourceRollback 5007825 46.75 ns/op 80 B/op 1 allocs/op -BenchmarkReserveResourceRollback 5154348 46.41 ns/op 80 B/op 1 allocs/op -BenchmarkReserveResourceRollback 5148312 46.94 ns/op 80 B/op 1 allocs/op -BenchmarkReserveResourceCommitRelease 3700419 65.19 ns/op 88 B/op 2 allocs/op -BenchmarkReserveResourceCommitRelease 3650796 65.46 ns/op 88 B/op 2 allocs/op -BenchmarkReserveResourceCommitRelease 3681394 65.44 ns/op 88 B/op 2 allocs/op -BenchmarkReserveResourceCommitRelease 3693134 65.34 ns/op 88 B/op 2 allocs/op -BenchmarkReserveResourceCommitRelease 3711667 65.05 ns/op 88 B/op 2 allocs/op -BenchmarkAcquireResourceAndQueuedBytesRelease 8276235 28.90 ns/op 0 B/op 0 allocs/op -BenchmarkAcquireResourceAndQueuedBytesRelease 8278396 28.81 ns/op 0 B/op 0 allocs/op -BenchmarkAcquireResourceAndQueuedBytesRelease 8260074 29.01 ns/op 0 B/op 0 allocs/op -BenchmarkAcquireResourceAndQueuedBytesRelease 8309122 28.78 ns/op 0 B/op 0 allocs/op -BenchmarkAcquireResourceAndQueuedBytesRelease 8323042 28.91 ns/op 0 B/op 0 allocs/op -BenchmarkAcquireResourceParallel 7859012 30.72 ns/op 0 B/op 0 allocs/op -BenchmarkAcquireResourceParallel 7801636 30.83 ns/op 0 B/op 0 allocs/op -BenchmarkAcquireResourceParallel 7869502 30.75 ns/op 0 B/op 0 allocs/op -BenchmarkAcquireResourceParallel 7769764 30.93 ns/op 0 B/op 0 allocs/op -BenchmarkAcquireResourceParallel 7830189 30.81 ns/op 0 B/op 0 allocs/op -BenchmarkWithService 10798712 22.31 ns/op 0 B/op 0 allocs/op -BenchmarkWithService 10783735 22.26 ns/op 0 B/op 0 allocs/op -BenchmarkWithService 10746681 22.16 ns/op 0 B/op 0 allocs/op -BenchmarkWithService 10952059 21.92 ns/op 0 B/op 0 allocs/op -BenchmarkWithService 11039833 22.06 ns/op 0 B/op 0 allocs/op -BenchmarkSnapshot 20050284 11.83 ns/op 0 B/op 0 allocs/op -BenchmarkSnapshot 20410156 12.34 ns/op 0 B/op 0 allocs/op -BenchmarkSnapshot 20223002 11.81 ns/op 0 B/op 0 allocs/op -BenchmarkSnapshot 20092005 12.00 ns/op 0 B/op 0 allocs/op -BenchmarkSnapshot 20102982 11.82 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/quota 7.375s +BenchmarkReserveResourceRollback 2520078 94.14 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceRollback 2573947 93.12 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceRollback 2572478 93.18 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceRollback 2574072 93.29 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceRollback 2582268 93.44 ns/op 224 B/op 1 allocs/op +BenchmarkReserveResourceCommitRelease 2203822 108.8 ns/op 232 B/op 2 allocs/op +BenchmarkReserveResourceCommitRelease 2183365 109.2 ns/op 232 B/op 2 allocs/op +BenchmarkReserveResourceCommitRelease 2200263 109.1 ns/op 232 B/op 2 allocs/op +BenchmarkReserveResourceCommitRelease 2210296 108.8 ns/op 232 B/op 2 allocs/op +BenchmarkReserveResourceCommitRelease 2209864 108.8 ns/op 232 B/op 2 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3541098 67.51 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3553834 67.66 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3566216 67.29 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3517039 67.99 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceAndQueuedBytesRelease 3518108 68.08 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3711702 64.52 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3696777 64.43 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3721210 64.55 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3714258 64.50 ns/op 0 B/op 0 allocs/op +BenchmarkAcquireResourceParallel 3745256 64.34 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 5619865 42.72 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 5581405 42.63 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 5629723 42.57 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 5580732 42.76 ns/op 0 B/op 0 allocs/op +BenchmarkWithService 5616930 42.78 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 18089641 13.46 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 17854459 13.45 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 17892424 13.36 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 18058248 13.16 ns/op 0 B/op 0 allocs/op +BenchmarkSnapshot 18345420 13.15 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/quota 7.527s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/readiness cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkCoordinatorRegisterUnregister 6249996 38.41 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorRegisterUnregister 6325708 38.04 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorRegisterUnregister 6307662 38.26 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorRegisterUnregister 6355328 37.99 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorRegisterUnregister 6230218 38.65 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=1 8302924 28.64 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=1 8332683 28.67 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=1 7872075 28.85 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=1 8378836 28.85 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=1 8323497 28.59 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=16 1289220 186.7 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=16 1254678 191.1 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=16 1283865 187.1 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=16 1280968 187.3 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=16 1284621 186.7 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=256 87536 2751 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=256 88359 2719 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=256 88528 2725 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=256 88206 2715 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPoll/registrations=256 88424 2731 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollParallel 1295066 187.2 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollParallel 1292198 186.5 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollParallel 1277858 186.6 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollParallel 1289846 185.0 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollParallel 1277114 184.8 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollService 8506231 28.43 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollService 8436920 28.21 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollService 8476546 28.14 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollService 8500249 28.45 ns/op 0 B/op 0 allocs/op -BenchmarkCoordinatorTryPollService 8486625 28.23 ns/op 0 B/op 0 allocs/op -PASS -ok github.com/wago-org/net/internal/readiness 8.141s +BenchmarkCoordinatorRegisterUnregister 6241658 38.56 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorRegisterUnregister 6268711 38.29 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorRegisterUnregister 6282558 38.25 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorRegisterUnregister 6278233 38.19 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorRegisterUnregister 6291474 38.23 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8684407 27.56 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8698630 27.52 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8739728 27.47 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8751584 27.50 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=1 8720613 27.54 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1301241 184.1 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1311741 183.4 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1291303 185.6 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1295186 185.1 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=16 1293825 185.5 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 86622 2764 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 87439 2734 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 87612 2742 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 86942 2704 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPoll/registrations=256 89077 2695 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1301661 184.5 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1299564 184.3 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1301644 184.1 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1301379 184.0 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollParallel 1305705 183.5 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7888592 30.37 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7912424 30.58 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7803327 30.90 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7681027 30.96 ns/op 0 B/op 0 allocs/op +BenchmarkCoordinatorTryPollService 7810448 30.83 ns/op 0 B/op 0 allocs/op +PASS +ok github.com/wago-org/net/internal/readiness 8.136s PASS ok github.com/wago-org/net/internal/releaseprovenance 0.002s goos: linux goarch: amd64 pkg: github.com/wago-org/net/internal/resource cpu: AMD Ryzen 7 8845HS w/ Radeon 780M Graphics -BenchmarkNewTable 9885622 23.27 ns/op 64 B/op 1 allocs/op -BenchmarkNewTable 10150815 23.57 ns/op 64 B/op 1 allocs/op -BenchmarkNewTable 10275129 23.89 ns/op 64 B/op 1 allocs/op -BenchmarkNewTable 10333686 23.95 ns/op 64 B/op 1 allocs/op -BenchmarkNewTable 9985930 23.71 ns/op 64 B/op 1 allocs/op -BenchmarkTableAddCloseHandle 18895609 12.62 ns/op 0 B/op 0 allocs/op -BenchmarkTableAddCloseHandle 18834120 12.74 ns/op 0 B/op 0 allocs/op -BenchmarkTableAddCloseHandle 18875868 12.98 ns/op 0 B/op 0 allocs/op -BenchmarkTableAddCloseHandle 19220390 12.73 ns/op 0 B/op 0 allocs/op -BenchmarkTableAddCloseHandle 18961330 12.69 ns/op 0 B/op 0 allocs/op -BenchmarkTableLen 57860659 4.174 ns/op 0 B/op 0 allocs/op -BenchmarkTableLen 57759771 4.053 ns/op 0 B/op 0 allocs/op -BenchmarkTableLen 56570364 4.154 ns/op 0 B/op 0 allocs/op -BenchmarkTableLen 58447944 4.059 ns/op 0 B/op 0 allocs/op -BenchmarkTableLen 55966233 4.155 ns/op 0 B/op 0 allocs/op -BenchmarkMakeHandle 219487938 1.198 ns/op 0 B/op 0 allocs/op -BenchmarkMakeHandle 182073114 1.307 ns/op 0 B/op 0 allocs/op -BenchmarkMakeHandle 185232319 1.262 ns/op 0 B/op 0 allocs/op -BenchmarkMakeHandle 185362236 1.251 ns/op 0 B/op 0 allocs/op -BenchmarkMakeHandle 185548467 1.294 ns/op 0 B/op 0 allocs/op -BenchmarkSplitHandle 182174163 1.330 ns/op 0 B/op 0 allocs/op -BenchmarkSplitHandle 182840050 1.307 ns/op 0 B/op 0 allocs/op -BenchmarkSplitHandle 182163898 1.323 ns/op 0 B/op 0 allocs/op -BenchmarkSplitHandle 180711424 1.325 ns/op 0 B/op 0 allocs/op -BenchmarkSplitHandle 180342476 1.332 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupBadHandle 44021050 5.481 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupBadHandle 43916301 5.463 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupBadHandle 44023788 5.503 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupBadHandle 44409426 5.510 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupBadHandle 43846051 5.463 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookup 39371196 6.088 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookup 39674936 6.128 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookup 39630621 6.135 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookup 38986917 6.164 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookup 39465057 6.128 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupParallel 39592566 6.150 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupParallel 39143072 6.115 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupParallel 39075002 6.181 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupParallel 36732192 6.217 ns/op 0 B/op 0 allocs/op -BenchmarkTableLookupParallel 39217537 6.100 ns/op 0 B/op 0 allocs/op -BenchmarkTableCloseLive/resources=1 1161429 202.7 ns/op 176 B/op 4 allocs/op -BenchmarkTableCloseLive/resources=1 1000000 203.9 ns/op 176 B/op 4 allocs/op -BenchmarkTableCloseLive/resources=1 1186148 203.9 ns/op 176 B/op 4 allocs/op -BenchmarkTableCloseLive/resources=1 1000000 206.3 ns/op 176 B/op 4 allocs/op -BenchmarkTableCloseLive/resources=1 1000000 204.6 ns/op 176 B/op 4 allocs/op -BenchmarkTableCloseLive/resources=64 73803 3314 ns/op 10080 B/op 73 allocs/op -BenchmarkTableCloseLive/resources=64 71984 3193 ns/op 10080 B/op 73 allocs/op -BenchmarkTableCloseLive/resources=64 73813 3204 ns/op 10080 B/op 73 allocs/op -BenchmarkTableCloseLive/resources=64 73978 3197 ns/op 10080 B/op 73 allocs/op -BenchmarkTableCloseLive/resources=64 73843 3205 ns/op 10080 B/op 73 allocs/op -BenchmarkTableCloseLive/resources=1024 5181 46325 ns/op 157408 B/op 1037 allocs/op -BenchmarkTableCloseLive/resources=1024 4442 46759 ns/op 157408 B/op 1037 allocs/op -BenchmarkTableCloseLive/resources=1024 5088 46467 ns/op 157408 B/op 1037 allocs/op -BenchmarkTableCloseLive/resources=1024 4402 46982 ns/op 157408 B/op 1037 allocs/op -BenchmarkTableCloseLive/resources=1024 5144 46735 ns/op 157408 B/op 1037 allocs/op -PASS -ok github.com/wago-org/net/internal/resource 14.475s -PASS -ok github.com/wago-org/net/register 0.003s +BenchmarkNewTable 9954633 23.11 ns/op 64 B/op 1 allocs/op +BenchmarkNewTable 10147074 23.16 ns/op 64 B/op 1 allocs/op +BenchmarkNewTable 10151164 23.06 ns/op 64 B/op 1 allocs/op +BenchmarkNewTable 10478871 22.92 ns/op 64 B/op 1 allocs/op +BenchmarkNewTable 10482852 23.05 ns/op 64 B/op 1 allocs/op +BenchmarkTableAddCloseHandle 16381555 15.19 ns/op 0 B/op 0 allocs/op +BenchmarkTableAddCloseHandle 15571184 15.14 ns/op 0 B/op 0 allocs/op +BenchmarkTableAddCloseHandle 16019100 15.17 ns/op 0 B/op 0 allocs/op +BenchmarkTableAddCloseHandle 15970282 15.09 ns/op 0 B/op 0 allocs/op +BenchmarkTableAddCloseHandle 15060195 15.25 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 59616679 4.135 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 53390995 4.151 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 57294906 4.169 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 57969432 4.111 ns/op 0 B/op 0 allocs/op +BenchmarkTableLen 58792201 4.221 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 202694120 1.197 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 216062674 1.223 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 181817793 1.320 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 195147874 1.274 ns/op 0 B/op 0 allocs/op +BenchmarkMakeHandle 212928819 1.115 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 182141994 1.320 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 180529485 1.331 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 181511865 1.323 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 181512128 1.321 ns/op 0 B/op 0 allocs/op +BenchmarkSplitHandle 181089434 1.330 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 43321736 5.550 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 43299188 5.542 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 43636513 5.495 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 43075326 5.543 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupBadHandle 43150519 5.534 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 38548309 6.211 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 38500544 6.175 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 38751973 6.228 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 38603163 6.264 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookup 38141012 6.308 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 37503099 6.502 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 36481210 6.552 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 36610903 6.546 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 36825387 6.555 ns/op 0 B/op 0 allocs/op +BenchmarkTableLookupParallel 36672103 6.570 ns/op 0 B/op 0 allocs/op +BenchmarkTableCloseLive/resources=1 1193704 198.7 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=1 1000000 201.1 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=1 1187584 208.8 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=1 1211116 196.4 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=1 1000000 201.4 ns/op 176 B/op 3 allocs/op +BenchmarkTableCloseLive/resources=64 67395 3531 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=64 66124 3509 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=64 65739 3520 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=64 65464 3490 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=64 67507 3501 ns/op 9952 B/op 72 allocs/op +BenchmarkTableCloseLive/resources=1024 3879 52657 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableCloseLive/resources=1024 4620 52465 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableCloseLive/resources=1024 4568 52161 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableCloseLive/resources=1024 3908 52718 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableCloseLive/resources=1024 4024 53320 ns/op 155360 B/op 1036 allocs/op +BenchmarkTableClosePreloaded/resources=1 5324065 43.74 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1 5375277 43.09 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1 5419888 43.43 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1 5417320 43.89 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1 5253975 45.04 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 237975 1092 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 234764 1074 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 239091 1071 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 239784 1062 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=64 238192 1056 ns/op 64 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 15386 15347 ns/op 66 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 15590 15428 ns/op 66 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 15628 15392 ns/op 66 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 15604 15384 ns/op 66 B/op 1 allocs/op +BenchmarkTableClosePreloaded/resources=1024 15651 15451 ns/op 66 B/op 1 allocs/op +PASS +ok github.com/wago-org/net/internal/resource 19.029s +? github.com/wago-org/net/internal/tlslimits [no test files] +PASS +ok github.com/wago-org/net/ipv6 0.003s +PASS +ok github.com/wago-org/net/ipv6/register 0.003s +PASS +ok github.com/wago-org/net/linklocal4 0.003s +PASS +ok github.com/wago-org/net/linklocal4/register 0.003s +PASS +ok github.com/wago-org/net/mdns 0.003s +PASS +ok github.com/wago-org/net/mdns/register 0.003s +PASS +ok github.com/wago-org/net/ntp 0.003s +PASS +ok github.com/wago-org/net/ntp/register 0.003s +PASS +ok github.com/wago-org/net/register 0.002s PASS ok github.com/wago-org/net/tcp 0.002s PASS -ok github.com/wago-org/net/tcp/register 0.002s +ok github.com/wago-org/net/tcp/register 0.003s +PASS +ok github.com/wago-org/net/tls 0.003s PASS -ok github.com/wago-org/net/udp 0.003s +ok github.com/wago-org/net/udp 0.002s PASS -ok github.com/wago-org/net/udp/register 0.003s +ok github.com/wago-org/net/udp/register 0.002s From 371210b1ebf2843fafb00d3e93264a9ea4fe025f Mon Sep 17 00:00:00 2001 From: Wago Networking Agent Date: Mon, 20 Jul 2026 05:44:21 +0000 Subject: [PATCH 6/7] docs: record the TLS release and platform boundary --- README.md | 10 +++++++ agent-todo.md | 37 +++++++++++++++++++++++++ docs/architecture.md | 15 ++++++----- docs/ci.md | 15 ++++++++++- docs/release-signoff.md | 60 +++++++++++++++++++++++++++++++++-------- docs/tls.md | 10 ++++--- 6 files changed, 126 insertions(+), 21 deletions(-) diff --git a/README.md b/README.md index f3fa949..5463373 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,16 @@ TLS intentionally has no `tls/register` zero-configuration extension and no credentials, and profile IDs are deployment authority that must be supplied by explicit Go composition; the repository does not invent placeholder TLS policy. +The complete TLS implementation is standard-Go-only. TinyGo 0.41.1 lacks the +required `crypto/tls` client APIs, so the repository provides no TinyGo stub, +placeholder guest module, or fake handshake. `scripts/tinygo-supported-test.sh` +tests the exact reviewed non-TLS package surface and fails closed if the five +standard-Go-only TLS packages change without review. `scripts/tls-signoff.sh` +retains separate ordinary and race evidence for explicit TLS composition, +security, ABI, mixed transport, EOF, quota, and worker teardown. TLS remains +client-only, granular-only, outside aggregate `register`, and experimental until +the complete strict release and executed arm64 requirements are satisfied. + Profiles are finite and host-defined. The guest selects only a profile ID, remote IP endpoint, and authorized verification name. Certificate-chain and DNS/IP SAN verification are mandatory; Common Name fallback, key logging, diff --git a/agent-todo.md b/agent-todo.md index cbc2632..a45aff5 100644 --- a/agent-todo.md +++ b/agent-todo.md @@ -1569,3 +1569,40 @@ Broad validation at recursion end: ### Remaining work No repository-owned workstream or completion criterion from this hardening request is currently known to remain. The only strict release-attempt prerequisite observed in this workspace is the externally owned dirty production-Wago worktree above. Re-run the exact strict command after that worktree becomes independently clean; do not recurse merely to modify external worktrees or manufacture a passing release result. + +## TLS release/platform integration — July 20, 2026 + +- Added an exact fail-closed TinyGo package matrix. Discovery includes tracked + `testdata` directories and finds 128 repository packages: 123 are tested + individually under TinyGo 0.41.1 and exactly five real-TLS packages are + retained as standard-Go-only with reviewed reasons. +- Added explicit standard-Go TLS signoff with ten ordinary and seven race package + profiles resolving 109 named tests. Evidence covers explicit composition, + security, ABI, dependency isolation, mixed transport, EOF/truncation, quota + rollback, worker exit, and deterministic teardown without public internet. +- Extended arm64 evidence from one root smoke binary to four binaries covering + root networking, `internal/backend/gotls`, mixed lneto TLS transport, and the + public TLS registration surface. All four cross-compile; local execution is + currently `skipped-no-runner`, not executed support. +- Added schema-v3 provenance verification for TLS/TinyGo manifests and logs, + package counts, exclusions, arm64 checksums, and the explicit TinyGo TLS + limitation while retaining schema-v2 historical review compatibility. +- Added pinned TinyGo and named standard-Go TLS hosted CI jobs. Aggregate + `register`, all twelve canonical custom CLI bundles, and the absent + `tls/register` / `net-tls` surfaces remain unchanged. +- Refreshed benchmark evidence on the same Ryzen 7 8845HS / Go 1.24.4 platform + with five 200 ms samples and `GOMAXPROCS=1`. Discovery finds 172 top-level + benchmark targets in 50 packages. The retained TLS handshake median is about + 1.47 ms with 388,334 B and 935 allocations; fixed-ring, profile authorization, + TCP local-port lease, and live TCP round-trip paths remain zero-allocation. +- Fuzz discovery finds 44 targets in 33 packages, including four TLS-owned + targets. +- Reconstructed a clean exact production Wago worktree from retained immutable + source objects: commit `97e6f91e6c822491577faa86f3c30aa5a8fff1e8`, tree + `adbba31c51996f1c1d6d3c2069de8ddf0afd94ee`, ordered parents + `54499ba5135f69a062e23a7255f4a408d6cecf8c` and + `ffd5ef4b122cbd019897eeea3503789ab5860e4a`. +- TLS remains client-only, explicitly configured, granular-only, + standard-Go-only, and experimental. Production readiness remains blocked until + the final strict gate completes and arm64 TLS execution is retained from an + accepted runner. diff --git a/docs/architecture.md b/docs/architecture.md index 4eca5a8..e3f86b0 100644 --- a/docs/architecture.md +++ b/docs/architecture.md @@ -301,8 +301,10 @@ Go composition may compile the neutral TCP facet and private lneto TCP adapter, but not the public TCP facade, TCP binding, TCP instance operations, or TCP ABI. The root `register` package intentionally continues to compose the eleven previously signed-off protocols in one extension rather than using the aggregate -compatibility constructor. TLS remains granular-only until TinyGo and complete -release-signoff evidence are refreshed. +compatibility constructor. TLS remains granular-only. Standard Go has a separate +named TLS release matrix; TinyGo tests an exact fail-closed 123-package supported +surface while explicitly excluding the five-package real TLS closure. No TinyGo +TLS facade or guest module is compiled. `internal/readiness` attaches a finite coordinator to each instance resource table. Registrations retain opaque handle plus exact kind, level-triggered polls @@ -385,10 +387,11 @@ and the next lease receives fresh parent and worker identities. ## Release gate `scripts/release-signoff.sh` is the single reproducible local/CI entry point. It -pins the merged Wago branch and the lneto/WASI audits, runs standard Go, race, -discovered bounded fuzz, every benchmark discovered by -`scripts/benchmark-smoke.sh`, TinyGo, a distinct package cross-build, optional -bounded native/QEMU arm64 execution, custom CLI inspection, source-boundary and +pins the merged Wago branch and the lneto/WASI audits, runs complete standard Go, +a named TLS ordinary/race signoff, discovered bounded fuzz, every benchmark +discovered by `scripts/benchmark-smoke.sh`, the exact TinyGo-supported package +matrix, a distinct package cross-build, optional bounded native/QEMU/custom +arm64 execution across four root/TLS binaries, custom CLI inspection, source-boundary and plugin-plan compatibility and reviewed-upstream WASI audits, companion repository tests, and final clean checks. It then exports deterministic non-thin Git packs containing the exact plugin subject and pinned Wago/lneto/WASI commit diff --git a/docs/ci.md b/docs/ci.md index d2a78e9..962afd6 100644 --- a/docs/ci.md +++ b/docs/ci.md @@ -2,10 +2,16 @@ `.github/workflows/ci.yml` runs on pull requests, pushes to `main`, manual dispatches, and a weekly schedule. The workflow uses Go 1.24.4 with the Go module -and build caches enabled and has five bounded jobs: +and build caches enabled and has seven bounded jobs: - **quality** runs the ordinary suite, one shuffled suite, `go vet`, and the backend/source-boundary guard; +- **tls-standard-go** runs `scripts/tls-signoff.sh`, retaining the exact public + composition, security, ABI, dependency, mixed-transport, EOF, quota, and worker + lifecycle ordinary/race evidence; +- **tinygo-supported** installs pinned TinyGo 0.41.1 and runs + `scripts/tinygo-supported-test.sh` across the exact 123-package supported + surface while retaining the reviewed five-package TLS exclusion; - **race** runs the complete suite with the race detector and shuffle, with five repetitions only for scheduled or manually requested deep checks; - **fuzz-smoke** runs all targets discovered by `scripts/fuzz-smoke.sh` on weekly @@ -16,6 +22,13 @@ and build caches enabled and has five bounded jobs: - **portability** runs strict pointer instrumentation and the strongest truthful linux/386 coverage currently possible. +TLS is intentionally absent from TinyGo rather than represented by a stub. The +TinyGo job uploads its supported and excluded manifests, canonical detail, and +per-package logs on failure and for scheduled/manual runs. The standard-Go TLS +job similarly retains its package/test manifests and logs. Static repository +tests require both script invocations and the pinned TinyGo version to remain in +the workflow. + The module intentionally develops against exact local Wago and lneto worktrees. `scripts/ci-prepare-dependencies.sh` creates the ignored `.audit/wago` and `.audit/lneto` replacements at the pinned reviewed revisions when they are not diff --git a/docs/release-signoff.md b/docs/release-signoff.md index 4ffb39a..a6aba51 100644 --- a/docs/release-signoff.md +++ b/docs/release-signoff.md @@ -21,10 +21,12 @@ ALPN, truncation, corruption, bounded-queue, quota, and worker-join checks apply to explicit `tls.Register` composition fixtures separately. TLS has no self-registering extension and no canonical custom-CLI policy entry because a zero-configuration bundle would have to invent deployment trust and identity -authority. Aggregate completeness therefore remains exact without claiming TLS -signoff. TLS must not be called production-ready until the complete release gate -is regenerated with TLS-aware lifecycle evidence and a truthful TinyGo decision -for `crypto/tls` and `crypto/x509`. +authority. Aggregate completeness therefore remains exact without claiming aggregate TLS +support. The release gate now retains an explicit `tls-standard-go` check and a +machine-verified TinyGo supported/excluded package matrix. TinyGo TLS is recorded +as `unsupported-explicit`: no stub, guest module, or fake engine exists. TLS must +not be called production-ready until the complete strict gate passes for the +final subject and arm64 TLS execution is retained from a suitable runner. ## Pinned inputs @@ -85,9 +87,14 @@ The gate performs, in order: bounded run per package/target with `-benchmem`, `100ms`, `count=1`, and `cpu=1`; zero discovered targets, any failed target, or incomplete evidence fails the gate after all discovered targets have been attempted; -5. TinyGo tests and a `linux/arm64` standard-Go package cross-build; -6. a separately cross-compiled `linux/arm64` test binary and bounded execution - smoke when a native arm64 or `qemu-aarch64` runner is available; set +5. explicit standard-Go TLS ordinary and race suites with retained package, + test, and log manifests; the exact TinyGo-supported package matrix with a + reviewed five-package TLS exclusion closure; and a `linux/arm64` standard-Go + package cross-build; +6. four separately cross-compiled `linux/arm64` test binaries covering root + networking, the Go TLS engine, mixed lneto TCP/TLS transport, and public TLS + composition, with bounded execution of every binary when a native arm64, + `qemu-aarch64`, or explicit runner is available; set `ARM64_EXECUTION=skip` when arm64 execution is outside the selected release profile, which records `skipped-disabled` without claiming or retaining an execution artifact; @@ -122,6 +129,36 @@ The gate performs, in order: 16. standalone semantic verification and deterministic export of a compressed downstream review bundle. +### TLS platform-boundary validation on July 20, 2026 + +The release platform matrix now discovers 128 tracked repository packages. The +reviewed standard-Go-only TLS closure is exactly five packages: + +- `github.com/wago-org/net/internal/backend/gotls`; +- `github.com/wago-org/net/internal/backend/lneto/tls`; +- `github.com/wago-org/net/internal/dependencytest/testdata/tcptls`; +- `github.com/wago-org/net/internal/dependencytest/testdata/tls`; and +- `github.com/wago-org/net/tls`. + +TinyGo 0.41.1 tests the remaining 123 packages individually and retains one log +per package. The explicit standard-Go TLS signoff runs 17 package profiles +(10 ordinary and seven race) resolving 109 named test targets. Arm64 signoff +cross-compiles four test binaries; the current local auto profile is truthfully +`skipped-no-runner`, so it is not execution evidence. Benchmark discovery finds +172 top-level targets in 50 packages, and the canonical five-by-200 ms baseline +now includes TLS handshake, fixed-ring, profile-authorization, shared TCP-port, +and mixed transport paths. Fuzz discovery finds 44 targets in 33 packages, +including four TLS-owned targets. + +The exact production Wago input remains commit +`97e6f91e6c822491577faa86f3c30aa5a8fff1e8`, tree +`adbba31c51996f1c1d6d3c2069de8ddf0afd94ee`, with ordered parents +`54499ba5135f69a062e23a7255f4a408d6cecf8c` and +`ffd5ef4b122cbd019897eeea3503789ab5860e4a`. TLS remains granular-only and +experimental. A complete strict run for the final release-readiness subject is +still required; passing the standard-Go TLS and TinyGo-supported matrices alone +does not establish production readiness. + ### Current repository validation on July 15, 2026 The current branch passed standard Go, shuffled Go, race/shuffle, vet, source @@ -254,13 +291,14 @@ selected protocol, while root `register` must contain all three without reaching `compat`. All selective production graphs also reject the temporary aggregate namespace package and aggregate lneto assembler. -`scripts/arm64-execution-signoff.sh` always cross-compiles a `CGO_ENABLED=0` -arm64 test binary before runner selection. `ARM64_EXECUTION=auto` (the release default) +`scripts/arm64-execution-signoff.sh` always cross-compiles four `CGO_ENABLED=0` +arm64 test binaries before runner selection. `ARM64_EXECUTION=auto` (the release default) records `executed-native`, `executed-qemu`, or a truthful `skipped-no-runner` status. Use `ARM64_EXECUTION=required` on an arm64/QEMU CI tier so absence of a runner is fatal; use `ARM64_EXECUTION=skip` only for an explicitly shortened job. -The smoke runs metadata plus real UDP, TCP, and DNS backend paths under a two -minute timeout. This executed result is intentionally distinct from the package +The smoke runs metadata plus real UDP, TCP, DNS, standard-library TLS, +private-TCP/TLS coexistence, and public TLS registration paths under a separate +two-minute timeout per binary. This executed result is intentionally distinct from the package cross-build and must not be described as native support when skipped. The linked-worker/class integration test is standard-Go/race-only (`!tinygo`): diff --git a/docs/tls.md b/docs/tls.md index 001d3e5..d443751 100644 --- a/docs/tls.md +++ b/docs/tls.md @@ -60,9 +60,13 @@ acknowledgements, or `close_notify`. Shared namespace teardown joins workers before the private TCP participant releases transport state. The current bounded bridge is intentionally granular-only and experimental. It -has standard-Go race and lifecycle coverage, but TLS remains outside the -aggregate `register` bundle until the full repository release-signoff and TinyGo -policy are re-certified for `crypto/tls` and `crypto/x509`. +has a named standard-Go ordinary/race release check in `scripts/tls-signoff.sh`. +TinyGo 0.41.1 does not provide the `crypto/tls` client APIs required by the real +engine, so TLS is explicitly excluded there rather than replaced by a stub. +`scripts/tinygo-supported-test.sh` still tests all 123 supported packages and +compares the exact five-package standard-Go-only closure with the reviewed +manifest. TLS remains outside aggregate `register`; complete strict release and +executed arm64 evidence are still required before production readiness. ## ABI From 138411c76158704b80bc4e930acdfa048d8ee9ec Mon Sep 17 00:00:00 2001 From: Wago Networking Agent Date: Mon, 20 Jul 2026 06:58:48 +0000 Subject: [PATCH 7/7] docs: record the strict TLS release blocker --- agent-todo.md | 10 +++++++--- docs/release-signoff.md | 14 +++++++++++--- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/agent-todo.md b/agent-todo.md index a45aff5..c4481b9 100644 --- a/agent-todo.md +++ b/agent-todo.md @@ -1603,6 +1603,10 @@ No repository-owned workstream or completion criterion from this hardening reque `54499ba5135f69a062e23a7255f4a408d6cecf8c` and `ffd5ef4b122cbd019897eeea3503789ab5860e4a`. - TLS remains client-only, explicitly configured, granular-only, - standard-Go-only, and experimental. Production readiness remains blocked until - the final strict gate completes and arm64 TLS execution is retained from an - accepted runner. + standard-Go-only, and experimental. The strict `RUN_WASI=1 FUZZTIME=30s` + attempt with exact clean inputs stopped fail-closed in + `current-plugin-topology-audit`: Wago `origin/main` is now + `7794acc82692aac4ff98756a46a017d0d8768087`, beyond the reviewed `ff04a6b1` + topology, so the lifecycle/preview-1 integration must be re-reviewed and + re-ported. No provenance or review-bundle hashes were produced. Production + readiness also still requires executed arm64 TLS evidence. diff --git a/docs/release-signoff.md b/docs/release-signoff.md index a6aba51..a345423 100644 --- a/docs/release-signoff.md +++ b/docs/release-signoff.md @@ -155,9 +155,17 @@ The exact production Wago input remains commit `adbba31c51996f1c1d6d3c2069de8ddf0afd94ee`, with ordered parents `54499ba5135f69a062e23a7255f4a408d6cecf8c` and `ffd5ef4b122cbd019897eeea3503789ab5860e4a`. TLS remains granular-only and -experimental. A complete strict run for the final release-readiness subject is -still required; passing the standard-Go TLS and TinyGo-supported matrices alone -does not establish production readiness. +experimental. + +The strict `RUN_WASI=1 FUZZTIME=30s` attempt used clean exact reconstructed Wago +and current-review worktrees, but stopped fail-closed in +`current-plugin-topology-audit` before repository test execution. The audit +observed Wago `origin/main` at `7794acc82692aac4ff98756a46a017d0d8768087`, +which has moved beyond the reviewed topology rooted at `ff04a6b1`; the current +Wago lifecycle/preview-1 integration must be re-reviewed and re-ported before +adoption. No provenance manifest or review bundle was produced by this stopped +attempt. Passing the separate standard-Go TLS and TinyGo-supported matrices does +not establish production readiness. ### Current repository validation on July 15, 2026