- A Raspberry Pi 3 (a 2 might work) with power supply
- A Zodiac FX
- A USB Ethernet adaptor compatible with the Pi (I used a Mac 100M adaptor, but others may work)
- Install at least v0.63 firmware on the ZodiacFX (see the ZodiacFX forums for firmware and user manual; you will need a x86 based computer to run the Atmel firmware updater tool, as the tool will not run on the Pi itself).
- Configure a static IP address, on the Pi's interface that be the OpenFlow control plane network. We will use what the Zodiac FX expects for simplicity. Assuming that the adaptor is eth1, add this to your /etc/network/interfaces on the Pi.
- Reboot to have the change take effect.
- Connect cables to the ZodiacFX (as shown), and check that you can ping the Zodiac
- Install FAUCET's dependencies on the Pi.
- Install FAUCET itself, in /home/pi
- Obtain the ZodiacFX's MAC address from the label on the underside. Or, use minicom to obtain the address:
- Back on the Pi (quit from minicom with control-A, Q), create a FAUCET config file.
- Convert the ZodiacFX MAC address to a FAUCET DPID. My ZodiacFX's MAC is 70:B3:D5:6C:D0:C0 which is a DPID of0x70b3d56cd0c0 (running all the digits together, removing the ":"s, and prepending 0x).
- In the faucet.yaml file, add this (replacing dp_id as above), and save and exit.
- Now start FAUCET itself:
Adding as a systemd service
- Create a file /home/pi/zodiacfx/start-faucet.sh, made executable, containing:
- Create a file /etc/systemd/system/faucet.service, containing:
- Enable the service and start it: