public SwitchDriverSubHandshakeCompleted(OFMessage m) { super("Sub-Handshake is already complete but received message " + m.getType()); } }
@Override protected Object encode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { if (!(msg instanceof List)) { return msg; } @SuppressWarnings("unchecked") List<OFMessage> msglist = (List<OFMessage>) msg; /* XXX S can't get length of OFMessage in loxigen's openflowj?? int size = 0; for (OFMessage ofm : msglist) { size += ofm.getLengthU(); }*/ ChannelBuffer buf = ChannelBuffers.dynamicBuffer(); for (OFMessage ofm : msglist) { if (ofm != null) { ofm.writeTo(buf); } } return buf; }
switch (msg.getType()) { case FLOW_REMOVED: OFFlowRemoved removed = (OFFlowRemoved) msg; case BARRIER_REPLY: try { InternalCacheEntry entry = pendingBatches.getIfPresent(msg.getXid()); if (entry != null) { providerService .batchOperationCompleted(msg.getXid(), entry.completed()); } else { log.warn("Received unknown Barrier Reply: {}", msg.getXid()); pendingBatches.invalidate(msg.getXid()); OFFlowMod fm = (OFFlowMod) m; InternalCacheEntry entry = pendingBatches.getIfPresent(msg.getXid()); if (entry != null) { entry.appendFailure(new FlowEntryBuilder(deviceId, fm, driverService).build()); log.debug("Unhandled message type: {}", msg.getType());
switch (msg.getType()) { case PORT_STATUS: for (OpenFlowSwitchListener l : ofSwitchListener) { if (flowStats != null) { OFFlowStatsReply.Builder rep = OFFactories.getFactory(msg.getVersion()).buildFlowStatsReply(); rep.setEntries(Lists.newLinkedList(flowStats)); rep.setXid(reply.getXid()); if (tableStats != null) { OFTableStatsReply.Builder rep = OFFactories.getFactory(msg.getVersion()).buildTableStatsReply(); rep.setEntries(Lists.newLinkedList(tableStats)); executorMsgs.execute(new OFMessageHandler(dpid, rep.build())); if (groupStats != null) { OFGroupStatsReply.Builder rep = OFFactories.getFactory(msg.getVersion()).buildGroupStatsReply(); rep.setEntries(Lists.newLinkedList(groupStats)); rep.setXid(reply.getXid()); if (groupDescStats != null) { OFGroupDescStatsReply.Builder rep = OFFactories.getFactory(msg.getVersion()).buildGroupDescStatsReply(); rep.setEntries(Lists.newLinkedList(groupDescStats)); rep.setXid(reply.getXid()); .getFactory(msg.getVersion())
@Override public void handleNiciraRole(OFMessage m) throws SwitchStateException { RoleState r = this.roleMan.extractNiciraRoleReply((OFExperimenter) m); if (r == null) { // The message wasn't really a Nicira role reply. We just // dispatch it to the OFMessage listeners in this case. this.handleMessage(m); return; } RoleRecvStatus rrs = this.roleMan.deliverRoleReply( new RoleReplyInfo(r, null, m.getXid())); if (rrs == RoleRecvStatus.MATCHED_SET_ROLE) { if (r == RoleState.MASTER) { this.transitionToMasterSwitch(); } else if (r == RoleState.EQUAL || r == RoleState.SLAVE) { this.transitionToEqualSwitch(); } } else { this.disconnectSwitch(); } }
@Override public void handleOutgoingMessage(Dpid dpid, List<OFMessage> msgs) { for (OFMessage msg : msgs) { if (msg.getType() == OFType.PACKET_OUT || msg.getType() == OFType.FLOW_MOD || msg.getType() == OFType.STATS_REQUEST) { aggregators.computeIfPresent(dpid, (k, v) -> { v.increment(msg); return v; }); } } } }
/** * Get a string specifying the switch connection, state, and * message received. To be used as message for SwitchStateException * or log messages * @param h The channel handler (to get switch information_ * @param m The OFMessage that has just been received * @param details A string giving more details about the exact nature * of the problem. * @return display string */ // needs to be protected because enum members are actually subclasses protected String getSwitchStateMessage(OFChannelHandler h, OFMessage m, String details) { return String.format("Switch: [%s], State: [%s], received: [%s]" + ", details: %s", h.getSwitchInfoString(), this.toString(), m.getType().toString(), details); }
switch (msg.getType()) { case STATS_REPLY: if (((OFStatsReply) msg).getStatsType() == OFStatsType.PORT) {
@Override public void handleMessage(Dpid dpid, OFMessage msg) { switch (msg.getType()) { case STATS_REPLY: pushGroupMetrics(dpid, (OFStatsReply) msg);
if (m.getType() == OFType.ECHO_REQUEST) { processOFEchoRequest(h, (OFEchoRequest) m); } else if (m.getType() == OFType.ECHO_REPLY) { processOFEchoReply(h, (OFEchoReply) m); } else if (m.getType() == OFType.ROLE_REPLY) { h.sw.handleRole(m); } else if (m.getType() == OFType.ERROR) { if (!h.sw.handleRoleError((OFErrorMsg)m)) { h.sw.processDriverHandshakeMessage(m); if (m.getType() == OFType.EXPERIMENTER && ((OFExperimenter) m).getExperimenter() == RoleManager.NICIRA_EXPERIMENTER) {
switch(m.getType()) { case HELLO: processOFHello(h, (OFHello) m);