private void processUpdatedConnector(final DataTreeModification<T> modification) { final InstanceIdentifier<T> identifier = modification.getRootPath().getRootIdentifier(); InstanceIdentifier<NodeConnector> nodeConnectorInstanceId = identifier.firstIdentifierOf(NodeConnector.class); if (compareIITail(identifier, II_TO_FLOW_CAPABLE_NODE_CONNECTOR)) { FlowCapableNodeConnector flowConnector = (FlowCapableNodeConnector) modification.getRootNode().getDataAfter(); if (isPortDown(flowConnector)) { notifyNodeConnectorDisappeared(nodeConnectorInstanceId); } else { notifyNodeConnectorAppeared(nodeConnectorInstanceId, flowConnector); } } else if (compareIITail(identifier, II_TO_STATE)) { FlowCapableNodeConnector flowNodeConnector = iiToDownFlowCapableNodeConnectors.get(nodeConnectorInstanceId); if (flowNodeConnector != null) { State state = (State) modification.getRootNode().getDataAfter(); if (!state.isLinkDown()) { FlowCapableNodeConnectorBuilder flowCapableNodeConnectorBuilder = new FlowCapableNodeConnectorBuilder(flowNodeConnector); flowCapableNodeConnectorBuilder.setState(state); notifyNodeConnectorAppeared(nodeConnectorInstanceId, flowCapableNodeConnectorBuilder.build()); iiToDownFlowCapableNodeConnectors.remove(nodeConnectorInstanceId); } } } }
/** * Create a new node-connector instance. * * @return A {@link NodeConnector} instance. */ public NodeConnector createNodeConnector() { boolean down = Boolean.valueOf(!linkUp); StateBuilder stBuilder = new StateBuilder().setBlocked(Boolean.FALSE). setLinkDown(down).setLive(Boolean.FALSE); FlowCapableNodeConnectorBuilder fcBuilder = new FlowCapableNodeConnectorBuilder(). setState(stBuilder.build()).setName(portName). setHardwareAddress(macAddress). setAdvertisedFeatures(FEATURES_EMPTY). setPeerFeatures(FEATURES_EMPTY).setSupported(FEATURES_CURRENT). setCurrentFeature(FEATURES_CURRENT).setConfiguration(PORT_CONFIG). setPortNumber(new PortNumberUni(Long.valueOf(portNumber))); if (isOpenflow13(ofVersion)) { fcBuilder.setCurrentSpeed(SPEED_KBPS). setMaximumSpeed(SPEED_KBPS); } return new NodeConnectorBuilder(). setId(new NodeConnectorId(portIdentifier)). addAugmentation(FlowCapableNodeConnector.class, fcBuilder.build()). build(); }
public static FlowCapableNodeConnector toInventoryAugment(final FlowNodeConnector updated) { if ((updated instanceof FlowCapableNodeConnector)) { return ((FlowCapableNodeConnector) updated); } final FlowCapableNodeConnectorBuilder builder = new FlowCapableNodeConnectorBuilder(); builder.setAdvertisedFeatures(updated.getAdvertisedFeatures()); builder.setConfiguration(updated.getConfiguration()); builder.setCurrentFeature(updated.getCurrentFeature()); builder.setCurrentSpeed(updated.getCurrentSpeed()); builder.setHardwareAddress(updated.getHardwareAddress()); builder.setMaximumSpeed(updated.getMaximumSpeed()); builder.setName(updated.getName()); builder.setPeerFeatures(updated.getPeerFeatures()); builder.setPortNumber(updated.getPortNumber()); builder.setState(updated.getState()); builder.setSupported(updated.getSupported()); return builder.build(); }