- mkMatches.add(new MatchTunnelId(BigInteger.valueOf(elanUtils.getVxlanSegmentationId(elanInfo))));
- NWUtil.getOperativeDPNs(broker).forEach(dpnId -> {
- LOG.debug("Updating tunnel flow to dpnid {}", dpnId);
- List<InstructionInfo> instructions = getInstructionsForExtTunnelTable(elanTag);
- String flowRef = getFlowRef(NwConstants.L2VNI_EXTERNAL_TUNNEL_DEMUX_TABLE, elanTag, dpnId);
- FlowEntity flowEntity = MDSALUtil.buildFlowEntity(
- dpnId,
- NwConstants.L2VNI_EXTERNAL_TUNNEL_DEMUX_TABLE,
- flowRef,
- 5, // prio
- elanInfo.getElanInstanceName(), // flowName
- 0, // idleTimeout
- 0, // hardTimeout
- ITMConstants.COOKIE_ITM_EXTERNAL.add(BigInteger.valueOf(elanTag)),
- mkMatches,
- instructions);
- flowHandler.accept(dpnId, flowEntity);
- });
+ mkMatches.add(new MatchTunnelId(Uint64.valueOf(ElanUtils.getVxlanSegmentationId(elanInfo).longValue())));
+ try {
+ NWUtil.getOperativeDPNs(broker).forEach(dpnId -> {
+ LOG.debug("Updating tunnel flow to dpnid {}", dpnId);
+ List<InstructionInfo> instructions = getInstructionsForExtTunnelTable(elanTag);
+ String flowRef = getFlowRef(NwConstants.L2VNI_EXTERNAL_TUNNEL_DEMUX_TABLE, elanTag.longValue(), dpnId);
+ FlowEntity flowEntity = MDSALUtil.buildFlowEntity(
+ dpnId,
+ NwConstants.L2VNI_EXTERNAL_TUNNEL_DEMUX_TABLE,
+ flowRef,
+ 5, // prio
+ elanInfo.getElanInstanceName(), // flowName
+ 0, // idleTimeout
+ 0, // hardTimeout
+ Uint64.valueOf(ITMConstants.COOKIE_ITM_EXTERNAL.longValue() + elanTag.longValue()),
+ mkMatches,
+ instructions);
+ flowHandler.accept(dpnId, flowEntity);
+ });
+ } catch (ExecutionException | InterruptedException e) {
+ LOG.error("programEvpnL2vniFlow: Exception while programming Evpn L2vni flow for elanInstance {}",
+ elanInfo, e);
+ }