Restucture the L3 agent to support Kilo ++

Registered by Carl Baldwin on 2014-10-28

We've been talking about ideas for restructuring the agent a bit in early Kilo in the L3 meeting. Let's get the plan nailed down.

Blueprint information

Status:
Complete
Approver:
Kyle Mestery
Priority:
High
Drafter:
Carl Baldwin
Direction:
Approved
Assignee:
Carl Baldwin
Definition:
Approved
Series goal:
Accepted for kilo
Implementation:
Implemented
Milestone target:
milestone icon 2015.1.0
Started by
Kyle Mestery on 2014-12-11
Completed by
Kyle Mestery on 2015-03-31

Related branches

Sprints

Whiteboard

March-24 (mestery): This needs to merge by March-31 to make Kilo.

March-19 (mestery): A few patches left, FFE for Kilo, moving to RC.

March-17 (mestery): Marking as Implemented, there are 3 minor patches left which will be tracked with a bug for either the RC release or Liberty.

February-2 (mestery): A lot of this has merged, but it won't complete until Kilo-3.

December-1 (mestery): Marking for Kilo-2

Gerrit topic: https://review.openstack.org/#q,topic:bp/restructure-l3-agent,n,z

Addressed by: https://review.openstack.org/129718 - merged
    Eliminate unnecessary indirection in L3 agent

Gerrit topic: https://review.openstack.org/#q,topic:restructure-l3-agent,n,z

Addressed by: https://review.openstack.org/131535 - merged
    Kilo refactoring and restructuring the L3 agent

Addressed by: https://review.openstack.org/131510 - merged
    WIP Remove broad exception catch from _periodic_sync_routers_task

Gerrit topic: https://review.openstack.org/#q,topic:bp/cisco-vpnaas-with-cisco-csr-router,n,z

Addressed by: https://review.openstack.org/135392 - abandoned
    L3 Agent refactor - extract device driver loading from agents

Addressed by: https://review.openstack.org/130300 - merged
    Move classes out of l3_agent.py

Addressed by: https://review.openstack.org/130021 - merged
    Tighten up try/except block around rpc call

Addressed by: https://review.openstack.org/130052 - abandoned
    Move stale namespace cleanup logic out of L3 agent

Addressed by: https://review.openstack.org/136549 - merged
    L3 Agent restructure - observer hierarchy

Addressed by: https://review.openstack.org/137368 - merged
    Check metadata iptables chains during functional test

Addressed by: https://review.openstack.org/137668 - abandoned
    Hand out L3 agent driver notifications

Addressed by: https://review.openstack.org/137672 - merged
    Add metadata proxy L3 agent driver

Addressed by: https://review.openstack.org/140193 - merged
    Refactor process_router method in L3 agent

Addressed by: https://review.openstack.org/140788 - abandoned
    Move classes out of l3_agent.py

Addressed by: https://review.openstack.org/140797 - merged
    Move classes out of l3_agent.py

Addressed by: https://review.openstack.org/140798 - merged
    Move classes out of l3_agent.py

Addressed by: https://review.openstack.org/140863 - abandoned
    Disable autorebase in Neutron

Addressed by: https://review.openstack.org/140884 - merged
    L3 Agent restructure - observer hierarchy

Addressed by: https://review.openstack.org/140918 - merged
    L3 Agent restructure - observer hierarchy

Addressed by: https://review.openstack.org/142863 - merged
    WIP Move Floating IP processing to Router class

Addressed by: https://review.openstack.org/142946 - merged
    refactor l3-agent to include dvr.py

Addressed by: https://review.openstack.org/143253 - merged
    Revert "Add metadata proxy L3 agent driver"

Addressed by: https://review.openstack.org/142644 - merged
    Refactor of floating ip processing in L3 Agent

Addressed by: https://review.openstack.org/143733 - merged
    Create DvrRouter as a sub-class of Router

Addressed by: https://review.openstack.org/145219 - abandoned
    VPNaaS: Remove methods, once router object available

Addressed by: https://review.openstack.org/145979 - merged
    Move main entry point out of agent.py

Addressed by: https://review.openstack.org/146144 - merged
    Adapt VPN agent to use new main for L3 Agent

Addressed by: https://review.openstack.org/146024 - merged
    DHCP agent restructuring

Addressed by: https://review.openstack.org/146584 - merged
    Remove main alias for bw compat with vpn agent

Addressed by: https://review.openstack.org/146597 - merged
    Create arping helper in ip_lib

Addressed by: https://review.openstack.org/145565 - merged
    WIP Encapsulate DVR Fip namespace

Addressed by: https://review.openstack.org/147744 - merged
    Refactor management of namespaces in the L3 Agent

Addressed by: https://review.openstack.org/147972 - merged
    Replace FLOATING_IP_CIDR_SUFFIX constant with utils

Addressed by: https://review.openstack.org/149793 - abandoned
    Move constants definitions to router classes

Addressed by: https://review.openstack.org/150072 - merged
    Add coverage for extra routes extension

Addressed by: https://review.openstack.org/150154 - merged
    Move extra routes processing to router classes

Addressed by: https://review.openstack.org/149067 - merged
    Move DVR floating ip methods to dvr_router

Addressed by: https://review.openstack.org/150630 - merged
    WIP Move ha functionality to ha_router

Addressed by: https://review.openstack.org/150872 - merged
    Make the interface driver available to the router classes

Addressed by: https://review.openstack.org/150628 - merged
    Move DVR floating ip methods to dvr_router

Addressed by: https://review.openstack.org/151882 - merged
    Don't pass the port down to the floating ip processing

Addressed by: https://review.openstack.org/152342 - merged
    Use weak ref to avoid deleting fip namespace through agent

Addressed by: https://review.openstack.org/154162 - merged
    Refactor radvd control in the l3-agent

Addressed by: https://review.openstack.org/154513 - merged
    WIP Move port processing to router classes

Addressed by: https://review.openstack.org/157559 - merged
    Remove reference to self.services_sync

Addressed by: https://review.openstack.org/158495 - merged
    WIP Move external port processing to router classes

Addressed by: https://review.openstack.org/158433 - merged
    Refactor DVR _arp_entry methods

Addressed by: https://review.openstack.org/158460 - merged
    Move _set_subnet_arp_info to dvr_router

Addressed by: https://review.openstack.org/159663 - merged
    Move create_dvr_fip_interfaces in to DVR

Addressed by: https://review.openstack.org/160179 - merged
    VPNaaS: device driver and agent refactoring part 1

Addressed by: https://review.openstack.org/160608 - merged
    Misc HA router cleanups

Gerrit topic: https://review.openstack.org/#q,topic:nsLock,n,z

Addressed by: https://review.openstack.org/162491 - merged
    Add functional test for namespaces manager

Addressed by: https://review.openstack.org/163222 - *** need review ***
    WIP Last-ditch effort to get the router stuff out of the agent

Addressed by: https://review.openstack.org/166054 - abandoned
    Add tests for the l3 agent namespaces manager

Addressed by: https://review.openstack.org/167462 - merged
    Use router state in get_ha_device_name and ha_network_added

Addressed by: https://review.openstack.org/167463 - merged
    Rename/move some HA routers methods

Addressed by: https://review.openstack.org/167464 - abandoned
    Remove HaRouter.verify_ha

Gerrit topic: https://review.openstack.org/#q,topic:bug/1430394,n,z

Addressed by: https://review.openstack.org/185072
    Merge branch 'master' into neutron-pecan

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.