Jump to: navigation, search

Difference between revisions of "Neutron/OFAgent/Todo"

Line 60: Line 60:
 
**** https://review.openstack.org/#/c/87440/
 
**** https://review.openstack.org/#/c/87440/
 
*** implement local arp responder
 
*** implement local arp responder
**** wip https://github.com/fkakuma/neutron/tree/ofagent/l2pop.arp_responder2
+
**** https://review.openstack.org/#/c/94183/
**** cf. experimental arp proxy https://github.com/yamt/ryu/blob/arp-proxy/ryu/app/arp_proxy.py
 

Revision as of 05:00, 9 July 2014

  • 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
        • 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.
        • 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
      • 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