Its using a unix ‘diff’ format notation to show how two RIB states differ, which is immediately understandable to anyone used to using the diff command.
Many people use zebra/quagga derived tools like libbgpdump to read RIB dumps. Yasuhiro decided to add some features to help understand basic ‘health checks’ on BGP such as the changes taking place in routing, or for comparisons between different views of BGP. Its a 4000 line C code implementation. Its available from github at
Yasuhiro’s code doesn’t support all formats of RIB, it handles bz2 compressed, MRT TABLE_DUMP_V2 format, for both IPv4 and IPv6. It can show basic per-peer statistics such as the number of routes, and nexthops. And it can show the longest-match table lookup for prefixes. He also constructs a Patricia Trie or radix tree of the prefixes which can be used to look up specific routing outcomes for a prefix.
Future codework includes adding features to understand route leaks.
Yasuhiro has really helped add to the toolbase, and put something useful out for review which can be used in a commandline, to build bigger systems.
The views expressed by the authors of this blog are their own and do not necessarily reflect the views of APNIC. Please note a Code of Conduct applies to this blog.