1.7.0ΒΆ
We are making a few potentially breaking features in faucet 1.7.0. This document covers how to navigate the changes and safely upgrade from earlier versions to 1.7.0.
Configuration and log directory changed
Starting in 1.7.0 and onwards faucet has changed which directories it uses for configuration and log files. The new paths are:
Old path New path /etc/ryu/faucet /etc/faucet /var/log/ryu/faucet /var/log/faucet Faucet 1.7.0 when being installed by pip will automatically attempt to migrate your old configuration files to
/etc/faucet
assuming it has permissions to do so. Failing this faucet when started will fallback to loading configuration from/etc/ryu/faucet
. The search paths for configuration files are documented on the Environment variables page.Note
Consider the
/etc/ryu/faucet
directory deprecated, we will in a future release stop reading config files stored in this directory.If you currently set your own configuration or log directory by setting the appropriate environment variables you will be unaffected. In most other cases the migration code or the fallback configuration search path will allow the upgrade to 1.7.0 to be seamless. We have however identified two cases where manual intervention is required:
Dockers
Dockers will need to be started with new mount directories, the commands to start a 1.7.0 docker version of faucet or gauge are detailed in the Docker section.
Virtualenvs
We are unable to migrate configuration files automatically when faucet is run inside of a virtualenv, please copy the configuration directory over manually.
Changing default flood mode
Currently faucet defaults to using
combinatorial_port_flood
when it comes to provisioning flooding flows on a datapath, faucet implicitly configures a datapath like this today:dps: mydp: combinatorial_port_flood: TrueThe default is
True
, in 1.7.0 and previously. The default will change toFalse
in 1.7.1.When
True
, flood rules are explicitly generated for each input port, to accommodate early switch implementations which (differing from the OpenFlow standard - see below) did not discard packets output to the packet input port.False
generates rules per faucet VLAN which results in fewer rules and better scalability.See OpenFlow 1.3.5 specification, section B.6.3:
The behavior of sending out the incoming port was not clearly defined in earlier versions of the specification. It is now forbidden unless the output port is explicitly set to OFPP_IN_PORT virtual port (0xfff8) is set.