• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

openconfig / kne / 36066937338
47%

Build:
DEFAULT BRANCH: main
Ran 24 Sep 2026 10:24PM UTC
Jobs 1
Files 65
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Sep 2026 10:21PM UTC coverage: 47.256% (+2.6%) from 44.626%
36066937338

push

github

web-flow
Implement KNE Packet Bridge daemon and CLI subcommand (#762)

* Add packet bridge subcommand

The bridge subcommand sets up a daemon process that will forward
packets into / out of the KNE cluster over a gRPC streaming service.
An external client can use this service to inject or receive packets
to/from a particular interface defined in the topology.

* Set up docker builds for kne bridge

* Make a symmetric bridge client

This makes bridge usable in KNE-only situations, to link two separate
clusters (like if one cluster has access another doesn't.) More
importantly, it facilitates easy testing of the feature.

* Convenience make targets for Kind testing and release

* Default --logtostderr for bridge, since it's intended for K8s usage

* pre-review

* use a pool for packet buffers
* use cancel so waiting goroutines are freed if readLoop exits on a
  socket error
* use signal.NotifyContext()
* Make sure kne bridge runs root handlers
* distinguish between normal and unexpected stream closure in the client
* Better test coverage

* Lint fixes

* Lint fixes

* Add a comment to point out non-obvious side effect of service block

* Make sure the packet bridge service can be exposed as a node port service

* Add a release command for the packet bridge

* Fix lint warnings

* Re-run go generate

* Add support for ALTS authentication on the bridge service

* Be more permissive with pings because Borg is aggressive with them

* Use socat to get IPv6 into the single-stack K8s cluster

* Lint

* Use a daemonset for socat proxies

* Review comments:

  1. Netpoller Integration & Interruptible ReadPacket:
      • Refactored bridge.go:59 in bridge.go:69 to set the raw socket to non-blocking via unix.
      SetNonblock, wrap the file descriptor in os.NewFile, and use syscall.RawConn (s.rc.Read and s.rc.
      Write).
      • Calling s.Close() (s.f.Close()) now immediately interrupts any pending or concurrent ReadPacket()
      / WritePacket() calls via the Go runtim... (continued)

766 of 1082 new or added lines in 11 files covered. (70.79%)

1 existing line in 1 file now uncovered.

6837 of 14468 relevant lines covered (47.26%)

0.54 hits per line

Uncovered Changes

Lines Coverage ∆ File
141
60.39
bridge/bridge.go
45
68.53
bridge/client.go
35
73.08
cmd/bridge/bridge.go
31
10.67
2.1% cmd/release/release.go
31
0.0
0.0% proto/topo/topo.pb.go
12
53.23
17.12% topo/node/node.go
11
0.0
0.0% proto/controller/controller_grpc.pb.go
7
84.44
65.01% topo/node/forward/forward.go
2
0.0
0.0% proto/wire/wire_grpc.pb.go
1
4.88
-0.03% cmd/root.go

Coverage Regressions

Lines Coverage ∆ File
1
4.88
-0.03% cmd/root.go
Subprojects
ID Flag name Job ID Ran Files Coverage
1 /jobs/188481369 36066937338.1 24 Sep 2026 10:24PM UTC 65
47.26
GitHub Action Run
Source Files on build 36066937338
  • Tree
  • List 65
  • Changed 6
  • Source Changed 0
  • Coverage Changed 6
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • 961d4e5c on github
  • Prev Build on main (#35919878263)
  • Next Build on main (#36068796611)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc