Hi Murali,

When creating network, the plugin will capture the networkUUID, tenantID,
vlan and send a request to the controller to create a virtual network.
Controller will create an addressSpace construct to match the vlan so that
all device in the addressSpace has unique mac and ip, then create a virtual
network. The membership of the virtualNetwork is based on a tag rule. A tag
rule is that any device with the tag will be classified to the virtual
network.

When a VM is created, BigSwitchVnsElement.java will send a request to the
controller to create a port and attachment for the VM. The port contains
the networkuuid. The attachment contains the VM's mac address. The
controller then associates the VM with its network tag.

At this point, nothing is happening to the switches yet.

When VM sends packets, the VM's network association is determined based on
its first packet. If the destination is in the same virtual network, the
controller will permit the flow and set up a end-to-end flow. When setting
up the flow, vlan is programmed on the switches along the route. The
switches can be virtual or OF-enabled physical switches.

Then the network is destroyed, the plugin notifies the controller, which
then removes the tag and virtual network.

Hope the explanation clarifies the workflow.
Let me know if you have more question.

Thanks,
Kanzhe

On Tue, Jan 29, 2013 at 1:13 AM, Murali Reddy <murali.re...@citrix.com>wrote:

>
> Kanze,
>
> Thanks for the patch. On first look patch look good, but I will do a
> detailed review tomorrow.
>
> Meanwhile could you help me understand how the network is
> provisioned/de-provisioned through the contrloller? I understand that you
> plan to support Vlan isolation only for 4.1, so what is the role of
> controller in this case? So when CreateNetwork, DeleteNetwork commands are
> sent by the Guru in network design/destroy phases, does controller setup's
> Vlans on the open flow enabled switches and hypervisors?
>
> Thanks,
> Murali
>
>
> On 29/01/13 11:29 AM, "Kanzhe Jiang" <kanzhe.ji...@bigswitch.com> wrote:
>
> >
> >-----------------------------------------------------------
> >This is an automatically generated e-mail. To reply, visit:
> >https://reviews.apache.org/r/9131/
> >-----------------------------------------------------------
> >
> >Review request for cloudstack.
> >
> >
> >Description
> >-------
> >
> >This is the first patch for BigSwitch Network Plugin to CloudStack. The
> >patch follows the design spec that can be found at
> >
> https://cwiki.apache.org/confluence/display/CLOUDSTACK/BigSwitch+Networkin
> >g+Plugin.
> >
> >
> >Diffs
> >-----
> >
> >  api/src/com/cloud/api/ApiConstants.java 78a3ded
> >  api/src/com/cloud/event/EventTypes.java e69e4a4
> >  api/src/com/cloud/network/Network.java d38f740
> >  api/src/com/cloud/network/PhysicalNetwork.java be4b1d0
> >  build/build-cloud-plugins.xml 207ef71
> >  build/developer.xml fdda171
> >  client/pom.xml 1673429
> >  client/tomcatconf/bigswitch-vns_commands.properties.in PRE-CREATION
> >  client/tomcatconf/components.xml.in 5957b61
> >  cloud.spec 9f46dd6
> >  debian/cloud-server.install 9cd1eeb
> >  docs/en-US/Release_Notes.xml c8cc686
> >  plugins/network-elements/bigswitch-vns/pom.xml PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateNetwo
> >rkAnswer.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateNetwo
> >rkCommand.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreatePortA
> >nswer.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreatePortC
> >ommand.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteNetwo
> >rkAnswer.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteNetwo
> >rkCommand.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeletePortA
> >nswer.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeletePortC
> >ommand.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/StartupBigS
> >witchVnsCommand.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdatePortA
> >nswer.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdatePortC
> >ommand.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSw
> >itchVnsDeviceCmd.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBi
> >gSwitchVnsDeviceCmd.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/ListBigS
> >witchVnsDevicesCmd.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/api/response/BigSwitc
> >hVnsDeviceResponse.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/BigSwitchVnsD
> >eviceVO.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/bigswitch/Att
> >achment.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/bigswitch/Big
> >SwitchVnsApi.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/bigswitch/Big
> >SwitchVnsApiException.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/bigswitch/Con
> >trolClusterStatus.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/bigswitch/Net
> >work.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/bigswitch/Por
> >t.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/dao/BigSwitch
> >VnsDao.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/dao/BigSwitch
> >VnsDaoImpl.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/element/BigSw
> >itchVnsElement.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/element/BigSw
> >itchVnsElementService.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/guru/BigSwitc
> >hVnsGuestNetworkGuru.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/src/com/cloud/network/resource/BigS
> >witchVnsResource.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/test/com/cloud/network/bigswitch/Bi
> >gSwitchApiTest.java PRE-CREATION
> >
> >plugins/network-elements/bigswitch-vns/test/com/cloud/network/resource/Big
> >SwitchVnsResourceTest.java PRE-CREATION
> >  plugins/pom.xml 2009302
> >  server/src/com/cloud/network/ExternalNetworkDeviceManager.java b1de86f
> >  setup/db/create-schema.sql fff084e
> >  tools/apidoc/gen_toc.py eeaf2a2
> >  tools/apidoc/pom.xml b75ee82
> >  wscript_configure 3b9377b
> >
> >Diff: https://reviews.apache.org/r/9131/diff/
> >
> >
> >Testing
> >-------
> >
> >Verify the builds: mvn clean install;
> >The database can be deployed;
> >CloudStack can be launched with the plugin modules.
> >
> >JUnit tests of all api commands to a mock controller.
> >
> >
> >Thanks,
> >
> >Kanzhe Jiang
> >
> >
>
>
>


-- 
Kanzhe Jiang
MTS at BigSwitch

Reply via email to