.. Copyright 2016 Huawei Technologies India Pvt Limited. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Convention for heading levels in Neutron devref: ======= Heading 0 (reserved for the title in a document) ------- Heading 1 ~~~~~~~ Heading 2 +++++++ Heading 3 ''''''' Heading 4 (Avoid deeper levels because they do not render well.) Agent ===== Neutron-dynamic-routing implements a new agent named "DRAgent". The agent talks to the neutron-dynamic-routing plugin which resides in the neutron server to get routing entity configuration. DRAgent interacts with the back-end driver to realize the required dynamic routing protocol functionality. For details, please refer to the system design document :doc:`system-design` .. note:: One DRAgent can support multiple drivers but currently ONLY Ryu is integrated successfully. Scheduler ========= Neutron-dynamic-routing scheduler, schedules a routing entity to a proper DRAgent. BGP Scheduler ------------- BGP Speaker and DRAgent has 1:N association which means one BGP speaker can be scheduled on multiple DRAgents. Here is an example to associate/disassociate a BGP Speaker to/from a DRAgent. :: (neutron) bgp-speaker-list +--------------------------------------+------+----------+------------+ | id | name | local_as | ip_version | +--------------------------------------+------+----------+------------+ | 0967eb04-59e5-4ca6-a0b0-d584d8d4a132 | bgp2 | 200 | 4 | | a73432c3-a3fc-4b1e-9be2-6c32a61df579 | bgp1 | 100 | 4 | +--------------------------------------+------+----------+------------+ (neutron) agent-list +--------------------------------------+---------------------------+---------------------+-------------------+-------+----------------+---------------------------+ | id | agent_type | host | availability_zone | alive | admin_state_up | binary | +--------------------------------------+---------------------------+---------------------+-------------------+-------+----------------+---------------------------+ | 0c21a829-4fd6-4375-8e65-36db4dc434ac | DHCP agent | steve-devstack-test | nova | :-) | True | neutron-dhcp-agent | | 0f9d6886-910d-4af4-b248-673b22eb9e78 | Metadata agent | steve-devstack-test | | :-) | True | neutron-metadata-agent | | 5908a304-b9d9-4e8c-a0af-96a066a7c87e | Open vSwitch agent | steve-devstack-test | | :-) | True | neutron-openvswitch-agent | | ae74e375-6a75-4ebe-b85c-6628d2baf02f | L3 agent | steve-devstack-test | nova | :-) | True | neutron-l3-agent | | dbd9900e-9d16-444d-afc4-8d0035df5ed5 | BGP dynamic routing agent | steve-devstack-test | | :-) | True | neutron-bgp-dragent | +--------------------------------------+---------------------------+---------------------+-------------------+-------+----------------+---------------------------+ (neutron) bgp-dragent-speaker-add dbd9900e-9d16-444d-afc4-8d0035df5ed5 bgp1 Associated BGP speaker bgp1 to the Dynamic Routing agent. (neutron) bgp-speaker-list-on-dragent dbd9900e-9d16-444d-afc4-8d0035df5ed5 +--------------------------------------+------+----------+------------+ | id | name | local_as | ip_version | +--------------------------------------+------+----------+------------+ | a73432c3-a3fc-4b1e-9be2-6c32a61df579 | bgp1 | 100 | 4 | +--------------------------------------+------+----------+------------+ (neutron) bgp-dragent-speaker-remove dbd9900e-9d16-444d-afc4-8d0035df5ed5 bgp1 Disassociated BGP speaker bgp1 from the Dynamic Routing agent. (neutron) bgp-speaker-list-on-dragent dbd9900e-9d16-444d-afc4-8d0035df5ed5 (neutron) .. note:: Currently, auto-scheduling is not supported. ReST API's for neutron-dynamic-routing scheduler is defined in the API document :doc:`api`