net-misc/quagga: drop obsolete patches

Package-Manager: Portage-2.3.31, Repoman-2.3.9
This commit is contained in:
Sergey Popov
2018-04-23 11:47:35 +03:00
parent fea8855f8a
commit 45e3ea14dd
2 changed files with 0 additions and 73 deletions

View File

@@ -1,42 +0,0 @@
commit 1db1b9baea511995b67a9b282d5c97e87479fe5d
Author: Mathieu Jadin <mathjadin@gmail.com>
Date: Thu Dec 14 17:53:53 2017 +0100
bgpd: Fix mistake in NHT of connected IPv6 next-hops preventing route advertisement
Since quagga-1.2.0, the Next Hop validation for directly connected peers
using IPv6 does not work.
In this setup, BGP updates contain two next hops: a global IPv6 address and
a link-local IPv6 address (a correct behavior according to RFC 2545). This
means that the length of the next hop attribute is 32 and not 16.
The problem comes from the function "make_prefix()" in "bgpd/bgp_nht.c". It
refuses to build a prefix structure for a route when the length of the
[Anext hop attribute is different from 16, even if a valid global IPv6
address is available.
The route is mistakenly considered invalid and thus, it is not installed in
the routing table.
Details: "make_prefix()" was not modified in quagga-1.2.0 but its
interpretation was changed in commit
3dda6b3eccb9a2a88d607372c83c04c796e7daac. Before this commit, the failure
of "make_prefix()" was interpreted as a successful validation of the next
hop.
diff --git a/bgpd/bgp_nht.c b/bgpd/bgp_nht.c
index 1158ab15..d734c201 100644
--- a/bgpd/bgp_nht.c
+++ b/bgpd/bgp_nht.c
@@ -409,8 +409,8 @@ make_prefix (int afi, struct bgp_info *ri, struct prefix *p)
break;
#ifdef HAVE_IPV6
case AFI_IP6:
- if (ri->attr->extra->mp_nexthop_len != 16
- || IN6_IS_ADDR_LINKLOCAL (&ri->attr->extra->mp_nexthop_global))
+ if (ri->attr->extra->mp_nexthop_len == 16
+ && IN6_IS_ADDR_LINKLOCAL (&ri->attr->extra->mp_nexthop_global))
return -1;
p->family = AF_INET6;

View File

@@ -1,31 +0,0 @@
commit adda534f95ec87206c9dfd1b3bae05221dc29730
Author: Rolf Eike Beer <eike@sf-mail.de>
Date: Mon Dec 4 18:36:21 2017 +0100
bgpd: fix SIGBUS
There is one test failure in the testsuite on sparc:
Running ./bgpd.tests/testbgpcap.exp ...
failed: testbgpcap ORF: ORF, simple, single entry, single tuple -- testbgpcap aborted!
The error is a SIGBUS in bgp_capability_mp_data() because of an unaligned
memory access. Use memcpy() instead of direct assignments. Compilers on
platforms that support unaligned accesses should be clever enough to
optimize the function call away and do the direct store, so this should not
hurt there.
diff --git a/bgpd/bgp_open.c b/bgpd/bgp_open.c
index 28004230..d9ec4bef 100644
--- a/bgpd/bgp_open.c
+++ b/bgpd/bgp_open.c
@@ -120,7 +120,8 @@ bgp_capability_vty_out (struct vty *vty, struct peer *peer)
static void
bgp_capability_mp_data (struct stream *s, struct capability_mp_data *mpc)
{
- mpc->afi = stream_getw (s);
+ afi_t afi = stream_getw (s);
+ memcpy(&mpc->afi, &afi, sizeof(mpc->afi));
mpc->reserved = stream_getc (s);
mpc->safi = stream_getc (s);
}