Skip to content

Commit 736b236

Browse files
kjiangMurali Reddy
authored andcommitted
bigswitch controller support
Reviewed-by: Chiradeep Vittal <chiradeepv@gmail.com> Signed-off-by: Murali Reddy <murali.reddy@citrix.com>
1 parent 2491ff1 commit 736b236

44 files changed

Lines changed: 3300 additions & 3 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

api/src/com/cloud/network/PhysicalNetwork.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,8 @@ public enum IsolationMethod {
3535
VLAN,
3636
L3,
3737
GRE,
38-
STT;
38+
STT,
39+
VNS;
3940
}
4041

4142
public enum BroadcastDomainRange {

client/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@
7575
<artifactId>cloud-plugin-network-elb</artifactId>
7676
<version>${project.version}</version>
7777
</dependency>
78+
<dependency>
79+
<groupId>org.apache.cloudstack</groupId>
80+
<artifactId>cloud-plugin-network-vns</artifactId>
81+
<version>${project.version}</version>
82+
</dependency>
7883
<dependency>
7984
<groupId>org.apache.cloudstack</groupId>
8085
<artifactId>cloud-plugin-hypervisor-xen</artifactId>

client/tomcatconf/commands.properties.in

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -513,6 +513,12 @@ listNiciraNvpDeviceNetworks=1
513513
# Not implemented (yet)
514514
#configureNiciraNvpDevice=1
515515

516+
#### bigswitch vns commands
517+
518+
addBigSwitchVnsDevice=1
519+
deleteBigSwitchVnsDevice=1
520+
listBigSwitchVnsDevices=1
521+
516522
#### host simulator commands
517523

518524
configureSimulator=1

client/tomcatconf/components.xml.in

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,7 @@ under the License.
106106
<adapter name="OvsGuestNetworkGuru" class="com.cloud.network.guru.OvsGuestNetworkGuru"/>
107107
<adapter name="PrivateNetworkGuru" class="com.cloud.network.guru.PrivateNetworkGuru"/>
108108
<adapter name="NiciraNvpGuestNetworkGuru" class="com.cloud.network.guru.NiciraNvpGuestNetworkGuru"/>
109+
<adapter name="BigSwitchVnsGuestNetworkGuru" class="com.cloud.network.guru.BigSwitchVnsGuestNetworkGuru"/>
109110
</adapters>
110111
<adapters key="com.cloud.cluster.ClusterServiceAdapter">
111112
<adapter name="ClusterService" class="com.cloud.cluster.ClusterServiceServletAdapter"/>
@@ -166,6 +167,7 @@ under the License.
166167
<adapter name="SecurityGroupProvider" class="com.cloud.network.element.SecurityGroupElement"/>
167168
<adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
168169
<adapter name="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"/>
170+
<adapter name="BigSwitchVns" class="com.cloud.network.element.BigSwitchVnsElement"/>
169171
</adapters>
170172
<adapters key="com.cloud.network.element.FirewallServiceProvider">
171173
<adapter name="VirtualRouter" class="com.cloud.network.element.VirtualRouterElement"/>
@@ -212,6 +214,7 @@ under the License.
212214
</adapters>
213215
<adapters key="com.cloud.network.element.ConnectivityProvider">
214216
<adapter name="NiciraNvp" class="com.cloud.network.element.NiciraNvpElement"/>
217+
<adapter name="BigSwitchVns" class="com.cloud.network.element.BigSwitchVnsElement"/>
215218
</adapters>
216219
<adapters key="com.cloud.network.element.NetworkACLServiceProvider">
217220
<adapter name="VpcVirtualRouter" class="com.cloud.network.element.VpcVirtualRouterElement"/>
@@ -239,12 +242,14 @@ under the License.
239242
<pluggableservice name="VirtualRouterElementService" key="com.cloud.network.element.VirtualRouterElementService" class="com.cloud.network.element.VirtualRouterElement"/>
240243
<pluggableservice name="NiciraNvpElementService" key="com.cloud.network.element.NiciraNvpElementService" class="com.cloud.network.element.NiciraNvpElement"/>
241244
<pluggableservice name="ApiRateLimitService" key="org.apache.cloudstack.ratelimit.ApiRateLimitService" class="org.apache.cloudstack.ratelimit.ApiRateLimitServiceImpl"/>
245+
<pluggableservice name="BigSwitchVnsElementService" key="com.cloud.network.element.BigSwitchVnsElementService" class="com.cloud.network.element.BigSwitchVnsElement"/>
242246
<dao name="OvsTunnelInterfaceDao" class="com.cloud.network.ovs.dao.OvsTunnelInterfaceDaoImpl" singleton="false"/>
243247
<dao name="OvsTunnelAccountDao" class="com.cloud.network.ovs.dao.OvsTunnelNetworkDaoImpl" singleton="false"/>
244248
<dao name="NiciraNvpDao" class="com.cloud.network.dao.NiciraNvpDaoImpl" singleton="false"/>
245249
<dao name="NiciraNvpNicMappingDao" class="com.cloud.network.dao.NiciraNvpNicMappingDaoImpl" singleton="false"/>
246250
<dao name="NiciraNvpRouterMappingDao" class="com.cloud.network.dao.NiciraNvpRouterMappingDaoImpl" singleton="false"/>
247251
<dao name="ElasticLbVmMapDao" class="com.cloud.network.lb.dao.ElasticLbVmMapDaoImpl" singleton="false"/>
252+
<dao name="BigSwitchVnsDao" class="com.cloud.network.dao.BigSwitchVnsDaoImpl" singleton="false"/>
248253
</management-server>
249254

250255
<configuration-server class="com.cloud.server.ConfigurationServerImpl">

cloud.spec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -448,6 +448,7 @@ fi
448448
%{_javadir}/%{name}-plugin-hypervisor-xen.jar
449449
%{_javadir}/%{name}-plugin-elb.jar
450450
%{_javadir}/%{name}-plugin-nicira-nvp.jar
451+
%{_javadir}/%{name}-plugin-bigswitch-vns.jar
451452
%config(noreplace) %{_sysconfdir}/%{name}/server/*
452453
%doc LICENSE
453454
%doc NOTICE

debian/cloud-server.install

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
/usr/share/java/cloud-plugin-elb.jar
2525
/usr/share/java/cloud-plugin-ovs.jar
2626
/usr/share/java/cloud-plugin-nicira-nvp.jar
27+
/usr/share/java/cloud-plugin-bigswitch-vns.jar
2728
/usr/share/java/cloud-storage-allocator-random.jar
2829
/usr/share/java/cloud-user-authenticator-ldap.jar
2930
/usr/share/java/cloud-user-authenticator-md5.jar

docs/en-US/Release_Notes.xml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1291,6 +1291,15 @@ Done restarting router(s).
12911291
appropriate calls to the Nicira NVP Controller. The plug-in has been tested with Nicira
12921292
NVP versions 2.1.0, 2.2.0 and 2.2.1.</para>
12931293
</section>
1294+
<section id="bigswitch-vns-plugin">
1295+
<title>The BigSwitch Controller Plugin</title>
1296+
<para>The BigSwitch Controller plug-in adds OpenFlow based solution for network virtualization
1297+
to CloudStack. The plugin supports both BigSwitch commercial controller and the opensource
1298+
Floodlight controller. The plugin functions as a provider for CloudStack networks and Connectivity
1299+
service. This service is responsible for creating Layer 2 networks supporting the networks
1300+
created by guests. When a tenant creates a new network, a virutal network segment will be
1301+
created by sending the appropriate calls to the BigSwitch Controller.</para>
1302+
</section>
12941303
<section id="castor-support">
12951304
<title>Support for CAStor Cluster</title>
12961305
<para>CloudStack 4.0.0-incubating supports using a CAStor cluster as the back-end storage
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<!--
2+
Licensed to the Apache Software Foundation (ASF) under one
3+
or more contributor license agreements. See the NOTICE file
4+
distributed with this work for additional information
5+
regarding copyright ownership. The ASF licenses this file
6+
to you under the Apache License, Version 2.0 (the
7+
"License"); you may not use this file except in compliance
8+
with the License. You may obtain a copy of the License at
9+
10+
http://www.apache.org/licenses/LICENSE-2.0
11+
12+
Unless required by applicable law or agreed to in writing,
13+
software distributed under the License is distributed on an
14+
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15+
KIND, either express or implied. See the License for the
16+
specific language governing permissions and limitations
17+
under the License.
18+
-->
19+
<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">
20+
<modelVersion>4.0.0</modelVersion>
21+
<artifactId>cloud-plugin-network-vns</artifactId>
22+
<name>Apache CloudStack Plugin - BigSwitch Virtual Network Segment</name>
23+
<parent>
24+
<groupId>org.apache.cloudstack</groupId>
25+
<artifactId>cloudstack-plugins</artifactId>
26+
<version>4.1.0-SNAPSHOT</version>
27+
<relativePath>../../pom.xml</relativePath>
28+
</parent>
29+
</project>
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
package com.cloud.agent.api;
18+
19+
public class CreateVnsNetworkAnswer extends Answer {
20+
21+
public CreateVnsNetworkAnswer(Command command, boolean success, String details) {
22+
super(command, success, details);
23+
}
24+
25+
public CreateVnsNetworkAnswer(Command command, Exception e) {
26+
super(command, e);
27+
}
28+
}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// Licensed to the Apache Software Foundation (ASF) under one
2+
// or more contributor license agreements. See the NOTICE file
3+
// distributed with this work for additional information
4+
// regarding copyright ownership. The ASF licenses this file
5+
// to you under the Apache License, Version 2.0 (the
6+
// "License"); you may not use this file except in compliance
7+
// with the License. You may obtain a copy of the License at
8+
//
9+
// http://www.apache.org/licenses/LICENSE-2.0
10+
//
11+
// Unless required by applicable law or agreed to in writing,
12+
// software distributed under the License is distributed on an
13+
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14+
// KIND, either express or implied. See the License for the
15+
// specific language governing permissions and limitations
16+
// under the License.
17+
package com.cloud.agent.api;
18+
19+
public class CreateVnsNetworkCommand extends Command {
20+
private String _networkUuid;
21+
private String _name;
22+
private String _tenantUuid;
23+
private int _vlan;
24+
25+
public CreateVnsNetworkCommand(String networkUuid, String name, String tenantUuid, int vlan) {
26+
this._networkUuid = networkUuid;
27+
this._name = name;
28+
this._tenantUuid = tenantUuid;
29+
this._vlan = vlan;
30+
}
31+
32+
@Override
33+
public boolean executeInSequence() {
34+
return false;
35+
}
36+
37+
public String getNetworkUuid() {
38+
return _networkUuid;
39+
}
40+
41+
public String getName() {
42+
return _name;
43+
}
44+
45+
public String getTenantUuid() {
46+
return _tenantUuid;
47+
}
48+
49+
public int getVlan() {
50+
return _vlan;
51+
}
52+
}

0 commit comments

Comments
 (0)