Difference between revisions of "Neutron/OFAgent/ComparisonWithOVS"
Line 39: | Line 39: | ||
| Port monitoring | | Port monitoring | ||
| Periodic poll of ovsdb via [http://openvswitch.org/cgi-bin/ovsman.cgi?page=utilities%2Fovs-vsctl.8 ovs-vsctl] command | | Periodic poll of ovsdb via [http://openvswitch.org/cgi-bin/ovsman.cgi?page=utilities%2Fovs-vsctl.8 ovs-vsctl] command | ||
− | | OpenFlow port statistics and notification ([https://blueprints.launchpad.net/neutron/+spec/ofagent-port-monitor | + | | OpenFlow port statistics and notification ([https://blueprints.launchpad.net/neutron/+spec/ofagent-port-monitor merged]) |
|- | |- | ||
| Management Protocol (eg. tunnel port creation) | | Management Protocol (eg. tunnel port creation) | ||
Line 47: | Line 47: | ||
| Device ID | | Device ID | ||
| Neutron port ID (UUID) stored in ovsdb | | Neutron port ID (UUID) stored in ovsdb | ||
− | | Port name as linuxbridge ([https://blueprints.launchpad.net/neutron/+spec/ofagent-port-monitor | + | | Port name as linuxbridge ([https://blueprints.launchpad.net/neutron/+spec/ofagent-port-monitor merged]) |
|- | |- | ||
| "internal" VLAN | | "internal" VLAN |
Revision as of 06:38, 9 July 2014
Two neutron agents, openvswitch and ofagent, implement mostly same functionalities in different ways.
- What's same?
- Basic architecture; the agent controls an OpenFlow switich on the node.
- What's different?
- The following is a summary of the differences.
- note: this list is intended to show differences wrt designs and development directions. some of items (noted as "planned") have not been implemented in neutron master yet.
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 OpenFlow 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 (merged) |
Management Protocol (eg. tunnel port creation) | ovsdb via ovs-vsctl command | use standard protocols like OF-Config where appropriate. otherwise, sub-driver (planned) |
Device ID | Neutron port ID (UUID) stored in ovsdb | Port name as linuxbridge (merged) |
"internal" VLAN | 802.1q tagged VLAN | OpenFlow metadata (planned) |
Local ARP responder | Install NX flows for each FDB entries (merged) | The embedded OpenFlow controller handles packet-ins and sends back ARP responses (planned) |
Multiple bridges | Considering bridges per functionalities. | Aims to reduce the number of bridges because multiple bridges and patch ports are not supported by every switch implementations. (planned) |
Security Groups / Firewall driver | use NX. namely tcp_flags NXM, learn action, or future conntrack support (planned) | probably implement only a subset of rules using OpenFlow |