0.0.1 (2019-12-14): - fork bgpq3 into bgpq4 0.1.36-pre (2019-11-08): - minor documentation cleanup: bgpq3 supports much more vendors than just Cisco and Juniper. Copyright years updated. - Nokia SR OS "classic" actually supports aggregation and and more-specific filtering in prefix-lists. Thanks to mfisher128 for reporting. - change log level for prefixes with wrong address family from error to debugging: it's perfectly correct to have prefixes of different families in route-sets. Thanks to Jay Ford for suggestion. 0.1.35 (2018-11-30): - initial support for Juniper route-filter-lists (JunOS 16.2+). - too large (>124bytes) sources list was not handled correctly. Reported by Pier Carlo Chiodi. - initial support for Huawei format (prefix-lists and as-path filters) New flag -U. Requested by Alexander Wagberg. - fix ipv6 prefix-ranges. Reported by Jay Ford. - OpenBGPd change: -E now generates prefix-set instead of prefix-list. Based on submission by Denis Fondras - new option -w, allowing to 'validate' AS numbers included in as-path access-lists: only those AS having registered route-objects are allowed. By default checks route[4] presence, to check route6 objects shall be used together with -6. - cleanup OpenBGPd prefix-sets. Submitted by Claudio Jeker. - new flag -t: generate as-sets for OpenBGPD (OpenBSD 6.4+), BIRD and JSON formats. Based on submission by Claudio Jeker. - new flag -n: support for Nokia SR OS MD-CLI. Based on examples provided by Greg Hankins. - irrd queries for asn32 changed from asdot to asplain notation. Thanks to Troy2914 for heads up. 0.1.35-rc2 (2017-06-14) - OpenBSD need . Reported by Denis Fondras. - OpenBGPD output shall not emit 'deny any from any' in case of empty prefix-list. New flag -a introduced to allow peer-as indication. When this flag is not specified, empty prefix-list is generated (will not be accepted by OpenBGPD). Reported by Denis Fondras 0.1.35-rc (2017-30-05) - Nokia SR OS (formerly Alcatel-Lucent) support. Based on submission by Michail Litvak. - sync man-page with readme.md - socket() EAFNOSUPPORT error handling 0.1.33 (2016-10-14) - OpenBGPD support (-B). Submitted by Peter Hessler. 0.1.32 (2016-08-28) - rollback 0.1.32-rc2 (2015-07-01) change: by default all IRRD sources are allowed by default. Documentation updated to mark radb,ripe,apnic as 'recommended', not as 'preset default'. untagged yet (2016-05-10) - fix: was not able to build on Solaris. Thanks to Mansoor Ali Khan. - feature: IOS XR mode now supports as-paths (ios-regexs). Thanks to Tassos Chatzithomaoglou for examples and proofreading. (additions from 2015-09-23) - bugfix: stoplist shall be able to catch AS numbers as promised. - bugfix: bgpq3 shall not hang at unknown escapes in -M.. - gotcha: "ANY" object in recursive mode ignored: shut complaints on "ERROR:unexpected object 'ANY' in expanded_macro_limit (in response to !iAS-SET-SCOPESKY)" (object contains mbrs-by-ref: ANY). (additions from 2015-08-30) - bugfix: OpenBSD sys/queue.h does not have STAILQ_ interface. Thanks to Pedro Caetano for reporting and testing. - feature: alternate whois port can be configured with -h host[:port] - feature: new format char %N (object name) in formatted output. Thanks to Denis Fondras. - feature: new format chars %m (prefix mask) and %i (inverse mask) in formatted output. 0.1.32-rc5 (2015-07-12) - feature: -L : limit recursion depth when expanding as-sets (default: not limited). Based on idea by Eugene Demidov. - feature: stoplist. Now you can add EXCEPT Object... at the end of bgpq3 command line and corresponding as-sets and asns will not be expanded (does not works for prefixes and prefix-sets yet). - internals: major pipelining rewrite and some code cleanup. 0.1.32-rc4 (2015-07-06) - change: BIRD can't handle empty lists (NAME = []), so they are not generated at all. 0.1.32-rc3 (2015-07-01) - feature: option -s can be used to generate sequence numbers in IOS prefix-lists - feature: option -F can be used to generate output in user-defined format. Only prefix-lists supported for now. 0.1.32-rc2 (2015-07-01) - bugfix: when no sources provided in command line and via IRRD_SOURCES env, no source limitation were sent to IRRd. Thanks to Mikhail A. Grishin. 0.1.32-rc (2015-06-28) - bugfix: F source(s) unavailable message from IRRD was ignored. Please note: this error is caught only when all the specified sources are invalid. For example, 'bgpq3 -s nonexistant' will fail, however, 'bgpq3 -s nonexistant,ripe' will not fail and will use only ripe source. Thanks to Mikhail A. Grishin for reporting. - RIPE-style queries (-T route6 -i origin asNNN) replaced with IRRd-style !6asNNN queries. 0.1.31 (2015-06-23) - pipelining mode now counts buffered requests and issues dequeue when new request can overflow allocated buffer. So, bgpq3 shall no more require TCP tuning (it is still recomended, though). - tcp tuning parameters decreased in README (sx_maxsockbuf will not allow buffer over 2Mb anyway). 0.1.30 (2015-06-16) - bugfix: private asns with number > 2^31 were printed as negative integers. Thanks to Henrik Thostrup Jensen. - do not use ASNs reserved for documentation purposes and private use: 64496-64511 For documentation and sample code; reserved by [RFC5398] 64512-65534 For private use; reserved by [RFC6996] 65535 Reserved by [RFC7300] 65536-65551 For documentation and sample code; reserved by [RFC5398] 4200000000-4294967294 For private use; reserved by [RFC6996] 4294967295 Reserved by [RFC7300] Please, use new -p flag to include these asn's. Suggested by Henrik Thostrup Jensen and Job Snijders. - allow as-path generation with BIRD output. Suggested by Jiri Mikulas. - merge README.md changes by Job Snijders. - bugfix: incorrect asdot representation (as101. without symbols after dot) is not allowed anymore. 0.1.29 (2015-05-04) - do not include routes registered for AS23456 (transition-as) by default. Use new option -2 to restore old behaviour. 0.1.28 (2015-03-10) - minor changes: .spec update, non-silent failure on wrong af, more room for masklen... 0.1.27 (2015-03-10) - bugfix: some ipv6 prefixes were not parsed correctly since 0.1.26. Thanks to Job Snijders. 0.1.26 (2015-02-19) - RPSL support, can be found in rs-esnetcustomers. Thanks to Kris O'Connell for reporting. 0.1.25 (2014-10-29) - JSON support extended to handle "as-paths" too. Well, actually, as there are no defined format for as-path in json, bgpq3 just creates simple object like following: snar@fri:~/compile/bgpq3>./bgpq3 -j3f 20597 as-eltel {"NN": [ 112,5495,6857,8377,20597,34102,35357,43951, 52007,56764,197759,197888,198610,201499 ]} Based on suggestion by Henrik Thostrup Jensen. - -W len option documented. 0.1.24 (2014-07-31) - empty prefix-lists (Cisco), extended access-lists (Cisco), as-path filters (Cisco and Juniper) and route-filters (Juniper) handling: explicit 'deny any' entry now generated instead of implicit 'permit-any'. Based on suggestion by Tore Anderson. 0.1.23 (2014-07-30) - bugfix: use of -M option caused major slowdown as it turned off request pipelining... Thanks to Tore Anderson. 0.1.22 (2014-07-27) - bugfix: allow network object with stray spaces after prefix length. Found by Tom Eichhorn in 2620:74:14::/48 (VeriSign Route6, RADB). - bugfix: networks with leading zeros (02.51.252.0/22, as4787) are not parsed correctly in inet_ntop.. Found by Tom Eichhorn. 0.1.21 (2014-06-05) - new flag -b: generate prefix-filters for BIRD (http://bird.network.cz), contributed by Job Snijders. 0.1.20-todo2 (2014-05-01) - new flag -r , allowing bgpq to generate limited set of more-specific routes - only routes with prefix-length >= are accepted. Thanks to Pavel Gulchouck for suggesion. 0.1.20-todo (2013-10-07) - socket close code fixed. Thanks to Martin J. Levy. - new flag -4, "force ipv4". Actually does a little more than allowing for pedantic checks. Thanks to Martin J. Levy. 0.1.19 (2013-05-09) - CLANG compilation issues fixed. - bgpq3.spec added. Thanks to Arnoud Vermeer. 0.1.18 (2013-01-08) - JSON output format. Thanks to Job Snijders (Atrato Networks). 0.1.17 (2012-10-25) - route-sets handling in command-line added. Thanks to Alexandr Turovsky for pointing out. - bug in aggregation documentation fixed. Thanks to Nikolay Shopik. 0.1.16 (2012-01-19) - new option -m : maximum length of accepted prefixes. Suggested by Eugene Demidov, used to discard 'too long prefixes' (like /30-/32) even if they are registered in IRR. By default limit is not set and all prefixes accepted. - documentation redesigned into text/markdown and text/html (manpage supported still). 0.1.15 (2011-07-15) - prefix-set's for Cisco IOS XR now supported too. 0.1.14 (2011-06-18) - Fixed bug in sx_maxsockbuf in rare cases of OS maxsockbuf >2M. Thanks to Andreas Lundin. 0.1.13 (2011-06-14) - never publically released. 0.1.12 (2010-10-08) - Fixed bug preventing AS262144 (that's AS4.0 in asdot) to expand. Thanks to Sergey Matveychuk 0.1.11 (2010-04-19) - Fixed another bug in aggregation (-A) mode, thanks to Dmitry Tejblum. 0.1.10 (2009-06-13) - Fixed bug in aggregation (-A) mode, thanks to Sergey Gonchar. 0.1.9 (2009-03-27) - RIPE changed ASN32 notation to asplain. And RADB does not support asplain indexing (yet?).... Fixed. Thanks to Pavel Gluchouk. 0.1.8 (2008-12-25) - new flag -D for Cisco asdot notation. Cisco behaviour is a bit strange for me, but, well, that's their decision: When the asdot format is enabled as the default, any regular expressions to match 4-byte autonomous system numbers must be written using the asdot format, or else the regular expression match will fail. (c) http://www.cisco.com/en/US/docs/ios/12_0s/release/ntes/120SNEWF.html #wp3521658 (note the URL wrap). 0.1.7 (2008-12-19): - man page. Finally :) - option -h now means not help, but now it can be used to point to alternate IRRD host, like in old bgpq. 0.1.6 (2008-08-08): - maxsockbuf call added, that can help with pipelining of really large as-sets. - new key -M for juniper route-filters, f.e.: bgpq3 -JEM "protocol bgp;\n community no-export" -l PolicyName/TermName will generate term with additional match conditions, like: policy-options { policy-statement PolicyName { term TermName { replace: from { protocol bgp; community no-export; route-filter 10.0.0.0/24 exact; } } } } 0.1.5 (2008-06-02): - route-set's expansion added. Fully functional for IPv4 prefixes, but not for IPv6 - only those prefixes explicitely marked as 'member-of: RS..' will be expanded. This is due to limitation in IRRd. - extended access-lists (Cisco) and route-filters (Juniper) generation is supported now with new -E key. For Cisco ipv6 access-lists is not yet supported. 0.1.4 (2008-05-30): - bugfix for juniper as-path group generation. Thanks to Alexander Shikoff. 0.1.3 (2008-05-20): - aggregation (-A) now supported for Cisco prefix-lists. - pipelining now can be enabled for RIPE-style queries too (ipv6). - more-specific routes (-R len) feature ported from bgpq - pipelining now set by default. -T flag now disables pipelining. - strlcpy.c imported into sources. Not found on Linux :) 0.1.2 (2008-05-19): - final support for asn32, now with correct syntax for Juniper. - experimental 'pipelining' mode (flag -T), much faster when working with big as-set's. - RIPE-style query (-i origin) now requests only route6 objects. 0.1.1 (2008-05-16): - initial support for asn32 added (flag -3). By default it's off, and when bgpq sees 32-bit asn in resolver queue, it either replaces it with AS23456 (in as-path generation mode) or queries radb for prefixes with that origin. Note: for now only JunOS 9.1 can handle asn32, not Cisco IOS..