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. ----------------------------------------------------------- Nicira Network Virtualization Platform (NVP) integration code is contributed by Nicira and Schuberg Philis and copyright is donated to the Apache Software Foundation. Authors Somik Behera Hugo Trippaers == New API Calls The following API calls are added to CloudStack to support the integrations with the Nicira NVP platform. Please see the API documentation of CloudStack for parameters and return values. * addNiciraNvpDevice * deleteNiciraNvpDevice * listNiciraNvpDevices * listNiciraNvpDeviceNetworks == How to enable the Nicira NVP integration. When configuring a zone create a new physical network for "Guest" traffic and select "STT" as the isolation type. Set the Xen traffic label for "Guest" traffic to the label of the integration bridge (refer to the Nicira Documentation for setting up the integration bridge). Note that this requires all traffic types to have their traffic labels set. These steps are specified by the API calls as there is currently no GUI available. 1. addNetworkServiceProvider name="NiciraNvp", physicalnetworkid=, servicelist="Connectivity" 2. updateNetworkServiceProvider id=, state="Enabled" 3. addNiciraNvpDevice physicalnetworkid=, hostname= username= password= transportzoneuuid= == How to use the Nicira integration When creating a guest network make sure it is created in the physical network with the isolation type set to "STT". When the first virtual machine is launched in this network the NiciraNvpNetworkGuru will configure a logical switch on the NVP Controller. During the startup of a virtual machine the NiciraNvpElement will create a logical port for any NICs in the guest networks and attach the port to the existing logical swith. == Debugging/Troubleshooting All elements created on the NVP controller have tags with the name of the account, this can be used to search the items using the NVP manager. The NVP uuid of the logical switch is also stored in the BroadcastUri of the corresponding Guest network in an lswitch uri scheme. The CloudStack uuid of the NIC is used to make the Vif attachement on the logical switchport. The following classes should be set to log level debug when troubleshooting. com.cloud.network (Most NiciraNvp related objects live in this package and subpackages) org.apache.commons.httpclient (used by NiciraNvpApi to make calls to the SDN Controller) httpclient.wire (wirelevel http tracing of httpclient) Please report any findings to the developer mailing list.