Re: [openflowplugin-dev] Switch didn't register to controller in opendaylight controller (Lithium) and Openvswitch 2.4.0?


Michal Rehak -X (mirehak - PANTHEON TECHNOLOGIES@Cisco) <mirehak@...>
 

Hi Ben,
this is caused by table-features. Please file a bug to openflowjava.
You might workaround this issue by downgrading to 2.3.x version of openvswitch (there are table-features not supported).

And just to defend ofjava a bit - by cpqd switch there are table-features supported and it works. Ovs-2.4 is the first version of ovs with table-features and message content is probably more complicated.


Regards,
Michal


From: openflowplugin-dev-bounces@... [openflowplugin-dev-bounces@...] on behalf of 鐘晧文 [hnaxiorll@...]
Sent: Friday, September 25, 2015 02:11
To: openflowplugin-dev@...
Subject: [openflowplugin-dev] Switch didn't register to controller in opendaylight controller (Lithium) and Openvswitch 2.4.0?

Hi all,

I use the openvswitch 2.4.0 and opendaylight controller (Lithium).

Then, I install these feature odl-dlux-all, odl-restconf-all, odl-mdsal-apidocs, and odl-openflowplugin-all-li in ODL.

Next, I create a bridge and set controller but I can't see any switch node in web.

The OVS shows that `Controller "tcp:192.168.5.131:6633is_connected: true` (ovs-vsctl show).

The log of ODL shows a lot of warn and some error:

