public FlowRemovedBuilder(FlowRemoved base) { this._bufferId = base.getBufferId(); this._containerName = base.getContainerName(); this._cookie = base.getCookie(); this._cookieMask = base.getCookieMask(); this._flags = base.getFlags(); this._flowName = base.getFlowName(); this._flowRef = base.getFlowRef(); this._flowTable = base.getFlowTable(); this._hardTimeout = base.getHardTimeout(); this._idleTimeout = base.getIdleTimeout(); this._instructions = base.getInstructions(); this._match = base.getMatch(); this._node = base.getNode(); this._outGroup = base.getOutGroup(); this._outPort = base.getOutPort(); this._priority = base.getPriority(); this._tableId = base.getTableId(); this._transactionId = base.getTransactionId(); this._transactionUri = base.getTransactionUri(); this._barrier = base.isBarrier(); this._installHw = base.isInstallHw(); this._strict = base.isStrict(); if (base instanceof FlowRemovedImpl) { FlowRemovedImpl impl = (FlowRemovedImpl) base;
@Override public void onFlowRemoved(FlowRemoved flowRemoved) { short tableId = flowRemoved.getTableId(); if (tableId == NwConstants.ELAN_SMAC_TABLE) { BigInteger metadata = flowRemoved.getMatch().getMetadata().getMetadata(); long elanTag = MetaDataUtil.getElanTagFromMetadata(metadata); ElanTagName elanTagInfo = elanUtils.getElanInfoByElanTag(elanTag); return; final String srcMacAddress = flowRemoved.getMatch().getEthernetMatch() .getEthernetSource().getAddress().getValue().toUpperCase(); int portTag = MetaDataUtil.getLportFromMetadata(metadata).intValue();
@Override public void onFlowRemoved(final FlowRemoved notification) { // notified upon remove flow rpc successfully invoked if (notification == null) { return; } final NodeRef node = notification.getNode(); if (node == null) { LOG.debug("Notification {} has not node, ignoring it", notification); return; } Node adNode; try { adNode = NodeMapping.toADNode(notification.getNode()); } catch (ConstructionException e) { LOG.warn("Failed to construct AD node for {}, ignoring notification", node, e); return; } flowProgrammerPublisher.flowRemoved(adNode, ToSalConversionsUtils.toFlow(notification, adNode)); }
@Override public void onFlowRemoved(FlowRemoved notification) { LOG.debug("removed flow.........................." + notification.toString()); LOG.debug("remove flow Xid........................." + notification.getTransactionId().getValue()); LOG.debug("-----------------------------------------------------------------------------------"); }
SalNode snode = checkFlowRemoved(notification); if (snode != null) { FlowCookie cookie = notification.getCookie(); if (!COOKIE_MISS.equals(cookie)) { VtnFlowId flowId = FlowUtils.getVtnFlowId(cookie);
/** * Check whether the given FLOW_REMOVED notification is valid or not. * * @param removed FLOW_REMOVED notification. * @return A {@link SalNode} instance that specifies the target switch * if the given FLOW_REMOVED notification is valid. * {@code null} otherwise. */ private SalNode checkFlowRemoved(FlowRemoved removed) { SalNode result = null; if (removed != null) { SalNode snode = SalNode.create(removed.getNode()); if (snode != null) { short table = FlowUtils.getTableId(removed); if (table == TABLE_ID) { result = snode; } else { ignoreFlowRemoved(VTNLogLevel.DEBUG, "Unused flow table", snode, removed); } } else { LOG.debug("Ignore FLOW_REMOVED: Invalid node: {}", removed); } } else { LOG.warn("Null switch-flow-removed notification."); } return result; }
if (!Objects.equals(_bufferId, other.getBufferId())) { return false; if (!Objects.equals(_containerName, other.getContainerName())) { return false; if (!Objects.equals(_cookie, other.getCookie())) { return false; if (!Objects.equals(_cookieMask, other.getCookieMask())) { return false; if (!Objects.equals(_flags, other.getFlags())) { return false; if (!Objects.equals(_flowName, other.getFlowName())) { return false; if (!Objects.equals(_flowRef, other.getFlowRef())) { return false; if (!Objects.equals(_flowTable, other.getFlowTable())) { return false; if (!Objects.equals(_hardTimeout, other.getHardTimeout())) { return false; if (!Objects.equals(_idleTimeout, other.getIdleTimeout())) { return false;