aboutsummaryrefslogtreecommitdiffstats
path: root/net/exabgp
diff options
context:
space:
mode:
authorzi <zi@FreeBSD.org>2012-11-13 10:42:48 +0800
committerzi <zi@FreeBSD.org>2012-11-13 10:42:48 +0800
commit65a8a095f817ae7bf2f7afb7e76a50d7d8c46977 (patch)
tree7a8b8f19f5502ada4dafe2425ecb6acec3bc5966 /net/exabgp
parent1e72376eb19f55b40ae08a09f75ae44c02488c88 (diff)
downloadfreebsd-ports-gnome-65a8a095f817ae7bf2f7afb7e76a50d7d8c46977.tar.gz
freebsd-ports-gnome-65a8a095f817ae7bf2f7afb7e76a50d7d8c46977.tar.zst
freebsd-ports-gnome-65a8a095f817ae7bf2f7afb7e76a50d7d8c46977.zip
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
Diffstat (limited to 'net/exabgp')
-rw-r--r--net/exabgp/Makefile48
-rw-r--r--net/exabgp/distinfo2
-rw-r--r--net/exabgp/files/exabgp.env33
-rw-r--r--net/exabgp/files/exabgp.in49
-rw-r--r--net/exabgp/files/exabgp.sh.in16
-rw-r--r--net/exabgp/files/pkg-message.in4
-rw-r--r--net/exabgp/pkg-descr6
-rw-r--r--net/exabgp/pkg-plist222
8 files changed, 380 insertions, 0 deletions
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 <zi@FreeBSD.org>
+# $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 <bsd.port.options.mk>
+
+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 <bsd.port.mk>
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