Move networking-bgpvpn API reference into neutron-lib
This commit converts the BGP VPN API documentation into standard format and moves it into the neutron-lib api-ref. Change-Id: Ib0fef2e368c47b1400ab60de19198aa1d1994b69 Closes-Bug: #1636415 Depends-On: I3ba35ec6d20d1f60b60183eaea1271727e17f2aa
This commit is contained in:
parent
b992719ce1
commit
4b00739847
237
api-ref/source/v2/bgpvpn-bgpvpns.inc
Normal file
237
api-ref/source/v2/bgpvpn-bgpvpns.inc
Normal file
@ -0,0 +1,237 @@
|
||||
.. -*- rst -*-
|
||||
|
||||
========
|
||||
BGP VPNs
|
||||
========
|
||||
|
||||
A new BGPVPN resource is introduced. It contains a set of parameters for a
|
||||
BGP-based VPN.
|
||||
|
||||
A BGPVPN is created by the admin and given to a tenant who can then associate
|
||||
it to Networks or Routers.
|
||||
|
||||
The BGP VPNs API lists, shows details for, creates, updates, and deletes BGP VPNs.
|
||||
|
||||
List BGP VPNs
|
||||
=============
|
||||
|
||||
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns
|
||||
|
||||
Lists BGP VPNs to which the project has access.
|
||||
|
||||
Use the ``fields`` query parameter to control which fields are
|
||||
returned in the response body. Additionally, you can filter results
|
||||
by using query string parameters. For information, see `Filtering
|
||||
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
||||
-specification#Filtering_and_Column_Selection>`__.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 400, 401, 403
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- fields: fields
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpns: bgpvpns
|
||||
- id: bgpvpn-id-body
|
||||
- name: bgpvpn-name-required
|
||||
- type: bgpvpn-type-required
|
||||
- route_distinguishers: bgpvpn-route_distinguishers-required
|
||||
- route_targets: bgpvpn-route_targets-required
|
||||
- import_targets: bgpvpn-import_targets-required
|
||||
- export_targets: bgpvpn-export_targets-required
|
||||
- networks: bgpvpn-networks-required
|
||||
- routers: bgpvpn-routers-required
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpns-list-response.json
|
||||
:language: javascript
|
||||
|
||||
Create BGP VPNS
|
||||
===============
|
||||
|
||||
.. rest_method:: POST /v2.0/bgpvpn/bgpvpns
|
||||
|
||||
Creates a BGP VPN.
|
||||
|
||||
Normal response codes: 201
|
||||
|
||||
Error response codes: 400, 401
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn: bgpvpn
|
||||
- name: bgpvpn-name
|
||||
- route_distinguishers: bgpvpn-route_distinguishers
|
||||
- route_targets: bgpvpn-route_targets
|
||||
- import_targets: bgpvpn-import_targets
|
||||
- export_targets: bgpvpn-export_targets
|
||||
- tenant_id: tenant_id-request
|
||||
- project_id: project_id-request
|
||||
- type: bgpvpn-type
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-create-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn: bgpvpn
|
||||
- id: bgpvpn-id-body
|
||||
- name: bgpvpn-name-required
|
||||
- type: bgpvpn-type-required
|
||||
- route_targets: bgpvpn-route_targets-required
|
||||
- import_targets: bgpvpn-import_targets-required
|
||||
- export_targets: bgpvpn-export_targets-required
|
||||
- networks: bgpvpn-networks-required
|
||||
- routers: bgpvpn-routers-required
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-create-response.json
|
||||
:language: javascript
|
||||
|
||||
Show BGP VPN details
|
||||
====================
|
||||
|
||||
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}
|
||||
|
||||
Shows details for a BGP VPN.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn: bgpvpn
|
||||
- id: bgpvpn-id-body
|
||||
- name: bgpvpn-name-required
|
||||
- type: bgpvpn-type-required
|
||||
- route_distinguishers: bgpvpn-route_distinguishers-required
|
||||
- route_targets: bgpvpn-route_targets-required
|
||||
- import_targets: bgpvpn-import_targets-required
|
||||
- export_targets: bgpvpn-export_targets-required
|
||||
- networks: bgpvpn-networks-required
|
||||
- routers: bgpvpn-routers-required
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-show-response.json
|
||||
:language: javascript
|
||||
|
||||
Update a BGP VPN
|
||||
================
|
||||
|
||||
.. rest_method:: PUT /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}
|
||||
|
||||
Updates a BGP VPN.
|
||||
|
||||
Normal response codes: 201
|
||||
|
||||
Error response codes: 400, 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
A non-admin user can only update the name parameter. All other updates require
|
||||
admin privileges.
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
- bgpvpn: bgpvpn
|
||||
- name: bgpvpn-name
|
||||
- route_distinguishers: bgpvpn-route_distinguishers
|
||||
- route_targets: bgpvpn-route_targets
|
||||
- import_targets: bgpvpn-import_targets
|
||||
- export_targets: bgpvpn-export_targets
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-update-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn: bgpvpn
|
||||
- id: bgpvpn-id-body
|
||||
- name: bgpvpn-name-required
|
||||
- type: bgpvpn-type-required
|
||||
- route_distinguishers: bgpvpn-route_distinguishers-required
|
||||
- route_targets: bgpvpn-route_targets-required
|
||||
- import_targets: bgpvpn-import_targets-required
|
||||
- export_targets: bgpvpn-export_targets-required
|
||||
- networks: bgpvpn-networks-required
|
||||
- routers: bgpvpn-routers-required
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/bgpvpns/bgpvpn-update-response.json
|
||||
:language: javascript
|
||||
|
||||
Delete BGP VPN
|
||||
==============
|
||||
|
||||
.. rest_method:: DELETE /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}
|
||||
|
||||
Deletes a BGP VPN and its network and/or router associations.
|
||||
|
||||
Normal response codes: 202
|
||||
|
||||
Error response codes: 400, 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
There is no body content for the response of a successful DELETE request.
|
157
api-ref/source/v2/bgpvpn-network_associations.inc
Normal file
157
api-ref/source/v2/bgpvpn-network_associations.inc
Normal file
@ -0,0 +1,157 @@
|
||||
====================
|
||||
Network Associations
|
||||
====================
|
||||
|
||||
Associating a BGPVPN to a Network can be done for both BGPVPN of type L2 and of
|
||||
type L3. For type L3, the semantic is that all Subnets bound to the Network
|
||||
will be interconnected with the BGP VPN (and thus between themselves).
|
||||
|
||||
A given Network can be associated with multiple BGPVPNs.
|
||||
|
||||
Associating or disassociating a BGPVPN to a Network is done by manipulating a
|
||||
Network association API resource as a sub-resource of the BGPVPN resource:
|
||||
|
||||
List Network Associations
|
||||
=========================
|
||||
|
||||
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations
|
||||
|
||||
Lists network associations for a given BGP VPN.
|
||||
|
||||
Use the ``fields`` query parameter to control which fields are
|
||||
returned in the response body. Additionally, you can filter results
|
||||
by using query string parameters. For information, see `Filtering
|
||||
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
||||
-specification#Filtering_and_Column_Selection>`__.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 400, 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
- fields: fields
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- network_associations: bgpvpn-network_associations
|
||||
- id: bgpvpn-network_association_id
|
||||
- network_id: bgpvpn-network_id
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/network_associations/network_association-list-response.json
|
||||
:language: javascript
|
||||
|
||||
Create Network Association
|
||||
==========================
|
||||
|
||||
.. rest_method:: POST /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations
|
||||
|
||||
Creates a network association for a given BGP VPN
|
||||
|
||||
Normal response codes: 201
|
||||
|
||||
Error response codes: 400, 401, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
- network_association: bgpvpn-network_association
|
||||
- network_id: bgpvpn-network_id
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/network_associations/network_association-create-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- network_association: bgpvpn-network_association
|
||||
- id: bgpvpn-network_association_id
|
||||
- network_id: bgpvpn-network_id
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/network_associations/network_association-create-response.json
|
||||
:language: javascript
|
||||
|
||||
Show Network Association details
|
||||
================================
|
||||
|
||||
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations/{network_association_id}
|
||||
|
||||
Shows details for a network association.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
- network_association_id: bgpvpn-network_association_id-path
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- network_association: bgpvpn-network_association
|
||||
- id: bgpvpn-network_association_id
|
||||
- network_id: bgpvpn-network_id
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/network_associations/network_association-show-response.json
|
||||
:language: javascript
|
||||
|
||||
Delete Network Association
|
||||
==========================
|
||||
|
||||
.. rest_method:: DELETE /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/network_associations/{network_association_id}
|
||||
|
||||
Deletes a network association.
|
||||
|
||||
Normal response codes: 202, 204
|
||||
|
||||
Error response codes: 400, 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
- network_association_id: bgpvpn-network_association_id-path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
There is no body content for the response of a successful DELETE request.
|
91
api-ref/source/v2/bgpvpn-overview.inc
Normal file
91
api-ref/source/v2/bgpvpn-overview.inc
Normal file
@ -0,0 +1,91 @@
|
||||
=======================
|
||||
BGP - MPLS VPN Overview
|
||||
=======================
|
||||
|
||||
The ``bgpvpn`` extension implements the BGP VPN Interconnection API
|
||||
which provides the ability to associate OpenStack networks and/or
|
||||
routers with Multiprotocol Label Switching (MPLS) Virtual Private
|
||||
Networks (VPNs) via Border Gateway Patrol (BGP) peering. BGP-MPLS VPNs
|
||||
are commonly provided by telecommuncations service providers to
|
||||
customers in addition to or instead of Internet connectivity for Wide
|
||||
Area Networking. This API enables the interconnection of with these
|
||||
WANs using *Route Targets* to indicate the desired network(s).
|
||||
|
||||
On Route Targets
|
||||
================
|
||||
|
||||
``route_targets``, ``import_targets``, ``export_targets`` attributes
|
||||
|
||||
- The set of RTs used for import is the union of ``route_targets`` and ``import_targets``.
|
||||
- The set of RTs used for export is the union of ``route_targets`` and ``export_targets``.
|
||||
|
||||
At least one of ``route_targets``, ``import_targets`` or ``export_targets`` options will
|
||||
typically be defined, but the API will not enforce that and all lists can be
|
||||
empty.
|
||||
|
||||
For instance, in the very typical use case where the BGP VPN uses a single
|
||||
Route Target for both import and export, the route_targets parameter alone is
|
||||
enough and will contain one Route target.
|
||||
|
||||
On Route Distinguishers (RDs)
|
||||
=============================
|
||||
|
||||
The ``route_distinguishers`` parameter is optional and provides an
|
||||
indication of the RDs that shall be used for routes announced for
|
||||
Neutron networks. The contract is that when a list of RDs is specified,
|
||||
the backend will use, for a said advertisement of a route, one of these
|
||||
RDs. The motivation for having a list rather than only one RD is to
|
||||
allow the support for multihoming a VPN prefix (typically for
|
||||
resiliency, load balancing or anycast). A backend may or may not
|
||||
support this behavior, and should report an API error in the latter
|
||||
case. When not specified, the backend will use automatically-assigned
|
||||
RDs (for instance <ip>:<number> RDs derived from the Provider Edge (PE) IP).
|
||||
|
||||
Valid strings for Route Distinguishers and Route Targets
|
||||
========================================================
|
||||
|
||||
Valid strings for a Route Target or a Route Distinguisher are the following:
|
||||
|
||||
- <2-byte AS#>:<32bit-number>
|
||||
- <4-byte AS#>:<16bit-number>
|
||||
- <4-byte IPv4>:<16bit-number>
|
||||
|
||||
======================
|
||||
BGP - MPLS VPN Caveats
|
||||
======================
|
||||
|
||||
Association constraints
|
||||
=======================
|
||||
|
||||
A given BGP VPN can be associated to multiple networks and/or multiple
|
||||
routers.
|
||||
|
||||
To avoid any ambiguity on semantics in particular the context of
|
||||
processing associated to a router (e.g. NAT or FWaaS), if a given subnet
|
||||
in a network is bound to a router, this API does not allow to both
|
||||
associate the network to an L3 BGP VPN and the router to the same or to
|
||||
a distinct L3 BGP VPN.
|
||||
|
||||
Moreover, for BGP VPNs of type L3, there are possible cases of IP prefix
|
||||
overlaps that can't be detected by the service plugin before BGP routes
|
||||
are received, for which the behavior is left undefined by these
|
||||
specifications (i.e. which of the overlapping routes is being used) and
|
||||
will depend on the backend. This applies for both router associations
|
||||
and network associations in the case where traffic is forwarded by a
|
||||
router and the destination IP belongs both to a prefix of a BGP VPN
|
||||
associated with the router or with the network originating the traffic,
|
||||
and to a prefix of a subnet bound to the router; in such a case whether
|
||||
the traffic will be delivered to the subnet or to the BGP VPN is not
|
||||
defined by this API.
|
||||
|
||||
Connectivity Impact inside Openstack Neutron
|
||||
============================================
|
||||
|
||||
Creating two BGP VPNs with RTs resulting in both VPNs to exchange
|
||||
routes, and then associating these two BGP VPNs to two networks, will
|
||||
result in establishing interconnectivity between these two networks,
|
||||
this simply being the result of applying BGP VPN Route Target semantics
|
||||
(i.e. without making prefixes to OpenStack networks a particular case).
|
||||
|
||||
This similarly applies to router associations.
|
||||
|
159
api-ref/source/v2/bgpvpn-router_associations.inc
Normal file
159
api-ref/source/v2/bgpvpn-router_associations.inc
Normal file
@ -0,0 +1,159 @@
|
||||
.. -*- rst -*-
|
||||
|
||||
===================
|
||||
Router Associations
|
||||
===================
|
||||
|
||||
Associating a BGPVPN to a Router can be done only for BGPVPN of type L3. The
|
||||
semantic is that all Subnets bound to the Router will be interconnected with
|
||||
the BGPVPN.
|
||||
|
||||
A said Router can be associated with multiple BGPVPNs.
|
||||
|
||||
Associating or disassociating a BGPVPN to a Router is done by manipulating a
|
||||
Router association API resource as a sub-resource of the BGPVPN resource:
|
||||
|
||||
List Router Associations
|
||||
=========================
|
||||
|
||||
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations
|
||||
|
||||
Lists router associations for a given BGP VPN.
|
||||
|
||||
Use the ``fields`` query parameter to control which fields are
|
||||
returned in the response body. Additionally, you can filter results
|
||||
by using query string parameters. For information, see `Filtering
|
||||
and Column Selection <https://wiki.openstack.org/wiki/Neutron/APIv2
|
||||
-specification#Filtering_and_Column_Selection>`__.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 400, 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
- fields: fields
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- router_associations: bgpvpn-router_associations
|
||||
- id: bgpvpn-router_association_id
|
||||
- router_id: bgpvpn-router_id
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/router_associations/router_association-list-response.json
|
||||
:language: javascript
|
||||
|
||||
Create Router Association
|
||||
==========================
|
||||
|
||||
.. rest_method:: POST /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations
|
||||
|
||||
Creates a router association for a given BGP VPN
|
||||
|
||||
Normal response codes: 201
|
||||
|
||||
Error response codes: 400, 401, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
- router_association: bgpvpn-router_association
|
||||
- router_id: bgpvpn-router_id
|
||||
|
||||
Request Example
|
||||
---------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/router_associations/router_association-create-request.json
|
||||
:language: javascript
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- router_association: bgpvpn-router_association
|
||||
- id: bgpvpn-router_association_id
|
||||
- router_id: bgpvpn-router_id
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/router_associations/router_association-create-response.json
|
||||
:language: javascript
|
||||
|
||||
Show Router Association details
|
||||
================================
|
||||
|
||||
.. rest_method:: GET /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{router_association_id}
|
||||
|
||||
Shows details for a router association.
|
||||
|
||||
Normal response codes: 200
|
||||
|
||||
Error response codes: 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
- router_association_id: bgpvpn-router_association_id-path
|
||||
|
||||
Response Parameters
|
||||
-------------------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- router_association: bgpvpn-router_association
|
||||
- id: bgpvpn-router_association_id
|
||||
- router_id: bgpvpn-router_id
|
||||
- tenant_id: project_id
|
||||
- project_id: project_id
|
||||
|
||||
Response Example
|
||||
----------------
|
||||
|
||||
.. literalinclude:: samples/bgpvpn/router_associations/router_association-show-response.json
|
||||
:language: javascript
|
||||
|
||||
Delete Router Association
|
||||
==========================
|
||||
|
||||
.. rest_method:: DELETE /v2.0/bgpvpn/bgpvpns/{bgpvpn_id}/router_associations/{router_association_id}
|
||||
|
||||
Deletes a router association.
|
||||
|
||||
Normal response codes: 202
|
||||
|
||||
Error response codes: 400, 401, 403, 404
|
||||
|
||||
Request
|
||||
-------
|
||||
|
||||
.. rest_parameters:: parameters.yaml
|
||||
|
||||
- bgpvpn_id: bgpvpn-id-path
|
||||
- router_association_id: bgpvpn-router_association_id-path
|
||||
|
||||
Response
|
||||
--------
|
||||
|
||||
There is no body content for the response of a successful DELETE request.
|
@ -52,8 +52,8 @@ Quality of Service
|
||||
##########################
|
||||
Load Balancer as a Service
|
||||
##########################
|
||||
.. include:: lbaas-v2.inc
|
||||
.. include:: lbaas-v1.inc
|
||||
.. include:: lbaas-v2.inc
|
||||
#####################################
|
||||
Logging Resource (networking-midonet)
|
||||
#####################################
|
||||
@ -67,3 +67,10 @@ Router interface floating IP (networking-midonet)
|
||||
FIP64 (networking-midonet)
|
||||
##########################
|
||||
.. include:: fip64.inc
|
||||
############################
|
||||
BGP/MPLS VPN Interconnection
|
||||
############################
|
||||
.. include:: bgpvpn-overview.inc
|
||||
.. include:: bgpvpn-bgpvpns.inc
|
||||
.. include:: bgpvpn-network_associations.inc
|
||||
.. include:: bgpvpn-router_associations.inc
|
||||
|
@ -1,6 +1,24 @@
|
||||
# variables in header
|
||||
|
||||
# variables in path
|
||||
bgpvpn-id-path:
|
||||
description: |
|
||||
The ID of the BGP VPN.
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
bgpvpn-network_association_id-path:
|
||||
description: |
|
||||
The ID of an association between a network and a BGP VPN.
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
bgpvpn-router_association_id-path:
|
||||
description: |
|
||||
The ID of an association between a router and a BGP VPN.
|
||||
in: path
|
||||
required: true
|
||||
type: string
|
||||
connection_id-path:
|
||||
description: |
|
||||
The ID of the IPSec site-to-site connection.
|
||||
@ -605,6 +623,180 @@ bandwidth_limit_rules:
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
bgpvpn:
|
||||
description: |
|
||||
A ``bgpvpn`` object represents an MPLS network with which Neutron routers
|
||||
and/or networks may be associated
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
bgpvpn-export_targets:
|
||||
description: |
|
||||
Additional Route Targets that will be used for export.
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
bgpvpn-export_targets-required:
|
||||
description: |
|
||||
Additional Route Targets that will be used for export.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
bgpvpn-id-body:
|
||||
description: |
|
||||
The ID of the BGP VPN.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
bgpvpn-import_targets:
|
||||
description: |
|
||||
Additional Route Targets that will be imported.
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
bgpvpn-import_targets-required:
|
||||
description: |
|
||||
Additional Route Targets that will be imported.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
bgpvpn-name:
|
||||
description: |
|
||||
The user meaningful name of the BGP VPN.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
bgpvpn-name-required:
|
||||
description: |
|
||||
The user meaningful name of the BGP VPN.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
bgpvpn-network_association:
|
||||
description: |
|
||||
A ``network_association`` object represents the binding of an MPLS network
|
||||
to a Neutron network.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
bgpvpn-network_association_id:
|
||||
description: |
|
||||
The ID of an association between a network and a BGP VPN.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
bgpvpn-network_associations:
|
||||
description: |
|
||||
A list of ``network_association`` objects which represent bindings
|
||||
of MPLS networks to Neutron networks.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
bgpvpn-network_id:
|
||||
description: |
|
||||
The ID of a Neutron network with which to associate the BGP VPN.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
bgpvpn-networks:
|
||||
description: |
|
||||
This read-only list of network IDs reflects the associations defined by Network association API resources.
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
bgpvpn-networks-required:
|
||||
description: |
|
||||
This read-only list of network IDs reflects the associations defined by Network association API resources.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
bgpvpn-route_distinguishers:
|
||||
description: |
|
||||
List of route distinguisher strings. If this parameter is specified, one of these RDs will be used to advertise VPN routes.
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
bgpvpn-route_distinguishers-required:
|
||||
description: |
|
||||
List of route distinguisher strings. If this parameter is specified, one of these RDs will be used to advertise VPN routes.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
bgpvpn-route_targets:
|
||||
description: |
|
||||
Route Targets that will be both imported and used for export.
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
bgpvpn-route_targets-required:
|
||||
description: |
|
||||
Route Targets that will be both imported and used for export.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
bgpvpn-router_association:
|
||||
description: |
|
||||
A ``router_association`` object represents the binding of an MPLS network
|
||||
to a Neutron router.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
bgpvpn-router_association_id:
|
||||
description: |
|
||||
The ID of an association between a router and a BGP VPN.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
bgpvpn-router_associations:
|
||||
description: |
|
||||
A list of ``router_association`` objects which represent bindings
|
||||
of MPLS networks to Neutron routers.
|
||||
in: body
|
||||
required: true
|
||||
type: object
|
||||
bgpvpn-router_id:
|
||||
description: |
|
||||
The ID of a Neutron router with which to associate the BGP VPN.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
bgpvpn-routers:
|
||||
description: |
|
||||
This read-only list of router IDs reflects the associations defined by Router association API resources.
|
||||
in: body
|
||||
required: false
|
||||
type: array
|
||||
bgpvpn-routers-required:
|
||||
description: |
|
||||
This read-only list of router IDs reflects the associations defined by Router association API resources.
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
bgpvpn-type:
|
||||
description: |
|
||||
Selection of the type of VPN and the technology behind it. Allowed
|
||||
values are ``l2`` or ``l3``. The default is l3. ``l2`` indicates a Layer
|
||||
2 (i.e. bridged) attachment and ``l3`` indicates a Layer 3 (i.e.
|
||||
routed) attachment.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
bgpvpn-type-required:
|
||||
description: |
|
||||
Selection of the type of VPN and the technology behind it. Allowed
|
||||
values are ``l2`` or ``l3``. The default is l3. ``l2`` indicates a Layer
|
||||
2 (i.e. bridged) attachment and ``l3`` indicates a Layer 3 (i.e.
|
||||
routed) attachment.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
bgpvpns:
|
||||
description: |
|
||||
A list of ``bgpvpn`` objects. Each ``bgpvpn`` object represents an
|
||||
MPLS network with which Neutron routers and/or networks may be associated
|
||||
in: body
|
||||
required: true
|
||||
type: array
|
||||
binding:host_id:
|
||||
description: |
|
||||
The ID of the host where the port resides.
|
||||
@ -3818,13 +4010,13 @@ project_id:
|
||||
type: string
|
||||
project_id-body-optional:
|
||||
description: |
|
||||
The ID of the project.
|
||||
The ID of the project that owns the resource.
|
||||
in: body
|
||||
required: false
|
||||
type: string
|
||||
project_id-body-required:
|
||||
description: |
|
||||
The ID of the project.
|
||||
The ID of the project that owns the resource.
|
||||
in: body
|
||||
required: true
|
||||
type: string
|
||||
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
"bgpvpn": {
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"route_targets": "64512:1444",
|
||||
"import_targets": "64512:1555",
|
||||
"export_targets": "64512:1666",
|
||||
"route_distinguishers": ["64512:1777", "64512:1888", "64512:1999"],
|
||||
"type": "l3"
|
||||
}
|
||||
}
|
@ -0,0 +1,25 @@
|
||||
{
|
||||
"bgpvpn": {
|
||||
"export_targets": [
|
||||
"64512:1666"
|
||||
],
|
||||
"name": "",
|
||||
"routers": [],
|
||||
"route_distinguishers": [
|
||||
"64512:1777",
|
||||
"64512:1888",
|
||||
"64512:1999"
|
||||
],
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"project_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"import_targets": [
|
||||
"64512:1555"
|
||||
],
|
||||
"route_targets": [
|
||||
"64512:1444"
|
||||
],
|
||||
"type": "l3",
|
||||
"id": "0f9d472a-908f-40f5-8574-b4e8a63ccbf0",
|
||||
"networks": []
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
{
|
||||
"bgpvpn": {
|
||||
"id": "460ac411-3dfb-45bb-8116-ed1a7233d143",
|
||||
"name": "foo",
|
||||
"route_targets": ["64512:1444"],
|
||||
"export_targets": [],
|
||||
"import_targets": [],
|
||||
"type": "l3",
|
||||
"tenant_id": "f94ea398564d49dfb0d542f086c68ce7",
|
||||
"project_id": "f94ea398564d49dfb0d542f086c68ce7",
|
||||
"routers": [],
|
||||
"route_distinguishers": [],
|
||||
"networks": [
|
||||
"a4f2b8df-cb42-4893-a333-d0b5c36ade17"
|
||||
]
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"bgpvpn": {
|
||||
"name": "foo",
|
||||
"route_targets": ["64512:1444"],
|
||||
"export_targets": [],
|
||||
"import_targets": []
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
{
|
||||
"bgpvpn": {
|
||||
"export_targets": [],
|
||||
"name": "",
|
||||
"routers": [],
|
||||
"route_distinguishers": [
|
||||
"12345:1234"
|
||||
],
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"import_targets": [],
|
||||
"route_targets": ["64512:1444"],
|
||||
"type": "l3",
|
||||
"id": "4d627abf-06dd-45ab-920b-8e61422bb984",
|
||||
"networks": []
|
||||
}
|
||||
}
|
@ -0,0 +1,27 @@
|
||||
{
|
||||
"bgpvpns": [
|
||||
{
|
||||
"export_targets": [
|
||||
"64512:1666"
|
||||
],
|
||||
"name": "",
|
||||
"routers": [],
|
||||
"route_distinguishers": [
|
||||
"64512:1777",
|
||||
"64512:1888",
|
||||
"64512:1999"
|
||||
],
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"project_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"import_targets": [
|
||||
"64512:1555"
|
||||
],
|
||||
"route_targets": [
|
||||
"64512:1444"
|
||||
],
|
||||
"type": "l3",
|
||||
"id": "0f9d472a-908f-40f5-8574-b4e8a63ccbf0",
|
||||
"networks": []
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"network_association": {
|
||||
"network_id": "8c5d88dc-60ac-4b02-a65a-36b65888ddcd"
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"network_association": {
|
||||
"network_id": "8c5d88dc-60ac-4b02-a65a-36b65888ddcd",
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"project_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"id": "73238ca1-e05d-4c7a-b4d4-70407b4b8730"
|
||||
}
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
{
|
||||
"network_associations": [
|
||||
{
|
||||
"network_id": "8c5d88dc-60ac-4b02-a65a-36b65888ddcd",
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"project_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"id": "96227c78-6a0c-4d9d-b441-c4b8f6fb6c4a"
|
||||
},
|
||||
{
|
||||
"network_id": "a4f2b8df-cb42-4893-a333-d0b5c36ade17",
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"project_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"id": "1b09fd12-c769-4be7-9c26-dececa474acf"
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
{
|
||||
"network_association":
|
||||
{
|
||||
"id": "1b09fd12-c769-4be7-9c26-dececa474acf",
|
||||
"network_id": "a4f2b8df-cb42-4893-a333-d0b5c36ade17",
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"project_id": "b7549121395844bea941bb92feb3fad9"
|
||||
}
|
||||
}
|
@ -0,0 +1,5 @@
|
||||
{
|
||||
"router_association": {
|
||||
"router_id": "b58a6241-6e49-4b11-87c6-8e0606dde796"
|
||||
}
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"router_association": {
|
||||
"router_id": "46a1a80b-7c42-4c45-88fd-b531e636969f",
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"project_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"id": "c63149a0-a0b3-4ca7-aba4-9aaa1b39d7f3"
|
||||
}
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
{
|
||||
"router_associations": [
|
||||
{
|
||||
"router_id": "61222227-49eb-4dcc-b2d6-66bbfb2fdd7a",
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"project_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"id": "95277be7-a231-4e96-9625-8f9fe41de9d6"
|
||||
}
|
||||
]
|
||||
}
|
@ -0,0 +1,8 @@
|
||||
{
|
||||
"router_association": {
|
||||
"id": "c63149a0-a0b3-4ca7-aba4-9aaa1b39d7f3",
|
||||
"router_id": "46a1a80b-7c42-4c45-88fd-b531e636969f",
|
||||
"tenant_id": "b7549121395844bea941bb92feb3fad9",
|
||||
"project_id": "b7549121395844bea941bb92feb3fad9"
|
||||
}
|
||||
}
|
3
releasenotes/notes/bgpvpn-api-ref-f0294d9ddec726a0.yaml
Normal file
3
releasenotes/notes/bgpvpn-api-ref-f0294d9ddec726a0.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
features:
|
||||
- API reference for the ``networking-bgpvpn`` extension.
|
Loading…
x
Reference in New Issue
Block a user