[RFE] Add agent extension framework for L3 agent
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Wishlist
|
Margaret Frances |
Bug Description
Neutron advanced services (*aaS) projects need a standardized method to gain access to resources internal to the L3 agent. Previously, the proper methodology was using inheritance from L3NATAgent and it's subclasses. But now it is necessary to decouple these things, so that each *aaS can be a separate extension that registers with the L3 agent, can interrogate the L3 agent for necessary information, and receives notifications of events through callbacks.
Some examples of what this would enable FWaaS and other advanced services to do are:
- The ability to map router_id to router info so we can program iptables to the correct namespace.
- The ability to load the Service Agent - so we have an RPC endpoint in the context of L3Agent.
FWaaS can then use the existing observer hierarchy pattern to listen for notifications. This would prevent the need to patch the agent code for advanced services to function.
Note: This must be executed in such a way that multiple *aaS services can plug in simultaneously without interfering with each other.
summary: |
- Add agent extension framework for L3 agent + [RFE] Add agent extension framework for L3 agent |
tags: | added: fwaas |
tags: | added: l3-ipam-dhcp |
Changed in neutron: | |
status: | New → Triaged |
Changed in neutron: | |
status: | In Progress → Triaged |
Changed in neutron: | |
status: | Triaged → In Progress |
Changed in neutron: | |
milestone: | none → newton-1 |
Changed in neutron: | |
milestone: | newton-1 → newton-2 |
Changed in neutron: | |
assignee: | Nate Johnston (nate-johnston) → Margaret Frances (margaret-frances) |
Changed in neutron: | |
assignee: | Margaret Frances (margaret-frances) → Nate Johnston (nate-johnston) |
Changed in neutron: | |
milestone: | newton-2 → newton-3 |
Changed in neutron: | |
milestone: | newton-3 → newton-rc1 |
Changed in neutron: | |
status: | In Progress → Fix Released |
I think we should look at what was done in the L2 agent (e.g. [1][2][3]) to see what we can learn.
[1] https:/ /review. openstack. org/#/c/ 195439/ /review. openstack. org/#/c/ 263819/ /review. openstack. org/#/c/ 267591/
[2] https:/
[3] https:/