Kaiwei Fan f43eb49f56 Support for NVP advanced service router
When creating an LR:
    - deploy an Edge asynchronously
    - create a L2 switch for connecting LR and Edge
    - attach a router port to the L2 switch.
    - assign ip address 169.254.2.1/28 and nexthop 169.254.2.3 to LR
When set external gateway:
    - configure Edge interface and default gateway
    - Add static routes to Edge for all logic networks attached to LR via nexthop 169.254.2.1
    - configure SNAT rules for all logic networks attached to LR
When add router interface:
    - Add static route/SNAT rule for the network attached to LR
When associate floating IP address:
    - configure DNAT rule for the floating ip and the port

Tests being done:
    - Verified Edge is deployed asynchronously and LR is attached to the internal created L2 switch
    - Manually attach Edge's vNic to the L2 switch and Edge is able to ping 169.254.2.1
    - Verified router-delete deletes Edge asynchronously and remove the internal L2 switch
    - Verified SNAT/DNAT/static-routes rules are configured on Edge in correct order
    - Verified external vnic ip address/netmask and default gateway is configured

Implements: blueprint nvp-service-router
Change-Id: If9eff53df4d65cf4e318dedbfaafc742f6c6ab7f
2013-09-11 00:58:57 -07:00
..
2013-09-08 15:58:12 +08:00
2013-07-06 15:02:43 -04:00
2013-09-08 15:58:12 +08:00
2013-07-06 15:02:43 -04:00

nvp-plugin
-----------------------------------------------------------------------------

Overview and pre-requisites

    This is a Neutron plugin that can talk to a set of NVP controllers and
    implements the core Neutron v2 api.  In order to use it you must have
    Nicira NVP running and configured.  You must also have Neutron installed
    and configured.

NVP Plugin configuration

    1) Database configuration
    The NVP plugin leverages the Neutron database. The following connection
    parameters should be specified:
    - connection: Database connection string
    - max_retries: Maximum number of connection attempts (default 10)
    - retry_interval: Gap between connection attempts (default 2 seconds)
    2) NVP (general)
    - max_lp_per_bridged_ls: Maximum number of ports of a logical switch on a
    bridged transport zone (default 64)
    - concurrent_connections: Number of connects to each controller node
    (default 3)
    - nvp_gen_timout: Number of seconds a generation id should be valid for
    (default -1 meaning do not time out)
    3) NVP cluster
    By default the Neutron NVP plugin can talk to multiple controllers in a
    single cluster. In the future (Havana+) support for multiple clusters
    will be added.
    The following parameters can be configured:
    - default_tz_uuid: This is uuid of the default NVP Transport zone that
      will be used for creating tunneled isolated "Neutron" networks. It
      needs to be created in NVP before starting Neutron with the nvp plugin.
    - nvp_cluster_uuid: Optional paramter identifying the UUID of the cluster
      in NVP.  This can be retrieved from NVP management console "admin" section.
    - nvp_controllers: describes the list of controllers
    More details can be found in etc/neutron/plugins/nicira/nvp.ini

Neutron Configuration

    Modify your Neutron configuration for using the NVP Plugin:

    core_plugin =
        neutron.plugins.nicira.neutronPlugin.NvpPluginV2