SlideShare a Scribd company logo
Distributed Virtual Router 
Introduced in the Juno Release of OpenStack Neutron 
Carl Baldwin 
DVR Illustrations courtesy of Jack McCann 
© Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
DVR Architecture 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Neutron deployment architecture without DVR 
neutron-server 
API 
auth 
ML2 plug-in 
database 
Network Service Node(s) 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 3 to change without notice. 
Compute hosts 
DHCP agent 
L3 agent 
message 
queue 
Metadata agent 
ovs agent 
Nova metadata 
ovs agent 
Open 
vSwitch 
Open 
vSwitch
Neutron deployment architecture with DVR 
neutron-server 
API 
auth 
ML2 plug-in 
database 
Metadata agent 
L3 agent 
message 
queue 
Network Service Node(s) 
Compute hosts 
DHCP agent 
Metadata agent Nova metadata 
L3 agent agent_mode = dvr 
ovs agent 
w/dvr agent 
Nova metadata 
ovs agent 
Open 
vSwitch 
Open 
vSwitch 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 4 to change without notice. 
enable_distibuted_routing = True 
programs DVR flow handling 
external network 
compute nodes on external 
network
API extension 
Adds ‘distributed’ attribute to ‘router’ object 
• Can be set by admin user through the API 
• Global default is set as “router_distributed” in neutron.conf 
• Default is False 
• The attribute is only visible to admin tenant in GET 
• Cannot be updated 
• Work in progress to allow update from False to True 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 5 to change without notice.
DVR – East-West (subnet-to-subnet) 
“VM1-1 
QRouter-X 
S1.1 S2.1 
br-int 
patch-tun 
eth0 
ARP for gw 
kept local 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 6 to change without notice. 
“VM2-1 
br-int 
patch-tun 
eth0 
QRouter-X 
S1.1 S2.1 
same gw IP/MAC 
on each node 
no remote bcast 
in to routers
DVR – North-South (floating IP) 
“VM1-1 
“VM2-1 
br-int 
QRouter-Y 
qr rfp-y 
floating IP namespace 
br-ex 
external-vlan 
eth0 
QRouter-X 
qr rfp-x 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 7 to change without notice. 
floating IP NAT in router ns 
default route via FIP-NS 
local addressing connects QR to FIP-NS 
floating IP host routes pointing to QR 
proxy-arp for floating IPs on br-ex 
(future option: BGP route injection) 
fpr-x fpr-y 
fg-u
DVR – North-South (default SNAT) 
br-int 
snat-Y 
qr qg-x 
br-ex 
external-vlan 
eth0 
snat-X 
qr qg-x 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 8 to change without notice. 
default SNAT in snat namespace 
default route via br-ex
Database 
router_extra_attributes 
router_id string uuid 
distributed boolean 
dvr_host_macs 
host string 255 
mac_address string 32 
ml2_dvr_port_bindings - port binding for all the 
ports associated to a DVR identified by router_id 
port_id string uuid 
host string 
router_id string uuid 
vif_type string 
vif_details string 
vnic_type string 
profile string 
cap_port_filter boolean 
driver string 
segment string 
status string 
csnat_l3_agent_bindings 
router_id string uuid 
l3_agent_id string uuid 
host_id string 
csnat_gw_port_id string uuid 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 9 to change without notice.
config file options 
neutron.conf 
[DEFAULT] 
router_distributed = False 
dvr_base_mac = fa:16:3f:00:00:00 
ovs_neutron_plugin.ini 
[agent] 
enable_distributed_routing = False # Make the l2 agent run in dvr mode 
l3_agent.ini 
[DEFAULT] 
agent_mode = legacy # legacy, dvr, or dvr_snat 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 10 to change without notice.
OVS Flow Handling 
How to Distribute the Router’s Internal Port 
• ARP Requests to Router Port are Blocked from the Tunnel 
• These ARP requests should only be seen by the local port 
• Source Mac is Mapped to Host Mac on Overlay Network 
• All traffic generated by the 
• A mac address is allocated for each compute host 
• Mapping must be done on both ends of the tunnel 
• Destination Mac Blocked from Overlay 
• These should go to the local port 
• They would create mac ambiguity in the overly 
• L2 Pre-Population is Required 
• “Prevent(s) multiple unicast of routed packets destined to remove VMs.” 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 11 to change without notice.
DVR Limitations 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Default SNAT still centralized 
snat-Y 
qr qg-x 
br-ex 
external-vlan 
eth1 
“VM1-1 
qrouter-X 
S1.1 S2.1 
br-int 
patch-tun 
eth0 
br-int 
patch-tun 
eth0 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 13 to change without notice.
Floating IP Namespace 
• Pros 
• Eliminates Need for Public Address/IR 
• Keeps IR Macs Off External Net 
• Cons 
• Extra Complexity in L3 Agent 
• Still Consumes a Public Address / CN 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 14 to change without notice. 
QRouter-Y 
qr rfp-y 
fpr-x fpr-y 
floating IP namespace 
fg-u 
eth0 
QRouter-X 
qr rfp-x 
br-ex 
external-vlan
Heavy L2 Integration 
• Led to Initial Dependence on OVS and Tunnel Protocols 
• Mitigate Scope Creep 
• Distributed Port Concept Needs to be Abstracted 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 15 to change without notice.
Firewall as a Service (FWaaS) Complexity 
• External Net Connects to Hypervisors 
• FWaaS is Needed There Too. 
• Asymmetric Routing Problem 
• E/W Routing 
“VM1-1 
QRouter-X 
S1.1 S2.1 
br-int 
patch-tun 
eth0 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 16 to change without notice. 
“VM2-1 
br-int 
patch-tun 
eth0 
QRouter-X 
S1.1 S2.1
Contributing DVR 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Initial Development on Havana 
Pros and Cons 
• Stable Code Base 
• No Risk of External Regression 
• Very Large Effort to Integrate 
• Upstream Moves Quickly 
• Subject to Regression 
• Comm. Standard Enforcment 
• Code Style 
• No Demand for Unit or Functional Tests 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 18 to change without notice.
Initial Development on Havana 
If We had to do it Over Again… 
• Contribute Smaller, More Focused Patches to Trunk 
• Start with Pure Refactoring Needed to Ease Development 
• Develop Unit Tests for Code that will be Modified 
• Move Gradually Beyond Refactoring to Other Improvements 
• Divide Implementation According to Themes 
• Develop Unit Tests (TDD) and Functional Tests to Prevent Regression 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 19 to change without notice.
Divided in to 7 Patches 
• Division According to Component 
• Patches Added Unused Code for Later Patches 
• Indicates there are themes that cross patch boundaries 
• Each Patch Had Multiple Active Authors 
• Indicates possibly more than one theme in the patch 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 20 to change without notice.
Handling Multiple Changes 
• Dependency Order Not Linear 
• Should it be? 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 21 to change without notice.
Handling Multiple Changes 
It is Never Linear!!! 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 22 to change without notice.
Handling Multiple Changes 
Enemy Number One! 
• Automatic Rebase Feature 
• Default behavior of “git review” 
• Most of the Time it is Disruptive 
• Sometimes it is Destructive 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 23 to change without notice.
Handling Multiple Changes 
Enemy Number One! 
• Clobbered API Extension!! 
• Happened More than Once 
• Use --no-rebase Always 
• Rebase on Merge Conflict 
• Work from the bottom up 
• Merge Faster 
• Smaller, more focused patches 
• Continuous community involvement 
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 24 to change without notice.

