Split external-net from router extension
Change-Id: I5b7c6a3ef7a1f58e1b820caa5f02b77899d24466 Closes-Bug: #1233080
This commit is contained in:
parent
4a25d4a484
commit
993a7f9b94
@ -2708,6 +2708,7 @@ Date: Wed, 12 Sep 2012 11:36:20 GMT</literallayout>
|
|||||||
</section>
|
</section>
|
||||||
<xi:include href="section_provider_extended_attrs.xml"/>
|
<xi:include href="section_provider_extended_attrs.xml"/>
|
||||||
<xi:include href="section_binding_ext_ports.xml"/>
|
<xi:include href="section_binding_ext_ports.xml"/>
|
||||||
|
<xi:include href="neutron-external-net.xml"/>
|
||||||
<xi:include href="neutron-l3-ext.xml"/>
|
<xi:include href="neutron-l3-ext.xml"/>
|
||||||
<xi:include href="neutron-extgwmodes-ext.xml"/>
|
<xi:include href="neutron-extgwmodes-ext.xml"/>
|
||||||
<xi:include href="neutron-quotas-ext.xml"/>
|
<xi:include href="neutron-quotas-ext.xml"/>
|
||||||
|
255
v2.0/neutron-external-net.xml
Normal file
255
v2.0/neutron-external-net.xml
Normal file
@ -0,0 +1,255 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE book[
|
||||||
|
<!-- Some useful entities borrowed from HTML -->
|
||||||
|
<!ENTITY ndash "–">
|
||||||
|
<!ENTITY mdash "—">
|
||||||
|
<!ENTITY hellip "…">
|
||||||
|
<!ENTITY plusmn "±">
|
||||||
|
|
||||||
|
<!-- Useful for describing APIs -->
|
||||||
|
<!ENTITY GET '<command xmlns="http://docbook.org/ns/docbook">GET</command>'>
|
||||||
|
<!ENTITY PUT '<command xmlns="http://docbook.org/ns/docbook">PUT</command>'>
|
||||||
|
<!ENTITY POST '<command xmlns="http://docbook.org/ns/docbook">POST</command>'>
|
||||||
|
<!ENTITY DELETE '<command xmlns="http://docbook.org/ns/docbook">DELETE</command>'>
|
||||||
|
|
||||||
|
<!ENTITY CHECK '<inlinemediaobject xmlns="http://docbook.org/ns/docbook">
|
||||||
|
<imageobject>
|
||||||
|
<imagedata fileref="figures/Check_mark_23x20_02.svg"
|
||||||
|
format="SVG" scale="60"/>
|
||||||
|
</imageobject>
|
||||||
|
</inlinemediaobject>'>
|
||||||
|
|
||||||
|
<!ENTITY ARROW '<inlinemediaobject xmlns="http://docbook.org/ns/docbook">
|
||||||
|
<imageobject>
|
||||||
|
<imagedata fileref="figures/Arrow_east.svg"
|
||||||
|
format="SVG" scale="60"/>
|
||||||
|
</imageobject>
|
||||||
|
</inlinemediaobject>'>
|
||||||
|
<!ENTITY APIv2 'Networking API v2.0'>
|
||||||
|
]>
|
||||||
|
<section xml:id="external_net" xmlns="http://docbook.org/ns/docbook"
|
||||||
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||||
|
<title>External Network Extension (<literal>external-net</literal>)</title>
|
||||||
|
<para>
|
||||||
|
The external network extension is used to specify whether
|
||||||
|
the network is external or not. This information is used
|
||||||
|
by Layer-3 network (<literal>router</literal>) extension.
|
||||||
|
External networks are connected to a router's external
|
||||||
|
gateway and host floating IPs.
|
||||||
|
</para>
|
||||||
|
<section xml:id="ext_net_concepts">
|
||||||
|
<title>Concepts</title>
|
||||||
|
<para>
|
||||||
|
The External Network extension adds the
|
||||||
|
<emphasis role="italic">router:external</emphasis>
|
||||||
|
attribute to the network resource.
|
||||||
|
</para>
|
||||||
|
<table rules="all">
|
||||||
|
<caption>Network Attributes</caption>
|
||||||
|
<col width="20%"/>
|
||||||
|
<col width="8%"/>
|
||||||
|
<col width="10%"/>
|
||||||
|
<col width="7%"/>
|
||||||
|
<col width="15%"/>
|
||||||
|
<col width="15%"/>
|
||||||
|
<col width="25%"/>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Attribute </th>
|
||||||
|
<th>Type </th>
|
||||||
|
<th>Required </th>
|
||||||
|
<th>CRUD<footnote xml:id="crud_ext_net">
|
||||||
|
<para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis role="bold"
|
||||||
|
>C</emphasis>. Use the attribute in
|
||||||
|
create operations. </para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis role="bold"
|
||||||
|
>R</emphasis>. This attribute is
|
||||||
|
returned in response to show and
|
||||||
|
list operations. </para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis role="bold"
|
||||||
|
>U</emphasis>. You can update the
|
||||||
|
value of this attribute.</para>
|
||||||
|
</listitem>
|
||||||
|
<listitem>
|
||||||
|
<para><emphasis role="bold"
|
||||||
|
>D</emphasis>. You can delete the
|
||||||
|
value of this attribute. </para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</footnote></th>
|
||||||
|
<th>Default Value </th>
|
||||||
|
<th>Validation Constraints </th>
|
||||||
|
<th>Notes</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>router:external</td>
|
||||||
|
<td>Bool</td>
|
||||||
|
<td>No</td>
|
||||||
|
<td>CRU</td>
|
||||||
|
<td>False</td>
|
||||||
|
<td>{ True | False }</td>
|
||||||
|
<td>Specifies whether the network is an external network or not.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</section>
|
||||||
|
<section xml:id="external_net_ops">
|
||||||
|
<title>Network API operations with external network extension</title>
|
||||||
|
<section xml:id="external_network_list">
|
||||||
|
<title>List Networks</title>
|
||||||
|
<para>
|
||||||
|
<informaltable rules="all" width="100%">
|
||||||
|
<col width="20%"/>
|
||||||
|
<col width="20%"/>
|
||||||
|
<col width="60%"/>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>Verb</td>
|
||||||
|
<td>URI</td>
|
||||||
|
<td>Description</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>&GET;</td>
|
||||||
|
<td>/networks</td>
|
||||||
|
<td>Returns a list of networks with their router:external
|
||||||
|
attributes.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</informaltable>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Response codes are same as the normal operation of listing networks.
|
||||||
|
<emphasis role="italic">router:external</emphasis> attribute is visible
|
||||||
|
to all users by default policy setting.
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
Regular users are not authorized to create ports on external networks,
|
||||||
|
however they will be able to see this attribute in their network list.
|
||||||
|
This is because external networks can be used by any tenant to
|
||||||
|
set an external gateway for Neutron routers or create floating
|
||||||
|
IPs and associate them with ports on internal tenant networks.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>List Networks with router:external attribute: JSON Response</title>
|
||||||
|
<programlisting language="json"><xi:include href="samples/networks-get-res-extnet.json" parse="text"/></programlisting>
|
||||||
|
</example>
|
||||||
|
</section>
|
||||||
|
<section xml:id="external_network_show">
|
||||||
|
<title>Show Network</title>
|
||||||
|
<para>
|
||||||
|
<informaltable rules="all" width="100%">
|
||||||
|
<col width="10%"/>
|
||||||
|
<col width="30%"/>
|
||||||
|
<col width="60%"/>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>Verb</td>
|
||||||
|
<td>URI</td>
|
||||||
|
<td>Description</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>&GET;</td>
|
||||||
|
<td>/networks/<parameter>network_id</parameter></td>
|
||||||
|
<td>Returns details about a specific network, including external
|
||||||
|
networks attributes.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</informaltable>
|
||||||
|
</para>
|
||||||
|
<para>Response codes are same as the normal operation of listing networks.
|
||||||
|
<emphasis role="italic">router:external</emphasis> attribute is visible
|
||||||
|
to all users including non-admin by default policy setting.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>Show network with external attributes: JSON Response</title>
|
||||||
|
<programlisting language="json"><xi:include href="samples/networks-show-res-extnet.json" parse="text"/></programlisting>
|
||||||
|
</example>
|
||||||
|
</section>
|
||||||
|
<section xml:id="external_network_create">
|
||||||
|
<title>Create Network</title>
|
||||||
|
<para>
|
||||||
|
<informaltable rules="all" width="100%">
|
||||||
|
<col width="20%"/>
|
||||||
|
<col width="20%"/>
|
||||||
|
<col width="60%"/>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>Verb</td>
|
||||||
|
<td>URI</td>
|
||||||
|
<td>Description</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>&POST;</td>
|
||||||
|
<td>/networks</td>
|
||||||
|
<td>Creates a new network using the external network extension
|
||||||
|
attribute.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</informaltable>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If the user submitting the request is not allowed to set this
|
||||||
|
attribute, a 403 Forbidden response will be returned.
|
||||||
|
Usage of this attribute might be restricted through authorization policies.
|
||||||
|
By the default policy only admin users can set this attribute.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>Create Network with external attributes: JSON Request</title>
|
||||||
|
<programlisting language="json"><xi:include href="samples/networks-post-req-extnet.json" parse="text"/></programlisting>
|
||||||
|
</example>
|
||||||
|
</section>
|
||||||
|
<section xml:id="external_network_update">
|
||||||
|
<title>Update Network</title>
|
||||||
|
<para>
|
||||||
|
<informaltable rules="all" width="100%">
|
||||||
|
<col width="10%"/>
|
||||||
|
<col width="30%"/>
|
||||||
|
<col width="60%"/>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<td>Verb</td>
|
||||||
|
<td>URI</td>
|
||||||
|
<td>Description</td>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>&PUT;</td>
|
||||||
|
<td>/networks/<parameter>network_id</parameter></td>
|
||||||
|
<td>Updates a network, including the external
|
||||||
|
network extension attribute.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</informaltable>
|
||||||
|
</para>
|
||||||
|
<para>
|
||||||
|
If the user submitting the request is not allowed to set this
|
||||||
|
attribute, a 403 Forbidden response will be returned.
|
||||||
|
Usage of this attribute might be restricted through authorization policies.
|
||||||
|
By the default policy only admin users can set this attribute.
|
||||||
|
</para>
|
||||||
|
<example>
|
||||||
|
<title>Update external attributes for a network: JSON Request</title>
|
||||||
|
<programlisting language="json"><xi:include href="samples/networks-put-req-extnet.json" parse="text"/></programlisting>
|
||||||
|
</example>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
</section>
|
||||||
|
<?hard-pagebreak?>
|
@ -30,8 +30,7 @@
|
|||||||
<section xml:id="router_ext" xmlns="http://docbook.org/ns/docbook"
|
<section xml:id="router_ext" xmlns="http://docbook.org/ns/docbook"
|
||||||
xmlns:xi="http://www.w3.org/2001/XInclude"
|
xmlns:xi="http://www.w3.org/2001/XInclude"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0">
|
||||||
<title>The Layer-3 Networking Extension (router)
|
<title>Layer-3 Networking Extension (<literal>router</literal>)</title>
|
||||||
(<literal>router</literal>)</title>
|
|
||||||
<para>The Layer-3 networking extension enables OpenStack Networking API users
|
<para>The Layer-3 networking extension enables OpenStack Networking API users
|
||||||
to route packets between subnets, forward packets from
|
to route packets between subnets, forward packets from
|
||||||
internal networks to external ones, and access instances from
|
internal networks to external ones, and access instances from
|
||||||
@ -51,47 +50,15 @@
|
|||||||
OpenStack Networking port attached to an internal
|
OpenStack Networking port attached to an internal
|
||||||
network.</para>
|
network.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>Also, it extends the <emphasis role="bold"
|
</itemizedlist>
|
||||||
>network </emphasis> resource by defining a new attribute,
|
</para>
|
||||||
<emphasis role="italic">router:external</emphasis>, which
|
|
||||||
specifies whether a network is meant to be connected to a
|
|
||||||
router's external gateway and host floating IPs. </para>
|
|
||||||
<?hard-pagebreak?>
|
<?hard-pagebreak?>
|
||||||
<section xml:id="router_ext_concepts">
|
<section xml:id="router_ext_concepts">
|
||||||
<title>Concepts</title>
|
<title>Concepts</title>
|
||||||
<para>The OpenStack Networking layer-3 extension is both a resource and
|
<para>The OpenStack Networking layer-3 extension is a resource
|
||||||
attribute extension. As an attribute extension, it adds
|
extension. It defines two new resources:
|
||||||
the <emphasis role="italic">router:external</emphasis>
|
<emphasis role="bold">router</emphasis> and
|
||||||
attribute to the network resource; as a resource extension
|
<emphasis role="bold">floatingip</emphasis>.</para>
|
||||||
it defines two new resources: <emphasis role="bold"
|
|
||||||
>router</emphasis> and <emphasis role="bold"
|
|
||||||
>floatingip</emphasis>.</para>
|
|
||||||
<para>The <emphasis role="italic">router:external</emphasis>
|
|
||||||
attribute is characterized as follows: <itemizedlist>
|
|
||||||
<listitem>
|
|
||||||
<para>Available in Create, Update,and Get
|
|
||||||
requests.</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>Boolean type, default value
|
|
||||||
<literal>False</literal>.</para>
|
|
||||||
</listitem>
|
|
||||||
<listitem>
|
|
||||||
<para>Usage of this attribute might be restricted
|
|
||||||
through authorization policies. The default
|
|
||||||
setting is as follows: only admin users can
|
|
||||||
set this flag to True, whereas any user can
|
|
||||||
read the value of this flag. Although regular
|
|
||||||
users won't be authorized to create instances
|
|
||||||
with VIFs on external networks, they will be
|
|
||||||
able to see them in their network list; this
|
|
||||||
is because external networks can be used by
|
|
||||||
any tenant to set an external gateway for
|
|
||||||
their OpenStack Networking routers or create floating IPs
|
|
||||||
and associate them with ports on internal
|
|
||||||
tenant networks.</para>
|
|
||||||
</listitem>
|
|
||||||
</itemizedlist></para>
|
|
||||||
<para>A <emphasis role="bold">router </emphasis> is used to
|
<para>A <emphasis role="bold">router </emphasis> is used to
|
||||||
interconnect subnets and forward traffic among them.
|
interconnect subnets and forward traffic among them.
|
||||||
Another feature of the router is to NAT internal traffic
|
Another feature of the router is to NAT internal traffic
|
||||||
@ -107,9 +74,9 @@
|
|||||||
private OpenStack Networking network. Therefore a floating IP allows
|
private OpenStack Networking network. Therefore a floating IP allows
|
||||||
access to an instance on a private network from an
|
access to an instance on a private network from an
|
||||||
external network. Floating IPs can only be defined on
|
external network. Floating IPs can only be defined on
|
||||||
networks for which the attribute <emphasis role="italic"
|
networks for which the attribute <emphasis role="italic">
|
||||||
>router:external</emphasis> has been set to
|
router:external</emphasis> (by the external network extension)
|
||||||
True.</para>
|
has been set to True.</para>
|
||||||
<?hard-pagebreak?>
|
<?hard-pagebreak?>
|
||||||
<table rules="all">
|
<table rules="all">
|
||||||
<caption>Router Attributes</caption>
|
<caption>Router Attributes</caption>
|
||||||
|
28
v2.0/samples/networks-get-res-extnet.json
Normal file
28
v2.0/samples/networks-get-res-extnet.json
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"networks": [
|
||||||
|
{
|
||||||
|
"admin_state_up": true,
|
||||||
|
"id": "0f38d5ad-10a6-428f-a5fc-825cfe0f1970",
|
||||||
|
"name": "net1",
|
||||||
|
"router:external": false,
|
||||||
|
"shared": false,
|
||||||
|
"status": "ACTIVE",
|
||||||
|
"subnets": [
|
||||||
|
"25778974-48a8-46e7-8998-9dc8c70d2f06"
|
||||||
|
],
|
||||||
|
"tenant_id": "b575417a6c444a6eb5cc3a58eb4f714a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"admin_state_up": true,
|
||||||
|
"id": "8d05a1b1-297a-46ca-8974-17debf51ca3c",
|
||||||
|
"name": "ext_net",
|
||||||
|
"router:external": true,
|
||||||
|
"shared": false,
|
||||||
|
"status": "ACTIVE",
|
||||||
|
"subnets": [
|
||||||
|
"2f1fb918-9b0e-4bf9-9a50-6cebbb4db2c5"
|
||||||
|
],
|
||||||
|
"tenant_id": "5eb8995cf717462c9df8d1edfa498010"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
7
v2.0/samples/networks-post-req-extnet.json
Normal file
7
v2.0/samples/networks-post-req-extnet.json
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
{
|
||||||
|
"network": {
|
||||||
|
"admin_state_up": true,
|
||||||
|
"name": "ext_net",
|
||||||
|
"router:external": true
|
||||||
|
}
|
||||||
|
}
|
10
v2.0/samples/networks-put-req-extnet.json
Normal file
10
v2.0/samples/networks-put-req-extnet.json
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
PUT /v2.0/networks/3a06dfc7-d239-4aad-9a57-21cd171c72e5.json
|
||||||
|
|
||||||
|
Content-Type: application/json
|
||||||
|
Accept: application/json
|
||||||
|
|
||||||
|
{
|
||||||
|
"network": {
|
||||||
|
"router:external": true
|
||||||
|
}
|
||||||
|
}
|
14
v2.0/samples/networks-show-res-extnet.json
Normal file
14
v2.0/samples/networks-show-res-extnet.json
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"network": {
|
||||||
|
"admin_state_up": true,
|
||||||
|
"id": "8d05a1b1-297a-46ca-8974-17debf51ca3c",
|
||||||
|
"name": "ext_net",
|
||||||
|
"router:external": true,
|
||||||
|
"shared": false,
|
||||||
|
"status": "ACTIVE",
|
||||||
|
"subnets": [
|
||||||
|
"2f1fb918-9b0e-4bf9-9a50-6cebbb4db2c5"
|
||||||
|
],
|
||||||
|
"tenant_id": "5eb8995cf717462c9df8d1edfa498010"
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user