blob: c979a11df4b58f16cdd50ba065e1e75c80b00c44 [file] [log] [blame]
paule8e19462006-01-19 20:16:55 +000012006-01-19 Paul Jakma <paul.jakma@sun.com>
2
3 * ripd.c: (main) return from main, not exit, cause it annoys SOS.
4
paul98fd1e62006-01-17 17:26:25 +000052006-01-17 Paul Jakma <paul.jakma@sun.com>
6
7 * ripd.c: (rip_auth_md5) remove pdigest, not needed.
8 Use a local buffer for the auth_str, where it can be properly
9 nul padded. Do so, hence fixing MD5 authentication.
10 Key looked up via key ring should be used in preference to
11 the RIPv1 simple password, not other way around.
12 No need to copy around digests, we can reference them
13 directly.
14 The auth_len received can't be trusted, some implementations
15 lie (e.g. older ripd).
16 (rip_auth_md5_ah_write) rename len local variable to doff
17 to be consistent with other functions.
18 (rip_auth_header_write) add the missing return.
19 (rip_auth_md5_set) use the proper constructs to access stream.
20
ajs35a60c22005-10-30 23:51:32 +0000212005-10-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
22
23 * ripd.c: (rip_response_process) Instead of calling
24 rip_interface.c:if_valid_neighbor(), call the equivalent
25 library function if_lookup_address().
26 * rip_interface.c: (if_valid_neighbor) Remove function, since it is
27 essentially equivalent to the if_lookup_address() library function.
28 * ripd.h: (if_valid_neighbor) Remove function declaration.
29
paul92779fe2005-10-28 10:23:09 +0000302005-10-28 Paul Jakma <paul.jakma@sun.com>
31
32 * Makefile.am: Add rip_interface.h, or else it doesn't get
33 included in dists.
34
pauldc63bfd2005-10-25 23:31:05 +0000352005-10-26 Paul Jakma <paul.jakma@sun.com>
36
37 * (general) static/extern functions and definitions.
38 * rip_interface.h: new file, export the public functions from
39 rip_interface.c
paul216565a2005-10-25 23:35:28 +000040 * ripd.c: Update couple more functions to specify void
41 explicitely.
pauldc63bfd2005-10-25 23:31:05 +000042
jardin38d3c162005-10-19 19:29:59 +0000432005-10-17 Vincent Jardin <vincent.jardin@6wind.com>
44
45 * ripd.c: rip_create_socket() for each packet, it does not bind to the
46 proper interfaces because we forget to use the from address when
47 it is specified.
48
vincentfac3e842005-10-06 07:45:43 +0000492005-10-06 Alain Ritoux <alain.ritoux@6wind.com>
50
51 * rip_interface.c: Now the command "no ip rip split-horizon
52 poisoned-reverse" just inhibates the poisoned-reverse effects
53 but keep spli-horizon activ.
54
ajsf52d13c2005-10-01 17:38:06 +0000552005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
56
57 * rip_zebra.c: (config_write_rip_redistribute): Remove local hard-coded
58 table str[]. Replace str[] with calls to new library function
59 zebra_route_string().
60 * ripd.c: Remove local hard-coded table route_info[].
61 (show_ip_rip) Replace uses of str[] with calls to new library
62 functions zebra_route_char and zebra_route_string.
63
vincentfbf5d032005-09-29 11:25:50 +0000642005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
65
66 * rip_snmp.c: rip2IfConfReceive() sends values in conformance
67 with RFC. Also PeerDomain is now set to a STRING type.
68 * ripd.h: rip_redistribute_add() API includes metric and distance
69 added field external_metric in routes.
70 * ripd.c: rip_redistribute_add() API i.e. stores metric and distance
71 Now allows a RIP-route to overcome a redistributed route coming
72 from a protocol with worse (higher) administrative distance
73 Metrics from redistribution are shown in show ip rip
74 * rip_zebra.c: adapt to the rip_redistribute_add() API, i.e.
75 provide distance and metric
76 * rip_interface.c: adapt to the rip_redistribute_add() API
77 * rip_routemap.c: no RMAP_COMPILE_ERROR on (metric > 16) usage
78 rather a CMD_WARNING, because set metric ius shared with other
79 protocols using larger values (such as OSPF)
80 The match metric action takes first external metric if present
81 (from redistribution) then RIP metric.
82
vincentc1a03d42005-09-28 15:47:44 +0000832005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
84
85 * ripd.c: use new md5 API
86
paul2c61ae32005-08-16 15:22:14 +0000872005-08-16 Paul Jakma <paul.jakma@sun.com>
88
89 * ripd.c: (general) Fix previous commit, broke multicast bind and
90 hence setting of source port, which broke communication with
91 non-borken ripd. Fix removes more stuff from rip_interface.c
92 than it adds to ripd.c ;)
93 (rip_create_socket) the to argument really is a from argument,
94 rename it. Set the source port to RIP port unconditionally, it's
95 required.
96 (rip_send_packet) Set from address correctly for multicast.
97 (rip_output_process) trivial: num can be BSS specified, rather
98 than in body.
99 * rip_interface.c: (rip_interface_multicast_set) strip out
100 redundant stuff related to bind, which rip_create_socket does.
101 Just make it set the multicast socket option, as per the
102 interface concerned, no more.
103
paula4e987e2005-06-03 17:46:49 +00001042005-06-03 Paul Jakma <paul.jakma@sun.com>
105
106 * ripd.c: (rip_create_socket) move it up so rip_send_packet
paulf69bd9d2005-06-03 18:01:50 +0000107 can use it too. Make it static. Remove the getservbyname stuff,
108 as RFC2453 3.9.2 says non-RIP port messages should be discarded,
109 quagga doesnt accept them, no need to lookup port.
110 Take a 'to' argument, if socket should be bound to something else.
111 setsockopt_so_recvbuf might need privs, move it to the raised
112 privileges section.
113 dont forget to close the socket if bind fails.
114 (rip_send_packet) use strncpy, just in case (address is under
115 our control anyway, but still).
116 dont duplicate rip_create_socket - just use it.
117 (rip_create) rip_create_socket takes an argument now, modify.
118
paul7755a8c2005-06-02 08:20:53 +00001192005-06-01 Paul Jakma <paul.jakma@sun.com>
120
121 * rip_interface.c: Fix authentication, no-auth impossible to specify
122 (rip_interface_new) default to RIP_NO_AUTH
123 (rip_interface_reset) ditto
124 (rip_interface_config_write) write out config for simple
125
paul0cb8a012005-05-29 11:27:24 +00001262005-05-29 Paul Jakma <paul@dishone.st>
127
128 * ripd.c: (rip_output_process) fix error which crept in my
129 previous rip auth untanglement commit - it had become impossible
130 to not have authentication (even for v1).
131
hasso033e8612005-05-28 04:50:54 +00001322005-05-28 Hasso Tepper <hasso at quagga.net>
133
134 * rip_routemap.c: Fix set_metric_addsub_cmd help, it's not about BGP
135 metric.
136
hassocf96db12005-05-25 21:15:32 +00001372005-05-26 Hasso Tepper <hasso at quagga.net>
138
hassodc625e82005-05-26 06:26:40 +0000139 * rip_routemap.c: In case of '0.0.0.0' used as 'nexthop', use sender
140 address as nexthop in routemap.
141
1422005-05-26 Hasso Tepper <hasso at quagga.net>
143
hassocf96db12005-05-25 21:15:32 +0000144 * rip_routemap.c: Make "match interface" routemap command match both -
145 in and out interfaces.
146
ajsd4e47282005-05-11 15:56:21 +00001472005-05-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
148
149 * rip_interface.c (rip_interface_add): Need to call
150 rip_passive_interface_apply (was already calling it in
151 rip_interface_up).
152
ajs634f9ea2005-04-11 15:51:40 +00001532005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
154
155 * rip_zebra.c (rip_redistribute_set, rip_redistribute_unset,
156 rip_redistribute_clean): Change 2nd arg to zebra_redistribute_send
157 from zclient->sock to zclient.
158
ajsd2fc8892005-04-02 18:38:43 +00001592005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
160
161 * rip_interface.c: (rip_interface_delete) After deleting, set
162 ifp->ifindex to IFINDEX_INTERNAL.
163
paulb14ee002005-02-04 23:42:41 +00001642005-02-04 Paul Jakma <paul@dishone.st>
165
166 * ripd.c: Untangle the construction of RIP auth data.
167 (rip_auth_prepare_str_send) new helper function, prepare
168 correct key string.
169 (rip_auth_simple_write) new helper, write out the
170 rip simple password auth psuedo-RTE.
171 (rip_auth_md5_ah_write) new helper, write out the
172 MD5 auth-header psuedo-RTE.
173 (rip_auth_header_write) new helper, write out correct
174 auth header data / psuedo-RTE.
175 (rip_auth_md5_set) rip out the memmove and writing of the
176 auth header psuedo-RTE. So that all that is left is to
177 write the trailing auth digest, and update digest offset
178 field in the original header.
179 (rip_write_rte) rip out writing of RIP header, writing of
180 simple auth data psuedo-RTE. Make it do what its name suggests,
181 write out actual RTEs.
182 (rip_output_process) remove the incorrect additional decrements
183 of rtemax. Prepare the auth_str, which simple or MD5 auth will
184 need. Move write out of RIP header and auth data to inside the
185 loop. Adjust paramaters as required.
186
ajs79853452005-01-30 17:40:29 +00001872005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
188
ajs6a52d0d2005-01-30 18:49:28 +0000189 * ripd.c: (rip_create_socket) Replace perror with zlog_err.
190
1912005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
192
ajs79853452005-01-30 17:40:29 +0000193 * ripd.c: (rip_create_socket) Save errno before calling
194 ripd_privs.change.
195
ajsb99760a2005-01-04 16:24:43 +00001962005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
197
198 * ripd.c: (rip_recvmsg) Use ZCMSG_FIRSTHDR instead of CMSG_FIRSTHDR.
199
ajs766a0ca2004-12-15 14:55:51 +00002002004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
201
202 * ripd.c: (rip_read) Improve 2 error messages to show the source of
203 the packet when the lookup fails.
204
ajs5d6c3772004-12-08 19:24:06 +00002052004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
206
207 * *.c: Change level of debug messages to LOG_DEBUG.
208
ajs274a4a42004-12-07 15:39:31 +00002092004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
210
211 * rip_main.c: (main) The 2nd argument to openzlog has been removed.
212
ajs887c44a2004-12-03 16:36:46 +00002132004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
214
215 * rip_main.c: (sigint) Use zlog_notice for termination message.
216 (main) Add a startup announcement using zlog_notice.
217
hassoc0652302004-11-25 19:33:48 +00002182004-11-25 Hasso Tepper <hasso at quagga.net>
219
220 * rip_main.c: Make group to run as configurable.
221
paulc49ad8f2004-10-22 10:27:28 +00002222004-10-22 Paul Jakma <paul@dishone.st>
223
224 * ripd.c: Collapse redundant passing of various address structs,
225 struct interface and struct connected as arguments to functions
226 down to two key arguments, namely struct connected and, possibly,
227 address of source/destination. Testing for RIPv1 would be useful.
228 (rip_read) lookup struct connected for the received packet, pass
229 it on.
230 * rip_interface.c: With previous changes, we no longer have to tread
231 carefully with struct connected, as it will always be there and
232 valid.
233
hasso3fb9cd62004-10-19 19:44:43 +00002342004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
235
236 * ripd.c: (rip_update_interface) if connected->destination is NULL,
237 get the broadcast address with ipv4_broadcast_addr()
238 * rip_interface.c: (rip_interface_multicast_set)
239 connected->destination may be NULL. Improve message if
240 setsockopt_multicast_ipv4 fails. Improve message if bind fails.
241 (rip_request_interface_send) If connected->destination is NULL,
242 get the broadcast address with ipv4_broadcast_addr().
243 (if_valid_neighbor) Handle PtP subnet addressing properly.
244 Speed up code by using prefix_match properly.
245
hassoc75105a2004-10-13 10:33:26 +00002462004-10-13 Hasso Tepper <hasso at quagga.net>
247
248 * ripd_snmp.c: Remove defaults used to initialize smux connection to
249 snmpd. Connection is initialized only if smux peer is configured.
250
hasso98b718a2004-10-11 12:57:57 +00002512004-10-11 Hasso Tepper <hasso at quagga.net>
252
253 * *.c: Make more strings const.
254
hasso8a676be2004-10-08 06:36:38 +00002552004-10-08 Hasso Tepper <hasso at quagga.net>
256
257 * *.c: Fix compiler warnings: make strings const, signed -> unsigned
258 etc.
259
hasso1af81932004-09-26 16:11:14 +00002602004-09-26 Hasso Tepper <hasso at quagga.net>
261
262 * ripd.c: Fix compiler warning.
263
hasso52dc7ee2004-09-23 19:18:23 +00002642004-09-23 Hasso Tepper <hasso at quagga.net>
265
266 * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
267
paul0b3acf42004-09-17 08:39:08 +00002682004-09-17 Paul Jakma <paul@dishone.st>
269
270 * ripd.c: set receive buffer to a decent size, some systems have low
271 defaults. Problem noted and fix suggested by Stephan Schweizer
272 in [zebra 20967].
273
paul1a517862004-08-19 04:03:08 +00002742004-08-19 Paul Jakma <paul@dishone.st>
275
276 * rip_interface.c: (rip_interface_multicast_set) get rid
277 of extraneous if_pointopoint arg. ifp is accessible via connected.
278 pass connected->ifp->ifindex to setsockopt_multicast_ipv4.
279 * ripd.c: (rip_send_packet) update call to
280 rip_interface_multicast_set
281 * ripd.h: update rip_interface_multicast_set prototype
282
paul02ff83c2004-06-11 11:27:03 +00002832004-06-11 Sowmini Varadhan <sowmini.varadhan@sun.com>
284
285 * ripd.c: (rip_distribute_update_all) distribute list hook
286 function pointer prototype requires struct prefix_list * arg.
287 (rip_distribute_update_all_wrapper) update to pass required arg,
288 NULL.
289
paulca5e5162004-06-06 22:06:33 +00002902004-06-06 Paul Jakma <paul.jakma@sun.com>
291
292 * ripd.h: Add define for the RIPv2 Authentication Data family
293 Move the auth type defines up to where other defines live.
294 Add RIP_AUTH_MD5_COMPAT_SIZE, for backwards compatible
295 md5->auth_len size. Add md5_auth_len field to struct
296 rip_interface: (rip_interface_new) Init md5_auth_len to compatible
297 size.
298 (ip_rip_authentication_mode_cmd) Extended to handle setting
299 md5 auth-length. Appropriate aliases added.
300 (no_ip_rip_authentication_mode_cmd) Reset md5_auth_len to
301 compatible size.
302 (rip_interface_config_write) Teach it about md5_auth_len.
303 _always_ write out the auth-length, so that everyone will get
304 the setting in their config file, and hence allow for a future
305 change of default for md5_auth_len to be less painful - every md5
306 user will have this setting in their config file.
307 ripd.c: (rip_packet_dump) Change nasty hard coded constants to
308 symbolic defines. Change various tests of 'ntoh.(variable) ==
309 constant' to test 'variable == ntoh.(constant)'. Clean up
310 indentation on some long lines.
311 (rip_auth_simple_password) ditto.
312 (rip_auth_md5) ditto, also add length argument and sanity check
313 md5 data offset field. Sanity check md5 auth length, accept RFC
314 or old-ripd/cisco lengths.
315 (rip_auth_md5_set) as per (rip_packet_dump), also write out
316 the configured md5 auth length for the interface (old-ripd or rfc)
317 (rip_read) as per (rip_packet_dump)
318 (rip_write_rte) ditto
319 (rip_response_process) ditto
320 (rip_write_rte) ditto
321
paulc2bfbcc2004-06-04 01:42:38 +00003222004-06-04 JJ Ludman <jacques.ludman@sun.com>
323
324 * ripd.c: Interoperability fix. Correct value for MD5 auth length
325 is 16. Accept packets with this set to >= 16, and set to 16
326 ourselves.
327
paul11dde9c2004-05-31 14:00:00 +00003282004-05-31 Sowmini Varadhan <sowmini.varadhan@sun.com>
329
330 * ripd.c: Fixup compile warnings
331 * rip_routemap.c: Ditto
332
paul0a589352004-05-08 11:48:26 +00003332004-05-08 Paul Jakma <paul@dishone.st>
334
335 * rip_zebra.c: sync with zclient changes.
336 * rip_interface.c: ditto.
337
paul239389b2004-05-05 14:09:37 +00003382004-05-05 Anthony.Golia@morganstanley.com
339
340 * ripd.c: (rip_update_jitter) Bound jitter to a more sensible
341 value, eg 1/4 of update time.
342
paula87552c2004-05-03 20:00:17 +00003432004-05-03 Paul Jakma <paul@dishone.st>
344
345 * ripd.c: (rip_rte_process) fix typo in merge of previous patch
346 and run function through indent.
347
paulb94f9db2004-05-01 20:45:38 +00003482004-03-19 Jean-Yves Simon <lethalwp@tiscali.be>
349
paula87552c2004-05-03 20:00:17 +0000350 * ripd.c: (rip_rte_process) make ripd also check on
351 administrative distance of his own links to update routes.
paulb94f9db2004-05-01 20:45:38 +0000352
hassoda9c9a22004-03-18 02:40:55 +00003532004-03-18 sowmini.varadhan@sun.com
354
355 * ripd.c: rip_send_packet can get null connected address when
356 called in response to a unicast rip-request. Handle correctly.
357
hassoa1455d82004-03-03 19:36:24 +00003582004-03-03 Krzysztof Oledzki <oleq@ans.pl>
359
hassocaa6f8a2004-03-03 19:48:48 +0000360 * ripd.c: fix "show ip rip" and per interface rip version selection.
hassoa1455d82004-03-03 19:36:24 +0000361
paul931cd542004-01-23 15:31:42 +00003622004-01-23 sowmini.varadhan@sun.com
363
364 * rip_interface.c: obsolete unbind code in
365 rip_interface_multicast_set, and instead do the more portable
366 (though slower) method of creating a socket for each outgoing packet
367 and binding the source address on the new socket.
368 * rip_interface.c, ripd.c, ripd.h: Modify rip_request_send so that
369 source address is determined by the caller of rip_request_send for
370 ripv1 packets and non-multicast interfaces (rip_request_send loops
371 over all connected address in all other cases).
372 * rip_send_packet: don't send packets with source set to
373 ZEBRA_IFA_SECONDARY connected addresses; improved debug messages;
374
paulf38a4712003-06-07 01:10:00 +00003752003-06-07 Andrew J. Schorr <aschorr@telemetry-investments.com>
376
377 * Allow ripd to receive RIPv1
378 * add default as valid param to passive-interface command
379
hasso16705132003-05-25 14:49:19 +00003802003-05-25 Vincent Jardin <vjardin@wanadoo.fr>
381
paulf38a4712003-06-07 01:10:00 +0000382 * 6Wind patch merge.
hasso16705132003-05-25 14:49:19 +0000383
paul445f1432003-05-16 19:00:31 +00003842003-04-19 Hasso Tepper <hasso@estpak.ee>
385
386 * rip_routemap.c: sync daemon's route-map commands to have same
387 syntax
388
paul718e3742002-12-13 20:15:29 +00003892002-07-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
390
391 * zebra-0.93 released.
392
3932002-06-30 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
394
395 * ripd.c (rip_output_process): When outgoing interface is same as
396 next hop interface, announce RIPv2 next hop otherwise set next hop
397 to 0. Revert previous change then take 6WIND way.
398
3992001-09-14 Akihiro Mizutani <mizutani@dml.com>
400
401 * ripd.c: RIP enabled interface's route is advertised by default.
402
4032001-08-28 NOGUCHI Kay <kay@v6.access.co.jp>
404
405 * rip_snmp.c (rip_ifaddr_delete): Add route_node_lookup() return
406 value check.
407
408 * rip_interface.c (rip_multicast_leave): Fix bug of multiple IP
409 address on one interface multicast join/leave bug.
410
4112001-08-26 NOGUCHI Kay <kay@v6.access.co.jp>
412
413 * rip_interface.c (no_rip_passive_interface): Add NO_STR.
414
4152001-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
416
417 * zebra-0.92a released.
418
4192001-08-15 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
420
421 * zebra-0.92 released.
422
4232001-06-17 Kunihiro Ishiguro <kunihiro@zebra.org>
424
425 * rip_routemap.c (route_match_ip_address_prefix_list): Add match
426 ip next-hop prefix-list WORD.
427
4282001-02-18 Kunihiro Ishiguro <kunihiro@zebra.org>
429
430 * rip_interface.c (rip_passive_interface_clean): Call
431 rip_passive_interface_apply_all.
432
4332001-02-12 Kunihiro Ishiguro <kunihiro@zebra.org>
434
435 * ripd.c (rip_response_process): Multicast address nexthop check
436 is moved from rip_nexthop_check.
437
4382001-02-08 Matthew Grant <grantma@anathoth.gen.nz>
439
440 * rip_interface.c (ipv4_multicast_join): Use
441 setsockopt_multicast_ipv4.
442 (ipv4_multicast_leave): Likewise.
443 (rip_if_ipv4_address_check): Interface which has IPv4 address can
444 be enabled.
445
4462001-02-08 Kunihiro Ishiguro <kunihiro@zebra.org>
447
448 * rip_interface.c (rip_interface_delete): To support pseudo
449 interface do not free interface structure.
450 * ripd.c (rip_output_process): If output interface is in simple
451 password authentication mode, we need space for authentication
452 data.
453
4542001-02-01 Kunihiro Ishiguro <kunihiro@zebra.org>
455
456 * ripd.c (rip_nexthop_check): Fix multicast address nexthop check.
457
458 * zebra-0.91 is released.
459
4602001-01-27 Kunihiro Ishiguro <kunihiro@zebra.org>
461
462 * ripd.c (show_ip_rip): Show metric infinity route's timeout.
463 (rip_rte_process): If current route is metric infinity, route is
464 replaced with received rte.
465 (rip_redistribute_delete): When redistribute route is deleted,
466 perform poisoned reverse.
467 (rip_redistribute_withdraw): Likewise.
468
4692001-01-25 Kunihiro Ishiguro <kunihiro@zebra.org>
470
471 * ripd.c (rip_response_process): RIPv2 routing table entry with
472 non directly reachable nexthop was dropped. The code is changed
473 to treat it as 0.0.0.0 nexthop.
474 (rip_destination_check): Check net 0 address destination.
475 (rip_nexthop_check): New function for checking nexthop address
476 validity.
477
4782001-01-15 Kunihiro Ishiguro <kunihiro@zebra.org>
479
480 * ripd.c (rip_request_process): Triggered update only send changed
481 route.
482
483 * rip_interface.c: Delete RIP_API part until new implementation
484 comes out.
485
486 * rip_snmp.: Likewise.
487
488 * rip_zebra.c: Likewise.
489
490 * ripd.c: Likewise.
491
4922001-01-11 Kunihiro Ishiguro <kunihiro@zebra.org>
493
494 * rip_interface.c (rip_if_init): Remove HAVE_IF_PSEUDO part.
495
4962001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org>
497
498 * zebra-0.90 is released.
499
5002001-01-01 Kunihiro Ishiguro <kunihiro@zebra.org>
501
502 * ripd.h (RIP_VTYSH_PATH): Change "/tmp/ripd" to "/tmp/.ripd".
503
5042000-12-25 David Lipovkov <davidl@nbase.co.il>
505
506 * ripd.c (rip_rte_process): When a route is in garbage collection
507 process (invalid with metric 16) and a router receives the same
508 route with valid metric then route was not installed into zebra
509 rib, but only into ripd rib. Moreover , it will never get into
510 zebra rib, because ripd wrongly assumes it's already there.
511 (rip_redistribute_add): When doing redistribute into rip other
512 route (e.g. connected) and the same route exists in ripd rib we
513 changed it in place - bug. Now we don't forget to remove old route
514 from zebra.
515 (rip_timeout): When removing routes from zebra I made sure that we
516 remove route with the metric we have in zebra and not the new
517 one. It doesn't make a difference now,but could be significant
518 when multipath support is done.
519
5202000-12-25 David Lipovkov <davidl@nbase.co.il>
521
522 * rip_zebra.c (rip_metric_unset): Fix bug of metric value unset.
523
5242000-11-25 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
525
526 * ripd.c (rip_request_process): Check passive flag of the
527 interface.
528
5292000-11-23 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
530
531 * rip_interface.c (rip_multicast_join): When IP_ADD_MEMBERSHIP
532 failed do not set runnning flag to the interface.
533
5342000-11-16 Kunihiro Ishiguro <kunihiro@zebra.org>
535
536 * ripd.c (rip_output_process): Memory leak related classfull
537 network generation is fixed.
538
5392000-11-16 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
540
541 * rip_interface.c (if_check_address): Obsolete pointopoint address
542 check is removed.
543
5442000-11-02 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
545
546 * rip_interface.c (if_check_address): Add pointopoint address
547 check.
548 (rip_interface_up): Add check for passive interface when interface
549 goes up.
550
5512000-10-23 Jochen Friedrich <jochen@scram.de>
552
553 * rip_snmp.c: rip_oid and ripd_oid are used in smux_open after it
554 is registered. So those variables must be static.
555
5562000-10-19 Kunihiro Ishiguro <kunihiro@zebra.org>
557
558 * rip_interface.c: Change to "no ip rip (send|receive)" command
559 accept version number argument.
560
5612000-10-17 Akihiro Mizutani <mizutani@dml.com>
562
563 * rip_routemap.c (route_set_ip_nexthop_compile): Change "match ip
564 next-hop" from IP address to access-list name.
565
5662000-10-17 Kunihiro Ishiguro <kunihiro@zebra.org>
567
568 * rip_peer.c: Change ot use linklist.c instaed of newlist.c.
569
5702000-10-16 Kunihiro Ishiguro <kunihiro@zebra.org>
571
572 * rip_offset.c: Change to use linklist.c instead of newlist.c.
573
5742000-10-02 Kunihiro Ishiguro <kunihiro@zebra.org>
575
576 * zebra-0.89 is released.
577
5782000-09-26 Akihiro Mizutani <mizutani@dml.com>
579
580 * rip_routemap.c (match_ip_nexthop): Add next-hop format check.
581
5822000-09-18 David Lipovkov <dlipovkov@OpticalAccess.com>
583
584 * rip_interface.c (ripd_api_get_if_rx_version): Corrects rip SNMP
585 and rip API functions dealing with rip version.
586
587 * rip_snmp.c (Status_Valid): SNMPv2-TC TEXTUAL-CONVENTION.
588
5892000-09-10 Kunihiro Ishiguro <kunihiro@zebra.org>
590
591 * rip_snmp.c (rip2IfLookup): Use rip_ifaddr_lookup_next() instead
592 of rip_if_lookup_next().
593
594 * rip_interface.c (rip_enable_network_lookup): Interface enable
595 check by interface's address with /32 prefix.
596
597 * ripd.c (rip_read): When RIP is configured with authentication
598 and no authentication in incoming packet, drop the packet.
599
600 * rip_interface.c (rip_interface_reset): RIP_AUTH_SIMPLE_PASSWORD
601 is default mode of authentication.
602 (rip_interface_new): Likewise.
603 (no_ip_rip_authentication_mode): Likewise.
604
605 * ripd.c (rip_read): Likewise.
606
6072000-09-10 David Lipovkov <davidl@nbase.co.il>
608
609 * rip_snmp.c: Set ASN_INTEGER v->type where it is needed.
610
6112000-09-08 Kunihiro Ishiguro <kunihiro@zebra.org>
612
613 * ripd.c (rip_auth_simple_password): Simple password
614 authentication using key-chain.
615 (rip_write_rte): Likewise.
616
617 * rip_interface.c (ip_rip_authentication_key_chain): Add check for
618 authentication string configuration.
619
6202000-09-08 Akihiro Mizutani <mizutani@dml.com>
621
622 * ripd.c (rip_write_rte): Add check for ri->auth_str.
623
6242000-09-07 Kunihiro Ishiguro <kunihiro@zebra.org>
625
626 * ripd_api.h: New file is added.
627
6282000-08-22 Kunihiro Ishiguro <kunihiro@zebra.org>
629
630 * ripd.c (rip_rte_process): rip_route_process() is renamed to
631 rip_rte_process() to clarify meanings of the function.
632 rip_route_process() is newly added to process RIP route selection.
633
6342000-08-18 Kunihiro Ishiguro <kunihiro@zebra.org>
635
636 * ripd.c (rip_incoming_filter): Extract incoming filter code to
637 function from rip_route_process(). Add check for all interface
638 filter.
639 (rip_outgoing_filter): Extract incoming filter code to function
640 from rip_output_process(). Add check for all interface filter.
641
642 * rip_zebra.c (rip_redistribute_clean): Reset redistribute status
643 when "no router rip" is performed.
644
645 * rip_interface.c (rip_interface_clean): Reset interface's RIP
646 enable status.
647
6482000-08-17 Kunihiro Ishiguro <kunihiro@zebra.org>
649
650 * ripd.c (rip_route_process): When metric infinity is received the
651 route is removed from service immediately.
652 (rip_timeout): Likewise.
653 (rip_garbage_collect): Do not delete route in garbage collection.
654 (rip_output_process): Check metric_out exceed metric infinity.
655
656 * zebra-0.88 is released.
657
6582000-08-15 Kunihiro Ishiguro <kunihiro@zebra.org>
659
660 * ripd.c (rip_distance_apply): Unlock node when there is matched
661 node.
662
6632000-08-13 Akihiro Mizutani <mizutani@dml.com>
664
665 * rip_routemap.c (match_ip_nexthop): Add check for IP address
666 validness.
667 (no_set_metric): Add new ALIAS.
668
6692000-08-07 Kunihiro Ishiguro <kunihiro@zebra.org>
670
671 * ripd.h (struct rip ): Add distance.
672
6732000-08-05 Kunihiro Ishiguro <kunihiro@zebra.org>
674
675 * rip_zebra.c (rip_zebra_ipv4_add): Use new Zebra api to register
676 routes. Pass RIP metric value to zebra.
677
6782000-08-02 Kunihiro Ishiguro <kunihiro@zebra.org>
679
680 * rip_main.c (main): Make struct thread thread from global
681 variable to local variable in main.
682
6832000-08-06 Kunihiro Ishiguro <kunihiro@zebra.org>
684
685 * ripd.c (rip_packet_dump): Add MD5 authentication dump function.
686 (rip_auth_md5): RIP MD5 authentication packet receive works.
687
6882000-08-02 David Lipovkov <davidl@nbase.co.il>
689
690 * rip_interface.c (rip_if_init): Install interface "pseudo"
691 commands.
692 (rip_interface_delete): Do not call if_delete() when interface is
693 pseudo interface.
694
6952000-07-31 Kunihiro Ishiguro <kunihiro@zebra.org>
696
697 * rip_interface.c (ip_rip_authentication_mode): "ip rip
698 authentication mode (md5|text)" is added.
699 (ip_rip_authentication_key_chain): "ip rip authentication
700 key-chain KEY-CHAIN" is added.
701 (rip_interface_clean): Clean all interface configuration.
702 (rip_interface_reset): Reset all interface configuration.
703 (rip_clean_network): Clean rip_enable_network.
704
705 * ripd.h (struct rip_interface): Add key_chain member.
706
707 * ripd.c: Include md5-gnu.h.
708
7092000-07-30 Kunihiro Ishiguro <kunihiro@zebra.org>
710
711 * ripd.h (RIP_NO_AUTH): Change RIP_NO_AUTH value from 1 to 0.
712
713 * ripd.c (rip_authentication): Use RIP_AUTH_SIMPLE_PASSWORD
714 instead of raw value 2.
715 (rip_write_rte): Likewise.
716 (rip_write_rte): Check ri->auth_type instead of ri->auth_str.
717
7182000-07-30 David Lipovkov <davidl@nbase.co.il>
719
720 * rip_interface.c (rip_if_down): Do not delete ZEBRA_ROUTE_KERNEL
721 route.
722
7232000-07-27 Kunihiro Ishiguro <kunihiro@zebra.org>
724
725 * ripd.c (rip_update_process): Add "passive-interface" command.
726
727 * ripd.h (struct rip_interface): Add passive member to struct
728 rip_interface.
729
7302000-07-24 Kunihiro Ishiguro <kunihiro@zebra.org>
731
732 * rip_interface.c (rip_if_init): Multiple RIP routes for one
733 prefix change. The codes are enclosed by #ifdef NEW_RIP_TABLE.
734
7352000-07-24 Akihiro Mizutani <mizutani@dml.com>
736
737 * rip_interface.c (rip_if_init): Use install_default() for
738 INTERFACE_NODE.
739
7402000-07-24 Kunihiro Ishiguro <kunihiro@zebra.org>
741
742 * ripd.c: First update timer will be invoked in two seconds.
743
7442000-07-09 Jochen Friedrich <jochen@scram.de>
745
746 * rip_snmp.c: Local function definitions to static. Add INTEGER
747 ASN_INTEGER and TIMETICKS ASN_TIMETICKS definition.
748 (rip2PeerLookup): Peer with domain lookup implemented.
749 (rip2PeerTable): Temporary disable RIP2PEERLASTUPDATE value
750 support due to unknown SNMP agent startup time.
751
7522000-07-05 Kunihiro Ishiguro <kunihiro@zebra.org>
753
754 * ripd.h: Sweep obsolete definitions.
755
756 * rip_interface.c (rip_split_horizon): Add "ip split-horizon"
757 command.
758
759 * ripd.c (rip_output_process): Remove split_horizon argument.
760 (rip_update_process): Likewise.
761
762 * ripd.h (struct rip_interface): Add split_horizon flag to struct
763 rip_interface.
764
7652000-07-04 Akihiro Mizutani <mizutani@dml.com>
766
767 * ripd.c (rip_version): Change VERSION to <1-2>.
768 Add "no version" command.
769
7702000-07-03 Kunihiro Ishiguro <kunihiro@zebra.org>
771
772 * rip_zebra.c (rip_redistribute_type_metric): "redistribute TYPE
773 metric <0-16>" command is added.
774
775 * rip_routemap.c (route_set_metric): Set metric_set when metric is
776 modified.
777
778 * ripd.h (struct rip_info): To check route-map set metric or not,
779 new member metric_set is added to struct rip_info.
780
781 * ripd.c (rip_route_process): Move metric handling code from
782 rip_response_process() to rip_route_process().
783 (rip_output_process): Set output offset-list metric.
784
7852000-07-02 Kunihiro Ishiguro <kunihiro@zebra.org>
786
787 * rip_offset.c (rip_offset_list): New file for offset-list.
788
7892000-07-02 Akihiro Mizutani <mizutani@dml.com>
790
791 * ripd.h (struct rip ): Add default_metric.
792
793 * ripd.c (rip_default_metric): "default-metric <1-16>" command is
794 added.
795 (config_write_rip): Change configuration order.
796
797 * rip_zebra.c: Fix help strings.
798
7992000-07-02 David Lipovkov <davidl@nbase.co.il>
800
801 * rip_interface.c (rip_if_init): Add IF_DELETE_HOOK.
802
8032000-07-01 Kunihiro Ishiguro <kunihiro@zebra.org>
804
805 * ripd.c (rip_output_process): If specified route-map does not
806 exist, it treated as deny all.
807
8082000-06-30 Kunihiro Ishiguro <kunihiro@zebra.org>
809
810 * rip_routemap.c (rip_route_map_init): Call rip_route_map_update
811 when route-map is deleted.
812
8132000-06-28 Kunihiro Ishiguro <kunihiro@zebra.org>
814
815 * rip_routemap.c (set_metric): For consistency with bgpd's set
816 metric, value range is set to <0-4294967295>.
817
8182000-06-28 David Lipovkov <davidl@nbase.co.il>
819
820 * rip_routemap.c (rip_route_map_update): Add check for rip is
821 enabled or not for avoid core dump.
822
823 * rip_debug.c (debug_rip_packet_direct): Fix bug of setting
824 rip_debug_packet flag.
825
8262000-06-13 David Lipovkov <davidl@nbase.co.il>
827
828 * rip_interface.c (rip_interface_delete): All work is done in
829 rip_if_down().
830
8312000-06-06 Kunihiro Ishiguro <kunihiro@zebra.org>
832
833 * ripd.c (rip_redistribute_delete): Fix bug of missing
834 route_unlock_node() when redistribute route is not found.
835
8362000-06-05 Akihirof Mizutani <mizutani@dml.com>
837
838 * rip_debug.c (rip_debug_init): Disable show debugging in
839 VIEW_NODE like other protocol daemon.
840
841 * rip_routemap.c: Change command argument to more comprehensive.
842
843 METRIC -> <0-16>
844 IFNAME -> WORD
845 IP_ADDR -> A.B.C.D
846 ACCSESS_LIST -> WORD
847
8482000-06-05 David Lipovkov <davidl@nbase.co.il>
849
850 * rip_interface.c (rip_interface_delete): Delete all routes
851 include static and kernel through the interface , because even if
852 the interface is added again there is no guarantee that it will
853 get the same ifindex as before.
854
8552000-05-31 Akihirof Mizutani <mizutani@dml.com>
856
857 * rip_debug.c: Fix rip debug help string.
858
8592000-04-27 Mirko Karanovic <mkaranov@torsel.alcatel.com>
860
861 * rip_interface.c (rip_interface_down): Remove interface from
862 multicast group when interface goes down.
863
8642000-04-03 David Lipovkov <davidl@nbase.co.il>
865
866 * rip_interface.c (rip_interface_down): Implemented rip functions
867 for interface up/down events: rip_interface_up() and
868 rip_interface_down()
869
8702000-03-16 David Lipovkov <davidl@nbase.co.il>
871
872 * rip_zebra.c (rip_zclient_init): Added rip functions for
873 interface up/down events.
874
8752000-02-15 Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
876
877 * ripd.c (rip_write_rte): "set metic" in route-map has no effect
878 for RIPv1 in ripd. It worked fine for RIPv2.
879
8802000-01-17 Kunihiro Ishiguro <kunihiro@zebra.org>
881
882 * ripd.c (show_ip_protocols_rip): Fix bug of "show ip protocls"
883 mis-display RIP version.
884
885 * ripd.h (struct rip_peer): Add timeout thread to rip_peer
886 structure.
887
8882000-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
889
890 * rip_peer.c: Add new file for supporting RIP peer.
891
8921999-12-26 David Lipovkov <davidl@nbase.co.il>
893
894 * ripd.c (rip_authentication): RIP authantication string is 16
895 bytes long.
896
8971999-12-10 Kunihiro Ishiguro <kunihiro@zebra.org>
898
899 * ripd.c (rip_read): Add check for minimum packet length.
900 Authentication check is moved from rip_process_response() to
901 rip_read(). Patch from David Lipovkov <davidl@nbase.co.il> is
902 applied then add rte number check by Kunihiro Ishiguro
903 <kunihiro@zebra.org>.
904
9051999-12-07 Kunihiro Ishiguro <kunihiro@zebra.org>
906
907 * ripd.c (rip_response_process): In case of packet is RIPv2 and
908 network is non zero and netmask is zero, apply netmask rule as
909 same as RIPv1.
910
9111999-11-06 Kunihiro Ishiguro <kunihiro@zebra.org>
912
913 * ripd.c (rip_timers): Fix bug of timers basic argument format.
914
9151999-11-03 Kunihiro Ishiguro <kunihiro@zebra.org>
916
917 * rip_snmp.c (rip2IfConfAddress): Forgot to include
918 RIP2IFCONFDOMAIN.
919
9201999-10-28 Kunihiro Ishiguro <kunihiro@zebra.org>
921
922 * ripd.h (struct rip_peer): New structure added.
923
9241999-10-26 Kunihiro Ishiguro <kunihiro@zebra.org>
925
926 * rip_zebra.c (rip_zebra_ipv4_add): Increment
927 rip_global_route_changes when route change occur.
928 (rip_zebra_ipv4_delete): Likewise.
929
930 * ripd.c (rip_request_process): Increment rip_global_queries when
931 reply to the query is sent.
932
9331999-10-25 Kunihiro Ishiguro <kunihiro@zebra.org>
934
935 * rip_debug.c (rip_debug_reset): Reset function added.
936
937 * ripd.c (rip_update_process): Logging bug is fixed.
938
9391999-10-10 Marc Boucher <marc@mbsi.ca>
940
941 * ripd.c (config_write_rip): Add config_write_distribute() call.
942
9431999-09-29 Kunihiro Ishiguro <kunihiro@zebra.org>
944
945 * ripd.c (rip_distribute_update): Fix bug of access-list
946 prefix-list updates.
947
9481999-09-10 VOP <vop@unity.net>
949
950 * rip_zebra.c: Add redistribute route-map feature.
951
9521999-09-10 Kunihiro Ishiguro <kunihiro@zebra.org>
953
954 * ripd.c (rip_response_process): Add check for given prefix is
955 given mask applied one.
956
9571999-09-03 VOP <vop@unity.net>
958
959 * rip_interface.c (rip_interface_multicast_set): Bug fix about
960 setting multicast interface.
961
9621999-09-02 VOP <vop@unity.net>
963
964 * rip_routemap.c: New file added.
965
9661999-09-02 Kunihiro Ishiguro <kunihiro@zebra.org>
967
968 * ripd.c (show_ip_protocols_rip): Show next update time.
969 (show_ip_protocols_rip): Show redistribute information.
970
9711999-08-25 Kunihiro Ishiguro <kunihiro@zebra.org>
972
973 * RIPv2-MIB.txt: New file added.
974
975 * rip_snmp.c: New file added.
976
9771999-08-24 Kunihiro Ishiguro <kunihiro@zebra.org>
978
979 * rip_interface.c (ip_rip_authentication_string): RIPv2
980 authentication command is added.
981
9821999-08-23 Kunihiro Ishiguro <kunihiro@zebra.org>
983
984 * rip_interface.c (rip_interface_multicast_set): Process of
985 setting IP_MULTICAST_IF on specific interface.
986
987 * ripd.c (rip_read): Add packet size check.
988
9891999-08-16 Kunihiro Ishiguro <kunihiro@zebra.org>
990
991 * ripd.c (rip_request_process): Fill in RIP_METRIC_INFINITY with
992 network byte order using htonl ().
993 (rip_response_process): Pass host byte order address to IN_CLASSC
994 and IN_CLASSB macro.
995
9961999-08-08 davidm@nbase.co.il (David Mozes)
997
998 * rip_zebra.c (rip_zebra_read_ipv4): Fix split horizon problem.
999
10001999-07-03 Kunihiro Ishiguro <kunihiro@zebra.org>
1001
1002 * ripd.c (rip_timer_set): Function added.
1003
10041999-07-01 Kunihiro Ishiguro <kunihiro@zebra.org>
1005
1006 * rip_debug.c: New file added.
1007 rip_debug.h: New file added.
1008
10091999-07-01 Rick Payne <rickp@rossfell.co.uk>
1010
1011 * rip_zebra.c (zebra_init): Install standard commands to
1012 ZEBRA_NODE.
1013
10141999-06-01 David Luyer <luyer@ucs.uwa.edu.au>
1015
1016 * ripd.c (rip_process_route): Add support for RIP version 1.
1017
10181999-05-29 Kunihiro Ishiguro <kunihiro@zebra.org>
1019
1020 * rip_zebra.c: Change to use lib/zclient.[ch].
1021
10221999-05-20 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1023
1024 * ripd.c (rip_add_route): Change the existance route's metric check
1025 to the condition specified by RFC2453.
1026
10271999-05-17 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1028
1029 * ripd.c (rip_process_route): Add the if metric to the route metric.
1030
1031 * ripd.c (rip_add_route): Deleted add if metric to the route.
1032
10331999-05-16 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1034
1035 * rip_interface.c (if_valid_neighbor): New function.
1036
1037 * ripd.c (rip_process_route): Added check whether the datagram
1038 is from a valid neighbor.
1039
10401999-05-15 Kunihiro Ishiguro <kunihiro@zebra.org>
1041
1042 * ripd.c (rip_process_route): Set interface pointer to rinfo.
1043
10441999-05-15 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1045
1046 * ripd.c (rip_check_address): Unicast and not net 0 or 127 check
1047 added.
1048
10491999-05-14 Stephen R. van den Berg <srb@cuci.nl>
1050
1051 * rip_main.c (signal_init): SIGTERM call sigint.
1052 (sigint): Loggging more better message.
1053
10541999-05-10 Kunihiro Ishiguro <kunihiro@zebra.org>
1055
1056 * ripd.c (rip_add_route): Fix previous route_unlock_node() chenge.
1057
1058 * rip_main.c (main): Change default zlog output to ZLOG_STDOUT for
1059 debugging.
1060
10611999-05-09 Patrick Koppen <koppen@rhrk.uni-kl.de>
1062
1063 * rip_interface.c (rip_request): Fix old semantics for fetching
1064 connected address.
1065
1066 * ripd.c (rip_add_route): Update timer when the route is updated.
1067
10681999-05-09 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1069
1070 * rip_zebra.c (struct zebra): Add ridist_static, ridist_connect,
1071 redist_rip, redist_ripng.
1072
1073 * rip_zebra.c (zebra_create): Updated for current zebra method.
1074
1075 * ripd.c (rip_add_route): Add missing route_unlock_node().
1076
10771999-05-03 Kunihiro Ishiguro <kunihiro@zebra.org>
1078
1079 * ripd.c (rip_add_route): Add metric check. Reported by Carlos
1080 Alberto Barcenilla <barce@frlp.utn.edu.ar>.
1081
10821999-02-18 Peter Galbavy <Peter.Galbavy@knowledge.com>
1083
1084 * syslog support added
1085
10861998-12-13 Kunihiro Ishiguro <kunihiro@zebra.org>
1087
1088 * ripd.c (rip_announce_func): Apply new lib functions.
1089
10901998-12-09 Kunihiro Ishiguro <kunihiro@zebra.org>
1091
1092 * ripd.c (config_write_rip): Delete vector v argument.
1093 * rip_zebra.c (config_write_zebra): Likewise.
1094 * rip_interface.c (interface_config_write): Likewise.
1095
10961998-09-07 Kunihiro Ishiguro <kunihiro@zebra.org>
1097
1098 * rip_announce.c (rip_rib_close): When ripd terminates delete all
1099 added route.
1100
11011998-09-01 Kunihiro Ishiguro <kunihiro@zebra.org>
1102
1103 * rip_interface.c: return read packet size.
1104
11051998-05-18 Yamshita TAKAO <jargon@lares.dti.ne.jp>
1106
1107 * ripd.h: Modify for compile on Solaris.
1108
11091998-05-07 Kunihiro Ishiguro <kunihiro@zebra.org>
1110
1111 * ripd.c: DEFUN function return CMD_SUCCESS.
1112 change xmalloc to XMALLOC macro.
1113
11141998-05-03 Kunihiro Ishiguro <kunihiro@zebra.org>
1115
1116 * rip_main.c: change CONFDIR to SYSCONFDIR.
1117
11181998-05-01 Kunihiro Ishiguro <kunihiro@zebra.org>
1119
1120 * .cvsignore: added.
1121
11221998-02-04 Kunihiro Ishiguro <kunihiro@zebra.org>
1123
1124 * rip_interface.c (config_write_interface): correct ADVERTISE spell.
1125
1126 * rip_main.c (main): add usage() and make cleanup.
1127
11281998-01-05 Kunihiro Ishiguro <kunihiro@zebra.org>
1129
1130 * ripd.c (rip_version): add rip version command.
1131
11321998-01-04 Kunihiro Ishiguro <kunihiro@zebra.org>
1133
1134 * rip_interface.c (zebra_get_interface): added to get
1135 interface's information.
1136
1137 * ChangeLog: create.