More Related Content

PPTX
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
PPTX
OVN 設定サンプル | OVN config example 2015/12/27
PPTX
OVN DBs HA with scale test
PDF
ML2/OVN アーキテクチャ概観
PPTX
OpenvSwitch Deep Dive
PDF
Understanding Open vSwitch
PPTX
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
PDF
第20回 OpenStack勉強会 Neutron Deep Dive - DVR
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
OVN 設定サンプル | OVN config example 2015/12/27
OVN DBs HA with scale test
ML2/OVN アーキテクチャ概観
OpenvSwitch Deep Dive
Understanding Open vSwitch
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
第20回 OpenStack勉強会 Neutron Deep Dive - DVR

What's hot (20)

PDF
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
PPTX
Meetup 23 - 02 - OVN - The future of networking in OpenStack
PPTX
Packet flow on openstack
PPTX
plotnetcfg入門 | Introduction to plotnetcfg
PDF
Large scale overlay networks with ovn: problems and solutions
PDF
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
PDF
Linux Networking Explained
PDF
L3HA-VRRP-20141201
PPTX
OVN - Basics and deep dive
PDF
[2018] 오픈스택 5년 운영의 경험
PDF
Service Function Chaining in Openstack Neutron
PDF
Neutron packet logging framework
PPTX
Vxlan control plane and routing
PDF
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
PDF
BGP Unnumbered で遊んでみた
PDF
Open vSwitch Introduction
PDF
SDN입문 (Overlay and Underlay)
PDF
Virtualized network with openvswitch
PPTX
Kubernetes Networking 101
PDF
Open vSwitch - Stateful Connection Tracking & Stateful NAT
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
Meetup 23 - 02 - OVN - The future of networking in OpenStack
Packet flow on openstack
plotnetcfg入門 | Introduction to plotnetcfg
Large scale overlay networks with ovn: problems and solutions
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
Linux Networking Explained
L3HA-VRRP-20141201
OVN - Basics and deep dive
[2018] 오픈스택 5년 운영의 경험
Service Function Chaining in Openstack Neutron
Neutron packet logging framework
Vxlan control plane and routing
Taking Security Groups to Ludicrous Speed with OVS (OpenStack Summit 2015)
BGP Unnumbered で遊んでみた
Open vSwitch Introduction
SDN입문 (Overlay and Underlay)
Virtualized network with openvswitch
Kubernetes Networking 101
Open vSwitch - Stateful Connection Tracking & Stateful NAT
Ad

