Jump to: navigation, search

Difference between revisions of "Neutron/OFAgent/ComparisonWithOVS"

Line 15: Line 15:
 
| OpenFlow 1.3 without vendor extensions
 
| OpenFlow 1.3 without vendor extensions
 
|-
 
|-
| How to program switch?
+
| How to compose flows?
 +
| ovs-ofctl command line arguments (strings)
 +
| Use [http://ryu.readthedocs.org/en/latest/ofproto_ref.html Ryu ofproto library] (python objects)
 +
|-
 +
| How to install flows into a switch?
 
| Invoke ovs-ofctl command
 
| Invoke ovs-ofctl command
 
| An OpenFlow controller embedded in the agent sends messages to the switch
 
| An OpenFlow controller embedded in the agent sends messages to the switch

Revision as of 06:58, 25 April 2014

Two neutron agents, openvswitch and ofagent, implement mostly same functionalities in different ways. The following is a summary of the differences.

openvswitch ofagent
Advantages Can provide better performance using Open vSwitch(OVS) specific advanced features More portable to switches other than OVS. Easier to handle asynchronous messages because it's a full featured OpenFlow controller.
OpenFlow version OpenFlow 1.0 + Nicira Extensions (NX) OpenFlow 1.3 without vendor extensions
How to compose flows? ovs-ofctl command line arguments (strings) Use Ryu ofproto library (python objects)
How to install flows into a switch? Invoke ovs-ofctl command An OpenFlow controller embedded in the agent sends messages to the switch
Supported switches OVS only. Thus can use OVS-specific advanced features like NX and patch ports. OpenFlow 1.3 switches including OVS (planned)
Neutron plugin openvswitch plugin (planned to be deprecated) or ML2 plugin ML2 plugin
Port monitoring Periodic poll of ovsdb via ovs-vsctl command OpenFlow port statistics and notification (planned)
Device ID Neutron port ID (UUID) stored in ovsdb Port name as linuxbridge (planned)
"internal" VLAN 802.1q tagged VLAN OpenFlow metadata (planned)
Local ARP responder Install NX flows for each FDB entries (planned) The embedded OpenFlow controller handles packet-ins and sends back ARP responses (planned)