aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorsumikawa <sumikawa@FreeBSD.org>2003-04-27 09:34:15 +0800
committersumikawa <sumikawa@FreeBSD.org>2003-04-27 09:34:15 +0800
commit0413dc806effa70424aec6519484952072f18978 (patch)
tree65b990f5e603e156b8e207ea5a78b345e6525645 /net
parent0d039e8175f4f26076f8b70421a74005857a2ece (diff)
downloadfreebsd-ports-gnome-0413dc806effa70424aec6519484952072f18978.tar.gz
freebsd-ports-gnome-0413dc806effa70424aec6519484952072f18978.tar.zst
freebsd-ports-gnome-0413dc806effa70424aec6519484952072f18978.zip
Add aspathtree 4.2,
checks IPv6 routes' stability and correctness on IPv6 internet. PR: 48001 Submitted by: Janos Mohacsi <janos.mohacsi@bsd.hu>
Diffstat (limited to 'net')
-rw-r--r--net/Makefile1
-rw-r--r--net/aspathtree/Makefile84
-rw-r--r--net/aspathtree/distinfo1
-rw-r--r--net/aspathtree/files/patch-etc::ASpath-tree.config63
-rw-r--r--net/aspathtree/files/patch-lib::getbgptable.pl66
-rw-r--r--net/aspathtree/files/patch-readme.txt99
-rw-r--r--net/aspathtree/files/patch-update-rtree153
-rw-r--r--net/aspathtree/pkg-descr24
-rw-r--r--net/aspathtree/pkg-message6
-rw-r--r--net/aspathtree/pkg-plist44
10 files changed, 541 insertions, 0 deletions
diff --git a/net/Makefile b/net/Makefile
index 79192e88c147..e055f562a0d8 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -30,6 +30,7 @@
SUBDIR += arts++
SUBDIR += asfrecorder
SUBDIR += aslookup
+ SUBDIR += aspathtree
SUBDIR += b2bua
SUBDIR += balance
SUBDIR += bbsnet
diff --git a/net/aspathtree/Makefile b/net/aspathtree/Makefile
new file mode 100644
index 000000000000..6bad5d98f372
--- /dev/null
+++ b/net/aspathtree/Makefile
@@ -0,0 +1,84 @@
+# New ports collection makefile for: aspathtree
+# Date created: 06.05.2002
+# Whom: Janos Mohacsi <janos.mohacsi@bsd.hu>
+#
+# $FreeBSD$
+
+PORTNAME= aspathtree
+PORTVERSION= 4.2
+CATEGORIES= net ipv6
+MASTER_SITES= #http://carmen.ipv6.cselt.it/ipv6/tools/ASpath-tree/index.html
+DISTNAME= ASpath-tree-v${PORTVERSION}
+
+MAINTAINER= Janos.Mohacsi@bsd.hu
+COMMENT= Checks IPv6 routes' stability and correctness on IPv6 internet
+
+RUN_DEPENDS= ${LOCALBASE}/lib/perl5/site_perl/${PERL_VER}/Net/Telnet.pm:${PORTSDIR}/net/p5-Net-Telnet \
+ ripewhois:${PORTSDIR}/net/ripetools
+
+WRKSRC= ${WRKDIR}/ASpath-tree-v${PORTVERSION}/
+RESTRICTED= "not redistributable, license agreement required"
+
+.include <bsd.port.pre.mk>
+
+.if !exists(${DISTDIR}/${DISTNAME}${EXTRACT_SUFX})
+IGNORE= "You need to read the license and disclaimer on http://carmen.ipv6.tilab.com/cgi-bin/download.pl?pkg=ASpath-tree and download ${DISTFILES} into ${DISTDIR}"
+.endif
+
+NO_BUILD= yes
+USE_PERL5= yes
+USE_REINPLACE= yes
+SCRIPTS_ENV+= PERL5=${PERL5}
+PKGMESSAGE= ${WRKDIR}/pkg-message
+CONFIG_FILES= ASpath-tree.config
+ICON_FILES= bnew.gif bold.gif e.gif h.gif l.gif p.gif t.gif v.gif
+LIB_FILES= bgp-tree-changes.pl bgp-tree.pl create-homepage.pl elaborate-aspaths.pl getbgptable.pl history.pl ipv6prefix.pl odd-as.pl odd-routes.pl route-stability.pl utility.pl ASmain.pl
+DATA_FILES= 6bone.db force.as.name rirs.db
+DOC_FILES= DISCLAIMER readme.txt changes.txt
+
+pre-configure:
+ @${REINPLACE_CMD} -e 's#%%PATHPERLBIN%%#${PERL5}#; \
+ s#%%PREFIX%%#${PREFIX}#' ${WRKSRC}/update-rtree \
+ ${WRKSRC}/etc/ASpath-tree.config
+
+do-install:
+#installing main script
+ ${INSTALL_SCRIPT} ${WRKSRC}/update-rtree ${PREFIX}/bin
+#installing lib files
+ ${MKDIR} ${PREFIX}/libexec/aspathtree/
+.for file in ${LIB_FILES}
+ ${INSTALL_DATA} ${WRKSRC}/lib/${file} ${PREFIX}/libexec/aspathtree
+.endfor
+#installing htdocs files
+ ${MKDIR} ${PREFIX}/var/aspathtree/htdocs/icons/
+.for file in ${ICON_FILES}
+ ${INSTALL_DATA} ${WRKSRC}/htdocs/icons/${file} ${PREFIX}/var/aspathtree/htdocs/icons/
+.endfor
+#installing data files
+ ${MKDIR} ${PREFIX}/var/aspathtree/data
+.for file in ${DATA_FILES}
+ ${INSTALL_DATA} ${WRKSRC}/data/${file} ${PREFIX}/var/aspathtree/data/
+.endfor
+#installing log directory
+ ${MKDIR} ${PREFIX}/var/aspathtree/log
+#installing config files
+.for file in ${CONFIG_FILES}
+ ${INSTALL_DATA} ${WRKSRC}/etc/${file} ${PREFIX}/etc/${file}.dist
+.endfor
+#installing docs
+.ifndef(NOPORTDOCS)
+ ${MKDIR} ${DOCSDIR}
+.for file in ${DOC_FILES}
+ ${INSTALL_DATA} ${WRKSRC}/${file} ${DOCSDIR}
+.endfor
+.endif
+
+post-install:
+ @${SED} -e "s:%%PREFIX%%:${PREFIX}:g" ${.CURDIR}/pkg-message >${PKGMESSAGE}
+.if !defined(BATCH)
+ @${ECHO}
+ @${CAT} ${PKGMESSAGE}
+ @${ECHO}
+.endif
+
+.include <bsd.port.post.mk>
diff --git a/net/aspathtree/distinfo b/net/aspathtree/distinfo
new file mode 100644
index 000000000000..4800d9684f44
--- /dev/null
+++ b/net/aspathtree/distinfo
@@ -0,0 +1 @@
+MD5 (ASpath-tree-v4.2.tar.gz) = d52992a73d21139442a2c242b9532f14
diff --git a/net/aspathtree/files/patch-etc::ASpath-tree.config b/net/aspathtree/files/patch-etc::ASpath-tree.config
new file mode 100644
index 000000000000..299d9558287e
--- /dev/null
+++ b/net/aspathtree/files/patch-etc::ASpath-tree.config
@@ -0,0 +1,63 @@
+--- etc/ASpath-tree.config.orig Tue Dec 10 10:02:25 2002
++++ etc/ASpath-tree.config Sat Mar 8 21:56:17 2003
+@@ -9,7 +9,7 @@
+ # Full path to the directory where you have installed the ASpath-tree
+ # scripts. It is the directory where the script create-bgp-pages is
+ # located
+-HOMEDIR = /usr/local/ASpath-tree-v4.2
++HOMEDIR = %%PREFIX%%/var/aspathree/
+
+ # Router you are using. Currently supported platforms include Cisco, Juniper
+ # and Zebra routers. Allowed values are "CISCO", "JUNIPER" , "ZEBRA" and
+@@ -37,8 +37,14 @@
+ # command:
+ # ip rcmd remote-host
+ # <router-user> <client-ip-address> <client-user>
++# or the telnet user. See ROUTERUSERPASS also.
+ ROUTERUSER = router
+
++# The password of the telnet user which have been enabled on the cisco
++# router to issue 'show bgp ipv6' command. Set up only if you want to
++# use the telnet mode.
++# ROUTERUSERPASS = router
++
+ # The full path to the directory where the generated html files have to be
+ # placed. If you do not specify this option the html files are stored under
+ # the htdocs/ directory which comes with the distribution
+@@ -46,15 +52,15 @@
+ # HTMLDIR = /usr/local/httpd/htdocs/bgp
+
+ # The contactname which is placed at the bottom of the generated html pages
+-CONTACTNAME = IPv6 group
++CONTACTNAME = Your IPv6 group
+
+ # e-mail address of the contact person. It is placed at the bottom of the
+ # generated html pages together with the contactname
+- CONTACTMAIL = me@myhost.com
++ CONTACTMAIL = your@ipv6.mail
+
+ # The name of your IPv6 site. It is used as the root of the BGP4+ routing
+ # tree displayed by the generated html pages
+-SITENAME = TILAB
++SITENAME = Your IPv6 project
+
+ # The name of the image file (for instance a graphical logo representing
+ # your IPv6 site) to be placed at the beginning of the generated html
+@@ -71,7 +77,7 @@
+ # WHOISLINK = http://whois.6bone.net/cgi-bin/whois
+
+ # A flag to enable the display of the last changes on the tree. Set
+-# CHANGESFLAG = 1
++CHANGESFLAG = 1
+ # to see the display as html pages accessible from a link within the tree pages
+
+ # A flag to control which routes are filtered out from the output of
+@@ -83,7 +89,7 @@
+ # installed on the same WS that hosts ASpath-tree
+ # This parameter is needed only if you want to update via ASpath-tree the
+ # useful information available on whois DBs connected to the Internet
+-# RIPEWHOISCLIENT = /usr/local/bin/whois3
++RIPEWHOISCLIENT = /usr/local/bin/ripewhois
+
+ #### ASpath-tree v.4.2 - Released on Tue DEC 10 2002, h.10:02:25
+ #### File: etc/ASpath-tree.config Last modified on Mon DEC 9 2002, h.15:52:30
diff --git a/net/aspathtree/files/patch-lib::getbgptable.pl b/net/aspathtree/files/patch-lib::getbgptable.pl
new file mode 100644
index 000000000000..d428d27200d6
--- /dev/null
+++ b/net/aspathtree/files/patch-lib::getbgptable.pl
@@ -0,0 +1,66 @@
+--- lib/getbgptable.pl.orig Thu Feb 6 11:25:26 2003
++++ lib/getbgptable.pl Thu Feb 6 11:43:58 2003
+@@ -24,10 +24,55 @@
+ # ASs (all the ASs in the router BGP table)
+ # Finally this routine produces a text file containing the raw version of the router table
+ # and if required log files of both the raw router table and the normalized table.
++
++
+ sub get_bgp_table {
+ my ($parser, $command, $line) = ('', '', '');
+ my (@lines) = ();
+
++ use Socket;
++ use Net::Telnet;
++
++ if (defined($ROUTERUSERPASS)) {
++
++# TELNET module to get BGP4+ AS Path table
++
++ if ($ROUTER =~ /^JUNIPER$/i) {
++ $parser = "juniper";
++ $STATUSCODES = "*&gt; active";
++ my $telnet_session = new Net::Telnet(
++ prompt => '/[\w().-]*[\$#]\s*$/'
++ );
++
++ $telnet_session->open($ROUTERADDR);
++ $telnet_session->login($ROUTERUSER, $ROUTERUSERPASS);
++ $telnet_session->cmd(String => "set cli screen-length 0", Timeout => 1800);
++
++ @lines = $telnet_session->cmd(String => "show route table inet6.0 all terse",
++ Timeout => 1800);
++ $telnet_session->close;
++ } else {
++ $ROUTER = "CISCO";
++ $parser = "cisco";
++ $STATUSCODES = "s suppressed, d damped, h history, * valid, &gt; best, r RIB-failure";
++ my $telnet_session = new Net::Telnet(
++ prompt => '/[\w().-]*[\$#]\s*$/'
++ );
++
++ $telnet_session->open($ROUTERADDR);
++ $telnet_session->login($ROUTERUSER, $ROUTERUSERPASS);
++ $telnet_session->cmd(String => "terminal length 0", Timeout => 1800);
++
++ @lines = $telnet_session->cmd(String => "show bgp ipv6",
++ Timeout => 1800);
++ $telnet_session->close;
++ }
++# end TELNET module
++
++ } else {
++
++# RSH module to get BGP4+ AS Path table
++
+ if ($ROUTER =~ /^JUNIPER$/i) {
+ $parser = "juniper";
+ $STATUSCODES = "*&gt; active";
+@@ -58,6 +103,7 @@
+ push(@lines, $_);
+ }
+ close(OUTPUT);
++ }
+ chomp(@lines);
+ # Write log and for web files (raw table)
+ open(TXTFILE,"> $BGPTABLEFILE");
diff --git a/net/aspathtree/files/patch-readme.txt b/net/aspathtree/files/patch-readme.txt
new file mode 100644
index 000000000000..e113481ef76a
--- /dev/null
+++ b/net/aspathtree/files/patch-readme.txt
@@ -0,0 +1,99 @@
+--- readme.txt.orig Thu Apr 17 15:58:12 2003
++++ readme.txt Sun Apr 27 01:53:51 2003
+@@ -61,7 +61,7 @@
+ without problems on any Unix platform (Linux, etc.) with
+ Perl (version equal or greater than 5.0) installed.
+
+-The IPv6 BGP tables of external routers are obtained using rsh
++The IPv6 BGP tables of external routers are obtained using rsh or telnet
+ commands. The current release works with cisco routers, zebra routers
+ and juniper routers running IPv6 capable software versions.
+
+@@ -128,10 +128,16 @@
+
+ CISCO
+ -----
+-The cisco router must be configured to accept rsh commands from the
+-workstation which is running the ASpath-tree scripts. The
+-administrator of the cisco router must perform the following
+-configurations:
++The cisco router must be configured to accept rsh commands or telnet
++access from the workstation which is running the ASpath-tree
++scripts. The administrator of the cisco router must perform the
++following configurations:
++
++Option 1: rsh collection
++------------------------
++The router must be configured to accept rsh commands coming from the
++remote workstation which is running the ASpath-tree scripts in the
++following way:
+
+ ip rcmd remote-host <router-username> <remote-ip-address> <remote-
+ username>
+@@ -162,9 +168,28 @@
+ scripts to collect the routing information available on the cisco
+ router.
+
++Option 2: telnet collection
++---------------------------
++The router must be configured to accept telnet commands coming from the
++remote workstation which is running the ASpath-tree scripts.
++
++<router-username> is the name of the telnet user enabled to show the bgp
++table on the cisco router.
++
++<router-username-password> is the corresponding password of the telnet user
++enabled to show the bgp table on the cisco router.
++
++Consult the Cisco documentations, how to configure such a settings.
++
++If you configure ROUTERUSERPWD then the telnet option automatically selected.
++
++
+ JUNIPER
+ -------
+
++Option 1: rsh collection
++------------------------
++
+ The juniper router must be configured to accept rsh commands from the
+ workstation which is running the ASpath-tree scripts. In the case of
+ juniper, you have first to enable the rsh service on the router, then
+@@ -198,6 +223,13 @@
+ This is exactly the rsh command used by the ASpath-tree scripts to
+ collect the routing information available on the juniper router.
+
++Option 2: telnet collection
++---------------------------
++
++configure an user <router-username> with password <router-password on
++the Juniper router with view permisssion. Consult your Juniper
++documentation about that.
++
+ ZEBRA
+ -----
+ To use ASpath-tree with zebra routers, the "vtysh" CLI emulator must
+@@ -267,7 +299,12 @@
+ router have IPv6 capable rsh implementations.
+
+ ROUTERUSER is the username on the router that you have to use to
+- run remote rsh commands.
++ run remote rsh commands or telnet.
++
++ROUTERUSERPASS
++ is an optional parameter to use for telnet collection. If you
++ configure this parameter telnet mode will be used automatically.
++ DO NOT SPECIFY this parameter if you use RSH collection.
+
+ HTMLDIR is the full path to the directory where the generated
+ html files have to be placed. If you do not specify this
+@@ -794,6 +831,9 @@
+ Raffaele D'Albenzio, Ivano Guardini and Paolo Fasano
+ <ipv6@tilab.com>
+ ----------------------------------------------------
++ Telnet modul addition
++ Janos Mohacsi <mohacsi@niif.hu> - 6NET project
++ ----------------------------------------------------
+
+ #### ASpath-tree v.4.2 - Released on Thu APR 17 2003, h.16:58:12
+ #### File: readme.txt Last modified on Thu APR 17 2003, h.16:45:39
diff --git a/net/aspathtree/files/patch-update-rtree b/net/aspathtree/files/patch-update-rtree
new file mode 100644
index 000000000000..c0e9fe0c32bb
--- /dev/null
+++ b/net/aspathtree/files/patch-update-rtree
@@ -0,0 +1,153 @@
+--- update-rtree.orig Thu Apr 17 15:58:12 2003
++++ update-rtree Sun Apr 27 02:01:49 2003
+@@ -1,13 +1,13 @@
+-#!/usr/local/bin/perl
++#!%%PATHPERLBIN%%
+ #### ASpath-tree v.4.2 - Released on Thu APR 17 2003, h.16:58:12
+ #### File: update-rtree Last modified on Tue MAR 18 2003, h.22:59:48
+
+
+ # Configuration File
+-my $CONFIGFILE = "/etc/ASpath-tree.config";
++my $CONFIGFILE = "%%PREFIX%%/etc/ASpath-tree.config";
+
+ # Global variables
+-use vars qw ($HOMEDIR $RSHDIR $ROUTER $LOCAL $ROUTERADDR $ROUTERUSER $CONTACTNAME $CONTACTMAIL $SITENAME $SITEPICTURE $HTMLDIR
++use vars qw ($HOMEDIR $RSHDIR $ROUTER $LOCAL $ROUTERADDR $ROUTERUSER $ROUTERUSERPASS $CONTACTNAME $CONTACTMAIL $SITENAME $SITEPICTURE $HTMLDIR
+ $WHOISLINK $QUIET $DEBUG $FILTEROUT $RIPEWHOISCLIENT $MORETREES);
+ use vars qw ($DATADIR $ROOTPICTURE $LIB $ICONS $WARNINGTIME $HISTORYPERIOD $FLAG_COLLECT $LONGDATE $CURRENTTIME $LASTRUN);
+ use vars qw ($SIXBONEDB $IPV6PREFIXTABLE $PTLA_FILE $HISTORYFILE $LASTRUNFILE $OLDASPATHSFILE $OLDDATEFILE $OLDBBASPATHSFILE
+@@ -106,6 +106,7 @@
+ if ($line =~ /^\s*LOCAL\s*=\s*(.*)/) {$LOCAL = $1}
+ if ($line =~ /^\s*ROUTERADDR\s*=\s*(.*)/) {$ROUTERADDR = $1}
+ if ($line =~ /^\s*ROUTERUSER\s*=\s*(.*)/) {$ROUTERUSER = $1}
++ if ($line =~ /^\s*ROUTERUSERPASS\s*=\s*(.*)/) {$ROUTERUSERPASS = $1}
+ if ($line =~ /^\s*CONTACTNAME\s*=\s*(.*)/) {$CONTACTNAME = $1}
+ if ($line =~ /^\s*CONTACTMAIL\s*=\s*(.*)/) {$CONTACTMAIL = $1}
+ if ($line =~ /^\s*SITENAME\s*=\s*(.*)/) {$SITENAME = $1}
+@@ -120,9 +121,9 @@
+
+ # DEFAULT values setting...(if not explicitely declared) and ERROR checking ...
+ die "ERROR in configuration file: parameter HOMEDIR not set!\n" unless ($HOMEDIR);
+- die "ERROR in configuration file: parameter HOMEDIR not correct!\n" unless (-e "$HOMEDIR/update-rtree");
++ die "ERROR in configuration file: parameter HOMEDIR not correct!\n" unless (-d "$HOMEDIR");
+
+- $LOGDIR = "$HOMEDIR/log"; unless (-e "$LOGDIR") {mkdir("$LOGDIR", 0777)};
++ $LOGDIR = "$HOMEDIR/log"; unless (-e "$LOGDIR") {mkdir("$LOGDIR", 0775)};
+ if ($DEBUG) {open(LOGFILE, "> $LOGDIR/runlog.txt"); close(LOGFILE)}
+ &log_it_and_die("ERROR in configuration file: parameter SITENAME not set!") unless ($SITENAME);
+ &log_it_and_die("ERROR in configuration file: parameter ROUTER = \"$ROUTER\" not acceptable!") if ($ROUTER && !grep(/^$ROUTER$/, ("CISCO", "JUNIPER" , "ZEBRA", "ZEBRA93")));
+@@ -134,7 +135,7 @@
+ }
+ unless ($WHOISLINK) {$WHOISLINK = "http://whois.6bone.net/cgi-bin/whois"}
+ unless ($DATADIR) {$DATADIR = "$HOMEDIR/data"}
+- unless ($LIB) {$LIB = "$HOMEDIR/lib"}
++ unless ($LIB) {$LIB = "%%PREFIX%%/libexec/aspathtree"}
+ unless ($FILTEROUT) {$FILTEROUT = 0}
+ $ICONS = "./icons";
+ $WARNINGTIME = 5;
+@@ -199,13 +200,13 @@
+ $logtext .= " LASTRUNFILE = \"$LASTRUNFILE\"\n";
+ $logtext .= " PTLASHISTORYDIR = \"$PTLASHISTORYDIR\" ";
+ if (-e "$PTLASHISTORYDIR") {$logtext .= "(ok)\n"}
+- else {mkdir("$PTLASHISTORYDIR", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$PTLASHISTORYDIR", 0775); $logtext .= "(created)\n"}
+ $logtext .= " OTHERHISTORYDIR = \"$OTHERHISTORYDIR\" ";
+ if (-e "$OTHERHISTORYDIR") {$logtext .= "(ok)\n"}
+- else {mkdir("$OTHERHISTORYDIR", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$OTHERHISTORYDIR", 0775); $logtext .= "(created)\n"}
+ $logtext .= " Complete tree dir = \"$HOMEDIR/history/completetree\" ";
+ if (-e "$HOMEDIR/history/completetree") {$logtext .= "(ok)\n"}
+- else {mkdir("$HOMEDIR/history/completetree", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$HOMEDIR/history/completetree", 0775); $logtext .= "(created)\n"}
+ $logtext .= " OLDASPATHSFILE = \"$OLDASPATHSFILE\"\n";
+ $logtext .= " OLDDATEFILE = \"$OLDDATEFILE\"\n";
+ if ($MORETREES) {
+@@ -215,12 +216,12 @@
+ $OLDBBDATEFILE = "$HOMEDIR/history/bbtree/lastchangedate.txt";
+ $logtext .= " BB tree dir = \"$HOMEDIR/history/bbtree\" ";
+ if (-e "$HOMEDIR/history/bbtree") {$logtext .= "(ok)\n"}
+- else {mkdir("$HOMEDIR/history/bbtree", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$HOMEDIR/history/bbtree", 0775); $logtext .= "(created)\n"}
+ $logtext .= " OLDBBASPATHSFILE = \"$OLDBBASPATHSFILE\"\n";
+ $logtext .= " OLDBBDATEFILE = \"$OLDBBDATEFILE\"\n";
+ $logtext .= " 2001 tree dir = \"$HOMEDIR/history/othertree\" ";
+ if (-e "$HOMEDIR/history/othertree") {$logtext .= "(ok)\n"}
+- else {mkdir("$HOMEDIR/history/othertree", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$HOMEDIR/history/othertree", 0775); $logtext .= "(created)\n"}
+ $logtext .= " OLDOTHASPATHSFILE = \"$OLDOTHASPATHSFILE\"\n";
+ $logtext .= " OLDOTHDATEFILE = \"$OLDOTHDATEFILE\"\n";
+ } else {
+@@ -246,7 +247,7 @@
+ $CHANGESDIR = "$HTMLDIR_LOCAL/changes";
+ $logtext .= " CHANGESDIR = \"$CHANGESDIR\" ";
+ if (-e "$CHANGESDIR") {$logtext .= "(ok)\n"}
+- else {mkdir("$CHANGESDIR", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$CHANGESDIR", 0775); $logtext .= "(created)\n"}
+ $OUTPUTCOMPLETECHANGES = "$CHANGESDIR/bgp-page-complete-changes.html";
+ $logtext .= " OUTPUTCOMPLETECHANGES = \"$OUTPUTCOMPLETECHANGES\"\n";
+ $OUTPUTBBCHANGES = "$CHANGESDIR/bgp-page-backbone-changes.html";
+@@ -260,19 +261,19 @@
+ $DETAILDIRCO = "$DETAILDIR/complete";
+ $logtext .= " DETAILDIR = \"$DETAILDIR\" ";
+ if (-e "$DETAILDIR") {$logtext .= "(ok)\n"}
+- else {mkdir("$DETAILDIR", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$DETAILDIR", 0775); $logtext .= "(created)\n"}
+ $logtext .= " DETAILDIRCO = \"$DETAILDIRCO\" ";
+ if (-e "$DETAILDIRCO") {$logtext .= "(ok)\n"}
+- else {mkdir("$DETAILDIRCO", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$DETAILDIRCO", 0775); $logtext .= "(created)\n"}
+ if ($MORETREES) {
+ $DETAILDIRBB = "$DETAILDIR/backbone";
+ $DETAILDIRIANA = "$DETAILDIR/otherIANA";
+ $logtext .= " DETAILDIRBB = \"$DETAILDIRBB\" ";
+ if (-e "$DETAILDIRBB") {$logtext .= "(ok)\n"}
+- else {mkdir("$DETAILDIRBB", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$DETAILDIRBB", 0775); $logtext .= "(created)\n"}
+ $logtext .= " DETAILDIRIANA = \"$DETAILDIRIANA\" ";
+ if (-e "$DETAILDIRIANA") {$logtext .= "(ok)\n"}
+- else {mkdir("$DETAILDIRIANA", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$DETAILDIRIANA", 0775); $logtext .= "(created)\n"}
+ } else {
+ if (-e "$DETAILDIRBB") {system "rm -rf $DETAILDIRBB"}
+ if (-e "$DETAILDIRIANA") {system "rm -rf $DETAILDIRIANA"}
+@@ -280,30 +281,30 @@
+ $HISTORYHTMLDIR = "$HTMLDIR_LOCAL/24h_history";
+ $logtext .= " HISTORYHTMLDIR = \"$HISTORYHTMLDIR\" ";
+ if (-e "$HISTORYHTMLDIR") {$logtext .= "(ok)\n"}
+- else {mkdir("$HISTORYHTMLDIR", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$HISTORYHTMLDIR", 0775); $logtext .= "(created)\n"}
+ $ICONSDIR = "$HTMLDIR_LOCAL/icons";
+ $logtext .= " ICONSDIR = \"$ICONSDIR\"\n";
+ $logtext .= " Trash dir = \"$HTMLDIR_LOCAL/trash\" ";
+ if (-e "$HTMLDIR_LOCAL/trash") {system "rm -rf $HTMLDIR_LOCAL/trash/*"; $logtext .= "(ok, empty)\n"}
+- else {mkdir("$HTMLDIR_LOCAL/trash", 0777); $logtext .= "(created)\n"}
++ else {mkdir("$HTMLDIR_LOCAL/trash", 0775); $logtext .= "(created)\n"}
+
+ $logtext .= "\n HTMLDIR = \"$HTMLDIR\"\n";
+ if (-d $HTMLDIR) {
+- unless (-e "$HTMLDIR/details") {mkdir("$HTMLDIR/details", 0777); $logtext .= " $HTMLDIR/details created.\n"}
+- unless (-e "$HTMLDIR/details/complete") {mkdir("$HTMLDIR/details/complete", 0777); $logtext .= " $HTMLDIR/details/complete created.\n"}
++ unless (-e "$HTMLDIR/details") {mkdir("$HTMLDIR/details", 0775); $logtext .= " $HTMLDIR/details created.\n"}
++ unless (-e "$HTMLDIR/details/complete") {mkdir("$HTMLDIR/details/complete", 0775); $logtext .= " $HTMLDIR/details/complete created.\n"}
+ if ($MORETREES) {
+- unless (-e "$HTMLDIR/details/backbone") {mkdir("$HTMLDIR/details/backbone", 0777); $logtext .= " $HTMLDIR/details/backbone created.\n"}
+- unless (-e "$HTMLDIR/details/otherIANA") {mkdir("$HTMLDIR/details/otherIANA", 0777); $logtext .= " $HTMLDIR/details/otherIANA created.\n"}
++ unless (-e "$HTMLDIR/details/backbone") {mkdir("$HTMLDIR/details/backbone", 0775); $logtext .= " $HTMLDIR/details/backbone created.\n"}
++ unless (-e "$HTMLDIR/details/otherIANA") {mkdir("$HTMLDIR/details/otherIANA", 0775); $logtext .= " $HTMLDIR/details/otherIANA created.\n"}
+ } else {
+ if (-e "$HTMLDIR/details/backbone") {system "rm -rf $HTMLDIR/details/backbone"}
+ if (-e "$HTMLDIR/details/otherIANA") {system "rm -rf $HTMLDIR/details/otherIANA"}
+ }
+- unless (-e "$HTMLDIR/24h_history") {mkdir("$HTMLDIR/24h_history", 0777); $logtext .= " $HTMLDIR/24h_history created.\n"}
++ unless (-e "$HTMLDIR/24h_history") {mkdir("$HTMLDIR/24h_history", 0775); $logtext .= " $HTMLDIR/24h_history created.\n"}
+ if ($CHANGESFLAG) {
+- unless (-e "$HTMLDIR/changes") {mkdir("$HTMLDIR/changes", 0777); $logtext .= " $HTMLDIR/changes created.\n"}
++ unless (-e "$HTMLDIR/changes") {mkdir("$HTMLDIR/changes", 0775); $logtext .= " $HTMLDIR/changes created.\n"}
+ }
+ unless (-e "$HTMLDIR/icons") {
+- mkdir("$HTMLDIR/icons", 0777);
++ mkdir("$HTMLDIR/icons", 0775);
+ system("cp $ICONSDIR/* $HTMLDIR/icons");
+ $logtext .= " $HTMLDIR/icons created and template icons copied.\n";
+ }
diff --git a/net/aspathtree/pkg-descr b/net/aspathtree/pkg-descr
new file mode 100644
index 000000000000..72ba4fa92978
--- /dev/null
+++ b/net/aspathtree/pkg-descr
@@ -0,0 +1,24 @@
+ASpath-tree program
+============================
+
+ASpath-tree is a tool designed to be used by an IPv6 site involved
+in the experimentation of the BGP4+ protocol inside the 6Bone network.
+It generates summary of:
+
+ * the number of route entries (valid/total/suppressed/damped/history)
+ * the number of AS in table (total, originating only, originating/transit,
+ transit only, private and reserved)
+ * the number of active AS paths
+ * the number of active BGP neighbours (i.e. announcing routing information)
+ * an analysis of the network size, in terms of AS distances
+ * the number of circulating prefixes (total, 6Bone pTLAs, sTLAs, 6to4,
+ others)
+
+The current version supports:
+ * 6Bone pTLAs
+ * RIR's assigned sTLAs
+ * Juniper/Cisco/Zebra routers
+
+WWW: http://carmen.ipv6.cselt.it/ipv6/tools/ASpath-tree/index.html
+
+janos.mohacsi@bsd.hu
diff --git a/net/aspathtree/pkg-message b/net/aspathtree/pkg-message
new file mode 100644
index 000000000000..1277ed90ff26
--- /dev/null
+++ b/net/aspathtree/pkg-message
@@ -0,0 +1,6 @@
+For to configuration information please look at
+%%PREFIX%%/share/doc/aspathtree/readme.txt.
+
+Copy %%PREFIX%%/etc/ASpath-tree.config.dist to
+%%PREFIX%%/etc/ASpath-tree.config
+and modify accordingly to your environment.
diff --git a/net/aspathtree/pkg-plist b/net/aspathtree/pkg-plist
new file mode 100644
index 000000000000..ed9b677e0c80
--- /dev/null
+++ b/net/aspathtree/pkg-plist
@@ -0,0 +1,44 @@
+etc/ASpath-tree.config.dist
+var/aspathtree/htdocs/icons/bnew.gif
+var/aspathtree/htdocs/icons/bold.gif
+var/aspathtree/htdocs/icons/e.gif
+var/aspathtree/htdocs/icons/h.gif
+var/aspathtree/htdocs/icons/l.gif
+var/aspathtree/htdocs/icons/p.gif
+var/aspathtree/htdocs/icons/t.gif
+var/aspathtree/htdocs/icons/v.gif
+var/aspathtree/data/6bone.db
+var/aspathtree/data/force.as.name
+var/aspathtree/data/rirs.db
+libexec/aspathtree/bgp-tree-changes.pl
+libexec/aspathtree/bgp-tree.pl
+libexec/aspathtree/create-homepage.pl
+libexec/aspathtree/elaborate-aspaths.pl
+libexec/aspathtree/getbgptable.pl
+libexec/aspathtree/history.pl
+libexec/aspathtree/ipv6prefix.pl
+libexec/aspathtree/odd-as.pl
+libexec/aspathtree/odd-routes.pl
+libexec/aspathtree/route-stability.pl
+libexec/aspathtree/utility.pl
+libexec/aspathtree/ASmain.pl
+bin/update-rtree
+%%PORTDOCS%%share/doc/aspathtree/DISCLAIMER
+%%PORTDOCS%%share/doc/aspathtree/readme.txt
+%%PORTDOCS%%share/doc/aspathtree/changes.txt
+@dirrm var/aspathtree/htdocs/changes
+@dirrm var/aspathtree/htdocs/details
+@dirrm var/aspathtree/htdocs/icons
+@dirrm var/aspathtree/htdocs/trash
+@dirrm var/aspathtree/htdocs
+@dirrm var/aspathtree/history/bbtree
+@dirrm var/aspathtree/history/completetree
+@dirrm var/aspathtree/history/othertree
+@dirrm var/aspathtree/history/other
+@dirrm var/aspathtree/history/ptlas
+@dirrm var/aspathtree/history
+@dirrm var/aspathtree/data
+@dirrm var/aspathtree/log
+@dirrm var/aspathtree
+@dirrm libexec/aspathtree
+%%PORTDOCS%%@dirrm share/doc/aspathtree/