Viewers also liked (20)

PPTX
OpenStack: Virtual Routers On Compute Nodes
PPTX
Modular Layer 2 In OpenStack Neutron
ODP
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
PDF
OpenStack Neutron Tutorial
PDF
OpenStack Icehouse Over IPv6
PDF
VRF (virtual routing and forwarding)
PPTX
Openstack glance
PPTX
Neutron DVR
PDF
Planification urbaine SNAT et SRAT
PPTX
OpenStack and the Transformation of the Data Center - Lew Tucker
PDF
20150818 jun lee_openstack kilo release 내용 분석
PDF
20150818 jun lee_openstack juno release 내용 분석
PPTX
OpenStack Quantum Intro (OS Meetup 3-26-12)
PDF
BGP Dynamic Routing and Neutron
PDF
Inside Architecture of Neutron
PDF
Neutron Network Namespaces and IPtables--A Technical Deep Dive
PDF
Designing digital strategies a practitioners approach - Vinay Krishna - Jigse...
PPTX
Dawn of the DevOps - TJ Randall - EMC World 2015
PDF
The Urban Resilience Summit: Executive Summary (2014)
PDF
Liliana mendes aula vhc GENOTIPO 3 share
OpenStack: Virtual Routers On Compute Nodes
Modular Layer 2 In OpenStack Neutron
Networking in OpenStack for non-networking people: Neutron, Open vSwitch and ...
OpenStack Neutron Tutorial
OpenStack Icehouse Over IPv6
VRF (virtual routing and forwarding)
Openstack glance
Neutron DVR
Planification urbaine SNAT et SRAT
OpenStack and the Transformation of the Data Center - Lew Tucker
20150818 jun lee_openstack kilo release 내용 분석
20150818 jun lee_openstack juno release 내용 분석
OpenStack Quantum Intro (OS Meetup 3-26-12)
BGP Dynamic Routing and Neutron
Inside Architecture of Neutron
Neutron Network Namespaces and IPtables--A Technical Deep Dive
Designing digital strategies a practitioners approach - Vinay Krishna - Jigse...
Dawn of the DevOps - TJ Randall - EMC World 2015
The Urban Resilience Summit: Executive Summary (2014)
Liliana mendes aula vhc GENOTIPO 3 share
Ad

Similar to OpenStack Neutron's Distributed Virtual Router (20)

