cloudstack-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bhais...@apache.org
Subject [7/8] git commit: updated refs/heads/master to 770297e
Date Thu, 09 Apr 2015 07:45:43 GMT
CLOUDSTACK-6697: bigswitch networking plugin update

1. provide compatibility with the Big Cloud Fabric (BCF) controller
   L2 Connectivity Service in both VPC and non-VPC modes
2. virtual network terminology updates: VNS --> BCF_SEGMENT
3. uses HTTPS with trust-always certificate handling
4. topology sync support with BCF controller
5. support multiple (two) BCF controllers with HA
6. support VM migration
7. support Firewall, Static NAT, and Source NAT with NAT enabled option
8. add VifDriver for Indigo Virtual Switch (IVS)

This closes #151

Signed-off-by: Rohit Yadav <rohit.yadav@shapeblue.com>


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/01864ef7
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/01864ef7
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/01864ef7

Branch: refs/heads/master
Commit: 01864ef77c8271478135caf5c00e11b441dc5c82
Parents: 7243024
Author: KC Wang <kuangching.wang@gmail.com>
Authored: Fri Sep 26 14:09:30 2014 -0700
Committer: Rohit Yadav <rohit.yadav@shapeblue.com>
Committed: Thu Apr 9 13:02:02 2015 +0530

----------------------------------------------------------------------
 api/src/com/cloud/network/Network.java          |   2 +
 api/src/com/cloud/network/PhysicalNetwork.java  |   2 +-
 api/src/com/cloud/network/rules/StaticNat.java  |   2 +
 .../classes/resources/messages.properties       |  12 +-
 .../classes/resources/messages_fr_FR.properties |  10 +-
 .../classes/resources/messages_ja_JP.properties |   8 +-
 .../classes/resources/messages_ko_KR.properties |   2 +-
 .../classes/resources/messages_nl_NL.properties |  10 +-
 .../classes/resources/messages_pt_BR.properties |   6 +-
 .../classes/resources/messages_ru_RU.properties |   4 +-
 .../classes/resources/messages_zh_CN.properties |   8 +-
 client/pom.xml                                  |   2 +-
 client/tomcatconf/commands.properties.in        |   8 +-
 .../cloud/user/dao/VmDiskStatisticsDaoImpl.java |   4 +-
 framework/rest/.gitignore                       |   1 +
 .../hypervisor/kvm/resource/IvsVifDriver.java   | 286 +++++++
 plugins/network-elements/bigswitch-vns/pom.xml  |  29 -
 .../META-INF/cloudstack/vns/module.properties   |  18 -
 .../cloudstack/vns/spring-vns-context.xml       |  36 -
 .../cloud/agent/api/CreateVnsNetworkAnswer.java |  28 -
 .../agent/api/CreateVnsNetworkCommand.java      |  52 --
 .../cloud/agent/api/CreateVnsPortAnswer.java    |  29 -
 .../cloud/agent/api/CreateVnsPortCommand.java   |  59 --
 .../cloud/agent/api/DeleteVnsNetworkAnswer.java |  29 -
 .../agent/api/DeleteVnsNetworkCommand.java      |  41 -
 .../cloud/agent/api/DeleteVnsPortAnswer.java    |  29 -
 .../cloud/agent/api/DeleteVnsPortCommand.java   |  48 --
 .../agent/api/StartupBigSwitchVnsCommand.java   |  27 -
 .../cloud/agent/api/UpdateVnsPortAnswer.java    |  29 -
 .../cloud/agent/api/UpdateVnsPortCommand.java   |  53 --
 .../api/commands/AddBigSwitchVnsDeviceCmd.java  | 116 ---
 .../commands/DeleteBigSwitchVnsDeviceCmd.java   | 107 ---
 .../commands/ListBigSwitchVnsDevicesCmd.java    | 111 ---
 .../com/cloud/api/commands/VnsConstants.java    |  35 -
 .../response/BigSwitchVnsDeviceResponse.java    |  74 --
 .../com/cloud/network/BigSwitchVnsDeviceVO.java |  96 ---
 .../cloud/network/bigswitch/AttachmentData.java |  50 --
 .../network/bigswitch/BigSwitchVnsApi.java      | 315 --------
 .../bigswitch/BigSwitchVnsApiException.java     |  38 -
 .../network/bigswitch/ControlClusterStatus.java |  29 -
 .../cloud/network/bigswitch/NetworkData.java    |  86 --
 .../com/cloud/network/bigswitch/PortData.java   |  68 --
 .../com/cloud/network/dao/BigSwitchVnsDao.java  |  32 -
 .../cloud/network/dao/BigSwitchVnsDaoImpl.java  |  50 --
 .../network/element/BigSwitchVnsElement.java    | 472 -----------
 .../element/BigSwitchVnsElementService.java     |  38 -
 .../guru/BigSwitchVnsGuestNetworkGuru.java      | 240 ------
 .../network/resource/BigSwitchVnsResource.java  | 309 --------
 .../network/bigswitch/BigSwitchApiTest.java     | 232 ------
 .../resource/BigSwitchVnsResourceTest.java      | 271 -------
 .../bigswitch/findbugsExcludeFilter.xml         |  25 +
 plugins/network-elements/bigswitch/pom.xml      |  52 ++
 .../cloudstack/bigswitch/module.properties      |  21 +
 .../bigswitch/spring-bigswitch-context.xml      |  41 +
 .../src/com/cloud/agent/api/BcfAnswer.java      |  43 +
 .../src/com/cloud/agent/api/BcfCommand.java     |  48 ++
 .../agent/api/CacheBcfTopologyCommand.java      |  39 +
 .../agent/api/CreateBcfAttachmentCommand.java   |  75 ++
 .../cloud/agent/api/CreateBcfRouterCommand.java |  32 +
 .../api/CreateBcfRouterInterfaceCommand.java    |  57 ++
 .../agent/api/CreateBcfSegmentCommand.java      |  57 ++
 .../agent/api/CreateBcfStaticNatCommand.java    |  57 ++
 .../agent/api/DeleteBcfAttachmentCommand.java   |  45 ++
 .../agent/api/DeleteBcfSegmentCommand.java      |  39 +
 .../agent/api/DeleteBcfStaticNatCommand.java    |  44 ++
 .../agent/api/GetControllerDataAnswer.java      |  45 ++
 .../agent/api/GetControllerDataCommand.java     |  25 +
 .../agent/api/GetControllerHostsAnswer.java     |  40 +
 .../agent/api/GetControllerHostsCommand.java    |  25 +
 .../agent/api/StartupBigSwitchBcfCommand.java   |  30 +
 .../cloud/agent/api/SyncBcfTopologyCommand.java |  38 +
 .../agent/api/UpdateBcfAttachmentCommand.java   |  50 ++
 .../cloud/agent/api/UpdateBcfRouterCommand.java |  61 ++
 .../api/commands/AddBigSwitchBcfDeviceCmd.java  | 143 ++++
 .../com/cloud/api/commands/BcfConstants.java    |  37 +
 .../commands/DeleteBigSwitchBcfDeviceCmd.java   | 110 +++
 .../commands/ListBigSwitchBcfDevicesCmd.java    | 114 +++
 .../response/BigSwitchBcfDeviceResponse.java    |  99 +++
 .../com/cloud/network/BigSwitchBcfDeviceVO.java | 143 ++++
 .../com/cloud/network/bigswitch/AclData.java    | 114 +++
 .../cloud/network/bigswitch/AttachmentData.java | 142 ++++
 .../network/bigswitch/BigSwitchBcfApi.java      | 459 +++++++++++
 .../bigswitch/BigSwitchBcfApiException.java     |  55 ++
 .../network/bigswitch/BigSwitchBcfUtils.java    | 571 ++++++++++++++
 .../network/bigswitch/BigSwitchStatus.java      |  32 +
 .../cloud/network/bigswitch/Capabilities.java   |  34 +
 .../network/bigswitch/ControlClusterData.java   |  43 +
 .../network/bigswitch/ControlClusterStatus.java |  32 +
 .../cloud/network/bigswitch/ControllerData.java |  39 +
 .../cloud/network/bigswitch/FloatingIpData.java |  93 +++
 .../cloud/network/bigswitch/NetworkData.java    | 217 +++++
 .../com/cloud/network/bigswitch/RouterData.java | 131 ++++
 .../network/bigswitch/RouterInterfaceData.java  |  67 ++
 .../cloud/network/bigswitch/TopologyData.java   | 249 ++++++
 .../TrustingProtocolSocketFactory.java          | 114 +++
 .../com/cloud/network/dao/BigSwitchBcfDao.java  |  35 +
 .../cloud/network/dao/BigSwitchBcfDaoImpl.java  |  53 ++
 .../network/element/BigSwitchBcfElement.java    | 785 +++++++++++++++++++
 .../element/BigSwitchBcfElementService.java     |  41 +
 .../guru/BigSwitchBcfGuestNetworkGuru.java      | 423 ++++++++++
 .../network/resource/BigSwitchBcfResource.java  | 589 ++++++++++++++
 .../network/bigswitch/BigSwitchApiTest.java     | 433 ++++++++++
 .../resource/BigSwitchBcfResourceTest.java      | 431 ++++++++++
 plugins/pom.xml                                 |   2 +-
 scripts/util/qemu-ivs-ifup                      |  20 +
 server/src/com/cloud/api/ApiResponseHelper.java |   2 +-
 .../cloud/network/rules/RulesManagerImpl.java   |   9 +-
 .../com/cloud/network/rules/StaticNatImpl.java  |  18 +
 .../com/cloud/network/vpc/VpcManagerImpl.java   |   4 +-
 setup/db/create-schema.sql                      |   1 +
 setup/db/db/schema-442to450.sql                 |  18 +
 .../integration/component/test_bigswitch_bcf.py | 776 ++++++++++++++++++
 tools/apidoc/gen_toc.py                         |   2 +-
 tools/eclipse/eclipse.epf                       |  14 +-
 ui/dictionary.jsp                               |   4 +-
 ui/dictionary2.jsp                              |   6 +-
 ui/scripts/configuration.js                     |  18 +-
 ui/scripts/system.js                            | 154 ++--
 ui/scripts/ui-custom/zoneWizard.js              |   4 +-
 119 files changed, 8117 insertions(+), 3395 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/api/src/com/cloud/network/Network.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/Network.java b/api/src/com/cloud/network/Network.java
