<commit_before><?xml version="1.0" encoding="UTF-8"?>
<chapter 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"
    xml:id="ch_overview">
    <title>Overview</title>
    <para> This chapter describes the high-level concepts and
        components of an OpenStack Networking deployment. </para>
    <section xml:id="WhatIsQuantum">
        <title>What is OpenStack Networking?</title>
        <para>The OpenStack Networking project was created to provide a rich
            tenant-facing API for defining network connectivity and
            addressing in the cloud. The OpenStack Networking project gives
            operators the ability to leverage different networking
            technologies to power their cloud networking.   </para>
        <para>For a detailed description of the OpenStack Networking API
            abstractions and their attributes, see the <link
                xlink:href="http://docs.openstack.org/api/openstack-network/2.0/content/"
                xmlns:svg="http://www.w3.org/2000/svg"
                xmlns:m="http://www.w3.org/1998/Math/MathML"
                xmlns:html="http://www.w3.org/1999/xhtml"
                xmlns:db="http://docbook.org/ns/docbook"
                    ><citetitle>OpenStack Networking API Guide
                (v2.0)</citetitle></link>.</para>
        <section xml:id="rich_network">
            <title>OpenStack Networking API: Rich Control over Network Functionality</title>
            <para>OpenStack Networking is a virtual network service that provides a
                powerful API to define the network connectivity and
                addressing used by devices from other services, such
                as OpenStack Compute.   </para>
            <para>The OpenStack Compute API has a virtual server
                abstraction to describe compute resources. Similarly,
                the OpenStack Networking API has virtual  network, subnet, and port
                abstractions to describe network resources. In more
                detail: <itemizedlist>
                    <listitem>
                        <para><emphasis role="bold"
                            >Network</emphasis>. An isolated L2
                            segment, analogous to VLAN in the physical
                            networking world.</para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Subnet</emphasis>.
                            A block of v4 or v6 IP addresses and
                            associated configuration state.</para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Port</emphasis>. A
                            connection point for attaching a single
                            device, such as the NIC of a virtual
                            server, to a virtual network. Also
                            describes the associated network
                            configuration, such as the MAC and IP
                            addresses to be used on that port.  
                        </para>
                    </listitem>
                </itemizedlist>You can configure rich network
                topologies by creating and configuring networks and
                subnets, and then instructing other OpenStack services
                like OpenStack Compute to attach virtual devices to ports on these
                networks.  In particular, OpenStack Networking supports each tenant
                having multiple private networks, and allows tenants
                to choose their own IP addressing scheme, even if
                those IP addresses overlap with those used by other
                tenants.  This enables very advanced cloud networking
                use cases, such as building multi-tiered web
                applications and allowing applications to be migrated
                to the cloud without changing IP addresses. </para>
            <para>Even if a cloud administrator does not intend to
                expose these capabilities to tenants directly, the
                OpenStack Networking API can be very useful even when used as an
                admin API because it provides significantly more
                flexibility for the cloud administrator to customize
                network offerings.  </para>
            <para>The OpenStack Networking API also provides a mechanism that lets
                cloud administrators expose additional API
                capabilities through API extensions.  Commonly, new
                capabilities are first introduced as an API extension,
                and over time become part of the core OpenStack Networking API.
            </para>
        </section>
      <?hard-pagebreak?>
        <section xml:id="flexibility">
            <title>Plugin Architecture: Flexibility to Choose Different Network
                Technologies</title>
            <para>Enhancing traditional networking solutions to
                provide rich cloud networking is challenging.
                Traditional networking is not designed to scale to
                cloud proportions or to configure automatically. </para>
            <para>The original OpenStack Compute network implementation assumed a
                very basic model of performing all isolation through
                Linux VLANs and IP tables. OpenStack Networking introduces the
                concept of a <emphasis role="italic"
                >plugin</emphasis>, which is a pluggable back-end
                implementation of the OpenStack Networking API. A plugin can use a
                variety of technologies to implement the logical API
                requests.  Some OpenStack Networking plugins might use basic Linux
                VLANs and IP tables, while others might use more
                advanced technologies, such as L2-in-L3 tunneling or
                OpenFlow, to provide similar benefits. </para>
            <para>The current set of plugins include: <itemizedlist>
                    <listitem>
                        <para><emphasis role="bold">Open
                                vSwitch</emphasis>.  Documentation included in this guide.
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Cisco</emphasis>.
                                Documented externally at: <link
                                xlink:href="http://wiki.openstack.org/cisco-quantum"
                                >http://wiki.openstack.org/cisco-quantum</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Linux
                                Bridge</emphasis>.  Documentation included in this guide and
                                <link
                                xlink:href="http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin"
                                >http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin</link>
                             </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Nicira
                                NVP</emphasis>.  Documentation include in this guide,
                               <link
                                xlink:href="http://www.vmware.com/products/datacenter-virtualization/nicira.html">
                                NVP Product Overview </link>, and
                                <link
                                xlink:href="http://www.nicira.com/support"
                                >NVP Product Support</link>.
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Ryu</emphasis>.
                                <link
                                xlink:href="https://github.com/osrg/ryu/wiki/OpenStack"
                                >https://github.com/osrg/ryu/wiki/OpenStack</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">NEC OpenFlow</emphasis>.
                               <link
                               xlink:href="http://wiki.openstack.org/Quantum-NEC-OpenFlow-Plugin"
                               >http://wiki.openstack.org/Quantum-NEC-OpenFlow-Plugin</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Big Switch, Floodlight REST Proxy</emphasis>.
                               <link
                               xlink:href="http://www.openflowhub.org/display/floodlightcontroller/Quantum+REST+Proxy+Plugin"
                               >http://www.openflowhub.org/display/floodlightcontroller/Quantum+REST+Proxy+Plugin</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">PLUMgrid</emphasis>
                               <link
                               xlink:href="https://wiki.openstack.org/wiki/Plumgrid-quantum"
                               >https://wiki.openstack.org/wiki/Plumgrid-quantum</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Hyper-V Plugin</emphasis>.
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Brocade Plugin</emphasis>.
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Midonet Plugin</emphasis>.
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Plumgrid Plugin</emphasis>.
                        </para>
                    </listitem>
                </itemizedlist></para>
            <para>Plugins can have different properties in terms of hardware requirements, features, performance,
                scale, operator tools, etc.  Supporting many plugins enables the cloud administrator to weigh
                different options and decide which networking
                technology is right for the deployment.</para>
            <para>Not all OpenStack networking plugins are compatible with all possible OpenStack compute drivers:</para>
