Skip to content

Commit b8ec70b

Browse files
authored
Netris pass v6 gateway (apache#87)
* pass v6 gateway to netris * pass v6 gateway to netris * refactor to address comments * remove imports
1 parent 1124b07 commit b8ec70b

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

plugins/network-elements/netris/src/main/java/org/apache/cloudstack/service/NetrisApiClientImpl.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1825,7 +1825,7 @@ private InlineResponse2004Data updateIpamSubnetInternal(Integer netrisSubnetId,
18251825
}
18261826
}
18271827

1828-
VnetResAddBody createVnetInternal(VPCListing associatedVpc, String netrisVnetName, String netrisGateway, String netrisV6Gateway, Integer vxlanId, String netrisTag) {
1828+
VnetResAddBody createVnetInternal(VPCListing associatedVpc, String netrisVnetName, String netrisGateway, String netrisV6Cidr, Integer vxlanId, String netrisTag) {
18291829
logger.debug("Creating Netris VPC vNet {} for CIDR {}", netrisVnetName, netrisGateway);
18301830
try {
18311831
VnetAddBody vnetBody = new VnetAddBody();
@@ -1843,9 +1843,9 @@ VnetResAddBody createVnetInternal(VPCListing associatedVpc, String netrisVnetNam
18431843
List<VnetAddBodyGateways> gatewaysList = new ArrayList<>();
18441844
gatewaysList.add(gatewayV4);
18451845

1846-
if (Objects.nonNull(netrisV6Gateway)) {
1846+
if (Objects.nonNull(netrisV6Cidr)) {
18471847
VnetAddBodyGateways gatewayV6 = new VnetAddBodyGateways();
1848-
gatewayV6.prefix(netrisV6Gateway);
1848+
gatewayV6.prefix(NetUtils.getIpv6Gateway(netrisV6Cidr));
18491849
gatewayV6.setDhcpEnabled(false);
18501850
gatewayV6.setDhcp(dhcp);
18511851
gatewaysList.add(gatewayV6);
@@ -1894,6 +1894,8 @@ VnetResAddBody createVnetInternal(VPCListing associatedVpc, String netrisVnetNam
18941894
}
18951895
}
18961896

1897+
1898+
18971899
private String getNetrisVpcNameSuffix(Long vpcId, String vpcName, Long networkId, String networkName, boolean isVpc) {
18981900
String suffix = null;
18991901
if (isVpc) {

utils/src/main/java/com/cloud/utils/net/NetUtils.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1897,4 +1897,11 @@ public static String transformCidr(final String cidr) {
18971897
final long start = (ip & startNetMask);
18981898
return String.format("%s/%s", long2Ip(start), size);
18991899
}
1900+
1901+
public static String getIpv6Gateway(String ipv6Cidr) {
1902+
IPv6Network network = IPv6Network.fromString(ipv6Cidr);
1903+
IPv6Address netrisV6Gateway = network.getFirst().add(1);
1904+
String netmask = network.getNetmask().toString();
1905+
return netrisV6Gateway.toString() + "/" + netmask;
1906+
}
19001907
}

0 commit comments

Comments
 (0)