summaryrefslogtreecommitdiffstats
path: root/bgpd/bgp_packet.c
diff options
context:
space:
mode:
authorhasso <hasso>2005-02-01 20:13:16 +0000
committerhasso <hasso>2005-02-01 20:13:16 +0000
commit4eb31a2d61ffae9712872e3180aaa86f5dc552d5 (patch)
tree095db9a6a3116262346b0270d3a15c689971a006 /bgpd/bgp_packet.c
parent8f2f1ca9397200f230e98df6a8a698aafcfcd599 (diff)
downloadquagga-4eb31a2d61ffae9712872e3180aaa86f5dc552d5.tar.bz2
quagga-4eb31a2d61ffae9712872e3180aaa86f5dc552d5.tar.xz
* bgp_nexthop.c: Improve debug.
* bgpd.[ch], bgp_nexthop.c, bgp_snmp.c: Remove useless bgp_get_master() function. * bgp_packet.c: MP AFI_IP update and withdraw parsing. * bgp_fsm.c: Reset peer synctime in bgp_stop(). bgp_fsm_change_status() is better place to log about peer status change than bgp_event(). Log in bgp_connect_success(). * bgp_vty.c: Fix typo in comment. * bgp_attr.c: Better log about unknown attribute. [merge from GNU Zebra]
Diffstat (limited to 'bgpd/bgp_packet.c')
-rw-r--r--bgpd/bgp_packet.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/bgpd/bgp_packet.c b/bgpd/bgp_packet.c
index 5640e2b7..04e5bd30 100644
--- a/bgpd/bgp_packet.c
+++ b/bgpd/bgp_packet.c
@@ -1527,6 +1527,16 @@ bgp_update_receive (struct peer *peer, bgp_size_t size)
bgp_nlri_parse (peer, &attr, &update);
}
+ if (mp_update.length
+ && mp_update.afi == AFI_IP
+ && mp_update.safi == SAFI_UNICAST)
+ bgp_nlri_parse (peer, &attr, &mp_update);
+
+ if (mp_withdraw.length
+ && mp_withdraw.afi == AFI_IP
+ && mp_withdraw.safi == SAFI_UNICAST)
+ bgp_nlri_parse (peer, NULL, &mp_withdraw);
+
if (! attribute_len && ! withdraw_len)
{
/* End-of-RIB received */