From: Michal Polkorab Date: Tue, 5 Nov 2013 15:44:55 +0000 (+0100) Subject: Quickfix - MeterModInputMessageFactory computelength() X-Git-Tag: jenkins-openflowjava-bulk-release-prepare-only-1~77 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=242ffc21448c8c59c991917ad81a25fe0d964f3b;p=openflowjava.git Quickfix - MeterModInputMessageFactory computelength() Changed logging in HelloInputMessageFactoryTest Signed-off-by: Michal Polkorab --- diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MeterModInputMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MeterModInputMessageFactory.java index 463c82d4..7421029c 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MeterModInputMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MeterModInputMessageFactory.java @@ -56,8 +56,11 @@ public class MeterModInputMessageFactory implements OFSerializer @Override public int computeLength(MeterModInput message) { - - return MESSAGE_LENGTH; + int length = MESSAGE_LENGTH; + if (message.getBands() != null) { + length += message.getBands().size() * LENGTH_OF_METER_BANDS; + } + return length; } @Override @@ -78,18 +81,20 @@ public class MeterModInputMessageFactory implements OFSerializer } private static void encodeBands(List bands, ByteBuf outBuffer) { - for (Bands currentBand : bands) { - MeterBand meterBand = currentBand.getMeterBand(); - writeBandCommonFields((MeterBandCommons) meterBand, outBuffer); - if (meterBand instanceof MeterBandDrop) { - ByteBufUtils.padBuffer(PADDING_IN_METER_BAND_DROP, outBuffer); - } else if (meterBand instanceof MeterBandDscpRemark) { - MeterBandDscpRemark dscpRemarkBand = (MeterBandDscpRemark) meterBand; - outBuffer.writeByte(dscpRemarkBand.getPrecLevel()); - ByteBufUtils.padBuffer(PADDING_IN_METER_BAND_DSCP_REMARK, outBuffer); - } else if (meterBand instanceof MeterBandExperimenter) { - MeterBandExperimenter experimenterBand = (MeterBandExperimenter) meterBand; - outBuffer.writeInt(experimenterBand.getExperimenter().intValue()); + if (bands != null) { + for (Bands currentBand : bands) { + MeterBand meterBand = currentBand.getMeterBand(); + writeBandCommonFields((MeterBandCommons) meterBand, outBuffer); + if (meterBand instanceof MeterBandDrop) { + ByteBufUtils.padBuffer(PADDING_IN_METER_BAND_DROP, outBuffer); + } else if (meterBand instanceof MeterBandDscpRemark) { + MeterBandDscpRemark dscpRemarkBand = (MeterBandDscpRemark) meterBand; + outBuffer.writeByte(dscpRemarkBand.getPrecLevel()); + ByteBufUtils.padBuffer(PADDING_IN_METER_BAND_DSCP_REMARK, outBuffer); + } else if (meterBand instanceof MeterBandExperimenter) { + MeterBandExperimenter experimenterBand = (MeterBandExperimenter) meterBand; + outBuffer.writeInt(experimenterBand.getExperimenter().intValue()); + } } } } diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactoryTest.java index 756a1101..1e5f360b 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/HelloInputMessageFactoryTest.java @@ -60,13 +60,13 @@ public class HelloInputMessageFactoryTest { ByteBuf out = UnpooledByteBufAllocator.DEFAULT.buffer(); HelloInputMessageFactory factory = HelloInputMessageFactory.getInstance(); factory.messageToBuffer(HelloMessageFactoryTest.VERSION_YET_SUPPORTED, out, message); - LOGGER.info("bytebuf: " + ByteBufUtils.byteBufToHexString(out)); + LOGGER.debug("bytebuf: " + ByteBufUtils.byteBufToHexString(out)); BufferHelper.checkHeaderV13(out, factory.getMessageType(), factory.computeLength(message)); Elements element = readElement(out).get(0); Assert.assertEquals("Wrong element type", expectedElement.get(0).getType(), element.getType()); - LOGGER.info(expectedElement.get(0).getVersionBitmap().toString()); - LOGGER.info(element.getVersionBitmap().toString()); + LOGGER.debug(expectedElement.get(0).getVersionBitmap().toString()); + LOGGER.debug(element.getVersionBitmap().toString()); Assert.assertArrayEquals("Wrong element bitmap", expectedElement.get(0).getVersionBitmap().toArray(), element.getVersionBitmap().toArray()); } @@ -110,7 +110,6 @@ public class HelloInputMessageFactoryTest { } private static List readVersionBitmap(int[] input){ - LOGGER.info("input.length: " + input.length); List versionBitmapList = new ArrayList<>(); for (int i = 0; i < input.length; i++) { int mask = input[i]; @@ -118,7 +117,6 @@ public class HelloInputMessageFactoryTest { versionBitmapList.add((mask & (1<