summaryrefslogtreecommitdiff
path: root/net/exabgp
diff options
context:
space:
mode:
authorpettai <pettai@pkgsrc.org>2013-12-15 22:22:44 +0000
committerpettai <pettai@pkgsrc.org>2013-12-15 22:22:44 +0000
commit530988469a17a05985819964f6def2137d984f2c (patch)
tree6d81e2be50d49a6f21ad4894aaf79c8e3ca692af /net/exabgp
parentf66f4f77d5affd66c809e9a1a82ee4634a887a64 (diff)
downloadpkgsrc-530988469a17a05985819964f6def2137d984f2c.tar.gz
Unlike BIRD or Quagga, ExaBGP was not designed to transform a general purpose
server into a router, but to allow engineers to control their BGP (rfc4271) network easily. Think of it as Software Defined Networking for people with "commodity" routers. ExaBGP transform BGP (rfc4271) messages into friendly plain text or JSON which can be easily manipulate by scripts. It allows the creation of tools such as: * advanced looking glass graphically display the routing of prefix * high availability tool which automatically isolate broken services * DDOS mitigation * an anycasted server
Diffstat (limited to 'net/exabgp')
-rw-r--r--net/exabgp/DESCR13
-rw-r--r--net/exabgp/Makefile46
-rw-r--r--net/exabgp/PLIST368
-rw-r--r--net/exabgp/distinfo18
-rw-r--r--net/exabgp/patches/patch-dev_bin_selfcheck15
-rw-r--r--net/exabgp/patches/patch-dev_self_api_first20
-rw-r--r--net/exabgp/patches/patch-dev_self_api_second20
-rw-r--r--net/exabgp/patches/patch-dev_self_attribute_send20
-rw-r--r--net/exabgp/patches/patch-dev_self_big_receive20
-rw-r--r--net/exabgp/patches/patch-dev_self_big_send20
-rw-r--r--net/exabgp/patches/patch-dev_self_load_recieve20
-rw-r--r--net/exabgp/patches/patch-dev_self_load_send20
-rw-r--r--net/exabgp/patches/patch-dev_self_refresh_first20
-rw-r--r--net/exabgp/patches/patch-dev_self_refresh_second20
-rw-r--r--net/exabgp/patches/patch-dev_self_simple_first20
-rw-r--r--net/exabgp/patches/patch-dev_self_simple_second20
-rw-r--r--net/exabgp/patches/patch-setup.py17
17 files changed, 697 insertions, 0 deletions
diff --git a/net/exabgp/DESCR b/net/exabgp/DESCR
new file mode 100644
index 00000000000..e08c5d59e94
--- /dev/null
+++ b/net/exabgp/DESCR
@@ -0,0 +1,13 @@
+Unlike BIRD or Quagga, ExaBGP was not designed to transform a general purpose
+server into a router, but to allow engineers to control their BGP (rfc4271)
+network easily. Think of it as Software Defined Networking for people with
+"commodity" routers.
+
+ExaBGP transform BGP (rfc4271) messages into friendly plain text or JSON
+which can be easily manipulate by scripts.
+
+It allows the creation of tools such as:
+ * advanced looking glass graphically display the routing of prefix
+ * high availability tool which automatically isolate broken services
+ * DDOS mitigation
+ * an anycasted server
diff --git a/net/exabgp/Makefile b/net/exabgp/Makefile
new file mode 100644
index 00000000000..82dc1869857
--- /dev/null
+++ b/net/exabgp/Makefile
@@ -0,0 +1,46 @@
+# $NetBSD: Makefile,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+DISTNAME= exabgp-exabgp-3.2.18
+PKGNAME= exabgp-3.2.18
+CATEGORIES= net
+MASTER_SITES= -https://github.com/Exa-Networks/exabgp/tarball/3.2.18
+
+MAINTAINER= pettai@NetBSD.org
+HOMEPAGE= https://github.com/Exa-Networks/exabgp/
+COMMENT= ExaBGP is a userspace BGP daemon written in python
+LICENSE= modified-bsd
+
+FETCH_USING= curl
+
+WRKSRC= ${WRKDIR}/Exa-Networks-exabgp-51d6b56
+
+USE_TOOLS+= perl:run
+
+REPLACE_PERL= etc/exabgp/processes/dynamic-1.pl
+REPLACE_PERL+= etc/exabgp/processes/watchdog-1.pl
+REPLACE_PYTHON= lib/exabgp/application/bmp.py
+REPLACE_PYTHON+= lib/exabgp/bgp/message/update/nlri/eor.py
+REPLACE_PYTHON+= lib/exabgp/reactor/api/encoding.py
+REPLACE_PYTHON+= lib/netlink/route.py
+REPLACE_PYTHON+= lib/netlink/test/get.py
+REPLACE_PYTHON+= lib/netlink/test/route.py
+REPLACE_PYTHON+= etc/exabgp/processes/healthcheck.py
+REPLACE_PYTHON+= etc/exabgp/processes/read-write.py
+REPLACE_PYTHON+= etc/exabgp/processes/tcp-server
+REPLACE_PYTHON+= etc/exabgp/processes/syslog-1.py
+
+PYDISTUTILSPKG= yes
+
+PYSETUP= setup.py
+
+USE_LANGUAGES= # none
+
+INSTALLATION_DIRS= bin/exabgp sbin
+
+post-install:
+ ${LN} -s ${DESTDIR}${PREFIX}/bin/exabgp/exabgp \
+ ${DESTDIR}${PREFIX}/sbin/
+
+.include "../../lang/python/extension.mk"
+.include "../../lang/python/application.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/net/exabgp/PLIST b/net/exabgp/PLIST
new file mode 100644
index 00000000000..4e91cb9dfc7
--- /dev/null
+++ b/net/exabgp/PLIST
@@ -0,0 +1,368 @@
+@comment $NetBSD: PLIST,v 1.1 2013/12/15 22:22:44 pettai Exp $
+bin/dynamic-1.pl
+bin/dynamic-1.sh
+bin/exabgp/exabgp
+bin/healthcheck.py
+bin/read-write.py
+bin/syslog-1.py
+bin/tcp-server
+bin/watchdog-1.pl
+bin/watchdog-1.sh
+${PYSITELIB}/exabgp/__init__.py
+${PYSITELIB}/exabgp/__init__.pyc
+${PYSITELIB}/exabgp/__init__.pyo
+${PYSITELIB}/exabgp/application/bgp.py
+${PYSITELIB}/exabgp/application/bgp.pyc
+${PYSITELIB}/exabgp/application/bgp.pyo
+${PYSITELIB}/exabgp/application/bmp.py
+${PYSITELIB}/exabgp/application/bmp.pyc
+${PYSITELIB}/exabgp/application/bmp.pyo
+${PYSITELIB}/exabgp/bgp/__init__.py
+${PYSITELIB}/exabgp/bgp/__init__.pyc
+${PYSITELIB}/exabgp/bgp/__init__.pyo
+${PYSITELIB}/exabgp/bgp/message/__init__.py
+${PYSITELIB}/exabgp/bgp/message/__init__.pyc
+${PYSITELIB}/exabgp/bgp/message/__init__.pyo
+${PYSITELIB}/exabgp/bgp/message/direction.py
+${PYSITELIB}/exabgp/bgp/message/direction.pyc
+${PYSITELIB}/exabgp/bgp/message/direction.pyo
+${PYSITELIB}/exabgp/bgp/message/keepalive.py
+${PYSITELIB}/exabgp/bgp/message/keepalive.pyc
+${PYSITELIB}/exabgp/bgp/message/keepalive.pyo
+${PYSITELIB}/exabgp/bgp/message/nop.py
+${PYSITELIB}/exabgp/bgp/message/nop.pyc
+${PYSITELIB}/exabgp/bgp/message/nop.pyo
+${PYSITELIB}/exabgp/bgp/message/notification.py
+${PYSITELIB}/exabgp/bgp/message/notification.pyc
+${PYSITELIB}/exabgp/bgp/message/notification.pyo
+${PYSITELIB}/exabgp/bgp/message/open/__init__.py
+${PYSITELIB}/exabgp/bgp/message/open/__init__.pyc
+${PYSITELIB}/exabgp/bgp/message/open/__init__.pyo
+${PYSITELIB}/exabgp/bgp/message/open/asn.py
+${PYSITELIB}/exabgp/bgp/message/open/asn.pyc
+${PYSITELIB}/exabgp/bgp/message/open/asn.pyo
+${PYSITELIB}/exabgp/bgp/message/open/capability/__init__.py
+${PYSITELIB}/exabgp/bgp/message/open/capability/__init__.pyc
+${PYSITELIB}/exabgp/bgp/message/open/capability/__init__.pyo
+${PYSITELIB}/exabgp/bgp/message/open/capability/addpath.py
+${PYSITELIB}/exabgp/bgp/message/open/capability/addpath.pyc
+${PYSITELIB}/exabgp/bgp/message/open/capability/addpath.pyo
+${PYSITELIB}/exabgp/bgp/message/open/capability/graceful.py
+${PYSITELIB}/exabgp/bgp/message/open/capability/graceful.pyc
+${PYSITELIB}/exabgp/bgp/message/open/capability/graceful.pyo
+${PYSITELIB}/exabgp/bgp/message/open/capability/id.py
+${PYSITELIB}/exabgp/bgp/message/open/capability/id.pyc
+${PYSITELIB}/exabgp/bgp/message/open/capability/id.pyo
+${PYSITELIB}/exabgp/bgp/message/open/capability/mp.py
+${PYSITELIB}/exabgp/bgp/message/open/capability/mp.pyc
+${PYSITELIB}/exabgp/bgp/message/open/capability/mp.pyo
+${PYSITELIB}/exabgp/bgp/message/open/capability/ms.py
+${PYSITELIB}/exabgp/bgp/message/open/capability/ms.pyc
+${PYSITELIB}/exabgp/bgp/message/open/capability/ms.pyo
+${PYSITELIB}/exabgp/bgp/message/open/capability/negotiated.py
+${PYSITELIB}/exabgp/bgp/message/open/capability/negotiated.pyc
+${PYSITELIB}/exabgp/bgp/message/open/capability/negotiated.pyo
+${PYSITELIB}/exabgp/bgp/message/open/capability/operational.py
+${PYSITELIB}/exabgp/bgp/message/open/capability/operational.pyc
+${PYSITELIB}/exabgp/bgp/message/open/capability/operational.pyo
+${PYSITELIB}/exabgp/bgp/message/open/capability/refresh.py
+${PYSITELIB}/exabgp/bgp/message/open/capability/refresh.pyc
+${PYSITELIB}/exabgp/bgp/message/open/capability/refresh.pyo
+${PYSITELIB}/exabgp/bgp/message/open/holdtime.py
+${PYSITELIB}/exabgp/bgp/message/open/holdtime.pyc
+${PYSITELIB}/exabgp/bgp/message/open/holdtime.pyo
+${PYSITELIB}/exabgp/bgp/message/open/routerid.py
+${PYSITELIB}/exabgp/bgp/message/open/routerid.pyc
+${PYSITELIB}/exabgp/bgp/message/open/routerid.pyo
+${PYSITELIB}/exabgp/bgp/message/open/version.py
+${PYSITELIB}/exabgp/bgp/message/open/version.pyc
+${PYSITELIB}/exabgp/bgp/message/open/version.pyo
+${PYSITELIB}/exabgp/bgp/message/operational.py
+${PYSITELIB}/exabgp/bgp/message/operational.pyc
+${PYSITELIB}/exabgp/bgp/message/operational.pyo
+${PYSITELIB}/exabgp/bgp/message/refresh.py
+${PYSITELIB}/exabgp/bgp/message/refresh.pyc
+${PYSITELIB}/exabgp/bgp/message/refresh.pyo
+${PYSITELIB}/exabgp/bgp/message/unknown.py
+${PYSITELIB}/exabgp/bgp/message/unknown.pyc
+${PYSITELIB}/exabgp/bgp/message/unknown.pyo
+${PYSITELIB}/exabgp/bgp/message/update/__init__.py
+${PYSITELIB}/exabgp/bgp/message/update/__init__.pyc
+${PYSITELIB}/exabgp/bgp/message/update/__init__.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/__init__.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/__init__.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/__init__.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/aggregator.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/aggregator.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/aggregator.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/aigp.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/aigp.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/aigp.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/aspath.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/aspath.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/aspath.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/atomicaggregate.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/atomicaggregate.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/atomicaggregate.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/clusterlist.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/clusterlist.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/clusterlist.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/communities.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/communities.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/communities.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/flag.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/flag.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/flag.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/id.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/id.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/id.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/localpref.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/localpref.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/localpref.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/med.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/med.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/med.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/mprnlri.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/mprnlri.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/mprnlri.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/mpurnlri.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/mpurnlri.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/mpurnlri.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/nexthop.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/nexthop.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/nexthop.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/origin.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/origin.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/origin.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/originatorid.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/originatorid.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/originatorid.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attribute/unknown.py
+${PYSITELIB}/exabgp/bgp/message/update/attribute/unknown.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attribute/unknown.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attributes/__init__.py
+${PYSITELIB}/exabgp/bgp/message/update/attributes/__init__.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attributes/__init__.pyo
+${PYSITELIB}/exabgp/bgp/message/update/attributes/factory.py
+${PYSITELIB}/exabgp/bgp/message/update/attributes/factory.pyc
+${PYSITELIB}/exabgp/bgp/message/update/attributes/factory.pyo
+${PYSITELIB}/exabgp/bgp/message/update/eor.py
+${PYSITELIB}/exabgp/bgp/message/update/eor.pyc
+${PYSITELIB}/exabgp/bgp/message/update/eor.pyo
+${PYSITELIB}/exabgp/bgp/message/update/factory.py
+${PYSITELIB}/exabgp/bgp/message/update/factory.pyc
+${PYSITELIB}/exabgp/bgp/message/update/factory.pyo
+${PYSITELIB}/exabgp/bgp/message/update/nlri/__init__.py
+${PYSITELIB}/exabgp/bgp/message/update/nlri/__init__.pyc
+${PYSITELIB}/exabgp/bgp/message/update/nlri/__init__.pyo
+${PYSITELIB}/exabgp/bgp/message/update/nlri/bgp.py
+${PYSITELIB}/exabgp/bgp/message/update/nlri/bgp.pyc
+${PYSITELIB}/exabgp/bgp/message/update/nlri/bgp.pyo
+${PYSITELIB}/exabgp/bgp/message/update/nlri/eor.py
+${PYSITELIB}/exabgp/bgp/message/update/nlri/eor.pyc
+${PYSITELIB}/exabgp/bgp/message/update/nlri/eor.pyo
+${PYSITELIB}/exabgp/bgp/message/update/nlri/factory.py
+${PYSITELIB}/exabgp/bgp/message/update/nlri/factory.pyc
+${PYSITELIB}/exabgp/bgp/message/update/nlri/factory.pyo
+${PYSITELIB}/exabgp/bgp/message/update/nlri/flow.py
+${PYSITELIB}/exabgp/bgp/message/update/nlri/flow.pyc
+${PYSITELIB}/exabgp/bgp/message/update/nlri/flow.pyo
+${PYSITELIB}/exabgp/bgp/message/update/nlri/prefix.py
+${PYSITELIB}/exabgp/bgp/message/update/nlri/prefix.pyc
+${PYSITELIB}/exabgp/bgp/message/update/nlri/prefix.pyo
+${PYSITELIB}/exabgp/bgp/neighbor.py
+${PYSITELIB}/exabgp/bgp/neighbor.pyc
+${PYSITELIB}/exabgp/bgp/neighbor.pyo
+${PYSITELIB}/exabgp/bgp/timer.py
+${PYSITELIB}/exabgp/bgp/timer.pyc
+${PYSITELIB}/exabgp/bgp/timer.pyo
+${PYSITELIB}/exabgp/bmp/__init__.py
+${PYSITELIB}/exabgp/bmp/__init__.pyc
+${PYSITELIB}/exabgp/bmp/__init__.pyo
+${PYSITELIB}/exabgp/bmp/header.py
+${PYSITELIB}/exabgp/bmp/header.pyc
+${PYSITELIB}/exabgp/bmp/header.pyo
+${PYSITELIB}/exabgp/bmp/message.py
+${PYSITELIB}/exabgp/bmp/message.pyc
+${PYSITELIB}/exabgp/bmp/message.pyo
+${PYSITELIB}/exabgp/bmp/negotiated.py
+${PYSITELIB}/exabgp/bmp/negotiated.pyc
+${PYSITELIB}/exabgp/bmp/negotiated.pyo
+${PYSITELIB}/exabgp/bmp/peer.py
+${PYSITELIB}/exabgp/bmp/peer.pyc
+${PYSITELIB}/exabgp/bmp/peer.pyo
+${PYSITELIB}/exabgp/compatibility/__init__.py
+${PYSITELIB}/exabgp/compatibility/__init__.pyc
+${PYSITELIB}/exabgp/compatibility/__init__.pyo
+${PYSITELIB}/exabgp/compatibility/ipaddress.py
+${PYSITELIB}/exabgp/compatibility/ipaddress.pyc
+${PYSITELIB}/exabgp/compatibility/ipaddress.pyo
+${PYSITELIB}/exabgp/compatibility/ordereddict.py
+${PYSITELIB}/exabgp/compatibility/ordereddict.pyc
+${PYSITELIB}/exabgp/compatibility/ordereddict.pyo
+${PYSITELIB}/exabgp/configuration/__init__.py
+${PYSITELIB}/exabgp/configuration/__init__.pyc
+${PYSITELIB}/exabgp/configuration/__init__.pyo
+${PYSITELIB}/exabgp/configuration/environment.py
+${PYSITELIB}/exabgp/configuration/environment.pyc
+${PYSITELIB}/exabgp/configuration/environment.pyo
+${PYSITELIB}/exabgp/configuration/file.py
+${PYSITELIB}/exabgp/configuration/file.pyc
+${PYSITELIB}/exabgp/configuration/file.pyo
+${PYSITELIB}/exabgp/configuration/json.py
+${PYSITELIB}/exabgp/configuration/json.pyc
+${PYSITELIB}/exabgp/configuration/json.pyo
+${PYSITELIB}/exabgp/configuration/loader.py
+${PYSITELIB}/exabgp/configuration/loader.pyc
+${PYSITELIB}/exabgp/configuration/loader.pyo
+${PYSITELIB}/exabgp/configuration/validation.py
+${PYSITELIB}/exabgp/configuration/validation.pyc
+${PYSITELIB}/exabgp/configuration/validation.pyo
+${PYSITELIB}/exabgp/data/__init__.py
+${PYSITELIB}/exabgp/data/__init__.pyc
+${PYSITELIB}/exabgp/data/__init__.pyo
+${PYSITELIB}/exabgp/data/check.py
+${PYSITELIB}/exabgp/data/check.pyc
+${PYSITELIB}/exabgp/data/check.pyo
+${PYSITELIB}/exabgp/debug.py
+${PYSITELIB}/exabgp/debug.pyc
+${PYSITELIB}/exabgp/debug.pyo
+${PYSITELIB}/exabgp/logger.py
+${PYSITELIB}/exabgp/logger.pyc
+${PYSITELIB}/exabgp/logger.pyo
+${PYSITELIB}/exabgp/memory/__init__.py
+${PYSITELIB}/exabgp/memory/__init__.pyc
+${PYSITELIB}/exabgp/memory/__init__.pyo
+${PYSITELIB}/exabgp/memory/gcdump.py
+${PYSITELIB}/exabgp/memory/gcdump.pyc
+${PYSITELIB}/exabgp/memory/gcdump.pyo
+${PYSITELIB}/exabgp/memory/objgraph.py
+${PYSITELIB}/exabgp/memory/objgraph.pyc
+${PYSITELIB}/exabgp/memory/objgraph.pyo
+${PYSITELIB}/exabgp/memory/profiler.py
+${PYSITELIB}/exabgp/memory/profiler.pyc
+${PYSITELIB}/exabgp/memory/profiler.pyo
+${PYSITELIB}/exabgp/protocol/__init__.py
+${PYSITELIB}/exabgp/protocol/__init__.pyc
+${PYSITELIB}/exabgp/protocol/__init__.pyo
+${PYSITELIB}/exabgp/protocol/family.py
+${PYSITELIB}/exabgp/protocol/family.pyc
+${PYSITELIB}/exabgp/protocol/family.pyo
+${PYSITELIB}/exabgp/protocol/ip/__init__.py
+${PYSITELIB}/exabgp/protocol/ip/__init__.pyc
+${PYSITELIB}/exabgp/protocol/ip/__init__.pyo
+${PYSITELIB}/exabgp/protocol/ip/address.py
+${PYSITELIB}/exabgp/protocol/ip/address.pyc
+${PYSITELIB}/exabgp/protocol/ip/address.pyo
+${PYSITELIB}/exabgp/protocol/ip/fragment.py
+${PYSITELIB}/exabgp/protocol/ip/fragment.pyc
+${PYSITELIB}/exabgp/protocol/ip/fragment.pyo
+${PYSITELIB}/exabgp/protocol/ip/icmp.py
+${PYSITELIB}/exabgp/protocol/ip/icmp.pyc
+${PYSITELIB}/exabgp/protocol/ip/icmp.pyo
+${PYSITELIB}/exabgp/protocol/ip/inet.py
+${PYSITELIB}/exabgp/protocol/ip/inet.pyc
+${PYSITELIB}/exabgp/protocol/ip/inet.pyo
+${PYSITELIB}/exabgp/protocol/ip/tcp/__init__.py
+${PYSITELIB}/exabgp/protocol/ip/tcp/__init__.pyc
+${PYSITELIB}/exabgp/protocol/ip/tcp/__init__.pyo
+${PYSITELIB}/exabgp/protocol/ip/tcp/flag.py
+${PYSITELIB}/exabgp/protocol/ip/tcp/flag.pyc
+${PYSITELIB}/exabgp/protocol/ip/tcp/flag.pyo
+${PYSITELIB}/exabgp/reactor/__init__.py
+${PYSITELIB}/exabgp/reactor/__init__.pyc
+${PYSITELIB}/exabgp/reactor/__init__.pyo
+${PYSITELIB}/exabgp/reactor/api/__init__.py
+${PYSITELIB}/exabgp/reactor/api/__init__.pyc
+${PYSITELIB}/exabgp/reactor/api/__init__.pyo
+${PYSITELIB}/exabgp/reactor/api/encoding.py
+${PYSITELIB}/exabgp/reactor/api/encoding.pyc
+${PYSITELIB}/exabgp/reactor/api/encoding.pyo
+${PYSITELIB}/exabgp/reactor/api/processes.py
+${PYSITELIB}/exabgp/reactor/api/processes.pyc
+${PYSITELIB}/exabgp/reactor/api/processes.pyo
+${PYSITELIB}/exabgp/reactor/daemon.py
+${PYSITELIB}/exabgp/reactor/daemon.pyc
+${PYSITELIB}/exabgp/reactor/daemon.pyo
+${PYSITELIB}/exabgp/reactor/listener.py
+${PYSITELIB}/exabgp/reactor/listener.pyc
+${PYSITELIB}/exabgp/reactor/listener.pyo
+${PYSITELIB}/exabgp/reactor/network/__init__.py
+${PYSITELIB}/exabgp/reactor/network/__init__.pyc
+${PYSITELIB}/exabgp/reactor/network/__init__.pyo
+${PYSITELIB}/exabgp/reactor/network/connection.py
+${PYSITELIB}/exabgp/reactor/network/connection.pyc
+${PYSITELIB}/exabgp/reactor/network/connection.pyo
+${PYSITELIB}/exabgp/reactor/network/error.py
+${PYSITELIB}/exabgp/reactor/network/error.pyc
+${PYSITELIB}/exabgp/reactor/network/error.pyo
+${PYSITELIB}/exabgp/reactor/network/incoming.py
+${PYSITELIB}/exabgp/reactor/network/incoming.pyc
+${PYSITELIB}/exabgp/reactor/network/incoming.pyo
+${PYSITELIB}/exabgp/reactor/network/outgoing.py
+${PYSITELIB}/exabgp/reactor/network/outgoing.pyc
+${PYSITELIB}/exabgp/reactor/network/outgoing.pyo
+${PYSITELIB}/exabgp/reactor/network/tcp.py
+${PYSITELIB}/exabgp/reactor/network/tcp.pyc
+${PYSITELIB}/exabgp/reactor/network/tcp.pyo
+${PYSITELIB}/exabgp/reactor/peer.py
+${PYSITELIB}/exabgp/reactor/peer.pyc
+${PYSITELIB}/exabgp/reactor/peer.pyo
+${PYSITELIB}/exabgp/reactor/protocol.py
+${PYSITELIB}/exabgp/reactor/protocol.pyc
+${PYSITELIB}/exabgp/reactor/protocol.pyo
+${PYSITELIB}/exabgp/rib/__init__.py
+${PYSITELIB}/exabgp/rib/__init__.pyc
+${PYSITELIB}/exabgp/rib/__init__.pyo
+${PYSITELIB}/exabgp/rib/change.py
+${PYSITELIB}/exabgp/rib/change.pyc
+${PYSITELIB}/exabgp/rib/change.pyo
+${PYSITELIB}/exabgp/rib/store.py
+${PYSITELIB}/exabgp/rib/store.pyc
+${PYSITELIB}/exabgp/rib/store.pyo
+${PYSITELIB}/exabgp/util/__init__.py
+${PYSITELIB}/exabgp/util/__init__.pyc
+${PYSITELIB}/exabgp/util/__init__.pyo
+${PYSITELIB}/exabgp/util/cache.py
+${PYSITELIB}/exabgp/util/cache.pyc
+${PYSITELIB}/exabgp/util/cache.pyo
+${PYSITELIB}/exabgp/util/coroutine.py
+${PYSITELIB}/exabgp/util/coroutine.pyc
+${PYSITELIB}/exabgp/util/coroutine.pyo
+${PYSITELIB}/exabgp/util/counter.py
+${PYSITELIB}/exabgp/util/counter.pyc
+${PYSITELIB}/exabgp/util/counter.pyo
+${PYSITELIB}/exabgp/util/enumeration.py
+${PYSITELIB}/exabgp/util/enumeration.pyc
+${PYSITELIB}/exabgp/util/enumeration.pyo
+${PYSITELIB}/exabgp/util/errstr.py
+${PYSITELIB}/exabgp/util/errstr.pyc
+${PYSITELIB}/exabgp/util/errstr.pyo
+${PYSITELIB}/exabgp/util/ip.py
+${PYSITELIB}/exabgp/util/ip.pyc
+${PYSITELIB}/exabgp/util/ip.pyo
+${PYSITELIB}/exabgp/util/od.py
+${PYSITELIB}/exabgp/util/od.pyc
+${PYSITELIB}/exabgp/util/od.pyo
+${PYSITELIB}/exabgp/util/trace.py
+${PYSITELIB}/exabgp/util/trace.pyc
+${PYSITELIB}/exabgp/util/trace.pyo
+${PYSITELIB}/exabgp/util/usage.py
+${PYSITELIB}/exabgp/util/usage.pyc
+${PYSITELIB}/exabgp/util/usage.pyo
+${PYSITELIB}/exabgp/version.py
+${PYSITELIB}/exabgp/version.pyc
+${PYSITELIB}/exabgp/version.pyo
+${PYSITELIB}/netlink/__init__.py
+${PYSITELIB}/netlink/__init__.pyc
+${PYSITELIB}/netlink/__init__.pyo
+${PYSITELIB}/netlink/route.py
+${PYSITELIB}/netlink/route.pyc
+${PYSITELIB}/netlink/route.pyo
+${PYSITELIB}/netlink/test/get.py
+${PYSITELIB}/netlink/test/get.pyc
+${PYSITELIB}/netlink/test/get.pyo
+${PYSITELIB}/netlink/test/route.py
+${PYSITELIB}/netlink/test/route.pyc
+${PYSITELIB}/netlink/test/route.pyo
+sbin/exabgp
diff --git a/net/exabgp/distinfo b/net/exabgp/distinfo
new file mode 100644
index 00000000000..8369d654c5e
--- /dev/null
+++ b/net/exabgp/distinfo
@@ -0,0 +1,18 @@
+$NetBSD: distinfo,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+SHA1 (exabgp-exabgp-3.2.18.tar.gz) = 8d8a442744289e2ad6419978a21eb610b1330362
+RMD160 (exabgp-exabgp-3.2.18.tar.gz) = 7578a008f507d468e965e8e8645c8833e5b8059a
+Size (exabgp-exabgp-3.2.18.tar.gz) = 596423 bytes
+SHA1 (patch-dev_bin_selfcheck) = c70220d037d3b351370856c0171edca4db02ee42
+SHA1 (patch-dev_self_api_first) = b37b6e6b8d7f955c16de256fd0919aa466ca28b9
+SHA1 (patch-dev_self_api_second) = 6fcee097d8ecf0e96e8947629c23843f70b1e0e7
+SHA1 (patch-dev_self_attribute_send) = c62c39ae06d28b7fa1100811c7f633c7abc3756f
+SHA1 (patch-dev_self_big_receive) = a6e9f7589275781e39c12fdf30981829bbe42a26
+SHA1 (patch-dev_self_big_send) = acd6b83d97f0864f3c5603e11fb89d3d62677a72
+SHA1 (patch-dev_self_load_recieve) = 6520ed4635304c27847362c27b66f09f1b2248fe
+SHA1 (patch-dev_self_load_send) = 792ba8fd213f691d443ff41b1cf1fd3f0b13fef2
+SHA1 (patch-dev_self_refresh_first) = b3b1315e9f3a5f053178f9adeb9451dfe1af736b
+SHA1 (patch-dev_self_refresh_second) = 2c3bbe93e93ac908b75842aa46b79876bb10c78f
+SHA1 (patch-dev_self_simple_first) = c5210d4b5a2d65bb9cf2e68752662a13b73b96ab
+SHA1 (patch-dev_self_simple_second) = 1dad8e64ac4cfdcb5f5bcb6457ea6f7b7099e224
+SHA1 (patch-setup.py) = 63f2ded09eb0ba71ee5722f7196b9039dbea865e
diff --git a/net/exabgp/patches/patch-dev_bin_selfcheck b/net/exabgp/patches/patch-dev_bin_selfcheck
new file mode 100644
index 00000000000..fb88bfa41d3
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_bin_selfcheck
@@ -0,0 +1,15 @@
+$NetBSD: patch-dev_bin_selfcheck,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/bin/selfcheck.orig 2013-11-26 10:33:49.000000000 +0000
++++ dev/bin/selfcheck
+@@ -24,7 +24,7 @@ do
+ retcode=$?
+ problem=`echo $result | grep 'Problem with the configuration file'`
+
+- if [ $retcode -eq 0 ] && [ "$problem" == "" ]
++ if [ $retcode -eq 0 ] && [ "$problem" = "" ]
+ then
+ printf "\rok\n"
+ else
diff --git a/net/exabgp/patches/patch-dev_self_api_first b/net/exabgp/patches/patch-dev_self_api_first
new file mode 100644
index 00000000000..6c3bd38cf4a
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_api_first
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_api_first,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/api/first.orig 2013-11-26 10:24:34.000000000 +0000
++++ dev/self/api/first
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_api_second b/net/exabgp/patches/patch-dev_self_api_second
new file mode 100644
index 00000000000..33ae12b03b1
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_api_second
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_api_second,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/api/second.orig 2013-11-26 10:24:41.000000000 +0000
++++ dev/self/api/second
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_attribute_send b/net/exabgp/patches/patch-dev_self_attribute_send
new file mode 100644
index 00000000000..7c31b42bdc1
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_attribute_send
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_attribute_send,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/attribute/send.orig 2013-11-26 10:28:02.000000000 +0000
++++ dev/self/attribute/send
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_big_receive b/net/exabgp/patches/patch-dev_self_big_receive
new file mode 100644
index 00000000000..39ad576e08e
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_big_receive
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_big_receive,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/big/receive.orig 2013-11-26 10:20:54.000000000 +0000
++++ dev/self/big/receive
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_big_send b/net/exabgp/patches/patch-dev_self_big_send
new file mode 100644
index 00000000000..8bce9b5ec3c
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_big_send
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_big_send,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/big/send.orig 2013-11-26 10:21:14.000000000 +0000
++++ dev/self/big/send
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_load_recieve b/net/exabgp/patches/patch-dev_self_load_recieve
new file mode 100644
index 00000000000..a9da146ba42
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_load_recieve
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_load_recieve,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/load/receive.orig 2013-11-26 10:14:04.000000000 +0000
++++ dev/self/load/receive
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_load_send b/net/exabgp/patches/patch-dev_self_load_send
new file mode 100644
index 00000000000..d1967d51ea3
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_load_send
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_load_send,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/load/send.orig 2013-11-26 10:13:39.000000000 +0000
++++ dev/self/load/send
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_refresh_first b/net/exabgp/patches/patch-dev_self_refresh_first
new file mode 100644
index 00000000000..c1c566f0679
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_refresh_first
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_refresh_first,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/refresh/first.orig 2013-11-26 10:10:01.000000000 +0000
++++ dev/self/refresh/first
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_refresh_second b/net/exabgp/patches/patch-dev_self_refresh_second
new file mode 100644
index 00000000000..3acf3f94924
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_refresh_second
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_refresh_second,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/refresh/second.orig 2013-11-26 10:10:07.000000000 +0000
++++ dev/self/refresh/second
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_simple_first b/net/exabgp/patches/patch-dev_self_simple_first
new file mode 100644
index 00000000000..024663d3734
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_simple_first
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_simple_first,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/simple/first.orig 2013-11-26 10:04:02.000000000 +0000
++++ dev/self/simple/first
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-dev_self_simple_second b/net/exabgp/patches/patch-dev_self_simple_second
new file mode 100644
index 00000000000..23c13bfde7e
--- /dev/null
+++ b/net/exabgp/patches/patch-dev_self_simple_second
@@ -0,0 +1,20 @@
+$NetBSD: patch-dev_self_simple_second,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Portability fix
+
+--- dev/self/simple/second.orig 2013-11-26 10:04:26.000000000 +0000
++++ dev/self/simple/second
+@@ -1,11 +1,11 @@
+ #!/bin/sh
+
+ ip=`ifconfig | grep -A10 en0 | grep "inet " | head -1 | awk '{ print $2; }'`
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 en1 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
+-if [ "$ip" == "" ]
++if [ "$ip" = "" ]
+ then
+ ip=`ifconfig | grep -A10 vnic0 | grep "inet " | head -1 | awk '{ print $2; }'`
+ fi
diff --git a/net/exabgp/patches/patch-setup.py b/net/exabgp/patches/patch-setup.py
new file mode 100644
index 00000000000..c85d39ceaa1
--- /dev/null
+++ b/net/exabgp/patches/patch-setup.py
@@ -0,0 +1,17 @@
+$NetBSD: patch-setup.py,v 1.1 2013/12/15 22:22:44 pettai Exp $
+
+Fix installation to proper directories
+
+--- setup.py.orig 2013-11-18 14:13:24.000000000 +0000
++++ setup.py
+@@ -55,8 +55,8 @@ setup(name='exabgp',
+ scripts=['sbin/exabgp',],
+ download_url='https://github.com/Exa-Networks/exabgp/archive/%s.tar.gz' % version,
+ data_files=[
+- ('etc/exabgp',configuration('etc/exabgp')),
+- ('/usr/lib/systemd/system',configuration('etc/systemd')),
++ ('bin/',configuration('etc/exabgp')),
++ # ('/usr/lib/systemd/system',configuration('etc/systemd')),
+ ],
+ classifiers=[
+ 'Development Status :: 5 - Production/Stable',