System requirements and release notes
For release notes, see the Release Notes text file.
Platform compatibility
P4 API for Go is certified and regression-tested on the following platforms
Windows (x64)
-
Windows Server: 2022
macOS
-
Intel: macOS 12+
-
Apple Silicon (ARM64): macOS 12+
Linux (x86, x86_64)
-
Ubuntu: 22.04, 24.04
-
Rocky Linux 9, 10
Linux (ARM64)
-
Ubuntu: 22.04, 24.04
-
Rocky Linux 9, 10
Server compatibility
P4 API for Go 2025.2 supports P4 Server 2025.2.
Older releases might work but are not supported.
P4 API for C/C++ compatibility
P4 API for Go 2025.2 requires P4 API for C/C++ 2025.2 or later.
Older API versions will not compile and are not supported.
Golang compatibility
This release of P4 API for Go supports Go 1.24.x.
Older releases might work but are not supported.
OpenSSL compatibility
To build P4 API for Go applications with encrypted communication support, you must use the same version of OpenSSL that the P4 API for C/C++ was built against.
Executables linked against the P4 API for C/C++ libraries must also link against the corresponding OpenSSL libraries.
The latest OpenSSL version 3 is recommended.
Compiler compatibility
To build P4 API for Go applications from source, you must use a version of P4 API for Go that was compiled with the same compiler used to build the P4 API for C/C++.
For most platforms, this means using gcc or g++.
Using a different compiler or a different compiler version can cause linker errors due to differences in symbol handling between compilers.
Known limitations
The P4 client‑server protocol does not support multiple concurrent queries over the same connection.
Therefore, multi‑threaded applications using the P4 API for C/C++ or script APIs (such as P4 API for Perl, P4 API for Ruby, P4 API for Python, etc.) must ensure that each thread uses a separate connection, or that only one thread accesses a shared connection at a time.