[BGPCEP-426] BGP-LS Topology provider is not able to handle MPLS TE LSP NLRI Type Created: 30/Mar/16  Updated: 16/Nov/21

Status: Confirmed
Project: bgpcep
Component/s: BGP
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Milos Fabian Assignee: Unassigned
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: All
Platform: All


Attachments: File bgpsim2.pcap    
Issue Links:
Blocks
is blocked by BGPCEP-364 Migrate to the IETF I2RS network topo... Confirmed
Duplicate
is duplicated by BGPCEP-427 IllegalStateException and Unsupported... Resolved
External issue ID: 5623

 Description   

2016-03-29 15:47:09,609 | WARN | on-dispatcher-87 | AbstractTopologyBuilder | 190 - org.opendaylight.bgpcep.bgp-topology-provider - 0.5.2.SNAPSHOT | Data change org.opendaylight.controller.md.sal.binding.impl.LazyDataTreeModification@43bf9f09 was not completely propagated to listener org.opendaylight.bgpcep.bgp.topology.provider.LinkstateTopologyBuilder@59622a9e, aborting
java.lang.IllegalStateException: Unhandled object class interface org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev150210.linkstate.object.type.TeLspCase
at org.opendaylight.bgpcep.bgp.topology.provider.LinkstateTopologyBuilder.createObject(LinkstateTopologyBuilder.java:859)[190:org.opendaylight.bgpcep.bgp-topology-provider:0.5.2.SNAPSHOT]
at org.opendaylight.bgpcep.bgp.topology.provider.LinkstateTopologyBuilder.createObject(LinkstateTopologyBuilder.java:121)[190:org.opendaylight.bgpcep.bgp-topology-provider:0.5.2.SNAPSHOT]
at org.opendaylight.bgpcep.bgp.topology.provider.AbstractTopologyBuilder.routeChanged(AbstractTopologyBuilder.java:165)[190:org.opendaylight.bgpcep.bgp-topology-provider:0.5.2.SNAPSHOT]
at org.opendaylight.bgpcep.bgp.topology.provider.AbstractTopologyBuilder.onDataTreeChanged(AbstractTopologyBuilder.java:134)[190:org.opendaylight.bgpcep.bgp-topology-provider:0.5.2.SNAPSHOT]
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:41)[137:org.opendaylight.controller.sal-binding-broker-impl:1.3.2.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:53)[162:org.opendaylight.controller.sal-distributed-datastore:1.3.2.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:37)[162:org.opendaylight.controller.sal-distributed-datastore:1.3.2.SNAPSHOT]
at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:34)[158:org.opendaylight.controller.sal-clustering-commons:1.3.2.SNAPSHOT]
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167)[147:com.typesafe.akka.actor:2.3.14]
at akka.actor.Actor$class.aroundReceive(Actor.scala:467)[147:com.typesafe.akka.actor:2.3.14]
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97)[147:com.typesafe.akka.actor:2.3.14]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[147:com.typesafe.akka.actor:2.3.14]
at akka.actor.ActorCell.invoke(ActorCell.scala:487)[147:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)[147:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.run(Mailbox.scala:220)[147:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)[147:com.typesafe.akka.actor:2.3.14]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[144:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[144:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[144:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[144:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
2016-03-29 15:47:09,610 | ERROR | on-dispatcher-87 | DataTreeChangeListenerActor | 162 - org.opendaylight.controller.sal-distributed-datastore - 1.3.2.SNAPSHOT | Error notifying listener org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter@33542af1
java.lang.UnsupportedOperationException: Transaction cancellation is not supported
at org.opendaylight.controller.md.sal.dom.broker.impl.PingPongTransactionChain$4.cancel(PingPongTransactionChain.java:368)[135:org.opendaylight.controller.sal-broker-impl:1.3.2.SNAPSHOT]
at org.opendaylight.controller.md.sal.binding.impl.AbstractWriteTransaction.doCancel(AbstractWriteTransaction.java:138)[137:org.opendaylight.controller.sal-binding-broker-impl:1.3.2.SNAPSHOT]
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMWriteTransactionAdapter.cancel(BindingDOMWriteTransactionAdapter.java:88)[137:org.opendaylight.controller.sal-binding-broker-impl:1.3.2.SNAPSHOT]
at org.opendaylight.bgpcep.bgp.topology.provider.AbstractTopologyBuilder.onDataTreeChanged(AbstractTopologyBuilder.java:137)[190:org.opendaylight.bgpcep.bgp-topology-provider:0.5.2.SNAPSHOT]
at org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataTreeChangeListenerAdapter.onDataTreeChanged(BindingDOMDataTreeChangeListenerAdapter.java:41)[137:org.opendaylight.controller.sal-binding-broker-impl:1.3.2.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.dataChanged(DataTreeChangeListenerActor.java:53)[162:org.opendaylight.controller.sal-distributed-datastore:1.3.2.SNAPSHOT]
at org.opendaylight.controller.cluster.datastore.DataTreeChangeListenerActor.handleReceive(DataTreeChangeListenerActor.java:37)[162:org.opendaylight.controller.sal-distributed-datastore:1.3.2.SNAPSHOT]
at org.opendaylight.controller.cluster.common.actor.AbstractUntypedActor.onReceive(AbstractUntypedActor.java:34)[158:org.opendaylight.controller.sal-clustering-commons:1.3.2.SNAPSHOT]
at akka.actor.UntypedActor$$anonfun$receive$1.applyOrElse(UntypedActor.scala:167)[147:com.typesafe.akka.actor:2.3.14]
at akka.actor.Actor$class.aroundReceive(Actor.scala:467)[147:com.typesafe.akka.actor:2.3.14]
at akka.actor.UntypedActor.aroundReceive(UntypedActor.scala:97)[147:com.typesafe.akka.actor:2.3.14]
at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516)[147:com.typesafe.akka.actor:2.3.14]
at akka.actor.ActorCell.invoke(ActorCell.scala:487)[147:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238)[147:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.Mailbox.run(Mailbox.scala:220)[147:com.typesafe.akka.actor:2.3.14]
at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:397)[147:com.typesafe.akka.actor:2.3.14]
at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)[144:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)[144:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)[144:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]
at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)[144:org.scala-lang.scala-library:2.11.7.v20150622-112736-1fbce4612c]



 Comments   
Comment by Milos Fabian [ 31/Mar/16 ]

stable/beryllium: https://git.opendaylight.org/gerrit/#/c/36945/

Comment by Robert Varga [ 01/Apr/16 ]

master: https://git.opendaylight.org/gerrit/37021

Comment by Robert Varga [ 01/Apr/16 ]

Fixes merged, but the topology manager should be handling all types, as a TE LSP represents connectivity between nodes.

Comment by Ajay L [ 20/Apr/16 ]

No known BGP-LS device implementation (including Cisco XR) supports MPLS TE LSP NLRI currently (latest draft: https://tools.ietf.org/html/draft-ietf-idr-te-lsp-distribution-04)

Comment by Ajay L [ 20/Apr/16 ]

Using simulated payload using below value to repro this scenario

OPEN payload:
0xffffffffffffffffffffffffffffffff00350104fbf000b40a1e205c1802060104000100010206010440040047020641040000fbf0

UPDATE payload:
0xffffffffffffffffffffffffffffffff003c0200000025800e2240044704c00002010000050015070000000000000001010203040001000105060708

Note: this payload is based on version 3 of the draft and has changed in version 4

PCAP file generated is attached for reference

Comment by Ajay L [ 20/Apr/16 ]

Attachment bgpsim2.pcap has been added with description: Pcap of payload used for repro

Comment by Ajay L [ 03/May/16 ]

It is not clear at this point how to use MPLS-TE LSP NLRI information to update ODL network-topology model. Hence moving the bug to backlog till we have more clarity on this

Generated at Wed Feb 07 19:13:01 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.