Jump to: navigation, search

Neutron/OFAgent/Todo

< Neutron‎ | OFAgent
Revision as of 03:06, 1 May 2014 by Yamamoto (talk | contribs)
  • OFAgent Todo
    • Reduce OVS dependencies
      • patch ports, multiple logical bridges
      • 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
        • port scanning
        • 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.
        • add-br, set-controller, set bridge protocols
          • factor out to "OVS" sub-driver
          • use OF-Config
          • move the one-time setup code to devstack
      • port-based VLAN
      • tunnel ports
        • ideally use OF-Config
        • but this likely remains switch-dependant
        • factor out the code into "OVS" sub-driver.
      • the way to configure physical networks
        • it would be more straightforward to specify an interface (eth0) rather than a bridge (br-eth0)
        • this will be user-visible changes
      • the way to configure public network (br-ex)
        • similar to physical networks
      • stop assuming the existence of local ports
        • eg. setup_physical_bridges
        • 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.
    • l2pop