From 65a8a095f817ae7bf2f7afb7e76a50d7d8c46977 Mon Sep 17 00:00:00 2001 From: zi Date: Tue, 13 Nov 2012 02:42:48 +0000 Subject: New port: net/exabgp A BGP route injector which can inject routes with arbitrary next-hops into your network (source some ipv4/ipv6 routes using both IPv4 and IPv6 TCP connections), mitigate DDOS using flowspec, or pass the route it receive in textual form to third party application. WWW: https://code.google.com/p/exabgp/ Feature safe: yes --- net/exabgp/Makefile | 48 +++++++++ net/exabgp/distinfo | 2 + net/exabgp/files/exabgp.env | 33 ++++++ net/exabgp/files/exabgp.in | 49 +++++++++ net/exabgp/files/exabgp.sh.in | 16 +++ net/exabgp/files/pkg-message.in | 4 + net/exabgp/pkg-descr | 6 ++ net/exabgp/pkg-plist | 222 ++++++++++++++++++++++++++++++++++++++++ 8 files changed, 380 insertions(+) create mode 100644 net/exabgp/Makefile create mode 100644 net/exabgp/distinfo create mode 100644 net/exabgp/files/exabgp.env create mode 100644 net/exabgp/files/exabgp.in create mode 100644 net/exabgp/files/exabgp.sh.in create mode 100644 net/exabgp/files/pkg-message.in create mode 100644 net/exabgp/pkg-descr create mode 100644 net/exabgp/pkg-plist (limited to 'net/exabgp') diff --git a/net/exabgp/Makefile b/net/exabgp/Makefile new file mode 100644 index 000000000000..f7ebf43fc45d --- /dev/null +++ b/net/exabgp/Makefile @@ -0,0 +1,48 @@ +# Created by: Ryan Steinmetz +# $FreeBSD$ + +PORTNAME= exabgp +PORTVERSION= 3.0.10 +CATEGORIES= net +MASTER_SITES= ${MASTER_SITE_GOOGLE_CODE} +EXTRACT_SUFX= .tgz + +MAINTAINER= zi@FreeBSD.org +COMMENT= A BGP engine and route injector + +LICENSE= BSD + +USE_PYTHON= yes +SUB_FILES= pkg-message exabgp.sh +SUB_LIST= PYTHON_LIBDIR=${PYTHON_LIBDIR} PYTHON_CMD=${PYTHON_CMD} \ + PYTHON_SITELIBDIR=${PYTHON_SITELIBDIR} +USE_RC_SUBR= ${PORTNAME} + +USERS= _bgpd +GROUPS= _bgpd + +MAN1= ${PORTNAME}.1 + +.include + +post-extract: + @${MV} -f ${WRKSRC}/etc/systemd ${WRKSRC} + @${MV} -f ${WRKSRC}/lib/forwarding ${WRKSRC} + +do-build: + ${PYTHON_CMD} -m compileall ${WRKSRC}/lib + +do-install: + ${INSTALL_SCRIPT} ${WRKDIR}/${PORTNAME}.sh ${PREFIX}/sbin/${PORTNAME} + ${INSTALL_MAN} ${WRKSRC}/debian/${PORTNAME}.1 ${PREFIX}/man/man1 + @${MKDIR} ${PYTHON_SITELIBDIR}/${PORTNAME} ${ETCDIR} + (cd ${WRKSRC}/lib && ${COPYTREE_SHARE} . ${PYTHON_SITELIBDIR}) +.if ${PORT_OPTIONS:MEXAMPLES} + @${MKDIR} ${EXAMPLESDIR} + (cd ${WRKSRC}/etc && ${COPYTREE_SHARE} . ${EXAMPLESDIR}) +.endif + @if [ ! -f ${ETCDIR}/exabgp.env ]; then \ + ${CP} ${FILESDIR}/exabgp.env ${ETCDIR} ; \ + fi + +.include diff --git a/net/exabgp/distinfo b/net/exabgp/distinfo new file mode 100644 index 000000000000..6d9074a9d6b1 --- /dev/null +++ b/net/exabgp/distinfo @@ -0,0 +1,2 @@ +SHA256 (exabgp-3.0.10.tgz) = c512b7b99d912a685d700abaad79dcb0f1de1eac13cd59641aef19fdd7542625 +SIZE (exabgp-3.0.10.tgz) = 317500 diff --git a/net/exabgp/files/exabgp.env b/net/exabgp/files/exabgp.env new file mode 100644 index 000000000000..09aa4fa04e75 --- /dev/null +++ b/net/exabgp/files/exabgp.env @@ -0,0 +1,33 @@ + +[exabgp.daemon] +daemonize = true +pid = '/var/run/exabgp/exabgp.pid' +user = '_bgpd' + +[exabgp.log] +all = false +configuration = false +daemon = true +destination = '/var/log/exabgp.log' +enable = true +level = INFO +message = false +network = true +packets = false +parser = false +processes = true +rib = false +routes = false +short = false +supervisor = true +timers = false + +[exabgp.pdb] +enable = false + +[exabgp.profile] +enable = false +file = '' + +[exabgp.tcp] +timeout = 1 diff --git a/net/exabgp/files/exabgp.in b/net/exabgp/files/exabgp.in new file mode 100644 index 000000000000..e4e0555c70c9 --- /dev/null +++ b/net/exabgp/files/exabgp.in @@ -0,0 +1,49 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: exabgp +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following line(s) to /etc/rc.conf to enable exabgp: +# +# exabgp_enable="YES" + +. /etc/rc.subr + +name=exabgp +rcvar=exabgp_enable + +load_rc_config $name + +exabgp_enable=${exabgp_enable:-"NO"} +exabgp_conf=${exabgp_conf:-"%%ETCDIR%%/exabgp.conf"} +exabgp_logfile=${exabgp_log:-"/var/log/exabgp.log"} + +pidfile=/var/run/${name}/${name}.pid + +required_files=${exabgp_conf} + +command="%%PYTHON_SITELIBDIR%%/${name}/application.py" +procname="%%PYTHON_CMD%%" + +start_precmd="exabgp_precmd" +start_cmd="exabgp_start" +extra_commands="reload" + +exabgp_precmd() +{ + install -d -o _bgpd -g _bgpd -m 755 /var/run/${name} + touch ${exabgp_logfile} + chown _bgpd:_bgpd ${exabgp_logfile} +} + +exabgp_start() +{ + echo "Starting ${name}..." + rm -f ${pidfile} + ${procname} ${command} -c %%ETCDIR%% ${exabgp_conf} +} + +run_rc_command "$1" diff --git a/net/exabgp/files/exabgp.sh.in b/net/exabgp/files/exabgp.sh.in new file mode 100644 index 000000000000..de50ca38564d --- /dev/null +++ b/net/exabgp/files/exabgp.sh.in @@ -0,0 +1,16 @@ +#!/bin/sh + +export PYTHONPATH=%%PYTHON_LIBDIR%%:%%PYTHON_SITELIBDIR%%/exabgp + +INTERPRETER=%%PYTHON_CMD%% + +APPLICATIONS=`$INTERPRETER -c "import sys,os; print ' '.join(os.path.join(_,'exabgp','application.py') for _ in sys.path if os.path.isfile('/'.join((_,'exabgp/application.py'))))"` +APPLICATION=`echo $APPLICATIONS | awk '{ print $1; }'` + +if [ $# -eq 0 ]; then + $INTERPRETER -m exabgp.debug $APPLICATION -c %%PREFIX%%/etc/exabgp --help + echo "===> To start exabgp, you should use:" + echo "===> service exabgp start" +else + exec $INTERPRETER -m exabgp.debug $APPLICATION -c %%PREFIX%%/etc/exabgp $* +fi diff --git a/net/exabgp/files/pkg-message.in b/net/exabgp/files/pkg-message.in new file mode 100644 index 000000000000..3a9a72e6fbf5 --- /dev/null +++ b/net/exabgp/files/pkg-message.in @@ -0,0 +1,4 @@ +Sample configurations are located in %%EXAMPLESDIR%%. + +Please create %%ETCDIR%%/exabgp.conf based on one of the above examples and +add exabgp_enable="YES" to /etc/rc.conf diff --git a/net/exabgp/pkg-descr b/net/exabgp/pkg-descr new file mode 100644 index 000000000000..66b8ab68ea3e --- /dev/null +++ b/net/exabgp/pkg-descr @@ -0,0 +1,6 @@ +A BGP route injector which can inject routes with arbitrary next-hops into +your network (source some ipv4/ipv6 routes using both IPv4 and IPv6 TCP +connections), mitigate DDOS using flowspec, or pass the route it receive +in textual form to third party application. + +WWW: https://code.google.com/p/exabgp/ diff --git a/net/exabgp/pkg-plist b/net/exabgp/pkg-plist new file mode 100644 index 000000000000..cf716ffb5544 --- /dev/null +++ b/net/exabgp/pkg-plist @@ -0,0 +1,222 @@ +@comment $FreeBSD$ +etc/exabgp/exabgp.env +sbin/exabgp +%%PYTHON_SITELIBDIR%%/exabgp/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/application.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/connection.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/eor.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/keepalive.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nlri/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nlri/eor.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nlri/flow.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nlri/route.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nlri/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nlri/eor.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nlri/flow.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nlri/route.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nop.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/notification.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/asn.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/addpath.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/graceful.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/id.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/mp.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/ms.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/negociated.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/refresh.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/addpath.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/graceful.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/id.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/mp.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/ms.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/negociated.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability/refresh.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/holdtime.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/routerid.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/version.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/asn.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/holdtime.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/routerid.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/version.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/refresh.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/aggregator.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/aspath.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/atomicaggregate.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/attributes.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/clusterlist.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/communities.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/flag.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/id.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/localpref.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/med.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/mprnlri.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/mpurnlri.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/nexthop.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/origin.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/originatorid.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/aggregator.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/aspath.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/atomicaggregate.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/attributes.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/clusterlist.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/communities.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/flag.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/id.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/localpref.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/med.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/mprnlri.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/mpurnlri.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/nexthop.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/origin.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute/originatorid.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/eor.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/keepalive.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nop.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/notification.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/message/refresh.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/neighbor.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/peer.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/protocol.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/timer.py +%%PYTHON_SITELIBDIR%%/exabgp/bgp/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/connection.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/neighbor.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/peer.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/protocol.pyc +%%PYTHON_SITELIBDIR%%/exabgp/bgp/timer.pyc +%%PYTHON_SITELIBDIR%%/exabgp/debug.py +%%PYTHON_SITELIBDIR%%/exabgp/leak/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/leak/gcdump.py +%%PYTHON_SITELIBDIR%%/exabgp/leak/objgraph.py +%%PYTHON_SITELIBDIR%%/exabgp/leak/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/leak/gcdump.pyc +%%PYTHON_SITELIBDIR%%/exabgp/leak/objgraph.pyc +%%PYTHON_SITELIBDIR%%/exabgp/protocol/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/protocol/family.py +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/address.py +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/fragment.py +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/icmp.py +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/inet.py +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/tcp/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/tcp/flags.py +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/tcp/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/tcp/flags.pyc +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/address.pyc +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/fragment.pyc +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/icmp.pyc +%%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/inet.pyc +%%PYTHON_SITELIBDIR%%/exabgp/protocol/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/protocol/family.pyc +%%PYTHON_SITELIBDIR%%/exabgp/rib/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/rib/delta.py +%%PYTHON_SITELIBDIR%%/exabgp/rib/table.py +%%PYTHON_SITELIBDIR%%/exabgp/rib/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/rib/delta.pyc +%%PYTHON_SITELIBDIR%%/exabgp/rib/table.pyc +%%PYTHON_SITELIBDIR%%/exabgp/structure/__init__.py +%%PYTHON_SITELIBDIR%%/exabgp/structure/configuration.py +%%PYTHON_SITELIBDIR%%/exabgp/structure/daemon.py +%%PYTHON_SITELIBDIR%%/exabgp/structure/environment.py +%%PYTHON_SITELIBDIR%%/exabgp/structure/log.py +%%PYTHON_SITELIBDIR%%/exabgp/structure/processes.py +%%PYTHON_SITELIBDIR%%/exabgp/structure/supervisor.py +%%PYTHON_SITELIBDIR%%/exabgp/structure/utils.py +%%PYTHON_SITELIBDIR%%/exabgp/structure/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/structure/configuration.pyc +%%PYTHON_SITELIBDIR%%/exabgp/structure/daemon.pyc +%%PYTHON_SITELIBDIR%%/exabgp/structure/environment.pyc +%%PYTHON_SITELIBDIR%%/exabgp/structure/log.pyc +%%PYTHON_SITELIBDIR%%/exabgp/structure/processes.pyc +%%PYTHON_SITELIBDIR%%/exabgp/structure/supervisor.pyc +%%PYTHON_SITELIBDIR%%/exabgp/structure/utils.pyc +%%PYTHON_SITELIBDIR%%/exabgp/version.py +%%PYTHON_SITELIBDIR%%/exabgp/__init__.pyc +%%PYTHON_SITELIBDIR%%/exabgp/application.pyc +%%PYTHON_SITELIBDIR%%/exabgp/debug.pyc +%%PYTHON_SITELIBDIR%%/exabgp/version.pyc +%%PYTHON_SITELIBDIR%%/netlink/__init__.py +%%PYTHON_SITELIBDIR%%/netlink/route.py +%%PYTHON_SITELIBDIR%%/netlink/test/get.py +%%PYTHON_SITELIBDIR%%/netlink/test/route.py +%%PYTHON_SITELIBDIR%%/netlink/test/get.pyc +%%PYTHON_SITELIBDIR%%/netlink/test/route.pyc +%%PYTHON_SITELIBDIR%%/netlink/__init__.pyc +%%PYTHON_SITELIBDIR%%/netlink/route.pyc +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/quagga/ibgpd.conf.v46 +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/quagga/ibgpd.conf.v4.parse.large +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/quagga/ibgpd.conf.v4.parse +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/quagga/ibgpd.conf.v4.md5 +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/quagga/ebgpd.conf.v6 +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/quagga/ebgpd.conf.v46 +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/quagga/ebgpd.conf.v4 +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/processes/watchdog-1.sh +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/processes/tcp-server +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/processes/syslog-1.py +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/processes/dynamic-1.sh +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp6-simple.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-withdrawn.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-watchdog.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-watchdog-dynamic.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-ttl.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-tcpcontrol.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-split.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-simple.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-parse.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-md5.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-label4.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-holdtime.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-group.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-group-updates.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-graceful.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-dynamic.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-add-path-sendreceive +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ibgp4-add-path-receive +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp6-simple.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-simple.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-selfcheck +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-peer-update.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-multisession.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-large.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-juniper-flow.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-family.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-collector.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-cisco.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/ebgp4-asn32.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/exabgp/dual-neighbor.txt +%%PORTEXAMPLES%%%%EXAMPLESDIR%%/cisco/ibgp4-helper.txt +%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/quagga +%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/exabgp/processes +%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/exabgp +%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%%/cisco +%%PORTEXAMPLES%%@dirrm %%EXAMPLESDIR%% +@dirrm %%PYTHON_SITELIBDIR%%/netlink/test +@dirrm %%PYTHON_SITELIBDIR%%/netlink +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/protocol/ip/tcp +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/protocol/ip +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/protocol +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update/attribute +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/bgp/message/update +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open/capability +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/bgp/message/open +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/bgp/message/nlri +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/bgp/message +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/leak +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/structure +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/rib +@dirrm %%PYTHON_SITELIBDIR%%/exabgp/bgp +@dirrm %%PYTHON_SITELIBDIR%%/exabgp +@dirrmtry etc/exabgp +@unexec if [ -d %D/%%ETCDIR%% ]; then echo "==> If you are permanently removing this port, you should do a ``rm -rf ${PKG_PREFIX}/etc/exabgp`` to remove any configuration files left."; fi -- cgit