DataStoreJobCoordinator dataStoreCoordinator = DataStoreJobCoordinator.getInstance();
dataStoreCoordinator.enqueueJob(FibUtil.getJobKeyForRdPrefix(rd, vrfEntry.getDestPrefix()), () -> {
WriteTransaction tx = dataBroker.newWriteOnlyTransaction();
- for (VpnToDpnList vpnDpn : vpnToDpnList) {
- if (!localDpnIdList.contains(vpnDpn.getDpnId())) {
- if (vpnDpn.getDpnState() == VpnToDpnList.DpnState.Active) {
- try {
- if (RouteOrigin.BGP.getValue().equals(vrfEntry.getOrigin())) {
- bgpRouteVrfEntryHandler.createRemoteFibEntry(vpnDpn.getDpnId(),
- vpnId, vrfTableKey.getRouteDistinguisher(), vrfEntry, tx, txnObjects);
- } else {
- createRemoteFibEntry(vpnDpn.getDpnId(), vpnInstance.getVpnId(),
- vrfTableKey.getRouteDistinguisher(), vrfEntry, tx);
+ synchronized (vpnInstance.getVpnInstanceName().intern()) {
+ for (VpnToDpnList vpnDpn : vpnToDpnList) {
+ if (!localDpnIdList.contains(vpnDpn.getDpnId())) {
+ if (vpnDpn.getDpnState() == VpnToDpnList.DpnState.Active) {
+ try {
+ if (RouteOrigin.BGP.getValue().equals(vrfEntry.getOrigin())) {
+ bgpRouteVrfEntryHandler.createRemoteFibEntry(vpnDpn.getDpnId(),
+ vpnId, vrfTableKey.getRouteDistinguisher(), vrfEntry, tx, txnObjects);
+ } else {
+ createRemoteFibEntry(vpnDpn.getDpnId(), vpnInstance.getVpnId(),
+ vrfTableKey.getRouteDistinguisher(), vrfEntry, tx);
+ }
+ } catch (NullPointerException e) {
+ LOG.error("Failed to get create remote fib flows for prefix {} ",
+ vrfEntry.getDestPrefix(), e);
}
- } catch (NullPointerException e) {
- LOG.error("Failed to get create remote fib flows for prefix {} ",
- vrfEntry.getDestPrefix(), e);
}
}
}