diff options
author | Chris Hall <GMCH@hestia.halldom.com> | 2010-01-23 11:21:17 +0000 |
---|---|---|
committer | Chris Hall <GMCH@hestia.halldom.com> | 2010-01-23 11:21:17 +0000 |
commit | 0341d5ce47c301b4a4d92b77a83930da4fdc8fb3 (patch) | |
tree | acff360d75d85e711d65e8d4fbe5139bf19b25e0 /bgpd/bgp_msg_write.c | |
parent | eeda1184fa60c5077c2d404d0a8415d11e836ccd (diff) | |
download | quagga-0341d5ce47c301b4a4d92b77a83930da4fdc8fb3.tar.bz2 quagga-0341d5ce47c301b4a4d92b77a83930da4fdc8fb3.tar.xz |
Blitz on bgp_msg_read, particularly OPEN message handling
In the BGP Engine the OPEN message needs to be processed into the open_recv
structure in the *connection*. The OPEN that arrives must be checked
for acceptability before it is acknowledged. Later the connection may be
discarded in collision resolution, or the connection may become the
Established connection, and the open_recv structure is passed to the
session and hence to the Peering Engine.
modified: bgpd/bgp.h
modified: bgpd/bgp_common.c
modified: bgpd/bgp_common.h
modified: bgpd/bgp_connection.c
modified: bgpd/bgp_connection.h
modified: bgpd/bgp_fsm.c
modified: bgpd/bgp_msg_read.c
modified: bgpd/bgp_msg_read.h
modified: bgpd/bgp_msg_write.c
modified: bgpd/bgp_notification.c
modified: bgpd/bgp_notification.h
modified: bgpd/bgp_open.h
modified: bgpd/bgp_open_state.c
modified: bgpd/bgp_open_state.h
modified: bgpd/bgp_packet.c
modified: bgpd/bgp_session.h
modified: lib/distribute.c
modified: lib/if_rmap.c
modified: lib/qafi_safi.h
modified: lib/stream.c
modified: lib/stream.h
Diffstat (limited to 'bgpd/bgp_msg_write.c')
-rw-r--r-- | bgpd/bgp_msg_write.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/bgpd/bgp_msg_write.c b/bgpd/bgp_msg_write.c index c321df59..ce4bf1b3 100644 --- a/bgpd/bgp_msg_write.c +++ b/bgpd/bgp_msg_write.c @@ -127,10 +127,10 @@ bgp_msg_write_notification(bgp_connection connection, bgp_notify notification) while (length--) { sprintf (c, form, *p++) ; - text_form = bgp_notify_append_data(text_form, c, strlen(c)) ; + bgp_notify_append_data(text_form, c, strlen(c)) ; form = " %02x" ; } ; - text_form = bgp_notify_append_data(text_form, "\0", 1) ; + bgp_notify_append_data(text_form, "\0", 1) ; /* TODO: restore bgp_notify_print */ #if 0 @@ -231,11 +231,9 @@ bgp_msg_send_open(bgp_connection connection, bgp_open_state open_state) if (BGP_DEBUG (normal, NORMAL)) { - struct in_addr bgp_id ; char buf[INET_ADDRSTRLEN] ; - bgp_id.s_addr = htonl(open_state->bgp_id) ; - inet_ntop(AF_INET, &bgp_id.s_addr, buf, INET_ADDRSTRLEN) ; + inet_ntop(AF_INET, &open_state->bgp_id, buf, INET_ADDRSTRLEN) ; zlog_debug ("%s sending OPEN, version %d, my as %u, holdtime %d, id %s", connection->host, BGP_VERSION_4, open_state->my_as, @@ -610,7 +608,7 @@ bgp_msg_orf_part(struct stream* s, bgp_connection connection, orf_type = entry->orf_type ; orf_type_sent = entry->orf_type ; - if ((orf_type == BGP_ORF_T_PREFIX) && connection->route_refresh_pre) + if ((orf_type == BGP_ORF_T_PREFIX) && connection->orf_prefix_pre) orf_type_sent = BGP_ORF_T_PREFIX_pre ; stream_putc(s, orf_type_sent) ; /* ORF entries type */ |