Reference Guide

Table Of Contents
long duration = now - then;
log.info("ECHO Latency to {} is {} ms", dpid, duration);
} else {
log.warn(E_ECHO_FAILED, future.result());
}
} catch (Exception e) {
log.warn(E_ECHO_FAILED, e.toString());
}
}
private OpenflowMessage createEchoRequest(byte[] timestamp) {
OfmMutableEchoRequest echo = (OfmMutableEchoRequest)
MessageFactory.create(PV, MessageType.ECHO_REQUEST);
echo.data(timestamp);
return echo.toImmutable();
}
private long retrieveTimestamp(OpenflowMessage reply) {
OfmEchoReply echo = (OfmEchoReply) reply;
return ByteUtils.getLong(echo.getData(), 0);
}
Packet Sequencer
PACKET_IN messages are handled by the controller with the Packet Sequencer module. The design
of this module provides an orderly, deterministic, yet flexible, scheme for allowing code running on
the controller to register for participation in the handling of PACKET_IN messages. An application
wishing to participate will implement the SequencedPacketListener (SPL) interface.
The following figure illustrates the relationship between the Sequencer and the SPLs participating
in the processing chain:
39