public LabelRouteInfoBuilder(LabelRouteInfo base) { if (base.getKey() == null) { this._key = new LabelRouteInfoKey( base.getLabel() ); this._label = base.getLabel(); } else { this._key = base.getKey(); this._label = _key.getLabel(); this._dpnId = base.getDpnId(); this._elanTag = base.getElanTag(); this._nextHopIpList = base.getNextHopIpList(); this._parentVpnRd = base.getParentVpnRd(); this._parentVpnid = base.getParentVpnid(); this._prefix = base.getPrefix(); this._vpnInstanceList = base.getVpnInstanceList(); this._vpnInterfaceName = base.getVpnInterfaceName(); this._isSubnetRoute = base.isIsSubnetRoute(); if (base instanceof LabelRouteInfoImpl) { LabelRouteInfoImpl impl = (LabelRouteInfoImpl) base;
private Prefixes updateVpnReferencesInLri(LabelRouteInfo lri, String vpnInstanceName, boolean isPresentInList) { LOG.debug("updating LRI : for label {} vpninstancename {}", lri.getLabel(), vpnInstanceName); PrefixesBuilder prefixBuilder = new PrefixesBuilder(); prefixBuilder.setDpnId(lri.getDpnId()); prefixBuilder.setVpnInterfaceName(lri.getVpnInterfaceName()); prefixBuilder.setIpAddress(lri.getPrefix()); // Increment the refCount here InstanceIdentifier<LabelRouteInfo> lriId = InstanceIdentifier.builder(LabelRouteMap.class) .child(LabelRouteInfo.class, new LabelRouteInfoKey((long)lri.getLabel())).build(); LabelRouteInfoBuilder builder = new LabelRouteInfoBuilder(lri); if (!isPresentInList) { LOG.debug("vpnName {} is not present in LRI with label {}..", vpnInstanceName, lri.getLabel()); List<String> vpnInstanceNames = lri.getVpnInstanceList(); vpnInstanceNames.add(vpnInstanceName); builder.setVpnInstanceList(vpnInstanceNames); FibUtil.syncWrite(dataBroker, LogicalDatastoreType.OPERATIONAL, lriId, builder.build(), FibUtil.DEFAULT_CALLBACK); } else { LOG.debug("vpnName {} is present in LRI with label {}..", vpnInstanceName, lri.getLabel()); } return prefixBuilder.build(); }
private boolean deleteLabelRouteInfo(LabelRouteInfo lri, String vpnInstanceName) { LOG.debug("deleting LRI : for label {} vpninstancename {}", lri.getLabel(), vpnInstanceName); InstanceIdentifier<LabelRouteInfo> lriId = InstanceIdentifier.builder(LabelRouteMap.class) .child(LabelRouteInfo.class, new LabelRouteInfoKey((long) lri.getLabel())).build(); if (lri == null) { return true; } List<String> vpnInstancesList = lri.getVpnInstanceList(); if (vpnInstancesList.contains(vpnInstanceName)) { LOG.debug("vpninstance {} name is present", vpnInstanceName); vpnInstancesList.remove(vpnInstanceName); } if (vpnInstancesList.size() == 0) { LOG.debug("deleting LRI instance object for label {}", lri.getLabel()); FibUtil.delete(dataBroker, LogicalDatastoreType.OPERATIONAL, lriId); return true; } else { LOG.debug("updating LRI instance object for label {}", lri.getLabel()); LabelRouteInfoBuilder builder = new LabelRouteInfoBuilder(lri).setVpnInstanceList(vpnInstancesList); FibUtil.syncWrite(dataBroker, LogicalDatastoreType.OPERATIONAL, lriId, builder.build(), FibUtil.DEFAULT_CALLBACK); } return false; }
if (lri != null && lri.getPrefix().equals(vrfEntry.getDestPrefix()) && vrfEntry.getNextHopAddressList().contains(lri.getNextHopIpList().get(0))) { if (vpnInstanceOpDataEntryOptional.isPresent()) { String vpnInstanceName = vpnInstanceOpDataEntryOptional.get().getVpnInstanceName(); if (!lri.getVpnInstanceList().contains(vpnInstanceName)) { updateVpnReferencesInLri(lri, vpnInstanceName, false); vrfEntry.getLabel(), lri.getVpnInterfaceName(), lri.getDpnId());
if (lri != null && lri.getPrefix().equals(vrfEntry.getDestPrefix()) && vrfEntry.getNextHopAddressList().contains(lri.getNextHopIpList().get(0))) { if (RouteOrigin.value(vrfEntry.getOrigin()) == RouteOrigin.SELF_IMPORTED) { Optional<VpnInstanceOpDataEntry> vpnInstanceOpDataEntryOptional = FibUtil.getVpnInstanceOpData(dataBroker, rd); if (vpnInstanceOpDataEntryOptional.isPresent()) { String vpnInstanceName = vpnInstanceOpDataEntryOptional.get().getVpnInstanceName(); if (lri.getVpnInstanceList().contains(vpnInstanceName)) { localNextHopInfo = updateVpnReferencesInLri(lri, vpnInstanceName, true); localNextHopIP = lri.getPrefix(); } else { localNextHopInfo = updateVpnReferencesInLri(lri, vpnInstanceName, false); localNextHopIP = lri.getPrefix(); vrfEntry.getLabel(), localNextHopInfo.getVpnInterfaceName(), lri.getDpnId()); BigInteger dpnId = checkCreateLocalFibEntry(localNextHopInfo, localNextHopIP, vpnId, rd, vrfEntry, lri.getParentVpnid()); returnLocalDpnId.add(dpnId);
if (lri != null && lri.getPrefix().equals(vrfEntry.getDestPrefix() ) && vrfEntry.getNextHopAddressList() .contains(lri.getNextHopIpList().get(0))) { if (lri.getDpnId().equals(dpnId)) { createLocalFibEntry(vpnId, rd, vrfEntry); continue;
if (lri != null && lri.getPrefix().equals(vrfEntry.getDestPrefix()) && vrfEntry.getNextHopAddressList().contains(lri.getNextHopIpList().get(0))) { Optional<VpnInstanceOpDataEntry> vpnInstanceOpDataEntryOptional = FibUtil.getVpnInstanceOpData(dataBroker, rd); String vpnInstanceName = ""; String parentRd = lri.getParentVpnRd(); FibUtil.releaseId(idManager, FibConstants.VPN_IDPOOL_NAME, FibUtil.getNextHopLabelKey(parentRd, vrfEntry.getDestPrefix()));
if (lri != null && lri.getPrefix().equals(vrfEntry.getDestPrefix()) && vrfEntry.getNextHopAddressList().contains(lri.getNextHopIpList().get(0))) { PrefixesBuilder prefixBuilder = new PrefixesBuilder(); prefixBuilder.setDpnId(lri.getDpnId()); prefixBuilder.setVpnInterfaceName(lri.getVpnInterfaceName()); prefixBuilder.setIpAddress(lri.getPrefix()); prefixInfo = prefixBuilder.build(); LOG.debug("Fetched labelRouteInfo for label {} interface {} and got dpn {}", vrfEntry.getLabel(), prefixInfo.getVpnInterfaceName(), lri.getDpnId()); checkCleanUpOpDataForFib(prefixInfo, vpnId, rd, vrfEntry, extraRoute);
if (lri != null && lri.getPrefix().equals(vrfEntry.getDestPrefix()) && vrfEntry.getNextHopAddressList().contains(lri.getNextHopIpList().get(0))) { VpnNexthopBuilder vpnNexthopBuilder = new VpnNexthopBuilder(); vpnNexthopBuilder.setDpnId(lri.getDpnId()); BigInteger dpnId = checkDeleteLocalFibEntry(vpnNexthopBuilder.build(), localNextHopIP, vpnId, rd, vrfEntry, false /*isExtraRoute*/);
if (lri != null && lri.getPrefix().equals(vrfEntry.getDestPrefix()) && vrfEntry.getNextHopAddressList().contains(lri.getNextHopIpList().get(0))) { Optional<VpnInstanceOpDataEntry> vpnInstanceOpDataEntryOptional = FibUtil.getVpnInstanceOpData(dataBroker, rd); String vpnInstanceName = ""; String parentRd = lri.getParentVpnRd(); FibUtil.releaseId(idManager, FibConstants.VPN_IDPOOL_NAME, FibUtil.getNextHopLabelKey(parentRd, vrfEntry.getDestPrefix()));
if (!Objects.equals(_dpnId, other.getDpnId())) { return false; if (!Objects.equals(_elanTag, other.getElanTag())) { return false; if (!Objects.equals(_key, other.getKey())) { return false; if (!Objects.equals(_label, other.getLabel())) { return false; if (!Objects.equals(_nextHopIpList, other.getNextHopIpList())) { return false; if (!Objects.equals(_parentVpnRd, other.getParentVpnRd())) { return false; if (!Objects.equals(_parentVpnid, other.getParentVpnid())) { return false; if (!Objects.equals(_prefix, other.getPrefix())) { return false; if (!Objects.equals(_vpnInstanceList, other.getVpnInstanceList())) { return false; if (!Objects.equals(_vpnInterfaceName, other.getVpnInterfaceName())) { return false;