From: paul Date: Tue, 20 Apr 2004 15:13:15 +0000 (+0000) Subject: 2004-04-16 rivo nurges X-Git-Tag: frr-2.0-rc1~3746 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=545acafbf599b3d163813e6640a1f83703ebda2e;p=mirror%2Ffrr.git 2004-04-16 rivo nurges * bgpd.h: update cease subcodes to draft-ietf-idr-cease-subcode-05 * bgpd.h, bgpd.c, bgp_route.c, bgp_route.h: fix UNH IOL BGP-4.1.6a --- diff --git a/bgpd/ChangeLog b/bgpd/ChangeLog index f28e6a0ce7..9250785c8b 100644 --- a/bgpd/ChangeLog +++ b/bgpd/ChangeLog @@ -1,3 +1,8 @@ +2004-04-16 rivo nurges + + * bgpd.h: update cease subcodes to draft-ietf-idr-cease-subcode-05 + * bgpd.h, bgpd.c, bgp_route.c, bgp_route.h: fix UNH IOL BGP-4.1.6a + 2004-02-17 Paul Jakma * bgpd.h: (bgp_peer) add fd_local and fd_accept diff --git a/bgpd/bgp_route.c b/bgpd/bgp_route.c index 1d7a05241c..7025a8ff6a 100644 --- a/bgpd/bgp_route.c +++ b/bgpd/bgp_route.c @@ -1568,7 +1568,7 @@ bgp_clear_adj_in (struct peer *peer, afi_t afi, safi_t safi) /* Delete all kernel routes. */ void -bgp_terminate () +bgp_cleanup_routes () { struct bgp *bgp; struct listnode *nn; diff --git a/bgpd/bgp_route.h b/bgpd/bgp_route.h index a11aa143a2..fd97617a2a 100644 --- a/bgpd/bgp_route.h +++ b/bgpd/bgp_route.h @@ -119,6 +119,7 @@ struct bgp_static /* Prototypes. */ void bgp_route_init (); +void bgp_cleanup_routes (void); void bgp_announce_route (struct peer *, afi_t, safi_t); void bgp_announce_route_all (struct peer *); void bgp_default_originate (struct peer *, afi_t, safi_t, int); diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index f4c8f762fb..ae8af9f424 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -4612,3 +4612,24 @@ bgp_init () bgp_snmp_init (); #endif /* HAVE_SNMP */ } + +void +bgp_terminate () +{ + struct bgp_master *bm; + struct bgp *bgp; + struct peer *peer; + struct listnode *nn; + struct listnode *mm; + + bm = bgp_get_master (); + + LIST_LOOP (bm->bgp, bgp, nn) + LIST_LOOP (bgp->peer, peer, mm) + if (peer->status == Established) + bgp_notify_send (peer, BGP_NOTIFY_CEASE, + BGP_NOTIFY_CEASE_PEER_UNCONFIG); + + bgp_cleanup_routes (); +} + diff --git a/bgpd/bgpd.h b/bgpd/bgpd.h index a8bfa52f54..6f22e53df4 100644 --- a/bgpd/bgpd.h +++ b/bgpd/bgpd.h @@ -558,14 +558,16 @@ struct bgp_nlri #define BGP_NOTIFY_UPDATE_MAL_AS_PATH 11 #define BGP_NOTIFY_UPDATE_MAX 12 -/* BGP_NOTIFY_CEASE sub codes (draft-ietf-idr-cease-subcode-00). */ +/* BGP_NOTIFY_CEASE sub codes (draft-ietf-idr-cease-subcode-05). */ #define BGP_NOTIFY_CEASE_MAX_PREFIX 1 #define BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN 2 #define BGP_NOTIFY_CEASE_PEER_UNCONFIG 3 #define BGP_NOTIFY_CEASE_ADMIN_RESET 4 #define BGP_NOTIFY_CEASE_CONNECT_REJECT 5 #define BGP_NOTIFY_CEASE_CONFIG_CHANGE 6 -#define BGP_NOTIFY_CEASE_MAX 7 +#define BGP_NOTIFY_CEASE_COLLISION_RESOLUTION 7 +#define BGP_NOTIFY_CEASE_OUT_OF_RESOURCE 8 +#define BGP_NOTIFY_CEASE_MAX 9 /* BGP_NOTIFY_CAPABILITY_ERR sub codes (draft-ietf-idr-dynamic-cap-02). */ #define BGP_NOTIFY_CAPABILITY_INVALID_ACTION 1