[P4-dev] P4 and Zodiac-FX

Raj Joshi rajjoshi at comp.nus.edu.sg
Tue Oct 3 22:06:52 EDT 2017

Hi Kursat,

Good question! Unfortunately Zodiac-FX isn't a P4-compatible target yet (as
far as I am aware). On the face of it, Zodiac-FX is a "fixed function"
OpenFlow switch. However, it's fixed functionality is implemented in
software (the board's firmware). This means that it is still a programmable
switch *only if we can write a P4 backend compiler* that would generate the
Atmel firmware code for the board, given a user-defined datapath in P4.

This sounds like an interesting way to bring a low-end P4 hardware target
to the classrooms for teaching and also for hobbyist purposes. But I
suspect the effort won't be trivial. I can think of the following major

   - *Making the current Zodiac-FX's source code modular:* This would be
   the first step to separate the packet processing functions from other
   miscellaneous functions (boot sequence, led controls, firmware upgrade,
   etc.). This will allow the P4 backend compiler to only generate the
   pipeline processing code which could then be plugged into the overall
   Zodiac-FX source.
   - *Limiting the pipeline processing in order to preserve line-rate
   processing:* Since Zodiac-FX processes packets in software, it has
   limited processing horse power (which is why it is a 10/100 Mbps switch in
   the first place). It is going to be important for the backend compiler to
   draw proper limits and warn the user that his P4-defined datapath is doing
   too much.
   - *Control plane:* You would have a custom control plane API for a
   custom P4 program. Although P4Runtime makes things easy, it does need an
   agent to run on the target device. Now Zodiac-FX doesn't run a full
   function NOS. We would need to figure out how to run the P4Runtime agent (a
   gRPC server) on the embedded device. A good starting point would be the
   current OpenFlow agent implementation in Zodiac-FX's firmware.


Raj Joshi

On Wed, Oct 4, 2017 at 7:28 AM, KURSAT GOL <kursat.gol at oeee.web.tr> wrote:

> Hi All,
> Is there any compiler and usecases for Northbound Networks' Zodiac-FX
> device compiler for p4-runtime?
> Thanks.
> Kursat Gol
> _______________________________________________
> P4-dev mailing list
> P4-dev at lists.p4.org
> http://lists.p4.org/mailman/listinfo/p4-dev_lists.p4.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.p4.org/pipermail/p4-dev_lists.p4.org/attachments/20171004/1955c246/attachment-0002.html>

More information about the P4-dev mailing list