[PR #6535] [CLOSED] [client] revert ice filter #28397

Open
opened 2026-08-05 08:06:18 -04:00 by saavagebueno · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/netbirdio/netbird/pull/6535
Author: @pappz
Created: 6/24/2026
Status: Closed

Base: mainHead: fix/revert-ice-filter


📝 Commits (10+)

  • 4cb2c62 Keep signal stream alive while receive loop is blocked on worker handoff
  • 12f2e69 Log signal stall, ICE pair selection, restart cadence, sync content, and receive backpressure to attribute the regression
  • 8446713 temp timing logs
  • 35ed69b Revert "[client] Drop signaling-side ICE candidate filter, drop overlay STUN at mux read-side instead (#6142)"
  • 858e2d1 Add logs
  • 566d21c Set logger in ConnectedIP test to avoid nil deref
  • 31c277b peer/status: move relay-state reads off the main mux
  • 0afe52c Print serial
  • 50ff095 Measure lock times: wgIface, relayMgr, ingressGwMgr, eventStreams
  • b5d2f05 print stack

📊 Changes

22 files changed (+566 additions, -55 deletions)

View changed files

📝 client/iface/bind/ice_bind.go (+4 -1)
📝 client/iface/bind/ice_bind_test.go (+1 -1)
📝 client/iface/device/device_kernel_unix.go (+3 -0)
📝 client/iface/iface.go (+1 -0)
📝 client/iface/iface_new.go (+1 -1)
📝 client/iface/iface_new_android.go (+1 -1)
📝 client/iface/iface_new_ios.go (+1 -1)
📝 client/iface/iface_new_linux.go (+2 -2)
📝 client/iface/udpmux/universal.go (+70 -17)
📝 client/iface/wgproxy/proxy_linux_test.go (+1 -1)
📝 client/iface/wgproxy/proxy_seed_test.go (+1 -1)
📝 client/internal/engine.go (+76 -9)
📝 client/internal/peer/status.go (+127 -9)
client/internal/peer/status_profile.go (+97 -0)
📝 client/internal/peer/worker_ice.go (+34 -1)
📝 client/internal/routemanager/systemops/systemops_generic.go (+3 -6)
📝 client/server/server.go (+1 -0)
📝 shared/relay/client/client.go (+10 -1)
📝 shared/relay/client/client_serverip_test.go (+2 -1)
📝 shared/signal/client/grpc.go (+99 -2)

...and 2 more files

📄 Description

Describe your changes

Stack

Checklist

  • Is it a bug fix
  • Is a typo/documentation fix
  • Is a feature enhancement
  • It is a refactor
  • Created tests that fail without the change (if possible)
  • This change does not modify the public API, gRPC protocols, functionality behavior, CLI / service flags, or introduce a new feature — OR I have discussed it with the NetBird team beforehand (link the issue / Slack thread in the description). See CONTRIBUTING.md.

By submitting this pull request, you confirm that you have read and agree to the terms of the Contributor License Agreement.

Documentation

Select exactly one:

  • I added/updated documentation for this change
  • Documentation is not needed for this change (explain why)

Docs PR URL (required if "docs added" is checked)

Paste the PR link from https://github.com/netbirdio/docs here:

https://github.com/netbirdio/docs/pull/__

Summary by CodeRabbit

  • New Features
    • Added a configurable UDP packet filtering hook for the WireGuard/ICE datapath.
    • Exposed a worker queue-length metric for diagnostics.
  • Bug Fixes
    • Improved route/address validation to reduce unintended traffic, including routed-address checks and remote ICE candidate filtering.
    • Updated UDP mux STUN handling behavior and strengthened local-subnet route blocking across platforms.
  • Improvements / Observability
    • Enhanced engine restart, sync/network-map, and peer operation timing logs.
    • Improved receive-stream watchdog liveness detection under backpressure.
    • Added extra logging around relay client calls.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/netbirdio/netbird/pull/6535 **Author:** [@pappz](https://github.com/pappz) **Created:** 6/24/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `fix/revert-ice-filter` --- ### 📝 Commits (10+) - [`4cb2c62`](https://github.com/netbirdio/netbird/commit/4cb2c62f2af4b892cd45dbb9a664c99da0ea405e) Keep signal stream alive while receive loop is blocked on worker handoff - [`12f2e69`](https://github.com/netbirdio/netbird/commit/12f2e69af2077e266675bf571f60b80acda0c0e5) Log signal stall, ICE pair selection, restart cadence, sync content, and receive backpressure to attribute the regression - [`8446713`](https://github.com/netbirdio/netbird/commit/8446713d282af79ba4ee859945ec2e177da52b50) temp timing logs - [`35ed69b`](https://github.com/netbirdio/netbird/commit/35ed69bfe7e80fc4bb8b920df397e0a22de753f5) Revert "[client] Drop signaling-side ICE candidate filter, drop overlay STUN at mux read-side instead (#6142)" - [`858e2d1`](https://github.com/netbirdio/netbird/commit/858e2d1c3403a4407bf346f5d0a2d2ec054ff935) Add logs - [`566d21c`](https://github.com/netbirdio/netbird/commit/566d21c2c3f4489ce908258208efa5d6a8027749) Set logger in ConnectedIP test to avoid nil deref - [`31c277b`](https://github.com/netbirdio/netbird/commit/31c277b1df018149bdad7cd022eb46c3ca2e6828) peer/status: move relay-state reads off the main mux - [`0afe52c`](https://github.com/netbirdio/netbird/commit/0afe52cfebef9efa913d21a2414af40477168a92) Print serial - [`50ff095`](https://github.com/netbirdio/netbird/commit/50ff095d684dc4b7a9b9941e1ebb647ab267ed73) Measure lock times: wgIface, relayMgr, ingressGwMgr, eventStreams - [`b5d2f05`](https://github.com/netbirdio/netbird/commit/b5d2f054c2ba6c09614b8ea6cb749745ea45aed5) print stack ### 📊 Changes **22 files changed** (+566 additions, -55 deletions) <details> <summary>View changed files</summary> 📝 `client/iface/bind/ice_bind.go` (+4 -1) 📝 `client/iface/bind/ice_bind_test.go` (+1 -1) 📝 `client/iface/device/device_kernel_unix.go` (+3 -0) 📝 `client/iface/iface.go` (+1 -0) 📝 `client/iface/iface_new.go` (+1 -1) 📝 `client/iface/iface_new_android.go` (+1 -1) 📝 `client/iface/iface_new_ios.go` (+1 -1) 📝 `client/iface/iface_new_linux.go` (+2 -2) 📝 `client/iface/udpmux/universal.go` (+70 -17) 📝 `client/iface/wgproxy/proxy_linux_test.go` (+1 -1) 📝 `client/iface/wgproxy/proxy_seed_test.go` (+1 -1) 📝 `client/internal/engine.go` (+76 -9) 📝 `client/internal/peer/status.go` (+127 -9) ➕ `client/internal/peer/status_profile.go` (+97 -0) 📝 `client/internal/peer/worker_ice.go` (+34 -1) 📝 `client/internal/routemanager/systemops/systemops_generic.go` (+3 -6) 📝 `client/server/server.go` (+1 -0) 📝 `shared/relay/client/client.go` (+10 -1) 📝 `shared/relay/client/client_serverip_test.go` (+2 -1) 📝 `shared/signal/client/grpc.go` (+99 -2) _...and 2 more files_ </details> ### 📄 Description ## Describe your changes ## Issue ticket number and link ## Stack <!-- branch-stack --> ### Checklist - [ ] Is it a bug fix - [ ] Is a typo/documentation fix - [ ] Is a feature enhancement - [x] It is a refactor - [ ] Created tests that fail without the change (if possible) - [ ] This change does **not** modify the public API, gRPC protocols, functionality behavior, CLI / service flags, or introduce a new feature — **OR** I have discussed it with the NetBird team beforehand (link the issue / Slack thread in the description). See [CONTRIBUTING.md](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTING.md#discuss-changes-with-the-netbird-team-first). > By submitting this pull request, you confirm that you have read and agree to the terms of the [Contributor License Agreement](https://github.com/netbirdio/netbird/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT.md). ## Documentation Select exactly one: - [ ] I added/updated documentation for this change - [x] Documentation is **not needed** for this change (explain why) ### Docs PR URL (required if "docs added" is checked) Paste the PR link from https://github.com/netbirdio/docs here: https://github.com/netbirdio/docs/pull/__ <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added a configurable UDP packet filtering hook for the WireGuard/ICE datapath. * Exposed a worker queue-length metric for diagnostics. * **Bug Fixes** * Improved route/address validation to reduce unintended traffic, including routed-address checks and remote ICE candidate filtering. * Updated UDP mux STUN handling behavior and strengthened local-subnet route blocking across platforms. * **Improvements / Observability** * Enhanced engine restart, sync/network-map, and peer operation timing logs. * Improved receive-stream watchdog liveness detection under backpressure. * Added extra logging around relay client calls. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
saavagebueno added the pull-request label 2026-08-05 08:06:18 -04:00
Sign in to join this conversation.
No Label pull-request
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: DYNR/netbird#28397