<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE section PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % BOOK_ENTITIES SYSTEM "cloudstack.ent">
%BOOK_ENTITIES;
<!ENTITY % xinclude SYSTEM "http://www.docbook.org/xml/4.4/xinclude.mod">
%xinclude;
]>
<!-- Licensed to the Apache Software Foundation (ASF) under one
 or more contributor license agreements.  See the NOTICE file
 distributed with this work for additional information
 regarding copyright ownership.  The ASF licenses this file
 to you under the Apache License, Version 2.0 (the
 "License"); you may not use this file except in compliance
 with the License.  You may obtain a copy of the License at
 http://www.apache.org/licenses/LICENSE-2.0.
 Unless required by applicable law or agreed to in writing,
 software distributed under the License is distributed on an
 "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 KIND, either express or implied.  See the License for the
 specific language governing permissions and limitations
 under the License.
-->
<section id="nvp-vpc-network-offering">
    <title>VPC Network Offerings</title>
    <para>The VPC needs specific network offerings with the VPC flag enabled. Otherwise these network offerings are identical to regular network offerings. To allow VPC networks with a Nicira NVP isolated network the offerings need to support the Virtual Networking service with the NiciraNVP provider.</para>
    <para>In a typical configuration two network offerings need to be created. One with the loadbalancing service enabled and one without loadbalancing.</para>
    <table>
        <title>VPC Network Offering with Loadbalancing</title>
        <tgroup cols="2">
        <thead>
            <row>
                <entry>Service</entry>
                <entry>Provider</entry>
            </row>
        </thead>
        <tbody>
            <row>
                <entry>VPN</entry>
                <entry>VpcVirtualRouter</entry>
            </row>
            <row>
                <entry>DHCP</entry>
                <entry>VpcVirtualRouter</entry>
            </row>
            <row>
                <entry>DNS</entry>
                <entry>VpcVirtualRouter</entry>
            </row>
            <row>
                <entry>Load Balancer</entry>
                <entry>VpcVirtualRouter</entry>
            </row>
            <row>
                <entry>User Data</entry>
                <entry>VpcVirtualRouter</entry>
            </row>
            <row>
                <entry>Source NAT</entry>
                <entry>VpcVirtualRouter</entry>
            </row>
            <row>
                <entry>Static NAT</entry>
                <entry>VpcVirtualRouter</entry>
            </row>
            <row>
                <entry>Post Forwarding</entry>
                <entry>VpcVirtualRouter</entry>
            </row>
            <row>
                <entry>NetworkACL</entry>
                <entry>VpcVirtualRouter</entry>
            </row>
            <row>
                <entry>Virtual Networking</entry>
                <entry>NiciraNVP</entry>
            </row>
        </tbody>
        </tgroup>
    </table>
    
</section>
