netfishers-onl / blt Goto Github PK
View Code? Open in Web Editor NEWBLT The BGP Linkstate Topographer
BLT The BGP Linkstate Topographer
Hello,
I'm trying to send the link state DB from a Juniper router. I have done the proper configuration for BGP and it works fine from a BGP point of view.
However, on reception of the updates, BLT crashes. Here's the log dump with DEBUG enabled:
2016-03-13 21:02:06,039 INFO [New I/O worker #154] InternalFSM: FSM for peer Backbone moved to Established
21:02:06.039 [QuartzScheduler_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of 1 triggers
2016-03-13 21:02:06,039 DEBUG [QuartzScheduler_QuartzSchedulerThread] QuartzSchedulerThread: batch acquisition of 1 triggers
21:02:06.072 [New I/O worker #154] INFO o.n.b.bgp.netty.handlers.BGPv4Codec - received packet onl.netfishers.blt.bgp.netty.protocol.KeepalivePacket@5f22eb6[type=4]
2016-03-13 21:02:06,072 INFO [New I/O worker #154] BGPv4Codec: received packet onl.netfishers.blt.bgp.netty.protocol.KeepalivePacket@5f22eb6[type=4]
21:02:06.073 [New I/O worker #154] INFO o.n.blt.bgp.netty.fsm.BGPv4FSM - received message onl.netfishers.blt.bgp.netty.protocol.KeepalivePacket@5f22eb6[type=4]
2016-03-13 21:02:06,073 INFO [New I/O worker #154] BGPv4FSM: received message onl.netfishers.blt.bgp.netty.protocol.KeepalivePacket@5f22eb6[type=4]
21:02:06.073 [QuartzScheduler_QuartzSchedulerThread] DEBUG o.quartz.core.QuartzSchedulerThread - batch acquisition of 1 triggers
2016-03-13 21:02:06,073 DEBUG [QuartzScheduler_QuartzSchedulerThread] QuartzSchedulerThread: batch acquisition of 1 triggers
21:02:06.073 [New I/O worker #154] ERROR o.n.b.b.n.p.u.UpdatePacketDecoder - Invalid length (4) for teDefaultMetric
2016-03-13 21:02:06,073 ERROR [New I/O worker #154] UpdatePacketDecoder: Invalid length (4) for teDefaultMetric
21:02:06.074 [New I/O worker #154] ERROR o.n.b.b.n.p.u.UpdatePacketDecoder - failed to decode TE default metric LINK_STATE attribute
onl.netfishers.blt.bgp.netty.protocol.update.OptionalAttributeErrorException: null
at onl.netfishers.blt.bgp.netty.protocol.update.LinkStateAttributeCodec.decodeTEDefaultMetric(LinkStateAttributeCodec.java:393) [blt.jar:na]
at onl.netfishers.blt.bgp.netty.protocol.update.LinkStateAttributeCodec.decodeAttr(LinkStateAttributeCodec.java:82) [blt.jar:na]
at onl.netfishers.blt.bgp.netty.protocol.update.UpdatePacketDecoder.decodeLinkStateAttribute(UpdatePacketDecoder.java:461) [blt.jar:na]
at onl.netfishers.blt.bgp.netty.protocol.update.UpdatePacketDecoder.decodePathAttributes(UpdatePacketDecoder.java:542) [blt.jar:na]
at onl.netfishers.blt.bgp.netty.protocol.update.UpdatePacketDecoder.decodeUpdatePacket(UpdatePacketDecoder.java:136) [blt.jar:na]
at onl.netfishers.blt.bgp.netty.protocol.BGPv4PacketDecoder.decodePacket(BGPv4PacketDecoder.java:55) [blt.jar:na]
at onl.netfishers.blt.bgp.netty.handlers.BGPv4Codec.messageReceived(BGPv4Codec.java:59) [blt.jar:na]
at org.jboss.netty.channel.SimpleChannelHandler.handleUpstream(SimpleChannelHandler.java:88) [blt.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560) [blt.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:787) [blt.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:296) [blt.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:462) [blt.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:443) [blt.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:303) [blt.jar:na]
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70) [blt.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:560) [blt.jar:na]
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:555) [blt.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:268) [blt.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:255) [blt.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:88) [blt.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.process(AbstractNioWorker.java:107) [blt.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:312) [blt.jar:na]
at org.jboss.netty.channel.socket.nio.AbstractNioWorker.run(AbstractNioWorker.java:88) [blt.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:178) [blt.jar:na]
at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) [blt.jar:na]
at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) [blt.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [na:1.8.0_74]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [na:1.8.0_74]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_74]
2016-03-13 21:02:06,074 ERROR [New I/O worker #154] UpdatePacketDecoder: failed to decode TE default metric LINK_STATE attribute
The icon "Toogle Auto Refresh" should visually reflect whether its enabled or disabled. Otherwise, the user has to guess if its enabled or disabled currently.
Hello,
if a link is down, BLT correctly shows a red, interupted link and allows to remove the link (since it is no longer present in the IGP topology).
However, it still considers this link, when calculating the shortest path from A to B (left click on the destination node, right click on the source node).
Best path calculation should ignore links that are not present in IGP anymore.
After importing the Link state db the topology renders but all devices are "unknown".
Router-ids are there, and snmp communities are configured for the appropriate ranges.
However, no snmp requests are sent out from the blt server.
BGP Hold Time in BLT is 30 seconds, but keepalive message are only sent every 60 seconds. This causes the BGP session to keep going down.
As per RFC4271 section 4.4, the keepalive interval should be one third of the Hold Time interval.
If the keepalive interval is bigger than hold time, the BGP session cannot possibly be stable.
It would probably best to bump the hold time to 180 seconds.
As per title , would be great to have support for snmp v3.
When IGP nodes have a huge amount of interfaces (mainly subinterfaces), most of SNMP polling tasks fail and this causes BLT to miss BGP keepalives, and peering to go up and down.
FIx to be evaluated: restrict SNMP polling to interfaces belonging to IGP only.
Node infos (when clicking on a node) are always shown at the top of the document.
However, when the map is bigger than the screen, there are scrollbars and when we are not at the top of the document, the node info box is basically hidden and we have to scroll to the top to see it.
It would be better to show it close to the actual node, or within the current focus.
The Dijkstra shortest path message should be in the foreground, otherwise it may not be readable:
http://www.bilder-upload.eu/show.php?file=771430-1463152220.png
Also, similar to the other issue, it may be a good idea to show this message near the destination node, instead of a static location.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.