Our Projects

Faucet:
Openflow Controller for a Layer 2/3 switch

Faucet is an Openflow controller for a layer 2 switch based on OpenvApour’s Valve. It handles MAC learning and supports VLANs and ACLs. It is developed as an application for the Ryu OpenFlow Controller.

It supports:

  • OpenFlow v1.3
  • Multiple datapaths (via multiple processes)
  • Mixed tagged/untagged ports
  • Port statistics
  • ACL support: Rules are added in the order specified. The rule language supports anything the Ryu OpenFlow protocol parser supports (q.v. ofctl to_match()).
  • Control unicast flooding by port and by VLAN
  • BGP advertisement of controller IPs and static routes and Quagga support
  • Policy based forwarding to offload processing to external systems (Eg 802.1x via hostapd)
  • Support for IPv4 and IPv6 static routes on both tagged and untagged VLANs
  • Integrated support for InfluxDB/Grafana
  • Comprehensive Test suite – tests for all features that can be run against mininet (development) and on hardware; Most tests run in parallel to reduce time.
  • Code: Python based, easy readability (PEP8 style), documented, Unit tests for all features
  • Installation: Python pip (pip install ryu_faucet), pre-built VM available – https://susestudio.com/a/ENQFFD/ryu-faucet, Makefiles to build Docker images

Project Summary

Project Leader

Shivaram Mysore

License

Apache 2

Software Language(s):

Python

Community Information:

Location of Project: