2016-08-16 08:14:18 |
Yang Yu |
description |
The interface https://github.com/openstack/neutron-dynamic-routing/blob/master/neutron_dynamic_routing/services/bgp/bgp_plugin.py is bound to rpc driver so closely, it is not suitable to extend the BGP driver which is agentless.
So we need to do following steps:
1> Refactor the code to support agentless driver
2> Using service_providers method to load the different driver
3> Deliver an overall agent driver interface so that some agent driver such as quagga and ryu are easy to be load. |
The interface https://github.com/openstack/neutron-dynamic-routing/blob/master/neutron_dynamic_routing/services/bgp/bgp_plugin.py is bound to rpc driver so closely, it is not suitable to extend the BGP driver which is agentless.
So we need to do following steps:
1> Refactor the code to support agentless driver
2> Using service_providers method to load the different driver
3> Deliver an overall agent driver interface so that some agent driver such as quagga and ryu are easy to be load.
For this refactor, I added followings in my patch https://review.openstack.org/#/c/349921/.
1> Add a new configuration file named neutron_dynamic_routing.conf to provider the service_providers configuration.
2> The neutron-bgp-dragent binary will invoke the neutron_dynamic_routing.conf file.
3> The default service_providers will be DYNAMIC_ROUTING:RPCDriver:neutron_dynamic_routing.services.bgp.service_drivers.rpc_bgp.BgpRpcPluginDriver:default
4> Now the bgp_plugin.py will be a unified the interface to invoking the dynamic routing, the rpc_bgp.py will be a agent driver and be responsible for interact with lower layer interface such as ryu/quagga. |
|