Neutron/OFAgent/ComparisonWithOVS
Two neutron agents, openvswitch and ofagent, implement mostly same functionalities in different ways. The following is a summary of the differences.
openvswitch | ofagent | |
Advantages | Possibly can achieve better performance using Open vSwitch(OVS) specific advanced features like Nicira Extensions (NX) and patch ports. | 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 + NX | OpenFlow 1.3 without vendor extensions |
How to compose flows? | ovs-ofctl command line arguments (plain texts) | 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 | 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) |