blob: 2da282132b6cb3f6c754d3749846de80c43d9a28 [file] [log] [blame]
Paul Jakma03292802008-06-07 20:37:10 +000012008-06-07 Paul Jakma <paul@jakma.org>
2
3 * bgp_attr.{c,h}: (bgp_mp_{un,}reach_parse) export, for unit tests.
4 * bgp_attr.c: (bgp_mp_reach_parse) Add logging. Tighten length test
5 to bounds check against the attribute length rather than the
6 stream length..
7
Paul Jakmaa15cfd12008-06-01 14:29:03 +000082008-06-01 jfletche@gmail.com
9
10 * bgp_attr.c: (bgp_attr_aspathlimit) fix silly bug in flags check
11 that was causing BGP to drop sessions if it received a
12 aspath-limit with partial set. Fixes bug #419.
13
Denis Ovsienko841f7a52008-04-10 11:47:45 +0000142008-04-10 Denis Ovsienko
Paul Jakmaa15cfd12008-06-01 14:29:03 +000015
Denis Ovsienko841f7a52008-04-10 11:47:45 +000016 * bgp_aspath.[ch]: (aspath_filter_exclude) New function allows
17 filtering out arbitrary ASns from AS_PATH attribute.
18 * bgp_aspath.[ch]: (aspath_print_vty) Accept suffix to let calling
19 functions signal, if they want the separator or not.
20 * bgp_route.c: (route_vty_out, route_vty_out_tmp, damp_route_vty_out,
21 flap_route_vty_out, route_vty_out_detail) Fix aspath_print_vty()
22 calls to have AS_PATH output nicely.
23 * bgp_routemap.c: Introduce "set as-path exclude" route-map command
24 to employ new filtering functionality.
25
Paul Jakma693b67b2008-03-13 03:31:24 +0000262008-03-13 Paul Jakma <paul.jakma@sun.com>
27
28 * (various) Remove 0 entries from struct message's, unneeded due to
29 recent improvements in mes_lookup/LOOKUP.
30
Paul Jakma90b68762008-01-29 17:26:34 +0000312008-01-29 Jorge Boncompte <jorge@dti2.net>
32
33 * bgp_network.c: (bgp_socket) IPv4-only version crashes if -l is not
34 used as address will be null.
35
Paul Jakma370b64a2007-12-22 16:49:52 +0000362007-12-22 Paul Jakma <paul.jakma@sun.com>
37
38 * Fix series of vulnerabilities reported by "Mu Security
39 Research Team", where bgpd can be made to crash by sending
40 malformed packets - requires that bgpd be configured with a
41 session to the peer.
42 * bgp_attr.c: (bgp_attr_as4_path) aspath_parse may fail, only
43 set the attribute flag indicating AS4_PATH if we actually managed
44 to parse one.
45 (bgp_attr_munge_as4_attrs) Assert was too general, it is possible
46 to receive AS4_AGGREGATOR before AGGREGATOR.
47 (bgp_attr_parse) Check that we have actually received the extra
48 byte of header for Extended-Length attributes.
49 * bgp_attr.h: Fix BGP_ATTR_MIN_LEN to account for the length byte.
50 * bgp_open.c: (cap_minsizes) Fix size of CAPABILITY_CODE_RESTART,
51 incorrect -2 left in place from a development version of as4-path
52 patch.
53 * bgp_packet.c: (bgp_route_refresh_receive) ORF length parameter
54 needs to be properly sanity checked.
55
Denis Ovsienkoa7f93f32007-12-18 15:13:06 +0000562007-12-18 Denis Ovsienko
57
58 * bgp_routemap.c: (no_set_aspath_prepend) This command cancelled
59 existing "set" command regardless if "no set" matched it or not.
60 Fixed.
61
Paul Jakma7e992e92007-11-13 09:32:23 +0000622007-11-13 Paul Jakma <paul.jakma@sun.com>
63
64 * bgp_main.c: Small fix, format string parameters should never
65 be NULL - it's not strictly valid and some libc's don't let
66 you away with.
67
Paul Jakma3a02d1f2007-11-01 14:29:11 +0000682007-10-30 Nick Hilliard <nick@inex.ie>
69
70 * bgp_main.c: Add 'listenon' argument, to pass address to bind
71 to.
72 * bgp_network.c: (bgp_socket) Extend to take bind address.
73 * bgpd.c: (bgp_init) Pass stored address.
74 * bgpd.h: (struct bgp_master) storage for bind address
75
Paul Jakma0b2aa3a2007-10-14 22:32:21 +0000762007-09-27 Paul Jakma <paul.jakma@sun.com>
77
78 * bgp_aspath.c: (assegment_normalise) remove duplicates from
79 from sets.
80 (aspath_reconcile_as4) disregard a broken part of the RFC around
81 error handling in path reconciliation.
82
832007-09-25 Paul Jakma <paul.jakma@sun.com>
84
85 * bgp_open.c: (peek_for_as4_capability) Fix to work.
86 * bgp_packet.c: (bgp_open_receive) Fix sanity check of as4.
87
882007-09-18 Paul Jakma <paul.jakma@sun.com>
89
90 * bgp_open.c: (bgp_capability_as4) debug printf inline with others.
91 (peek_for_as4_capability) There's no need to signal failure, as
92 failure is better dealt with through full capability parser -
93 just return the AS4, simpler.
94 * bgp_packet.c: (bgp_open_receive) Update to match
95 peek_for_as4_capability change.
96 Allow use of BGP_AS_TRANS by 2b speakers.
97 Use NOTIFY_OPEN_ERR rather than CEASE for OPEN parsing errors.
98 (bgp_capability_msg_parse) missing argument to debug print
99 (bgp_capability_receive) missing return values.
100
101
1022007-07-25 Paul Jakma <paul.jakma@sun.com>
103
104 * Remove 2-byte size macros, just make existing macros take
105 argument to indicate which size to use.
106 Adjust all users - typically they want '1'.
107 * bgp_aspath.c: (aspath_has_as4) New, return 1 if there are any
108 as4's in a path.
109 (aspath_put) Return the number of bytes actually written, to
110 fix the bug Juergen noted: Splitting of segments will change
111 the number of bytes written from that already written to the
112 AS_PATH header.
113 (aspath_snmp_pathseg) Pass 2-byte flag to aspath_put. SNMP
114 is still defined as 2b.
115 (aspath_aggregate) fix latent bug.
116 (aspath_reconcile_as4) AS_PATH+NEW_AS_PATH reconciliation
117 function.
118 (aspath_key_make) Hash the AS_PATH string, rather than
119 just taking the addition of assegment ASes as the hash value,
120 hopefully sligthly more collision resistant.
121 (bgp_attr_munge_as4_attrs) Collide the NEW_ attributes
122 together with the OLD 2-byte forms, code Juergen
123 had in bgp_attr_parse but re-organised a bit.
124 (bgp_attr_parse) Bunch of code from Juergen moves
125 to previous function.
126 (bgp_packet_attribute) Compact significantly by
127 just /always/ using extended-length attr header.
128 Fix bug Juergen noted, by using aspath_put's
129 (new) returned size value for the attr header rather
130 than the (guesstimate) of aspath_size() - the two could
131 differ when aspath_put had to split large segments, unlikely
132 this bug was ever hit in the 'wild'.
133 (bgp_dump_routes_attr) Always use extended-len and
134 use aspath_put return for header length. Output 4b ASN
135 for AS_PATH and AGGREGATOR.
136 * bgp_ecommunity.c: (ecommunity_{hash_make,cmp}) fix
137 hash callback declarations to match prototypes.
138 (ecommunity_gettoken) Updated for ECOMMUNITY_ENCODE_AS4,
139 complete rewrite of Juergen's changes (no asdot support)
140 * bgp_open.c: (bgp_capability_as4) New, does what it says
141 on the tin.
142 (peek_for_as4_capability) Rewritten to use streams and
143 bgp_capability_as4.
144 * bgp_packet.c: (bgp_open_send) minor edit
145 checked (in the abstract at least) with Juergen.
146 Changes are to be more accepting, e.g, allow AS_TRANS on
147 a 2-byte session.
148 * (general) Update all commands to use CMD_AS_RANGE.
149 * bgp_vty.c: (bgp_clear) Fix return vals to use CMD_..
150 Remove stuff replicated by VTY_GET_LONG
151 (bgp_clear_vty) Return bgp_clear directly to vty.
152
153
1542007-07-25 Juergen Kammer <j.kammer@eurodata.de>
155
156 * (general) AS4 support.
157 * bgpd.h: as_t changes to 4-bytes.
158 * bgp_aspath.h: Add BGP_AS4_MAX and BGP_AS_TRANS defines.
159 * bgp_aspath.c: AS_VALUE_SIZE becomes 4-byte, AS16_VALUE_SIZE
160 added for 2-byte.
161 Add AS16 versions of length calc macros.
162 (aspath_count_numas) New, count number of ASes.
163 (aspath_has_as4) New, return 1 if there are any as4's in a
164 path.
165 (assegments_parse) Interpret assegment as 4 or 2 byte,
166 according to how the caller instructs us, with a new
167 argument.
168 (aspath_parse) Add use32bit argument to pass to
169 assegments_parse. Adjust all its callers to pass 1, unless
170 otherwise noted.
171 (assegment_data_put) Adjust to be able to write 2 or 4 byte
172 AS, according to new use32bit argument.
173 (aspath_put) Adjust to write 2 or 4.
174 (aspath_gettoken) Use a long for passed in asno.
175 * bgp_attr.c: (attr_str) Add BGP_ATTR_AS4_PATH and
176 BGP_ATTR_AS4_AGGREGATOR.
177 (bgp_attr_aspath) Call aspath_parse with right 2/4 arg, as
178 determined by received-capability flag.
179 (bgp_attr_aspath_check) New, code previously in attr_aspath
180 but moved to new func so it can be run after NEW_AS_PATH
181 reconciliation.
182 (bgp_attr_as4_path) New, handle NEW_AS_PATH.
183 (bgp_attr_aggregator) Adjust to cope with 2/4 byte ASes.
184 (bgp_attr_as4_aggregator) New, read NEW_AGGREGATOR.
185 (bgp_attr_parse) Add handoffs to previous parsers for the two
186 new AS4 NEW_ attributes.
187 Various checks added for NEW/OLD reconciliation.
188 (bgp_packet_attribute) Support 2/4 for AS_PATH and
189 AGGREGATOR, detect when NEW_ attrs need to be sent.
190 * bgp_debug.{c,h}: Add 'debug bgp as4'.
191 * bgp_dump.c: MRTv2 support, unconditionally enabled, which
192 supports AS4. Based on patches from Erik (RIPE?).
193 * bgp_ecommunity.c: (ecommunity_ecom2str) ECOMMUNITY_ENCODE_AS4
194 support.
195 * bgp_open.c: (peek_for_as4_capability) New, peek for AS4
196 capability prior to full capability parsing, so we know which
197 ASN to use for struct peer lookup.
198 (bgp_open_capability) Always send AS4 capability.
199 * bgp_packet.c: (bgp_open_send) AS4 handling for AS field
200 (bgp_open_receive) Peek for AS4 capability first, and figure
201 out which AS to believe.
202 * bgp_vty.c: (bgp_show_peer) Print AS4 cap
203
Paul Jakmae08286b2007-09-18 12:11:26 +00002042007-09-17 Paul Jakma <paul.jakma@sun.com>
205
206 * bgp_open.c: (bgp_capability_mp) We were setting
207 afc_nego[safi][safi] rather than afc_nego[afi][safi], thus
208 failling to announce any non-IPv4 prefixes. Remove the extra,
209 typo-ed character.
210
Paul Jakmab2ceea12007-09-07 14:24:55 +00002112007-09-07 Paul Jakma <paul.jakma@sun.com>
212
213 * (general) bgpd can be made crash by remote peers if debug
214 bgp updates is set, due to NULL pointer dereference.
215 Reported by "Mu Security Research Team",
216 <security@musecurity.com>.
217 * bgp_attr.c: (bgp_attr_community) If community length is 0,
218 don't set the community-present attribute bit, just return
219 early.
220 * bgp_debug.c: (community_str,community_com2str) Check com
221 pointer before dereferencing.
222
Paul Jakma9eda90c2007-08-30 13:36:17 +00002232007-08-27 Paul Jakma <paul.jakma@sun.com>
224
225 * bgp_route.c: (bgp_announce_check) Fix bug #398, slight
226 modification of Vladimir Ivanov's suggested fix - to keep
227 memory alloc conditional.
228 (bgp_process_announce_selected) Don't take struct attr as
229 argument, none of the callers need it and it needlessly
230 distances allocation from use.
231 Free the extended attr, the attr itself is on the stack.
232 Fix bad indentation.
233 * bgp_attr.c: (bgp_packet_attribute) Remove incorrect assert,
234 and adjust conditional to test attr->extra, diagnosis by
235 Vladimir Ivanov in bug #398.
236
2372007-08-27 Vladimir Ivanov <wawa@yandex-team.ru>
238
239 * bgp_route.c: (bgp_announce_check_rsclient) copy of
240 ri->attr is no longer deep enough, due to addition of
241 attr->extra. It should use bgp_attr_dup, as
242 bgp_announce_check() does.
243
Paul Jakma6d134fb2007-08-23 23:22:02 +00002442007-08-23 Paul Jakma <paul.jakma@sun.com>
245
246 * bgp_regex.c: (bgp_regcomp) Pass NOSUB flag to regcomp to
247 prevent parsing of substitutions, which can have profound
248 performance effects on bgpd and are of no use to the CLI
249 anyway. How much it helps depends on the regex
250 implementation.
251
Paul Jakma41367172007-08-06 15:24:51 +00002522007-07-31 Paul Jakma <paul.jakma@sun.com>
253
254 * (general) Support for draft-ietf-idr-as-pathlimit-03.
255 * bgp_attr.h: (struct attr) Add pathlimit struct
256 bgp_attr.c: (attr_str) Add BGP_ATTR_AS_PATHLIMIT string.
257 (attrhash_key_make) tally pathlimit too
258 (attrhash_cmp) cmp pathlimit attr
259 (bgp_attr_aspathlimit) New, parse AS_PATHLIMIT attr.
260 (bgp_attr_parse) ditto
261 (bgp_packet_attribute) Write out AS_PATHLIMIT when set
262 (bgp_dump_routes_attr) ditto
263 * bgp_route.h: (struct bgp_static) Add TTL field
264 * bgp_route.c: (bgp_announce_check) Drop paths that are over
265 their hop-count TTL before sending via EBGP.
266 Mangle ASN in pathlimit for confeds/private as best we can.
267 (bgp_static_update_{rsclient,main}) Add any configure pathlimit
268 information.
269 (bgp_pathlimit_update_parents) New, update atomic-aggr setting for
270 parents of an aspathlimit'ed static.
271 (bgp_static_set) Add TTL argument, for all the 'bgp network'
272 commands.
273 Call previous for TTL changed statics.
274 (bgp_static_unset) Call pathlimit_update_parents.
275 (various bgp network commands) Add 'pathlimit <0-255>' qualifier
276 to all the various forms, bar route-map - which can set ttl
277 itself.
278 * bgp_routemap.c: (general) Add support for 'set pathlimit ttl' and
279 'match pathlimit as'.
280
Paul Jakma6d582722007-08-06 15:21:45 +00002812007-07-26 Paul Jakma <paul.jakma@sun.com>
282
283 * (general) Clean up and compact capability parsing slightly.
284 Consolidate validation of length and logging of generic TLV, and
285 memcpy of capability data, thus removing such from cap specifc
286 code (not always present or correct).
287 * bgp_open.h: Add structures for the generic capability TLV header
288 and for the data formats of the various specific capabilities we
289 support. Hence remove the badly named, or else misdefined, struct
290 capability.
291 * bgp_open.c: (bgp_capability_vty_out) Use struct capability_mp_data.
292 Do the length checks *before* memcpy()'ing based on that length
293 (stored capability - should have been validated anyway on input,
294 but..).
295 (bgp_afi_safi_valid_indices) new function to validate (afi,safi)
296 which is about to be used as index into arrays, consolidates
297 several instances of same, at least one of which appeared to be
298 incomplete..
299 (bgp_capability_mp) Much condensed.
300 (bgp_capability_orf_entry) New, process one ORF entry
301 (bgp_capability_orf) Condensed. Fixed to process all ORF entries.
302 (bgp_capability_restart) Condensed, and fixed to use a
303 cap-specific type, rather than abusing capability_mp.
304 (struct message capcode_str) added to aid generic logging.
305 (size_t cap_minsizes[]) added to aid generic validation of
306 capability length field.
307 (bgp_capability_parse) Generic logging and validation of TLV
308 consolidated here. Code compacted as much as possible.
309 * bgp_packet.c: (bgp_open_receive) Capability parsers now use
310 streams, so no more need here to manually fudge the input stream
311 getp.
312 (bgp_capability_msg_parse) use struct capability_mp_data. Validate
313 lengths /before/ memcpy. Use bgp_afi_safi_valid_indices.
314 (bgp_capability_receive) Exported for use by test harness.
315 * bgp_vty.c: (bgp_show_summary) fix conversion warning
316 (bgp_show_peer) ditto
317 * bgp_debug.h: Fix storage 'extern' after type 'const'.
318
Paul Jakma45ad5922007-07-31 17:35:36 +00003192007-07-31 Lorenzo Colitti <lorenzo@colitti.com>
320
321 * bgp_dump.c: (general) Add comments to code.
322 (bgp_dump_interval_add) remove some redundant lines.
323 (bgp_dump_set) Use enum for type argument.
324 Avoid scheduling dump twice if exact same command
325 is given twice..
326
Paul Jakma536792c2007-06-22 19:11:14 +00003272007-06-22 Paul Jakma <paul.jakma@sun.com>
328
329 * bgp_fsm.c: (struct FSM) Bug #368. TCP Errors during OpenSent
330 should cycle to Active, not to Idle or else peer bringup can
331 race and cycle Idle<->Active. Reported and fix tested by
332 Mukesh Agrawal.
333
Paul Jakmab2497022007-06-14 11:17:58 +00003342007-05-25 Paul Jakma <paul.jakma@sun.com>
335
336 * bgp_route.c: (bgp_default_originate) Sanity check added
337 previously was broken and always failed, thus this function
338 never could run, bug #370.
339
Paul Jakmafb982c22007-05-04 20:15:47 +00003402007-05-03 Paul Jakma <paul.jakma@sun.com>
Paul Jakma923de652007-04-29 18:25:17 +0000341
Paul Jakmafb982c22007-05-04 20:15:47 +0000342 * bgp_route.h: (struct info) Move less frequently used
343 fields to a lazily allocated struct info_extra.
344 Export bgp_info_extra_get
345 * bgp_route.c: (bgp_info_extra_new) allocate extra
346 (bgp_info_extra_free) Free damp info and the info_extra.
347 (bgp_info_extra_get) Retrieve the info_extra of a struct
348 info, allocating as required.
349 (generally) adjust to use info->extra
350 * bgp_damp.c: (generally) use bgp_info_extra_get to access
351 dampinfo
352 * bgp_attr.h: Move rarely allocated attributes from struct attr
353 to a struct attr_extra, for a substantial saving in size of
354 struct attr.
355 * bgp_attr.c: (bgp_attr_extra_{new,free}), new, self-explanatory.
356 (bgp_attr_extra_get) Get the attr_extra for a given struct
357 attr, allocating it if needs be.
358 (bgp_attr_dup) Shallow copy the struct attr and its attr_extra.
359 (generally) adjust to know about attr->extra.
360 * bgp_debug.c: (bgp_dump_attr) ditto
361 * bgp_vty.c: (show_bgp_memory) print attr and info extra sizes.
362 * bgp_nexthop.c: (generally) adjust to know about attr->extra
363 and info->extra.
364 * bgp_{packet,routemap,snmp,zebra}.c: ditto
365
3662007-04-22 Sebastien Tandel <sebastien@tandel.be>
Paul Jakma923de652007-04-29 18:25:17 +0000367 * bgp_advertise.c : (baa_hash_alloc, baa_hash_key, baa_hash_cmp)
368 conforms to quagga hash API. Defines _hash_[alloc|key|cmp] with
369 void * arguments as defined by the API.
370 * bgp_aspath.c,h : (aspath_key_make) conforms to quagga hash API.
371 Defines _hash_[alloc|key|cmp] with void * arguments as defined by
372 the API.
373 * bgp_attr.c,h : (cluster_hash_alloc, cluster_hash_key_make,
374 cluster_hash_cmp, transit_hash_alloc, transit_hash_key_make,
375 transit_hash_cmp, attrhash_key_make, attrhash_cmp,
376 bgp_attr_hash_alloc) conforms to quagga hash API. Defines
377 _hash_[alloc|key|cmp] with void * arguments as defined by the API.
Paul Jakma03e214c2007-04-29 18:31:07 +0000378 * bgp_attr.h : Definition of BGP_ATTR_DEFAULT_WEIGHT.
379 * bgp_attr.c : (bgp_attr_default_intern) now uses
380 bgp_attr_default_set instead of duplicating the same code.
381 (general) Use of BGP_ATTR_DEFAULT_WEIGHT. Replace two 16 by
382 IPV6_MAX_BYTELEN.
Paul Jakma923de652007-04-29 18:25:17 +0000383
Andrew J. Schorr93c17492007-04-15 19:17:24 +00003842007-04-15 Sebastien Tandel <sebastien@tandel.be>
385
386 * bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance
387 optimization: while loop should test one pointer instead of two.
388
Paul Jakma16d2e242007-04-10 19:32:10 +00003892007-04-08 Paul Jakma <paul.jakma@sun.com>
390
391 * bgp_route.c: (general) Same bug as fixed on 2006-11-28 by ajs for
392 bgp static routes, but for main BGP RIB: Quick 'flap' of routes
393 can cause bgpd to mistake a new route for a duplicate route,
394 due to presence of removed, but not yet processed BGP RIB entry.
395 (bgp_update_rsclient) Ignore REMOVED bgp_info for duplicate,
396 restore route instead.
397 (bgp_update_main) Ditto.
Paul Jakma6e4ab122007-04-10 19:36:48 +0000398 * bgp_attr.c: (general) Bug #354: parsing of MP_REACH_NLRI and
399 MP_UNREACH_NLRI does not take sufficient care to ensure reads
400 from stream buffer stay in-bounds. Hence bgpd may attempt to read
401 beyond end of stream, if given a crafted packet. As it uses the
402 stream access methods to do so, this will typically result in
403 assert() being hit in stream.c. Where code is compiled without
404 assert() enabled, result is unknown.
405 (struct message attr_str) should be static.
406 (bgp_mp_reach_parse) Carefully check length remaining in stream
407 against amount desired to read from stream, prior to each read,
408 particularly where lengths are conditional on data obtained from
409 stream - using STREAM_READABLE.
410 Remove code to parse SNPA-number, it's a defunct field and changed
411 to a fixed size in latest BGP MP update RFC - log warning if
412 SNPA-number is not 0.
413 (bgp_mp_unreach_parse) Check withdraw_length carefully against
414 STREAM_READABLE.
415 (bgp_attr_parse) If attribute-parser function returns error, log
416 warning.
417 Log attribute type on mismatch.
Paul Jakma16d2e242007-04-10 19:32:10 +0000418
Paul Jakma37a217a2007-04-10 19:20:29 +00004192007-04-07 Paul Jakma <paul.jakma@sun.com>
420
421 * bgpd.c: (general) Fix bug #352
422 (bgp_config_write_family_header) write ipv6/multicast
423 address family header.
424 (bgp_config_write) write out ipv6 multicast AF config.
425
Paul Jakmaf2c31ac2007-02-22 17:48:42 +00004262007-02-22 Paul Jakma <paul.jakma@sun.com>
427
428 * bgp_fsm.c: (bgp_fsm_change_status) Handle state change into
429 clearing or greater here. Simpler.
430 (bgp_event) Clearing state change work moved to previous
431 * bgp_route.c: (bgp_clear_route_node) Clearing adj-in here
432 is too late, as it leaves a race between a peer being deleted
433 and an identical peer being configured before clearing
434 completes, leading to a crash.
435 Simplest fix is to clean peers Adj-in up-front, rather than
436 queueing such work.
437 (bgp_clear_route_table) Clear peer's Adj-In and Adj-Out
438 up-front here, rather than queueing such work.
439 Extensive comment added on the various bits of indexed data
440 that exist and how they need to be dealt with.
441 (bgp_clear_route) Update comment.
442
Andrew J. Schorre4529632006-12-12 19:18:21 +00004432006-12-12 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
444
445 * bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete)
446 Simplify logic by using new CONNECTED_PREFIX macro.
447
Paul Jakma95fdcd82006-12-08 00:31:22 +00004482006-12-07 Paul Jakma <paul.jakma@sun.com>
449
450 * bgp_fsm.c: Bug #302 fix, diagnosis, suggestions and testing
451 by Juergen Kammer <j.kammer@eurodata.de>. Fix follows from
452 his suggested fix, just made in a slightly different way.
453 (bgp_event) Transitions into Clearing always must call
454 bgp_clear_route_all().
455 (bgp_stop) No need to clear routes here, BGP FSM should do
456 it.
457
Andrew J. Schorra39275d2006-11-30 16:36:57 +00004582006-11-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
459
460 * bgp_debug.h: Declare new bgp_debug_zebra conf and term flags,
461 and define BGP_DEBUG_ZEBRA.
462 * bgp_debug.c: Declare conf_bgp_debug_zebra and term_bgp_debug_zebra.
463 (debug_bgp_zebra, no_debug_bgp_zebra, undebug_bgp_zebra) New
464 functions to enable/disable bgp zebra debugging.
465 (no_debug_bgp_all) Turn off zebra debugging.
466 (show_debugging_bgp) Show whether zebra debugging is on.
467 (bgp_config_write_debug) Add 'debug bgp zebra' if configured.
468 (bgp_debug_init) Add new zebra debugging commands.
469 * bgp_zebra.c: (bgp_router_id_update, bgp_interface_add,
470 bgp_interface_delete, bgp_interface_up, bgp_interface_down,
471 bgp_interface_address_add, bgp_interface_address_delete,
472 zebra_read_ipv4, zebra_read_ipv6, bgp_zebra_announce,
473 bgp_zebra_withdraw, bgp_redistribute_set, bgp_redistribute_unset)
474 If zebra debugging is enabled, log an appropriate debug message.
475
Andrew J. Schorr8d452102006-11-28 19:50:46 +00004762006-11-28 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
477
478 * bgp_route.c: (bgp_info_restore) New function that undoes
479 the effects of a previous call to bgp_info_delete. This is
480 used when a route is deleted and quickly re-added before the
481 deletion has been processed.
482 (bgp_static_update_rsclient, bgp_static_update_main,
483 bgp_redistribute_add) Check whether a pre-existing route
484 has the BGP_INFO_REMOVED set, and, if so, we need to call
485 bgp_info_restore to resurrect it.
486
Paul Jakma56395af2006-10-27 16:58:20 +00004872006-10-27 Paul Jakma <paul.jakma@sun.com>
488
489 * bgp_route.c: (bgp_table_stats) oops, u_intXX_t should be
490 uintXX_t
491
Paul Jakma6f585442006-10-22 19:13:07 +00004922006-10-19 Paul Jakma <paul.jakma@sun.com>
493
494 * bgpd.c: (peer_new) bgp element of peer absolutely must be
495 filled in, make peer_new() require it as argument and update
496 all callers. Fixes a crash reported by Jan 'yanek' Bortl and
497 Andrew Schorr where bgpd would crash in bgp_pcount_adjust
498 trying to dereference the bgp member of bgp->peer_self,
499 triggered through redistribution.
500 * bgp_route.c: (bgp_pcount_adjust) assert sanity of arguments.
501
Paul Jakma53d9f672006-10-15 23:41:16 +00005022006-10-15 Paul Jakma <paul.jakma@sun.com>
503
504 * bgp_route.c: (bgp_table_stats_walker) NULL deref if table is
505 empty, bgp_table_top may return NULL, Coverity CID#73.
Paul Jakmaed3ebfa2006-10-15 23:50:16 +0000506 * bgp_packet.c: (bgp_update_packet) adv->rn can not be NULL,
507 check is bogus - changed to assert(), CID#64.
508 binfo is checked for NULL, but then dereferenced
509 unconditionally, fix, CID #63.
510 (bgp_withdraw_packet) Assert adv->rn is valid, as with
511 bgp_update_packet().
Paul Jakma53d9f672006-10-15 23:41:16 +0000512
Paul Jakmadcdf3992006-10-15 23:39:59 +00005132006-10-14 Paul Jakma <paul.jakma@sun.com>
514
515 * bgp_fsm.h: Remove BGP_EVENT_FLUSH_ADD, dangerous and not
516 needed.
517 * bgp_fsm.c: (bgp_stop) Move BGP_EVENT_FLUSH to the top of the
518 of the function, otherwise it could flush a ClearingCompleted
519 event, bug #302.
520 * bgp_packet.c: Replace all BGP_EVENT_FLUSH_ADD with
521 BGP_EVENT_ADD, fixing bug #302.
522
Andrew J. Schorr0cd1c322006-09-19 18:51:53 +00005232006-09-19 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
524
525 * bgpd.c: (peer_uptime) Fix printf format/arg mismatch in
526 zlog_warn message (%ld/size_t -> %lu/u_long).
527
Paul Jakmaca058a32006-09-14 02:58:49 +00005282006-09-14 Paul Jakma <paul.jakma@sun.com>
529
Paul Jakma8383a9b2006-09-14 03:06:54 +0000530 * bgp_route.c: (bgp_table_stats_walker) Address space announced
531 should only count top-level unaggregateable prefixes, to
532 avoid falling afoul of anti-dodgy-accounting regulations
533 in various jurisdictions.. ;)
Paul Jakma09dd5612006-09-14 03:38:16 +0000534 (bgp_process_queue_init) process queue hold time too high,
535 adds extra memory load. Change to be much lower, until such
536 time as it's made configurable.
Paul Jakma8383a9b2006-09-14 03:06:54 +0000537
5382006-09-14 Paul Jakma <paul.jakma@sun.com>
539
Paul Jakma9fde6622006-09-14 03:02:02 +0000540 * (general) fix the peer refcount issue exposed by previous, by
541 just removing refcounting of peer threads, which is mostly
542 senseless as they're references leading from struct peer,
543 which peer_free cancels anyway. No need to muck around..
544 * bgp_fsm.h: Just remove the refcounting from the various
545 TIMER/READ/WRITE/EVENT ON/OFF/ADD macros.
546 * bgp_fsm.c: (bgp_stop) use BGP_EVENT_FLUSH, no refcounts attached
547 to events anymore.
548 (bgp_event) remove peer_unlock, events not refcounted.
549 * bgpd.c: (peer_free) flush events before free.
550
5512006-09-14 Paul Jakma <paul.jakma@sun.com>
552
Paul Jakmaca058a32006-09-14 02:58:49 +0000553 * (general) Fix some niggly issues around 'shutdown' and clearing
554 by adding a Clearing FSM wait-state and a hidden 'Deleted'
555 FSM state, to allow deleted peers to 'cool off' and hit 0
556 references. This introduces a slow memory leak of struct peer,
557 however that's more a testament to the fragility of the
558 reference counting than a bug in this patch, cleanup of
559 reference counting to fix this is to follow.
560 * bgpd.h: Add Clearing, Deleted states and Clearing_Completed
561 and event.
562 * bgp_debug.c: (bgp_status_msg[]) Add strings for Clearing and
563 Deleted.
564 * bgp_fsm.h: Don't allow timer/event threads to set anything
565 for Deleted peers.
566 * bgp_fsm.c: (bgp_timer_set) Add Clearing and Deleted. Deleted
567 needs to stop everything.
568 (bgp_stop) Remove explicit fsm_change_status call, the
569 general framework handles the transition.
570 (bgp_start) Log a warning if a start is attempted on a peer
571 that should stay down, trying to start a peer.
572 (struct .. FSM) Add Clearing_Completed
573 events, has little influence except when in state
574 Clearing to signal wait-state can end.
575 Add Clearing and Deleted states, former is a wait-state,
576 latter is a placeholder state to allow peers to disappear
577 quietly once refcounts settle.
578 (bgp_event) Try reduce verbosity of FSM state-change debug,
579 changes to same state are not interesting (Established->Established)
580 Allow NULL action functions in FSM.
581 * bgp_packet.c: (bgp_write) Use FSM events, rather than trying
582 to twiddle directly with FSM state behind the back of FSM.
583 (bgp_write_notify) ditto.
584 (bgp_read) Remove the vague ACCEPT_PEER peer_unlock, or else
585 this patch crashes, now it leaks instead.
586 * bgp_route.c: (bgp_clear_node_complete) Clearing_Completed
587 event, to end clearing.
588 (bgp_clear_route) See extensive comments.
589 * bgpd.c: (peer_free) should only be called while in Deleted,
590 peer refcounting controls when peer_free is called.
591 bgp_sync_delete should be here, not in peer_delete.
592 (peer_delete) Initiate delete.
593 Transition to Deleted state manually.
594 When removing peer from indices that provide visibility of it,
595 take great care to be idempotent wrt the reference counting
596 of struct peer through those indices.
597 Use bgp_timer_set, rather than replicating.
598 Call to bgp_sync_delete isn't appropriate here, sync can be
599 referenced while shutting down and finishing deletion.
600 (peer_group_bind) Take care to be idempotent wrt list references
601 indexing peers.
602
Paul Jakma2815e612006-09-14 02:56:07 +00006032006-09-13 Paul Jakma <paul.jakma@sun.com>
604
605 * bgp_aspath.c: (aspath_highest) new, return highest ASN in an
606 aspath.
607 * bgp_route.c: (bgp_peer_count_walker) new, do the walk done
608 in bgp_peer_counts as a thread.
609 (bgp_peer_counts) move walk to previous and call it via
610 thread_execute so this RIB walk shows up in thread stats.
611 (bgp_table_stats) New, gather some statistics for a given
612 RIB.
613 (bgp_table_stats_walker) New, RIB walker thread for former.
614 (bgp_table_stats_vty) Parsing front-end for 'show bgp ...',
615 useful model for future rationalisation of 'show ... bgp'.
616 (bgp_route_init) Add new RIB stats commands.
617
Paul Jakma1a392d42006-09-07 00:24:49 +00006182006-09-06 Paul Jakma <paul.jakma@sun.com>
619
620 * (general) Squash any and all prefix-count issues by
621 abstracting route flag changes, and maintaining count as and
622 when flags are modified (rather than relying on explicit
623 modifications of count being sprinkled in just the right
624 places throughout the code).
625 * bgp_route.c: (bgp_pcount_{dec,inc}rement) removed.
626 (bgp_pcount_adjust) new, update prefix count as
627 needed for a given route.
628 (bgp_info_{uns,s}et_flag) set/unset a BGP_INFO route status
629 flag, calling previous function when appropriate.
630 (general) Update all set/unsets of flags to use previous.
631 Remove pcount_{dec,inc}rement calls.
632 No need to unset BGP_INFO_VALID in places where
633 bgp_info_delete is called, it does that anyway.
634 * bgp_{damp,nexthop}.c: Update to use bgp_info_{un,}set_flag.
635 * bgp_route.h: Export bgp_info_{un,}set_flag.
636 Add a 'meta' BGP_INFO flag, BGP_INFO_UNUSEABLE.
637 Move BGP_INFO_HOLDDOWN macro to here from bgpd.h
638
Paul Jakmaff7924f2006-09-04 01:10:36 +00006392006-09-03 Paul Jakma <paul.jakma@sun.com>
640
641 * bgp_route.c: Add 'show ... bgp ... <neighbour> prefix-count'
642 commands, to provide detailed counts of prefixes for a peer.
643 Informative, and should help pin down to pfxcnt drift
644 problems.
645
Paul Jakma9f906c72006-08-27 06:57:47 +00006462006-08-27 Paul Jakma <paul.jakma@sun.com>
647
648 * bgp_advertise.c: (bgp_sync_delete) fix mtype in XFREE.
649 NULL out peer->hash after free, to be sure.
650
Paul Jakma1f742f22006-08-06 15:52:11 +00006512006-08-06 Paul Jakma <paul.jakma@sun.com>
652
653 * bgp_aspath.c: (aspath_loop_check) Fix the typo-bug which
654 essentially had disabled this check. Problem reported by
655 Bartek Kania <mrbk@gnarf.org> in [quagga-users 7388].
656
Paul Jakma18937402006-07-27 19:05:12 +00006572006-07-27 Paul Jakma <paul.jakma@sun.com>
658
659 * bgpd.c: (peer_delete) Ensure freed buffers can not be
660 accidently reused. A potential fix for bug #287.
661
Paul Jakma33d5ab92006-07-02 11:01:50 +00006622006-07-02 Paul Jakma <paul.jakma@sun.com>
663
664 * bgp_fsm.c: (bgp_{stop,start}) Move clear/free of certain
665 bits of state from stop to start, as they may be used via
666 peer references on clearing queues..
667
Paul Jakma369688c2006-05-23 22:27:55 +00006682006-05-23 Paul Jakma <paul.jakma@sun.com>
669
670 * bgp_vty.c: (neighbor_update_source_cmd) Expand tab completion
671 to make it clear it takes both address and ifname.
672
Paul Jakma34c3f812006-05-12 23:25:37 +00006732006-05-12 Paul Jakma <paul.jakma@sun.com>
674
675 * bgp_attr.c: (bgp_packet_attribute) Remove dead code, Coverity
676 CID #1
Paul Jakmab2518c12006-05-12 23:48:40 +0000677 * bgp_aspath.{c,h}: (aspath_print_vty) take a format string,
678 so as to reduce burden on callers, all in bgp_route.c
Paul Jakmadd8103a2006-05-12 23:27:30 +0000679 * bgp_route.c: (bgp_static_update_main) Remove useless NULL
680 check, code already assumes bgp_static can not be NULL,
681 fixes CID #7.
Paul Jakma06e110f2006-05-12 23:29:22 +0000682 (bgp_static_update_rsclient) ditto, CID #6
Paul Jakmab2518c12006-05-12 23:48:40 +0000683 (route_vty_out{,tmp}) Update to match aspath_print_vty,
684 simplifying checks needed to get spacing right. CID #4,#5.
685 ({damp,flap}_route_vty_out) Ditto, CID #9, #10
Paul Jakma34c3f812006-05-12 23:25:37 +0000686
Paul Jakma542bcb72006-05-08 14:25:09 +00006872006-05-08 Paul Jakma <paul.jakma@sun.com>
688
689 * bgp_community.c: (community_str2com) Coverity CID#62, fix
690 double-free, use-after-free.
Paul Jakmada5b30f2006-05-08 14:37:17 +0000691 * bgp_route.c: (bgp_afi_node_get) given table should never be
692 NULL, check/assert this.
693 (bgp_static_update) Bug #240. Rsclients should only be passed
694 the static update if they are configured for the afi,safi.
Paul Jakma542bcb72006-05-08 14:25:09 +0000695
Paul Jakmaa3b6ea52006-05-04 07:52:12 +00006962006-05-04 Paul Jakma <paul.jakma@sun.com>
697
698 * (general) VPNv4 fixes. Certain VPNv4 code was not enabled.
699 See bug #210.
700 * bgp_attr.{c,h}: (bgp_packet_{withdraw,attribute}) Tag should be
701 u_char really.
702 * bgp_packet.c: (bgp_{update,withdraw}_packet) Enable some
703 VPNv4 code which inexplicably was ifdef'd out. comments from
704 a tester on IRC suggest this fixes bug #210.
Paul Jakma65ca75e2006-05-04 08:08:15 +0000705 * bgp_route.c: (general) Fix logical bug in clearing, noted
706 by Chris Caputo in [quagga-users 6728] - clearing depended on
707 at least one route being added to workqueue, in order for
708 workqueue completion function to restart FSM. However, if no
709 routes are cleared, then the completion function never is
710 called, it needs to be called manually if the workqueue
711 didn't get scheduled.
712 Finally, clearing is per-peer-session, not per AFI/SAFI, so
713 the FSM synchronisation should be in bgp_clear_route_table.
714 (bgp_clear_route_table) Wrong place for FSM/clearing
715 synchronisation, move to..
716 (bgp_clear_route) FSM/clearing synchronisation should be
717 here.
718 If no routes were cleared, no workqueue scheduled, call
719 the completion func to ensure FSM kicks off again.
Paul Jakmaa3b6ea52006-05-04 07:52:12 +0000720
Paul Jakma15aa6a12006-03-30 14:39:35 +00007212006-03-30 Paul Jakma <paul.jakma@sun.com>
722
723 * bgp_community.c: (community_gettoken) Unknown token should
724 return NULL, to give a strong indication to callers that
725 the token no longer can be parsed, otherwise callers looping
726 on this function may have a hard time ending their loop.
727 (community_str2com) While loop around community_gettoken appears
728 to have been coded thinking that break statement would break
729 from the while{}, hence it could never exit for unknown token
730 case. Fix it to do..while, so it can use the NULL result from
731 community_gettoken easily.
732
Paul Jakmaa625ca32006-03-30 14:12:38 +00007332006-03-22 Paul Jakma <paul.jakma@sun.com>
734
735 * bgpd.c: (peer_free) release the per-peer workqueue when
736 freeing the peer.
737
Paul Jakma5304cb52006-03-30 14:01:14 +00007382006-03-19 Paul Jakma <paul.jakma@sun.com>
739
Paul Jakma4bf6a362006-03-30 14:05:23 +0000740 * bgpd/bgp_vty.c: Add includes to get several structs we want
741 to provide usage statistics on.
742 (show_bgp_memory_cmd) Show memory usage stats for various
743 notable fixed size objects. Using mtype_stats_alloc and
744 mtype_memstr recently added to memory.c.
745 (bgp_show_summary) Report some additional stats specific to
746 the given BGP instance and/or AFI/SAFI such as table counts,
747 peers, rsclients and peer-groups.
748 (bgp_vty_init) Install show_bgp_memory_cmd.
Paul Jakma5304cb52006-03-30 14:01:14 +0000749 * bgp_nexthop.h: Include if.h as a dependent header, for struct
750 connected.
Paul Jakmab51f1262006-03-30 14:09:38 +0000751 * bgp_advertise.c: Use a distinct memory type for struct
752 bgp_synchronize.
Paul Jakma5304cb52006-03-30 14:01:14 +0000753
Paul Jakmacbdfbaa2006-03-30 13:20:48 +00007542006-03-12 Paul Jakma <paul.jakma@sun.com>
755
756 * bgp_attr.h: (struct attr) rearrange fields to avoid
757 wasted padding between them as much as possible.
758 (attr_count,attr_unknown_count) export new functions to
759 return number of counts of cached attributes.
760 * bgp_attr.c: (attr_count,attr_unknown_count) new functions to
761 return number of counts of cached attributes.
762 * bgp_route.h: (struct bgp_info) rearrange fields to avoid
763 wasted padding.
764 * bgp_table.h: (struct bgp_table) Add a count field, of number
765 of nodes in the table.
766 (struct bgp_node) rearrange fields to avoid
767 wasted padding between them, though I don't think there
768 was any in this case.
769 * bgp_table.c: (bgp_node_{delete,get}) Maintain the table node count.
770 (bgp_table_count) new function to access the table count.
771
Paul Jakma3e0c78e2006-03-06 18:06:53 +00007722006-03-03 Paul Jakma <paul.jakma@sun.com>
773
774 * bgp_route.c: (bgp_clear_node_complete) Doh. When clearing
775 is complete we need to kick off FSM again.
776
Paul Jakma64e580a2006-02-21 01:09:01 +00007772006-02-21 Paul Jakma <paul.jakma@sun.com>
778
779 * bgpd.h: move the clear_node_queue to be peer specific.
780 Add a new peer status flag, PEER_STATUS_CLEARING.
781 * bgp_table.h: (struct bgp_table) Add fields to record afi,
782 safi of the table.
783 (bgp_table_init) Take afi and safi to create table for.
784 * bgp_table.c: (bgp_table_init) record the afi and safi.
785 * bgp_nexthop.c: Update all calls to bgp_table_init.
786 * bgp_vty.c: ditto.
787 * bgpd.c: ditto.
788 * bgp_fsm.c: (bgp_timer_set) dont bring up a session which is
789 clearing.
790 * bgp_route.c: (general) Update all bgp_table_init calls.
791 (bgp_process_{rsclient,main}) clear_node is serialised
792 via PEER_STATUS_CLEARING and fsm now.
793 (struct bgp_clear_node_queue) can be removed. struct bgp_node
794 can be the queue item data directly, as struct peer can be
795 kept in the new wq global user data and afi/safi can be
796 retrieved via bgp_node -> bgp_table.
797 (bgp_clear_route_node) fix to get peer via wq->spec.data,
798 afi/safi via bgp_node->bgp_table.
799 (bgp_clear_node_queue_del) no more item data to delete, only
800 unlock the bgp_node.
801 (bgp_clear_node_complete) only need to unset CLEARING flag
802 and unlock struct peer.
803 (bgp_clear_node_queue_init) queue attaches to struct peer
804 now. record peer name as queue name.
805 (bgp_clear_route_table) If queue transitions to active,
806 serialise clearing by setting PEER_STATUS_CLEARING rather
807 than plugging process queue, and lock peer while queue
808 active.
809 Update to pass only bgp_node as per-queue-item specific data.
Paul Jakma6a419732006-02-21 01:14:13 +0000810 * bgp_vty.c: (bgp_show_summary) Add a 'Clrng' sub-description
811 to state of peer while it's suppressed due to clearing.
Paul Jakma64e580a2006-02-21 01:09:01 +0000812
Paul Jakmaaa94ca82006-02-18 10:49:04 +00008132006-02-18 Paul Jakma <paul.jakma@sun.com>
814
815 * bgp_routemap.c: (route_set_community) Quick, very hacky, fix
816 for the set-community leak, bug #89. True fix will be to
817 detangle the web of *_intern caching and provide saner object
818 caching for Quagga, future work.
Paul Jakma7c7fa1b2006-02-18 10:52:09 +0000819 * bgp_route.c: (bgp_announce_check) trivial, move declaration
820 of two local variables into the only block where they are
821 used, to aid the reader.
Paul Jakmaaa94ca82006-02-18 10:49:04 +0000822
paul902212c2006-02-05 17:51:19 +00008232006-02-05 Paul Jakma <paul.jakma@sun.com>
824
825 * bgp_route.h: Add BGP_INFO_COUNTED to track whether
826 prefix has been counted or not.
827 * bgp_route.c: (bgp_pcount_{inc,dec}rement) new helpers, to
828 centralise inc/dec of prefix-count,
829 (bgp_rib_remove) Remove pcount decrement, use helper.
830 (bgp_rib_withdraw) ditto, additionally use previous function
831 too.
832 (bgp_update_main) Use pcount helpers.
833 (bgp_clear_route_node) ditto, aslo REMOVED routes don't need
834 clearing.
paul3fff6ff2006-02-05 17:55:35 +0000835 * bgp_aspath.c: (aspath_gettoken) fix gcc warning about
836 possible uninitialised usage.
paul902212c2006-02-05 17:51:19 +0000837
paul306d8892006-02-02 17:50:19 +00008382006-02-02 Paul Jakma <paul.jakma@sun.com>
839
840 * bgp_route.c: (bgp_{clear_node,process}_queue_init) delay
841 field is removed from workqueue spec.
842
paule8e19462006-01-19 20:16:55 +00008432006-01-19 Paul Jakma <paul.jakma@sun.com>
844
845 * (general) various miscellaneous compiler warning fixes.
846 Remove redundant break statements from switch clauses
847 which return.
848 return from main, not exit, cause it annoys SOS.
849 Remove stray semi-colons which cause empty-statement
850 warnings.
851
pauld3092e72006-01-17 17:33:46 +00008522006-01-17 Paul Jakma <paul.jakma@sun.com>
853
854 * bgp_nexthop.c: (zlookup_read*) convert to new Zserv format.
855 (zlookup_query_ipv6) ditto.
856 (bgp_import_check) ditto.
857
paul02335422006-01-16 11:13:27 +00008582006-01-16 Paul Jakma <paul.jakma@sun.com>
859
860 * bgp_aspath.c: (assegment_append_asns) XREALLOC can return
861 NULL theoretically, take care not to lose the allocated data.
862 (aspath_hash_alloc) aspath_dup already set the aspath
863 string - fix leak.
864 (aspath_parse) aspath_hash_alloc dupes the entire aspath,
865 including segments, but we forgot to free the temporary
866 assegment.
paul8fdc32a2006-01-16 12:01:29 +0000867 (aspath_snmp_pathseg) move the static stream pointer out to
868 file scope, so it can be freed.
869 (aspath_finish) new function, free aspath resources.
870 * bgp_aspath.h: (aspath_finish) export.
paul02335422006-01-16 11:13:27 +0000871
paul37c38302006-01-10 22:15:45 +00008722006-01-10 Juris Kalnins <juris@mt.lv>
873
874 * bgpd.h: (bgp_router_id_unset) ex-function, remove.
875
paulad727402005-11-23 02:47:02 +00008762005-11-23 Paul Jakma <paul.jakma@sun.com>
877
878 * bgp_aspath.c: (assegments_parse) should be static
879
8802005-11-23 Juergen Kammer <j.kammer@eurodata.de>
881
882 * bgp_aspath.c: (aspath_cmp_left_confed) fix SEGV for case
883 where one or both paths are empty.
884
paul0fb58d52005-11-14 14:31:49 +00008852005-11-14 Paul Jakma <paul.jakma@sun.com>
886
887 * bgp_route.c: (bgp_process_rsclient) convert to new workqueue
888 specs and shut up gcc, which complains about cast from void
889 via function parameters, for some dumb reason. Do the cast
890 inside the function instead.
891 (bgp_process_main,bgp_processq_del) ditto.
892 (bgp_clear_route_node) ditto.
893 (bgp_clear_node_queue_del) ditto.
894
paul41200852005-11-03 12:52:18 +00008952005-11-03 Paul Jakma <paul.jakma@sun.com>
896
897 * bgp_damp.c: (bgp_reuse_timer) struct bgp can be retrieved via
898 the struct bgp_damp_info, no need to guess by using
899 bgp_get_default().
900
ajsf52d13c2005-10-01 17:38:06 +00009012005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
902
903 * bgp_vty.c: (bgp_config_write_redistribute) Use new library function
904 zebra_route_string instead of a local hard-coded table.
905
jardin2d74db52005-10-01 00:07:50 +00009062005-09-30 Vincent Jardin <vincent.jardin@6wind.com>
907
908 * bgp_packet.c: fix compilation when DEBUG is used.
909
paul1f8ae702005-09-09 23:49:49 +00009102005-09-10 Paul Jakma <paul.jakma@sun.com>
911
paulfe69a502005-09-10 16:55:02 +0000912 * Makefile.am: bgpd shouldn't list libgp's sources as its own.
913 Use LDADD.
914 * bgp_aspath.h:
915 (struct assegment) New struct, abstract representation of a
916 list of AS_PATH segments and the contained ASNs.
917 (struct aspath) Remove the raw-data related
918 fields, reference the abstract struct assegment instead.
919 Remove several other computed fields, it's just a
920 headache to maintain them and they're cheap to compute from
921 struct assegment.
922 (aspath_parse) parse a stream, not a pointer to raw data.
923 (aspath_count_{hops,confeds,size}) helpers to access
924 information formerly directly contained in struct aspath.
925 (aspath_snmp_pathseg) Helper for SNMP, BGP MIB wants
926 to be able to output hex representation of raw data.
927 * bgp_aspath.c: (general) partial-rewrite. Store aspath data
928 as an abstract singly-linked list of abstract segments,
929 rather than storing the raw data, and parsing it each and
930 every time. Remove several count/size fields which are cheap
931 to compute from the abstract segment structure.
932 (global) Include stream.h, needed for aspath_parse, and
933 others. Couple of helper macros added.
934 (struct assegment_header) Just the header, and only the
935 header.
936 (assegment_data_{new,free}) convenience functions for
937 AS_SEG_DATA allocation, the dynamic, per-segment array of
938 ASNs.
939 (assegment_{new,free,free_all,dup,dup_all}) convenience
940 functions for creating struct assegments. The _all forms will
941 follow the entire chain of segments from the given segment.
942 (assegment_prepend_asns) new function, prepend an ASN N times
943 to segment.
944 (assegment_append_asns) Append a list (array) of ASNs to
945 segment.
946 (int_cmp) convenience function for the aspath hash.
947 (assegment_normalise) new function. Normalise the given
948 segment chain to meet expectations of Quagga, and to
949 eliminate differing raw representations of the same paths.
950 Merge 'runs' of SEQUENCEs into one segment as our internal
951 segment is not limited by the protocol AS_PATH segment
952 length. Sort ASNs in SETs.
953 (aspath_new) Take void argument to quell warnings. Use the
954 assegment convenience functions.
955 (assegment_count_{asns,confeds,hops}) new functions to
956 compute at runtime values previously held in struct aspath.
957 (aspath_size) ditto.
958 (aspath_make_str_count) rewritten to stringify new
959 representation, and to be slightly easier to understand
960 hopefully.
961 (aspath_str_update) convenience function, update the aspath
962 str. Should investigate removing maintained string from
963 struct aspath, just run-time compute it, as per other fields.
964 It's just a maintenance headache, would save noticeable
965 amount of RAM with possibly not much extra run-time cost.
966 (aspath_dup) use the assegment dup functions.
967 (aspath_hash_alloc) Take void * argument to satisfy gcc. Use
968 the proper helper functions to dup data.
969 (assegments_parse) new function. parse raw AS_PATH data into
970 struct assegments. Normalise and return the head of the list.
971 (aspath_parse) Parse a stream, not pointer to raw data and
972 use assegments_parse to do it.
973 (assegment_data_put) Write out a single segment data in protocol
974 form to stream.
975 (assegment_header_put) ditto but for segment header.
976 (aspath_put) new function. As per previous but for an entire
977 struct aspath.
978 (aspath_snmp_pathseg) wrapper around aspath_put for
979 bgp_snmp.c. Uses a static buffer sadly.
980 (aspath_aggregate_as_set_add) rewritten to use assegments.
981 (aspath_aggregate) ditto
982 (aspath_{firstas,loop,private_as}_check) ditto
983 (aspath_{merge,prepend,add_one_as}) ditto
984 (aspath_cmp_left{_confed}) ditto
985 (aspath_delete_confed_seq) ditto, plus fixed to properly
986 delete all leading confed segments.
987 (aspath_as_add) Just use assegment_append_asns.
988 (aspath_segment_add) updated to use assegments.
989 (enum as_token) Add values for confeds
990 (aspath_gettoken) Add support for confeds
991 (aspath_str2aspath) ditto
992 (aspath_key_make) updated to use as_segments. Also, add
993 segment type into the hash value as appropriate.
994 (aspath_cmp) updated to use as_segments.
995 (aspath_print) don't segfault on NULL argument.
996 * bgp_attr.c: (bgp_attr_aspath) aspath_parse wants the stream
997 now. No need for manual forwarding of stream.
998 (bgp_packet_attribute) empty aspath is now denoted by NULL
999 segment field, length is gone.
1000 Use aspath_size() to determine size.
1001 (bgp_attr_init) Fix declaration, explicitely specify void
1002 arg.
1003 (bgp_dump_routes_attr) Use aspath_size() to determine size.
1004 * bgp_route.c: (bgp_info_cmp) use the aspath_count_* functions.
1005 (bgp_rib_withdraw) remove unused variable. Use
1006 aspath_count_hops.
1007 * bgp_snmp.c: (bgp4PathAttrTable) raw data is gone, use
1008 aspath_snmp_pathseg to get the representation.
1009
10102005-09-10 Paul Jakma <paul.jakma@sun.com>
1011
paul1f8ae702005-09-09 23:49:49 +00001012 * bgp_vty.c: (bgp_vty_init) gcc 4 compile fix. static
1013 function declarations shouldn't be inside functions.
1014 * bgp_dump.c: (bgp_dump_interval_add) ditto.
1015
hassob7395792005-08-26 12:58:38 +000010162005-08-26 Hasso Tepper <hasso at quagga.net>
1017
1018 * bgp_route.c: Third (?) attempt to fix best selection breakage
1019 introduced long time ago with route server patch. Hopefully
1020 it's last case to fix - route-server client not in peer group.
1021
paul25ffbdc2005-08-22 22:42:08 +000010222005-08-22 Hugo Santos <hsantos@av.it.pt>
1023
1024 * bgp_vty.c: (general) Add support for BGP IPv6 Multicast SAFI
1025 commands and BGP_IPV6M_NODE.
1026
paulb40d9392005-08-22 22:34:41 +000010272005-08-22 Paul Jakma <paul.jakma@sun.com>
1028
1029 * bgp_route.h: (struct bgp_info) add a new flag, BGP_INFO_REMOVED.
1030 BGP_INFO_VALID is already overloaded, don't care to do same thing
1031 to STALE or HISTORY.
1032 * bgpd.h: (BGP_INFO_HOLDDOWN) Add INFO_REMOVED to the macro, as a
1033 route which should generally be ignored.
1034 * bgp_route.c: (bgp_info_delete) Just set the REMOVE flag, rather
1035 than doing actual work, so that bgp_process (called directly,
1036 or indirectly via the scanner) can catch withdrawn routes.
1037 (bgp_info_reap) Actually remove the route, what bgp_info_delete
1038 used to do, only for use by bgp_process.
1039 (bgp_best_selection) reap any REMOVED routes, other than the old
1040 selected route.
1041 (bgp_process_rsclient) reap the old-selected route, if appropriate
1042 (bgp_process_main) ditto
1043 (bgp_rib_withdraw, bgp_rib_remove) make them more consistent with
1044 each other. Don't play games with the VALID flag, bgp_process
1045 is async now, so it didn't make a difference anyway.
1046 Remove the 'force' argument from bgp_rib_withdraw, withdraw+force
1047 is equivalent to bgp_rib_remove. Update all its callers.
1048 (bgp_update_rsclient) bgp_rib_withdraw and force set is same as
1049 bgp_rib_remove.
1050 (route_vty_short_status_out) new helper to print the leading
1051 route-status string used in many command outputs. Consolidate.
1052 (route_vty_out, route_vty_out_tag, damp_route_vty_out,
1053 flap_route_vty_out) use route_vty_short_status_out rather than
1054 duplicate.
1055 (route_vty_out_detail) print state of REMOVED flag.
1056 (BGP_SHOW_SCODE_HEADER) update for Removed flag.
1057
hassoe279c7a2005-08-03 17:23:20 +000010582005-08-03 Hasso Tepper <hasso at quagga.net>
1059
1060 * bgp_routemap.c: Revert part of leaking communities fix commited in
1061 2005-05-27. While ecommunity fix seems to be correct, community case
1062 isn't.
1063
paul94f2b392005-06-28 12:44:16 +000010642005-06-28 Paul Jakma <paul.jakma@sun.com>
1065
1066 * (global) The great bgpd extern and static'ification.
1067 * bgp_routemap.c: remove unused ROUTE_MATCH_ASPATH_OLD code
1068 (route_set_metric_compile) fix u_int32_t to ULONG_MAX comparison
1069 warnings.
1070 * bgp_route.h: (bgp_process, bgp_withdraw, bgp_update) export these
1071 used by various files which had their own private declarations,
1072 in the case of mplsvpn - incorrect.
1073
paule210cf92005-06-15 19:15:35 +000010742005-06-15 Paul Jakma <paul.jakma@sun.com>
1075
1076 * bgpd.c: (bgp_terminate) workqueue's are lazy allocated and its
1077 possible to terminate bgpd before workqueues were setup, causing
1078 an abort/crash. Reported by Ashish Mehta of Sun.
1079
paul200df112005-06-01 11:17:05 +000010802005-06-01 Paul Jakma <paul.jakma@sun.com>
1081
1082 * (general) refcount struct peer and bgp_info, hence allowing us
1083 add work_queues for bgp_process.
1084 * bgp_route.h: (struct bgp_info) Add 'lock' field for refcount.
1085 Add bgp_info_{lock,unlock} helper functions.
1086 Add bgp_info_{add,delete} helpers, to remove need for
1087 users managing locking/freeing of bgp_info and bgp_node's.
1088 * bgp_table.h: (struct bgp_node) Add a flags field, and
1089 BGP_NODE_PROCESS_SCHEDULED to merge redundant processing of
1090 nodes.
1091 * bgp_fsm.h: Make the ON/OFF/ADD/REMOVE macros lock and unlock
1092 peer reference as appropriate.
1093 * bgp_damp.c: Remove its internal prototypes for
1094 bgp_info_delete/free. Just use bgp_info_delete.
1095 * bgpd.h: (struct bgp_master) Add work_queue pointers.
1096 (struct peer) Add reference count 'lock'
1097 (peer_lock,peer_unlock) New helpers to take/release reference
1098 on struct peer.
1099 * bgp_advertise.c: (general) Add peer and bgp_info refcounting
1100 and balance how references are taken and released.
1101 (bgp_advertise_free) release bgp_info reference, if appropriate
1102 (bgp_adj_out_free) unlock peer
1103 (bgp_advertise_clean) leave the adv references alone, or else
1104 call bgp_advertise_free cant unlock them.
1105 (bgp_adj_out_set) lock the peer on new adj's, leave the reference
1106 alone otherwise. lock the new bgp_info reference.
1107 (bgp_adj_in_set) lock the peer reference
1108 (bgp_adj_in_remove) and unlock it here
1109 (bgp_sync_delete) make hash_free on peer conditional, just in
1110 case.
1111 * bgp_fsm.c: (general) document that the timers depend on
1112 bgp_event to release a peer reference.
1113 (bgp_fsm_change_status) moved up the file, unchanged.
1114 (bgp_stop) Decrement peer lock as many times as cancel_event
1115 canceled - shouldnt be needed but just in case.
1116 stream_fifo_clean of obuf made conditional, just in case.
1117 (bgp_event) always unlock the peer, regardless of return value
1118 of bgp_fsm_change_status.
1119 * bgp_packet.c: (general) change several bgp_stop's to BGP_EVENT's.
1120 (bgp_read) Add a mysterious extra peer_unlock for ACCEPT_PEERs
1121 along with a comment on it.
1122 * bgp_route.c: (general) Add refcounting of bgp_info, cleanup
1123 some of the resource management around bgp_info. Refcount peer.
1124 Add workqueues for bgp_process and clear_table.
1125 (bgp_info_new) make static
1126 (bgp_info_free) Ditto, and unlock the peer reference.
1127 (bgp_info_lock,bgp_info_unlock) new exported functions
1128 (bgp_info_add) Add a bgp_info to a bgp_node in correct fashion,
1129 taking care of reference counts.
1130 (bgp_info_delete) do the opposite of bgp_info_add.
1131 (bgp_process_rsclient) Converted into a work_queue work function.
1132 (bgp_process_main) ditto.
1133 (bgp_processq_del) process work queue item deconstructor
1134 (bgp_process_queue_init) process work queue init
1135 (bgp_process) call init function if required, set up queue item
1136 and add to queue, rather than calling process functions directly.
1137 (bgp_rib_remove) let bgp_info_delete manage bgp_info refcounts
1138 (bgp_rib_withdraw) ditto
1139 (bgp_update_rsclient) let bgp_info_add manage refcounts
1140 (bgp_update_main) ditto
1141 (bgp_clear_route_node) clear_node_queue work function, does
1142 per-node aspects of what bgp_clear_route_table did previously
1143 (bgp_clear_node_queue_del) clear_node_queue item delete function
1144 (bgp_clear_node_complete) clear_node_queue completion function,
1145 it unplugs the process queues, which have to be blocked while
1146 clear_node_queue is being processed to prevent a race.
1147 (bgp_clear_node_queue_init) init function for clear_node_queue
1148 work queues
1149 (bgp_clear_route_table) Sets up items onto a workqueue now, rather
1150 than clearing each node directly. Plugs both process queues to
1151 avoid potential race.
1152 (bgp_static_withdraw_rsclient) let bgp_info_{add,delete} manage
1153 bgp_info refcounts.
1154 (bgp_static_update_rsclient) ditto
1155 (bgp_static_update_main) ditto
1156 (bgp_static_update_vpnv4) ditto, remove unneeded cast.
1157 (bgp_static_withdraw) see bgp_static_withdraw_rsclient
1158 (bgp_static_withdraw_vpnv4) ditto
1159 (bgp_aggregate_{route,add,delete}) ditto
1160 (bgp_redistribute_{add,delete,withdraw}) ditto
1161 * bgp_vty.c: (peer_rsclient_set_vty) lock rsclient list peer
1162 reference
1163 (peer_rsclient_unset_vty) ditto, but unlock same reference
1164 * bgpd.c: (peer_free) handle frees of info to be kept for lifetime
1165 of struct peer.
1166 (peer_lock,peer_unlock) peer refcount helpers
1167 (peer_new) add initial refcounts
1168 (peer_create,peer_create_accept) lock peer as appropriate
1169 (peer_delete) unlock as appropriate, move out some free's to
1170 peer_free.
1171 (peer_group_bind,peer_group_unbind) peer refcounting as
1172 appropriate.
1173 (bgp_create) check CALLOC return value.
1174 (bgp_terminate) free workqueues too.
1175
hasso033e8612005-05-28 04:50:54 +000011762005-05-28 Hasso Tepper <hasso at quagga.net>
1177
1178 * bgp_routemap.c: Sync set_metric_addsub_cmd with ripd.
1179
hasso54a6ed32005-05-26 22:12:33 +000011802005-05-27 Hasso Tepper <hasso at quagga.net>
1181
hasso70601e02005-05-27 03:26:57 +00001182 * bgp_routemap.c: Stop leaking communities.
1183
11842005-05-27 Hasso Tepper <hasso at quagga.net>
1185
hasso54a6ed32005-05-26 22:12:33 +00001186 * bgpd.c: Deleting bgp->rsclient list needs fix similar to pree-groups
1187 deleting fix. Avoid leaking bgp->group, bgp->peer and bgp->rsclient
1188 lists.
1189
11902005-05-26 Hasso Tepper <hasso at quagga.net>
hassob6b7cff2005-05-26 08:29:07 +00001191
1192 * bgpd.c: Don't crash while deleting list of peer-groups.
1193
hassob5f29602005-05-25 21:00:28 +000011942005-05-25 Hasso Tepper <hasso at quagga.net>
1195
1196 * bgpd.c: Fix obvious (routeserver patch) merge error. This makes "no
1197 neighbor x.x.x.x routemap [export|import] commands work again.
1198
paula94feb32005-05-23 13:17:29 +000011992005-05-23 Paul Jakma <paul@dishone.st>
1200
1201 * bgp_routemap.c: add semi-colons to VTY_GET_* to match vty.h change
paul00d252c2005-05-23 14:19:54 +00001202 * bgp_fsm.h: Add extern qualifier to exported functions
1203 * bgp_nexthop.c: add static to nexthop specific globals
1204 * *.h: Add guard defines
paula94feb32005-05-23 13:17:29 +00001205
paul22db9de2005-05-19 01:50:11 +000012062005-05-19 Paul Jakma <paul@dishone.st>
1207
1208 * bgp_fsm.c: (bgp_stop) use sockunion_free, not XFREE..
1209 * bgp_network.c: (bgp_getsockname) ditto
paule83e2082005-05-19 02:12:25 +00001210 (bgp_accept) use XSTRDUP
paul22db9de2005-05-19 01:50:11 +00001211 * bgp_routemap.c: (route_match_peer) ditto, als use a ret value and
1212 remove one sockunion_free.
paule83e2082005-05-19 02:12:25 +00001213 * bgpd.c: (peer_delete) ditto.
1214 XFREE the correct memtype, not free.
1215 (peer_create) use XSTRDUP
1216 * bgp_packet.c: (bgp_stream_dup) deleted, stream_dup should be used
1217 (various) update -> s/bgp_stream_dup/stream_dup
1218
paul22db9de2005-05-19 01:50:11 +00001219
ajs634f9ea2005-04-11 15:51:40 +000012202005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1221
1222 * bgp_zebra.c (bgp_redistribute_set, bgp_redistribute_unset):
1223 The 2nd arg to zebra_redistribute_send is now zclient instead of
1224 zclient->sock.
1225
hassoa8a80d52005-04-09 13:07:47 +000012262005-04-09 Akihiro Mizutani <mizutani@net-chef.net>
1227
1228 * bgp_vty.c: Make "exit-address-family" work in IPv4 unicast address
1229 family node.
1230
hasso68118452005-04-08 15:40:36 +000012312005-04-08 Martin Ling <martin-quagga@earth.li>
1232
1233 * bgp_aspath.[ch], bgp_route.c, bgp_vty.c, bgpd.[ch]: Allow to enable
1234 the length of confederation path segments to be included during the
1235 as-path length check in the best path decision.
1236
ajsd2fc8892005-04-02 18:38:43 +000012372005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1238
1239 * bgp_zebra.c: (bgp_interface_delete) After deleting, set ifp->ifindex
1240 to IFINDEX_INTERNAL.
1241
hasso6cf159b2005-03-21 10:28:14 +000012422005-03-21 Hasso Tepper <hasso at quagga.net>
1243
1244 * bgp_route.c: Don't crash while clearing route tables if there is
1245 no particular afi/safi configured.
1246
hasso338b3422005-02-23 14:27:24 +000012472005-02-23 Hasso Tepper <hasso at quagga.net>
1248
1249 * bgp_route.c: Make reannouncing prefixes with changed attributes
1250 work again.
1251
hasso6ffd2072005-02-02 14:50:11 +000012522005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
1253
hassodd4c5932005-02-02 17:15:34 +00001254 * bgp_vty.c: Deprecate "neighbor transparent-as" and "neighbor
1255 transparent-nexthop" commands.
1256
12572005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
1258
hassoc1643bb2005-02-02 16:43:17 +00001259 * bgp_routemap.c: New route-map command - "match ip route-source".
1260
12612005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
1262
hassofee6e4e2005-02-02 16:29:31 +00001263 * bgp_clist.[ch], bgp_route.c, bgp_routemap.c, bgp_vty.c:
1264 community-list cleanup.
1265
12662005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
1267
hasso6ffd2072005-02-02 14:50:11 +00001268 * bgp_route.c, bgp_vty.c, bgp_zebra.c, bgpd.[ch]: "enforce-multihop"
1269 -> "disable-connected-check".
1270
12712005-02-02 Akihiro Mizutani <mizutani@net-chef.net>
hasso93406d82005-02-02 14:40:33 +00001272
1273 * bgp_fsm.c, bgp_open.c, bgp_packet.c, bgp_route.[ch], bgp_vty.c,
1274 bgpd.[ch]: Add BGP_INFO_STALE flag and end-of-rib support. "bgp
1275 graceful-restart" commands added. Show numbers of individual
1276 messages in "show ip bgp neighbor" command. Final pieces of graceful
1277 restart.
1278
hassof4184462005-02-01 20:13:16 +000012792005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
1280
hassoc9502432005-02-01 22:01:48 +00001281 * bgp_open.c, bgp_packet.c, bgp_vty.c, bgpd.[ch]: Remove "no neighbor
1282 capability route-refresh" commands. Route refresh capability is sent
1283 anyway now. Preserve dummy deprecated commands.
1284
12852005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
1286
hasso3d515fd2005-02-01 21:30:04 +00001287 * bgp_attr.c, bgp_snmp.c, bgp_vty.c, bgpd.[ch]: Remove support for old
1288 draft - ie. "neighbor version 4-" commands. Preserve dummy "neighbor
1289 version" command as deprecated.
1290
12912005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
1292
hasso0a486e52005-02-01 20:57:17 +00001293 * bgpd.[ch], bgp_vty.c, bgp_route.c: "Restart session after
1294 maximum-prefix limit" feature support.
1295
12962005-02-01 Akihiro Mizutani <mizutani@net-chef.net>
1297
hassof4184462005-02-01 20:13:16 +00001298 * bgp_nexthop.c: Improve debug.
1299 * bgpd.[ch], bgp_nexthop.c, bgp_snmp.c: Remove useless bgp_get_master()
1300 function.
1301 * bgp_packet.c: MP AFI_IP update and withdraw parsing.
1302 * bgp_fsm.c: Reset peer synctime in bgp_stop(). bgp_fsm_change_status()
1303 is better place to log about peer status change than bgp_event().
1304 Log in bgp_connect_success().
1305 * bgp_vty.c: Fix typo in comment.
1306 * bgp_attr.c: Better log about unknown attribute.
1307
ajs3b8b1852005-01-29 18:19:13 +000013082005-01-29 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1309
1310 * bgp_filter.c: (ip_as_path,no_ip_as_path) Use argv_concat instead
1311 of buffer_getstr.
1312 * bgp_route.c: (bgp_show_regexp) Fix memory leak: need to free string
1313 returned by buffer_getstr.
1314 (bgp_show_community) Must use XFREE instead of free on string
1315 returned by buffer_getstr.
1316 * bgp_routemap.c: (set_community) Must use XFREE instead of free
1317 on string returned by buffer_getstr.
1318 * bgp_vty.c: (neighbor_description) Use argv_concat instead of
1319 buffer_getstr.
1320
hasso6d694292005-01-24 09:29:42 +000013212005-01-24 Hasso Tepper <hasso at quagga.net>
1322
1323 * bgp_route.c: Fix showstopper bug. New route must be selected also
1324 if old one is flaged as BGP_INFO_ATTR_CHANGED.
1325
hassof1271652005-01-17 11:04:32 +000013262005-01-17 Hasso Tepper <hasso at quagga.net>
1327
1328 * bgp_route.c: Clear peer's routing table regardless whether it's
1329 configured or not. Being not configured is even better reason to
1330 do it.
1331
paula24a7e12005-01-05 08:14:13 +000013322005-01-05 Paul Jakma <paul@dishone.st>
1333
1334 * bgp_packet.c: (bgp_write) set socket to nonblock while writing
1335 this should be generalised. See bugzilla #102. Fix supplied by
1336 wawa@yandex-team.ru (Vladimir Ivanov).
1337
ajsd2c1f162004-12-08 21:10:20 +000013382004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1339
1340 * *.c: Change level of debug messages to LOG_DEBUG.
1341
ajs274a4a42004-12-07 15:39:31 +000013422004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1343
1344 * bgp_main.c: (main) The 2nd argument to openzlog has been removed.
1345
ajs887c44a2004-12-03 16:36:46 +000013462004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1347
1348 * bgp_main.c: (sigint) Use zlog_notice for termination message.
1349 (main) Use zlog_notice for startup announcement.
1350
hassoc0652302004-11-25 19:33:48 +000013512004-11-25 Hasso Tepper <hasso at quagga.net>
1352
1353 * bgp_main.c: Make group to run as configurable.
1354
paul59320202004-11-09 01:54:03 +000013552004-11-09 Paul Jakma <paul@dishone.st>
1356
1357 * bgp_nexthop.c: collapse bgp_connected_ipvX, bgp_nexthop_cache_ipvX
1358 and cache{1,2}.. into arrays of tables and hence collapse
1359 bgp_scan_ipv{4,6} into a single bgp_scan function. Tested, though
1360 a long time ago (and this change was hand-merged).
1361
ajs5a646652004-11-05 01:25:55 +000013622004-11-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
1363
1364 * bgp_route.c: Remove all code related to VTY_CONTINUE; this feature
1365 is deprecated because the output did not represent a single point
1366 in time. All output needs to be generated inline and buffered
1367 by the library code.
1368 (route_vty_out,route_vty_out_tag,damp_route_vty_out,
1369 flap_route_vty_out) Remove code to count number of lines of output,
1370 since this was only useful for VTY_CONTINUE behavior.
1371 (bgp_show_callback,vty_calc_line) Removed.
1372 (bgp_show_table) Remove hooks for VTY_CONTINUE callback support.
1373 As a result, there's a new output_arg argument to this function.
1374 Make function static.
1375 (bgp_show) Make function static and add a new output_arg argument.
1376 Change all functions that call bgp_show or bgp_show_table to
1377 pass the new output_arg argument (that used to be passed inside
1378 vty->output_arg).
1379 * bgp_mplsvpn.c: Remove declarations of functions defined in
1380 bgp_route.c; these declarations belong in bgp_route.h.
1381 * bgp_route.h: Declare 3 global functions used in both bgp_route.c
1382 and in bgp_mplsvpn.c.
1383
paula2b1ecd2004-10-31 18:58:09 +000013842004-10-31 Paul Jakma <paul@dishone.st>
1385
1386 * {bgpd,bgp_attr}.c: size_t printf format should be ld.
1387
paul98f51632004-10-25 14:19:15 +000013882004-10-25 Paul Jakma <paul@dishone.st>
1389
1390 * Update with fix in debian bug id 222930.
1391 * bgp_main.c: Add ZCAP_RAW, needed to bind to interfaces.
1392 bgp_network.c: (....) raise/lower privs around call to
1393 SO_BINDTODEVICE sockopt.
1394
hasso3fb9cd62004-10-19 19:44:43 +000013952004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
1396
1397 * bgp_nexthop.c: (bgp_connected_add) Connected destination pointer
1398 may be NULL.
1399 (bgp_connected_delete) ditto.
1400
hasso501ba492004-10-13 21:32:46 +000014012004-10-14 Hasso Tepper <hasso at quagga.net>
1402
1403 * bgp_dump.c: Make dump configuration appear in vtysh.
1404
hassoc75105a2004-10-13 10:33:26 +000014052004-10-13 Hasso Tepper <hasso at quagga.net>
1406
1407 * bgp_snmp.c: Remove defaults used to initialize smux connection to
1408 snmpd. Connection is initialized only if smux peer is configured.
hasso8b3126b2004-10-13 20:59:04 +00001409 * bgp_view.c: It's dead file. Reomved.
hassoc75105a2004-10-13 10:33:26 +00001410
paulfd79ac92004-10-13 05:06:08 +000014112004-10-13 Paul Jakma <paul@dishone.st>
1412
1413 * (global) more const'ification and fixups of types to clean up code.
1414 * bgp_mplsvpn.{c,h}: (str2tag) fix abuse. Still not perfect,
1415 should use something like the VTY_GET_INTEGER macro, but without
1416 the vty_out bits..
1417 * bgp_routemap.c: (set_aggregator_as) use VTY_GET_INTEGER_RANGE
1418 (no_set_aggregator_as) ditto.
1419 * bgpd.c: (peer_uptime) fix unlikely bug, where no buffer is
1420 returned, add comments about troublesome return value.
1421
hasso18a6dce2004-10-03 18:18:34 +000014222004-10-03 James R. Leu <jleu at mindspring.com>
1423
1424 * bgp_vty.c: Router id from zebra can be manually overriden.
1425 * bgp_zebra.c: Read router id related messages from zebra daemon.
1426 Remove own code related with router id selection.
1427 * bgpd.c, bgpd.h: Remove own router id selection code. Use the one
1428 from zebra daemon if it isn't manually overriden.
1429
hassoc9e52be2004-09-26 16:09:34 +000014302004-09-26 Hasso Tepper <hasso at quagga.net>
1431
1432 * bgp_aspath.c, bgp_packet.c, bgp_vty.c: Fix compiler warnings.
1433
hasso52dc7ee2004-09-23 19:18:23 +000014342004-09-23 Hasso Tepper <hasso at quagga.net>
1435
1436 * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
1437
paule01f9cb2004-07-09 17:48:53 +000014382004-07-09 Paul Jakma <paul@dishone.st>
1439
1440 * Merge of GNU Zebra cvs2svn changesets r799, r800 and r807.
1441 * bgp_dump.c: (bgp_dump_attr) cleanup. return status code. check
1442 attributes present before printing.
1443 * bgp_dump.c: update bgp_dump_attr prototype.
1444 * bgp_packet.c: (bgp_update_receive) init attrstr. check status
1445 of bgp_dump_attr. Log end-of-rib UPDATEs.
1446
paulf5ba3872004-07-09 12:11:31 +000014472004-07-09 Sowmini Varadhan <sowmini.varadhan@sun.com>
1448
1449 * bgp_packet.c: (bgp_collision_detect) Send NOTIFY on new socket
1450 if that is connection we're closing.
1451 (bgp_read) invalid marker check applies to KEEPALIVE too.
1452 * bgp_route.c: Ignore multicast NRLI, dont send NOTIFY.
1453
paul5228ad22004-06-04 17:58:18 +000014542004-06-04 Paul Jakma <paul@dishone.st>
1455
1456 * type mismatch fixes
1457
hasso538621f2004-05-21 09:31:30 +000014582004-05-21 Akihiro Mizutani <mizutani@net-chef.net>
1459
1460 * bgpd.h, bgp_open.[ch], bgp_debug.c, bgp_vty.[ch], bgp_fsm.c:
1461 Graceful restart capability display.
1462
hasso3950fda2004-05-20 10:22:49 +000014632005-05-20 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1464
1465 * bgp_debug.c: Cosmetical fixes and log neighbor changes.
1466
hasso4372df72004-05-20 10:20:02 +000014672004-05-20 Akihiro Mizutani <mizutani@net-chef.net>
1468
1469 * bgp_ecommunity.c: Transit ecommunity support.
1470 * bgp_ecommunity.c: Fix for unknown community crush.
1471
hassoe0701b72004-05-20 09:19:34 +000014722005-05-20 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1473
1474 * *: Maximum prefix threshold support.
1475 * *: Reset notification fixups.
1476
paul0a589352004-05-08 11:48:26 +000014772004-05-08 Paul Jakma <paul@dishone.st>
1478
1479 * bgp_zebra.c: (bgp_interface_address_add) sync to zclient changes
1480 (bgp_interface_address_delete) ditto.
1481 (bgp_zebra_announce) ditto.
1482 (bgp_zebra_withdraw) ditto.
1483
paulc5317402004-05-03 13:25:06 +000014842004-05-03 Daniel Roesen <dr@cluenet.de>
1485
1486 * bgp_fsm.c: (bgp_stop) Reset uptime only on transition from
1487 Established so that it reflects true downtime (rather time
1488 since last transition, eg Active->Idle)
1489
paul35be31b2004-05-01 18:17:04 +000014902004-05-01 rivo nurges <rix@estpak.ee>
1491
1492 * bgp_route.c: fix UNH IOL BGP-4.1.12f
1493
pauleb821182004-05-01 08:44:08 +000014942004-05-01 Paul Jakma <paul@dishone.st>
1495
1496 * Revert the attempted clean-up of the dummy peer hack, reverts
1497 patchsets 435 (see 2004-02-17 below) and 456.
1498
paul545acaf2004-04-20 15:13:15 +000014992004-04-16 rivo nurges <rix@estpak.ee>
1500
hasso9b87e412004-04-20 16:54:49 +00001501 * bgpd.h, bgp_debug.c: update cease subcodes to
1502 draft-ietf-idr-cease-subcode-05
paul545acaf2004-04-20 15:13:15 +00001503 * bgpd.h, bgpd.c, bgp_route.c, bgp_route.h: fix UNH IOL BGP-4.1.6a
1504
paul6ad23f02004-02-17 19:45:10 +000015052004-02-17 Paul Jakma <paul@dishone.st>
1506
1507 * bgpd.h: (bgp_peer) add fd_local and fd_accept
1508 file descriptor's, fd becomes a pointer to one of these.
1509 * bgpd.c: (global) adjust for fact that fd is now a pointer.
1510 (peer_create_accept) removed.
1511 * bgp_route.c: (global) adjust for change of peer fd to pointer
1512 * bgp_packet.c: (bgp_collision_detect) adjust and remove the
1513 "replace with other peer" hack.
1514 * bgp_network.c: (bgp_accept) Remove the dummy peer hack.
1515 Update peer->fd_accept instead.
1516 (global) Adjust fd references - now a pointer.
1517 * bgp_fsm.c: (global) adjust peer fd to pointer.
1518 (bgp_connection_stop) new function, to stop connection.
1519 (global) adjust everything which closed peer fd to use
1520 bgp_connection_stop().
1521
gdt10d60ad2003-12-23 17:34:39 +000015222003-12-23 Krzysztof Oledzki <oleq@ans.pl>
1523
1524 * bgp_network.c: drop privs on error cases
1525
paul6ad23f02004-02-17 19:45:10 +000015262003-08-11 kunihiro <kunihiro@zebra.org>
paulac41b2a2003-08-12 05:32:27 +00001527
1528 * bgp_route{,map}.c: Extend 'set ip next-hop' in route-maps with
1529 ability to specify 'peer-address' rather than IP.
1530
paul9238b1e2003-06-11 08:03:08 +000015312003-06-09 Paul Jakma <paul@dishone.st>
1532
1533 * bgp_clist.c (community_list_delete): honour deny statements
1534
paul445f1432003-05-16 19:00:31 +000015352003-04-19 Hasso Tepper <hasso@estpak.ee>
1536
1537 * rip_routemap.c: sync daemon's route-map commands to have same
1538 syntax
1539
15402003-01-09 Akihiro Mizutani <mizutani@net-chef.net>
1541
1542 * bgp_routemap.c: Add match extcommunity command.
1543
paul718e3742002-12-13 20:15:29 +000015442002-10-23 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1545
1546 * bgp_aspath.c (aspath_init): Extend hash size from default to
1547 32767.
1548 (aspath_key_make): Use unsigned shoft for making hash. Suggested
1549 by: Marc Evans <Marc@SoftwareHackery.Com>
1550
15512002-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1552
1553 * bgp_clist.c (community_entry_free): Fix memory leak of standard
1554 extcommunity-list config string.
1555
15562002-08-19 Akihiro Mizutani <mizutani@net-chef.net>
1557
1558 * bgp_route.c (route_vty_out_detail): Fix bug of router-id display
1559 when multiple instance is used.
1560
15612002-08-18 Akihiro Mizutani <mizutani@net-chef.net>
1562
1563 * bgpd.c: Make "default-originate" and "maximum-prefix" commands
1564 available in peer-group configuration.
1565
15662002-08-13 Akihiro Mizutani <mizutani@net-chef.net>
1567
1568 * bgp_packet.c (bgp_open_send): Put Opt Parm Len 0 when last
1569 capability packet cause error or dont-capability-negotiate option
1570 is specified.
1571
15722002-07-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1573
1574 * zebra-0.93 released.
1575
15762001-10-28 Kunihiro Ishiguro <kunihiro@zebra.org>
1577
1578 * bgpd.c (bgp_vty_init): Translate update commands are removed.
1579
15802001-10-10 Kunihiro Ishiguro <kunihiro@zebra.org>
1581
1582 * bgp_route.c (bgp_static_set): Add workaround for BGP static
1583 route announcement when there is no zebra running.
1584
15852001-10-08 Kunihiro Ishiguro <kunihiro@zebra.org>
1586
1587 * bgpd.c (neighbor_remote_as_unicast): Remove "remote-as nlri
1588 unicast multicast" commands.
1589
15902001-09-14 Akihiro Mizutani <mizutani@dml.com>
1591
1592 * bgp_open.c: When we receive capability route-refresh, we should
1593 check we send the capability not we receive the capability.
1594
1595 * bgp_route.c (bgp_network_mask_natural_route_map): network
1596 statement route-map is added.
1597
15982001-08-31 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1599
1600 * bgp_advertise.c (bgp_advertise_intern): attr must be interned
1601 before looking up hash table.
1602
16032001-08-30 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1604
1605 * bgpd.h (struct peer): BGP filter is moved from peer_conf to
1606 peer.
1607
16082001-08-28 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1609
1610 * bgp_nexthop.c (bnc_nexthop_free): Fix next pointer bug.
1611 Suggested by: "Hong-Sung Kim" <hoskim@lanbird.co.kr>.
1612
16132001-08-26 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1614
1615 * bgp_table.c (bgp_node_create): Clearn memory before use it.
1616
16172001-08-24 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1618
1619 * Change to use bgp_table.[ch].
1620
16212001-08-23 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1622
1623 * bgpd.c (bgp_init): Add "transparent-as" and
1624 "transparent-nexthop" for old version compatibility.
1625
16262001-08-23 Akihiro Mizutani <mizutani@dml.com>
1627
1628 * bgpd.h (struct peer): default-originate route-map is added.
1629
1630 * bgp_route.c: When self originated route is advertised with
1631 attrubute-unchanged, nexthop was not properly set. This bug is
1632 fixed.
1633
16342001-08-22 Akihiro Mizutani <mizutani@dml.com>
1635
1636 * bgpd.c (neighbor_attr_unchanged): transparent-as and
1637 transparent-next-hop commands are restructured. Instead of
1638 current transparent-* commands, attribute-unchanged command is
1639 introduced.
1640
1641 neighbor A.B.C.D attribute-unchanged [as-path|next-hop|med]
1642
1643 (neighbor_default_originate): "default-originate" configuration
1644 announce default route even 0.0.0.0/0 does not exists in BGP RIB.
1645
16462001-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1647
1648 * zebra-0.92a released.
1649
16502001-08-19 Akihiro Mizutani <mizutani@dml.com>
1651
1652 * bgpd.c: AF specific soft-reconfiguration inbound commands are
1653 added.
1654
16552001-08-17 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1656
1657 * bgp_route.c (bgp_show_callback): Do not do community NULL check.
1658
1659 * bgp_community.c (community_cmp): Add check for commnunity NULL
1660 check.
1661
1662 * bgp_routemap.c (route_match_community): Do not check comunity is
1663 NULL. It may match to community-list "^$".
1664
1665 * bgp_community.c (community_match): Add check for community is
1666 NULL case.
1667
16682001-08-17 Akihiro Mizutani <mizutani@dml.com>
1669
1670 * bgpd.c: AF specific route-reflector-client and
1671 route-server-client configuration are added.
1672
16732001-08-17 Rick Payne <rickp@ayrnetworks.com>
1674
1675 * bgp_clist.c (community_match_regexp): Check special ^$ case.
1676
16772001-08-17 Akihiro Mizutani <mizutani@dml.com>
1678
1679 * bgp_clist.c (community_list_match): Fix bug of community list
1680 permit and deny check.
1681
16822001-08-16 Akihiro Mizutani <mizutani@dml.com>
1683
1684 * bgp_mplsvpn.c (bgp_mplsvpn_init): Add AF specific "nexthop-self"
1685 command.
1686
16872001-08-15 Akihiro Mizutani <mizutani@dml.com>
1688
1689 * bgpd.h (PEER_FLAG_SEND_COMMUNITY): Per AF based configuration
1690 flag is introduced.
1691
1692 * bgp_mplsvpn.c (bgp_mplsvpn_init): VPNv4 filtering is added.
1693
16942001-08-15 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1695
1696 * zebra-0.92 released.
1697
16982001-08-13 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1699
1700 * bgpd.c (bgp_delete): "no router bgp" free static, aggregate, rib
1701 table properly.
1702
17032001-08-12 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1704
1705 * bgp_route.c (bgp_node_safi): Return SAFI of current node.
1706 (bgp_config_write_network_vpnv4): VPNv4 static configuration
1707 display.
1708
17092001-08-11 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1710
1711 * bgpd.c (no_bgp_ipv4_multicast_route_map): Add IPv4 multicast
1712 node filter commands.
1713
17142001-08-11 Kunihiro Ishiguro <kunihiro@zebra.org>
1715
1716 * bgpd.h (PEER_FLAG_IGNORE_LINK_LOCAL_NEXTHOP): Add
1717 "ignore-link-local-nexthop" flag for ignore link-local nexthop for
1718 IPv6.
1719
17202001-08-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1721
1722 * bgpd.c (address_family_ipv4_multicast): "address-family ipv4
1723 multicast" is added.
1724 (address_family_ipv6_unicast): "address-family ipv6 unicast" is
1725 added.
1726
17272001-08-07 Akihiro Mizutani <mizutani@dml.com>
1728
1729 * bgp_route.c (bgp_process): Use flag instead of as_selected
1730 memeber in struct bgp_info.
1731
1732 * bgp_route.h (struct bgp_info): Remove as_selected memeber from
1733 struct bgp_info.
1734
17352001-07-31 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1736
1737 * bgp_route.c (bgp_announce_check): Enclose sending time AS loop
1738 check code with #ifdef BGP_SEND_ASPATH_CHECK.
1739
17402001-07-29 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1741
1742 * bgp_packet.c (bgp_withdraw_send): Simplify address family check.
1743
1744 * bgpd.h (BGP_INFO_HOLDDOWN): Introduce new macro to check BGP
1745 information is alive or not.
1746
1747 * bgp_community.c: Use community_val_get() on all OS.
1748
17492001-07-24 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1750
1751 * bgp_route.c (bgp_announce_check): Simplify set next-hop self
1752 check.
1753
17542001-07-24 Akihiro Mizutani <mizutani@dml.com>
1755
1756 * bgp_route.c (bgp_announce_check): To route server clients, we
1757 announce AS path, MED and nexthop transparently.
1758
17592001-06-21 Kunihiro Ishiguro <kunihiro@zebra.org>
1760
1761 * bgp_routemap.c (route_set_atomic_aggregate_free): Do not call
1762 XFREE. No memory is allocated in
1763 route_set_atomic_aggregate_compile().
1764
17652001-06-21 Kunihiro Ishiguro <kunihiro@zebra.org>
1766
1767 * bgp_routemap.c (bgp_route_map_init): `match nlri` and `set nlri`
1768 are replaced by `address-family ipv4` and `address-family vpnvr'.
1769
17702001-06-19 Kunihiro Ishiguro <kunihiro@zebra.org>
1771
1772 * bgp_route.c (bgp_withdraw): Add check for BGP_PEER_CONFED.
1773 Reported by Rick Payne <rickp@rossfell.co.uk>.
1774
17752001-06-17 Kunihiro Ishiguro <kunihiro@zebra.org>
1776
1777 * bgp_zebra.c (bgp_zebra_announce): When global IPv6 nexthop is
1778 empty, use socket's remote address for the nexthop.
1779
17802001-06-04 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1781
1782 * bgpd.c (peer_delete): Fix memory leak. Reported by Yosi Yarchi
1783 <Yosi_Yarchi@KereniX.com>
1784
17852001-06-01 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1786
1787 * bgpd.c (bgp_delete): Fix memory leak. Reported by Yosi Yarchi
1788 <Yosi_Yarchi@KereniX.com>
1789
17902001-05-27 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
1791
1792 * bgp_route.c (bgp_route_clear_with_afi_vpnv4): Use next instead
1793 of ri->next.
1794
1795 * bgp_packet.c (bgp_withdraw_send): MPLS/VPN withdraw takes effect
1796 when HAVE_IPV6 is not defined.
1797
17982001-03-07 "Akihiro Mizutani" <mizutani@dml.com>
1799
1800 * bgpd.c (peer_timers_set): Adjust keepalive timer to fit less
1801 than holdtime / 3.
1802 (bgp_confederation_peers_unset): Only set peer->local_as when
1803 confederation is enabled.
1804 (bgp_timers): Add "timers bgp <0-65535> <0-65535>" command.
1805
1806 * bgp_route.c (bgp_announce_check): Set med of redistributed route
1807 when it is announced to EBGP peer.
1808
18092001-03-06 "Akihiro Mizutani" <mizutani@dml.com>
1810
1811 * bgp_nexthop.c (bgp_scan_ipv4): bgp_scan() call bgp_process() for
1812 all prefixes.
1813
18142001-03-06 Kunihiro Ishiguro <kunihiro@zebra.org>
1815
1816 * bgp_attr.c (bgp_attr_origin): When bgpd send NOTIFICATION with
1817 erroneous attribute (type, length and value), it does include
1818 attribute flags field.
1819
18202001-02-21 "Akihiro Mizutani" <mizutani@dml.com>
1821
1822 * bgp_route.c (bgp_announce_check): The route reflector is not
1823 allowed to modify the attributes of the reflected IBGP routes.
1824
18252001-02-20 "Akihiro Mizutani" <mizutani@dml.com>
1826
1827 * bgp_route.c (bgp_info_cmp): During path seleciton, BGP
1828 confederation peer is treated as same as IBGP peer.
1829
18302001-02-19 Kunihiro Ishiguro <kunihiro@zebra.org>
1831
1832 * bgp_route.c (bgp_redistribute_add): Initialize attr_new with
1833 attr. Call aspath_unintern when return from this function.
1834
18352001-02-19 "Akihiro Mizutani" <mizutani@dml.com>
1836
1837 * bgpd.c (bgp_router_id_set): Reset BGP peer when router-id is
1838 changed.
1839
18402001-02-18 "Akihiro Mizutani" <mizutani@dml.com>
1841
1842 * bgp_packet.c (bgp_open_receive): When user configure holdtimer,
1843 do not refrect the value to current session.
1844
18452001-02-16 Kunihiro Ishiguro <kunihiro@zebra.org>
1846
1847 * bgp_route.c (bgp_aggregate_delete): Set BGP_INFO_ATTR_CHANGE to
1848 suppress route withdraw.
1849
1850 * bgp_damp.c (bgp_damp_init): Fix bug of flap dampening.
1851
18522001-02-16 "Akihiro Mizutani" <mizutani@dml.com>
1853
1854 * bgp_aspath.c (aspath_make_str_count): Use ',' for separator for
1855 AS_SET and AS_CONFED_SET.
1856
18572001-02-15 Kunihiro Ishiguro <kunihiro@zebra.org>
1858
1859 * bgp_route.c (bgp_process): Do not consider suppress route.
1860
1861 * bgp_aspath.c (aspath_aggregate_as_set_add): Reset asset when
1862 aspath->data is realloced.
1863
18642001-02-15 "Akihiro Mizutani" <mizutani@dml.com>
1865
1866 * bgp_attr.c (bgp_attr_aggregate_intern): Do not set atomic
1867 aggregate when using as-set.
1868
18692001-02-14 "Akihiro Mizutani" <mizutani@dml.com>
1870
1871 * bgpd.c (bgp_confederation_peers_unset): Set peer's local-as
1872 correctly.
1873
1874 * bgp_route.c (bgp_update): Just ignore AS path loop for
1875 confederation peer.
1876
18772001-02-10 Kunihiro Ishiguro <kunihiro@zebra.org>
1878
1879 * bgp_route.c (bgp_aggregate_set): Add as_set argument.
1880 (bgp_aggregate_unset): Remove summary_only argument.
1881 (aggregate_address_as_set): New commands.
1882 "aggregate-address A.B.C.D/M as-set"
1883 "no aggregate-address A.B.C.D/M as-set"
1884
18852001-02-08 "Akihiro Mizutani" <mizutani@dml.com>
1886
1887 * bgp_route.c (bgp_announce_check): Do not modify nexthop when the
1888 route is passed by route reflector.
1889
18902001-02-08 Kunihiro Ishiguro <kunihiro@zebra.org>
1891
1892 * bgp_route.c: "no bgp dampening" with argument.
1893 (bgp_announce_check): Do not modify nexthop when the route is
1894 passed by route reflector.
1895
18962001-02-07 "Akihiro Mizutani" <mizutani@dml.com>
1897
1898 * bgpd.c (neighbor_passive): Change "neighbor NEIGHBOR remote-as
1899 ASN passive" to "neighbor NEIGHBOR passive".
1900 (bgp_announce_check): Check well-known community attribute even
1901 when "no neighbor send-community" is set.
1902
19032001-02-03 Kunihiro Ishiguro <kunihiro@zebra.org>
1904
1905 * bgp_fsm.c (bgp_establish): Do not send keepalive at established
1906 time when keepalive timer is configured as zero.
1907
19082001-02-01 Kunihiro Ishiguro <kunihiro@zebra.org>
1909
1910 * bgp_attr.c (bgp_attr_check): When peer is IBGP peer, local
1911 preference is well-known attribute.
1912
19132001-01-30 Kunihiro Ishiguro <kunihiro@zebra.org>
1914
1915 * zebra-0.91 is released.
1916
1917 * bgp_attr.h (struct attr): Comment out DPA value.
1918 (struct attr): Change refcnt type from int to unsinged long.
1919
1920 * bgp_attr.c (attrhash_key_make): Likewise.
1921 (attrhash_cmp): Likewise.
1922 (bgp_attr_dpa): Likewise.
1923
19242001-01-30 "Akihiro Mizutani" <mizutani@dml.com>
1925
1926 * bgp_route.c (bgp_info_cmp): Make route selection completely same
1927 as Cisco's.
1928
19292001-01-30 Kunihiro Ishiguro <kunihiro@zebra.org>
1930
1931 * bgp_attr.h (BGP_ATTR_FLAG_OPTIONAL): Rename old ATTR_FLAG_* to
1932 BGP_ATTR_FLAG_* to clarify meenings.
1933
19342001-01-30 "Akihiro Mizutani" <mizutani@dml.com>
1935
1936 * bgp_route.c (route_vty_out): Display argument to suppress same
1937 prefix information display.
1938 (route_vty_out_route): Don't display mask information for
1939 classfull network.
1940
19412001-01-30 Kunihiro Ishiguro <kunihiro@zebra.org>
1942
1943 * bgp_attr.h (SET_BITMAP): Simple bitmapping macros.
1944
1945 * bgp_attr.c (bgp_attr_parse): Use bitmap for attribute type
1946 check.
1947
19482001-01-29 Kunihiro Ishiguro <kunihiro@zebra.org>
1949
1950 * bgp_attr.c (bgp_mp_reach_parse): Enclose loggin with BGP_DEBUG.
1951 (bgp_attr_parse): Comment out well-known attribute check.
1952
19532001-01-28 Kunihiro Ishiguro <kunihiro@zebra.org>
1954
1955 * bgp_route.c (bgp_static_unset): Link-local IPv6 address can't be
1956 used for network advertisement.
1957 (nlri_parse): When link-local IPv6 address NLRI comes from
1958 remote-peer, log the information then simply ignore it.
1959
1960 * bgp_zebra.c (zebra_read_ipv6): Link-local IPv6 address is not
1961 redistributed.
1962
1963 * bgp_route.c (bgp_update): Check IPv6 global nexthop
1964 reachability.
1965
19662001-01-26 Kunihiro Ishiguro <kunihiro@zebra.org>
1967
1968 * bgp_route.c (bgp_update): Check nexthop points local address or
1969 not.
1970 (bgp_static_update_vpnv4): Set valid flag.
1971
1972 * bgp_attr.c (bgp_attr_parse): Duplicate attribute check.
1973 (bgp_attr_parse): Well-known attribute check.
1974
1975 * bgp_open.c (bgp_auth_parse): Authentication is not yet supported.
1976
1977 * bgp_packet.c (bgp_valid_marker): Check marker is synchronized.
1978
1979 * bgpd.c (clear_bgp): Send NOTIFICATION Cease when SEND_CEASE is
1980 defined.
1981
1982 * bgp_snmp.c (bgp4PathAttrTable): Fix compile error.
1983
19842001-01-24 Kunihiro Ishiguro <kunihiro@zebra.org>
1985
1986 * bgpd.c (bgp_network_import_check): New command for IGP network
1987 check.
1988
19892001-01-23 Kunihiro Ishiguro <kunihiro@zebra.org>
1990
1991 * bgp_nexthop.c (bgp_scan): Run bgp_process when IGP metric is
1992 changed. Call bgp_process once for each node.
1993
19942001-01-23 "Akihiro Mizutani" <mizutani@dml.com>
1995
1996 * bgp_route.c (bgp_info_cmp): Add IGP metric comparison.
1997
19982001-01-23 Kunihiro Ishiguro <kunihiro@zebra.org>
1999
2000 * bgp_route.c (bgp_info_cmp): Add IGP metric comparison.
2001
2002 * bgp_nexthop.c (bgp_nexthop_lookup): Set IGP metric for valid
2003 IBGP route.
2004
20052001-01-23 "Akihiro Mizutani" <mizutani@dml.com>
2006
2007 * bgp_route.c (show_ip_bgp_prefix_longer): Add new commands.
2008 "show ip bgp A.B.C.D/M longer-prefixes"
2009 "show ip bgp ipv4 (unicast|multicast) A.B.C.D/M longer-prefixes"
2010 "show ipv6 bgp X:X::X:X/M longer-prefixes"
2011 "show ipv6 mbgp X:X::X:X/M longer-prefixes"
2012
20132001-01-20 "Akihiro Mizutani" <mizutani@dml.com>
2014
2015 * bgp_route.c (show_ip_bgp_cidr_only): Add new commands.
2016 "show ip bgp cidr-only"
2017 "show ip bgp ipv4 (unicast|multicast) cidr-only"
2018
20192001-01-18 "Akihiro Mizutani" <mizutani@dml.com>
2020
2021 * bgp_route.c (bgp_update): AS path lookup check is done in
2022 bgp_update() not in attr_parse().
2023
20242001-01-18 Kunihiro Ishiguro <kunihiro@zebra.org>
2025
2026 * bgp_route.c (bgp_update): Call bgp_aggregate_decrement() just
2027 before bgp_attr_unintern().
2028
20292001-01-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2030
2031 * bgp_route.c (bgp_update): Now intern is performed very last part
2032 of the BGP packet update procedure.
2033
20342001-01-17 "Akihiro Mizutani" <mizutani@dml.com>
2035
2036 * bgp_route.c (bgp_update): When implicit withdraw occur, reuse
2037 existing bgp_info structure.
2038
20392001-01-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2040
2041 * bgp_route.c (bgp_aggregate_decrement): Fix bug of aggregate
2042 address matching method.
2043 (bgp_update):
2044
2045 * bgp_nexthop.c (bgp_nexthop_onlink): Separate EBGP nexthop onlink
2046 check and IBGP nexthop route check.
2047
20482001-01-16 "Akihiro Mizutani" <mizutani@dml.com>
2049
2050 * bgp_route.h (BGP_INFO_ATRR_CHANGED): Added for track attribute
2051 change.
2052
20532001-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
2054
2055 * bgp_route.h (struct bgp_info): Remove selected flag. Use
2056 BGP_INFO_SELECTED for flags instead.
2057 (struct bgp_info): Remove valid flag. Use BGP_INFO_VALID for
2058 flags instead.
2059 (struct bgp_info): Add igpmetric for IBGP route nexthop IGP
2060 metric.
2061 (struct bgp_info_tab): Struct bgp_info_tag is integrated into
2062 struct bgp_info.
2063 (BGP_INFO_ATRR_CHANGED): Added for track attribute change.
2064
2065 * bgp_community.c (community_val_get): gcc-2.95 on
2066 sparc-sun-solaris cause crush. This function is for avoid the
2067 crush.
2068
20692001-01-15 Kunihiro Ishiguro <kunihiro@zebra.org>
2070
2071 * bgp_packet.c (bgp_open_receive): Translated peer's packet_size
2072 clear bug is fixed.
2073
20742001-01-14 "Akihiro Mizutani" <mizutani@dml.com>
2075
2076 * bgp_packet.c (bgp_open_receive): Return notification with
2077 supported version number.
2078
20792001-01-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2080
2081 * bgpd.c (bgp_show_summary): Display AS path and community
2082 entries. Suggested by: "Matt Ranney" <mjr@ranney.com>.
2083
2084 * bgp_packet.c (bgp_read_packet): Fix bug of unblocking BGP socket
2085 read. When BGP packet read is partial, we must get size and type
2086 from packet again.
2087
20882001-01-12 "Akihiro Mizutani" <mizutani@dml.com>
2089
2090 * bgp_route.c (bgp_update): Do not unset BGP_INFO_HISTORY flag.
2091 (bgp_update): When there is a history entry increment route count.
2092 (bgp_damp_set): Check BGP_CONFIG_DAMPENING flag.
2093
2094 * bgp_damp.c (bgp_damp_withdraw): Set status to
2095 BGP_DAMP_DISCONTINUE.
2096
20972001-01-11 Kunihiro Ishiguro <kunihiro@zebra.org>
2098
2099 * bgp_attr.c (bgp_mp_reach_parse): Fix warning code when second
2100 IPv6 nexthop is not link-local addresss.
2101
21022001-01-11 "Akihiro Mizutani" <mizutani@dml.com>
2103
2104 * bgp_damp.c (bgp_config_write_damp): Smart flap dampening
2105 configuration display.
2106 (bgp_damp_info_print): Display elapsed time from flap started.
2107
2108 * bgp_damp.h (struct bgp_damp_info): Add flap start time.
2109
2110 * bgpd.c (peer_create): Set last read time.
2111 (bgp_show_peer): Display last read time.
2112 (bgp_show_summary): Use BGP_CONFIG_DAMPENING flag to check
2113 configuration.
2114
2115 * bgpd.h (BGP_CONFIG_DAMPENING): Add new configuration option.
2116 (struct peer): Add last read time member.
2117 (BGP_VERSION_MP_4): Remove obsolete definition.
2118
21192001-01-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2120
2121 * bgp_nexthop.c: Remove OLD_RIB codes.
2122
2123 * bgp_route.c (bgp_process): Likewise.
2124
2125 * zebra-0.90 is released.
2126
2127 * bgp_route.h (BGP_INFO_HISTORY): Remove damped member from struct
2128 bgp_info. Instead of that use BGP_INFO_DAMPED flag.
2129 (struct bgp_info): Remove invalid member from struct bgp_info.
2130 Instead of that use BGP_INFO_HISTORY flag.
2131
21322001-01-10 "Akihiro Mizutani" <mizutani@dml.com>
2133
2134 * bgp_damp.c (bgp_damp_info_print): New function to display
2135 dampening status.
2136 (DEFAULT_HARF_LIFE): Define default value.
2137 (DEFAULT_REUSE): Likewise.
2138 (DEFAULT_SUPPRESS): Likewise.
2139 (bgp_config_write_damp): When config value is same as default
2140 value, simply display "bgp dampening" to configuration.
2141
2142 * bgp_damp.h (struct bgp_damp_info): Add flap member.
2143
2144 * bgp_route.h (struct bgp_info): Added for BGP flap dampening
2145 history status.
2146
21472001-01-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2148
2149 * bgp_nexthop.c (bgp_connected_add): Point-to-point connected
2150 address is properly handled.
2151 (bgp_connected_delete): Likewise.
2152
2153 * bgp_route.c (bgp_route_init): Turn off BGP Flap dampening code
2154 until it works fine.
2155
21562001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2157
2158 * bgpd.c (bgp_show_summary): Add BGP_VERSION_MP_4 case.
2159
2160 * bgp_route.c (bgp_update): When this is not damped route, clear
2161 ri pointer.
2162
21632001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2164
2165 * bgp_main.c: Add "-n" no_kernel option to not install route to
2166 kernel. Suggested by: "Matt Ranney" <mjr@ranney.com>
2167
21682001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2169
2170 * bgp_nexthop.c (bgp_connected_add): Revert point-to-point
2171 connected route patch. Reported by ruud@ruud.org (Ruud de Rooij)
2172
2173 * bgp_damp.c (bgp_config_write_damp): Add configuration display
2174 function.
2175
2176 * bgp_route.c (bgp_info_free): Set NULL to BGP dampening
2177 information when BGP info structure is freed.
2178 (bgp_info_cmp): Check damped flag.
2179 (bgp_announce_check): Damped route is not announced.
2180
21812001-01-09 "Akihiro Mizutani" <mizutani@dml.com>
2182
2183 * bgpd.c (neighbor_capability_route_refresh): Change "neighbor
2184 route-refresh" command to "neighbor capability route-refresh".
2185 (clear_bgp_soft_in): Change soft-reconfig method.
2186
2187 clear ip bgp <neighbor> soft in
2188 --------------------------------------
2189 Try stored cache first then route-refresh
2190
2191 clear ip bgp <neighbor> in
2192 ---------------------------------
2193 Try route-refresh first then try to use stored cache
2194
21952001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org>
2196
2197 * bgp_nexthop.c (bgp_connected_add): Check point-to-point
2198 connected route. Reported by ruud@ruud.org (Ruud de Rooij)
2199
22002001-01-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2201
2202 * bgp_nexthop.c (bgp_nexthop_lookup): When IBGP nexthop is
2203 changed, refresh it.
2204
22052001-01-04 Kunihiro Ishiguro <kunihiro@zebra.org>
2206
2207 * bgp_route.h (struct bgp_info_tag): Add as_selected to
2208 bgp_info_tag.
2209
22102001-01-03 Kunihiro Ishiguro <kunihiro@zebra.org>
2211
2212 * bgp_route.h (struct bgp_info_tag): Add damped and bgp_damp_info
2213 member for BGP flap dampening.
2214
2215 * bgp_damp.c: New file is added.
2216
2217 * bgp_damp.h: Likewise.
2218
22192001-01-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2220
2221 * bgpd.h (BGP_VTYSH_PATH): Change "/tmp/bgpd" to "/tmp/.bgpd".
2222
22232000-12-29 Kunihiro Ishiguro <kunihiro@zebra.org>
2224
2225 * bgp_nexthop.c (zlookup_connect): Change to use UNIX domain
2226 socket for zebra communication.
2227
22282000-12-29 Akihiro Mizutani <mizutani@dml.com>
2229
2230 * bgp_route.c (bgp_process): Fix "bgp deterministic-med" process.
2231
22322000-12-27 Akihiro Mizutani <mizutani@dml.com>
2233
2234 * bgp_route.c (bgp_process): Add "bgp deterministic-med" process.
2235
22362000-12-25 Akihiro Mizutani <mizutani@dml.com>
2237
2238 * bgp_route.c (bgp_info_cmp): Use ntohl comparing router ID.
2239
22402000-12-18 Akihiro Mizutani <mizutani@dml.com>
2241
2242 * bgp_route.c (bgp_info_cmp): When over three same prefix exit,
2243 withdrawing best prefix perform router ID comparison.
2244
22452000-12-15 Akihiro Mizutani <mizutani@dml.com>
2246
2247 * bgp_route.c (bgp_info_cmp): Do not compare router ID when the
2248 routes comes from EBGP peer. When originator ID is same, take
2249 shorter cluster-list route. If cluster-list is same take smaller
2250 IP address neighbor's route.
2251
2252 * bgpd.c (bgp_bestpath_aspath_ignore): Add "bgp bestpath as-path
2253 ignore" command. When this option is set, do not concider AS path
2254 length when route selection.
2255 (bgp_bestpath_compare_router_id): Add "bgp bestpath
2256 compare-routerid". When this option is set, compare router ID
2257 when the routes comes from EBGP peer.
2258
22592000-12-15 Akihiro Mizutani <mizutani@dml.com>
2260
2261 * bgp_route.c (bgp_info_cmp): Compare originator ID when it is
2262 available.
2263
22642000-12-14 Akihiro Mizutani <mizutani@dml.com>
2265
2266 * bgp_packet.c (bgp_notify_receive): Disply received Notify data
2267 information.
2268
22692000-12-14 Kunihiro Ishiguro <kunihiro@zebra.org>
2270
2271 * bgp_filter.c (as_filter_free): Use MTYPE_AS_FILTER_STR to make
2272 it sure the memory is freed.
2273
2274 * bgp_route.c (route_vty_out_detail): Do not use AF_INET6 outside
2275 HAVE_IPV6.
2276
22772000-12-08 Akihiro Mizutani <mizutani@dml.com>
2278
2279 * bgp_packet.c (bgp_notify_send_with_data): Store BGP notification
2280 data part.
2281
2282 * bgp_network.c (bgp_accept): When BGP connection comes from
2283 unconfigured IP address, close socket immediately.
2284
2285 * bgpd.c: Fix some display format.
2286
22872000-11-29 Kunihiro Ishiguro <kunihiro@zebra.org>
2288
2289 * bgp_packet.c (bgp_keepalive_send): Delete duplicate
2290 bgp_packet_set_size () call.
2291
22922000-11-28 Kunihiro Ishiguro <kunihiro@zebra.org>
2293
2294 * bgp_packet.c (bgp_read_packet): Remove debug codes.
2295
22962000-11-27 Kunihiro Ishiguro <kunihiro@zebra.org>
2297
2298 * bgp_snmp.c (write_bgpPeerTable): Add SNMP set method routine.
2299
2300 * bgp_fsm.c (bgp_stop): Use fsm_change_status to change peer's
2301 status.
2302 (bgp_establish): Likewise.
2303
23042000-11-26 Akihiro Mizutani <mizutani@dml.com>
2305
2306 * bgp_open.c: Fix error messages.
2307
23082000-11-25 Kunihiro Ishiguro <kunihiro@zebra.org>
2309
2310 * bgp_fsm.c (bgp_establish): Call BGP trap when the peer is
2311 established.
2312 (bgp_stop): Call BGP trap when the peer is dropped.
2313
23142000-11-24 Kunihiro Ishiguro <kunihiro@zebra.org>
2315
2316 * bgp_snmp.c (bgp4PathAttrTable): Return BGP path attribute table.
2317
2318 * bgpd.h (struct peer): Add update_time for track last update
2319 received time.
2320
2321 * bgp_packet.c (bgp_notify_receive): Preserv notify code and sub
2322 code in any case.
2323
2324 * bgp_snmp.c (bgpPeerTable): Return remote router ID instead of
2325 peering IP address.
2326 (bgpPeerTable): Return actual BGP version number.
2327
23282000-11-22 Akihiro Mizutani <mizutani@dml.com>
2329
2330 * bgp_debug.c (bgp_notify_print): Notify data length display bug
2331 is fixed.
2332
23332000-11-16 Kunihiro Ishiguro <kunihiro@zebra.org>
2334
2335 * bgp_nexthop.c (zlookup_connect): When UNIX domain connection to
2336 zebra is enabled, use the method.
2337
23382000-11-16 Akihiro Mizutani <mizutani@dml.com>
2339
2340 * bgpd.c: Revise debug message output.
2341
23422000-11-15 Akihiro Mizutani <mizutani@dml.com>
2343
2344 * bgp_clist.c (ip_community_list): Fix bug of string comparison.
2345
23462000-11-14 Akihiro Mizutani <mizutani@dml.com>
2347
2348 * bgp_community.c (community_match): Fix bug of memcmp return
2349 value check.
2350
23512000-11-07 Kunihiro Ishiguro <kunihiro@zebra.org>
2352
2353 * bgp_clist.c (community_list_match_exact): Add check for
2354 entry->style is COMMUNITY_LIST.
2355 (community_match_regexp): Apply new com_nthval macro.
2356
23572000-11-07 Rick Payne <rickp@rossfell.co.uk>
2358
2359 * bgp_routemap.c (route_set_community_delete): "set
2360 community-delete COMMUNITY-LIST" is added.
2361
2362 * bgp_community.c (community_del_val): Delete one community.
2363 (community_delete): Delete all community included in list.
2364 (community_match): Fix bug of matching community value.
2365
2366 * bgp_clist.c (community_entry_free): Free community regular
2367 expression.
2368 (community_entry_make): Default style is COMMUNITY_LIST.
2369 (community_entry_lookup): Make it sure style is COMMUNITY_LIST.
2370 (community_entry_regexp_lookup): New function for community
2371 regular expression lookup.
2372 (community_match_regexp): New function.
2373 (community_delete_regexp): New function.
2374 (community_list_delete_entries): New function.
2375 (community_list_match): Add COMMUNITY_REGEXP treatment.
2376 (community_list_match_exact): Likewise.
2377 (config_write_community): Write community list according to
2378 entry->style.
2379
23802000-11-07 Rick Payne <rickp@rossfell.co.uk>
2381
2382 * bgp_attr.c (bgp_attr_aspath): AS path first AS check.
2383
2384 * bgp_clist.c (struct community_entry): Add style, regexp, reg to
2385 community_entry.
2386
23872000-11-06 Rick Payne <rickp@rossfell.co.uk>
2388
2389 * bgp_aspath.c (aspath_firstas_check): AS path first AS check.
2390
2391 * bgpd.c (bgp_enforce_first_as): New command "bgp
2392 enforce-first-as".
2393
2394 * bgpd.h (BGP_CONFIG_ENFORCE_FIRST_AS): Add new flag.
2395
23962000-11-06 Kunihiro Ishiguro <kunihiro@zebra.org>
2397
2398 * bgp_community.c (community_compare): Copy byte stream data to
2399 actual value instead of using type casting hack.
2400 (community_add_val): Likewise.
2401 (community_uniq_sort): Likewise.
2402 (community_print): Likewise.
2403 (community_print_vty): Likewise.
2404 (community_include): Use memcmp to compare community value.
2405
2406 * bgp_community.h (com_lastval): com_lastval and com_nthval macro
2407 return pointer.
2408
24092000-11-06 Akihiro Mizutani <mizutani@dml.com>
2410
2411 * bgpd.h (struct peer): Add established and dropped member for
2412 count peering up/down statistics.
2413
2414 * bgpd.c (bgp_show_peer): Display peering up/down statistics.
2415
2416 * bgp_fsm.c (bgp_establish): Increment established count.
2417 (bgp_stop): Increment dropped count.
2418
2419 * bgp_packet.c (bgp_notify_receive): Increament notify count.
2420
24212000-11-1 Akihiro Mizutani <mizutani@dml.com>
2422
2423 * bgp_fsm.c: Fix bug of holdtimer is not reset when bgp cleared.
2424
24252000-10-31 Kunihiro Ishiguro <kunihiro@zebra.org>
2426
2427 * bgpd.h: Static bit flag is set by (1 << DIGIT).
2428
24292000-10-24 Akihiro Mizutani <mizutani@dml.com>
2430
2431 * bgp_ecommunity.c (ecommunity_dup): Extended community display
2432 format fix.
2433
24342000-10-24 Arkadiusz Miskiewicz <misiek@pld.org.pl>
2435
2436 * bgp_network.c (bgp_serv_sock_addrinfo): Use gai_strerror.
2437 (bgp_serv_sock_addrinfo): Check address family.
2438
24392000-10-23 Jochen Friedrich <jochen@scram.de>
2440
2441 * bgp_snmp.c: bgp_oid and bgpd_oid are used in smux_open after it
2442 is registered. So those variables must be static.
2443
24442000-10-23 Akihiro Mizutani <mizutani@dml.com>
2445
2446 * bgp_routemap.c (route_match_ip_next_hop): Change "match ip
2447 next-hop" argument from IP address to access-list name.
2448 Remove zebra-0.88 compatibility commands.
2449 "match ip prefix-list WORD"
2450 "match ipv6 prefix-list WORD"
2451
24522000-10-23 Kunihiro Ishiguro <kunihiro@zebra.org>
2453
2454 * bgp_routemap.c (route_match_ipv6_next_hop_compile): Fix bug of
2455 passing the pointer to the pointer of struct in6_addr instead of
2456 the pointer of struct in6_addr in "match ipv6 next-hop" command.
2457
2458 * bgp_route.c (bgp_announce_check): Enclose IPv6 part with
2459 HAVE_IPV6.
2460
24612000-10-20 Jasper Wallace <jasper@ivision.co.uk>
2462
2463 * bgp_snmp.c (bgpPeerTable): ntohs missing bug is fixed. Change
2464 to use linklist.c. Define COUNTER32 as ASN_COUNTER.
2465
24662000-10-18 Kunihiro Ishiguro <kunihiro@zebra.org>
2467
2468 * bgp_route.c (bgp_announce_check): attr->nexthop empty check
2469 should be done by attr->nexthop.s_addr instead of strcmp.
2470
24712000-10-18 Akihiro Mizutani <mizutani@dml.com>
2472
2473 * bgp_zebra.c (zebra_read_ipv4): Pass nexthop value to
2474 bgp_redistribute_add().
2475
2476 * bgp_nexthop.c (bgp_multiaccess_check_v4): New function for
2477 checking IPv4 multiaccess nexthop.
2478
2479 * bgp_route.c (bgp_announce_check): In case of the nexthop is
2480 reachable on multiaccess media, do not change nexthop.
2481 (bgp_redistribute_add): Set nexthop when the value is passed.
2482
24832000-10-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2484
2485 * bgp_fsm.c (bgp_timer_set): If peer is passive mode, do not set
2486 connect timer.
2487 (bgp_start): If the peer is passive mode, force to move to Active
2488 mode.
2489
24902000-10-17 Horms <horms@vergenet.net>
2491
2492 * bgp_debug.c (debug_bgp_fsm): Fix typo.
2493
24942000-10-17 Akihiro Mizutani <mizutani@dml.com>
2495
2496 * bgp_route.c: "show ipv6 bgp" route display improvement.
2497
24982000-10-03 Kunihiro Ishiguro <kunihiro@zebra.org>
2499
2500 * bgp_route.c (neighbor_routes): Allocate sockunion for callback
2501 function.
2502 (bgp_show_neighbor_route): Remove static declaration for union
2503 sockunion.
2504
2505 * bgpd.c (peer_update_source_set): Clean previously allocated
2506 memory before allocate new one.
2507
25082000-10-03 Akihiro Mizutani <mizutani@dml.com>
2509
2510 * bgp_route.c (neighbor_routes): Add show neighbor's routes
2511 command.
2512 "show ip bgp neighbors (A.B.C.D|X:X::X:X) routes"
2513 "show ip bgp ipv4 (unicast|multicast) neighbors (A.B.C.D|X:X::X:X) routes"
2514 "show ipv6 bgp neighbors (A.B.C.D|X:X::X:X) routes"
2515 "show ipv6 mbgp neighbors (A.B.C.D|X:X::X:X) routes"
2516
25172000-10-02 Kunihiro Ishiguro <kunihiro@zebra.org>
2518
2519 * zebra-0.89 is released.
2520
25212000-10-02 Akihiro Mizutani <mizutani@dml.com>
2522
2523 * bgpd.c: "bgp deterministic-med" command is added.
2524
25252000-10-02 Kunihiro Ishiguro <kunihiro@zebra.org>
2526
2527 * bgp_nexthop.c (bgp_connected_add): Apply mask for connected
2528 route addition and deletion.
2529
25302000-09-29 Kunihiro Ishiguro <kunihiro@zebra.org>
2531
2532 * bgp_aspath.c (aspath_cmp_left): Skip confederation AS segment
2533 when comparing leftmost AS number.
2534
25352000-09-29 Akihiro Mizutani <mizutani@dml.com>
2536
2537 * bgpd.c (peer_route_reflector): Route reflector can be set for
2538 IBGP peer.
2539 (bgp_distribute_set): Fix bug of string check for (in|out).
2540 (bgp_show_summary): Display total neighbor count.
2541
25422000-09-28 Akihiro Mizutani <mizutani@dml.com>
2543
2544 * bgp_attr.c (bgp_packet_attribute): Only add cluster_list and
2545 originator for clinet to client routes.
2546 (bgp_packet_attribute): Add new cluster_list to the beginning of
2547 existing cluster_list.
2548 (bgp_packet_attribute): Fix bug of originator is rewritten even
2549 when originator is already set.
2550
25512000-09-27 Kunihiro Ishiguro <kunihiro@zebra.org>
2552
2553 * bgpd.c (bgp_client_to_client_reflection): Add new command.
2554 "no bgp client-to-client reflection"
2555 "bgp client-to-client reflection"
2556
2557 * bgpd.h (BGP_CONFIG_NO_CLIENT_TO_CLIENT): Add new definition.
2558
25592000-09-26 Kunihiro Ishiguro <kunihiro@zebra.org>
2560
2561 * bgp_packet.c (bgp_read): Make BGP packet read to non-blocking
2562 read.
2563 (bgp_read_packet): Likewise.
2564 (bgp_read_packet): When errono is EAGAIN, try to read it again.
2565
2566 * bgp_fsm.c (bgp_stop): Clear packet size and read buffer.
2567
25682000-09-26 Akihiro Mizutani <mizutani@dml.com>
2569
2570 * bgp_routemap.c: Configuration of prefix-list match is shown as
2571 "match ip address prefix-list <WORD>". Old configuration "match
2572 ip prefix-list <WORD>" is left for compatibilitty.
2573
25742000-09-25 Akihiro Mizutani <mizutani@dml.com>
2575
2576 * bgpd.h (BGP_CONFIG_MED_MISSING_AS_WORST): Changed from
2577 BGP_CONFIG_MISSING_AS_WORST.
2578
2579 * bgpd.c (bgp_bestpath_med): Change missing-as-worst syntax.
2580 Old "bgp bestpath missing-as-worst"
2581 New "bgp bestpath med missing-as-worst"
2582
25832000-09-24 Akihiro Mizutani <mizutani@dml.com>
2584
2585 * bgp_route.c: Compare MED properly in case of CONFED-IBGP.
2586
25872000-09-21 steve@Watt.COM (Steve Watt)
2588
2589 * bgp_debug.h: Do not declare debug variables conf_bgp_debug_* and
2590 term_bgp_debug_*.
2591
2592 * bgp_debug.c: Declare variables here.
2593
25942000-09-21 Akihiro Mizutani <mizutani@dml.com>
2595
2596 * bgpd.c: MBGP soft-reconfiguration command is added.
2597 clear ip bgp x.x.x.x ipv4 (unicast|multicast) in
2598 clear ip bgp x.x.x.x ipv4 (unicast|multicast) out
2599 clear ip bgp x.x.x.x ipv4 (unicast|multicast) soft
2600 clear ip bgp <1-65535> ipv4 (unicast|multicast) in
2601 clear ip bgp <1-65535> ipv4 (unicast|multicast) out
2602 clear ip bgp <1-65535> ipv4 (unicast|multicast) soft
2603 clear ip bgp * ipv4 (unicast|multicast) in
2604 clear ip bgp * ipv4 (unicast|multicast) out
2605 clear ip bgp * ipv4 (unicast|multicast) soft
2606
2607 Change "clear ip bgp vpnv4 x.x.x.x soft" command to
2608 "clear ip bgp x.x.x.x vpnv4 unicast soft".
2609
2610 "bgp bestpath med confed" command is added.
2611
2612 * bgpd.h (BGP_CONFIG_MED_CONFED): Add New definition.
2613
26142000-09-18 Rick Payne <rickp@rossfell.co.uk>
2615
2616 * bgpd.c (bgp_show_peer): Fix misplaced #endif.
2617
26182000-09-12 Akihiro Mizutani <mizutani@dml.com>
2619
2620 * bgpd.c (bgp_default_local_preference): Add "bgp default
2621 local-preference" command.
2622
2623 * bgp_nexthop.c (no_bgp_scan_time): Add "no bgp scan-time"
2624 command.
2625
26262000-09-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2627
2628 * bgp_zebra.c (bgp_zebra_announce): BGP confederation peer's routes
2629 are passed to zebra like IBGP route.
2630
26312000-09-10 Akihiro Mizutani <mizutani@dml.com>
2632
2633 * bgpd.c (bgp_config_write_peer): Make it consistent passive
2634 configuration.
2635
2636 * bgp_route.c: Community match command is added.
2637 "show ip bgp community <val>"
2638 "show ip bgp community <val> exact-match"
2639
26402000-09-08 Kunihiro Ishiguro <kunihiro@zebra.org>
2641
2642 * bgp_nexthop.c (bgp_nexthop_lookup): ebgp-multihop routes are
2643 treated as IBGP routes.
2644
26452000-09-08 Akihiro Mizutani <mizutani@dml.com>
2646
2647 * bgp_route.c (bgp_show_route): When local-AS community route is
2648 selected, display "not advertised outside local AS" to "show ip
2649 route A.B.C.D" output.
2650 (show_ip_bgp_ipv4_filter_list): Add below four commands.
2651 "show ip bgp ipv4 (unicast|multicast) filter-list WORD"
2652 "show ip bgp ipv4 (unicast|multicast) community"
2653 "show ip bgp ipv4 (unicast|multicast) community-list WORD"
2654 "show ip bgp ipv4 (unicast|multicast) community-list WORD exact-match"
2655
2656 * bgp_clist.c (community_list_match_exact): Community exact match
2657 function.
2658
26592000-09-07 Kunihiro Ishiguro <kunihiro@zebra.org>
2660
2661 * bgp_route.c (bgp_update): Add peer's ttl check.
2662
2663 * bgpd.h (struct peer): Structure member refresh is renamed to
2664 refresh_adv.
2665
2666 * bgpd.c (clear_bgp_soft_in): Check PEER_FLAG_ROUTE_REFRESH flag
2667 when soft reconfiguration is performed.
2668
2669 * bgp_zebra.c (bgp_zebra_announce): When the peer is EBGP and
2670 ebgp-multiphop is set, set ZEBRA_FLAG_INTERNAL for nexthop lookup.
2671
2672 * bgp_route.h (struct bgp_info_tag): Add valid flag.
2673
26742000-08-25 Akihiro Mizutani <mizutani@dml.com>
2675
2676 * bgpd.c: Add AS base BGP soft reconfiguration.
2677
2678 * bgp_route.c: When no-advertise or no-export route is selected,
2679 "show ip bgp" display "not advertised to EBGP peer" or "not
2680 advertised to any peer" message.
2681
26822000-08-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2683
2684 * zebra-0.88 is released.
2685
2686 * bgp_dump.c (dump_bgp_routes): Change "dump bgp routes" to "dump
2687 bgp route-mrt" to support MRT specific dump format.
2688
2689 * bgpd.c (bgp_init): "clear ip bgp vpnv4 soft {in,out}" command is
2690 added.
2691
2692 * bgp_route.c (bgp_update): Currently nexthop check is only works
2693 for IPv4.
2694
26952000-08-17 Akihiro Mizutani <mizutani@dml.com>
2696
2697 * bgpd. (clear_ip_bgp_all_soft): Add "clear ip bgp * soft" for
2698 both inbound and outbound soft reconfiguration.
2699
27002000-08-17 Kunihiro Ishiguro <kunihiro@zebra.org>
2701
2702 * bgpd.c (clear_ip_bgp_peer_soft_out): Add soft-reconfiguration
2703 outbound.
2704 (peer_new): Set route-refresh flag.
2705
27062000-08-16 Akihiro Mizutani <mizutani@dml.com>
2707
2708 * bgpd.c: "no bgp router-id A.B.C.D" alias is added. "no bgp
2709 cluster-id A.B.C.D" alias is added. " bgp cluster-id
2710 <1-4294967295>" alias is added. "clear ip bgp * soft in" command
2711 is added. "clear ip bgp A.B.C.D in" alias is added. "clear ip
2712 bgp * in" alias is added.
2713
27142000-08-16 Kunihiro Ishiguro <kunihiro@zebra.org>
2715
2716 * bgp_route.c (bgp_update): Add soft_reconfig flag. When the flag
2717 is set do not install the route into Adj-RIBs-In.
2718 (bgp_update): Perform implicit withdraw before filtering of the
2719 route.
2720
2721 * bgp_packet.c (bgp_read): draft-ietf-idr-bgp-route-refresh-01.txt
2722 capability code and BGP message can be accepted.
2723
2724 * bgp_open.c (bgp_capability_parse): Likewise.
2725
2726 * bgp_route.c (bgp_refresh_table): New function for route refresh.
2727 (bgp_refresh_rib): Likewise.
2728
2729 * bgpd.c (bgp_show_peer): Display route refresh status.
2730
2731 * bgp_route.c (bgp_aggregate_add): Add check for the route
2732 validness.
2733 (bgp_aggregate_delete): Likewise.
2734
27352000-08-15 Kunihiro Ishiguro <kunihiro@zebra.org>
2736
2737 * bgp_nexthop.c (bgp_scan): Care for aggregate route when the
2738 route become inaccessible.
2739
27402000-08-15 Akihiro Mizutani <mizutani@dml.com>
2741
2742 * bgp_route.c (show_ip_bgp_prefix): "show ip bgp A.B.C.D/M"
2743 command is added.
2744
27452000-08-15 Kunihiro Ishiguro <kunihiro@zebra.org>
2746
2747 * bgp_zebra.c (bgp_interface_up): Register connected route.
2748 (bgp_interface_down): Unregister connected route.
2749
27502000-08-14 Kunihiro Ishiguro <kunihiro@zebra.org>
2751
2752 * bgp_route.h (struct bgp_info): Add distance to the structure.
2753
2754 * bgp_route.c (bgp_aggregate_increment): Aggregate route only
2755 match to smaller prefixlen route not match same prefixlen route.
2756 (bgp_aggregate_decrement): Likewise.
2757 (bgp_aggregate_add): Likewise.
2758 (bgp_aggregate_delete): Likewise.
2759 (bgp_network_backdoor): Add backdoor network configuration.
2760
2761 * bgpd.h (struct bgp ): Add distance_{ebgp,ibgp,local} for store
2762 configuration distance value.
2763
2764 * bgp_route.c (bgp_update): Filter EBGP route which has non
2765 connected nexthop.
2766
2767 * bgp_attr.c (bgp_attr_aggregate_intern): New function for
2768 aggregate route. Set origin to IGP. Set atomic aggregate flag.
2769 Set aggregator AS and address.
2770 (bgp_attr_aggregate_intern): Check BGP_CONFIG_CONFEDERATION when
2771 filling aggregator_as.
2772
2773 * bgp_route.c (bgp_process): Delete suppress check for install
2774 suppressed route into local routing table.
2775 (bgp_aggregate_increment): Use bgp_attr_aggregate_intern() instead
2776 of bgp_attr_default_intern ().
2777 (bgp_aggregate_add): Likewise.
2778
2779 * bgpd.c (bgp_get): Call bgp_if_update_all() after BGP instance is
2780 created. This is for avoid 0.0.0.0 router-id.
2781
27822000-08-13 Akihiro Mizutani <mizutani@dml.com>
2783
2784 * bgp_route.c (route_vty_out_detail): Display "valid" when the
2785 route is valied. Display "aggregated" when the route is
2786 aggregated. "Advertisements suppressed by an aggregate" is
2787 displayed when the route is suppressed.
2788 (bgp_info_cmp): Prefer EBGP than Confed-EBGP.
2789
27902000-08-10 Akihiro Mizutani <mizutani@dml.com>
2791
2792 * bgp_route.c (route_vty_out_detail): Display format change.
2793
27942000-08-06 Kunihiro Ishiguro <kunihiro@zebra.org>
2795
2796 * bgp_route.c (bgp_update): Only AFI_IP nexthop check is enabled.
2797
2798 * bgpd.c (bgp_delete): Delete static route before delete peer
2799 configuration.
2800
28012000-08-02 Kunihiro Ishiguro <kunihiro@zebra.org>
2802
2803 * bgpd.c: Include bgpd/bgp_nexthop.h.
2804
28052000-07-31 Akihiro Mizutani <mizutani@dml.com>
2806
2807 * bgpd.c (bgp_show_summary): "show ip bgp summary" shows own BGP
2808 identifier. And status is changed like below.
2809
2810 State/Pref -> State/PfxRcd
2811 Shutdown -> Idle (Admin)
2812 PrefixOvflw -> Idle (PfxCt)
2813
2814 * bgp_route.c (route_vty_out): Show internal route as "i".
2815
28162000-07-13 Jim Bowen <jimb@zereau.net>
2817
2818 * bgp_snmp.c: Add BGP peer MIB implementation.
2819
28202000-07-12 Akihiro Mizutani <mizutani@dml.com>
2821
2822 * bgpd.c (bgp_show_peer): Fix typo.
2823
28242000-07-11 Akihiro Mizutani <mizutani@dml.com>
2825
2826 * bgp_routemap.c: Add commands for deleting set without argument.
2827
28282000-07-03 Akihiro Mizutani <mizutani@dml.com>
2829
2830 * bgp_zebra.c: Fix redistribute help strings.
2831
28322000-07-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2833
2834 * bgp_route.c (bgp_show): When bgpd works as vtysh server send all
2835 output to vty at once.
2836
28372000-06-13 Kunihiro Ishiguro <kunihiro@zebra.org>
2838
2839 * bgp_mplsvpn.c (no_vpnv4_network): "no network A.B.C.D/M rd WORD
2840 tag WORD" command is added.
2841
2842 * bgp_ecommunity.c (ecommunity_vty_out): New function added.
2843
28442000-06-12 Kunihiro Ishiguro <kunihiro@zebra.org>
2845
2846 * bgp_route.c (bgp_show): Fix total number of prefix count bug.
2847
2848 * bgpd.c (bgp_show_peer): Display VPNv4 unicast configuration and
2849 negotiation result in "show ip bgp neighbors".
2850
28512000-06-12 Akihiro Mizutani <mizutani@dml.com>
2852
2853 * bgpd.c: Fix help strings.
2854
2855 * bgpd.h: Likewise.
2856
28572000-06-11 Kunihiro Ishiguro <kunihiro@zebra.org>
2858
2859 * bgp_route.c (bgp_aggregate_unset): Fix bug of checking rn->info
2860 instead of rn. Reported by Akihiro Mizutani <mizutani@dml.com>.
2861
2862 * bgp_mplsvpn.c (vpnv4_network): For testing purpose, "network
2863 A.B.C.D rd RD" is added to address-family vpnv4 unicast node.
2864
2865 * bgp_route.c (bgp_static_set): Set safi to p.safi.
2866
28672000-06-10 Kunihiro Ishiguro <kunihiro@zebra.org>
2868
2869 * bgp_route.c (bgp_show_prefix_list): Change to use bgp_show().
2870 (bgp_show_regexp): Change to use bgp_show().
2871 (show_adj_route): Change to display header.
2872
2873 * bgpd.c (clear_bgp): Set peer->v_start to default value when peer
2874 is cleared manually.
2875
2876 * bgp_route.c (bgp_show_route): New function which display
2877 specific BGP route. Divided from bgp_show().
2878 (bgp_static_delete): Delete all static route.
2879
28802000-06-09 NOGUCHI Kay <kay@v6.access.co.jp>
2881
2882 * bgp_route.c (show_ipv6_bgp): "show ipv6 bgp" is broken with
2883 invalid privious fix. Now show_ipv6_bgp and show_ipv6_bgp_route
2884 take care of "show ipv6 bgp [X:X::X:X]". Same change for "show ip
2885 mbgp" and "show ipv6 mbgp".
2886
28872000-06-07 Akihiro Mizutani <mizutani@dml.com>
2888
2889 * bgp_route.c: Fix help strings and command arguments.
2890
28912000-06-06 Kunihiro Ishiguro <kunihiro@zebra.org>
2892
2893 * bgp_ecommunity.c: Include prefix.h
2894
28952000-06-05 Kunihiro Ishiguro <kunihiro@zebra.org>
2896
2897 * bgp_route.h (struct bgp_info_tag): New structure to hold tag
2898 value.
2899
2900 * bgp_route.c (bgp_adj_set): table NULL check is added.
2901 (bgp_adj_unset): Likewise.
2902 (bgp_adj_lookup): Likewise.
2903 (bgp_adj_clear): Likewise.
2904 (route_vty_out): Add SAFI check for nexthop display.
2905 (bgp_withdraw): Add SAFI check for withdraw route.
2906
2907 * Remove all #ifdef MPLS_VPN then include it as default.
2908
2909 * bgpd.c: Temporary disable peer-group command until the
2910 implementation is completed.
2911
2912 * bgp_routemap.c (bgp_route_map_init): Install
2913 route_metric_match_cmd.
2914 (route_match_metric_compile): MED value compile using strtoul.
2915
29162000-06-05 Akihiro Mizutani <mizutani@dml.com>
2917
2918 * bgp_filter.c: Fix help strings. Change REGEXP to LINE. Change
2919 NAME to WORD.
2920
2921 * Change command argument to more comprehensive.
2922
2923 METRIC -> <0-4294967295>
2924 WEIGHT -> <0-4294967295>
2925 LOCAL_PREF -> <0-4294967295>
2926 IP_ADDR -> A.B.C.D
2927 AS -> <1-65535>
2928 AS-PATH-NAME -> WORD
2929 ACCESS_LIST -> WORD
2930 PREFIX_LIST -> WORD
2931 COMMUNITY -> AA:NN
2932 EXT_COMMUNITY -> ASN:nn_or_IP-address:nn
2933 IPv6_ADDR -> X:X::X:X
2934
2935 * bgp_clist.c: Fix help strings.
2936
29372000-06-03 Kunihiro Ishiguro <kunihiro@zebra.org>
2938
2939 * bgpd.c (peer_active): Add new function for check the peer is
2940 active or not.
2941 (neighbor_activate): New command "neighbor PEER activate" and "no
2942 neighbor PEER activate" are added.
2943
2944 * bgp_packet.c: Include bgpd/bgp_mplsvpn.h.
2945
29462000-06-02 Akihiro Mizutani <mizutani@dml.com>
2947
2948 * bgp_clist.c: Fix commuity-list help strings.
2949
2950 * bgp_routemap.c: Fix "set community" help strings. Add #define
2951 SET_STR. Use (unicast|multicast) argument for "set nlri" command.
2952
29532000-06-01 Kunihiro Ishiguro <kunihiro@zebra.org>
2954
2955 * bgp_routemap.c (route_set_community_none_cmd): "set community
2956 none" command is added to route-map.
2957
29582000-06-01 Akihiro Mizutani <mizutani@dml.com>
2959
2960 * bgp_debug.c: Change "show debug" to "show debugging". Now "show
2961 debugging" is not used in VIEW_NODE.
2962
29632000-05-30 Kunihiro Ishiguro <kunihiro@zebra.org>
2964
2965 * bgp_fsm.c (bgp_timer_set): Add check for shutdown flag. This
2966 fix unconditional BGP connection.
2967
2968 * bgpd.c (peer_shutdown): Replace peer_shutdown() with
2969 peer_change_flag_with_reset().
2970
29712000-05-26 Kunihiro Ishiguro <kunihiro@zebra.org>
2972
2973 * bgpd.c (no_bgp_default_ipv4_unicast): Add "no bgp default
2974 ipv4-unicast" command.
2975
2976 * bgpd.h (BGP_CONFIG_NO_DEFAULT_IPV4): Add new definition.
2977
2978 * bgp_filter.c (as_list_delete): Free all AS filter.
2979
2980 * bgp_clist.c (community_list_delete): Free all community entry.
2981
2982 * bgp_filter.c (no_ip_as_path_all): New DEFUN for "no ip as-path
2983 access-list NAME".
2984
2985 * bgp_clist.c (no_ip_community_list_all): New DEFUN for "no ip
2986 community-list NAME".
2987
29882000-05-19 Kunihiro Ishiguro <kunihiro@zebra.org>
2989
2990 * bgp_route.c (ipv6_mbgp_neighbor_routes): Change "show ip bgp PEER
2991 routes" to "show ip bgp PEER received-routes"
2992
29932000-05-14 Kunihiro Ishiguro <kunihiro@zebra.org>
2994
2995 * bgp_ecommunity.c (ecommunity_parse): New file for Extended
2996 Communities attribute.
2997 * bgp_ecommunity.h: Likewise.
2998
29992000-05-11 Kunihiro Ishiguro <kunihiro@zebra.org>
3000
3001 * bgp_mplsvpn.h: New file for MPLS-VPN.
3002 * bgp_mplsvpn.c: Likewise.
3003
3004 * bgpd.c (bgp_delete): Fix bug of "no router bgp" crush.
3005
30062000-05-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3007
3008 * bgpd.c (bgp_bestpath_missing_as_worst): Add "bgp bestpath
3009 missing-as-worst".
3010
30112000-05-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3012
3013 * bgp_routemap.c (match_community): Clarify help of "match
3014 community".
3015
30162000-05-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3017
3018 * bgp_aspath.c (aspath_cmp_left): Remove debug code.
3019
30202000-04-27 Kunihiro Ishiguro <kunihiro@zebra.org>
3021
3022 * bgp_route.c (bgp_info_cmp): Compare MED only both routes comes
3023 from same neighboring AS.
3024
3025 * bgp_aspath.c (aspath_cmp_left): Compare leftmost AS value.
3026
3027 * bgp_route.c (bgp_info_cmp): Fix misused htonl() to ntohl().
3028
30292000-04-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3030
3031 * bgp_route.c (bgp_output_filter): When distribute-list's
3032 corresponding access-list does not exist, filter all routes.
3033 (bgp_input_filter): Likewise.
3034
30352000-04-19 Kunihiro Ishiguro <kunihiro@zebra.org>
3036
3037 * bgp_attr.c (bgp_packet_attribute): Propagate MED to IBGP peer.
3038
3039 * bgp_route.c (bgp_info_cmp): Add evaluation of local preference.
3040
30412000-04-18 Kunihiro Ishiguro <kunihiro@zebra.org>
3042
3043 * bgpd.c (bgp_distribute_update): Add struct access_list *
3044 argument.
3045
30462000-04-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3047
3048 * bgp_clist.c (community_list_dup_check): Add duplicate insertion
3049 check.
3050
3051 * bgp_filter.c (as_list_dup_check): Add duplicate insertion check.
3052
3053 * bgp_route.c (bgp_show): Fix undeclared write variable.
3054
30552000-04-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3056
3057 * bgp_routemap.c: Add "match ip address prefix-list".
3058
30592000-03-29 Rick Payne <rickp@rossfell.co.uk>
3060
3061 * bgp_aspath.c (aspath_strip_confed): Fix realloc problem.
3062
30632000-03-16 Kunihiro Ishiguro <kunihiro@zebra.org>
3064
3065 * bgp_fsm.c (bgp_reconnect): Connect retry timer is expired when
3066 the peer status is Connect.
3067
30682000-03-03 Kunihiro Ishiguro <kunihiro@zebra.org>
3069
3070 * Fix bug of rewritten originator-id.
3071
30722000-01-27 Rick Payne <rickp@rossfell.co.uk>
3073
3074 * bgp_aspath.c (aspath_delimiter_char): New function. Instead of
3075 directly referencing array, search proper AS path delimiter.
3076 (aspath_strip_confed): Strip the confederation stuff from the
3077 front of an AS path.
3078 (aspath_add_left_confed): New function for adding specified AS to
3079 the leftmost AS_CONFED_SEQUENCE.
3080
3081 * bgp_aspath.h: Change AS_CONFED_SEQUENCE and AS_CONFED_SET value
3082 to Cisco compatible.
3083
3084 * bgpd.c (bgp_confederation_id_set): Confederation configuration.
3085 (bgp_confederation_id_unset): Likewise.
3086 (bgp_confederation_peers_check): Likewise.
3087 (bgp_confederation_peers_add): Likewise.
3088 (bgp_confederation_peers_remove): Likewise.
3089 (bgp_confederation_peers_set): Likewise.
3090 (bgp_confederation_peers_unset): Likewise.
3091 (bgp_confederation_peers_print): Likewise.
3092
30932000-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
3094
3095 * bgpd.c: Introduce peer_change_flag_with_reset() fucntion.
3096
30972000-01-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3098
3099 * bgp_open.c (bgp_open_option_parse): When there is no common
3100 capability send Unsupported Capability error to the peer.
3101
31022000-01-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3103
3104 * bgp_open.c (bgp_capability_mp): Fix bug of mis-negotiation about
3105 IPv6 unicast.
3106
3107 * bgpd.c (bgp_init): Add "soft-reconfiguration inbound" command.
3108
31092000-01-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3110
3111 * bgpd.c (neighbor_strict_capability): Add
3112 "strict-capability-match" command.
3113
3114 * bgp_zebra.c (bgp_if_update): Ignore NET127 determining
3115 router-id.
3116
3117 * bgpd.c (peer_override_capability): Add "override-capability"
3118 command.
3119
31201999-12-16 Kunihiro Ishiguro <kunihiro@zebra.org>
3121
3122 * bgp_packet.c (bgp_write): Change status to Idle and set timer
3123 after write failed.
3124
31251999-12-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3126
3127 * bgp_zebra.c (bgp_zebra_announce): Add info->selected check.
3128
31291999-12-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3130
3131 * bgp_route.c (nlri_unfeasible): nlri_unfeasible() is merged with
3132 nlri_parse().
3133
31341999-12-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3135
3136 * bgp_fsm.h (BGP_EVENT_DELETE): Macro added.
3137
3138 * bgp_fsm.c (bgp_stop): Clear all event threads of the peer when
3139 the peer is cleared.
3140
3141 * bgp_zebra.c (bgp_nexthop_set): Clear interface index of
3142 link-local address. This is KAME specific problem.
3143
31441999-12-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3145
3146 * bgp_attr.c (bgp_mp_reach_parse): Comment out previous code for a
3147 while. We don't completely detect the link is shared or not at
3148 this moment.
3149
3150 * bgp_packet.c (bgp_notify_send): Make shortcut call of
3151 bgp_write() and bgp_stop().
3152
3153 * bgp_attr.c (bgp_mp_reach_parse): Fix serious bug when getting
3154 global and link-local address.
3155
31561999-12-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3157
3158 * bgpd.c (no_neighbor_port): New command added.
3159 (peer_new): Set send_community.
3160
31611999-12-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3162
3163 * bgpd.c (show_ip_bgp_summary): Changed to use bgp_show_summary().
3164 (show_ip_mbgp_summary): Likewise.
3165 (show_ipv6_bgp_summary): Likewise.
3166 (show_ipv6_mbgp_summary): Add new command.
3167 (peer_free): Free peer->host.
3168 (peer_lookup_by_su): Delete function.
3169 (ipv6_bgp_neighbor): Changed to use peer_remote_as().
3170 (sockunion_vty_out): Function deleted.
3171 (vty_clear_bgp): Use afi instead of family.
3172 Delete old list bgp_list. Use struct newlist *bgplist.
3173 (peer_lookup_by_host): Function deleted.
3174
31751999-12-03 Kunihiro Ishiguro <kunihiro@zebra.org>
3176
3177 * bgpd.h (struct peer_group): New structure added.
3178 (struct peer_conf): New structure added.
3179 (struct peer): Change all prefix_count to unsigned long.
3180
3181 * bgpd.c: Reconstruct all of VTY commands reflect internal
3182 structure change.
3183 Use bgplist instead of bgp_list.
3184 Use peerlist intstead of peer_list.
3185
3186 * bgp_attr.c (bgp_mp_reach_parse): If nlri_parse return -1, stop
3187 parsing then return immediately.
3188
3189 * bgp_route.c (nlri_parse): When NLRI parse error occured, return
3190 -1.
3191 (nlri_process): Use pcount_v4_{unicast,multicast}.
3192 (nlri_delete): Likewise.
3193
31941999-11-25 Robert Olsson <Robert.Olsson@data.slu.se>
3195
3196 * bgp_routemap.c (route_match_nlri): `match nlri
3197 unicast|multicast' and `set nlri unicast|multicast' command are
3198 added.
3199
32001999-11-22 Robert Olsson <Robert.Olsson@data.slu.se>
3201
3202 * bgpd.c: Add translate-update support.
3203
3204 * bgpd.h (TRANSLATE_UPDATE_OFF): Add translate-update definition.
3205
32061999-11-19 Robert.Olsson@data.slu.se
3207
3208 * bgp_route.c (bgp_peer_delete): Add MBGP peer clear codes.
3209
32101999-11-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3211
3212 * bgp_open.c (bgp_capability_mp): Temporary comment out
3213 SAFI_UNICAST_MULTICAST handling until we know the meanings.
3214
32151999-11-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3216
3217 * bgp_btoa.c: New file added.
3218
32191999-11-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3220
3221 * bgpd.h (struct peer): Add dont_capability flag.
3222 (struct peer): Add override_capability flag.
3223
3224 * bgpd.c (neighbor_dont_capability_negotiation): `neighbor PEER
3225 dont-capability-negotiation' added.
3226
32271999-11-12 Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
3228
3229 * bgp_attr.c (bgp_mp_reach_parse): Ignore link-local addresses
3230 attribute from non-shared-network peers.
3231
32321999-11-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3233
3234 * bgp_snmp.c: New file added.
3235
3236 * BGP4-MIB.txt: Updated to the latest Internet-Draft
3237 draft-ietf-idr-bgp4-mib-04.txt.
3238
32391999-11-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3240
3241 * bgp_route.c (bgp_route_init): Add `show ipv6 bgp prefix-list'.
3242
3243 * bgp_attr.c (bgp_mp_unreach_parse): Enclose safi setup with
3244 #ifdef HAVE_MBGPV4.
3245
32461999-11-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3247
3248 * bgp_dump.c (no_dump_bgp_all): Add [PATH] and [INTERVAL] to no
3249 dump bgp commands.
3250 (config_write_bgp_dump): Write interval value to the
3251 configuration.
3252
32531999-11-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3254
3255 * bgp_zebra.c: Redistribute route-map support is added.
3256
3257 * bgp_zebra.h: New file added.
3258
32591999-11-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3260
3261 * bgp_dump.c: BGP packet dump routine compatible with MRT.
3262 * bgp_dump.h: BGP packet dump routine compatible with MRT.
3263
3264 * bgp_debug.c: Renamed from bgp_dump.c
3265 * bgp_debug.h: Renamed from bgp_dump.h
3266
32671999-10-27 Kunihiro Ishiguro <kunihiro@zebra.org>
3268
3269 * BGP4-MIB.txt: New file added. Edited version of RFC1657.
3270
32711999-10-25 Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
3272
3273 * bgp_route.c (bgp_announce): If we're not on a shared network
3274 with the peer and we don't have a link-local next hop, but the
3275 inbound next-hop has a link-local address, don't readvertise it to
3276 our peer.
3277
32781999-10-25 Marc Boucher <marc@mbsi.ca>
3279
3280 * bgp_zebra.c: Add redistribute kernel command.
3281
32821999-10-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3283
3284 * bgp_route.c (bgp_reset): New function added.
3285
3286 * bgpd.conf.sample2: Add IPv6 configuration sample.
3287
32881999-10-24 Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
3289
3290 * bgp_route.c (ipv6_aggregate_address): Function added.
3291
32921999-10-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3293
3294 * bgp_packet.c (bgp_update): Unintern aspath, community, cluster
3295 list after parsing BGP update packet.
3296
3297 * bgp_attr.c (bgp_attr_aspath): Intern parsed aspath.
3298 (bgp_attr_community): Intern parsed community.
3299 (bgp_attr_cluster_list): Intern parsed cluster list.
3300
3301 * bgp_routemap.c: Add `set community-additive' command.
3302
33031999-10-21 Alexandr D. Kanevskiy <kad@blackcatlinux.com>
3304
3305 * bgp_routemap.c (route_set_local_pref): Fix bug of setting
3306 attribute flag.
3307
33081999-10-21 Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
3309
3310 * bgp_route.c (bgp_announce): Add check of IPv6 default route
3311 announcement.
3312
3313 * bgp_packet.c (bgp_update_send): Add BGP announcement logging.
3314
33151999-10-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3316
3317 * `show ip[v6] bgp PREFIX' show uptime of the route.
3318
33191999-10-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3320
3321 * bgpd.c (bgp_filter_set): Delete PEER_FAMILY_{IPV4,IPV6}. instead
3322 of that use AF_INET and AF_INET6 directly.
3323 (vty_clear_bgp): Add new function to support various clear ip bgp
3324 method.
3325
33261999-10-04 Lars Fenneberg <lf@elemental.net>
3327
3328 * bgpd.c (clear_ip_bgp): Add `clear ip bgp ASN'.
3329
33301999-10-03 Kunihiro Ishiguro <kunihiro@zebra.org>
3331
3332 * bgp_routemap.c: Add `match ip prefix-list' and `match ipv6
3333 prefix-list'.
3334
33351999-09-28 Kunihiro Ishiguro <kunihiro@zebra.org>
3336
3337 * bgpd.c (bgp_collision_detect): Add BGP collision detection
3338 function.
3339
33401999-09-26 Blake Meike <bmeike@adero.com>
3341
3342 * bgpd.c (neighbor_port): New command `neighbor PEER port PORT' is
3343 added.
3344
33451999-08-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3346
3347 * bgpd.c (no_neighbor_timers_keepalive): Change MIN to min. Add
3348 min() macro.
3349
33501999-08-19 Rick Payne <rickp@rossfell.co.uk>
3351
3352 * bgp_packet.c (bgp_open): BGP holdtimer bug is fixed. Make BGP
3353 keepalive timer configurable.
3354
33551999-08-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3356
3357 * bgp_zebra.c (bgp_redistribute_set): Fix redistribute bug.
3358
33591999-08-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3360
3361 * bgpd.c (bgp_peer_display): show ip bgp neighbors PEER only list
3362 the peer not all of them.
3363
33641999-08-11 Rick Payne <rickp@rossfell.co.uk>
3365
3366 * bgp_route.c (bgp_announce): Remove MED if its an EBGP peer -
3367 will get overwritten by route-maps.
3368
33691999-08-08 Rick Payne <rickp@rossfell.co.uk>
3370
3371 * bgp_routemap.c: Multi protocol route-map modification.
3372
33731999-08-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3374
3375 * bgp_route.c: Set network statement route's origin attribute as
3376 igp.
3377
3378 * bgp_zebra.c: Set redistribute route's origin attribute as
3379 incomplete.
3380
3381 * bgp_route.c (bgp_info_cmp): Add attribute existance check,
3382 origin attribute check, BGP peer type check.
3383
33841999-07-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3385
3386 * bgp_route.c (bgp_peer_delete): Reselect of IPv6 route.
3387
33881999-07-29 Rick Payne <rickp@rossfell.co.uk>
3389
3390 * Changed route-maps to behave in a more cisco-like fashion
3391
33921999-07-27 Kunihiro Ishiguro <kunihiro@zebra.org>
3393
3394 * bgp_fsm.c (bgp_stop): Very serious bug of bgp_stop () is fixed.
3395 When multiple route to the same destination exist, bgpd try to
3396 announce the information to stopped peer. Then add orphan write
3397 thread is added. This cause many strange behavior of bgpd.
3398 Reported by Georg Hitsch <georg@atnet.at>.
3399
34001999-07-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3401
3402 * bgpd.c: Change peer's A.B.C.D to PEER.
3403
34041999-07-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3405
3406 * bgp_route.c (bgp_announce): Add hack for link-local nexthop.
3407
3408 * bgp_zebra.c (bgp_zebra_announce): Fill in nexthop address from
3409 local address.
3410
34111999-07-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3412
3413 * bgp_packet.c (bgp_open): Holdtime fetch bug is fixed. Reported
3414 by Yuji SEKIYA <sekiya@sfc.wide.ad.jp>.
3415
34161999-07-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3417
3418 * bgp_fsm.c (fsm_holdtime): Don't close file descriptor in
3419 fsm_holdtime ().
3420
34211999-07-11 Kunihiro Ishiguro <kunihiro@zebra.org>
3422
3423 * bgp_routemap.c: Add `set atomic-aggregate' command.
3424
34251999-07-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3426
3427 * bgp_routemap.c (route_set_ip_nexthop_cmd): Change "ip nexthop"
3428 to "ip next-hop".
3429
34301999-07-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3431
3432 * bgp_route.c (show_ipv6_bgp_regexp): `show ipv6 bgp regexp'
3433 added.
3434
34351999-07-01 Rick Payne <rickp@rossfell.co.uk>
3436
3437 * bgp_zebra.c (zebra_init): Install standard commands to
3438 ZEBRA_NODE.
3439
34401999-06-28 Rick Payne <rickp@rossfell.co.uk>
3441
3442 * bgpd.c (bgp_delete): bgp peer deletion bug is fixed.
3443
34441999-06-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3445
3446 * bgpd.c: Add neighbor update-source command as ALIAS to
3447 neighbor_interface.
3448
34491999-06-19 Kunihiro Ishiguro <kunihiro@zebra.org>
3450
3451 * bgp_attr.c (bgp_packet_attribute): Send community attribute when
3452 send_community flag is set.
3453
3454 * bgpd.h (struct peer): Add send_community flag.
3455
34561999-06-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3457
3458 * bgpd.c (router_bgp): router bgp's argument changed from AS_NO to
3459 <1-65535>.
3460
34611999-06-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3462
3463 * bgp_route.h (struct bgp_info): Add subtype for BGP route type.
3464
34651999-06-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3466
3467 * bgp_community.c (community_merge): Function added.
3468
34691999-06-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3470
3471 * bgp_clist.c: New file.
3472 * bgp_clist.h: New file.
3473
3474 * bgp_community.h (COMMUNITY_LOCAL_AS): Added for Cisco
3475 compatibility.
3476 (COMMUNITY_NO_ADVERTISE): Fix typo.
3477
34781999-05-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3479
3480 * bgp_routemap.c: Add `set weight WEIGHT' command.
3481
3482 * bgpd.c: Remove all_digit_check function. Instead of that use
3483 all_digit function in lib/prefix.c.
3484
3485 * bgp_routemap.c (bgp_route_map_init): Install
3486 no_set_ipv6_nexthop_global_cmd and no_set_ipv6_nexthop_local_cmd
3487 element to the RMAP_NODE.
3488
34891999-05-28 Kunihiro Ishiguro <kunihiro@zebra.org>
3490
3491 * bgp_aspath.c (aspath_make_str): Declare aspath_delimiter_char
3492 inside aspath_make_str function.
3493 (aspath_prepend): New function is added for AS path prepend.
3494 (aspath_make_str_count): Renamed from aspath_make_str. AS path
3495 count is set to the structure.
3496 (aspath_merge): New function.
3497
34981999-05-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3499
3500 * bgp_zebra.c (redistribute_bgp): Add new DEFUN.
3501 (no_redistribute_bgp): Likewise.
3502 (router_zebra): Semantics changed. Now 'router zebra' is default
3503 behavior of bgpd.
3504
35051999-05-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3506
3507 * bgp_routemap.c: Add some commands to bgp route-map.
3508 match ip next-hop: New command.
3509 match metric: New command.
3510 set metric: Doc fix.
3511 set local-preference: Add DEFUN.
3512
35131999-05-14 Stephen R. van den Berg <srb@cuci.nl>
3514
3515 * bgp_main.c (signal_init): SIGTERM call sigint.
3516 (sigint): Loggging more better message.
3517
35181999-05-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3519
3520 * bgp_attr.c (bgp_packet_attribute): AS path attribute extended
3521 length bit check is added.
3522
35231999-05-11 Kunihiro Ishiguro <kunihiro@zebra.org>
3524
3525 * bgp_routemap.c (bgp_route_map_init): Call route_map_install_set
3526 function with route_set_local_pref_cmd argument.
3527 (no_match_aspath): Function added.
3528 (route_set_metric): Set attribute flag bit.
3529
3530 * bgp_attr.c (bgp_packet_attribute): MULTI_EXIT_DISC is now in BGP
3531 packet.
3532
35331999-05-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3534
3535 * bgpd.c (no_neighbor_timers_holdtime): `no neighbor PEER timers
3536 holdtime' command is added.
3537
3538 * bgpd.h (BGP_DEFAULT_HOLDTIME_BIG): Delete define.
3539
3540 * bgpd.c (bgp_prefix_list_set): New function added.
3541 (bgp_prefix_list_unset): Likewise.
3542 (bgp_prefix_list_update): Likewise.
3543 (show_ip_bgp_neighbors): prefix-list information display.
3544
35451999-05-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3546
3547 * bgpd.c (bgp_delete): Function added for `no router bgp'.
3548
35491999-05-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3550
3551 * bgp_dump.c (bgp_dump_attr): Add originator_id display.
3552
3553 * bgpd.c (bgp_router_id): Even when address is malformed set the
3554 value to configuration bug fixed.
3555 (no_bgp_router_id): New function.
3556 (no_bgp_cluster_id): New function.
3557
35581999-05-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3559
3560 * bgpd.h (BGP_ATTR_ORIGINATOR_ID): Changed from BGP_ATTR_ORIGINATOR.
3561
35621999-05-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3563
3564 * bgp_route.c (bgp_announce): Add route reflector check.
3565
35661999-05-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3567
3568 * bgpd.c (bgp_cluster_id): Add function for route reflector.
3569 (neighbor_route_reflector_client): Likewise.
3570 (no_neighbor_route_reflector_client): Likewise.
3571
3572 * bgpd.h (struct bgp ): Add cluster for route reflector.
3573
3574 * bgp_route.c (show_ip_bgp_prefix_list): New command is added.
3575
35761999-04-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3577
3578 * Makefile.am (noinst_HEADERS): Add bgp_filter.h
3579
3580 * bgp_aspath.c (aspath_undup): Function deleted. aspath_free ()
3581 has same functionality.
3582
3583 * bgp_filter.h: New file.
3584
3585 * bgp_aspath.c (aspath_unintern): Rename aspath_free () to
3586 aspath_unintern ()
3587 (aspath_free): New function.
3588
35891999-04-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3590
3591 * bgp_aspath.c (aspath_aggregate): Function added.
3592
3593 * bgp_aspath.h (aspath_aggregate): Prototype added.
3594
3595 * bgp_aspath.c (aspath_empty_aspath): New argument
3596 gated_dont_eat_flag is added.
3597
35981999-04-18 Kunihiro Ishiguro <kunihiro@zebra.org>
3599
3600 * bgp_route.c: Add bgp_aggregate_ipv4 and bgp_aggregate_ipv6.
3601
36021999-04-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3603
3604 * bgp_route.c (aggregate_address): Function added.
3605
3606 * bgp_zebra.c (zebra_read): Change log to zlog.
3607
36081999-04-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3609
3610 * Makefile.am (noninst_HEADERS): Added for make dist.
3611
36121999-04-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3613
3614 * aspath_regex.c: Removed from distribution.
3615
36161999-04-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3617
3618 * bgp_attr.c (bgp_packet_attribute): Old draft-00 packet treatment
3619 bug fixed.
3620
36211999-04-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3622
3623 * bgp_aspath.c (aspath_add_left): Fix empty aspath bug. Reported
3624 by kad@gibson.skif.net.
3625
3626 * bgp_regex.[ch]: New file added.
3627
3628
36291999-04-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3630
3631 * bgp_filter.c: New file added.
3632
36331999-04-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3634
3635 * bgp_aspath.c (aspath_empty_aspath): Change for peering with
3636 gated.
3637
36381999-03-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3639
3640 * bgp_main.c (main): Default loggin method changed from syslog to
3641 stdout.
3642
36431999-03-05 Kunihiro Ishiguro <kunihiro@zebra.org>
3644
3645 * bgp_route.c: Delete obsolete default attribute DEFUN.
3646
36471999-03-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3648
3649 * bgp_attr.c: Make attribute structure put into attribute hash.
3650
36511999-03-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3652
3653 * bgp_view.c : Delete file.
3654
36551999-02-25 Kunihiro Ishiguro <kunihiro@zebra.org>
3656
3657 * bgp_routemap.c (bgp_apply_route_map): Add prefix argument.
3658
3659 * bgp_route.h (struct bgp_info): Add bgp_info structre. I'll
3660 replace bgp_route with this.
3661
3662 * bgp_routemap.c (route_match_ip_address): Fix bug of passing non
3663 prefix value to access_list_apply().
3664
3665 * bgpd.conf.sample: Add route-map sample.
3666 Delete obsolete default-attr statements.
3667
3668 * bgp_packet.c: Use stream_fifo for packet queueing.
3669
36701999-02-24 Kunihiro Ishiguro <kunihiro@zebra.org>
3671
3672 * bgp_aspath.c (aspath_add_left): add non empty aspath treatment.
3673
3674 * bgp_main.c: include unistd.h for daemon().
3675
3676 * bgp_route.c (nlri_process): add IPv6 table lookup.
3677
3678 * bgp_attr.c (route_parse_ipv6): call nlri_process().
3679 (attr_make): Obsolete function attr_make deleted.
3680
36811999-02-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3682
3683 * bgp_aspath.c (aspath_add_left): change function name from
3684 aspath_add_leftmost_as().
3685
36861999-02-21 Kunihiro Ishiguro <kunihiro@zebra.org>
3687
3688 * bgp_aspath.c: add aspath_add_leftmost_as ().
3689
36901999-02-18 Peter Galbavy <Peter.Galbavy@knowledge.com>
3691
3692 * syslog support added
3693
36941999-01-26 Kunihiro Ishiguro <kunihiro@zebra.org>
3695
3696 * bgpd.c: DEFUN (neighbor_nexthop): deleted.
3697 DEFUN (neighbor_distribute_list): added.
3698
36991999-01-19 Kunihiro Ishiguro <kunihiro@zebra.org>
3700
3701 * bgpd.h (struct peer ): header_buf and read_buf is removed.
3702
3703 * bgp_peer.[ch]: Deleted. Peer related functions are merged to
3704 bgpd.c
3705
3706 * bgp_network.c: New file.
3707 * bgp_network.h: New file.
3708
3709 * bgp_packet.h: New file.
3710
37111999-01-11 Kunihiro Ishiguro <kunihiro@zebra.org>
3712
3713 * bgp_packet.c (bgp_keepalive_send): Now BGP keepalive packet is
3714 buffered.
3715
37161999-01-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3717
3718 * bgp_packet.c: New file.
3719
37201998-12-22 Kunihiro Ishiguro <kunihiro@zebra.org>
3721
3722 * bgp_zebra.c (zebra_client): Use zebra_connect() in lib/client.c.
3723
3724 * `show ip bgp' bug fixed.
3725 * aspath_log (): Remove argument logfp.
3726
37271998-12-15 Kunihiro Ishiguro <kunihiro@zebra.org>
3728
3729 * bgp_fsm.h: New file.
3730
37311998-12-15 Magnus Ahltorp <map@stacken.kth.se>
3732
3733 * bgp_attr.c, bgp_community.h, bgp_dump.c, bgp_fsm.c, bgp_open.c
3734 bgp_peer.c, bgp_peer.h, bgp_route.c, bgp_route.h, bgp_view.c
3735 bgpd.c, bgpd.h, bgp_attr.c, bgp_community.h, bgp_dump.c,
3736 bgp_fsm.c, bgp_open.c, bgp_peer.c, bgp_peer.h: Prototype fixes.
3737
37381998-12-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3739
3740 * bgpd.c (bgp_config_write): Delete vector v argument.
3741
37421998-12-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3743
3744 * bgpd.h: Delete annoying ld_[124]byte and st_[124]byte macros.
3745
37461998-11-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3747
3748 * bgp_radix.[ch]: removed.
3749
37501998-09-15 HEO SeonMeyong <seirios@matrix.iri.co.jp>
3751
3752 * bgp_main.c: ifdef HYDRANGEA -> ifdef KAME
3753
37541998-08-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3755
3756 * bgp_dump.c: delete nroute().
3757
37581998-05-19 Yamshita TAKAO <jargon@lares.dti.ne.jp>
3759
3760 * bgp_aspath.c: HAVE_CONFIG_H typo :-)
3761 * bgpd.h: Modify for compile on Solaris.
3762 * bgp_aspath.h: likewize
3763 * bgp_community.h: likewize
3764 * bgp_routemap.c: likewize
3765
37661998-05-18 Yamshita TAKAO <jargon@lares.dti.ne.jp>
3767
3768 * bgpd.h: Modify for compile on Solaris.
3769 * bgp_aspath.h: likewize
3770
37711998-05-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3772
3773 * routemap.[ch]: move to ../lib directory.
3774
37751998-05-07 Kunihiro Ishiguro <kunihiro@zebra.org>
3776
3777 * routemap.c (route_map_apply): add function.
3778
37791998-05-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3780
3781 * routemap.h: add file.
3782
3783 * bgp_peer.h (enum ): change PEER_{IBGP,EBGP} to BGP_PEER_{IBGP,EBGP}
3784
37851998-05-03 Kunihiro Ishiguro <kunihiro@zebra.org>
3786
3787 * Makefile.am: sysconfdir_DATA added.
3788
37891998-05-02 Kunihiro Ishiguro <kunihiro@zebra.org>
3790
3791 * bgp_dump.c: add `debug bgp fsm'
3792 add `no debug bgp fsm'
3793 add `show debug bgp'
3794 * bgp_open.c: File added.
3795
37961998-05-01 Kunihiro Ishiguro <kunihiro@zebra.org>
3797
3798 * .cvsignore: File added.
3799
38001998-04-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3801
3802 * bgp_community.[ch]: File added.
3803
38041998-03-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3805
3806 * bgpd now use lib/thread.[ch].
3807
38081998-01-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3809
3810 * bgpd.c (show_ip_bgp_neighbors): add 'show ip bgp neighbors' command.
3811
3812 * bgpd.h (BGP_DEFAULT_START_TIMER): change from 1 to 30.
3813
38141997-12-30 Kunihiro Ishiguro <kunihiro@zebra.org>
3815
3816 * bgp_vty.c: bgp_vty.c deleted.
3817
3818 * bgpd.c (config_write_neighbor): add ebgp-multihop command.
3819
38201997-12-29 Kunihiro Ishiguro <kunihiro@zebra.org>
3821
3822 * bgp_fsm.c: [-p bgp_port] and [-P vty_port] works
3823
38241997-12-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3825
3826 * bgp_vty.c: new file.
3827
3828 * bgp_attr.c: add new logging system.
3829
38301997-11-23 Kunihiro Ishiguro <kunihiro@zebra.org>
3831
3832 * Change all inet_addr call into inet_aton.
3833
38341997-11-10 Kunihiro Ishiguro <kunihiro@zebra.org>
3835
3836 * bgp_radix.c: change radix_peer_delete
3837
38381997-10-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3839
3840 * bgp_aspath.c: move AS_TOKEN_??? definition from header to c source.
3841
38421997-09-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3843
3844 * bgp_dump.c (bgp_log_route): add dump_attr function
3845
38461997-09-06 Kunihiro Ishiguro <kunihiro@zebra.org>
3847
3848 * bgp_aspath.c (aspath_test): change AS_SET brace from '[' to '{'
3849 * bgp_dump.c (bgp_log_route): change logfile format.
3850
38511997-08-19 Kunihiro Ishiguro <kunihiro@zebra.org>
3852
3853 * bgp_open.c (bgp_open): move bgp_open function from bgpd.c
3854 * bgp_attr.c (community_str2com): add community value generation
3855 * bgp_attr.h: add SAFI definition for BGP-4+
3856
38571997-08-18 Kunihiro Ishiguro <kunihiro@zebra.org>
3858
3859 * bgpd.h: add BGP_OPEN_OPT_CAP for Capabilities Optional Parameter
3860 * Makefile.in: add bgp_open.o, delete bgp_loop.o
3861 * bgp_open.c: newfile which manages BGP Open message
3862 * bgp_loop.c: this file is merged with bgp_fsm.c
3863 * bgp_radix.c (radix_add): radix_add() now return route_t instead
3864 of int
3865 (bgp_sim): now we can read update & withdraw from file
3866 * bgp_route.c: add route_free() call into route_parse etc.
3867
38681997-08-17 Kunihiro Ishiguro <kunihiro@zebra.org>
3869
3870 * bgp_radix.c: Radix code is completely rewritten. It has better
3871 memory treatment than old one.
3872
38731997-08-14 Kunihiro Ishiguro <kunihiro@zebra.org>
3874
3875 * bgp_route.c: route_alloc for route struct allocation statistics.
3876 * bgpd.c (bgp_make_update): now we cann announce MED attribute.
3877 * bgp_aspath.c (aspath_print_all): change aspath_print_all output
3878 format.
3879
38801997-08-13 Kunihiro Ishiguro <kunihiro@zebra.org>
3881
3882 * bgp_term.c (term_parse): add command : show asstat, show ashash
3883 * bgp_aspath.c: aspath_cmp bug fix
3884 (aspath_print_all): add aspath_print_all ();
3885 * bgp_peer.h: delete rlist element from struct peer.
3886
38871997-08-12 Kunihiro Ishiguro <kunihiro@zebra.org>
3888
3889 * bgp_aspath.c: completely rewritten.
3890 * bgp_aspath.h: completely rewritten.
3891 add AsPath, AsSegment structure
3892 add AS_SET treatment
3893 change Hash codes
3894
38951997-08-09 Kunihiro Ishiguro <kunihiro@zebra.org>
3896
3897 * bgp_attr.h: add Attribute flags defines
3898 * bgp_route.c: delete rlist related functions
3899 * bgp_aspath.c (as_origin): add as_origin function
3900 (aspath_print): move from bgp_dump.c and add support of AS_SET
3901 change Hash related function names.
3902
39031997-08-08 Kunihiro Ishiguro <kunihiro@zebra.org>
3904
3905 * bgp_aspath.h: add next entry, delete rlist entry from struct aspath
3906
39071997-08-04 Kunihiro Ishiguro <kunihiro@zebra.org>
3908
3909 * bgp_aspath.c (as_sort): add function as_sort
3910 * bgp_aspath.h: add IBGP, EBGP
3911