From 0e73bc9f5f2c536807b52ad12ff70cb03cd9e7bf Mon Sep 17 00:00:00 2001 From: Timo Teras Date: Thu, 8 Oct 2009 21:49:41 +0300 Subject: main/quagga: revert confederation check that causes trouble --- main/quagga/APKBUILD | 4 +- main/quagga/quagga-revert-confed-check.patch | 97 ++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 main/quagga/quagga-revert-confed-check.patch (limited to 'main') diff --git a/main/quagga/APKBUILD b/main/quagga/APKBUILD index a243935d..a823126c 100644 --- a/main/quagga/APKBUILD +++ b/main/quagga/APKBUILD @@ -1,7 +1,7 @@ # Maintainer: Natanael Copa pkgname=quagga pkgver=0.99.15 -pkgrel=0 +pkgrel=1 pkgdesc="A free routing daemon replacing Zebra supporting RIP, OSPF and BGP." url="http://quagga.net/" license="GPL-2" @@ -13,6 +13,7 @@ subpackages="$pkgname-dev $pkgname-doc" source="http://www.quagga.net/download/$pkgname-$pkgver.tar.gz $pkgname-0.99.11-link-libcap.patch $pkgname-0.99.11-del-routes.patch + quagga-revert-confed-check.patch bgpd.initd ospf6d.initd ospfd.initd @@ -61,6 +62,7 @@ build() { md5sums="8975414c76a295f4855a417af0b5ddce quagga-0.99.15.tar.gz 8f99d41a8ed79e51704e8f655d255f29 quagga-0.99.11-link-libcap.patch 1cbcf60a637b2577dee4d6df711e1247 quagga-0.99.11-del-routes.patch +9a9ad8ac543901f3eab6a6f2a914b69d quagga-revert-confed-check.patch c4c3b174b1e3400a143407fcc3d27cf5 bgpd.initd 92aba039c049050c48abf984c2db7e2b ospf6d.initd 878328ead225e6eb5f5f77f05ab39106 ospfd.initd diff --git a/main/quagga/quagga-revert-confed-check.patch b/main/quagga/quagga-revert-confed-check.patch new file mode 100644 index 00000000..3c76d1dd --- /dev/null +++ b/main/quagga/quagga-revert-confed-check.patch @@ -0,0 +1,97 @@ +From b6c5e59e39e9513232c4e26faf30218e820f38a8 Mon Sep 17 00:00:00 2001 +From: Timo Teras +Date: Thu, 8 Oct 2009 21:46:28 +0300 +Subject: [PATCH] Revert "bgpd: Implement BGP confederation error handling (RFC5065, Par. 5)" + +This reverts commit ca87e1d37b3c30648e9bacb476a3c89729512f6d. +--- + bgpd/bgp_aspath.c | 36 ------------------------------------ + bgpd/bgp_aspath.h | 2 -- + bgpd/bgp_attr.c | 11 ----------- + 3 files changed, 0 insertions(+), 49 deletions(-) + +diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c +index 440815b..e43d1f1 100644 +--- a/bgpd/bgp_aspath.c ++++ b/bgpd/bgp_aspath.c +@@ -1122,42 +1122,6 @@ aspath_private_as_check (struct aspath *aspath) + return 1; + } + +-/* AS path confed check. If aspath contains confed set or sequence then return 1. */ +-int +-aspath_confed_check (struct aspath *aspath) +-{ +- struct assegment *seg; +- +- if ( !(aspath && aspath->segments) ) +- return 0; +- +- seg = aspath->segments; +- +- while (seg) +- { +- if (seg->type == AS_CONFED_SET || seg->type == AS_CONFED_SEQUENCE) +- return 1; +- seg = seg->next; +- } +- return 0; +-} +- +-/* Leftmost AS path segment confed check. If leftmost AS segment is of type +- AS_CONFED_SEQUENCE or AS_CONFED_SET then return 1. */ +-int +-aspath_left_confed_check (struct aspath *aspath) +-{ +- +- if ( !(aspath && aspath->segments) ) +- return 0; +- +- if ( (aspath->segments->type == AS_CONFED_SEQUENCE) +- || (aspath->segments->type == AS_CONFED_SET) ) +- return 1; +- +- return 0; +-} +- + /* Merge as1 to as2. as2 should be uninterned aspath. */ + static struct aspath * + aspath_merge (struct aspath *as1, struct aspath *as2) +diff --git a/bgpd/bgp_aspath.h b/bgpd/bgp_aspath.h +index 9854d18..2b4625c 100644 +--- a/bgpd/bgp_aspath.h ++++ b/bgpd/bgp_aspath.h +@@ -88,8 +88,6 @@ extern unsigned int aspath_key_make (void *); + extern int aspath_loop_check (struct aspath *, as_t); + extern int aspath_private_as_check (struct aspath *); + extern int aspath_firstas_check (struct aspath *, as_t); +-extern int aspath_confed_check (struct aspath *); +-extern int aspath_left_confed_check (struct aspath *); + extern unsigned long aspath_count (void); + extern unsigned int aspath_count_hops (struct aspath *); + extern unsigned int aspath_count_confeds (struct aspath *); +diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c +index 5e7536a..0668e9a 100644 +--- a/bgpd/bgp_attr.c ++++ b/bgpd/bgp_attr.c +@@ -872,17 +872,6 @@ static int bgp_attr_aspath_check( struct peer *peer, + + bgp = peer->bgp; + +- /* Confederation sanity check. */ +- if ((peer_sort (peer) == BGP_PEER_CONFED && ! aspath_left_confed_check (attr->aspath)) || +- (peer_sort (peer) == BGP_PEER_EBGP && aspath_confed_check (attr->aspath))) +- { +- zlog (peer->log, LOG_ERR, "Malformed AS path from %s", peer->host); +- bgp_notify_send (peer, +- BGP_NOTIFY_UPDATE_ERR, +- BGP_NOTIFY_UPDATE_MAL_AS_PATH); +- return -1; +- } +- + /* First AS check for EBGP. */ + if (bgp != NULL && bgp_flag_check (bgp, BGP_FLAG_ENFORCE_FIRST_AS)) + { +-- +1.6.0.4 + -- cgit v1.2.3