git: 21c282d8ad23 - main - net/openbgpd: Remove expired port

From: Rene Ladan <rene_at_FreeBSD.org>
Date: Sun, 04 May 2025 11:50:42 UTC
The branch main has been updated by rene:

URL: https://cgit.FreeBSD.org/ports/commit/?id=21c282d8ad23c068e4c1048455552d20e9ead460

commit 21c282d8ad23c068e4c1048455552d20e9ead460
Author:     Rene Ladan <rene@FreeBSD.org>
AuthorDate: 2025-05-04 11:50:35 +0000
Commit:     Rene Ladan <rene@FreeBSD.org>
CommitDate: 2025-05-04 11:50:35 +0000

    net/openbgpd: Remove expired port
    
    2025-04-30 net/openbgpd: Unsupported upstream, consider using net/openbgpd8
---
 MOVED                                              |    1 +
 net/Makefile                                       |    1 -
 net/openbgpd/Makefile                              |   45 -
 net/openbgpd/distinfo                              |    3 -
 net/openbgpd/files/COPYING                         |   19 -
 net/openbgpd/files/openbgpd.in                     |   32 -
 net/openbgpd/files/patch-Makefile                  |   12 -
 net/openbgpd/files/patch-Makefile.inc              |   12 -
 net/openbgpd/files/patch-bgpctl_Makefile           |   31 -
 net/openbgpd/files/patch-bgpctl_bgpctl.8           |  287 --
 net/openbgpd/files/patch-bgpctl_bgpctl.c           | 1529 ----------
 net/openbgpd/files/patch-bgpctl_irr_asset.c        |   14 -
 net/openbgpd/files/patch-bgpctl_irr_output.c       |   14 -
 net/openbgpd/files/patch-bgpctl_irr_parser.c       |   48 -
 net/openbgpd/files/patch-bgpctl_irr_prefix.c       |  157 -
 net/openbgpd/files/patch-bgpctl_irrfilter.c        |   24 -
 net/openbgpd/files/patch-bgpctl_irrfilter.h        |   59 -
 net/openbgpd/files/patch-bgpctl_mrtparser.c        |  977 ------
 net/openbgpd/files/patch-bgpctl_mrtparser.h        |  122 -
 net/openbgpd/files/patch-bgpctl_parser.c           |  400 ---
 net/openbgpd/files/patch-bgpctl_parser.h           |   55 -
 net/openbgpd/files/patch-bgpctl_whois.c            |   18 -
 net/openbgpd/files/patch-bgpd_Makefile             |   30 -
 net/openbgpd/files/patch-bgpd_bgpd.8               |  348 ---
 net/openbgpd/files/patch-bgpd_bgpd.c               |  693 -----
 net/openbgpd/files/patch-bgpd_bgpd.conf.5          |  746 -----
 net/openbgpd/files/patch-bgpd_bgpd.h               |  872 ------
 net/openbgpd/files/patch-bgpd_buffer.c             |  104 -
 net/openbgpd/files/patch-bgpd_carp.c               |   54 -
 net/openbgpd/files/patch-bgpd_config.c             |  109 -
 net/openbgpd/files/patch-bgpd_control.c            |  171 --
 net/openbgpd/files/patch-bgpd_imsg.c               |  275 --
 net/openbgpd/files/patch-bgpd_imsg.h               |  115 -
 net/openbgpd/files/patch-bgpd_kroute.c             | 3140 --------------------
 net/openbgpd/files/patch-bgpd_log.c                |  117 -
 net/openbgpd/files/patch-bgpd_log.h                |   39 -
 net/openbgpd/files/patch-bgpd_mrt.c                |  864 ------
 net/openbgpd/files/patch-bgpd_mrt.h                |  287 --
 net/openbgpd/files/patch-bgpd_name2id.c            |   14 -
 net/openbgpd/files/patch-bgpd_parse.y              | 1626 ----------
 net/openbgpd/files/patch-bgpd_pfkey.c              |  471 ---
 net/openbgpd/files/patch-bgpd_pftable.c            |   17 -
 net/openbgpd/files/patch-bgpd_printconf.c          |  439 ---
 net/openbgpd/files/patch-bgpd_rde.c                | 2614 ----------------
 net/openbgpd/files/patch-bgpd_rde.h                |  361 ---
 net/openbgpd/files/patch-bgpd_rde_attr.c           |  562 ----
 net/openbgpd/files/patch-bgpd_rde_decide.c         |  133 -
 net/openbgpd/files/patch-bgpd_rde_filter.c         |  297 --
 net/openbgpd/files/patch-bgpd_rde_prefix.c         |  301 --
 net/openbgpd/files/patch-bgpd_rde_rib.c            |  513 ----
 net/openbgpd/files/patch-bgpd_rde_update.c         |  644 ----
 net/openbgpd/files/patch-bgpd_session.c            | 2075 -------------
 net/openbgpd/files/patch-bgpd_session.h            |  188 --
 net/openbgpd/files/patch-bgpd_timer.c              |   32 -
 net/openbgpd/files/patch-bgpd_util.c               |  440 ---
 .../files/patch-openbsd-compat_fmt_scaled.c        |  275 --
 net/openbgpd/files/patch-openbsd-compat_hash.h     |  134 -
 net/openbgpd/files/patch-openbsd-compat_if_media.h |  619 ----
 .../files/patch-openbsd-compat_imsg-buffer.c       |  312 --
 net/openbgpd/files/patch-openbsd-compat_imsg.c     |  312 --
 net/openbgpd/files/patch-openbsd-compat_imsg.h     |  119 -
 .../files/patch-openbsd-compat_openbsd-compat.h    |   98 -
 net/openbgpd/files/patch-openbsd-compat_util.h     |  126 -
 net/openbgpd/files/pkg-message.in                  |   10 -
 net/openbgpd/pkg-descr                             |    3 -
 65 files changed, 1 insertion(+), 24558 deletions(-)

