Wikimedia Cloud Services team/EnhancementProposals/Neutron SDN

This page is a dumping ground for links and documentation in the process of moving CloudVPS to using Neutron.
=== Preamble ===
http://research.esg-global.com/reportaction/blog0419201602/Toc
https://wiki.openstack.org/wiki/Meetings/TechnicalCommittee/Neutron_Gap_Coverage
https://www.quora.com/Whats-the-difference-between-the-OpenStack-Networking-neutron-and-the-Legacy-Networking-nova-network 
https://review.openstack.org/#/c/101921/ 
https://docs.openstack.org/ocata/networking-guide/intro-os-networking.html
https://docs.openstack.org/admin-guide/networking-adv-features.html
=== Labtest Allocations ===
See Testing deployment.
=== Open questions ===
* /etc/nova/nova-compute.conf is managed but unused?
* Can the migration be performed online? (as in data plane)
* Should we use linux bridging or OpenVSwitch?
** Linux bridging is simpler conceptually and component wise but not as featurefull.
** What Neutron plugin should we use?
* What type and mechanism should we use?
* Does L2 Population work as expected?
* VXLAN
** Overhead
** debugging
=== Conceptual ===
http://events.linuxfoundation.org/sites/events/files/slides/LinuxConJapan2014_makita_0.pdf
http://www.opencloudblog.com/?p=96
http://www.sparkmycloud.com/blog/openstack-vlan-networking-overview/
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_openstack_platform/7/html/networking_guide/
Topology
https://docs.openstack.org/mitaka/install-guide-ubuntu/neutron-controller-install-option2.html
* https://wiki.openstack.org/wiki/Neutron/sharing-model-for-external-networks
The shared switch is a Boolean value that, when set to true, allows a network to be utilized among all tenants. This attribute is available only for networks created by administrators and is not available for networks created by users.
Denton, James (2015-11-27). Learning OpenStack Networking (Neutron) - Second Edition (p. 129). Packt Publishing. Kindle Edition. 
Neutron l2/l3 agents https://www.youtube.com/watch?v=uNAkDfkTGBw 
=== Migration(s) ===
https://docs.openstack.org/kilo/networking-guide/migration.html
https://specs.openstack.org/openstack/neutron-specs/specs/kilo-backlog/migration-from-nova-net.html
https://docs.openstack.org/liberty/networking-guide/migration-nova-network-to-neutron.html
* General overview of transition mechanics with no real technical insight
* assumes things exist and are working such as 'Run a DB dump/restore tool that creates Networking data structures representing current legacy networking config.'
https://wiki.openstack.org/wiki/Neutron/MigrationFromNovaNetwork/HowTo#How_to_test_migration_process
* TODO - fill in the migration process script here -^^
* very limited test case only using devstack
* http://paste.openstack.org/show/84177/
* https://review.openstack.org/#/c/100265/ (depends on and abandoned)
* depends on https://review.openstack.org/#/c/100265/7/nova/api/openstack/compute/contrib/admin_actions.py and associated completely
** custom behavior from patch example (unproven and unloved): nova migration-to-neutron <vm-id> <neutron-net-id> 
Spec for Neutron Migration feature (permanent -2?)
* https://review.openstack.org/#/c/101921/12/specs/juno/neutron-migration.rst
* https://review.openstack.org/#/c/101921/
* https://review.openstack.org/#/c/111755/
* https://review.openstack.org/#/c/115635/
* This review is > 4 weeks without comment, and failed Jenkins the last time it was checked. We are abandoning this for now. Feel free to reactivate the review by pressing the restore button and leaving a 'recheck' comment to get fresh test results.
http://lists.openstack.org/pipermail/openstack/2017-March/018903.html (andrew asking for migration stories)
https://www.rivy.org/2012/11/switch-your-kvm-from-regular-bridge-to-open-vswitch/
https://github.com/NeCTAR-RC/novanet2neutron
https://www.youtube.com/watch?v=54wp1yzC-d8 (cern migration story)
http://superuser.openstack.org/articles/ebay-in-production-migration-from-nova-network-to-neutron/
https://www.slideshare.net/ChengyuanLi/seamless-migration-from-nova-network-to-neutron-in-e-bay-production20141104
https://blueprints.launchpad.net/neutron/+spec/allow-specific-floating-ip-address
http://www.stillhq.com/openstack/juno/000014.html
=== OpenVSwitch ===
http://docs.openvswitch.org/en/latest/faq/issues/
https://media.readthedocs.org/pdf/openvswitch/latest/openvswitch.pdf
https://pve.proxmox.com/wiki/Open_vSwitch
Managing Open vSwitch across a large heterogenous fleet (rackspace)
* 2.1+ described as best and ubuntu seems to be on 2.0 (flow-eviction-thresholds) via apt-cache
* 2.3 is OVS LTS
http://manpages.ubuntu.com/manpages/trusty/man8/ovs-controller.8.html
=== Linux Bridging ===
https://docs.openstack.org/kilo/networking-guide/scenario_legacy_lb.html (LEGACY)
https://robhirschfeld.com/2013/10/16/openstack-neutron-using-linux-bridges-technical-explanation/ (2013...)
http://man7.org/linux/man-pages/man8/bridge.8.html
http://www.microhowto.info/troubleshooting/troubleshooting_ethernet_bridging_on_linux.html
https://docs.openstack.org/kilo/networking-guide/scenario_l3ha_lb.html
https://docs.openstack.org/kilo/networking-guide/deploy_scenario4b.html
https://wiki.linuxfoundation.org/networking/bridge
http://www.linuxjournal.com/article/8172
https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/s2-networkscripts-interfaces_network-bridge.html
https://wiki.aalto.fi/download/attachments/70789083/linux_bridging_review.pdf
=== ML2 Linux Bridging ===
https://wiki.openstack.org/wiki/Neutron-Linux-Bridge-Plugin (older docs seems redirected from old monolithic plugin)
https://github.com/openstack/neutron/blob/master/neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py
=== VXLAN ===
http://events.linuxfoundation.org/sites/events/files/slides/2013-linuxcon.pdf
https://kimizhang.wordpress.com/2014/04/01/how-ml2vxlan-works/
http://openstack.fr/r/meetup7/OpenStack-Neutron-l2-pop-Linux-VXLAN-Edouard-Thuleau.pdf
https://www.kernel.org/doc/Documentation/networking/vxlan.txt 
=== OpenVSwitch vs Linux Bridging ===
https://github.com/openvswitch/ovs/blob/master/Documentation/intro/why-ovs.rst
https://ask.openstack.org/en/question/98644/openvswitch-vs-linux-bridge-network-deployment/
https://www.quora.com/What-is-the-major-difference-between-OVS-and-linux-bridge
https://kumul.us/switches-ovs-vs-linux-bridge-simplicity-rules/
Migrating Production Workloads from OVS to Linux Bridge w/ ML2 (RS internal cloud)
https://www.slideshare.net/JamesDenton1/2014-openstack-summit-neutron-ovs-to-linuxbridge-migration
=== ML2: The Plugin Of Plugins ===
https://docs.openstack.org/ocata/networking-guide/config-ml2.html
https://wiki.openstack.org/wiki/Neutron/ML2
https://wiki.openstack.org/wiki/Neutron/ML2#Multi-Segment_Networks
* Virtual networks can be composed of multiple segments of the same or different types. 
** EXCEPT: The database schema and driver APIs support multi-segment networks, but the client API for multi-segment networks is not yet implemented.
https://wiki.openstack.org/wiki/Neutron/ModularL2Agent (original spec)
http://docs.ocselected.org/openstack-manuals/kilo/networking-guide/content/ml2_l2pop_scenarios.html
https://docs.openstack.org/ocata/config-reference/networking/networking_options_reference.html#modular-layer-2-ml2-plug-in-configuration-options
https://assafmuller.com/2014/02/23/ml2-address-population/
=== Next Phases ===
https://docs.openstack.org/newton/networking-guide/config-bgp-dynamic-routing.html
=== Associated ===
Neutron Planning/ldap
=== Misc Reference ===
https://kimizhang.wordpress.com/2014/04/01/how-ml2vxlan-works/
https://docs.openstack.org/developer/nova/man/nova-dhcpbridge.html
https://www.ovirt.org/
https://thornelabs.net/2014/03/13/openstack-commands-cheat-sheet.html
https://docs.openstack.org/user-guide/cli-cheat-sheet.html
http://ebtables.netfilter.org/documentation/features.html
=== Sub Pages ===
Portal:Wikimedia_VPS/Admin/Neutron_Notes/ldap ldap