connectionContext.changeStateToWorking();
connectionContext.setFeatures(featureOutput);
connectionContext.setNodeId(InventoryDataServiceUtil.nodeIdFromDatapathId(featureOutput.getDatapathId()));
+ connectionContext.handshakeSuccessful();
// fire barrier in order to sweep all handshake and posthandshake messages before continue
final ListenableFuture<RpcResult<BarrierOutput>> barrier = fireBarrier(version, 0L);
- Futures.addCallback(barrier, new FutureCallback<RpcResult<BarrierOutput>>() {
+ Futures.addCallback(barrier, addBarrierCallback());
+ }
+
+ private FutureCallback<RpcResult<BarrierOutput>> addBarrierCallback() {
+ return new FutureCallback<RpcResult<BarrierOutput>>() {
@Override
public void onSuccess(@Nullable final RpcResult<BarrierOutput> result) {
LOG.debug("succeeded by getting sweep barrier after posthandshake for device {}", connectionContext.getNodeId());
try {
if (!deviceConnectedHandler.deviceConnected(connectionContext)) {
- connectionContext.closeConnection(false);
+ connectionContext.closeConnection(true);
}
SessionStatistics.countEvent(connectionContext.getNodeId().toString(),
SessionStatistics.ConnectionStatus.CONNECTION_CREATED);
} catch (final Exception e) {
- LOG.info("ConnectionContext initial processing failed: {}", e.getMessage());
+ LOG.error("ConnectionContext initial processing failed: {}", e.getMessage());
SessionStatistics.countEvent(connectionContext.getNodeId().toString(),
SessionStatistics.ConnectionStatus.CONNECTION_DISCONNECTED_BY_OFP);
connectionContext.closeConnection(true);
@Override
public void onFailure(final Throwable t) {
- LOG.info("failed to get sweep barrier after posthandshake for device {}", connectionContext.getNodeId());
+ LOG.error("failed to get sweep barrier after posthandshake for device {}", connectionContext.getNodeId());
connectionContext.closeConnection(false);
}
- });
+ };
}
protected ListenableFuture<RpcResult<BarrierOutput>> fireBarrier(final Short version, final long xid) {
try {
handshakeContext.close();
} catch (final Exception e) {
- LOG.warn("Closing handshake context failed: {}", e.getMessage());
- LOG.debug("Detail in handshake context close:", e);
+ LOG.error("Closing handshake context failed: {}", e.getMessage());
+ LOG.debug("Detail in handshake context close: {}", e);
}
}