Skip to main content

Vision and Goals

Vision

OCUDU is built with the ambition of becoming The Linux of RAN - a flexible, open platform on which building, extending, and customising for a particular application is easy and efficient.

OCUDU does not aim to be the best RAN software for any single market segment. Instead, it aims to be the platform on which third parties - partners, community contributors, and researchers - can build the best Public Macro, Private 5G, satellite, or defence RAN software, and evolve toward 6G within the same codebase.

This means OCUDU must be:

  • easy to understand for new contributors,
  • easy to extend without breaking existing functionality,
  • deployable across a wide range of processing platforms,
  • and reliable enough to operate in production networks.

The design goals below translate this vision into concrete engineering requirements that every contribution should respect.

Design Goals

Readability

Writing easy-to-read and easy-to-understand code is a first-class design goal. Clear naming, consistent style, and thorough documentation are not optional - they are what allow a global contributor community to work on the same codebase without constant coordination overhead.

Modularity

The software is broken down into well-defined components with clean interfaces. A module that respects its interface contract can be replaced, extended, or tested in isolation without affecting the rest of the application. Modularity is the foundation that makes all other goals achievable.

Flexibility

RAN functionality must be easy to extend or reconfigure - for instance by swapping a module, re-wiring how modules connect, or introducing a new protocol variant. New deployment scenarios should require touching only the relevant layer, not rewriting the whole stack.

Portability

The software must run on multiple processing platforms: x86, ARM, FPGA, GPU, and future architectures. Hardware-specific code is confined to the lowest abstraction layer so that the protocol logic above it remains platform-independent.

Scalability

Application performance must scale with available processing resources - for example, with the number of CPU cores. The design must support both small, single-board deployments and large, multi-socket server installations without code changes in the business logic.

Reliability

The software must minimise bugs and behave predictably under load. Reliability is achieved through a combination of clean architecture (fewer unintended couplings mean fewer unexpected failures), a multi-level testing strategy (unit, component, integration, and E2E tests), and continuous sanitizer and profiling runs in CI.

Maintainability

The codebase must remain easy to change over time. This means keeping technical debt low, enforcing consistent patterns, and ensuring that fixes and improvements can be made with confidence that they will not silently break unrelated parts of the system. Maintainability is not a one-time effort - it is preserved by applying the design principles described in this guide consistently on every contribution.

Interoperability

OCUDU must be easy to extend to operate with third-party hardware and software - radio units, accelerators, external PHYs, and external libraries. External interfaces, like Open Fronthaul, F1, E2, NGAP, etc., are stable and standard-compliant, so that third-party integrations do not require changes to the core stack.