Jump to: navigation, search

Difference between revisions of "Neutron/OFAgent/Todo"

 
Line 1: Line 1:
 
* OFAgent Todo
 
* OFAgent Todo
 
** Reduce OVS dependencies
 
** Reduce OVS dependencies
*** patch ports, multiple logical bridges
 
**** https://blueprints.launchpad.net/neutron/+spec/ofagent-merge-bridges
 
**** https://wiki.openstack.org/wiki/Neutron/OFAgent/FlowTable
 
**** implement learning based on flows and packet-in.  possibly with l2pop.
 
*** OFPP_NORMAL
 
**** spec-wise optional
 
**** an alternative is packet-in based learning.  performance concern.
 
**** another alternative is to query VM mac addresses neutron and install flows accordingly.
 
***** get_device_details doesn't return the necessary info  (mac address)
 
***** l2pop doesn't propagate the info  (device ids)
 
 
*** OVSDB
 
*** OVSDB
 
**** bridge identity
 
**** bridge identity
Line 16: Line 6:
 
***** it's more portable to use datapath-id
 
***** it's more portable to use datapath-id
 
***** or use OFPMP_DESC dp_desc?  Note: OVS returns "None" by default.
 
***** or use OFPMP_DESC dp_desc?  Note: OVS returns "None" by default.
**** port scanning
 
***** currently periodically scannig the list of ports and its status using ovs-vsctl
 
***** use openflow port desc stats and ofp_port_status instead
 
***** https://blueprints.launchpad.net/neutron/+spec/ofagent-port-monitor
 
***** we plan to desupport "ancillary" bridges (aka br-ex)
 
**** port external id
 
***** currently the agent uses on openstack device uuids associated to OFP ports by neutron/nova interface drivers and/or libvirt
 
***** there seems no pure-openflow way to do the same
 
***** probably use tapXXXX, which is available as ofp_port.name.  ML2 plugin already accepts tapXXXX for linuxbridge.
 
***** mostly done (except ancillary bridges we plan to desupport)
 
 
**** add-br, set-controller, set bridge protocols
 
**** add-br, set-controller, set bridge protocols
 
***** factor out to "OVS" sub-driver
 
***** factor out to "OVS" sub-driver
 
***** use OF-Config
 
***** use OF-Config
 
***** move the one-time setup code to devstack
 
***** move the one-time setup code to devstack
*** port-based VLAN
 
**** currently using ovs-vsctl to set up port-based VLANs
 
**** install appropriate flows to push/pop tags instead
 
**** covered by https://blueprints.launchpad.net/neutron/+spec/ofagent-merge-bridges
 
 
*** tunnel ports
 
*** tunnel ports
 
**** ideally use OF-Config
 
**** ideally use OF-Config
Line 40: Line 16:
 
***** https://blueprints.launchpad.net/neutron/+spec/ofagent-sub-driver
 
***** https://blueprints.launchpad.net/neutron/+spec/ofagent-sub-driver
 
*** the way to configure physical networks
 
*** the way to configure physical networks
**** it would be more straightforward to specify an interface (eth0) rather than a bridge (br-eth0)
+
**** remove bridge_mapping in Kilo
**** this will be user-visible changes
 
**** https://blueprints.launchpad.net/neutron/+spec/ofagent-physical-interface-mappings
 
*** the way to configure public network (br-ex)
 
**** we plan to desupport br-ex
 
 
*** stop assuming the existence of local ports
 
*** stop assuming the existence of local ports
**** eg. setup_physical_bridges
 
 
**** not a big deal
 
**** not a big deal
 
** neutron interface driver
 
** neutron interface driver
Line 57: Line 28:
 
** security group.  ideally implement with flows.
 
** security group.  ideally implement with flows.
 
*** cf. similar BP for OVS agent https://wiki.openstack.org/wiki/Neutron/blueprint_ovs-firewall-driver
 
*** cf. similar BP for OVS agent https://wiki.openstack.org/wiki/Neutron/blueprint_ovs-firewall-driver
** l2pop
 
*** https://blueprints.launchpad.net/neutron/+spec/ofagent-l2pop
 
*** port l2pop-based tunnel management from OVS agent
 
**** https://review.openstack.org/#/c/87440/
 
*** implement local arp responder
 
**** https://review.openstack.org/#/c/94183/
 

Latest revision as of 03:44, 3 September 2014

  • OFAgent Todo
    • Reduce OVS dependencies
      • OVSDB
        • bridge identity
          • currently bridges are identified by name (eg. br-int)
          • it's more portable to use datapath-id
          • or use OFPMP_DESC dp_desc? Note: OVS returns "None" by default.
        • add-br, set-controller, set bridge protocols
          • factor out to "OVS" sub-driver
          • use OF-Config
          • move the one-time setup code to devstack
      • tunnel ports
      • the way to configure physical networks
        • remove bridge_mapping in Kilo
      • stop assuming the existence of local ports
        • not a big deal
    • neutron interface driver
      • ideally use OF-Config
      • investigate if the existing IVS driver is usable for our purpose, at least for IVS.
    • nova interface driver
      • ideally use OF-Config
      • investigate if the existing IVS driver is usable for our purpose, at least for IVS.
      • probably it's better to avoid touching libvirt unless absolutely necessary
    • security group. ideally implement with flows.