Network acceleration

FreeBSD TCP acceleration ported to Windows NDIS

A network-acceleration company had a FreeBSD kernel engine and needed it to run on Windows without maintaining a separate algorithmic codebase. Joya Systems ported the engine into an NDIS 6 lightweight filter and built the compatibility layer around it.

Platforms

  • Windows
  • FreeBSD codebase

Services

  • NDIS lightweight filter development
  • Kernel porting
  • Performance benchmarking

The challenge

The goal was not a rewrite. The company wanted one shared acceleration codebase running on FreeBSD and Windows, with Windows throughput close to native behavior and enough SMP scaling for hundreds of simultaneous flows.

What we built

We built an NDIS 6 lightweight filter driver and a FreeBSD compatibility shim for the Windows kernel environment. The shim covered synchronization primitives, atomics, callout timers, and other kernel services expected by the existing code.

A key part of the work was translating between FreeBSD mbufs and Windows NET_BUFFER structures without adding unnecessary copies or destroying throughput. The design had to respect both networking models.

We validated the port with iperf benchmarking and SMP flow tests, using performance targets as design constraints throughout the implementation.

Project outcome

  • Ran the FreeBSD TCP acceleration engine on Windows while keeping a single shared algorithmic codebase across both operating systems.
  • Built the NDIS 6 lightweight filter plus a FreeBSD compatibility shim (synchronization, atomics, callout timers) so the existing engine ran unmodified.
  • Translated FreeBSD mbufs to Windows NET_BUFFER without extra copies, and validated throughput and multi-flow SMP scaling with iperf as a design constraint.

Technical takeaway

Cross-kernel ports work best when the porting layer is explicit. Hiding OS differences poorly is worse than acknowledging them and building the right shim.

Working on something similar?

If your team is building in this area — a driver, kernel module, packet path, file system filter, security sensor, or certification plan — start with a technical conversation, not a sales call. Contact Joya Systems and describe the product, platform, and current state of the code.

Related consulting work

Related case studies

Frequently asked questions

Can a FreeBSD kernel networking engine run on Windows without rewriting it?

Yes. We ran the existing FreeBSD engine inside a Windows NDIS 6 lightweight filter by building a compatibility shim for the kernel services it expected — synchronization primitives, atomics, and callout timers — so the company kept one shared algorithmic codebase instead of forking it per OS.

How do you bridge FreeBSD mbufs and Windows NET_BUFFER without killing throughput?

With an explicit translation layer designed to respect both networking models and avoid unnecessary copies. We treated throughput and SMP scaling as design constraints and verified them with iperf and multi-flow tests rather than optimizing after the fact.