<commit_msg>Remove extra reference to PLUMgrid plugin<commit_after><?xml version="1.0" encoding="UTF-8"?>
<chapter 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"
    xml:id="ch_overview">
    <title>Overview</title>
    <para> This chapter describes the high-level concepts and
        components of an OpenStack Networking deployment. </para>
    <section xml:id="WhatIsQuantum">
        <title>What is OpenStack Networking?</title>
        <para>The OpenStack Networking project was created to provide a rich
            tenant-facing API for defining network connectivity and
            addressing in the cloud. The OpenStack Networking project gives
            operators the ability to leverage different networking
            technologies to power their cloud networking.   </para>
        <para>For a detailed description of the OpenStack Networking API
            abstractions and their attributes, see the <link
                xlink:href="http://docs.openstack.org/api/openstack-network/2.0/content/"
                xmlns:svg="http://www.w3.org/2000/svg"
                xmlns:m="http://www.w3.org/1998/Math/MathML"
                xmlns:html="http://www.w3.org/1999/xhtml"
                xmlns:db="http://docbook.org/ns/docbook"
                    ><citetitle>OpenStack Networking API Guide
                (v2.0)</citetitle></link>.</para>
        <section xml:id="rich_network">
            <title>OpenStack Networking API: Rich Control over Network Functionality</title>
            <para>OpenStack Networking is a virtual network service that provides a
                powerful API to define the network connectivity and
                addressing used by devices from other services, such
                as OpenStack Compute.   </para>
            <para>The OpenStack Compute API has a virtual server
                abstraction to describe compute resources. Similarly,
                the OpenStack Networking API has virtual  network, subnet, and port
                abstractions to describe network resources. In more
                detail: <itemizedlist>
                    <listitem>
                        <para><emphasis role="bold"
                            >Network</emphasis>. An isolated L2
                            segment, analogous to VLAN in the physical
                            networking world.</para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Subnet</emphasis>.
                            A block of v4 or v6 IP addresses and
                            associated configuration state.</para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Port</emphasis>. A
                            connection point for attaching a single
                            device, such as the NIC of a virtual
                            server, to a virtual network. Also
                            describes the associated network
                            configuration, such as the MAC and IP
                            addresses to be used on that port.  
                        </para>
                    </listitem>
                </itemizedlist>You can configure rich network
                topologies by creating and configuring networks and
                subnets, and then instructing other OpenStack services
                like OpenStack Compute to attach virtual devices to ports on these
                networks.  In particular, OpenStack Networking supports each tenant
                having multiple private networks, and allows tenants
                to choose their own IP addressing scheme, even if
                those IP addresses overlap with those used by other
                tenants.  This enables very advanced cloud networking
                use cases, such as building multi-tiered web
                applications and allowing applications to be migrated
                to the cloud without changing IP addresses. </para>
            <para>Even if a cloud administrator does not intend to
                expose these capabilities to tenants directly, the
                OpenStack Networking API can be very useful even when used as an
                admin API because it provides significantly more
                flexibility for the cloud administrator to customize
                network offerings.  </para>
            <para>The OpenStack Networking API also provides a mechanism that lets
                cloud administrators expose additional API
                capabilities through API extensions.  Commonly, new
                capabilities are first introduced as an API extension,
                and over time become part of the core OpenStack Networking API.
            </para>
        </section>
      <?hard-pagebreak?>
        <section xml:id="flexibility">
            <title>Plugin Architecture: Flexibility to Choose Different Network
                Technologies</title>
            <para>Enhancing traditional networking solutions to
                provide rich cloud networking is challenging.
                Traditional networking is not designed to scale to
                cloud proportions or to configure automatically. </para>
            <para>The original OpenStack Compute network implementation assumed a
                very basic model of performing all isolation through
                Linux VLANs and IP tables. OpenStack Networking introduces the
                concept of a <emphasis role="italic"
                >plugin</emphasis>, which is a pluggable back-end
                implementation of the OpenStack Networking API. A plugin can use a
                variety of technologies to implement the logical API
                requests.  Some OpenStack Networking plugins might use basic Linux
                VLANs and IP tables, while others might use more
                advanced technologies, such as L2-in-L3 tunneling or
                OpenFlow, to provide similar benefits. </para>
            <para>The current set of plugins include: <itemizedlist>
                    <listitem>
                        <para><emphasis role="bold">Open
                                vSwitch</emphasis>.  Documentation included in this guide.
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Cisco</emphasis>.
                                Documented externally at: <link
                                xlink:href="http://wiki.openstack.org/cisco-quantum"
                                >http://wiki.openstack.org/cisco-quantum</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Linux
                                Bridge</emphasis>.  Documentation included in this guide and
                                <link
                                xlink:href="http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin"
                                >http://wiki.openstack.org/Quantum-Linux-Bridge-Plugin</link>
                             </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Nicira
                                NVP</emphasis>.  Documentation include in this guide,
                               <link
                                xlink:href="http://www.vmware.com/products/datacenter-virtualization/nicira.html">
                                NVP Product Overview </link>, and
                                <link
                                xlink:href="http://www.nicira.com/support"
                                >NVP Product Support</link>.
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Ryu</emphasis>.
                                <link
                                xlink:href="https://github.com/osrg/ryu/wiki/OpenStack"
                                >https://github.com/osrg/ryu/wiki/OpenStack</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">NEC OpenFlow</emphasis>.
                               <link
                               xlink:href="http://wiki.openstack.org/Quantum-NEC-OpenFlow-Plugin"
                               >http://wiki.openstack.org/Quantum-NEC-OpenFlow-Plugin</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Big Switch, Floodlight REST Proxy</emphasis>.
                               <link
                               xlink:href="http://www.openflowhub.org/display/floodlightcontroller/Quantum+REST+Proxy+Plugin"
                               >http://www.openflowhub.org/display/floodlightcontroller/Quantum+REST+Proxy+Plugin</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">PLUMgrid</emphasis>
                               <link
                               xlink:href="https://wiki.openstack.org/wiki/Plumgrid-quantum"
                               >https://wiki.openstack.org/wiki/Plumgrid-quantum</link>
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Hyper-V Plugin</emphasis>.
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Brocade Plugin</emphasis>.
                        </para>
                    </listitem>
                    <listitem>
                        <para><emphasis role="bold">Midonet Plugin</emphasis>.
                        </para>
                    </listitem>
                </itemizedlist></para>
            <para>Plugins can have different properties in terms of hardware requirements, features, performance,
                scale, operator tools, etc.  Supporting many plugins enables the cloud administrator to weigh
                different options and decide which networking
                technology is right for the deployment.</para>
            <para>Not all OpenStack networking plugins are compatible with all possible OpenStack compute drivers:</para>

{'fraction_non_alphanumeric': 0.073671441235478, 'fraction_numerical': 0.003639247888769654, 'mean_word_length': 1.350734810265409, 'pattern_counts': {'":': 0, '<': 307, '<?xml version=': 2, '>': 307, 'https://': 8, 'lorem ipsum': 0, 'www.': 18, 'xml': 24}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3436494', 'n_tokens_mistral': 4915, 'n_tokens_neox': 4475, 'n_words': 1455}