messageTranslators = new ConcurrentHashMap<>(); addMessageTranslator(ErrorMessage.class, OF10, new ErrorV10Translator()); addMessageTranslator(ErrorMessage.class, OF13, new ErrorTranslator()); addMessageTranslator(FlowRemovedMessage.class, OF10, new FlowRemovedTranslator(convertorManager)); addMessageTranslator(FlowRemovedMessage.class, OF13, new FlowRemovedTranslator(convertorManager)); addMessageTranslator(PacketInMessage.class, OF10, new PacketInV10Translator()); addMessageTranslator(PacketInMessage.class, OF13, new PacketInTranslator(convertorManager)); addMessageTranslator(PortStatusMessage.class, OF10, new PortStatusMessageToNodeConnectorUpdatedTranslator()); addMessageTranslator(PortStatusMessage.class, OF13, new PortStatusMessageToNodeConnectorUpdatedTranslator()); addMessageTranslator(MultipartReplyMessage.class, OF13, new MultiPartReplyPortToNodeConnectorUpdatedTranslator()); addMessageTranslator(MultipartReplyMessage.class, OF10, new MultiPartMessageDescToNodeUpdatedTranslator()); addMessageTranslator(MultipartReplyMessage.class, OF13, new MultiPartMessageDescToNodeUpdatedTranslator()); addMessageTranslator(ExperimenterMessage.class, OF10, new ExperimenterTranslator()); addMessageTranslator(MultipartReplyMessage.class, OF10, new MultipartReplyTranslator(convertorManager)); addMessageTranslator(MultipartReplyMessage.class, OF13, new MultipartReplyTranslator(convertorManager)); addMessageTranslator(MultipartReplyMessage.class, OF13, new MultipartReplyTableFeaturesToTableUpdatedTranslator(convertorManager)); addMessageTranslator(GetFeaturesOutput.class, OF10, new FeaturesV10ToNodeConnectorUpdatedTranslator()); addMessageTranslator(NotificationQueueWrapper.class, OF10, new NotificationPlainTranslator()); addMessageTranslator(NotificationQueueWrapper.class, OF13, new NotificationPlainTranslator()); sc = new SessionContextOFImpl();
@Override public List<DataObject> translate(SwitchConnectionDistinguisher cookie, SessionContext sc, OfHeader msg) { if (msg instanceof ErrorMessage) { ErrorMessage message = (ErrorMessage) msg; List<DataObject> list = new CopyOnWriteArrayList<DataObject>(); if (LOG.isDebugEnabled()) { String hexData = "n/a"; if (message.getData() != null) { hexData = ByteUtil.bytesToHexstring(message.getData(), " "); } LOG.debug(" Error Message received: type={}[{}], code={}[{}], data=[{}] ", message.getType(), message.getTypeString(), message.getCode(), message.getCodeString(), hexData); } // TODO -- Augmentation is not handled ErrorType type = decodeErrorType(message.getType()); NodeRef node = new NodeRef( InventoryDataServiceUtil.identifierFromDatapathId( sc.getFeatures().getDatapathId())); list.add(getGranularNodeErrors(message, type, node)); return list; } else { LOG.error("Message is not of Error Message "); return Collections.emptyList(); } }
.getMatch(); if (ofMatch != null) { salFlowRemoved.setMatch(fromMatch(ofMatch, sc.getFeatures().getDatapathId(), ofVersion)); } else if (ofFlow.getMatchV10() != null) { final VersionDatapathIdConvertorData data = new VersionDatapathIdConvertorData(sc.getPrimaryConductor().getVersion());
NodeId node = MultipartReplyTranslator.nodeIdFromDatapathId(sc.getFeatures().getDatapathId()); switch (mpReply.getType()){ case OFPMPFLOW: { message.setId(node); message.setMoreReplies(mpReply.getFlags().isOFPMPFREQMORE()); message.setTransactionId(generateTransactionId(mpReply.getXid())); MultipartReplyFlowCase caseBody = (MultipartReplyFlowCase)mpReply.getMultipartReplyBody(); MultipartReplyFlow replyBody = caseBody.getMultipartReplyFlow(); message.setId(node); message.setMoreReplies(mpReply.getFlags().isOFPMPFREQMORE()); message.setTransactionId(generateTransactionId(mpReply.getXid())); message.setId(node); message.setMoreReplies(mpReply.getFlags().isOFPMPFREQMORE()); message.setTransactionId(generateTransactionId(mpReply.getXid())); message.setId(node); message.setMoreReplies(mpReply.getFlags().isOFPMPFREQMORE()); message.setTransactionId(generateTransactionId(mpReply.getXid())); MultipartReplyGroupCase caseBody = (MultipartReplyGroupCase)mpReply.getMultipartReplyBody(); MultipartReplyGroup replyBody = caseBody.getMultipartReplyGroup(); message.setId(node); message.setMoreReplies(mpReply.getFlags().isOFPMPFREQMORE()); message.setTransactionId(generateTransactionId(mpReply.getXid())); MultipartReplyGroupDescCase caseBody = (MultipartReplyGroupDescCase)mpReply.getMultipartReplyBody(); MultipartReplyGroupDesc replyBody = caseBody.getMultipartReplyGroupDesc();
popListeners = new ConcurrentHashMap<>(); addMessageTranslator(ErrorMessage.class, OF10, new ErrorV10Translator()); addMessageTranslator(ErrorMessage.class, OF13, new ErrorTranslator()); addMessageTranslator(FlowRemovedMessage.class, OF10, new FlowRemovedTranslator(convertorExecutor)); addMessageTranslator(FlowRemovedMessage.class, OF13, new FlowRemovedTranslator(convertorExecutor)); addMessageTranslator(PacketInMessage.class,OF10, new PacketInV10Translator()); addMessageTranslator(PacketInMessage.class,OF13, new PacketInTranslator(convertorExecutor)); addMessageTranslator(PortStatusMessage.class,OF10, new PortStatusMessageToNodeConnectorUpdatedTranslator()); addMessageTranslator(PortStatusMessage.class,OF13, new PortStatusMessageToNodeConnectorUpdatedTranslator()); addMessageTranslator(MultipartReplyMessage.class,OF13,new MultiPartReplyPortToNodeConnectorUpdatedTranslator()); addMessageTranslator(MultipartReplyMessage.class,OF10, new MultiPartMessageDescToNodeUpdatedTranslator()); addMessageTranslator(MultipartReplyMessage.class,OF13, new MultiPartMessageDescToNodeUpdatedTranslator()); addMessageTranslator(ExperimenterMessage.class, OF10, new ExperimenterTranslator()); addMessageTranslator(MultipartReplyMessage.class,OF10, new MultipartReplyTranslator(convertorExecutor)); addMessageTranslator(MultipartReplyMessage.class,OF13, new MultipartReplyTranslator(convertorExecutor)); addMessageTranslator(MultipartReplyMessage.class,OF13,new MultipartReplyTableFeaturesToTableUpdatedTranslator(convertorExecutor)); addMessageTranslator(GetFeaturesOutput.class,OF10, new FeaturesV10ToNodeConnectorUpdatedTranslator()); addMessageTranslator(NotificationQueueWrapper.class, OF10, new NotificationPlainTranslator()); addMessageTranslator(NotificationQueueWrapper.class, OF13, new NotificationPlainTranslator());