PDF
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
PDF
Whats new in neutron for open stack havana
PDF
Routed networks sydney
PPTX
L2 and L3 agent restructure
PDF
PLNOG16: Data center interconnect dla opornych, Krzysztof Mazepa
PDF
OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networ...
PDF
Bridges and Tunnels a Drive Through OpenStack Networking
PPT
Integrating Active Networking and Commercial-Grade Routing Platforms
PPTX
BRKDCT-2445 Agile OpenStack Networking with Cisco Solutions - Cisco Live! US ...
PPT
Routing
PDF
OpenVNet - Introduction
PPTX
Multi tier-app-network-topology-neutron-final
PDF
Open stack networking_101_update_2014
PPTX
OpenContrail Presentation at Openstack Days Tokyo Japan Feb 13 2014
PDF
Cloud Network Virtualization with Juniper Contrail
PDF
OpenStack networking juno l3 h-a, dvr
PDF
Deep Dive Into Quantum
PPTX
Industrial Training Presentaion(Networking)
PDF
OpenStack Quantum
PDF
Quantum - The Network Mechanics
ONUG Tutorial: Bridges and Tunnels Drive Through OpenStack Networking
Whats new in neutron for open stack havana
Routed networks sydney
L2 and L3 agent restructure
PLNOG16: Data center interconnect dla opornych, Krzysztof Mazepa
OpenStack Paris Summit: Bridges and Tunnels: A Drive Through OpenStack Networ...
Bridges and Tunnels a Drive Through OpenStack Networking
Integrating Active Networking and Commercial-Grade Routing Platforms
BRKDCT-2445 Agile OpenStack Networking with Cisco Solutions - Cisco Live! US ...
Routing
OpenVNet - Introduction
Multi tier-app-network-topology-neutron-final
Open stack networking_101_update_2014
OpenContrail Presentation at Openstack Days Tokyo Japan Feb 13 2014
Cloud Network Virtualization with Juniper Contrail
OpenStack networking juno l3 h-a, dvr
Deep Dive Into Quantum
Industrial Training Presentaion(Networking)
OpenStack Quantum
Quantum - The Network Mechanics

Recently uploaded (20)

PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Encapsulation theory and applications.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPT
Teaching material agriculture food technology
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
cuic standard and advanced reporting.pdf
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Cloud computing and distributed systems.
PPTX
A Presentation on Artificial Intelligence
20250228 LYD VKU AI Blended-Learning.pptx
Encapsulation theory and applications.pdf
The AUB Centre for AI in Media Proposal.docx
NewMind AI Weekly Chronicles - August'25 Week I
MYSQL Presentation for SQL database connectivity
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Teaching material agriculture food technology
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Understanding_Digital_Forensics_Presentation.pptx
Encapsulation_ Review paper, used for researhc scholars
NewMind AI Monthly Chronicles - July 2025
Diabetes mellitus diagnosis method based random forest with bat algorithm
Dropbox Q2 2025 Financial Results & Investor Presentation
cuic standard and advanced reporting.pdf
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Cloud computing and distributed systems.
A Presentation on Artificial Intelligence