2015-09-24 18:17:02,718 | INFO  | entLoopGroup-8-4 | DeviceManagerImpl                | 279 - org.opendaylight.openflowplugin.impl - 0.1.0.Lithium | Static node Uri [_value=openflow:134303595078473] info: OFPMPGROUPFEATURES collected
2015-09-24 18:17:02,719 | TRACE | entLoopGroup-8-4 | OpenflowProtocolListenerFullImpl | 279 - org.opendaylight.openflowplugin.impl - 0.1.0.Lithium | Multipart Reply with XID: 2
2015-09-24 18:17:02,732 | WARN  | entLoopGroup-8-4 | OFDecoder                        | 276 - org.opendaylight.openflowjava.openflow-protocol-impl - 0.6.0.Lithium | Message deserialization failed
java.lang.IllegalStateException: Deserializer for key: msgVersion: 4 objectClass: org.opendaylight.yang.gen.v1.urn.opendaylight.openflow.oxm.rev150225.match.entries.grouping.MatchEntry msgType: 1 oxm_field: 31 experimenterID: null was not found - please verify that all needed deserializers ale loaded correctly
        at org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializerRegistryImpl.getDeserializer(DeserializerRegistryImpl.java:64)[276:org.opendaylight.openflowjava.openflow-protocol-impl:0.6.0.Lithium]
        at org.opendaylight.openflowjava.protocol.impl.util.ListDeserializer.deserializeHeaders(ListDeserializer.java:71)[276:org.opendaylight.openflowjava.openflow-protocol-impl:0.6.0.Lithium]
        at org.opendaylight.openflowjava.protocol.impl.deserialization.factories.MultipartReplyMessageFactory.createTableFeaturesProperties(MultipartReplyMessageFactory.java:426)[276:org.opendaylight.openflowjava.openflow-protocol-impl:0.6.0.Lithium]
        at org.opendaylight.openflowjava.protocol.impl.deserialization.factories.MultipartReplyMessageFactory.setTableFeatures(MultipartReplyMessageFactory.java:361)[276:org.opendaylight.openflowjava.openflow-protocol-impl:0.6.0.Lithium]
        at org.opendaylight.openflowjava.protocol.impl.deserialization.factories.MultipartReplyMessageFactory.deserialize(MultipartReplyMessageFactory.java:216)[276:org.opendaylight.openflowjava.openflow-protocol-impl:0.6.0.Lithium]
        at org.opendaylight.openflowjava.protocol.impl.deserialization.factories.MultipartReplyMessageFactory.deserialize(MultipartReplyMessageFactory.java:146)[276:org.opendaylight.openflowjava.openflow-protocol-impl:0.6.0.Lithium]
        at org.opendaylight.openflowjava.protocol.impl.deserialization.DeserializationFactory.deserialize(DeserializationFactory.java:53)[276:org.opendaylight.openflowjava.openflow-pr
...
2015-09-24 18:17:03,251 | DEBUG | entLoopGroup-8-4 | RpcContextImpl                   | 279 - org.opendaylight.openflowplugin.impl - 0.1.0.Lithium | Registration of service interface org.opendaylight.yang.gen.v1.urn.opendaylight.flow.statistics.rev130819.OpendaylightFlowStatisticsService for device KeyedInstanceIdentifier{targetType=interface org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node, path=[org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.Nodes, org.opendaylight.yang.gen.v1.urn.opendaylight.inventory.rev130819.nodes.Node[key=NodeKey [_id=Uri [_value=openflow:134303595078473]]]]}.
2015-09-24 18:17:03,252 | TRACE | entLoopGroup-8-4 | OpenflowProtocolListenerFullImpl | 279 - org.opendaylight.openflowplugin.impl - 0.1.0.Lithium | Multipart Reply with XID: 11
2015-09-24 18:17:03,253 | ERROR | lt-dispatcher-14 | Shard                            | 208 - org.opendaylight.controller.sal-akka-raft - 1.2.0.Lithium | member-1-shard-inventory-operational An exception occurred while preCommitting transaction member-1-chn-15-txn-1
java.util.concurrent.ExecutionException: java.lang.IllegalArgumentException: Metadata not available for modification NodeModification [identifier=(urn:opendaylight:flow:inventory?revision=2013-08-19)table[{(urn:opendaylight:flow:inventory?revision=2013-08-19)id=140}], modificationType=TOUCH, childModification={AugmentationIdentifier{childNames=[(urn:opendaylight:flow:table:statistics?revision=2013-12-15)flow-table-statistics]}=NodeModification [identifier=AugmentationIdentifier{childNames=[(urn:opendaylight:flow:table:statistics?revision=2013-12-15)flow-table-statistics]}, modificationType=TOUCH, childModification={(urn:opendaylight:flow:table:statistics?revision=2013-12-15)flow-table-statistics=NodeModification [identifier=(urn:opendaylight:flow:table:statistics?revision=2013-12-15)flow-table-statistics, modificationType=WRITE, childModification={}]}]}]
        at com.google.common.util.concurrent.Futures$ImmediateFailedFuture.get(Futures.java:190)[97:com.google.guava:18.0.0]
        at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.doCommit(ShardCommitCoordinator.java:357)[215:org.opendaylight.controller.sal-distributed-datastore:1.2.0.Lithium]
        at org.opendaylight.controller.cluster.datastore.ShardCommitCoordinator.doCanCommit(ShardCommitCoordinator.java:316)[215:org.opend
...
2015-09-24 18:17:06,282 | WARN  | lt-dispatcher-16 | SimpleShardDataTreeCohort        | 215 - org.opendaylight.controller.sal-distributed-datastore - 1.2.0.Lithium | Store Tx member-1-chn-17-txn-1: Data validation failed for path /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:134303595078473}].
org.opendaylight.yangtools.yang.data.api.schema.tree.ModifiedNodeDoesNotExistException: Node /(urn:opendaylight:inventory?revision=2013-08-19)nodes/node/node[{(urn:opendaylight:inventory?revision=2013-08-19)id=openflow:134303595078473}] does not exist. Cannot apply modification to its children.
        at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:182)[121:org.opendaylight.yangtools.yang-data-impl:0.7.0.Lithium]
        at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[121:org.opendaylight.yangtools.yang-data-impl:0.7.0.Lithium]
        at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:205)[121:org.opendaylight.yangtools.yang-data-impl:0.7.0.Lithium]
        at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:189)[121:org.opendaylight.yangtools.yang-data-impl:0.7.0.Lithium]
        at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[121:org.opendaylight.yangtools.yang-data-impl:0.7.0.Lithium]

Does anyone know what problem?
Thanks,
Ben.

Join {z.archive.openflowjava-dev@lists.opendaylight.org to automatically receive all group messages.