DOCA stands for Data Center-on-a-Chip Architecture, and, basically, it's NVIDIA's software development platform for DPUs. DOCA includes libraries, drivers, and runtimes that enable DPU acceleration.
DOCA code is written in C, and one way to think of it is that DOCA is to DPUs as CUDA is to GPUs.
The main advantage of writing DOCA code is to free up x86 resources so that they can focus exclusively on running applications. DOCA offloads tasks such as getting data in and out of the host to the ARM processors on the DPU.
DOCA applications can run on the host (x86) or on the DPU (ARM), but they normally run on the DPU - although it’s not quite as simple as porting x86 apps to ARM.
The Bluefield Boot (BFB) image comes pre-installed on the DPU, so there's nothing to install in this regard. The BFB can also be installed on the host using a package manager.
DOCA can be emulated on the host during development, but the emulation is for build only. In other words, it's not possible to execute code in the emulator.
DOCA includes a flow library that can be used to match and action network traffic. You can, for example, match by transfer protocol and port number, and then action the matches (e.g execute rate limiting or data encryption/decryption). This flow library can be used to intercept the matches, while forwarding the rest of the traffic on. The nice thing about this is that the x86 host can't see anything offloaded underneath and, in this way, is freed from processing.
Admins and network engineers can also use DOCA services for network configuration. This makes it possible, for example, to achieve local storage performance with network connected storage - or to eliminate performance hit when adding security - or to facilitate software defined networking.