yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #75890
[Bug 1804634] [NEW] [RFE] l3_agent should separate router_info creation logic
Public bug reported:
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.
** Affects: neutron
Importance: Undecided
Status: New
** Tags: rfe
** Tags added: rfe
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1804634
Title:
[RFE] l3_agent should separate router_info creation logic
Status in neutron:
New
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.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1804634/+subscriptions
Follow ups