diff --git a/MOVED b/MOVED
index 5f1367432419..9136ed4b43ad 100644
--- a/MOVED
+++ b/MOVED
@@ -4384,3 +4384,4 @@ net-p2p/libswift||2025-05-04|Has expired: Upstream archived repo on Feb 19, 2024
 net-p2p/phex|net-p2p/gtk-gnutella|2025-05-04|Has expired: Abandonware, last update upstream in 2009. Consider using net-p2p/gtk-gnutella
 net-p2p/shx||2025-05-04|Has expired: Obsolete protocol that has been superseded by many others
 net/echoping||2025-05-04|Has expired: Unmaintained upstream as of 2015 and depends on deprecated libidn
+net/openbgpd||2025-05-04|Has expired: Unsupported upstream, consider using net/openbgpd8
diff --git a/net/Makefile b/net/Makefile
index 190dcedc96cb..8020f126f31d 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -574,7 +574,6 @@
     SUBDIR += ooni-mini
     SUBDIR += ooni-probe-cli
     SUBDIR += open-isns
-    SUBDIR += openbgpd
     SUBDIR += openbgpd6
     SUBDIR += openbgpd7
     SUBDIR += openbgpd8
diff --git a/net/openbgpd/Makefile b/net/openbgpd/Makefile
deleted file mode 100644
index a1b128c07dc9..000000000000
--- a/net/openbgpd/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-PORTNAME=	openbgpd
-PORTVERSION=	5.2.20121209
-PORTREVISION=	5
-PORTEPOCH=	1
-CATEGORIES=	net
-MASTER_SITES=	OPENBSD/OpenBGPD
-DISTNAME=	${PORTNAME}-4.6
-DIST_SUBDIR=	${PORTNAME}
-
-MAINTAINER=	hrs@FreeBSD.org
-COMMENT=	Free implementation of the Border Gateway Protocol, Version 4
-WWW=		https://www.openbgpd.org/
-
-LICENSE=	ISCL
-LICENSE_FILE=	${FILESDIR}/COPYING
-
-DEPRECATED=	Unsupported upstream, consider using net/openbgpd8
-EXPIRATION_DATE=2025-04-30
-
-USES=		tar:tgz uidfix
-USE_RC_SUBR=	${PORTNAME}
-
-CONFLICTS=	zebra quagga
-
-NO_WRKSUBDIR=	yes
-PLIST_FILES=	sbin/bgpctl sbin/bgpd share/man/man5/bgpd.conf.5.gz \
-		share/man/man8/bgpctl.8.gz share/man/man8/bgpd.8.gz
-SUB_FILES=	pkg-message
-USERS=		_bgpd
-GROUPS=		_bgpd
-
-CFLAGS=		-fcommon
-
-OPTIONS_DEFINE=	IPV6LLPEER
-OPTIONS_DEFAULT=IPV6LLPEER
-IPV6LLPEER_DESC=Support nexthop using IPv6 link-local address
-IPV6LLPEER_MAKE_ARGS=	-DIPV6_LINKLOCAL_PEER
-
-post-patch:
-	@${REINPLACE_CMD} -e "s|%%PREFIX%%|${PREFIX}|g"	\
-	    ${WRKSRC}/bgpd/bgpd.8			\
-	    ${WRKSRC}/bgpd/bgpd.conf.5			\
-	    ${WRKSRC}/bgpctl/bgpctl.8
-
-.include <bsd.port.mk>
diff --git a/net/openbgpd/distinfo b/net/openbgpd/distinfo
deleted file mode 100644
index a4c5403642fe..000000000000
--- a/net/openbgpd/distinfo
+++ /dev/null
@@ -1,3 +0,0 @@
-TIMESTAMP = 1556692508
-SHA256 (openbgpd/openbgpd-4.6.tgz) = d9a0a3542e5ec744889ca12871f01aa1d86f12844e093010f37d0601796e15cf
-SIZE (openbgpd/openbgpd-4.6.tgz) = 168197
diff --git a/net/openbgpd/files/COPYING b/net/openbgpd/files/COPYING
deleted file mode 100644
index 0e9cfc51f9c0..000000000000
--- a/net/openbgpd/files/COPYING
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (c) 2003-2007 Henning Brauer <henning@openbsd.org>
-Copyright (c) 2002 Daniel Hartmeier <dhartmei@openbsd.org>
-Copyright (c) 2003, 2004, 2006 Claudio Jeker <claudio@openbsd.org>
-Copyright (c) 2003, 2004 Markus Friedl <markus@openbsd.org>
-Copyright (c) 2004 Damien Miller <djm@openbsd.org>
-Copyright (c) 2006, 2007, 2008 Reyk Floeter <reyk@openbsd.org>
-Copyright (c) 2006, 2007 Pierre-Yves Ritschard <pyr@openbsd.org>
-
-Permission to use, copy, modify, and distribute this software for any
-purpose with or without fee is hereby granted, provided that the above
-copyright notice and this permission notice appear in all copies.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
-ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
-WHATSOEVER RESULTING FROM LOSS OF MIND, USE, DATA OR PROFITS, WHETHER IN
-AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
-OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/net/openbgpd/files/openbgpd.in b/net/openbgpd/files/openbgpd.in
deleted file mode 100644
index 9f17d0032365..000000000000
--- a/net/openbgpd/files/openbgpd.in
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-# PROVIDE: bgpd dynamicrouting
-# REQUIRE: LOGIN abi
-# BEFORE:  securelevel
-# KEYWORD: shutdown
-
-# Add the following lines to /etc/rc.conf to enable openbgpd:
-#
-# openbgpd_enable="YES"
-# openbgpd_flags="<set as needed>"
-#
-# See bgpd(8) for openbgpd_flags
-
-. /etc/rc.subr
-
-name=openbgpd
-rcvar=openbgpd_enable
-
-extra_commands=reload
-command="%%PREFIX%%/sbin/bgpd"
-required_files="%%PREFIX%%/etc/bgpd.conf"
-
-: ${openbgpd_enable=NO}
-
-check_process()
-{
-	/bin/pgrep -f 'bgpd: parent.*'
-}
-
-load_rc_config $name
-run_rc_command "$1"
diff --git a/net/openbgpd/files/patch-Makefile b/net/openbgpd/files/patch-Makefile
deleted file mode 100644
index 77ae22e026e6..000000000000
--- a/net/openbgpd/files/patch-Makefile
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: Makefile
-===================================================================
-RCS file: Makefile
-diff -N Makefile
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ Makefile	30 Jun 2009 07:07:55 -0000	1.2
-@@ -0,0 +1,5 @@
-+# $hrs: openbgpd/Makefile,v 1.2 2009/06/30 07:07:55 hrs Exp $
-+
-+SUBDIR=	bgpd bgpctl
-+
-+.include <bsd.subdir.mk>
diff --git a/net/openbgpd/files/patch-Makefile.inc b/net/openbgpd/files/patch-Makefile.inc
deleted file mode 100644
index 489b88da0449..000000000000
--- a/net/openbgpd/files/patch-Makefile.inc
+++ /dev/null
@@ -1,12 +0,0 @@
-Index: Makefile.inc
-===================================================================
-RCS file: Makefile.inc
-diff -N Makefile.inc
---- /dev/null	1 Jan 1970 00:00:00 -0000
-+++ Makefile.inc	16 May 2014 01:06:14 -0000	1.5
-@@ -0,0 +1,5 @@
-+# $hrs: openbgpd/Makefile.inc,v 1.5 2014/05/16 01:06:14 hrs Exp $
-+
-+PREFIX?=	/usr/local
-+BINDIR?=	${PREFIX}/sbin
-+MANDIR?=	${PREFIX}/share/man/man
diff --git a/net/openbgpd/files/patch-bgpctl_Makefile b/net/openbgpd/files/patch-bgpctl_Makefile
deleted file mode 100644
index 572c0fcb8362..000000000000
--- a/net/openbgpd/files/patch-bgpctl_Makefile
+++ /dev/null
@@ -1,31 +0,0 @@
-Index: bgpctl/Makefile
-===================================================================
-RCS file: /home/cvs/private/hrs/openbgpd/bgpctl/Makefile,v
-retrieving revision 1.1.1.1
-retrieving revision 1.4
-diff -u -p -r1.1.1.1 -r1.4
---- bgpctl/Makefile	30 Jun 2009 05:46:15 -0000	1.1.1.1
-+++ bgpctl/Makefile	13 Oct 2012 18:35:56 -0000	1.4
-@@ -1,17 +1,18 @@
- #	$OpenBSD: Makefile,v 1.10 2007/12/20 17:08:48 henning Exp $
- 
--.PATH:		${.CURDIR}/../bgpd
-+.PATH:		${.CURDIR}/../bgpd ${.CURDIR}/../openbsd-compat
- 
- PROG=	bgpctl
--SRCS=	bgpctl.c parser.c buffer.c imsg.c util.c timer.c
-+SRCS=	bgpctl.c parser.c util.c timer.c
- SRCS+=	irrfilter.c whois.c irr_asset.c irr_prefix.c irr_output.c
--SRCS+=	irr_parser.c
-+SRCS+=	irr_parser.c mrtparser.c
-+SRCS+=	fmt_scaled.c imsg.c imsg-buffer.c
- CFLAGS+= -Wall
- CFLAGS+= -Wstrict-prototypes -Wmissing-prototypes
- CFLAGS+= -Wmissing-declarations
- CFLAGS+= -Wshadow -Wpointer-arith -Wcast-qual
- CFLAGS+= -Wsign-compare
--CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../bgpd
-+CFLAGS+= -I${.CURDIR} -I${.CURDIR}/../bgpd -I${.CURDIR}/../openbsd-compat
- MAN=	bgpctl.8
- LDADD= -lutil
- DPADD+= ${LIBUTIL}
diff --git a/net/openbgpd/files/patch-bgpctl_bgpctl.8 b/net/openbgpd/files/patch-bgpctl_bgpctl.8
deleted file mode 100644
index 2e08c575981e..000000000000
--- a/net/openbgpd/files/patch-bgpctl_bgpctl.8
+++ /dev/null
@@ -1,287 +0,0 @@
-Index: bgpctl/bgpctl.8
-===================================================================
-RCS file: /home/cvs/private/hrs/openbgpd/bgpctl/bgpctl.8,v
-retrieving revision 1.1.1.6
-retrieving revision 1.6
-diff -u -p -r1.1.1.6 -r1.6
---- bgpctl/bgpctl.8	14 Feb 2010 20:20:13 -0000	1.1.1.6
-+++ bgpctl/bgpctl.8	13 Oct 2012 18:35:56 -0000	1.6
-@@ -1,4 +1,4 @@
--.\" $OpenBSD: bgpctl.8,v 1.49 2009/06/06 06:11:17 claudio Exp $
-+.\" $OpenBSD: bgpctl.8,v 1.59 2012/05/27 20:49:42 jmc Exp $
- .\"
- .\" Copyright (c) 2003 Henning Brauer <henning@openbsd.org>
- .\"
-@@ -14,7 +14,7 @@
- .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
- .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- .\"
--.Dd $Mdocdate: June 6 2009 $
-+.Dd $Mdocdate: May 27 2012 $
- .Dt BGPCTL 8
- .Os
- .Sh NAME
-@@ -32,8 +32,7 @@ The
- program controls the
- .Xr bgpd 8
- daemon.
--Commands to switch between displays may be abbreviated to the
--minimum unambiguous prefix; for example,
-+Commands may be abbreviated to the minimum unambiguous prefix; for example,
- .Cm s s
- for
- .Cm show summary .
-@@ -53,11 +52,19 @@ to communicate with
- .Pp
- The commands are as follows:
- .Bl -tag -width xxxxxx
--.It Cm fib couple
--Insert the learned routes into the Forwarding Information Base
-+.It Xo
-+.Cm fib
-+.Op Cm table Ar number
-+.Cm couple
-+.Xc
-+Insert the learned routes into the specified Forwarding Information Base
- a.k.a. the kernel routing table.
--.It Cm fib decouple
--Remove the learned routes from the Forwarding Information Base
-+.It Xo
-+.Cm fib
-+.Op Cm table Ar number
-+.Cm decouple
-+.Xc
-+Remove the learned routes from the specified Forwarding Information Base
- a.k.a. the kernel routing table.
- .It Xo
- .Cm irrfilter
-@@ -79,7 +86,15 @@ The options are as follows:
- Use
- .Ar directory
- to write the filter files to.
-+.It Fl 4
-+Fetch only IPv4 prefixes from the registry.
-+.It Fl 6
-+Fetch only IPv6 prefixes from the registry.
- .El
-+.It Cm log brief
-+Disable verbose debug logging.
-+.It Cm log verbose
-+Enable verbose debug logging.
- .It Cm neighbor Ar peer Cm up
- Take the BGP session to the specified neighbor up.
- .Ar peer
-@@ -98,12 +113,21 @@ Note that the neighbor is not obliged to
- all, even if it announced the route refresh capability.
- .Ar peer
- may be the neighbor's address or description.
--.It Cm network add Ar prefix
-+.It Cm network add Ar prefix Op Ar arguments
- Add the specified prefix to the list of announced networks.
-+It is possible to set various path attributes with additional
-+.Ar arguments .
- .It Cm network delete Ar prefix
- Remove the specified prefix from the list of announced networks.
- .It Cm network flush
- Remove all dynamically added prefixes from the list of announced networks.
-+.It Cm network mrt file Ar file filter
-+Import networks from an MRT table dump for debugging purposes.
-+.Ar filter
-+can be specified similarly to the
-+.Ar show mrt
-+command.
-+Only networks matching the filter will be imported.
- .It Cm network show Ar family
- Show all announced networks.
- .Ar family ,
-@@ -122,7 +146,7 @@ view of the Forwarding Information Base.
- can be an IP address, in which case the route to this address is shown,
- or a flag:
- .Pp
--.Bl -tag -width connected -compact
-+.Bl -tag -width tableXnumber -compact
- .It Cm connected
- Show only connected routes.
- .It Cm static
-@@ -133,9 +157,81 @@ Show only routes originating from
- itself.
- .It Cm nexthop
- Show only routes required to reach a BGP nexthop.
-+.It Cm inet
-+Show only IPv4 routes.
-+.It Cm inet6
-+Show only IPv6 routes.
-+.It Cm table Ar number
-+Show the routing table with ID
-+.Ar number
-+instead of the default routing table with ID 0.
- .El
- .It Cm show interfaces
- Show the interface states.
-+.It Xo
-+.Cm show mrt
-+.Op Ar options
-+.Ar filter
-+.Xc
-+Show routes from an MRT table dump file.
-+.Ar filter
-+can be an IP address, a CIDR prefix, an AS filter, a combination or nothing:
-+.Pp
-+.Bl -tag -width "address/len all" -compact
-+.It Ar address
-+Show best matching route for address.
-+.It Ar address Ns Li / Ns Ar len
-+Show RIB entry for this CIDR prefix.
-+.It Xo
-+.Ar address Ns Li / Ns Ar len
-+.Cm all
-+.Xc
-+Show all entries in the specified range.
-+.\".It Ar address/len Cm longer-prefixes
-+.It Cm as Ar as
-+Show all entries with
-+.Ar as
-+anywhere in the AS path.
-+.It Cm empty-as
-+Show all entries that are internal routes with no AS's in the AS path.
-+.It Cm neighbor Ar ip
-+Show only entries from the specified peer.
-+.It Cm peer-as Ar as
-+Show all entries with
-+.Ar as
-+as leftmost AS.
-+.It Cm source-as Ar as
-+Show all entries with
-+.Ar as
-+as rightmost AS.
-+.It Cm transit-as Ar as
-+Show all entries with
-+.Ar as
-+anywhere but rightmost.
-+.El
-+.Pp
-+Additionally, the following
-+.Ar options
-+are defined:
-+.Pp
-+.Bl -tag -width "file name" -compact
-+.It Cm detail
-+Show more detailed output for matching routes.
-+.It Ar family
-+Limit the output to the given address family.
-+.It Cm file Ar name
-+Read the MRT dump from file
-+.Ar name
-+instead of using stdin.
-+.El
-+.Pp
-+Multiple options and filters can be used at the same time.
-+.It Cm show summary
-+Show a list of all neighbors, including information about the session state
-+and message counters.
-+.It Cm show summary terse
-+Show a list of all neighbors, including information about the session state,
-+in a terse format.
- .It Cm show neighbor Ar peer modifier
- Show detailed information about the neighbor identified by
- .Ar peer ,
-@@ -183,33 +279,33 @@ Show all entries in the specified range.
- Show all entries with
- .Ar as
- anywhere in the AS path.
--.It Cm source-as Ar as
--Show all entries with
--.Ar as
--as rightmost AS.
--.It Cm transit-as Ar as
--Show all entries with
--.Ar as
--anywhere but rightmost.
--.It Cm peer-as Ar as
--Show all entries with
--.Ar as
--as leftmost AS.
--.It Cm empty-as
--Show all entries that are internal routes with no AS's in the AS path.
- .It Cm community Ar community
- Show all entries with community
- .Ar community .
-+.It Cm empty-as
-+Show all entries that are internal routes with no AS's in the AS path.
-+.It Cm memory
-+Show RIB memory statistics.
- .It Cm neighbor Ar peer
- Show only entries from the specified peer.
--.It Cm table Ar rib
--Show only entries from the specified RIB table.
-+.It Cm peer-as Ar as
-+Show all entries with
-+.Ar as
-+as leftmost AS.
-+.It Cm source-as Ar as
-+Show all entries with
-+.Ar as
-+as rightmost AS.
- .It Cm summary
- This is the same as the
- .Ic show summary
- command.
--.It Cm memory
--Show RIB memory statistics.
-+.It Cm table Ar rib
-+Show only entries from the specified RIB table.
-+.It Cm transit-as Ar as
-+Show all entries with
-+.Ar as
-+anywhere but rightmost.
- .El
- .Pp
- Additionally, the following
-@@ -217,8 +313,10 @@ Additionally, the following
- are defined:
- .Pp
- .Bl -tag -width "detail" -compact
-+.It Cm selected
-+Show only selected routes.
- .It Cm detail
--Show more detailed output for matched routes.
-+Show more detailed output for matching routes.
- .It Ar family
- Limit the output to the given address family.
- .It Cm in
-@@ -243,10 +341,12 @@ and message counters.
- .It Cm show summary terse
- Show a list of all neighbors, including information about the session state,
- in a terse format.
-+.It Cm show tables
-+Show a list of all currently loaded fib routing tables.
- .El
- .Sh FILES
- .Bl -tag -width "/var/run/bgpd.sockXXX" -compact
--.It Pa /etc/bgpd.conf
-+.It Pa %%PREFIX%%/etc/bgpd.conf
- default
- .Xr bgpd 8
- configuration file
-@@ -260,10 +360,19 @@ control socket
- .Xr bgpd 8 ,
- .Xr bgplg 8 ,
- .Xr bgplgsh 8
-+.Sh STANDARDS
- .Rs
--.%R RFC 2622
--.%T "Routing Policy Specification Language (RPSL)"
-+.%A C. Alaettinoglu
-+.%A C. Villamizar
-+.%A E. Gerich
-+.%A D. Kessens
-+.%A D. Meyer
-+.%A T. Bates
-+.%A D. Karrenberg
-+.%A M. Terpstra
- .%D June 1999
-+.%R RFC 2622
-+.%T Routing Policy Specification Language (RPSL)
- .Re
- .Sh HISTORY
- The
diff --git a/net/openbgpd/files/patch-bgpctl_bgpctl.c b/net/openbgpd/files/patch-bgpctl_bgpctl.c
deleted file mode 100644
index 1553efc83281..000000000000
--- a/net/openbgpd/files/patch-bgpctl_bgpctl.c
+++ /dev/null
@@ -1,1529 +0,0 @@
-Index: bgpctl/bgpctl.c
-===================================================================
-RCS file: /home/cvs/private/hrs/openbgpd/bgpctl/bgpctl.c,v
-retrieving revision 1.1.1.7
-retrieving revision 1.10
-diff -u -p -r1.1.1.7 -r1.10
---- bgpctl/bgpctl.c	14 Feb 2010 20:20:14 -0000	1.1.1.7
-+++ bgpctl/bgpctl.c	8 Dec 2012 20:17:55 -0000	1.10
-@@ -1,4 +1,4 @@
--/*	$OpenBSD: bgpctl.c,v 1.142 2009/06/06 06:33:15 eric Exp $ */
-+/*	$OpenBSD: bgpctl.c,v 1.167 2012/11/15 19:55:08 sthen Exp $ */
- 
- /*
-  * Copyright (c) 2003 Henning Brauer <henning@openbsd.org>
-@@ -16,11 +16,19 @@
-  * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-  */
- 
-+#if defined(__FreeBSD__)	/* compat */
-+#include "openbsd-compat.h"
-+#endif /* defined(__FreeBSD__) */
-+
- #include <sys/types.h>
- #include <sys/socket.h>
- #include <sys/un.h>
- #include <net/if.h>
-+#if defined(__FreeBSD__)	/* net/if_media.h */
-+#include "if_media.h"
-+#else
- #include <net/if_media.h>
-+#endif /* defined(__FreeBSD__) */
- #include <net/if_types.h>
- 
- #include <err.h>
-@@ -29,7 +37,11 @@
- #include <stdlib.h>
- #include <string.h>
- #include <unistd.h>
-+#if defined(__FreeBSD__)	/* util.h */
-+#include "util.h"
-+#else
- #include <util.h>
-+#endif /* defined(__FreeBSD__) */
- 
- #include "bgpd.h"
- #include "session.h"
-@@ -37,6 +49,11 @@
- #include "log.h"
- #include "parser.h"
- #include "irrfilter.h"
-+#include "mrtparser.h"
-+
-+#if defined(__FreeBSD__) /* FreeBSD has no LINK_STATE_IS_UP macro. */
-+#define LINK_STATE_IS_UP(_s)  ((_s) >= LINK_STATE_UP)
-+#endif /* defined(__FreeBSD__) */ 
- 
- enum neighbor_views {
- 	NV_DEFAULT,
-@@ -50,12 +67,14 @@ int		 show_summary_msg(struct imsg *, in
- int		 show_summary_terse_msg(struct imsg *, int);
- int		 show_neighbor_terse(struct imsg *);
- int		 show_neighbor_msg(struct imsg *, enum neighbor_views);
--void		 print_neighbor_capa_mp_safi(u_int8_t);
-+void		 print_neighbor_capa_mp(struct peer *);
-+void		 print_neighbor_capa_restart(struct peer *);
- void		 print_neighbor_msgstats(struct peer *);
- void		 print_timer(const char *, time_t);
- static char	*fmt_timeframe(time_t t);
- static char	*fmt_timeframe_core(time_t t);
- void		 show_fib_head(void);
-+void		 show_fib_tables_head(void);
- void		 show_network_head(void);
- void		 show_fib_flags(u_int16_t);
- int		 show_fib_msg(struct imsg *);
-@@ -65,7 +84,7 @@ void		 show_interface_head(void);
- int		 ift2ifm(int);
- const char *	 get_media_descr(int);
- const char *	 get_linkstate(int, int);
--void		 print_baudrate(u_int64_t);
-+const char *	 get_baudrate(u_int64_t, char *);
- int		 show_interface_msg(struct imsg *);
- void		 show_rib_summary_head(void);
- void		 print_prefix(struct bgpd_addr *, u_int8_t, u_int8_t);
-@@ -73,16 +92,25 @@ const char *	 print_origin(u_int8_t, int
- void		 print_flags(u_int8_t, int);
- int		 show_rib_summary_msg(struct imsg *);
- int		 show_rib_detail_msg(struct imsg *, int);
-+void		 show_rib_brief(struct ctl_show_rib *, u_char *);
-+void		 show_rib_detail(struct ctl_show_rib *, u_char *, int);
-+void		 show_attr(void *, u_int16_t);
- void		 show_community(u_char *, u_int16_t);
--const char	*get_ext_subtype(u_int8_t);
- void		 show_ext_community(u_char *, u_int16_t);
- char		*fmt_mem(int64_t);
- int		 show_rib_memory_msg(struct imsg *);
- void		 send_filterset(struct imsgbuf *, struct filter_set_head *);
- static const char	*get_errstr(u_int8_t, u_int8_t);
- int		 show_result(struct imsg *);
-+void		 show_mrt_dump(struct mrt_rib *, struct mrt_peer *, void *);
-+void		 network_mrt_dump(struct mrt_rib *, struct mrt_peer *, void *);
-+void		 show_mrt_state(struct mrt_bgp_state *, void *);
-+void		 show_mrt_msg(struct mrt_bgp_msg *, void *);
-+void		 mrt_to_bgpd_addr(union mrt_addr *, struct bgpd_addr *);
- 
- struct imsgbuf	*ibuf;
-+struct mrt_parser show_mrt = { show_mrt_dump, show_mrt_state, show_mrt_msg };
-+struct mrt_parser net_mrt = { network_mrt_dump, NULL, NULL };
- 
- __dead void
- usage(void)
-@@ -98,7 +126,7 @@ int
- main(int argc, char *argv[])
- {
- 	struct sockaddr_un	 sun;
--	int			 fd, n, done, ch, nodescr = 0;
-+	int			 fd, n, done, ch, nodescr = 0, verbose = 0;
- 	struct imsg		 imsg;
- 	struct network_config	 net;
- 	struct parse_result	*res;
-@@ -128,8 +156,11 @@ main(int argc, char *argv[])
- 	if ((res = parse(argc, argv)) == NULL)
- 		exit(1);
- 
--	if (res->action == IRRFILTER)
-+	if (res->action == IRRFILTER) {
-+		if (!(res->flags & (F_IPV4|F_IPV6)))
-+			res->flags |= (F_IPV4|F_IPV6);
- 		irr_main(res->as.as, res->flags, res->irr_outdir);
-+	}
- 
- 	memcpy(&neighbor.addr, &res->peeraddr, sizeof(neighbor.addr));
- 	strlcpy(neighbor.descr, res->peerdesc, sizeof(neighbor.descr));
-@@ -154,7 +185,7 @@ main(int argc, char *argv[])
- 	case NONE:
- 	case IRRFILTER:
- 		usage();
--		/* not reached */
-+		/* NOTREACHED */
- 	case SHOW:
- 	case SHOW_SUMMARY:
- 		imsg_compose(ibuf, IMSG_CTL_SHOW_NEIGHBOR, 0, 0, -1, NULL, 0);
-@@ -164,24 +195,32 @@ main(int argc, char *argv[])
- 		imsg_compose(ibuf, IMSG_CTL_SHOW_TERSE, 0, 0, -1, NULL, 0);
- 		break;
- 	case SHOW_FIB:
--		if (!res->addr.af) {
--			struct buf	*msg;
--
--			if ((msg = imsg_create(ibuf, IMSG_CTL_KROUTE, 0, 0,
--			    sizeof(res->flags) + sizeof(res->af))) == NULL)
-+		if (!res->addr.aid) {
-+			struct ibuf	*msg;
-+			sa_family_t	 af;
-+
-+			af = aid2af(res->aid);
-+			if ((msg = imsg_create(ibuf, IMSG_CTL_KROUTE,
-+			    res->rtableid, 0, sizeof(res->flags) +
-+			    sizeof(af))) == NULL)
- 				errx(1, "imsg_create failure");
- 			if (imsg_add(msg, &res->flags, sizeof(res->flags)) ==
- 			    -1 ||
--			    imsg_add(msg, &res->af, sizeof(res->af)) == -1)
-+			    imsg_add(msg, &af, sizeof(af)) == -1)
- 				errx(1, "imsg_add failure");
- 			imsg_close(ibuf, msg);
- 		} else
--			imsg_compose(ibuf, IMSG_CTL_KROUTE_ADDR, 0, 0, -1,
--			    &res->addr, sizeof(res->addr));
-+			imsg_compose(ibuf, IMSG_CTL_KROUTE_ADDR, res->rtableid,
-+			    0, -1, &res->addr, sizeof(res->addr));
- 		show_fib_head();
- 		break;
-+	case SHOW_FIB_TABLES:
-+		imsg_compose(ibuf, IMSG_CTL_SHOW_FIB_TABLES, 0, 0, -1, NULL, 0);
-+		show_fib_tables_head();
-+		break;
- 	case SHOW_NEXTHOP:
--		imsg_compose(ibuf, IMSG_CTL_SHOW_NEXTHOP, 0, 0, -1, NULL, 0);
-+		imsg_compose(ibuf, IMSG_CTL_SHOW_NEXTHOP, res->rtableid, 0, -1,
-+		    NULL, 0);
- 		show_nexthop_head();
- 		break;
- 	case SHOW_INTERFACE:
-@@ -192,7 +231,7 @@ main(int argc, char *argv[])
- 	case SHOW_NEIGHBOR_TIMERS:
- 	case SHOW_NEIGHBOR_TERSE:
- 		neighbor.show_timers = (res->action == SHOW_NEIGHBOR_TIMERS);
--		if (res->peeraddr.af || res->peerdesc[0])
-+		if (res->peeraddr.aid || res->peerdesc[0])
- 			imsg_compose(ibuf, IMSG_CTL_SHOW_NEIGHBOR, 0, 0, -1,
- 			    &neighbor, sizeof(neighbor));
- 		else
-@@ -206,7 +245,7 @@ main(int argc, char *argv[])
- 			memcpy(&ribreq.as, &res->as, sizeof(res->as));
- 			type = IMSG_CTL_SHOW_RIB_AS;
- 		}
--		if (res->addr.af) {
-+		if (res->addr.aid) {
- 			memcpy(&ribreq.prefix, &res->addr, sizeof(res->addr));
- 			ribreq.prefixlen = res->prefixlen;
- 			type = IMSG_CTL_SHOW_RIB_PREFIX;
-@@ -217,15 +256,35 @@ main(int argc, char *argv[])
- 			    sizeof(res->community));
- 			type = IMSG_CTL_SHOW_RIB_COMMUNITY;
- 		}
--		memcpy(&ribreq.neighbor, &neighbor,
--		    sizeof(ribreq.neighbor));
-+		memcpy(&ribreq.neighbor, &neighbor, sizeof(ribreq.neighbor));
- 		strlcpy(ribreq.rib, res->rib, sizeof(ribreq.rib));
--		ribreq.af = res->af;
-+		ribreq.aid = res->aid;
- 		ribreq.flags = res->flags;
- 		imsg_compose(ibuf, type, 0, 0, -1, &ribreq, sizeof(ribreq));
- 		if (!(res->flags & F_CTL_DETAIL))
- 			show_rib_summary_head();
- 		break;
-+	case SHOW_MRT:
-+		close(fd);
-+		bzero(&ribreq, sizeof(ribreq));
-+		if (res->as.type != AS_NONE)
-+			memcpy(&ribreq.as, &res->as, sizeof(res->as));
-+		if (res->addr.aid) {
-+			memcpy(&ribreq.prefix, &res->addr, sizeof(res->addr));
-+			ribreq.prefixlen = res->prefixlen;
-+		}
-+		if (res->community.as != COMMUNITY_UNSET &&
-+		    res->community.type != COMMUNITY_UNSET)
-+			memcpy(&ribreq.community, &res->community,
-+			    sizeof(res->community));
-+		memcpy(&ribreq.neighbor, &neighbor, sizeof(ribreq.neighbor));
-+		ribreq.aid = res->aid;
-+		ribreq.flags = res->flags;
-+		show_mrt.arg = &ribreq;
-+		if (!(res->flags & F_CTL_DETAIL))
-+			show_rib_summary_head();
-+		mrt_parse(res->mrtfd, &show_mrt, 1);
-+		exit(0);
- 	case SHOW_RIB_MEM:
- 		imsg_compose(ibuf, IMSG_CTL_SHOW_RIB_MEM, 0, 0, -1, NULL, 0);
- 		break;
-@@ -237,12 +296,14 @@ main(int argc, char *argv[])
- 		errx(1, "action==FIB");
- 		break;
- 	case FIB_COUPLE:
--		imsg_compose(ibuf, IMSG_CTL_FIB_COUPLE, 0, 0, -1, NULL, 0);
-+		imsg_compose(ibuf, IMSG_CTL_FIB_COUPLE, res->rtableid, 0, -1,
-+		    NULL, 0);
- 		printf("couple request sent.\n");
- 		done = 1;
- 		break;
- 	case FIB_DECOUPLE:
--		imsg_compose(ibuf, IMSG_CTL_FIB_DECOUPLE, 0, 0, -1, NULL, 0);
-+		imsg_compose(ibuf, IMSG_CTL_FIB_DECOUPLE, res->rtableid, 0, -1,
-+		    NULL, 0);
- 		printf("decouple request sent.\n");
- 		done = 1;
- 		break;
-@@ -290,12 +351,40 @@ main(int argc, char *argv[])
- 		break;
- 	case NETWORK_SHOW:
- 		bzero(&ribreq, sizeof(ribreq));
--		ribreq.af = res->af;
-+		ribreq.aid = res->aid;
- 		strlcpy(ribreq.rib, res->rib, sizeof(ribreq.rib));
- 		imsg_compose(ibuf, IMSG_CTL_SHOW_NETWORK, 0, 0, -1,
- 		    &ribreq, sizeof(ribreq));
- 		show_network_head();
- 		break;
-+	case NETWORK_MRT:
-+		bzero(&ribreq, sizeof(ribreq));
-+		if (res->as.type != AS_NONE)
-+			memcpy(&ribreq.as, &res->as, sizeof(res->as));
-+		if (res->addr.aid) {
-+			memcpy(&ribreq.prefix, &res->addr, sizeof(res->addr));
-+			ribreq.prefixlen = res->prefixlen;
-+		}
-+		if (res->community.as != COMMUNITY_UNSET &&
-+		    res->community.type != COMMUNITY_UNSET)
-+			memcpy(&ribreq.community, &res->community,
-+			    sizeof(res->community));
-+		memcpy(&ribreq.neighbor, &neighbor, sizeof(ribreq.neighbor));
-+		ribreq.aid = res->aid;
-+		ribreq.flags = res->flags;
-+		net_mrt.arg = &ribreq;
-+		mrt_parse(res->mrtfd, &net_mrt, 1);
-+		done = 1;
-+		break;
-+	case LOG_VERBOSE:
-+		verbose = 1;
-+		/* FALLTHROUGH */
-+	case LOG_BRIEF:
-+		imsg_compose(ibuf, IMSG_CTL_LOG_VERBOSE, 0, 0, -1,
-+		    &verbose, sizeof(verbose));
-+		printf("logging request sent.\n");
-+		done = 1;
-+		break;
- 	}
- 
- 	while (ibuf->w.queued)
-@@ -304,13 +393,13 @@ main(int argc, char *argv[])
- 
- 	while (!done) {
- 		if ((n = imsg_read(ibuf)) == -1)
--			errx(1, "imsg_read error");
-+			err(1, "imsg_read error");
- 		if (n == 0)
- 			errx(1, "pipe closed");
- 
- 		while (!done) {
- 			if ((n = imsg_get(ibuf, &imsg)) == -1)
--				errx(1, "imsg_get error");
-+				err(1, "imsg_get error");
- 			if (n == 0)
- 				break;
- 
-@@ -329,6 +418,8 @@ main(int argc, char *argv[])
- 				done = show_summary_terse_msg(&imsg, nodescr);
- 				break;
- 			case SHOW_FIB:
-+			case SHOW_FIB_TABLES:
-+			case NETWORK_SHOW:
- 				done = show_fib_msg(&imsg);
- 				break;
- 			case SHOW_NEXTHOP:
-@@ -356,9 +447,6 @@ main(int argc, char *argv[])
- 			case SHOW_RIB_MEM:
- 				done = show_rib_memory_msg(&imsg);
- 				break;
--			case NETWORK_SHOW:
--				done = show_fib_msg(&imsg);
--				break;
- 			case NEIGHBOR:
- 			case NEIGHBOR_UP:
- 			case NEIGHBOR_DOWN:
-@@ -373,6 +461,10 @@ main(int argc, char *argv[])
- 			case NETWORK_REMOVE:
- 			case NETWORK_FLUSH:
- 			case IRRFILTER:
-+			case LOG_VERBOSE:
-+			case LOG_BRIEF:
-+			case SHOW_MRT:
-+			case NETWORK_MRT:
- 				break;
- 			}
- 			imsg_free(&imsg);
-@@ -398,8 +490,8 @@ fmt_peer(const char *descr, const struct
- 	}
- 
- 	ip = log_addr(remote_addr);
--	if (masklen != -1 && ((remote_addr->af == AF_INET && masklen != 32) ||
--	    (remote_addr->af == AF_INET6 && masklen != 128))) {
-+	if (masklen != -1 && ((remote_addr->aid == AID_INET && masklen != 32) ||
-+	    (remote_addr->aid == AID_INET6 && masklen != 128))) {
- 		if (asprintf(&p, "%s/%u", ip, masklen) == -1)
- 			err(1, NULL);
- 	} else {
-@@ -430,7 +522,7 @@ show_summary_msg(struct imsg *imsg, int 
- 		    p->conf.remote_masklen, nodescr);
- 		if (strlen(s) >= 20)
- 			s[20] = 0;
--		printf("%-20s %8s %10llu %10llu %5u %-8s ",
-+		printf("%-20s %8s %10" PRIu64 " %10" PRIu64 " %5u %-8s ",
- 		    s, log_as(p->conf.remote_as),
- 		    p->stats.msg_rcvd_open + p->stats.msg_rcvd_notification +
- 		    p->stats.msg_rcvd_update + p->stats.msg_rcvd_keepalive +
-@@ -492,8 +584,8 @@ show_neighbor_terse(struct imsg *imsg)
- 	switch (imsg->hdr.type) {
- 	case IMSG_CTL_SHOW_NEIGHBOR:
- 		p = imsg->data;
--		printf("%llu %llu %llu %llu %llu %llu %llu "
--		    "%llu %llu %llu %u %u %llu %llu %llu %llu\n",
-+		printf("%" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 " "
-+		    "%" PRIu64 " %" PRIu64 " %" PRIu64 " %u %u %" PRIu64 " %" PRIu64 " %" PRIu64 " %" PRIu64 "\n",
- 		    p->stats.msg_sent_open, p->stats.msg_rcvd_open,
- 		    p->stats.msg_sent_notification,
- 		    p->stats.msg_rcvd_notification,
-@@ -521,13 +613,15 @@ show_neighbor_msg(struct imsg *imsg, enu
- 	struct ctl_timer	*t;
- 	struct in_addr		 ina;
- 	char			 buf[NI_MAXHOST], pbuf[NI_MAXSERV], *s;
-+	int			 hascapamp = 0;
-+	u_int8_t		 i;
- 
- 	switch (imsg->hdr.type) {
- 	case IMSG_CTL_SHOW_NEIGHBOR:
- 		p = imsg->data;
--		if ((p->conf.remote_addr.af == AF_INET &&
-+		if ((p->conf.remote_addr.aid == AID_INET &&
- 		    p->conf.remote_masklen != 32) ||
*** 24051 LINES SKIPPED ***