Hi everyone,
I’m currently working on a P4 development internship using a UfiSpace S9180-32X switch, which is based on the Tofino (Tofino 1) ASIC. I’m trying to run a real P4 network using this hardware, and I’ve run into a gRPC UNIMPLEMENTED
error when my external P4Runtime controller attempts to push the pipeline.
Here’s my setup:
- Switch: UfiSpace S9180-32X (Tofino 1)
- SDE: bf-sde-9.13.1
- P4 Program: basic_switching.p4 (compiled and launched using
run_switchd.sh -p basic_switching
) - Controller: Custom Python-based controller using the P4Runtime gRPC API (based on the official
p4runtime_lib
examples) - Switchd gRPC port: 50052 is open and reachable from the controller VM
The switch launches fine and bf_switchd
appears healthy. But when the controller sends SetForwardingPipelineConfig
, I get this:
gRPC Error: UNIMPLEMENTED
What I’ve Tried:
- Confirmed switch and controller can ping each other.
- Verified
bf_switchd
is running with the correct pipeline and config. - Used
p4studio build basic_switching
followed byrun_switchd.sh
. - Checked for active services on port 50052.
My Questions:
- Has anyone successfully used P4Runtime with UfiSpace (S9180-32X) switches and an external controller?
- Is there a known limitation or config requirement to enable P4Runtime support on this device?
- Do I need to use a specific profile or modify
switch.conf
to expose P4Runtime services?
I’ve reached out to STORDIS and UfiSpace but haven’t received a response yet, so I’d really appreciate any community insight.
Thanks in advance!