neutron-specs/misc/api/extra_routes.rst

2.3 KiB

Extra routes

This extension adds extra routes to the router resource.

You can specify a set of nexthop IPs and destination CIDRs.

Note

The nexthop IP must be a part of one of the subnets to which the router interfaces are connected. You can configure the routes attribute on only update operations.

Table Router attributes

Attribute

Type

Required

CRUD:sup:[a]#ftn.crud_extraroute

Default Value

Validation Constraints

Notes

routes

list of dict

No

U

None

List should be in this form. [{'nexthop':IPAddress, 'destination':CIDR}]

Extra route configuration

  • `:sup:`[a]` <#crud_extraroute>`__C. Use the attribute in create operations.
  • R. This attribute is returned in response to show and list operations.
  • U. You can update the value of this attribute.
  • D. You can delete the value of this attribute.

Update extra route

PUT

/routers/``router_id``

Updates logical router with routes attribute.

Normal Response Code: 200

Error Response Codes: Unauthorized (401), Bad Request (400), Not Found (404), Conflict (409)

This operation configures extra routes on the router. The nexthop IP must be a part of one of the subnets to which the router interfaces are connected. Otherwise, the server responds with 400 Bad Request error code. When a validation error is detected, such as a format error of IP address or CIDR, the server responds with 400 Bad Request. When Networking receives a request to delete the router interface for subnets that are used by one or more routes, it responds with 409 Conflict.

Example Update routes: JSON request

{
   "router":{
      "routes":[
         {
            "nexthop":"10.1.0.10",
            "destination":"40.0.1.0/24"
         }
      ]
   }
}

Example Update routes: JSON response

{"router":
    {"status": "ACTIVE",
     "external_gateway_info": {"network_id": "5c26e0bb-a9a9-429c-9703-5c417a221096"},
     "name": "router1",
     "admin_state_up": true,
     "tenant_id": "936fa220b2c24a87af51026439af7a3e",
     "routes": [{"nexthop": "10.1.0.10", "destination": "40.0.1.0/24"}],
     "id": "babc8173-46f6-4b6f-8b95-38c1683a4e22"}
}