diff --git a/net/quagga-unstable/patches/130-confed_aspath_delete_on_prepend.patch b/net/quagga-unstable/patches/130-confed_aspath_delete_on_prepend.patch new file mode 100644 index 000000000..3970b13d9 --- /dev/null +++ b/net/quagga-unstable/patches/130-confed_aspath_delete_on_prepend.patch @@ -0,0 +1,13 @@ +--- a/bgpd/bgp_aspath.c ++++ b/bgpd/bgp_aspath.c +@@ -1208,6 +1208,10 @@ aspath_prepend (struct aspath *as1, stru + while (seg1 && seg1->next) + seg1 = seg1->next; + ++ /* Delete any AS_CONFED_SEQUENCE segment from as2. */ ++ if (seg1->type == AS_SEQUENCE && seg2->type == AS_CONFED_SEQUENCE) ++ as2 = aspath_delete_confed_seq (as2); ++ + /* Compare last segment type of as1 and first segment type of as2. */ + if (seg1->type != seg2->type) + return aspath_merge (as1, as2); diff --git a/net/quagga-unstable/patches/140-holdtimer-set.patch b/net/quagga-unstable/patches/140-holdtimer-set.patch new file mode 100644 index 000000000..1895f548f --- /dev/null +++ b/net/quagga-unstable/patches/140-holdtimer-set.patch @@ -0,0 +1,22 @@ +--- a/bgpd/bgp_network.c ++++ b/bgpd/bgp_network.c +@@ -185,8 +185,7 @@ bgp_accept (struct thread *thread) + peer->fd = bgp_sock; + peer->status = Active; + peer->local_id = peer1->local_id; +- peer->v_holdtime = peer1->v_holdtime; +- peer->v_keepalive = peer1->v_keepalive; ++ peer->v_holdtime = BGP_LARGE_HOLDTIME; + + /* Make peer's address string. */ + sockunion2str (&su, buf, SU_ADDRSTRLEN); +--- a/bgpd/bgpd.h ++++ b/bgpd/bgpd.h +@@ -709,6 +709,7 @@ struct bgp_nlri + /* BGP timers default value. */ + #define BGP_INIT_START_TIMER 5 + #define BGP_ERROR_START_TIMER 30 ++#define BGP_LARGE_HOLDTIME 240 + #define BGP_DEFAULT_HOLDTIME 180 + #define BGP_DEFAULT_KEEPALIVE 60 + #define BGP_DEFAULT_ASORIGINATE 15