diff options
author | paulo <paul@bayleaf.org.uk> | 2010-02-03 15:36:12 +0000 |
---|---|---|
committer | paulo <paul@bayleaf.org.uk> | 2010-02-03 15:36:12 +0000 |
commit | 9c2e47cd3f3018aa5508cd5e7c0d60067cadddbf (patch) | |
tree | 835790e71d5158f6c19b5a6658dabf88bc433850 /bgpd/bgp_packet.c | |
parent | 4a31d29cda2641e4a1affe62086d87bc84104096 (diff) | |
download | quagga-9c2e47cd3f3018aa5508cd5e7c0d60067cadddbf.tar.bz2 quagga-9c2e47cd3f3018aa5508cd5e7c0d60067cadddbf.tar.xz |
Handling of peering states: Don't disable peer until session
acknowledges disable. Explicity re-enable peer after clearing, unless
shutdown or prefix overflow. On HUP send send admin reset, not admin
shutdown.
Diffstat (limited to 'bgpd/bgp_packet.c')
-rw-r--r-- | bgpd/bgp_packet.c | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c index cd36723d..f8c0f0bb 100644 --- a/bgpd/bgp_packet.c +++ b/bgpd/bgp_packet.c @@ -819,10 +819,10 @@ bgp_open_send (struct peer *peer) } #endif -/* Generate notification object */ -static bgp_notify -bgp_notification (struct peer *peer, u_char code, u_char sub_code, - u_char *data, size_t datalen) +/* Send BGP notify packet with data portion. */ +void +bgp_notify_send_with_data (struct peer *peer, u_char code, u_char sub_code, + u_char *data, size_t datalen) { bgp_notify notification; notification = bgp_notify_new(code, sub_code, datalen); @@ -833,7 +833,7 @@ bgp_notification (struct peer *peer, u_char code, u_char sub_code, if (BGP_DEBUG (normal, NORMAL)) zlog_debug ("%s send message type %d, length (incl. header) %d", - peer->host, BGP_MSG_NOTIFY, notification->length); + peer->host, BGP_MSG_NOTIFY, notification->length); /* peer reset cause */ if (sub_code != BGP_NOTIFY_CEASE_CONFIG_CHANGE) @@ -846,23 +846,7 @@ bgp_notification (struct peer *peer, u_char code, u_char sub_code, peer->last_reset = PEER_DOWN_NOTIFY_SEND; } - return notification; -} - -/* Send BGP notify packet with data portion. Reenable peer*/ -void -bgp_notify_send_with_data (struct peer *peer, u_char code, u_char sub_code, - u_char *data, size_t datalen) -{ - bgp_peer_reenable(peer, bgp_notification(peer, code, sub_code, data, datalen)); -} - -/* Send BGP notify packet with data portion. Disable peer*/ -void -bgp_notify_send_with_data_disable (struct peer *peer, u_char code, u_char sub_code, - u_char *data, size_t datalen) -{ - bgp_peer_disable(peer, bgp_notification(peer, code, sub_code, data, datalen)); + bgp_peer_disable(peer, notification); } /* Send BGP notify packet. */ |