diff --git a/CHANGES b/CHANGES index a557cd7..0f4c29f 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,7 @@ +0.1.29 (2015-04-15) + - 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... diff --git a/bgpq3.c b/bgpq3.c index 5c52965..b95998e 100644 --- a/bgpq3.c +++ b/bgpq3.c @@ -19,12 +19,15 @@ extern int debug_expander; extern int debug_aggregation; extern int pipelining; +extern int expand_as23456; int usage(int ecode) { printf("\nUsage: bgpq3 [-h host] [-S sources] [-P|E|G |f ]" - " [-346AbDJjXd] [-R len] ...\n"); + " [-2346AbDJjXd] [-R len] ...\n"); + printf(" -2 : allow routes belonging to as23456 (transition-as) " + "(default: false)\n"); printf(" -3 : assume that your device is asn32-safe\n"); printf(" -4 : generate IPv4 prefix-lists (default)\n"); printf(" -6 : generate IPv6 prefix-lists (IPv4 by default)\n"); @@ -57,7 +60,7 @@ usage(int ecode) "infinity)\n"); printf(" -X : generate config for IOS XR (Cisco IOS by default)\n"); printf("\n" PACKAGE_NAME " version: " PACKAGE_VERSION "\n"); - printf("Copyright(c) Alexandre Snarskii 2007-2014\n\n"); + printf("Copyright(c) Alexandre Snarskii 2007-2015\n\n"); exit(ecode); }; @@ -126,6 +129,9 @@ main(int argc, char* argv[]) while((c=getopt(argc,argv,"346AbdDES:jJf:l:m:M:W:Pr:R:G:Th:X"))!=EOF) { switch(c) { + case '2': + expand_as23456=1; + break; case '3': expander.asn32=1; break; diff --git a/bgpq_expander.c b/bgpq_expander.c index fb11386..b88f76a 100644 --- a/bgpq_expander.c +++ b/bgpq_expander.c @@ -21,6 +21,7 @@ int debug_expander=0; int pipelining=1; +int expand_as23456=0; int bgpq_expander_init(struct bgpq_expander* b, int af) @@ -144,6 +145,9 @@ bgpq_expander_add_as(struct bgpq_expander* b, char* as) return 0; }; + if(asno==23456 && !expand_as23456) + return 0; + b->asn32s[0][asno/8]|=(0x80>>(asno%8)); return 1; diff --git a/configure b/configure index 1a077f6..1deab50 100755 --- a/configure +++ b/configure @@ -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.28. +# Generated by GNU Autoconf 2.69 for bgpq3 0.1.29. # # Report bugs to . # @@ -579,8 +579,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='bgpq3' PACKAGE_TARNAME='bgpq3' -PACKAGE_VERSION='0.1.28' -PACKAGE_STRING='bgpq3 0.1.28' +PACKAGE_VERSION='0.1.29' +PACKAGE_STRING='bgpq3 0.1.29' PACKAGE_BUGREPORT='snar@snar.spb.ru' PACKAGE_URL='' @@ -1187,7 +1187,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.28 to adapt to many kinds of systems. +\`configure' configures bgpq3 0.1.29 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1248,7 +1248,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of bgpq3 0.1.28:";; + short | recursive ) echo "Configuration of bgpq3 0.1.29:";; esac cat <<\_ACEOF @@ -1327,7 +1327,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -bgpq3 configure 0.1.28 +bgpq3 configure 0.1.29 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1495,7 +1495,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.28, which was +It was created by bgpq3 $as_me 0.1.29, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3413,7 +3413,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.28, which was +This file was extended by bgpq3 $as_me 0.1.29, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -3475,7 +3475,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.28 +bgpq3 config.status 0.1.29 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/configure.in b/configure.in index e809264..be890d2 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -AC_INIT(bgpq3,0.1.28,snar@snar.spb.ru) +AC_INIT(bgpq3,0.1.29,snar@snar.spb.ru) AC_CONFIG_HEADER(config.h) AC_PROG_CC AC_PROG_INSTALL