aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authormelifaro <melifaro@FreeBSD.org>2015-05-04 18:24:00 +0800
committermelifaro <melifaro@FreeBSD.org>2015-05-04 18:24:00 +0800
commit01b010e981cba02fd0e18587129aaeabfcee2ac4 (patch)
tree5c7b60ee9fadcd8f17706ecf9df960f987564361 /net
parent6724357cb2f15f0edae43c43c2c19ddbc5f4609e (diff)
downloadfreebsd-ports-gnome-01b010e981cba02fd0e18587129aaeabfcee2ac4.tar.gz
freebsd-ports-gnome-01b010e981cba02fd0e18587129aaeabfcee2ac4.tar.zst
freebsd-ports-gnome-01b010e981cba02fd0e18587129aaeabfcee2ac4.zip
Bump version to 1.5.0 (changelog below).
Remove experimental and already included patches. Add OSPF: Fixes validation of LSA checksums from git. Remove clang gnu89 constaint. Version 1.5.0 (2015-04-20) Major OSPF protocol redesign. OSPFv2 multi-instance extension (RFC 6549). BGP AS-wide unique router ID (RFC 6286). BGP enhanced route refresh (RFC 7313). Link state support in BGP. Latency tracking and internal watchdog. Uses high port range for BFD on BSD. Increase max symbol length to 64. Allows to define unnamed protocols from templates. Fixes two serious bugs in BGP. Several bugfixes and minor improvements. Several minor option changes: - OSPF: Protocol-wide 'instance id' option added. - BGP: Parameters to option 'neighbor' extended. - BGP: Separate option 'interface' added. - BGP: Option 'start delay time' renamed to 'connect delay time'. - BGP: Option 'route limit' deprecated. Upgrade notes: For OSPF, there are deep internal changes, but user-visible changes are limited to log messages and minor changes in formatting of command output. For BGP, version 1.5.0 is essentially a minor release. There are two deprecated options ('start delay time' and 'route limit') and some minor formatting changes. Reviewed by: az(implicit)
Diffstat (limited to 'net')
-rw-r--r--net/bird/Makefile8
-rw-r--r--net/bird/distinfo4
-rw-r--r--net/bird/files/exp-ll.patch164
-rw-r--r--net/bird/files/exp-locks.patch25
-rw-r--r--net/bird/files/exp-templates.patch140
5 files changed, 4 insertions, 337 deletions
diff --git a/net/bird/Makefile b/net/bird/Makefile
index a2a862933526..6d898eafb399 100644
--- a/net/bird/Makefile
+++ b/net/bird/Makefile
@@ -2,8 +2,7 @@
# $FreeBSD$
PORTNAME?= bird
-PORTVERSION= 1.4.5
-PORTREVISION= 2
+PORTVERSION= 1.5.0
CATEGORIES= net
MASTER_SITES= ftp://bird.network.cz/pub/bird/ \
http://bird.mpls.in/distfiles/bird/
@@ -16,12 +15,10 @@ LICENSE= GPLv2
USES= bison gmake readline
GNU_CONFIGURE= yes
CONFIGURE_ARGS+= --localstatedir=/var
-USE_CSTD= gnu89
-OPTIONS_DEFINE?= FIREWALL AGG EXP
+OPTIONS_DEFINE?= FIREWALL AGG
FIREWALL_DESC= Enable firewall protocol
AGG_DESC= Enable aggregation protocol (EXPERIMENTAL)
-EXP_DESC= Enable some experimental patches
NO_OPTIONS_SORT= yes
MAKE_JOBS_UNSAFE= yes
@@ -34,7 +31,6 @@ PLIST_SUB?= VER=""
FIREWALL_EXTRA_PATCHES+= ${FILESDIR}/firewall_support.patch
AGG_EXTRA_PATCHES+= ${FILESDIR}/agg_support.patch
-EXP_EXTRA_PATCHES+= ${FILESDIR}/exp-templates.patch ${FILESDIR}/exp-ll.patch ${FILESDIR}/exp-locks.patch
.include <bsd.port.options.mk>
diff --git a/net/bird/distinfo b/net/bird/distinfo
index d984315c6c06..688660be94bc 100644
--- a/net/bird/distinfo
+++ b/net/bird/distinfo
@@ -1,2 +1,2 @@
-SHA256 (bird-1.4.5.tar.gz) = ff485f0c64c5f762458e0f09e327e2f518a14b0247194c62ffa480d1eb3f9ffc
-SIZE (bird-1.4.5.tar.gz) = 1284666
+SHA256 (bird-1.5.0.tar.gz) = 79d5c4254e25f5890626830ca42aae03735716bdf152ddd8368473d2b3c17b5d
+SIZE (bird-1.5.0.tar.gz) = 1300141
diff --git a/net/bird/files/exp-ll.patch b/net/bird/files/exp-ll.patch
deleted file mode 100644
index c7c24d0feb0e..000000000000
--- a/net/bird/files/exp-ll.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From d4d9c7fb4c74485b603026aaa35a528160c87ed4 Mon Sep 17 00:00:00 2001
-From: "Alexander V. Chernikov" <melifaro@yandex-team.ru>
-Date: Fri, 19 Dec 2014 15:44:45 +0000
-Subject: [PATCH 2/3] Improve link-local nexthops handling for link-local
- BGP-IPv6 sessions.
-
----
- doc/bird.sgml | 9 +++++++++
- proto/bgp/bgp.h | 6 ++++++
- proto/bgp/config.Y | 8 +++++++-
- proto/bgp/packets.c | 52 ++++++++++++++++++++++++++++++++++++++++++++++++----
- 4 files changed, 70 insertions(+), 5 deletions(-)
-
-diff --git doc/bird.sgml doc/bird.sgml
-index e9e5920..2951f13 100644
---- doc/bird.sgml
-+++ doc/bird.sgml
-@@ -1668,6 +1668,15 @@ using the following configuration parameters:
- local address should be used instead, like when the route is sent to an
- interface with a different subnet. Default: disabled.
-
-+ <tag>next hop lladdr both|only|empty</tag>
-+ Different BGP-IPv6 implementations sends/receives link-local nexthops
-+ for link-local BGP sessions in different formats. This option specifies
-+ exact format understood by particular peer. <cf/both/ means that BIRD
-+ sends both addresses in next-hop as link-local. <cf/only/ means that BIRD
-+ sends single link-local address as next-hop. <cf/empty/ means that BIRD
-+ sends empty global address and original link-local address as next-hop.
-+ Default: <cf/empty/.
-+
- <tag>missing lladdr self|drop|ignore</tag>
- Next Hop attribute in BGP-IPv6 sometimes contains just the global IPv6
- address, but sometimes it has to contain both global and link-local IPv6
-diff --git proto/bgp/bgp.h proto/bgp/bgp.h
-index 0fd3a73..5a53559 100644
---- proto/bgp/bgp.h
-+++ proto/bgp/bgp.h
-@@ -51,6 +51,7 @@ struct bgp_config {
- int allow_local_as; /* Allow that number of local ASNs in incoming AS_PATHs */
- int gr_mode; /* Graceful restart mode (BGP_GR_*) */
- unsigned gr_time; /* Graceful restart timeout */
-+ int nhop_lladdr; /* Expected link-local nhop format, see NLL_* */
- unsigned connect_retry_time;
- unsigned hold_time, initial_hold_time;
- unsigned keepalive_time;
-@@ -69,6 +70,11 @@ struct bgp_config {
- #define MLL_DROP 2
- #define MLL_IGNORE 3
-
-+#define NLL_BOTH 1
-+#define NLL_ONLY 2
-+#define NLL_EMPTYGLOBAL 3
-+#define NLL_TRANSPARENT 4
-+
- #define GW_DIRECT 1
- #define GW_RECURSIVE 2
-
-diff --git proto/bgp/config.Y proto/bgp/config.Y
-index d04c16d..5c9e826 100644
---- proto/bgp/config.Y
-+++ proto/bgp/config.Y
-@@ -26,7 +26,8 @@ CF_KEYWORDS(BGP, LOCAL, REMOTE, NEIGHBOR, AS, HOLD, TIME, CONNECT, RETRY,
- PREFER, OLDER, MISSING, LLADDR, DROP, IGNORE, ROUTE, REFRESH,
- INTERPRET, COMMUNITIES, BGP_ORIGINATOR_ID, BGP_CLUSTER_LIST, IGP,
- TABLE, GATEWAY, DIRECT, RECURSIVE, MED, TTL, SECURITY, DETERMINISTIC,
-- SECONDARY, ALLOW, BFD, ADD, PATHS, RX, TX, GRACEFUL, RESTART, AWARE)
-+ SECONDARY, ALLOW, BFD, ADD, PATHS, RX, TX, GRACEFUL, RESTART, AWARE,
-+ BOTH)
-
- CF_GRAMMAR
-
-@@ -53,6 +54,7 @@ bgp_proto_start: proto_start BGP {
- BGP_CFG->gr_mode = BGP_GR_AWARE;
- BGP_CFG->gr_time = 120;
- BGP_CFG->remote_port = BGP_PORT;
-+ BGP_CFG->nhop_lladdr = NLL_EMPTYGLOBAL;
- }
- ;
-
-@@ -88,6 +90,10 @@ bgp_proto:
- | bgp_proto MULTIHOP expr ';' { BGP_CFG->multihop = $3; if (($3<1) || ($3>255)) cf_error("Multihop must be in range 1-255"); }
- | bgp_proto NEXT HOP SELF ';' { BGP_CFG->next_hop_self = 1; BGP_CFG->next_hop_keep = 0; }
- | bgp_proto NEXT HOP KEEP ';' { BGP_CFG->next_hop_keep = 1; BGP_CFG->next_hop_self = 0; }
-+ | bgp_proto NEXT HOP LLADDR BOTH ';' { BGP_CFG->nhop_lladdr = NLL_BOTH; }
-+ | bgp_proto NEXT HOP LLADDR ONLY ';' { BGP_CFG->nhop_lladdr = NLL_ONLY; }
-+ | bgp_proto NEXT HOP LLADDR EMPTY ';' { BGP_CFG->nhop_lladdr = NLL_EMPTYGLOBAL; }
-+ | bgp_proto NEXT HOP LLADDR TRANSPARENT ';' { BGP_CFG->nhop_lladdr = NLL_TRANSPARENT; }
- | bgp_proto MISSING LLADDR SELF ';' { BGP_CFG->missing_lladdr = MLL_SELF; }
- | bgp_proto MISSING LLADDR DROP ';' { BGP_CFG->missing_lladdr = MLL_DROP; }
- | bgp_proto MISSING LLADDR IGNORE ';' { BGP_CFG->missing_lladdr = MLL_IGNORE; }
-diff --git proto/bgp/packets.c proto/bgp/packets.c
-index 0b9de8c..0744fab 100644
---- proto/bgp/packets.c
-+++ proto/bgp/packets.c
-@@ -522,8 +522,36 @@ bgp_create_update(struct bgp_conn *conn, byte *buf)
- *tmp++ = BGP_AF_IPV6;
- *tmp++ = 1;
-
-- if (ipa_has_link_scope(ip))
-- ip = IPA_NONE;
-+ /*
-+ * Handle different nexthops schemes for link-local BGP:
-+ * Possible cases:
-+ * [ ::, fe80::XX ]: bird default
-+ * [ fe80::XX, fe80::XX ]: used in JunoOS
-+ * [ fe80:XX ]: used by some Huawei implementations
-+ */
-+ if ((ipa_zero(ip) || ipa_has_link_scope(ip)) && ipa_nonzero(ip_ll))
-+ {
-+ switch (p->cf->nhop_lladdr)
-+ {
-+ case NLL_EMPTYGLOBAL:
-+ /* Leave link-local, but reset global address to :: */
-+ if (ipa_has_link_scope(ip))
-+ ip = IPA_NONE;
-+ break;
-+ case NLL_ONLY:
-+ /* Link-local address only */
-+ ip = ip_ll;
-+ ip_ll = IPA_NONE;
-+ break;
-+ case NLL_BOTH:
-+ /* Both addresses are link-local */
-+ ip = ip_ll;
-+ break;
-+ case NLL_TRANSPARENT:
-+ /* Leave as is */
-+ break;
-+ }
-+ }
-
- if (ipa_nonzero(ip_ll))
- {
-@@ -1033,9 +1061,25 @@ bgp_set_next_hop(struct bgp_proto *p, rta *a)
- #ifdef IPV6
- int second = (nh->u.ptr->length == NEXT_HOP_LENGTH) && ipa_nonzero(nexthop[1]);
-
-- /* First address should not be link-local, but may be zero in direct mode */
-+ /*
-+ * There are different ways of sending link-local nexthop address:
-+ * some implementation pass single entry with link-local address, e.g. [ fe80::xx ]
-+ * some may pass dual nexthops, e.g. [ aa::bb fe80::xx ].
-+ *
-+ * We need to convert both cases to internally used [ :: fe80:xx ] scheme.
-+ */
- if (ipa_has_link_scope(*nexthop))
-- *nexthop = IPA_NONE;
-+ {
-+ if (second)
-+ *nexthop = IPA_NONE;
-+ else
-+ {
-+ /* We have received single link-local nexthop */
-+ nexthop = alloca(sizeof(ip_addr) * 2);
-+ *nexthop = IPA_NONE;
-+ nexthop[1] = *((ip_addr *) nh->u.ptr->data);
-+ }
-+ }
- #else
- int second = 0;
- #endif
---
-2.1.2
-
diff --git a/net/bird/files/exp-locks.patch b/net/bird/files/exp-locks.patch
deleted file mode 100644
index 22d34aa20757..000000000000
--- a/net/bird/files/exp-locks.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 72eb25c26107f31bcf6d8cd02e47ec16a69082ce Mon Sep 17 00:00:00 2001
-From: "Alexander V. Chernikov" <melifaro@yandex-team.ru>
-Date: Wed, 21 Jan 2015 19:12:33 +0000
-Subject: [PATCH 3/3] Locks fix from list.
-
----
- nest/locks.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git nest/locks.c nest/locks.c
-index 7044d6a..8ee5898 100644
---- nest/locks.c
-+++ nest/locks.c
-@@ -68,7 +68,7 @@ olock_free(resource *r)
- DBG("olock: -> %p becomes locked\n", n);
- q = SKIP_BACK(struct object_lock, n, n);
- rem_node(n);
-- add_tail_list(&l->waiters, &q->waiters);
-+ add_tail_list(&q->waiters, &l->waiters);
- q->state = OLOCK_STATE_EVENT;
- add_head(&olock_list, n);
- ev_schedule(olock_event);
---
-2.1.2
-
diff --git a/net/bird/files/exp-templates.patch b/net/bird/files/exp-templates.patch
deleted file mode 100644
index f06ec7b6929b..000000000000
--- a/net/bird/files/exp-templates.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From 80d3b227f32679332957299a9c01da66cce54427 Mon Sep 17 00:00:00 2001
-From: "Alexander V. Chernikov" <melifaro@yandex-team.ru>
-Date: Fri, 19 Dec 2014 15:36:40 +0000
-Subject: [PATCH 1/3] Simplify using templates for BGP:
-
-Permit specifying remote as via 'remote as' statement.
-Permit specifying interface for link-local sessions via 'interface'
-statement.
-Relax 'neighbor' statement: do not require specifying as.
----
- conf/confbase.Y | 3 +--
- doc/bird.sgml | 11 ++++++++++-
- proto/bgp/bgp.c | 11 +++++++++++
- proto/bgp/config.Y | 19 ++++++++++++-------
- 4 files changed, 34 insertions(+), 10 deletions(-)
-
-diff --git conf/confbase.Y conf/confbase.Y
-index 49831b1..ccc9e10 100644
---- conf/confbase.Y
-+++ conf/confbase.Y
-@@ -162,8 +162,7 @@ ipa_scope:
- ;
-
- ipa_port:
-- /* empty */ { $$ = 0; }
-- | PORT expr {
-+ PORT expr {
- if (($2 < 1) || ($2 > 65535)) cf_error("Invalid port number");
- $$ = $2;
- }
-diff --git doc/bird.sgml doc/bird.sgml
-index 31b1d6f..e9e5920 100644
---- doc/bird.sgml
-+++ doc/bird.sgml
-@@ -1620,7 +1620,11 @@ using the following configuration parameters:
- address, equivalent to the <cf/source address/ option (see below). This
- parameter is mandatory.
-
-- <tag>neighbor <m/ip/ [port <m/number/] as <m/number/</tag>
-+ <tag>remote as <m/number/</tag>
-+ Define neighboring AS number. AS number can also be specified inside
-+ <cf/neighbor/ statement. In that case, this paremeter is optional.
-+
-+ <tag>neighbor <m/ip/ [port <m/number/] [as <m/number/]</tag>
- Define neighboring router this instance will be talking to and what AS
- it's located in. In case the neighbor is in the same AS as we are, we
- automatically switch to iBGP. This parameter is mandatory.
-@@ -1649,6 +1653,11 @@ using the following configuration parameters:
- source address for the BGP session. Default: the address of the local
- end of the interface our neighbor is connected to.
-
-+ <tag>interface <m/iface/</tag>
-+ Define interface we should use for link-local BGP IPv6 sessions. Interface
-+ can also be specified inside <cf/neighbor address/. It is an error to use
-+ this parameter for non link-local sessions. This parameter is optional.
-+
- <tag>next hop self</tag>
- Avoid calculation of the Next Hop attribute and always advertise our own
- source address as a next hop. This needs to be used only occasionally to
-diff --git proto/bgp/bgp.c proto/bgp/bgp.c
-index e233911..3fbedad 100644
---- proto/bgp/bgp.c
-+++ proto/bgp/bgp.c
-@@ -1157,6 +1157,9 @@ bgp_check_config(struct bgp_config *c)
- if (!c->remote_as)
- cf_error("Neighbor must be configured");
-
-+ if (!c->remote_port)
-+ cf_error("Correct BGP port must be set");
-+
- if (!(c->capabilities && c->enable_as4) && (c->remote_as > 0xFFFF))
- cf_error("Neighbor AS number out of range (AS4 not available)");
-
-@@ -1176,6 +1179,14 @@ bgp_check_config(struct bgp_config *c)
- if (c->multihop && c->bfd && ipa_zero(c->source_addr))
- cf_error("Multihop BGP with BFD requires specified source address");
-
-+ if (!c->iface && (ipa_has_link_scope(c->remote_ip) ||
-+ ipa_has_link_scope(c->source_addr)))
-+ cf_error("Link-local BGP requires specifying interface");
-+
-+ if (c->iface && (!ipa_has_link_scope(c->remote_ip) &&
-+ !ipa_has_link_scope(c->source_addr)))
-+ cf_error("Explicit interface specified for global addresses");
-+
- if ((c->gw_mode == GW_RECURSIVE) && c->c.table->sorted)
- cf_error("BGP in recursive mode prohibits sorted table");
-
-diff --git proto/bgp/config.Y proto/bgp/config.Y
-index 8e0b241..d04c16d 100644
---- proto/bgp/config.Y
-+++ proto/bgp/config.Y
-@@ -16,7 +16,7 @@ CF_DEFINES
-
- CF_DECLS
-
--CF_KEYWORDS(BGP, LOCAL, NEIGHBOR, AS, HOLD, TIME, CONNECT, RETRY,
-+CF_KEYWORDS(BGP, LOCAL, REMOTE, NEIGHBOR, AS, HOLD, TIME, CONNECT, RETRY,
- KEEPALIVE, MULTIHOP, STARTUP, VIA, NEXT, HOP, SELF, DEFAULT,
- PATH, METRIC, ERROR, START, DELAY, FORGET, WAIT, ENABLE,
- DISABLE, AFTER, BGP_PATH, BGP_LOCAL_PREF, BGP_MED, BGP_ORIGIN,
-@@ -52,24 +52,29 @@ bgp_proto_start: proto_start BGP {
- BGP_CFG->default_local_pref = 100;
- BGP_CFG->gr_mode = BGP_GR_AWARE;
- BGP_CFG->gr_time = 120;
-+ BGP_CFG->remote_port = BGP_PORT;
- }
- ;
-
-+bpg_neighbor_opts:
-+ | ipa_port { if ($1 != 0) BGP_CFG->remote_port = $1; }
-+ | AS expr { BGP_CFG->remote_as = $2; }
-+ ;
-+
- bgp_proto:
- bgp_proto_start proto_name '{'
- | bgp_proto proto_item ';'
- | bgp_proto LOCAL AS expr ';' { BGP_CFG->local_as = $4; }
- | bgp_proto LOCAL ipa AS expr ';' { BGP_CFG->source_addr = $3; BGP_CFG->local_as = $5; }
-- | bgp_proto NEIGHBOR ipa ipa_scope ipa_port AS expr ';' {
-+ | bgp_proto REMOTE AS expr ';' { BGP_CFG->remote_as = $4; }
-+ | bgp_proto INTERFACE SYM ';' { BGP_CFG->iface = if_get_by_name($3->name); }
-+ | bgp_proto NEIGHBOR ipa ipa_scope bpg_neighbor_opts ';' {
- if (ipa_nonzero(BGP_CFG->remote_ip))
- cf_error("Only one neighbor per BGP instance is allowed");
-- if (!ipa_has_link_scope($3) != !$4)
-- cf_error("Link-local address and interface scope must be used together");
-
- BGP_CFG->remote_ip = $3;
-- BGP_CFG->iface = $4;
-- BGP_CFG->remote_port = ($5 > 0) ? $5 : BGP_PORT;
-- BGP_CFG->remote_as = $7;
-+ if ($4 != NULL)
-+ BGP_CFG->iface = $4;
- }
- | bgp_proto RR CLUSTER ID idval ';' { BGP_CFG->rr_cluster_id = $5; }
- | bgp_proto RR CLIENT ';' { BGP_CFG->rr_client = 1; }
---
-2.1.2
-