OpenStack Neutron's Distributed Virtual Router

  • 1. Distributed Virtual Router Introduced in the Juno Release of OpenStack Neutron Carl Baldwin DVR Illustrations courtesy of Jack McCann © Copyright 2013 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 2. DVR Architecture © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 3. Neutron deployment architecture without DVR neutron-server API auth ML2 plug-in database Network Service Node(s) © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 3 to change without notice. Compute hosts DHCP agent L3 agent message queue Metadata agent ovs agent Nova metadata ovs agent Open vSwitch Open vSwitch
  • 4. Neutron deployment architecture with DVR neutron-server API auth ML2 plug-in database Metadata agent L3 agent message queue Network Service Node(s) Compute hosts DHCP agent Metadata agent Nova metadata L3 agent agent_mode = dvr ovs agent w/dvr agent Nova metadata ovs agent Open vSwitch Open vSwitch © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 4 to change without notice. enable_distibuted_routing = True programs DVR flow handling external network compute nodes on external network
  • 5. API extension Adds ‘distributed’ attribute to ‘router’ object • Can be set by admin user through the API • Global default is set as “router_distributed” in neutron.conf • Default is False • The attribute is only visible to admin tenant in GET • Cannot be updated • Work in progress to allow update from False to True © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 5 to change without notice.
  • 6. DVR – East-West (subnet-to-subnet) “VM1-1 QRouter-X S1.1 S2.1 br-int patch-tun eth0 ARP for gw kept local © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 6 to change without notice. “VM2-1 br-int patch-tun eth0 QRouter-X S1.1 S2.1 same gw IP/MAC on each node no remote bcast in to routers
  • 7. DVR – North-South (floating IP) “VM1-1 “VM2-1 br-int QRouter-Y qr rfp-y floating IP namespace br-ex external-vlan eth0 QRouter-X qr rfp-x © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 7 to change without notice. floating IP NAT in router ns default route via FIP-NS local addressing connects QR to FIP-NS floating IP host routes pointing to QR proxy-arp for floating IPs on br-ex (future option: BGP route injection) fpr-x fpr-y fg-u
  • 8. DVR – North-South (default SNAT) br-int snat-Y qr qg-x br-ex external-vlan eth0 snat-X qr qg-x © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 8 to change without notice. default SNAT in snat namespace default route via br-ex
  • 9. Database router_extra_attributes router_id string uuid distributed boolean dvr_host_macs host string 255 mac_address string 32 ml2_dvr_port_bindings - port binding for all the ports associated to a DVR identified by router_id port_id string uuid host string router_id string uuid vif_type string vif_details string vnic_type string profile string cap_port_filter boolean driver string segment string status string csnat_l3_agent_bindings router_id string uuid l3_agent_id string uuid host_id string csnat_gw_port_id string uuid © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 9 to change without notice.
  • 10. config file options neutron.conf [DEFAULT] router_distributed = False dvr_base_mac = fa:16:3f:00:00:00 ovs_neutron_plugin.ini [agent] enable_distributed_routing = False # Make the l2 agent run in dvr mode l3_agent.ini [DEFAULT] agent_mode = legacy # legacy, dvr, or dvr_snat © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 10 to change without notice.
  • 11. OVS Flow Handling How to Distribute the Router’s Internal Port • ARP Requests to Router Port are Blocked from the Tunnel • These ARP requests should only be seen by the local port • Source Mac is Mapped to Host Mac on Overlay Network • All traffic generated by the • A mac address is allocated for each compute host • Mapping must be done on both ends of the tunnel • Destination Mac Blocked from Overlay • These should go to the local port • They would create mac ambiguity in the overly • L2 Pre-Population is Required • “Prevent(s) multiple unicast of routed packets destined to remove VMs.” © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 11 to change without notice.
  • 12. DVR Limitations © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 13. Default SNAT still centralized snat-Y qr qg-x br-ex external-vlan eth1 “VM1-1 qrouter-X S1.1 S2.1 br-int patch-tun eth0 br-int patch-tun eth0 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 13 to change without notice.
  • 14. Floating IP Namespace • Pros • Eliminates Need for Public Address/IR • Keeps IR Macs Off External Net • Cons • Extra Complexity in L3 Agent • Still Consumes a Public Address / CN © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 14 to change without notice. QRouter-Y qr rfp-y fpr-x fpr-y floating IP namespace fg-u eth0 QRouter-X qr rfp-x br-ex external-vlan
  • 15. Heavy L2 Integration • Led to Initial Dependence on OVS and Tunnel Protocols • Mitigate Scope Creep • Distributed Port Concept Needs to be Abstracted © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 15 to change without notice.
  • 16. Firewall as a Service (FWaaS) Complexity • External Net Connects to Hypervisors • FWaaS is Needed There Too. • Asymmetric Routing Problem • E/W Routing “VM1-1 QRouter-X S1.1 S2.1 br-int patch-tun eth0 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 16 to change without notice. “VM2-1 br-int patch-tun eth0 QRouter-X S1.1 S2.1
  • 17. Contributing DVR © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
  • 18. Initial Development on Havana Pros and Cons • Stable Code Base • No Risk of External Regression • Very Large Effort to Integrate • Upstream Moves Quickly • Subject to Regression • Comm. Standard Enforcment • Code Style • No Demand for Unit or Functional Tests © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 18 to change without notice.
  • 19. Initial Development on Havana If We had to do it Over Again… • Contribute Smaller, More Focused Patches to Trunk • Start with Pure Refactoring Needed to Ease Development • Develop Unit Tests for Code that will be Modified • Move Gradually Beyond Refactoring to Other Improvements • Divide Implementation According to Themes • Develop Unit Tests (TDD) and Functional Tests to Prevent Regression © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 19 to change without notice.
  • 20. Divided in to 7 Patches • Division According to Component • Patches Added Unused Code for Later Patches • Indicates there are themes that cross patch boundaries • Each Patch Had Multiple Active Authors • Indicates possibly more than one theme in the patch © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 20 to change without notice.
  • 21. Handling Multiple Changes • Dependency Order Not Linear • Should it be? © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 21 to change without notice.
  • 22. Handling Multiple Changes It is Never Linear!!! © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 22 to change without notice.
  • 23. Handling Multiple Changes Enemy Number One! • Automatic Rebase Feature • Default behavior of “git review” • Most of the Time it is Disruptive • Sometimes it is Destructive © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 23 to change without notice.
  • 24. Handling Multiple Changes Enemy Number One! • Clobbered API Extension!! • Happened More than Once • Use --no-rebase Always • Rebase on Merge Conflict • Work from the bottom up • Merge Faster • Smaller, more focused patches • Continuous community involvement © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject 24 to change without notice.