Hi Arun,
Thanks for replying to my message. You got your guess right! I did port
the registration to the new method used by the new version. However, now the
registration needs to be in the constructor of the injected class in Karaf for
loading the experimenters. I just forgot to call the registration method (that
was previously automatically called in the old way) from the constructor. Did
call it and it now works.
Thanks,
> Le 3 oct. 2017 à 02:27, D Arunprakash <[email protected]> a écrit :
>
> Hi Yann,
> You might hit this issue if the registration for experimenters are not done.
> If its vendor specific extension, then you need to register yourself before
> using it.
> For example, bundle experimenters are registered in OnfExtensionProvider.java.
>
> switchConnectionProvider.registerExperimenterMessageSerializer(
> new ExperimenterIdTypeSerializerKey<>(OFConstants.OFP_VERSION_1_3,
>
> OnfConstants.ONF_EXPERIMENTER_ID,
>
> OnfConstants.ONF_ET_BUNDLE_CONTROL,
> ExperimenterDataOfChoice.class),
> new BundleControlFactory());
>
>
> You should have similar code in previous release which you might have missed
> to port. Could you please check that.
> Regards,
> Arun
>
> From: [email protected]
> [mailto:[email protected]] On Behalf Of yann
> bourdeau
> Sent: Tuesday, October 03, 2017 3:49 AM
> To: Yrineu Rodrigues <[email protected]>
> Cc: [email protected]; Arun Paneri (NoviFlow)
> <[email protected]>
> Subject: Re: [openflowplugin-dev] Problem with NoviFlow experimenters in
> master version current.
>
> Hi Yrineu,
>
> Thanks for taking time to reply. It is not with OVS but NoviFlow
> switches. I already set the version to 1.3 in the switch. Like I said it was
> working the previous release, something must have changed somewhere but I was
> not able to pinpoint it yet.
>
>
>
>
> Le 2 oct. 2017 à 17:05, Yrineu Rodrigues <[email protected]
> <mailto:[email protected]>> a écrit :
>
> Hi Yann,
>
> Thanks for sharing that issue with us! I faced an issue like that in the past
> when I had tried to configure ODL openflow plugin with my OVS instance. I
> don't know if you are using OVS, but if yes, it may can be solved if you
> manually set OF version as 1.3 on your OVS instance.
>
> I hope that it can help you.
>
> On Mon, Oct 2, 2017 at 5:50 PM, yann bourdeau <[email protected]
> <mailto:[email protected]>> wrote:
> Hi all,
>
> I’m trying to port the NoviFlow to the latest master version of ODL and I
> have run into an issue.
>
> I always got :
> 2017-10-02 16:01:49,757 | WARN | entLoopGroup-9-1 | ActionUtil
> | 320 - org.opendaylight.openflowplugin.impl - 0.6.0.SNAPSHOT |
> Serializer for action interface
> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowplugin.extension.noviflow.action.rev170317.nodes.node.table.flow.instructions.instruction.instruction.apply.actions._case.apply.actions.action.action.NfxActionPopVxlanHeaderNodesNodeTableFlowApplyActionsCase
> for version 4 not found.
>
>
> From the stack trace:
>
> java.lang.IllegalStateException: Serializer for key: msgVersion: 4
> objectType:
> org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.common.action.rev150203.actions.grouping.Action
> action type:
> org.opendaylight.yang.gen.v1.urn.opendaylight.openflowjava.nfx.action.rev170314.action.container.action.choice.ActionPopVxlanHeader
> experimenterID: 4278190082 was not found - please verify that you are using
> correct message combination (e.g. OF v1.0 message to OF v1.0 device)
> at
> org.opendaylight.openflowjava.protocol.impl.serialization.SerializerRegistryImpl.getSerializer(SerializerRegistryImpl.java:72)
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.util.ActionUtil.lambda$null$0(ActionUtil.java:57)
> at java.util.Optional.map(Optional.java:215)[:1.8.0_121]
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.util.ActionUtil.lambda$writeAction$1(ActionUtil.java:53)
> at java.util.Optional.flatMap(Optional.java:241)[:1.8.0_121]
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.util.ActionUtil.writeAction(ActionUtil.java:49)
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.instructions.AbstractActionInstructionSerializer.lambda$null$1(AbstractActionInstructionSerializer.java:45)
> at
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)[:1.8.0_121]
> at
> java.util.stream.SortedOps$SizedRefSortingSink.end(SortedOps.java:352)[:1.8.0_121]
> at
> java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)[:1.8.0_121]
> at
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)[:1.8.0_121]
> at
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)[:1.8.0_121]
> at
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)[:1.8.0_121]
> at
> java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)[:1.8.0_121]
> at
> java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)[:1.8.0_121]
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.instructions.AbstractActionInstructionSerializer.lambda$writeActions$2(AbstractActionInstructionSerializer.java:44)
> at java.util.Optional.map(Optional.java:215)[:1.8.0_121]
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.instructions.AbstractActionInstructionSerializer.writeActions(AbstractActionInstructionSerializer.java:40)
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.instructions.ApplyActionsInstructionSerializer.serialize(ApplyActionsInstructionSerializer.java:23)
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.instructions.ApplyActionsInstructionSerializer.serialize(ApplyActionsInstructionSerializer.java:17)
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.util.InstructionUtil.writeInstruction(InstructionUtil.java:41)
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.messages.FlowMessageSerializer.lambda$null$5(FlowMessageSerializer.java:197)[320:org.opendaylight.openflowplugin.impl:0.6.0.SNAPSHOT]
> at
> java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)[:1.8.0_121]
> at
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)[:1.8.0_121]
> at
> java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)[:1.8.0_121]
> at
> java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)[:1.8.0_121]
> at java.util.ArrayList.forEach(ArrayList.java:1249)[:1.8.0_121]
> at
> java.util.stream.SortedOps$RefSortingSink.end(SortedOps.java:390)[:1.8.0_121]
> at java.util.stream.Sink$ChainedReference.end(Sink.java:258)[:1.8.0_121]
> at
> java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)[:1.8.0_121]
> at
> java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)[:1.8.0_121]
> at
> java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)[:1.8.0_121]
> at
> java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)[:1.8.0_121]
> at
> java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)[:1.8.0_121]
> at
> java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)[:1.8.0_121]
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.messages.FlowMessageSerializer.lambda$writeInstructions$6(FlowMessageSerializer.java:197)[320:org.opendaylight.openflowplugin.impl:0.6.0.SNAPSHOT]
> at java.util.Optional.ifPresent(Optional.java:159)[:1.8.0_121]
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.messages.FlowMessageSerializer.writeInstructions(FlowMessageSerializer.java:189)[320:org.opendaylight.openflowplugin.impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.messages.FlowMessageSerializer.writeFlow(FlowMessageSerializer.java:128)[320:org.opendaylight.openflowplugin.impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.messages.FlowMessageSerializer.serialize(FlowMessageSerializer.java:100)[320:org.opendaylight.openflowplugin.impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowplugin.impl.protocol.serialization.messages.FlowMessageSerializer.serialize(FlowMessageSerializer.java:64)[320:org.opendaylight.openflowplugin.impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowjava.protocol.impl.serialization.SerializationFactory.messageToBuffer(SerializationFactory.java:35)[326:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowjava.protocol.impl.core.OFEncoder.encode(OFEncoder.java:45)[326:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowjava.protocol.impl.core.OFEncoder.encode(OFEncoder.java:28)[326:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT]
> at
> io.netty.handler.codec.MessageToByteEncoder.write(MessageToByteEncoder.java:107)[94:io.netty.codec:4.1.8.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeWrite0(AbstractChannelHandlerContext.java:739)[99:io.netty.transport:4.1.8.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.invokeWrite(AbstractChannelHandlerContext.java:731)[99:io.netty.transport:4.1.8.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:817)[99:io.netty.transport:4.1.8.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:724)[99:io.netty.transport:4.1.8.Final]
> at
> io.netty.channel.AbstractChannelHandlerContext.write(AbstractChannelHandlerContext.java:705)[99:io.netty.transport:4.1.8.Final]
> at
> io.netty.channel.DefaultChannelPipeline.write(DefaultChannelPipeline.java:1017)[99:io.netty.transport:4.1.8.Final]
> at
> io.netty.channel.AbstractChannel.write(AbstractChannel.java:286)[99:io.netty.transport:4.1.8.Final]
> at
> org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractOutboundQueueManager.writeMessage(AbstractOutboundQueueManager.java:260)[326:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowjava.protocol.impl.core.connection.OutboundQueueManager.writeMessage(OutboundQueueManager.java:109)[326:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractStackedOutboundQueue.writeEntries(AbstractStackedOutboundQueue.java:151)[326:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractOutboundQueueManager.writeAndFlush(AbstractOutboundQueueManager.java:327)[326:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractOutboundQueueManager.flush(AbstractOutboundQueueManager.java:300)[326:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT]
> at
> org.opendaylight.openflowjava.protocol.impl.core.connection.AbstractOutboundQueueManager$1.run(AbstractOutboundQueueManager.java:85)[326:org.opendaylight.openflowplugin.openflowjava.openflow-protocol-impl:0.6.0.SNAPSHOT]
> at
> io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163)[96:io.netty.common:4.1.8.Final]
> at
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasksFrom(SingleThreadEventExecutor.java:379)[96:io.netty.common:4.1.8.Final]
> at
> io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:354)[96:io.netty.common:4.1.8.Final]
> at
> io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:436)[99:io.netty.transport:4.1.8.Final]
> at
> io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)[96:io.netty.common:4.1.8.Final]
> at
> io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)[96:io.netty.common:4.1.8.Final]
>
>
> In SerializerRegistryImpl.java
>
>
> @Override
> public void init() {
> registry = new HashMap<>();
> // Openflow message type serializers
> MessageFactoryInitializer.registerMessageSerializers(this);
>
> // Register Additional serializers
> AdditionalMessageFactoryInitializer.registerMessageSerializers(this);
>
> // match structure serializers
> registerSerializer(new MessageTypeKey<>(OF10, MatchV10.class),
> newOF10MatchSerializer());
> registerSerializer(new MessageTypeKey<>(OF13, Match.class),
> newOF13MatchSerializer());
>
> // match entry serializers
> MatchEntriesInitializer.registerMatchEntrySerializers(this);
> // action serializers
> ActionsInitializer.registerActionSerializers(this);
> // instruction serializers
> InstructionsInitializer.registerInstructionSerializers(this);
> }
>
> It seems that it does not init the experimenters. So my experimenters are not
> found. Is there something that has changed since the last release which the
> experimenters were working?
>
> Thanks for your help,
>
>
> Yann Bourdeau, M.Ing.
> Senior Software Developer
> 438-499-4607 <tel:(438)%20499-4607>
> [email protected] <mailto:[email protected]>
>
>
>
>
> _______________________________________________
> openflowplugin-dev mailing list
> [email protected]
> <mailto:[email protected]>
> https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev
> <https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev>
>
>
>
> --
> Yrineu Rodrigues
> Software Engineer
>
> SERRO
> www.serro.com <http://www.serro.com/>
> LinkedIn • Facebook • YouTube • Vimeo • Twitter @TeamSerro
>
> Disclaimer: This e-mail message contains information intended solely for the
> intended recipient and is confidential or private in nature. If you are not
> the intended recipient, you must not read, disseminate, distribute, copy or
> otherwise use this message or any file attached to this message. Any such
> unauthorized use is prohibited and may be unlawful. If you have received this
> message in error, please notify the sender immediately by email, facsimile or
> telephone and then delete the original message from your machine.
>
> San Francisco | Santa Clara | New York | Toronto | Mumbai | Pune
>
> Yann Bourdeau, M.Ing.
> Senior Software Developer
> 438-499-4607
> [email protected] <mailto:[email protected]>
Yann Bourdeau, M.Ing.
Senior Software Developer
438-499-4607
[email protected]
_______________________________________________
openflowplugin-dev mailing list
[email protected]
https://lists.opendaylight.org/mailman/listinfo/openflowplugin-dev