mirror of
https://github.com/bgp/bgpq4
synced 2025-02-28 08:53:11 +00:00
0.1.19
This commit is contained in:
100
CHANGES
100
CHANGES
@@ -1,3 +1,7 @@
|
||||
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).
|
||||
|
||||
@@ -7,10 +11,10 @@
|
||||
- bug in aggregation documentation fixed. Thanks to Nikolay Shopik.
|
||||
|
||||
0.1.16 (2012-01-19)
|
||||
- new option -m <len>: 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.
|
||||
- new option -m <len>: 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).
|
||||
|
||||
@@ -25,7 +29,7 @@
|
||||
- never publically released.
|
||||
|
||||
0.1.12 (2010-10-08)
|
||||
- Fixed bug preventing AS262144 (that's AS4.0 in asdot) to expand.
|
||||
- Fixed bug preventing AS262144 (that's AS4.0 in asdot) to expand.
|
||||
Thanks to Sergey Matveychuk
|
||||
|
||||
0.1.11 (2010-04-19)
|
||||
@@ -36,70 +40,70 @@
|
||||
|
||||
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.
|
||||
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
|
||||
- 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).
|
||||
#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.
|
||||
- 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 <extra match condition> for juniper route-filters, f.e.:
|
||||
- maxsockbuf call added, that can help with pipelining of really large
|
||||
as-sets.
|
||||
- new key -M <extra match condition> 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:
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
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.
|
||||
- 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.
|
||||
- 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 :)
|
||||
- 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.
|
||||
- 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..
|
||||
- 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..
|
||||
|
||||
|
||||
@@ -353,11 +353,11 @@ bgpq_pipeline(FILE* f, int (*callback)(char*, void*), void* udata,
|
||||
|
||||
bp=malloc(sizeof(struct bgpq_prequest));
|
||||
if(!bp) {
|
||||
sx_report(SX_FATAL,"Unable to allocate %i bytes: %s\n",
|
||||
sx_report(SX_FATAL,"Unable to allocate %lu bytes: %s\n",
|
||||
sizeof(struct bgpq_prequest),strerror(errno));
|
||||
exit(1);
|
||||
};
|
||||
memset(bp,0,sizeof(bp));
|
||||
memset(bp,0,sizeof(struct bgpq_prequest));
|
||||
|
||||
ret=fwrite(request,1,strlen(request),f);
|
||||
|
||||
@@ -494,7 +494,7 @@ bgpq_expand_radb(FILE* f, int (*callback)(char*, void*), void* udata,
|
||||
sx_report(SX_FATAL,"EOF from radb (expand,radb)\n");
|
||||
exit(1);
|
||||
};
|
||||
SX_DEBUG(debug_expander>2,"expander: initially got %i bytes, '%s'\n",
|
||||
SX_DEBUG(debug_expander>2,"expander: initially got %lu bytes, '%s'\n",
|
||||
strlen(request),request);
|
||||
if(request[0]=='A') {
|
||||
char* eon, *c;
|
||||
@@ -516,7 +516,7 @@ bgpq_expand_radb(FILE* f, int (*callback)(char*, void*), void* udata,
|
||||
};
|
||||
exit(1);
|
||||
};
|
||||
SX_DEBUG(debug_expander>2,"expander: final reply of %i bytes, '%s'\n",
|
||||
SX_DEBUG(debug_expander>2,"expander: final reply of %lu bytes, '%s'\n",
|
||||
strlen(recvbuffer),recvbuffer);
|
||||
|
||||
for(c=recvbuffer; c<recvbuffer+togot;) {
|
||||
|
||||
18
configure
vendored
18
configure
vendored
@@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Guess values for system-dependent variables and create Makefiles.
|
||||
# Generated by GNU Autoconf 2.69 for bgpq3 0.1.18.
|
||||
# Generated by GNU Autoconf 2.69 for bgpq3 0.1.19.
|
||||
#
|
||||
# Report bugs to <snar@snar.spb.ru>.
|
||||
#
|
||||
@@ -579,8 +579,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='bgpq3'
|
||||
PACKAGE_TARNAME='bgpq3'
|
||||
PACKAGE_VERSION='0.1.18'
|
||||
PACKAGE_STRING='bgpq3 0.1.18'
|
||||
PACKAGE_VERSION='0.1.19'
|
||||
PACKAGE_STRING='bgpq3 0.1.19'
|
||||
PACKAGE_BUGREPORT='snar@snar.spb.ru'
|
||||
PACKAGE_URL=''
|
||||
|
||||
@@ -1186,7 +1186,7 @@ if test "$ac_init_help" = "long"; then
|
||||
# Omit some internal or obsolete options to make the list less imposing.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
cat <<_ACEOF
|
||||
\`configure' configures bgpq3 0.1.18 to adapt to many kinds of systems.
|
||||
\`configure' configures bgpq3 0.1.19 to adapt to many kinds of systems.
|
||||
|
||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||
|
||||
@@ -1247,7 +1247,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
case $ac_init_help in
|
||||
short | recursive ) echo "Configuration of bgpq3 0.1.18:";;
|
||||
short | recursive ) echo "Configuration of bgpq3 0.1.19:";;
|
||||
esac
|
||||
cat <<\_ACEOF
|
||||
|
||||
@@ -1326,7 +1326,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
bgpq3 configure 0.1.18
|
||||
bgpq3 configure 0.1.19
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@@ -1494,7 +1494,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
running configure, to aid debugging if configure makes a mistake.
|
||||
|
||||
It was created by bgpq3 $as_me 0.1.18, which was
|
||||
It was created by bgpq3 $as_me 0.1.19, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
$ $0 $@
|
||||
@@ -3368,7 +3368,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
||||
# report actual input values of CONFIG_FILES etc. instead of their
|
||||
# values after options handling.
|
||||
ac_log="
|
||||
This file was extended by bgpq3 $as_me 0.1.18, which was
|
||||
This file was extended by bgpq3 $as_me 0.1.19, which was
|
||||
generated by GNU Autoconf 2.69. Invocation command line was
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@@ -3430,7 +3430,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
ac_cs_version="\\
|
||||
bgpq3 config.status 0.1.18
|
||||
bgpq3 config.status 0.1.19
|
||||
configured by $0, generated by GNU Autoconf 2.69,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
AC_INIT(bgpq3,0.1.18,snar@snar.spb.ru)
|
||||
AC_INIT(bgpq3,0.1.19,snar@snar.spb.ru)
|
||||
AC_CONFIG_HEADER(config.h)
|
||||
AC_PROG_CC
|
||||
AC_PROG_INSTALL
|
||||
|
||||
10
sx_prefix.c
10
sx_prefix.c
@@ -187,7 +187,7 @@ sx_radix_node_new(struct sx_prefix* prefix)
|
||||
return rn;
|
||||
};
|
||||
|
||||
inline int
|
||||
int
|
||||
sx_prefix_eqbits(struct sx_prefix* a, struct sx_prefix* b)
|
||||
{
|
||||
int i;
|
||||
@@ -206,7 +206,7 @@ sx_prefix_eqbits(struct sx_prefix* a, struct sx_prefix* b)
|
||||
return b->masklen;
|
||||
};
|
||||
|
||||
inline int
|
||||
int
|
||||
sx_prefix_isbitset(struct sx_prefix* p, int n)
|
||||
{
|
||||
unsigned char s;
|
||||
@@ -649,7 +649,7 @@ sx_radix_tree_aggregate(struct sx_radix_tree* tree)
|
||||
static void
|
||||
setGlueUpTo(struct sx_radix_node* node, void* udata)
|
||||
{
|
||||
unsigned refine=(unsigned)udata;
|
||||
unsigned refine=*(unsigned*)udata;
|
||||
if(node && node->prefix.masklen <= refine) {
|
||||
node->isGlue=1;
|
||||
};
|
||||
@@ -663,11 +663,11 @@ sx_radix_node_refine(struct sx_radix_node* node, unsigned refine)
|
||||
node->aggregateLow=node->prefix.masklen;
|
||||
node->aggregateHi=refine;
|
||||
if(node->l) {
|
||||
sx_radix_node_foreach(node->l, setGlueUpTo, (void*)refine);
|
||||
sx_radix_node_foreach(node->l, setGlueUpTo, &refine);
|
||||
sx_radix_node_refine(node->l, refine);
|
||||
};
|
||||
if(node->r) {
|
||||
sx_radix_node_foreach(node->r, setGlueUpTo, (void*)refine);
|
||||
sx_radix_node_foreach(node->r, setGlueUpTo, &refine);
|
||||
sx_radix_node_refine(node->r, refine);
|
||||
};
|
||||
} else if(!node->isGlue && node->prefix.masklen==refine) {
|
||||
|
||||
Reference in New Issue
Block a user