@Override public void serialize(PacketInMessage message, ByteBuf outBuffer) { ByteBufUtils.writeOFHeader(MESSAGE_TYPE, message, outBuffer, EncodeConstants.EMPTY_LENGTH); outBuffer.writeInt(message.getBufferId().intValue()); outBuffer.writeShort(message.getTotalLen().intValue()); outBuffer.writeByte(message.getReason().getIntValue()); outBuffer.writeByte(message.getTableId().getValue().byteValue()); outBuffer.writeLong(message.getCookie().longValue()); OFSerializer<Match> matchSerializer = registry .<Match, OFSerializer<Match>> getSerializer(new MessageTypeKey<>(message.getVersion(), Match.class)); matchSerializer.serialize(message.getMatch(), outBuffer); outBuffer.writeZero(PADDING); byte[] data = message.getData(); if (data != null) { outBuffer.writeBytes(data); } ByteBufUtils.updateOFHeaderLength(outBuffer); }
@Override public void serialize(PacketInMessage message, ByteBuf outBuffer) { ByteBufUtils.writeOFHeader(MESSAGE_TYPE, message, outBuffer, EncodeConstants.EMPTY_LENGTH); outBuffer.writeInt(message.getBufferId().intValue()); outBuffer.writeShort(message.getTotalLen().intValue()); outBuffer.writeShort(message.getInPort()); outBuffer.writeByte(message.getReason().getIntValue()); outBuffer.writeZero(PADDING); byte[] data = message.getData(); if (data != null) { outBuffer.writeBytes(data); } ByteBufUtils.updateOFHeaderLength(outBuffer); }
@Override public void onPacketInMessage(PacketInMessage arg0) { if (connectionRegistry.getFeaturesOutput(switchConnection) != null) { BigInteger datapathId = this.connectionRegistry.getDatapathID(this.switchConnection); initSession(connectionRegistry.getFeaturesOutput(switchConnection)); sendNotification(arg0, arg0.getImplementedInterface().getName()); shimRelay.sendOpenFlowMessageToCore(coreConnector, arg0, arg0.getVersion(), arg0.getXid(), datapathId.longValue(), 0); } }
PacketInMessage message = (PacketInMessage) msg; LOG.trace("PacketIn[v{}]: Cookie: {} Match.type: {}", message.getVersion(), message.getCookie(), message.getMatch() != null ? message.getMatch().getType() : message.getMatch()); pktInBuilder.setPayload(message.getData()); if (cookie != null) { pktInBuilder.setConnectionCookie(new ConnectionCookie(cookie.getCookie())); if (message.getCookie() != null) { pktInBuilder.setFlowCookie(new FlowCookie(message.getCookie())); if (message.getMatch() != null && message.getMatch().getMatchEntry() != null) { List<MatchEntry> entries = message.getMatch().getMatchEntry(); for (MatchEntry entry : entries) { if(InPortCase.class.equals(entry.getMatchEntryValue().getImplementedInterface())) { final Optional<MatchBuilder> matchOptional = convertorExecutor.convert(message.getMatch(), datapathIdConvertorData); final MatchBuilder matchBuilder = new MatchBuilder(matchOptional.orElse(new MatchBuilder()).build()); message.getMatch().getMatchEntry(), ofVersion, MatchPath.PACKETRECEIVED_MATCH); if (matchExtensionWrap != null) { matchBuilder.addAugmentation(matchExtensionWrap.getAugmentationClass(), matchExtensionWrap.getAugmentationObject()); pktInBuilder.setPacketInReason(PacketInUtil.getMdSalPacketInReason(message.getReason())); pktInBuilder.setTableId(new org.opendaylight.yang.gen.v1.urn.opendaylight.table.types.rev131026.TableId(message.getTableId().getValue().shortValue())); pktInBuilder.setIngress(InventoryDataServiceUtil.nodeConnectorRefFromDatapathIdPortno(dpid, port, ofVersion)); PacketReceived pktInEvent = pktInBuilder.build();
PacketInMessage message = (PacketInMessage)msg; LOG.trace("PacketIn[v{}]: InPort: {}", msg.getVersion(), message.getInPort()); pktInBuilder.setPayload(message.getData()); if (message.getInPort() != null) { port = message.getInPort().longValue(); } else { LOG.trace("Received packet_in from {} on port {}", dpid, port); pktInBuilder.setPacketInReason(PacketInUtil.getMdSalPacketInReason(message.getReason())); pktInBuilder.setIngress(InventoryDataServiceUtil.nodeConnectorRefFromDatapathIdPortno(dpid, port, OpenflowVersion.get(sc.getPrimaryConductor().getVersion())));