Change-Id: I5a300a4dd192a97250054416a25d65794799677b
Signed-off-by: David Goldberg <gdavid@hpe.com>
augment "/mef-services:mef-services/mef-services:mef-service/mef-services:mef-service-choice/mef-services:ipvc-choice/mef-services:ipvc" {
ext:augment-identifier "ipvc-vpn";
leaf vpn-id {type string;}
augment "/mef-services:mef-services/mef-services:mef-service/mef-services:mef-service-choice/mef-services:ipvc-choice/mef-services:ipvc" {
ext:augment-identifier "ipvc-vpn";
leaf vpn-id {type string;}
+ leaf vrf-id {type string;}
list vpn-elans {
key "uni-id ip-uni-id";
leaf uni-id {type mef-types:identifier45;}
list vpn-elans {
key "uni-id ip-uni-id";
leaf uni-id {type mef-types:identifier45;}
@Override
public void connectUni(String uniId) {
List<RetailSvcIdType> allIpvcs = MefServicesUtils.getAllIpvcsServiceIds(dataBroker);
@Override
public void connectUni(String uniId) {
List<RetailSvcIdType> allIpvcs = MefServicesUtils.getAllIpvcsServiceIds(dataBroker);
- allIpvcs = (allIpvcs != null) ? allIpvcs : Collections.emptyList();
+ allIpvcs = allIpvcs != null ? allIpvcs : Collections.emptyList();
for (RetailSvcIdType ipvcSerId : allIpvcs) {
InstanceIdentifier<Ipvc> ipvcId = MefServicesUtils.getIpvcInstanceIdentifier(ipvcSerId);
for (RetailSvcIdType ipvcSerId : allIpvcs) {
InstanceIdentifier<Ipvc> ipvcId = MefServicesUtils.getIpvcInstanceIdentifier(ipvcSerId);
}
List<Uni> toConnect = new ArrayList<>();
}
List<Uni> toConnect = new ArrayList<>();
- List<Uni> unis = (ipvc.getUnis() != null) ? ipvc.getUnis().getUni() : null;
- unis = (unis != null) ? unis : Collections.emptyList();
+ List<Uni> unis = ipvc.getUnis() != null ? ipvc.getUnis().getUni() : null;
+ unis = unis != null ? unis : Collections.emptyList();
for (Uni uni : unis) {
if (uni.getUniId().getValue().equals(uniId)) {
Log.info("Connecting Uni {} to svc id {}", uniId, ipvcSerId);
for (Uni uni : unis) {
if (uni.getUniId().getValue().equals(uniId)) {
Log.info("Connecting Uni {} to svc id {}", uniId, ipvcSerId);
public void disconnectUni(String uniId) {
List<RetailSvcIdType> allIpvcs = MefServicesUtils.getAllIpvcsServiceIds(dataBroker);
public void disconnectUni(String uniId) {
List<RetailSvcIdType> allIpvcs = MefServicesUtils.getAllIpvcsServiceIds(dataBroker);
- allIpvcs = (allIpvcs != null) ? allIpvcs : Collections.emptyList();
+ allIpvcs = allIpvcs != null ? allIpvcs : Collections.emptyList();
for (RetailSvcIdType ipvcSerId : allIpvcs) {
InstanceIdentifier<Ipvc> ipvcId = MefServicesUtils.getIpvcInstanceIdentifier(ipvcSerId);
for (RetailSvcIdType ipvcSerId : allIpvcs) {
InstanceIdentifier<Ipvc> ipvcId = MefServicesUtils.getIpvcInstanceIdentifier(ipvcSerId);
}
List<Uni> toRemove = new ArrayList<>();
}
List<Uni> toRemove = new ArrayList<>();
- List<Uni> unis = (ipvc.getUnis() != null) ? ipvc.getUnis().getUni() : null;
- unis = (unis != null) ? unis : Collections.emptyList();
+ List<Uni> unis = ipvc.getUnis() != null ? ipvc.getUnis().getUni() : null;
+ unis = unis != null ? unis : Collections.emptyList();
for (Uni uni : unis) {
if (uni.getUniId().getValue().equals(uniId)) {
Log.info("Disconnecting Uni {} from svc id {}", uniId, ipvcSerId);
for (Uni uni : unis) {
if (uni.getUniId().getValue().equals(uniId)) {
Log.info("Disconnecting Uni {} from svc id {}", uniId, ipvcSerId);
createVpnInstance(vpnName, ipvcId);
String rd = waitForRd(vpnName);
createVpnInstance(vpnName, ipvcId);
String rd = waitForRd(vpnName);
+ updateOperationalDataStoreWithVrfId(ipvcId, vpnName, rd);
+
List<Uni> unis = new ArrayList<>();
if (ipvc.getUnis() != null && ipvc.getUnis() != null) {
unis = ipvc.getUnis().getUni();
List<Uni> unis = new ArrayList<>();
if (ipvc.getUnis() != null && ipvc.getUnis() != null) {
unis = ipvc.getUnis().getUni();
+ private void updateOperationalDataStoreWithVrfId(InstanceIdentifier<Ipvc> ipvcId, String vpnName, String vrfId) {
+ WriteTransaction tx = MdsalUtils.createTransaction(dataBroker);
+ MefServicesUtils.addOperIpvcVpnElan(ipvcId, vpnName, vrfId, tx);
+ MdsalUtils.commitTransaction(tx);
+ }
+
private void createVpnInstance(final String vpnName, InstanceIdentifier<Ipvc> ipvcId) {
synchronized (vpnName.intern()) {
WriteTransaction tx = MdsalUtils.createTransaction(dataBroker);
private void createVpnInstance(final String vpnName, InstanceIdentifier<Ipvc> ipvcId) {
synchronized (vpnName.intern()) {
WriteTransaction tx = MdsalUtils.createTransaction(dataBroker);
return;
}
String vpnName = operIpvcVpn.getVpnId();
return;
}
String vpnName = operIpvcVpn.getVpnId();
- String rd = (String) waitForRd(vpnName);
+ String rd = waitForRd(vpnName);
List<Uni> originalUni = origIpvc.getUnis() != null && origIpvc.getUnis().getUni() != null
? origIpvc.getUnis().getUni() : Collections.emptyList();
List<Uni> updateUni = updateIpvc.getUnis() != null && updateIpvc.getUnis().getUni() != null
List<Uni> originalUni = origIpvc.getUnis() != null && origIpvc.getUnis().getUni() != null
? origIpvc.getUnis().getUni() : Collections.emptyList();
List<Uni> updateUni = updateIpvc.getUnis() != null && updateIpvc.getUnis().getUni() != null
private void waitForInterfaceDpn(String vpnName, String rd, String interfaceName) {
InstanceIdentifier<VpnInstanceOpDataEntry> vpnId = NetvirtVpnUtils.getVpnInstanceOpDataIdentifier(rd);
DataWaitGetter<VpnInstanceOpDataEntry> getInterfByName = (vpn) -> {
private void waitForInterfaceDpn(String vpnName, String rd, String interfaceName) {
InstanceIdentifier<VpnInstanceOpDataEntry> vpnId = NetvirtVpnUtils.getVpnInstanceOpDataIdentifier(rd);
DataWaitGetter<VpnInstanceOpDataEntry> getInterfByName = (vpn) -> {
- if (vpn.getVpnToDpnList() == null)
+ if (vpn.getVpnToDpnList() == null) {
for (VpnToDpnList is : vpn.getVpnToDpnList()) {
for (VpnToDpnList is : vpn.getVpnToDpnList()) {
- if (is.getVpnInterfaces() == null)
+ if (is.getVpnInterfaces() == null) {
for (VpnInterfaces i : is.getVpnInterfaces()) {
for (VpnInterfaces i : is.getVpnInterfaces()) {
- if (i.getInterfaceName().equals(interfaceName))
+ if (i.getInterfaceName().equals(interfaceName)) {
}
public static void addOperIpvcVpnElan(InstanceIdentifier<Ipvc> identifier, String vpnId, WriteTransaction tx) {
}
public static void addOperIpvcVpnElan(InstanceIdentifier<Ipvc> identifier, String vpnId, WriteTransaction tx) {
+ addOperIpvcVpnElan(identifier, vpnId, null, tx);
+ }
+
+ public static void addOperIpvcVpnElan(InstanceIdentifier<Ipvc> identifier, String vpnId, String vrfId, WriteTransaction tx) {
synchronized (vpnId.intern()) {
InstanceIdentifier<IpvcVpn> path = identifier.augmentation(IpvcVpn.class);
IpvcVpnBuilder ipvcVpnBuilder = new IpvcVpnBuilder();
ipvcVpnBuilder.setVpnId(vpnId);
synchronized (vpnId.intern()) {
InstanceIdentifier<IpvcVpn> path = identifier.augmentation(IpvcVpn.class);
IpvcVpnBuilder ipvcVpnBuilder = new IpvcVpnBuilder();
ipvcVpnBuilder.setVpnId(vpnId);
+ if (vrfId != null) {
+ ipvcVpnBuilder.setVrfId(vrfId);
+ }
tx.merge(LogicalDatastoreType.OPERATIONAL, path, ipvcVpnBuilder.build(), true);
}
tx.merge(LogicalDatastoreType.OPERATIONAL, path, ipvcVpnBuilder.build(), true);
}