Part of doc-migration work The proposed document strucutre is documented at: http://specs.openstack.org/openstack/docs-specs/specs/pike/os-manuals-migration.html Change-Id: I3b774ae8c55e5d980e82ae4e81ade75f79074197
12 KiB
API
Introduction
Neutron dynamic routing project adds the support for dynamic routing protocols in neutron. Using the ReST interface, a cloud administrator can define routing peers and advertise neutron routes outside the OpenStack domain.
Note
Currently, only the support for BGP dynamic routing protocol is available.
Data Model
New data models are defined for supporting routing protocols. Below models are defined for different protocols.
BGP
BGP Speaker
id
The uuid of BGP Speaker.name
The name of BGP Speaker.local_as
The local AS value, ranges from 1 to 65535.ip_version
The ip address version for BGP Speaker. 4 by default.peers
The remote peer connection which supports BGP.networks
The tenant networks connected to the BGP Speaker.advertise_floating_ip_host_routes
Whether to enable or disable the advertisement of floating ip host routes by the BGP Speaker. True by default.advertise_tenant_networks
Whether to enable or disable the advertisement of tenant network routes by the BGP Speaker. True by default.
BGP Peer
id
The uuid of BGP peer.name
The name of BGP peer.peer_ip
The IP address of BGP peer.remote_as
The remote AS value, ranges from 1 to 65535.auth_type
The authentication algorithm. Supported algorithms: none and md5, none by default.password
The authentication password for the specified authentication type.
ReST Interface
Different ReST interface are exposed for realizing different dynamic protocol functionality.
Note
Only an administrator have the access to the exposed API's.
BGP
BGP Speaker
Create
Issue a POST
request to /v2.0/bgp-speakers
with following JSON-encoded data to create a BGP Speaker: :
{
"bgp_speaker":{
"ip_version":4,
"local_as":"1000",
"name":"bgp-speaker"
}
}
Response body:
{
"bgp_speaker":{
"peers":[
],
"name":"bgp-speaker",
"tenant_id":"34a6e17a48cf414ebc890367bf42266b",
"local_as":1000,
"advertise_tenant_networks":true,
"networks":[
],
"ip_version":4,
"advertise_floating_ip_host_routes":true,
"id":"5e08db80-db77-4b5c-a56d-dbca0b284f2c"
}
}
Return code: 201
List
Issue a GET
request to /v2.0/bgp-speakers
to retrieve this list of available BGP Speakers. :
Response body:
{
"bgp_speakers":[
{
"peers":[
],
"name":"bgp-speaker-1",
"tenant_id":"34a6e17a48cf414ebc890367bf42266b",
"local_as":1001,
"advertise_tenant_networks":true,
"networks":[
],
"ip_version":4,
"advertise_floating_ip_host_routes":true,
"id":"5e08db80-db77-4b5c-a56d-dbca0b284f2c"
},
{
"peers":[
],
"name":"bgp-speaker",
"tenant_id":"34a6e17a48cf414ebc890367bf42266b",
"local_as":1000,
"advertise_tenant_networks":true,
"networks":[
],
"ip_version":4,
"advertise_floating_ip_host_routes":true,
"id":"b759b2a1-27f4-4a6b-bb61-f2c9a22c9902"
}
]
}
Return code: 200
Show
Issue a GET
request to
/v2.0/bgp-speakers/<bgp-speaker-id>
to retrieve the
detail about a specific BGP Speaker. :
Response body:
{
"bgp_speaker":{
"peers":[
],
"name":"bgp-speaker",
"tenant_id":"34a6e17a48cf414ebc890367bf42266b",
"local_as":1000,
"advertise_tenant_networks":true,
"networks":[
],
"ip_version":4,
"advertise_floating_ip_host_routes":true,
"id":"b759b2a1-27f4-4a6b-bb61-f2c9a22c9902"
}
}
Return code: 200
Update
Issue PUT
request to
/v2.0/bgp-speakers/<bgp-speaker-id>
to update a
specific BGP Speaker. Following attributes can be updated.
name
The name of BGP Speaker.advertise_floating_ip_host_routes
Whether to enable or disable the advertisement of floating ip host routes by the BGP Speaker. True by default.advertise_tenant_networks
Whether to enable or disable the advertisement of tenant network routes by the BGP Speaker. True by default.
Delete
Issue DELETE
request to
/v2.0/bgp-speakers/<bgp-speaker-id>
to delete a
specific BGP Speaker. :
No response body
Return code: 204
BGP Peer
Create
Issue a POST
request to /v2.0/bgp-peers
with following JSON-encoded data to create a BGP peer: :
{
"bgp_peer":{
"auth_type":"none",
"remote_as":"1001",
"name":"bgp-peer",
"peer_ip":"10.0.0.3"
}
}
Response body:
{
"bgp_peer":{
"auth_type":"none",
"remote_as":"1001",
"name":"bgp-peer",
"tenant_id":"34a6e17a48cf414ebc890367bf42266b",
"peer_ip":"10.0.0.3",
"id":"a7193581-a31c-4ea5-8218-b3052758461f"
}
}
Return code: 201
List
Issue a GET
request to /v2.0/bgp-peers
to
retrieve the list of available BGP peers. :
Response body:
{
"bgp_peers":[
{
"auth_type":"none",
"remote_as":1001,
"name":"bgp-peer",
"tenant_id":"34a6e17a48cf414ebc890367bf42266b",
"peer_ip":"10.0.0.3",
"id":"a7193581-a31c-4ea5-8218-b3052758461f"
}
]
}
Return code: 200
Show
Issue a GET
request to
/v2.0/bgp-peers/<bgp-peer-id>
to retrieve the detail
about a specific BGP peer. :
Response body:
{
"bgp_peer":{
"auth_type":"none",
"remote_as":1001,
"name":"bgp-peer",
"tenant_id":"34a6e17a48cf414ebc890367bf42266b",
"peer_ip":"10.0.0.3",
"id":"a7193581-a31c-4ea5-8218-b3052758461f"
}
}
Return code: 200
Update
Issue PUT
request to
/v2.0/bgp-peers/<bgp-peer-id>
to update a specific
BGP peer. Following attributes can be updated.
name
The name of BGP peer.password
The authentication password.
Delete
Issue DELETE
request to
/v2.0/bgp-peers/<bgp-peer-id>
to delete a specific
BGP peer. :
No response body
Return code: 204
BGP Speaker and Peer binding
Add BGP Peer to a BGP Speaker
Issue a PUT
request to
/v2.0/bgp-speakers/<bgp-speaker-id>/add-bgp-peer
to
bind the BGP peer to the specified BGP Seaker with following
JSON-encoded data: :
{
"bgp_peer_id":"a7193581-a31c-4ea5-8218-b3052758461f"
}
Response body: ::
{
"bgp_peer_id":"a7193581-a31c-4ea5-8218-b3052758461f"
}
Return code: 200
Remove BGP Peer from a BGP Speaker
Issue a DELETE
request with following data to
/v2.0/bgp-speakers/<bgp-speaker-id>/remove-bgp-peer
to unbind the BGP peer: :
{
"bgp_peer_id":"a7193581-a31c-4ea5-8218-b3052758461f"
}
No response body
Return code: 200
BGP Speaker and Network binding
Add Network to a BGP Speaker
Issue a PUT
request with following data to
/v2.0/bgp-speakers/<bgp-speaker-id>/add_gateway_network
to add a network to the specified BGP speaker: :
{
"network_id":"f2269b61-6755-4174-8f64-5e318617b204"
}
Response body:
{
"network_id":"f2269b61-6755-4174-8f64-5e318617b204"
}
Return code: 200
Delete Network from a BGP Speaker
Issue a DELETE
request with following data to
/v2.0/bgp-speakers/<bgp-speaker-id>/remove_gateway_network
to delete a network from a specified BGP speaker. :
No response body
Return code: 200
BGP Speaker Advertised Routes
List routes advertised by a BGP Speaker
Issue GET
request to
`/v2.0/bgp-speakers/<bgp-speaker-id>/get_advertised_routes
to list all routes advertised by the specified BGP Speaker. :
Response body:
{
"advertised_routes":[
{
"cidr":"192.168.10.0/24",
"nexthop":"10.0.0.1"
}
]
}
Return code: 200
BGP Speaker and Dynamic Routing Agent interaction
Add BGP Speaker to a Dynamic Routing Agent
Issue a POST
request to
/v2.0/agents/<bgp-agent-id>/bgp-drinstances
to add a
BGP Speaker to the specified dynamic routing agent. The following is the
request body: :
{
"bgp_speaker_id": "5639072c-49eb-480a-9f11-953386589bc8"
}
No response body
Return code: 201
List BGP speakers hosted by a Dynamic Routing Agent
Issue a GET
request to
/v2.0/agents/<bgp-dragent-id>/bgp-drinstances
to list
all BGP Seakers hosted on the specified dynamic routing agent. :
Response body:
{
"bgp_speakers":[
{
"peers":[
],
"name":"bgp-speaker",
"tenant_id":"34a6e17a48cf414ebc890367bf42266b",
"local_as":1000,
"advertise_tenant_networks":true,
"networks":[
],
"ip_version":4,
"advertise_floating_ip_host_routes":true,
"id":"b759b2a1-27f4-4a6b-bb61-f2c9a22c9902"
}
]
}
Return code: 200
List Dynamic Routing Agents hosting a specific BGP Speaker
Issue a GET
request to
/v2.0/bgp-speakers/<bgp-speaker-id>/bgp-dragents
to
list all BGP dynamic agents which are hosting the specified BGP Speaker.
:
Response body:
{
"agents":[
{
"binary":"neutron-bgp-dragent",
"description":null,
"admin_state_up":true,
"heartbeat_timestamp":"2016-05-17 03:05:12",
"availability_zone":null,
"alive":true,
"topic":"bgp_dragent",
"host":"yangyubj-virtual-machine",
"agent_type":"BGP dynamic routing agent",
"resource_versions":{
},
"created_at":"2016-05-09 07:38:00",
"started_at":"2016-05-11 09:06:13",
"id":"af216618-29d3-4ee7-acab-725bdc90e614",
"configurations":{
"advertise_routes":0,
"bgp_peers":0,
"bgp_speakers":1
}
}
]
}
Return code: 200
Delete BGP Speaker from a Dynamic Routing Agent
Issue a DELETE
request to
/v2.0/agents/<bgp-agent-id>/bgp-drinstances/<bgp-speaker-id>
to delete the BGP Speaker hosted by the specified dynamic routing agent.
:
No response body
Return code: 204
Reference
None