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.