From: Michal Polkorab Date: Wed, 16 Jul 2014 11:36:24 +0000 (+0200) Subject: Updated experimenter model X-Git-Tag: release/helium~28 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=openflowjava.git;a=commitdiff_plain;h=05bc9fb5cb06c747be728f8d695d2723db911514 Updated experimenter model - all extension-capable-messages have their augmentations (experimenter message is defined - so no augment needed here) - these augmentations will be used for vendor / experimenter differentiation Signed-off-by: Michal Polkorab --- diff --git a/openflow-protocol-api/src/main/yang/openflow-augments.yang b/openflow-protocol-api/src/main/yang/openflow-augments.yang index 44986927..910dfa5f 100644 --- a/openflow-protocol-api/src/main/yang/openflow-augments.yang +++ b/openflow-protocol-api/src/main/yang/openflow-augments.yang @@ -176,9 +176,9 @@ } } augment "/oxm:oxm-container/oxm:match-entries" { - ext:augment-identifier "experimenter-match-entry"; + ext:augment-identifier "experimenter-id-match-entry"; leaf experimenter { - type uint32; + type oft:experimenter-id; } } augment "/oxm:oxm-container/oxm:match-entries" { @@ -248,12 +248,9 @@ uses oxm:oxm-fields-grouping; } augment "/ofaction:actions-container/ofaction:action" { - ext:augment-identifier "experimenter-action"; + ext:augment-identifier "experimenter-id-action"; leaf experimenter { - type uint32; - } - leaf data { - type binary; + type oft:experimenter-id; } } // OF1.0 structures @@ -311,16 +308,13 @@ uses oxm:oxm-fields-grouping; } augment "/ofproto:table-features-properties-container/ofproto:table-feature-properties" { - ext:augment-identifier "experimenter-related-table-feature-property"; + ext:augment-identifier "experimenter-id-table-feature-property"; leaf experimenter { - type uint32; + type oft:experimenter-id; } leaf exp-type { type uint32; } - leaf data { - type binary; - } } // OFP_INSTRUCTION AUGMENTS @@ -350,12 +344,9 @@ } } augment "/ofinstruction:instruction-container/ofinstruction:instruction" { - ext:augment-identifier "experimenter-instruction"; + ext:augment-identifier "experimenter-id-instruction"; leaf experimenter { - type uint32; - } - leaf data { - type binary; + type oft:experimenter-id; } } @@ -367,27 +358,45 @@ } } augment "/ofproto:queue-prop-container/ofproto:queue-property" { - ext:augment-identifier "experimenter-queue-property"; + ext:augment-identifier "experimenter-id-queue-property"; leaf experimenter { - type uint32; - } - leaf data { - type binary; + type oft:experimenter-id; } } // OFP_ERROR_AUGMENTS (only experimenter till OpenFlow v1.3) - augment "/ofproto:error-message" { - ext:augment-identifier "experimenter-error"; - leaf exp_type { - type uint16; + augment "/ofproto:error-message" { + ext:augment-identifier "experimenter-id-error"; + leaf experimenter { + type oft:experimenter-id; } + } + +// OFP_MULTIPART AUGMENTS + augment "/ofproto:multipart-request/input/ofproto:multipart-request-body/ofproto:multipart-request-experimenter-case/ofproto:multipart-request-experimenter" { + ext:augment-identifier "experimenter-id-multipart-request"; leaf experimenter { + type oft:experimenter-id; + } + leaf exp-type { type uint32; } - leaf exp-data { - type binary; + } + augment "/ofproto:multipart-reply-message/ofproto:multipart-reply-body/ofproto:multipart-reply-experimenter-case/ofproto:multipart-reply-experimenter" { + ext:augment-identifier "experimenter-id-multipart-reply"; + leaf experimenter { + type oft:experimenter-id; + } + leaf exp-type { + type uint32; } } +// OFP_METER_BAND AUGMENTS + augment "/ofproto:meter-band-container/ofproto:meter-band/ofproto:meter-band-experimenter-case/ofproto:meter-band-experimenter" { + ext:augment-identifier "experimenter-id-meter-band"; + leaf experimenter { + type oft:experimenter-id; + } + } } \ No newline at end of file diff --git a/openflow-protocol-api/src/main/yang/openflow-protocol.yang b/openflow-protocol-api/src/main/yang/openflow-protocol.yang index 300dd7fe..32070d14 100644 --- a/openflow-protocol-api/src/main/yang/openflow-protocol.yang +++ b/openflow-protocol-api/src/main/yang/openflow-protocol.yang @@ -213,14 +213,11 @@ uses ofHeader; leaf experimenter { - type uint32; + type oft:experimenter-id; } leaf exp_type { type uint32; } - leaf data { - type binary; - } } /* Switch configuration messages. */ grouping features-request { @@ -682,15 +679,7 @@ } case multipart-request-experimenter-case { container multipart-request-experimenter { - leaf experimenter { - type uint32; - } - leaf exp-type { - type uint32; - } - leaf data { - type binary; - } + // empty body - used for experimenter augmentation } } } @@ -1057,15 +1046,7 @@ } case multipart-reply-experimenter-case { container multipart-reply-experimenter { - leaf experimenter { - type uint32; - } - leaf exp-type { - type uint32; - } - leaf data { - type binary; - } + // empty body - used for experimenter augmentation } } } @@ -1212,6 +1193,9 @@ } } + container meter-band-container { + uses meter-band-header; + } grouping meter-band-header { choice meter-band { case meter-band-drop-case { @@ -1230,12 +1214,6 @@ case meter-band-experimenter-case { container meter-band-experimenter { uses meter-band-commons; - leaf experimenter { - type uint32; - } - leaf data { - type binary; - } } } } diff --git a/openflow-protocol-api/src/main/yang/openflow-types.yang b/openflow-protocol-api/src/main/yang/openflow-types.yang index 47dc4a35..1a024089 100644 --- a/openflow-protocol-api/src/main/yang/openflow-types.yang +++ b/openflow-protocol-api/src/main/yang/openflow-types.yang @@ -226,7 +226,13 @@ typedef ether-type { type uint16; } - + typedef experimenter-id { + description "This type represents experimenter ID used in experimenter messages. + It also represents vendor ID - as it is the same for OF version 1.3+. + (VENDOR naming convention has been changed in OF v1.3 specification + to EXPERIMENTER)"; + type uint32; + } typedef error-type { type enumeration { enum HELLO_FAILED { diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactory.java index 45b25aba..4b18f212 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/ErrorMessageFactory.java @@ -15,7 +15,7 @@ import org.opendaylight.openflowjava.protocol.api.extensibility.DeserializerRegi import org.opendaylight.openflowjava.protocol.api.extensibility.MessageCodeKey; import org.opendaylight.openflowjava.protocol.api.extensibility.OFDeserializer; import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterError; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdError; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.BadActionCode; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.BadInstructionCode; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.BadMatchCode; @@ -55,10 +55,10 @@ public class ErrorMessageFactory implements OFDeserializer, ErrorType errorType = ErrorType.forValue(type); if (ErrorType.EXPERIMENTER.equals(errorType)) { builder.setType(errorType.getIntValue()); - OFDeserializer deserializer = registry.getDeserializer(new MessageCodeKey( + OFDeserializer deserializer = registry.getDeserializer(new MessageCodeKey( EncodeConstants.OF13_VERSION_ID, EncodeConstants.EXPERIMENTER_VALUE, ErrorMessage.class)); - ExperimenterError error = deserializer.deserialize(rawMessage); - builder.addAugmentation(ExperimenterError.class, error); + ExperimenterIdError error = deserializer.deserialize(rawMessage); + builder.addAugmentation(ExperimenterIdError.class, error); } else { decodeType(builder, errorType, type); decodeCode(rawMessage, builder, errorType); diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java index 98192092..4074339a 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactory.java @@ -673,14 +673,15 @@ public class MultipartReplyMessageFactory implements OFDeserializer, MatchEntrySerializerKey key = new MatchEntrySerializerKey<>( EncodeConstants.OF13_VERSION_ID, entry.getOxmClass(), entry.getOxmMatchField()); if (entry.getOxmClass().equals(ExperimenterClass.class)) { - key.setExperimenterId(entry.getAugmentation(ExperimenterMatchEntry.class).getExperimenter()); + key.setExperimenterId(entry.getAugmentation(ExperimenterIdMatchEntry.class) + .getExperimenter().getValue()); } else { key.setExperimenterId(null); } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactory.java index 4c174c8f..5a428c2f 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/serialization/factories/MultipartRequestInputFactory.java @@ -24,7 +24,7 @@ import org.opendaylight.openflowjava.protocol.impl.util.TypeKeyMaker; import org.opendaylight.openflowjava.protocol.impl.util.TypeKeyMakerFactory; import org.opendaylight.openflowjava.util.ByteBufUtils; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ActionRelatedTableFeatureProperty; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterMatchEntry; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdMatchEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.InstructionRelatedTableFeatureProperty; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.NextTableRelatedTableFeatureProperty; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.OxmRelatedTableFeatureProperty; @@ -442,7 +442,8 @@ public class MultipartRequestInputFactory implements OFSerializer key = new MatchEntrySerializerKey<>( EncodeConstants.OF13_VERSION_ID, entry.getOxmClass(), entry.getOxmMatchField()); if (entry.getOxmClass().equals(ExperimenterClass.class)) { - key.setExperimenterId(entry.getAugmentation(ExperimenterMatchEntry.class).getExperimenter()); + key.setExperimenterId(entry.getAugmentation(ExperimenterIdMatchEntry.class) + .getExperimenter().getValue()); } else { key.setExperimenterId(null); } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF13MatchSerializer.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF13MatchSerializer.java index 8bc2632e..afa3e0dd 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF13MatchSerializer.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/OF13MatchSerializer.java @@ -18,7 +18,7 @@ import org.opendaylight.openflowjava.protocol.api.extensibility.SerializerRegist import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey; import org.opendaylight.openflowjava.protocol.api.util.EncodeConstants; import org.opendaylight.openflowjava.util.ByteBufUtils; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterMatchEntry; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdMatchEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.types.rev130731.StandardMatchType; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.ExperimenterClass; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OxmMatchType; @@ -81,7 +81,8 @@ public class OF13MatchSerializer implements OFSerializer, SerializerRegis MatchEntrySerializerKey key = new MatchEntrySerializerKey<>( EncodeConstants.OF13_VERSION_ID, entry.getOxmClass(), entry.getOxmMatchField()); if (entry.getOxmClass().equals(ExperimenterClass.class)) { - key.setExperimenterId(entry.getAugmentation(ExperimenterMatchEntry.class).getExperimenter()); + key.setExperimenterId(entry.getAugmentation(ExperimenterIdMatchEntry.class) + .getExperimenter().getValue()); } else { key.setExperimenterId(null); } diff --git a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/TypeKeyMakerFactory.java b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/TypeKeyMakerFactory.java index 4ba9294b..80060e33 100644 --- a/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/TypeKeyMakerFactory.java +++ b/openflow-protocol-impl/src/main/java/org/opendaylight/openflowjava/protocol/impl/util/TypeKeyMakerFactory.java @@ -11,9 +11,9 @@ package org.opendaylight.openflowjava.protocol.impl.util; import org.opendaylight.openflowjava.protocol.api.keys.ActionSerializerKey; import org.opendaylight.openflowjava.protocol.api.keys.InstructionSerializerKey; import org.opendaylight.openflowjava.protocol.api.keys.MatchEntrySerializerKey; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterAction; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterInstruction; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterMatchEntry; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdAction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdInstruction; +import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.augments.rev131002.ExperimenterIdMatchEntry; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.Experimenter; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev130731.actions.grouping.Action; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.instruction.rev130731.instructions.grouping.Instruction; @@ -39,8 +39,8 @@ public abstract class TypeKeyMakerFactory { key = new MatchEntrySerializerKey<>(getVersion(), entry.getOxmClass(), entry.getOxmMatchField()); if (entry.getOxmClass().equals(ExperimenterClass.class)) { - key.setExperimenterId(entry.getAugmentation(ExperimenterMatchEntry.class) - .getExperimenter()); + key.setExperimenterId(entry.getAugmentation(ExperimenterIdMatchEntry.class) + .getExperimenter().getValue()); return key; } key.setExperimenterId(null); @@ -59,7 +59,8 @@ public abstract class TypeKeyMakerFactory { @Override public ActionSerializerKey make(Action entry) { if (entry.getType().equals(Experimenter.class)) { - return new ActionSerializerKey<>(getVersion(), entry.getType(), entry.getAugmentation(ExperimenterAction.class).getExperimenter()); + return new ActionSerializerKey<>(getVersion(), entry.getType(), + entry.getAugmentation(ExperimenterIdAction.class).getExperimenter().getValue()); } return new ActionSerializerKey<>(getVersion(), entry.getType(), null); } @@ -77,7 +78,9 @@ public abstract class TypeKeyMakerFactory { public InstructionSerializerKey make(Instruction entry) { if (entry.getType().equals(org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common .instruction.rev130731.Experimenter.class)) { - return new InstructionSerializerKey<>(getVersion(), entry.getType(), entry.getAugmentation(ExperimenterInstruction.class).getExperimenter()); + return new InstructionSerializerKey<>(getVersion(), entry.getType(), + entry.getAugmentation(ExperimenterIdInstruction.class) + .getExperimenter().getValue()); } return new InstructionSerializerKey<>(getVersion(), entry.getType(), null); } diff --git a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactoryTest.java b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactoryTest.java index 5e6017a9..24985bb8 100644 --- a/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactoryTest.java +++ b/openflow-protocol-impl/src/test/java/org/opendaylight/openflowjava/protocol/impl/deserialization/factories/MultipartReplyMessageFactoryTest.java @@ -60,13 +60,10 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev130731.OxmM import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.MultipartReplyMessage; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandDropCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandDscpRemarkCase; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.MeterBandExperimenterCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.meter.band.drop._case.MeterBandDrop; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.meter.band.dscp.remark._case.MeterBandDscpRemark; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.meter.band.header.meter.band.meter.band.experimenter._case.MeterBandExperimenter; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyAggregateCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyDescCase; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyExperimenterCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyFlowCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyGroupCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyGroupDescCase; @@ -79,7 +76,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731 import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.MultipartReplyTableCase; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.aggregate._case.MultipartReplyAggregate; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.desc._case.MultipartReplyDesc; -import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.experimenter._case.MultipartReplyExperimenter; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.flow._case.MultipartReplyFlow; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.flow._case.multipart.reply.flow.FlowStats; import org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.protocol.rev130731.multipart.reply.multipart.reply.body.multipart.reply.group._case.MultipartReplyGroup; @@ -702,7 +698,7 @@ public class MultipartReplyMessageFactoryTest { @Test public void testMultipartReplyMeterConfigBody(){ ByteBuf bb = BufferHelper.buildBuffer("00 0A 00 01 00 00 00 00 "+ - "00 38 "+//len + "00 28 "+//len "00 0A "+//flags "00 00 00 09 "+//meterId "00 01 "+//meterBandDrop.type @@ -715,13 +711,7 @@ public class MultipartReplyMessageFactoryTest { "00 00 00 11 "+//meterBandDscp.rate "00 00 00 20 "+//meterBandDscp.burstSize "04 "+//meterBandDscp.precLevel - "00 00 00 "+//meterBandDscp.pad - "FF FF "+//meterBandExperimenter.type - "00 10 "+//meterBandExperimenter.len - "00 00 00 11 "+//meterBandExperimenter.rate - "00 00 00 20 "+//meterBandExperimenter.burstSize - "00 00 00 04"//meterBandExperimenter.experimenter - ); + "00 00 00");//meterBandDscp.pad MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb); @@ -747,13 +737,6 @@ public class MultipartReplyMessageFactoryTest { Assert.assertEquals("Wrong meterBandDscp.rate", 17, meterBandDscp.getRate().intValue()); Assert.assertEquals("Wrong meterBandDscp.burstSize", 32, meterBandDscp.getBurstSize().intValue()); Assert.assertEquals("Wrong meterBandDscp.precLevel", 4, meterBandDscp.getPrecLevel().intValue()); - - MeterBandExperimenterCase experimenterCase = (MeterBandExperimenterCase) message.getMeterConfig().get(0).getBands().get(2).getMeterBand(); - MeterBandExperimenter meterBandExperimenter = experimenterCase.getMeterBandExperimenter(); - Assert.assertEquals("Wrong meterBandExperimenter.type", 0xFFFF, meterBandExperimenter.getType().getIntValue()); - Assert.assertEquals("Wrong meterBandExperimenter.rate", 17, meterBandExperimenter.getRate().intValue()); - Assert.assertEquals("Wrong meterBandExperimenter.burstSize", 32, meterBandExperimenter.getBurstSize().intValue()); - Assert.assertEquals("Wrong meterBandExperimenter.experimenter", 4, meterBandExperimenter.getExperimenter().intValue()); } /** @@ -762,7 +745,7 @@ public class MultipartReplyMessageFactoryTest { @Test public void testMultipartReplyMeterConfigBodyMulti(){ ByteBuf bb = BufferHelper.buildBuffer("00 0A 00 01 00 00 00 00 "+ - "00 38 "+//len + "00 28 "+//len "00 06 "+//flags "00 00 00 09 "+//meterId "00 01 "+//meterBandDrop.type @@ -776,11 +759,6 @@ public class MultipartReplyMessageFactoryTest { "00 00 00 20 "+//meterBandDscp.burstSize "04 "+//meterBandDscp.precLevel "00 00 00 "+//meterBandDscp.pad - "FF FF "+//meterBandExperimenter.type - "00 10 "+//meterBandExperimenter.len - "00 00 00 11 "+//meterBandExperimenter.rate - "00 00 00 20 "+//meterBandExperimenter.burstSize - "00 00 00 04 "+//meterBandExperimenter.experimenter "00 18 "+//len01 "00 03 "+//flags01 @@ -818,13 +796,6 @@ public class MultipartReplyMessageFactoryTest { Assert.assertEquals("Wrong meterBandDscp.burstSize", 32, meterBandDscp.getBurstSize().intValue()); Assert.assertEquals("Wrong meterBandDscp.precLevel", 4, meterBandDscp.getPrecLevel().intValue()); - MeterBandExperimenterCase experimenterCase = (MeterBandExperimenterCase) message.getMeterConfig().get(0).getBands().get(2).getMeterBand(); - MeterBandExperimenter meterBandExperimenter = experimenterCase.getMeterBandExperimenter(); - Assert.assertEquals("Wrong meterBandExperimenter.type", 0xFFFF, meterBandExperimenter.getType().getIntValue()); - Assert.assertEquals("Wrong meterBandExperimenter.rate", 17, meterBandExperimenter.getRate().intValue()); - Assert.assertEquals("Wrong meterBandExperimenter.burstSize", 32, meterBandExperimenter.getBurstSize().intValue()); - Assert.assertEquals("Wrong meterBandExperimenter.experimenter", 4, meterBandExperimenter.getExperimenter().intValue()); - LOGGER.info(message.getMeterConfig().get(0).getFlags().toString()); Assert.assertEquals("Wrong flags01", new MeterFlags(false, true, true, false), message.getMeterConfig().get(1).getFlags()); @@ -839,31 +810,7 @@ public class MultipartReplyMessageFactoryTest { Assert.assertEquals("Wrong meterBandDscp01.precLevel", 4, meterBandDscp01.getPrecLevel().intValue()); } - - /** - * Testing {@link MultipartReplyMessageFactory} for correct translation into POJO - */ - @Test - public void testMultipartReplyExperimenterBody(){ - ByteBuf bb = BufferHelper.buildBuffer("FF FF 00 01 00 00 00 00 "+ - "00 00 00 0F "+//experimenterId - "00 00 00 FF "+//expType - "00 00 01 01 00 00 01 01" - ); - - MultipartReplyMessage builtByFactory = BufferHelper.deserialize(multipartFactory, bb); - - BufferHelper.checkHeaderV13(builtByFactory); - Assert.assertEquals("Wrong type", 0xFFFF, builtByFactory.getType().getIntValue()); - Assert.assertEquals("Wrong flag", true, builtByFactory.getFlags().isOFPMPFREQMORE()); - MultipartReplyExperimenterCase messageCase = (MultipartReplyExperimenterCase) builtByFactory.getMultipartReplyBody(); - MultipartReplyExperimenter message = messageCase.getMultipartReplyExperimenter(); - Assert.assertEquals("Wrong experimenterId", 15, message.getExperimenter().intValue()); - Assert.assertEquals("Wrong expType", 255, message.getExpType().intValue()); - Assert.assertArrayEquals("Wrong data", new byte[]{0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x01, 0x01}, - message.getData()); - } - + /** * Testing {@link MultipartReplyMessageFactory} for correct translation into POJO */