[RFE] l3_agent should separate router_info creation logic
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Wishlist
|
Yang Youseok |
Bug Description
Currently, l3-agent has tightly coupled with router_info creation logic, so there is no way to make a big change of default router's behaviors. Even there are already many diverse routers (dvr, dvrha, dvr_snat...), every routers depend detailed implementation rather than structured interfaces. So it makes hard to add new feature.
I found a majority of networking-* with l3 implementation just override core L3NatAgent and add a little tweaking functions to change default l3-agent behavior. IMHO, if there is clear interface in L3 agent for specific router, they just add their router business logic rather than did not override core agent class. I noticed they did not change RPC mechanism a lot in agent side, and want to just make few tweak like us.
What I suggest is make abstract class for router with minimal functions (initialize(), process()..), and add create router logic with dynamically configured router_info class. It decouples the creation and RPC controller so that plugin developer can easily change the default router behavior.
To provide more specific use case, what we have done was to add linux VRF feature instead of namespace and East-West traffic is enabled by default so that there is no need to add GW / internal port at all. We do not need majority of functions except floating IP, but every kind of API / RPC is useful at the same time from server side.
tags: | added: rfe |
Changed in neutron: | |
assignee: | nobody → Yang Youseok (ileixe) |
Changed in neutron: | |
assignee: | Yang Youseok (ileixe) → Igor D.C. (igordcard) |
Changed in neutron: | |
assignee: | Igor D.C. (igordcard) → Yang Youseok (ileixe) |
in case you have a concrete proposal, i guess it's nice to have a spec.