index e07cea6..d39489e 100644
--- a/api/src/com/cloud/network/Network.java
+++ b/api/src/com/cloud/network/Network.java
@@ -138,6 +138,8 @@ public interface Network extends ControlledEntity, StateObject<Network.State>, I
         public static final Provider BrocadeVcs = new Provider("BrocadeVcs", false);
         // add GloboDns provider
         public static final Provider GloboDns = new Provider("GloboDns", true);
+        // add Big Switch Bcf Provider
+        public static final Provider BigSwitchBcf = new Provider("BigSwitchBcf", false);
 
         private final String name;
         private final boolean isExternal;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/api/src/com/cloud/network/PhysicalNetwork.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/PhysicalNetwork.java b/api/src/com/cloud/network/PhysicalNetwork.java
index 7c9349d..bdf098f 100644
--- a/api/src/com/cloud/network/PhysicalNetwork.java
+++ b/api/src/com/cloud/network/PhysicalNetwork.java
@@ -33,7 +33,7 @@ public interface PhysicalNetwork extends Identity, InternalIdentity {
     }
 
     public enum IsolationMethod {
-        VLAN, L3, GRE, STT, VNS, MIDO, SSP, VXLAN, ODL, L3VPN, VSP, VCS;
+        VLAN, L3, GRE, STT, BCF_SEGMENT, MIDO, SSP, VXLAN, ODL, L3VPN, VSP, VCS;
     }
 
     public enum BroadcastDomainRange {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/api/src/com/cloud/network/rules/StaticNat.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/rules/StaticNat.java b/api/src/com/cloud/network/rules/StaticNat.java
index 977bc28..2c33b37 100644
--- a/api/src/com/cloud/network/rules/StaticNat.java
+++ b/api/src/com/cloud/network/rules/StaticNat.java
@@ -28,5 +28,7 @@ public interface StaticNat {
 
     String getDestIpAddress();
 
+    String getSourceMacAddress();
+
     boolean isForRevoke();
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/WEB-INF/classes/resources/messages.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages.properties b/client/WEB-INF/classes/resources/messages.properties
index ca67d68..65e9362 100644
--- a/client/WEB-INF/classes/resources/messages.properties
+++ b/client/WEB-INF/classes/resources/messages.properties
@@ -302,7 +302,7 @@ label.add.accounts.to=Add accounts to
 label.add.accounts=Add accounts
 label.add.ACL=Add ACL
 label.add.affinity.group=Add new affinity group
-label.add.BigSwitchVns.device=Add BigSwitch Vns Controller
+label.add.BigSwitchBcf.device=Add BigSwitch BCF Controller
 label.add.by.cidr=Add By CIDR
 label.add.by.group=Add By Group
 label.add.by=Add by
@@ -415,7 +415,7 @@ label.back=Back
 label.bandwidth=Bandwidth
 label.basic.mode=Basic Mode
 label.basic=Basic
-label.bigswitch.controller.address=BigSwitch Vns Controller Address
+label.bigswitch.controller.address=BigSwitch BCF Controller Address
 label.bootable=Bootable
 label.broadcast.domain.range=Broadcast domain range
 label.broadcast.domain.type=Broadcast Domain Type
@@ -509,7 +509,7 @@ label.default.use=Default Use
 label.default.view=Default View
 label.default=Default
 label.delete.affinity.group=Delete Affinity Group
-label.delete.BigSwitchVns=Remove BigSwitch Vns Controller
+label.delete.BigSwitchBcf=Remove BigSwitch BCF Controller
 label.delete.F5=Delete F5
 label.delete.gateway=Delete gateway
 label.delete.NetScaler=Delete NetScaler
@@ -1450,8 +1450,9 @@ label.added.nicira.nvp.controller=Added new Nicira NVP Controller
 label.nicira.nvp.details=Nicira NVP details
 label.added.brocade.vcs.switch=Added new Brocade Vcs Switch
 label.brocade.vcs.details=Brocade Vcs Switch details
-label.added.new.bigswitch.vns.controller=Added new BigSwitch VNS Controller
-label.bigswitch.vns.details=BigSwitch VNS details
+label.added.new.bigswitch.bcf.controller=Added new BigSwitch BCF Controller
+label.bigswitch.bcf.details=BigSwitch BCF details
+label.bigswitch.bcf.nat=BigSwitch BCF NAT Enabled
 label.dedicate=Dedicate
 label.dedicate.pod=Dedicate Pod
 label.pod.dedicated=Pod Dedicated
@@ -1733,6 +1734,7 @@ message.configuring.public.traffic=Configuring public traffic
 message.configuring.storage.traffic=Configuring storage traffic
 message.confirm.action.force.reconnect=Please confirm that you want to force reconnect this host.
 message.confirm.delete.F5=Please confirm that you would like to delete F5
+message.confirm.delete.BigSwitchBcf=Please confirm that you would like to delete this BigSwitch BCF Controller
 message.confirm.delete.BrocadeVcs=Please confirm that you would like to delete Brocade Vcs Switch
 message.confirm.delete.NetScaler=Please confirm that you would like to delete NetScaler
 message.confirm.delete.NuageVsp=Please confirm that you would like to delete Nuage Virtualized Services Directory

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/WEB-INF/classes/resources/messages_fr_FR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_fr_FR.properties b/client/WEB-INF/classes/resources/messages_fr_FR.properties
index c24fce3..8a3939a 100644
--- a/client/WEB-INF/classes/resources/messages_fr_FR.properties
+++ b/client/WEB-INF/classes/resources/messages_fr_FR.properties
@@ -257,8 +257,8 @@ label.add.acl.list=Ajouter Liste ACL
 label.add.affinity.group=Ajouter nouveau groupe d\\'affinit\u00e9
 label.add=Ajouter
 label.add.baremetal.dhcp.device=Ajouter un DHCP Baremetal
-label.add.BigSwitchVns.device=Ajouter contr\u00f4leur BigSwitch Vns
 label.add.BrocadeVcs.device=Ajouter Switch Brocade Vcs
+label.add.BigSwitchBcf.device=Ajouter contr\u00f4leur BigSwitch BCF
 label.add.by=Ajout\u00e9 par
 label.add.by.cidr=Ajouter par CIDR
 label.add.by.group=Ajouter par groupe
@@ -269,7 +269,7 @@ label.add.direct.iprange=Ajouter une plage d\\'adresse IP directe
 label.add.disk.offering=Ajouter Offre Disque
 label.add.domain=Ajouter un domaine
 label.added.brocade.vcs.switch=Ajout d\\'un nouveau switch Brocade Vcs
-label.added.new.bigswitch.vns.controller=Ajout du nouveau contr\u00f4leur BigSwitch VNS
+label.added.new.bigswitch.bcf.controller=Ajout du nouveau contr\u00f4leur BigSwitch BCF
 label.added.nicira.nvp.controller=Ajout d\\'un nouveau contr\u00f4leur Nicira NVP
 label.add.egress.rule=Ajouter la r\u00e8gle sortante
 label.addes.new.f5=Ajout d\\'un nouveau F5
@@ -403,8 +403,8 @@ label.baremetal.pxe.devices=\u00c9quipements PXE Baremetal
 label.baremetal.pxe.provider=Fournisseur PXE Baremetal
 label.basic=Basique
 label.basic.mode=Mode basique
-label.bigswitch.controller.address=Adresse du contr\u00f4leur BigSwitch Vns
-label.bigswitch.vns.details=D\u00e9tails BigSwitch VNS
+label.bigswitch.controller.address=Adresse du contr\u00f4leur BigSwitch BCF
+label.bigswitch.bcf.details=D\u00e9tails BigSwitch BCF
 label.blade.id=ID Lame
 label.blades=Lames
 label.bootable=Amor\u00e7able
@@ -527,9 +527,9 @@ label.default.view=Vue par d\u00e9faut
 label.delete.acl.list=Supprimer Liste ACL
 label.delete.affinity.group=Supprimer le groupe d\\'affinit\u00e9
 label.delete.alerts=Supprimer alertes
-label.delete.BigSwitchVns=Supprimer contr\u00f4leur BigSwitch Vns
 label.delete.BrocadeVcs=Supprimer Brocade Vcs Switch
 label.delete.ciscoASA1000v=Supprimer CiscoASA1000v
+label.delete.BigSwitchBcf=Supprimer contr\u00f4leur BigSwitch BCF
 label.delete.ciscovnmc.resource=Supprimer ressource CiscoVNMC
 label.delete.events=Supprimer \u00e9v\u00e9nements
 label.delete.F5=Supprimer F5

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/WEB-INF/classes/resources/messages_ja_JP.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ja_JP.properties b/client/WEB-INF/classes/resources/messages_ja_JP.properties
index 7d6c6ae..bee5d10 100644
--- a/client/WEB-INF/classes/resources/messages_ja_JP.properties
+++ b/client/WEB-INF/classes/resources/messages_ja_JP.properties
@@ -300,7 +300,7 @@ label.add.accounts.to=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0\u5148\:
 label.add.accounts=\u30a2\u30ab\u30a6\u30f3\u30c8\u306e\u8ffd\u52a0
 label.add.ACL=ACL \u306e\u8ffd\u52a0
 label.add.affinity.group=\u65b0\u3057\u3044\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306e\u8ffd\u52a0
-label.add.BigSwitchVns.device=Big Switch VNS \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u8ffd\u52a0
+label.add.BigSwitchBcf.device=Big Switch BCF \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u8ffd\u52a0
 label.add.by.cidr=CIDR \u3067\u8ffd\u52a0
 label.add.by.group=\u30b0\u30eb\u30fc\u30d7\u3067\u8ffd\u52a0
 label.add.by=\u8ffd\u52a0\u5358\u4f4d
@@ -309,6 +309,7 @@ label.add.compute.offering=\u30b3\u30f3\u30d4\u30e5\u30fc\u30c6\u30a3\u30f3\u30b
 label.add.direct.iprange=\u76f4\u63a5 IP \u30a2\u30c9\u30ec\u30b9\u306e\u7bc4\u56f2\u306e\u8ffd\u52a0
 label.add.disk.offering=\u30c7\u30a3\u30b9\u30af \u30aa\u30d5\u30a1\u30ea\u30f3\u30b0\u306e\u8ffd\u52a0
 label.add.domain=\u30c9\u30e1\u30a4\u30f3\u306e\u8ffd\u52a0
+label.added.new.bigswitch.bcf.controller=\u65b0\u3057\u3044 Big Switch BCF \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u3092\u8ffd\u52a0\u3057\u307e\u3057\u305f
 label.add.egress.rule=\u9001\u4fe1\u898f\u5247\u306e\u8ffd\u52a0
 label.add.F5.device=F5 \u30c7\u30d0\u30a4\u30b9\u306e\u8ffd\u52a0
 label.add.firewall=\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u898f\u5247\u306e\u8ffd\u52a0
@@ -410,7 +411,8 @@ label.back=\u623b\u308b
 label.bandwidth=\u5e2f\u57df\u5e45
 label.basic.mode=\u57fa\u672c\u30e2\u30fc\u30c9
 label.basic=\u57fa\u672c
-label.bigswitch.controller.address=Big Switch VNS \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc \u30a2\u30c9\u30ec\u30b9
+label.bigswitch.controller.address=Big Switch BCF \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u30a2\u30c9\u30ec\u30b9
+label.bigswitch.bcf.details=Big Switch BCF \u306e\u8a73\u7d30
 label.bootable=\u8d77\u52d5\u53ef\u80fd
 label.broadcast.domain.range=\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8 \u30c9\u30e1\u30a4\u30f3\u306e\u7bc4\u56f2
 label.broadcast.domain.type=\u30d6\u30ed\u30fc\u30c9\u30ad\u30e3\u30b9\u30c8 \u30c9\u30e1\u30a4\u30f3\u306e\u7a2e\u985e
@@ -503,7 +505,7 @@ label.default.use=\u30c7\u30d5\u30a9\u30eb\u30c8\u4f7f\u7528
 label.default.view=\u30c7\u30d5\u30a9\u30eb\u30c8 \u30d3\u30e5\u30fc
 label.default=\u30c7\u30d5\u30a9\u30eb\u30c8
 label.delete.affinity.group=\u30a2\u30d5\u30a3\u30cb\u30c6\u30a3 \u30b0\u30eb\u30fc\u30d7\u306e\u524a\u9664
-label.delete.BigSwitchVns=Big Switch VNS \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u524a\u9664
+label.delete.BigSwitchBcf=Big Switch BCF \u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306e\u524a\u9664
 label.delete.F5=F5 \u306e\u524a\u9664
 label.delete.gateway=\u30b2\u30fc\u30c8\u30a6\u30a7\u30a4\u306e\u524a\u9664
 label.delete.NetScaler=NetScaler \u306e\u524a\u9664

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/WEB-INF/classes/resources/messages_ko_KR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ko_KR.properties b/client/WEB-INF/classes/resources/messages_ko_KR.properties
index 5886388..a949adc 100644
--- a/client/WEB-INF/classes/resources/messages_ko_KR.properties
+++ b/client/WEB-INF/classes/resources/messages_ko_KR.properties
@@ -241,7 +241,7 @@ label.add.accounts=\uacc4\uc815 \uc815\ubcf4 \ucd94\uac00
 label.add.account.to.project=\uacc4\uc815 \uc815\ubcf4 \ud504\ub85c\uc81d\ud2b8\uc5d0 \ucd94\uac00
 label.add.account=\uacc4\uc815 \uc815\ubcf4 \ucd94\uac00
 label.add.ACL=\uad8c\ud55c \uad00\ub9ac(ACL) \ucd94\uac00
-label.add.BigSwitchVns.device=BigSwitch Vns \ucf58\ud2b8\ub864\ub7ec
+label.add.BigSwitchBcf.device=BigSwitch BCF \ucf58\ud2b8\ub864\ub7ec
 label.add.by.cidr=CIDR \ub85c \ucd94\uac00
 label.add.by.group=\uadf8\ub8f9\uc5d0\uc11c \ucd94\uac00
 label.add.by=\ucd94\uac00 \ub2e8\uc704

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/WEB-INF/classes/resources/messages_nl_NL.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_nl_NL.properties b/client/WEB-INF/classes/resources/messages_nl_NL.properties
index 64789c2..425ccbb 100644
--- a/client/WEB-INF/classes/resources/messages_nl_NL.properties
+++ b/client/WEB-INF/classes/resources/messages_nl_NL.properties
@@ -252,7 +252,7 @@ label.add.account=Voeg Account toe
 label.add.ACL=Voeg ACL toe
 label.add.affinity.group=Nieuwe affinity groep toevoegen
 label.add.baremetal.dhcp.device=Voeg Baremetal DHCP Apparaat toe
-label.add.BigSwitchVns.device=Voeg BigSwitch Vns Controller toe
+label.add.BigSwitchBcf.device=Voeg BigSwitch BCF Controller toe
 label.add.by.cidr=Voeg toe door middel van CIDR
 label.add.by.group=Voeg toe door middel van Groep
 label.add.by=Voeg toe door middel van
@@ -261,7 +261,7 @@ label.add.compute.offering=Voeg Compute aanbieding toe
 label.add.direct.iprange=Voeg Direct IP Range toe
 label.add.disk.offering=Voeg Schijf Aanbieding toe
 label.add.domain=Voeg Domein toe
-label.added.new.bigswitch.vns.controller=Nieuwe BigSwitch VNS Controller toegevoegd
+label.added.new.bigswitch.bcf.controller=Nieuwe BigSwitch BCF Controller toegevoegd
 label.added.nicira.nvp.controller=Nieuwe Nicira NVP Controller toegevoegd
 label.add.egress.rule=Voeg uitgaande regel toe
 label.addes.new.f5=Nieuwe F5 toegevoegd
@@ -384,8 +384,8 @@ label.baremetal.pxe.device=Voeg Baremetal PXE Apparaat toe
 label.baremetal.pxe.provider=Baremetal PXE Provider
 label.basic=Basis
 label.basic.mode=Basis Modus
-label.bigswitch.controller.address=BigSwitch Vns Controller Adres
-label.bigswitch.vns.details=BigSwitch VNS details
+label.bigswitch.controller.address=BigSwitch BCF Controller Adres
+label.bigswitch.bcf.details=BigSwitch BCF details
 label.blade.id=Blade ID
 label.blades=Blades
 label.bootable=Bootable
@@ -502,7 +502,7 @@ label.default.use=Standaard Gebruik
 label.default.view=Standaard Weergave
 label.delete.affinity.group=Verwijder Affinity Groep
 label.delete.alerts=Verwijder waarschuwingen
-label.delete.BigSwitchVns=Verwijder BigSwitch Vns Controller
+label.delete.BigSwitchBcf=Verwijder BigSwitch Bcf Controller
 label.delete.ciscovnmc.resource=CiscoVNMC resource verwijderen
 label.delete.events=Verwijder gebeurtenissen
 label.delete.F5=Verwijder F5

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/WEB-INF/classes/resources/messages_pt_BR.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_pt_BR.properties b/client/WEB-INF/classes/resources/messages_pt_BR.properties
index 40b7b12..00dd4bf 100644
--- a/client/WEB-INF/classes/resources/messages_pt_BR.properties
+++ b/client/WEB-INF/classes/resources/messages_pt_BR.properties
@@ -249,7 +249,7 @@ label.add.account.to.project=Adicionar conta ao projeto
 label.add.ACL=Adicionar ACL
 label.add=Adicionar
 label.add.affinity.group=Adicionar um grupo de afinidade
-label.add.BigSwitchVns.device=Adicionar BigSwitch Vns Controller
+label.add.BigSwitchBcf.device=Adicionar BigSwitch BCF Controller
 label.add.by=Adicionado por
 label.add.by.cidr=Adicionar por CIDR
 label.add.by.group=Adicionar por Grupo
@@ -360,7 +360,7 @@ label.back=Voltar
 label.bandwidth=Bandwidth
 label.basic=B\u00e1sico
 label.basic.mode=Modo B\u00e1sico
-label.bigswitch.controller.address=Endere\u00e7o do Controlador BigSwitch Vns
+label.bigswitch.controller.address=Endere\u00e7o do Controlador BigSwitch BCF
 label.bootable=Inicializ\u00e1vel
 label.broadcast.domain.range=Range do dom\u00ednio de Broadcast
 label.broadcast.domain.type=Tipo de Dom\u00ednio Broadcast
@@ -456,7 +456,7 @@ label.default.use=Uso padr\u00e3o
 label.default.view=Vis\u00e3o Padr\u00e3o
 label.delete.affinity.group=Deletar Grupo de Afinidade
 label.delete.alerts=Remover alertas
-label.delete.BigSwitchVns=Remover Controlador BigSwitch Vns
+label.delete.BigSwitchBcf=Remover Controlador BigSwitch BCF
 label.delete.events=Remover eventos
 label.delete.F5=Remover F5
 label.delete.gateway=delete gateway

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/WEB-INF/classes/resources/messages_ru_RU.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_ru_RU.properties b/client/WEB-INF/classes/resources/messages_ru_RU.properties
index 085af0f..abaee9e 100644
--- a/client/WEB-INF/classes/resources/messages_ru_RU.properties
+++ b/client/WEB-INF/classes/resources/messages_ru_RU.properties
@@ -245,7 +245,7 @@ label.add.account.to.project=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u
 label.add.account=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0430\u043a\u043a\u0430\u0443\u043d\u0442
 label.add.ACL=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c ACL
 label.add.affinity.group=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043d\u043e\u0432\u0443\u044e affinity group
-label.add.BigSwitchVns.device=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c BigSwitch Vns Controller
+label.add.BigSwitchBcf.device=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c BigSwitch BCF Controller
 label.add.by.cidr=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a CIDR
 label.add.by.group=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043a \u0433\u0440\u0443\u043f\u043f\u0435
 label.add.by=\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c
@@ -442,7 +442,7 @@ label.default.use=\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\
 label.default.view=\u041e\u0431\u044b\u0447\u043d\u044b\u0439 \u0432\u0438\u0434
 label.delete.affinity.group=\u0423\u0434\u0430\u043b\u0438\u0442\u044c affinity group
 label.delete.alerts=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u0440\u0435\u0432\u043e\u0433\u0438
-label.delete.BigSwitchVns=\u0423\u0434\u0430\u043b\u0438\u0442\u044c BigSwitch VNC \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440
+label.delete.BigSwitchBcf=\u0423\u0434\u0430\u043b\u0438\u0442\u044c BigSwitch BCF \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u043b\u0435\u0440
 label.delete.events=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0441\u043e\u0431\u044b\u0442\u0438\u044f
 label.delete.F5=\u0423\u0434\u0430\u043b\u0438\u0442\u044c F5
 label.delete.gateway=\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0448\u043b\u044e\u0437

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/WEB-INF/classes/resources/messages_zh_CN.properties
----------------------------------------------------------------------
diff --git a/client/WEB-INF/classes/resources/messages_zh_CN.properties b/client/WEB-INF/classes/resources/messages_zh_CN.properties
index 52e18cc..4e750aa 100644
--- a/client/WEB-INF/classes/resources/messages_zh_CN.properties
+++ b/client/WEB-INF/classes/resources/messages_zh_CN.properties
@@ -300,7 +300,7 @@ label.add.accounts.to=\u6dfb\u52a0\u5e10\u6237\u81f3
 label.add.accounts=\u6dfb\u52a0\u5e10\u6237
 label.add.ACL=\u6dfb\u52a0 ACL
 label.add.affinity.group=\u6dfb\u52a0\u65b0\u5173\u8054\u6027\u7ec4
-label.add.BigSwitchVns.device=\u6dfb\u52a0 BigSwitch Vns \u63a7\u5236\u5668
+label.add.BigSwitchBcf.device=\u6dfb\u52a0 BigSwitch BCF \u63a7\u5236\u5668
 label.add.by.cidr=\u6309 CIDR \u6dfb\u52a0
 label.add.by.group=\u6309\u7ec4\u6dfb\u52a0
 label.add.by=\u6dfb\u52a0\u65b9\u5f0f
@@ -309,6 +309,7 @@ label.add.compute.offering=\u6dfb\u52a0\u8ba1\u7b97\u65b9\u6848
 label.add.direct.iprange=\u6dfb\u52a0\u76f4\u63a5 IP \u8303\u56f4
 label.add.disk.offering=\u6dfb\u52a0\u78c1\u76d8\u65b9\u6848
 label.add.domain=\u6dfb\u52a0\u57df
+label.added.new.bigswitch.bcf.controller=\u5df2\u6dfb\u52a0\u65b0 BigSwitch BCF \u63a7\u5236\u5668
 label.add.egress.rule=\u6dfb\u52a0\u51fa\u53e3\u89c4\u5219
 label.add.F5.device=\u6dfb\u52a0 F5 \u8bbe\u5907
 label.add.firewall=\u6dfb\u52a0\u9632\u706b\u5899\u89c4\u5219
@@ -410,7 +411,8 @@ label.back=\u540e\u9000
 label.bandwidth=\u5e26\u5bbd
 label.basic.mode=\u57fa\u672c\u6a21\u5f0f
 label.basic=\u57fa\u672c
-label.bigswitch.controller.address=BigSwitch Vns \u63a7\u5236\u5668\u5730\u5740
+label.bigswitch.controller.address=BigSwitch BCF \u63a7\u5236\u5668\u5730\u5740
+label.bigswitch.bcf.details=BigSwitch BCF \u8be6\u7ec6\u4fe1\u606f
 label.bootable=\u53ef\u542f\u52a8
 label.broadcast.domain.range=\u5e7f\u64ad\u57df\u8303\u56f4
 label.broadcast.domain.type=\u5e7f\u64ad\u57df\u7c7b\u578b
@@ -503,7 +505,7 @@ label.default.use=\u9ed8\u8ba4\u4f7f\u7528
 label.default.view=\u9ed8\u8ba4\u89c6\u56fe
 label.default=\u9ed8\u8ba4\u8bbe\u7f6e
 label.delete.affinity.group=\u5220\u9664\u5173\u8054\u6027\u7ec4
-label.delete.BigSwitchVns=\u79fb\u9664 BigSwitch Vns \u63a7\u5236\u5668
+label.delete.BigSwitchBcf=\u79fb\u9664 BigSwitch BCF \u63a7\u5236\u5668
 label.delete.F5=\u5220\u9664 F5
 label.delete.gateway=\u5220\u9664\u7f51\u5173
 label.delete.NetScaler=\u5220\u9664 NetScaler

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/pom.xml
----------------------------------------------------------------------
diff --git a/client/pom.xml b/client/pom.xml
index 262a340..3dbc0a0 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -127,7 +127,7 @@
     </dependency>
     <dependency>
       <groupId>org.apache.cloudstack</groupId>
-      <artifactId>cloud-plugin-network-vns</artifactId>
+      <artifactId>cloud-plugin-network-bigswitch</artifactId>
       <version>${project.version}</version>
     </dependency>
     <dependency>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/client/tomcatconf/commands.properties.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/commands.properties.in b/client/tomcatconf/commands.properties.in
index f932904..ee8537e 100644
--- a/client/tomcatconf/commands.properties.in
+++ b/client/tomcatconf/commands.properties.in
@@ -626,11 +626,11 @@ deleteBrocadeVcsDevice=1
 listBrocadeVcsDevices=1
 listBrocadeVcsDeviceNetworks=1
 
-#### bigswitch vns commands
+#### bigswitch bcf commands
 
-addBigSwitchVnsDevice=1
-deleteBigSwitchVnsDevice=1
-listBigSwitchVnsDevices=1
+addBigSwitchBcfDevice=1
+deleteBigSwitchBcfDevice=1
+listBigSwitchBcfDevices=1
 
 #### stratosphere ssp commands
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/engine/schema/src/com/cloud/user/dao/VmDiskStatisticsDaoImpl.java
----------------------------------------------------------------------
diff --git a/engine/schema/src/com/cloud/user/dao/VmDiskStatisticsDaoImpl.java b/engine/schema/src/com/cloud/user/dao/VmDiskStatisticsDaoImpl.java
index e1136d3..56a1d3e 100644
--- a/engine/schema/src/com/cloud/user/dao/VmDiskStatisticsDaoImpl.java
+++ b/engine/schema/src/com/cloud/user/dao/VmDiskStatisticsDaoImpl.java
@@ -40,8 +40,8 @@ import com.cloud.utils.db.TransactionLegacy;
 public class VmDiskStatisticsDaoImpl extends GenericDaoBase<VmDiskStatisticsVO, Long> implements VmDiskStatisticsDao {
     private static final Logger s_logger = Logger.getLogger(VmDiskStatisticsDaoImpl.class);
     private static final String ACTIVE_AND_RECENTLY_DELETED_SEARCH =
-        "SELECT vns.id, vns.data_center_id, vns.account_id, vns.vm_id, vns.volume_id, vns.agg_io_read, vns.agg_io_write, vns.agg_bytes_read, vns.agg_bytes_write "
-            + "FROM vm_disk_statistics vns, account a " + "WHERE vns.account_id = a.id AND (a.removed IS NULL OR a.removed >= ?) " + "ORDER BY vns.id";
+        "SELECT bcf.id, bcf.data_center_id, bcf.account_id, bcf.vm_id, bcf.volume_id, bcf.agg_io_read, bcf.agg_io_write, bcf.agg_bytes_read, bcf.agg_bytes_write "
+            + "FROM vm_disk_statistics bcf, account a " + "WHERE bcf.account_id = a.id AND (a.removed IS NULL OR a.removed >= ?) " + "ORDER BY bcf.id";
     private static final String UPDATED_VM_NETWORK_STATS_SEARCH = "SELECT id, current_io_read, current_io_write, net_io_read, net_io_write, agg_io_read, agg_io_write, "
         + "current_bytes_read, current_bytes_write, net_bytes_read, net_bytes_write, agg_bytes_read, agg_bytes_write " + "from  vm_disk_statistics "
         + "where (agg_io_read < net_io_read + current_io_read) OR (agg_io_write < net_io_write + current_io_write) OR "

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/framework/rest/.gitignore
----------------------------------------------------------------------
diff --git a/framework/rest/.gitignore b/framework/rest/.gitignore
index ea8c4bf..19f2e00 100644
--- a/framework/rest/.gitignore
+++ b/framework/rest/.gitignore
@@ -1 +1,2 @@
 /target
+/target

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/IvsVifDriver.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/IvsVifDriver.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/IvsVifDriver.java
new file mode 100644
index 0000000..b503674
--- /dev/null
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/IvsVifDriver.java
@@ -0,0 +1,286 @@
+/*
+ * 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.
+ */
+
+package com.cloud.hypervisor.kvm.resource;
+
+import java.io.File;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import javax.naming.ConfigurationException;
+
+import org.apache.log4j.Logger;
+import org.libvirt.LibvirtException;
+
+import com.cloud.agent.api.to.NicTO;
+import com.cloud.exception.InternalErrorException;
+import com.cloud.hypervisor.kvm.resource.LibvirtVMDef.InterfaceDef;
+import com.cloud.network.Networks;
+import com.cloud.utils.NumbersUtil;
+import com.cloud.utils.net.NetUtils;
+import com.cloud.utils.script.OutputInterpreter;
+import com.cloud.utils.script.Script;
+
+public class IvsVifDriver extends VifDriverBase {
+    private static final Logger s_logger = Logger.getLogger(IvsVifDriver.class);
+    private int _timeout;
+
+    private final Object _vnetBridgeMonitor = new Object();
+    private String _modifyVlanPath;
+    private String _modifyVxlanPath;
+    private String _ivsIfUpPath;
+    private Long libvirtVersion;
+
+    @Override
+    public void configure(Map<String, Object> params) throws ConfigurationException {
+        super.configure(params);
+        String networkScriptsDir = (String)params.get("network.scripts.dir");
+        if (networkScriptsDir == null) {
+            networkScriptsDir = "scripts/vm/network/vnet";
+        }
+        String utilScriptsDir = "scripts/util/";
+
+        String value = (String)params.get("scripts.timeout");
+        _timeout = NumbersUtil.parseInt(value, 30 * 60) * 1000;
+
+        _modifyVlanPath = Script.findScript(networkScriptsDir, "modifyvlan.sh");
+        if (_modifyVlanPath == null) {
+            throw new ConfigurationException("Unable to find modifyvlan.sh");
+        }
+        _modifyVxlanPath = Script.findScript(networkScriptsDir, "modifyvxlan.sh");
+        if (_modifyVxlanPath == null) {
+            throw new ConfigurationException("Unable to find modifyvxlan.sh");
+        }
+        _ivsIfUpPath = Script.findScript(utilScriptsDir, "qemu-ivs-ifup");
+
+        libvirtVersion = (Long) params.get("libvirtVersion");
+        if (libvirtVersion == null) {
+            libvirtVersion = 0L;
+        }
+
+        createControlNetwork(_bridges.get("linklocal"));
+    }
+
+    @Override
+    public InterfaceDef plug(NicTO nic, String guestOsType, String nicAdapter) throws InternalErrorException, LibvirtException {
+        LibvirtVMDef.InterfaceDef intf = new LibvirtVMDef.InterfaceDef();
+
+        String vNetId = null;
+        String protocol = null;
+        if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan || nic.getBroadcastType() == Networks.BroadcastDomainType.Vxlan) {
+            vNetId = Networks.BroadcastDomainType.getValue(nic.getBroadcastUri());
+            protocol = Networks.BroadcastDomainType.getSchemeValue(nic.getBroadcastUri()).scheme();
+        }
+
+        String vlanId = null;
+        String logicalSwitchUuid = null;
+        if (nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan) {
+            vlanId = Networks.BroadcastDomainType.getValue(nic.getBroadcastUri());
+        } else if (nic.getBroadcastType() == Networks.BroadcastDomainType.Lswitch) {
+            logicalSwitchUuid = Networks.BroadcastDomainType.getValue(nic.getBroadcastUri());
+        } else if (nic.getBroadcastType() == Networks.BroadcastDomainType.Pvlan) {
+            // TODO consider moving some of this functionality from NetUtils to Networks....
+            vlanId = NetUtils.getPrimaryPvlanFromUri(nic.getBroadcastUri());
+        }
+        String trafficLabel = nic.getName();
+        Integer networkRateKBps = (nic.getNetworkRateMbps() != null && nic.getNetworkRateMbps().intValue() != -1) ? nic.getNetworkRateMbps().intValue() * 128 : 0;
+        if (nic.getType() == Networks.TrafficType.Guest) {
+            if ((nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan || nic.getBroadcastType() == Networks.BroadcastDomainType.Pvlan) &&
+                    !vlanId.equalsIgnoreCase("untagged")) {
+                if (trafficLabel != null && !trafficLabel.isEmpty()) {
+                    s_logger.debug("creating a vlan dev and bridge for guest traffic per traffic label " + trafficLabel);
+                    intf.defEthernet("ivsnet-" + nic.getUuid().substring(0, 5), nic.getMac(), getGuestNicModel(guestOsType, nicAdapter), _ivsIfUpPath, networkRateKBps);
+                } else {
+                    throw new InternalErrorException("no traffic label ");
+                }
+            }
+        } else if (nic.getType() == Networks.TrafficType.Control) {
+            /* Make sure the network is still there */
+            createControlNetwork();
+            intf.defBridgeNet(_bridges.get("linklocal"), null, nic.getMac(), getGuestNicModel(guestOsType, nicAdapter));
+        } else if (nic.getType() == Networks.TrafficType.Public) {
+            if ((nic.getBroadcastType() == Networks.BroadcastDomainType.Vlan) && (vNetId != null) && (protocol != null) && (!vNetId.equalsIgnoreCase("untagged")) ||
+                    (nic.getBroadcastType() == Networks.BroadcastDomainType.Vxlan)) {
+                if (trafficLabel != null && !trafficLabel.isEmpty()) {
+                    s_logger.debug("creating a vNet dev and bridge for public traffic per traffic label " + trafficLabel);
+                    String brName = createVnetBr(vNetId, trafficLabel, protocol);
+                    intf.defBridgeNet(brName, null, nic.getMac(), getGuestNicModel(guestOsType, nicAdapter), networkRateKBps);
+                } else {
+                    String brName = createVnetBr(vNetId, "public", protocol);
+                    intf.defBridgeNet(brName, null, nic.getMac(), getGuestNicModel(guestOsType, nicAdapter), networkRateKBps);
+                }
+            } else {
+                intf.defBridgeNet(_bridges.get("public"), null, nic.getMac(), getGuestNicModel(guestOsType, nicAdapter), networkRateKBps);
+            }
+        } else if (nic.getType() == Networks.TrafficType.Management) {
+            intf.defBridgeNet(_bridges.get("private"), null, nic.getMac(), getGuestNicModel(guestOsType, nicAdapter));
+        } else if (nic.getType() == Networks.TrafficType.Storage) {
+            String storageBrName = nic.getName() == null ? _bridges.get("private") : nic.getName();
+            intf.defBridgeNet(storageBrName, null, nic.getMac(), getGuestNicModel(guestOsType, nicAdapter));
+        }
+        if (nic.getPxeDisable() == true) {
+            intf.setPxeDisable(true);
+        }
+        return intf;
+    }
+
+    @Override
+    public void unplug(InterfaceDef iface) {
+    }
+
+    private void createControlNetwork() throws LibvirtException {
+        createControlNetwork(_bridges.get("linklocal"));
+    }
+
+    private String createVnetBr(String vNetId, String pifKey, String protocol) throws InternalErrorException {
+        String nic = _pifs.get(pifKey);
+        if (nic == null) {
+            // if not found in bridge map, maybe traffic label refers to pif already?
+            File pif = new File("/sys/class/net/" + pifKey);
+            if (pif.isDirectory()) {
+                nic = pifKey;
+            }
+        }
+        String brName = "";
+        brName = setVnetBrName(nic, vNetId);
+        createVnet(vNetId, nic, brName, protocol);
+        return brName;
+    }
+
+    private String setVnetBrName(String pifName, String vnetId) {
+        return "br" + pifName + "-" + vnetId;
+    }
+
+    private void createVnet(String vnetId, String pif, String brName, String protocol) throws InternalErrorException {
+        synchronized (_vnetBridgeMonitor) {
+            String script = _modifyVlanPath;
+            if (protocol.equals(Networks.BroadcastDomainType.Vxlan.scheme())) {
+                script = _modifyVxlanPath;
+            }
+            final Script command = new Script(script, _timeout, s_logger);
+            command.add("-v", vnetId);
+            command.add("-p", pif);
+            command.add("-b", brName);
+            command.add("-o", "add");
+
+            final String result = command.execute();
+            if (result != null) {
+                throw new InternalErrorException("Failed to create vnet " + vnetId + ": " + result);
+            }
+        }
+    }
+
+    private void deleteVnetBr(String brName) {
+        synchronized (_vnetBridgeMonitor) {
+            String cmdout = Script.runSimpleBashScript("ls /sys/class/net/" + brName);
+            if (cmdout == null)
+                // Bridge does not exist
+                return;
+            cmdout = Script.runSimpleBashScript("ls /sys/class/net/" + brName + "/brif | tr '\n' ' '");
+            if (cmdout != null && cmdout.contains("vnet")) {
+                // Active VM remains on that bridge
+                return;
+            }
+
+            Pattern oldStyleBrNameRegex = Pattern.compile("^cloudVirBr(\\d+)$");
+            Pattern brNameRegex = Pattern.compile("^br(\\S+)-(\\d+)$");
+            Matcher oldStyleBrNameMatcher = oldStyleBrNameRegex.matcher(brName);
+            Matcher brNameMatcher = brNameRegex.matcher(brName);
+
+            String pName = null;
+            String vNetId = null;
+            if (oldStyleBrNameMatcher.find()) {
+                // Actually modifyvlan.sh doesn't require pif name when deleting its bridge so far.
+                pName = "undefined";
+                vNetId = oldStyleBrNameMatcher.group(1);
+            } else if (brNameMatcher.find()) {
+                if (brNameMatcher.group(1) != null || !brNameMatcher.group(1).isEmpty()) {
+                    pName = brNameMatcher.group(1);
+                } else {
+                    pName = "undefined";
+                }
+                vNetId = brNameMatcher.group(2);
+            }
+
+            if (vNetId == null || vNetId.isEmpty()) {
+                s_logger.debug("unable to get a vNet ID from name " + brName);
+                return;
+            }
+
+            String scriptPath = null;
+            if (cmdout != null && cmdout.contains("vxlan")) {
+                scriptPath = _modifyVxlanPath;
+            } else {
+                scriptPath = _modifyVlanPath;
+            }
+
+            final Script command = new Script(scriptPath, _timeout, s_logger);
+            command.add("-o", "delete");
+            command.add("-v", vNetId);
+            command.add("-p", pName);
+            command.add("-b", brName);
+
+            final String result = command.execute();
+            if (result != null) {
+                s_logger.debug("Delete bridge " + brName + " failed: " + result);
+            }
+        }
+    }
+
+    private void deleteExitingLinkLocalRouteTable(String linkLocalBr) {
+        Script command = new Script("/bin/bash", _timeout);
+        command.add("-c");
+        command.add("ip route | grep " + NetUtils.getLinkLocalCIDR());
+        OutputInterpreter.AllLinesParser parser = new OutputInterpreter.AllLinesParser();
+        String result = command.execute(parser);
+        boolean foundLinkLocalBr = false;
+        if (result == null && parser.getLines() != null) {
+            String[] lines = parser.getLines().split("\\n");
+            for (String line : lines) {
+                String[] tokens = line.split(" ");
+                if (!tokens[2].equalsIgnoreCase(linkLocalBr)) {
+                    Script.runSimpleBashScript("ip route del " + NetUtils.getLinkLocalCIDR());
+                } else {
+                    foundLinkLocalBr = true;
+                }
+            }
+        }
+        if (!foundLinkLocalBr) {
+            Script.runSimpleBashScript("ifconfig " + linkLocalBr + " 169.254.0.1;" + "ip route add " + NetUtils.getLinkLocalCIDR() + " dev " + linkLocalBr + " src " +
+                NetUtils.getLinkLocalGateway());
+        }
+    }
+
+    private void createControlNetwork(String privBrName) {
+        deleteExitingLinkLocalRouteTable(privBrName);
+        if (!isBridgeExists(privBrName)) {
+            Script.runSimpleBashScript("brctl addbr " + privBrName + "; ifconfig " + privBrName + " up; ifconfig " + privBrName + " 169.254.0.1", _timeout);
+        }
+    }
+
+    private boolean isBridgeExists(String bridgeName) {
+        File f = new File("/sys/devices/virtual/net/" + bridgeName);
+        if (f.exists()) {
+            return true;
+        } else {
+            return false;
+        }
+    }
+}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/pom.xml b/plugins/network-elements/bigswitch-vns/pom.xml
deleted file mode 100644
index afb267c..0000000
--- a/plugins/network-elements/bigswitch-vns/pom.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--
-  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.
--->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-  <modelVersion>4.0.0</modelVersion>
-  <artifactId>cloud-plugin-network-vns</artifactId>
-  <name>Apache CloudStack Plugin - BigSwitch Virtual Network Segment</name>
-  <parent>
-    <groupId>org.apache.cloudstack</groupId>
-    <artifactId>cloudstack-plugins</artifactId>
-    <version>4.6.0-SNAPSHOT</version>
-    <relativePath>../../pom.xml</relativePath>
-  </parent>
-</project>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/resources/META-INF/cloudstack/vns/module.properties
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/resources/META-INF/cloudstack/vns/module.properties b/plugins/network-elements/bigswitch-vns/resources/META-INF/cloudstack/vns/module.properties
deleted file mode 100644
index 5783d38..0000000
--- a/plugins/network-elements/bigswitch-vns/resources/META-INF/cloudstack/vns/module.properties
+++ /dev/null
@@ -1,18 +0,0 @@
-# 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.
-name=vns
-parent=network
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/resources/META-INF/cloudstack/vns/spring-vns-context.xml
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/resources/META-INF/cloudstack/vns/spring-vns-context.xml b/plugins/network-elements/bigswitch-vns/resources/META-INF/cloudstack/vns/spring-vns-context.xml
deleted file mode 100644
index d5bb92a..0000000
--- a/plugins/network-elements/bigswitch-vns/resources/META-INF/cloudstack/vns/spring-vns-context.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--
-  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.
--->
-<beans xmlns="http://www.springframework.org/schema/beans"
-       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-       xmlns:context="http://www.springframework.org/schema/context"
-       xmlns:aop="http://www.springframework.org/schema/aop"
-       xsi:schemaLocation="http://www.springframework.org/schema/beans
-                      http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
-                      http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd
-                      http://www.springframework.org/schema/context
-                      http://www.springframework.org/schema/context/spring-context-3.0.xsd"
-                      >
-
-    <bean id="bigSwitchVnsDaoImpl" class="com.cloud.network.dao.BigSwitchVnsDaoImpl" />
-    <bean id="bigSwitchVnsElement" class="com.cloud.network.element.BigSwitchVnsElement">
-        <property name="name" value="BigSwitchVnsElement" />
-    </bean>
-
-
-</beans>

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsNetworkAnswer.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsNetworkAnswer.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsNetworkAnswer.java
deleted file mode 100644
index e950abe..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsNetworkAnswer.java
+++ /dev/null
@@ -1,28 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class CreateVnsNetworkAnswer extends Answer {
-
-    public CreateVnsNetworkAnswer(Command command, boolean success, String details) {
-        super(command, success, details);
-    }
-
-    public CreateVnsNetworkAnswer(Command command, Exception e) {
-        super(command, e);
-    }
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsNetworkCommand.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsNetworkCommand.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsNetworkCommand.java
deleted file mode 100644
index 534bb7f..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsNetworkCommand.java
+++ /dev/null
@@ -1,52 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class CreateVnsNetworkCommand extends Command {
-    private String _networkUuid;
-    private String _name;
-    private String _tenantUuid;
-    private int _vlan;
-
-    public CreateVnsNetworkCommand(String networkUuid, String name, String tenantUuid, int vlan) {
-        this._networkUuid = networkUuid;
-        this._name = name;
-        this._tenantUuid = tenantUuid;
-        this._vlan = vlan;
-    }
-
-    @Override
-    public boolean executeInSequence() {
-        return false;
-    }
-
-    public String getNetworkUuid() {
-        return _networkUuid;
-    }
-
-    public String getName() {
-        return _name;
-    }
-
-    public String getTenantUuid() {
-        return _tenantUuid;
-    }
-
-    public int getVlan() {
-        return _vlan;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsPortAnswer.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsPortAnswer.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsPortAnswer.java
deleted file mode 100644
index 82c2fe9..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsPortAnswer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class CreateVnsPortAnswer extends Answer {
-
-    public CreateVnsPortAnswer(Command command, boolean success, String details) {
-        super(command, success, details);
-    }
-
-    public CreateVnsPortAnswer(Command command, Exception e) {
-        super(command, e);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsPortCommand.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsPortCommand.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsPortCommand.java
deleted file mode 100644
index c3b9a9d..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/CreateVnsPortCommand.java
+++ /dev/null
@@ -1,59 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class CreateVnsPortCommand extends Command {
-    private String _networkUuid;
-    private String _portUuid;
-    private String _tenantUuid;
-    private String _portName;
-    private String _mac;
-
-    public CreateVnsPortCommand(String networkUuid, String portUuid, String tenantUuid, String portName, String mac) {
-        this._networkUuid = networkUuid;
-        this._portUuid = portUuid;
-        this._tenantUuid = tenantUuid;
-        this._portName = portName;
-        this._mac = mac;
-    }
-
-    public String getNetworkUuid() {
-        return _networkUuid;
-    }
-
-    public String getPortUuid() {
-        return _portUuid;
-    }
-
-    public String getTenantUuid() {
-        return _tenantUuid;
-    }
-
-    public String getPortName() {
-        return _portName;
-    }
-
-    public String getMac() {
-        return _mac;
-    }
-
-    @Override
-    public boolean executeInSequence() {
-        return false;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsNetworkAnswer.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsNetworkAnswer.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsNetworkAnswer.java
deleted file mode 100644
index 72ac98a..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsNetworkAnswer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class DeleteVnsNetworkAnswer extends Answer {
-
-    public DeleteVnsNetworkAnswer(Command command, boolean success, String details) {
-        super(command, success, details);
-    }
-
-    public DeleteVnsNetworkAnswer(Command command, Exception e) {
-        super(command, e);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsNetworkCommand.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsNetworkCommand.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsNetworkCommand.java
deleted file mode 100644
index 6cf169b..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsNetworkCommand.java
+++ /dev/null
@@ -1,41 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class DeleteVnsNetworkCommand extends Command {
-
-    private String _tenantUuid;
-    private String _networkUuid;
-
-    public DeleteVnsNetworkCommand(String tenantUuid, String networkUuid) {
-        this._tenantUuid = tenantUuid;
-        this._networkUuid = networkUuid;
-    }
-
-    @Override
-    public boolean executeInSequence() {
-        return false;
-    }
-
-    public String get_tenantUuid() {
-        return _tenantUuid;
-    }
-
-    public String getNetworkUuid() {
-        return _networkUuid;
-    }
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsPortAnswer.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsPortAnswer.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsPortAnswer.java
deleted file mode 100644
index 076b187..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsPortAnswer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class DeleteVnsPortAnswer extends Answer {
-
-    public DeleteVnsPortAnswer(Command command, boolean success, String details) {
-        super(command, success, details);
-    }
-
-    public DeleteVnsPortAnswer(Command command, Exception e) {
-        super(command, e);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsPortCommand.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsPortCommand.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsPortCommand.java
deleted file mode 100644
index 0cae01d..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/DeleteVnsPortCommand.java
+++ /dev/null
@@ -1,48 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class DeleteVnsPortCommand extends Command {
-
-    private String _networkUuid;
-    private String _portUuid;
-    private String _tenantUuid;
-
-    public DeleteVnsPortCommand(String networkUuid, String portUuid, String tenantUuid) {
-        this._networkUuid = networkUuid;
-        this._portUuid = portUuid;
-        this._tenantUuid = tenantUuid;
-    }
-
-    public String getNetworkUuid() {
-        return _networkUuid;
-    }
-
-    public String getPortUuid() {
-        return _portUuid;
-    }
-
-    public String getTenantUuid() {
-        return _tenantUuid;
-    }
-
-    @Override
-    public boolean executeInSequence() {
-        return false;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/StartupBigSwitchVnsCommand.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/StartupBigSwitchVnsCommand.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/StartupBigSwitchVnsCommand.java
deleted file mode 100644
index 8310b07..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/StartupBigSwitchVnsCommand.java
+++ /dev/null
@@ -1,27 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-import com.cloud.host.Host;
-
-public class StartupBigSwitchVnsCommand extends StartupCommand {
-
-    public StartupBigSwitchVnsCommand() {
-        super(Host.Type.L2Networking);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdateVnsPortAnswer.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdateVnsPortAnswer.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdateVnsPortAnswer.java
deleted file mode 100644
index 39cd266..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdateVnsPortAnswer.java
+++ /dev/null
@@ -1,29 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class UpdateVnsPortAnswer extends Answer {
-
-    public UpdateVnsPortAnswer(Command command, boolean success, String details) {
-        super(command, success, details);
-    }
-
-    public UpdateVnsPortAnswer(Command command, Exception e) {
-        super(command, e);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdateVnsPortCommand.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdateVnsPortCommand.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdateVnsPortCommand.java
deleted file mode 100644
index 40f0920..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/agent/api/UpdateVnsPortCommand.java
+++ /dev/null
@@ -1,53 +0,0 @@
-// 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.
-package com.cloud.agent.api;
-
-public class UpdateVnsPortCommand extends Command {
-    private String _networkUuid;
-    private String _portUuid;
-    private String _tenantUuid;
-    private String _portName;
-
-    public UpdateVnsPortCommand(String networkUuid, String portUuid, String tenantUuid, String portName) {
-        this._networkUuid = networkUuid;
-        this._portUuid = portUuid;
-        this._tenantUuid = tenantUuid;
-        this._portName = portName;
-    }
-
-    public String getNetworkUuid() {
-        return _networkUuid;
-    }
-
-    public String getPortUuid() {
-        return _portUuid;
-    }
-
-    public String getTenantUuid() {
-        return _tenantUuid;
-    }
-
-    public String getPortName() {
-        return _portName;
-    }
-
-    @Override
-    public boolean executeInSequence() {
-        return false;
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSwitchVnsDeviceCmd.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSwitchVnsDeviceCmd.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSwitchVnsDeviceCmd.java
deleted file mode 100644
index 5c6f555..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/AddBigSwitchVnsDeviceCmd.java
+++ /dev/null
@@ -1,116 +0,0 @@
-// 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.
-package com.cloud.api.commands;
-
-import javax.inject.Inject;
-
-import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiConstants;
-import org.apache.cloudstack.api.ApiErrorCode;
-import org.apache.cloudstack.api.BaseAsyncCmd;
-import org.apache.cloudstack.api.Parameter;
-import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.api.response.PhysicalNetworkResponse;
-import org.apache.cloudstack.context.CallContext;
-
-import com.cloud.api.response.BigSwitchVnsDeviceResponse;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.network.BigSwitchVnsDeviceVO;
-import com.cloud.network.element.BigSwitchVnsElementService;
-import com.cloud.utils.exception.CloudRuntimeException;
-
-@APICommand(name = "addBigSwitchVnsDevice", responseObject = BigSwitchVnsDeviceResponse.class, description = "Adds a BigSwitch VNS device", since = "4.1.0",
-        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
-public class AddBigSwitchVnsDeviceCmd extends BaseAsyncCmd {
-    private static final String s_name = "addbigswitchvnsdeviceresponse";
-    @Inject
-    BigSwitchVnsElementService _bigswitchVnsElementService;
-
-    /////////////////////////////////////////////////////
-    //////////////// API parameters /////////////////////
-    /////////////////////////////////////////////////////
-
-    @Parameter(name = ApiConstants.PHYSICAL_NETWORK_ID,
-               type = CommandType.UUID,
-               entityType = PhysicalNetworkResponse.class,
-               required = true,
-               description = "the Physical Network ID")
-    private Long physicalNetworkId;
-
-    @Parameter(name = ApiConstants.HOST_NAME, type = CommandType.STRING, required = true, description = "Hostname of ip address of the BigSwitch VNS Controller.")
-    private String host;
-
-    /////////////////////////////////////////////////////
-    /////////////////// Accessors ///////////////////////
-    /////////////////////////////////////////////////////
-
-    public Long getPhysicalNetworkId() {
-        return physicalNetworkId;
-    }
-
-    public String getHost() {
-        return host;
-    }
-
-    /////////////////////////////////////////////////////
-    /////////////// API Implementation///////////////////
-    /////////////////////////////////////////////////////
-
-    @Override
-    public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
-        ResourceAllocationException {
-        try {
-            BigSwitchVnsDeviceVO bigswitchVnsDeviceVO = _bigswitchVnsElementService.addBigSwitchVnsDevice(this);
-            if (bigswitchVnsDeviceVO != null) {
-                BigSwitchVnsDeviceResponse response = _bigswitchVnsElementService.createBigSwitchVnsDeviceResponse(bigswitchVnsDeviceVO);
-                response.setObjectName("bigswitchvnsdevice");
-                response.setResponseName(getCommandName());
-                this.setResponseObject(response);
-            } else {
-                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add BigSwitch VNS device due to internal error.");
-            }
-        } catch (InvalidParameterValueException invalidParamExcp) {
-            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, invalidParamExcp.getMessage());
-        } catch (CloudRuntimeException runtimeExcp) {
-            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, runtimeExcp.getMessage());
-        }
-    }
-
-    @Override
-    public String getCommandName() {
-        return s_name;
-    }
-
-    @Override
-    public long getEntityOwnerId() {
-        return CallContext.current().getCallingAccount().getId();
-    }
-
-    @Override
-    public String getEventType() {
-        return VnsConstants.EVENT_EXTERNAL_VNS_CONTROLLER_ADD;
-    }
-
-    @Override
-    public String getEventDescription() {
-        return "Adding a BigSwitch VNS Controller";
-    }
-}

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/01864ef7/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBigSwitchVnsDeviceCmd.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBigSwitchVnsDeviceCmd.java b/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBigSwitchVnsDeviceCmd.java
deleted file mode 100644
index 1e2155d..0000000
--- a/plugins/network-elements/bigswitch-vns/src/com/cloud/api/commands/DeleteBigSwitchVnsDeviceCmd.java
+++ /dev/null
@@ -1,107 +0,0 @@
-// 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.
-package com.cloud.api.commands;
-
-import javax.inject.Inject;
-
-import org.apache.cloudstack.api.APICommand;
-import org.apache.cloudstack.api.ApiErrorCode;
-import org.apache.cloudstack.api.BaseAsyncCmd;
-import org.apache.cloudstack.api.Parameter;
-import org.apache.cloudstack.api.ServerApiException;
-import org.apache.cloudstack.api.response.SuccessResponse;
-import org.apache.cloudstack.context.CallContext;
-
-import com.cloud.api.response.BigSwitchVnsDeviceResponse;
-import com.cloud.exception.ConcurrentOperationException;
-import com.cloud.exception.InsufficientCapacityException;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.exception.ResourceAllocationException;
-import com.cloud.exception.ResourceUnavailableException;
-import com.cloud.network.element.BigSwitchVnsElementService;
-import com.cloud.utils.exception.CloudRuntimeException;
-
-@APICommand(name = "deleteBigSwitchVnsDevice", responseObject = SuccessResponse.class, description = " delete a bigswitch vns device", since = "4.1.0",
-        requestHasSensitiveInfo = false, responseHasSensitiveInfo = false)
-public class DeleteBigSwitchVnsDeviceCmd extends BaseAsyncCmd {
-    private static final String s_name = "deletebigswitchvnsdeviceresponse";
-    @Inject
-    BigSwitchVnsElementService _bigswitchVnsElementService;
-
-    /////////////////////////////////////////////////////
-    //////////////// API parameters /////////////////////
-    /////////////////////////////////////////////////////
-
-    @Parameter(name = VnsConstants.BIGSWITCH_VNS_DEVICE_ID,
-               type = CommandType.UUID,
-               entityType = BigSwitchVnsDeviceResponse.class,
-               required = true,
-               description = "BigSwitch device ID")
-    private Long bigswitchVnsDeviceId;
-
-    /////////////////////////////////////////////////////
-    /////////////////// Accessors ///////////////////////
-    /////////////////////////////////////////////////////
-
-    public Long getBigSwitchVnsDeviceId() {
-        return bigswitchVnsDeviceId;
-    }
-
-    /////////////////////////////////////////////////////
-    /////////////// API Implementation///////////////////
-    /////////////////////////////////////////////////////
-
-    @Override
-    public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException,
-        ResourceAllocationException {
-        try {
-            boolean result = _bigswitchVnsElementService.deleteBigSwitchVnsDevice(this);
-            if (result) {
-                SuccessResponse response = new SuccessResponse(getCommandName());
-                response.setResponseName(getCommandName());
-                this.setResponseObject(response);
-            } else {
-                throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete BigSwitch device.");
-            }
-        } catch (InvalidParameterValueException invalidParamExcp) {
-            throw new ServerApiException(ApiErrorCode.PARAM_ERROR, invalidParamExcp.getMessage());
-        } catch (CloudRuntimeException runtimeExcp) {
-            throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, runtimeExcp.getMessage());
-        }
-    }
-
-    @Override
-    public String getCommandName() {
-        return s_name;
-    }
-
-    @Override
-    public long getEntityOwnerId() {
-        return CallContext.current().getCallingAccount().getId();
-    }
-
-    @Override
-    public String getEventType() {
-        return VnsConstants.EVENT_EXTERNAL_VNS_CONTROLLER_DELETE;
-    }
-
-    @Override
-    public String getEventDescription() {
-        return "Deleting BigSwitch Vns Controller";
-    }
-
-}


Mime
View raw message