blob: 2b79a61d1443cff874d358979f7b326b5eddb20d [file] [log] [blame]
paul98fd1e62006-01-17 17:26:25 +000012006-01-17 Paul Jakma <paul.jakma@sun.com>
2
3 * ripd.c: (rip_auth_md5) remove pdigest, not needed.
4 Use a local buffer for the auth_str, where it can be properly
5 nul padded. Do so, hence fixing MD5 authentication.
6 Key looked up via key ring should be used in preference to
7 the RIPv1 simple password, not other way around.
8 No need to copy around digests, we can reference them
9 directly.
10 The auth_len received can't be trusted, some implementations
11 lie (e.g. older ripd).
12 (rip_auth_md5_ah_write) rename len local variable to doff
13 to be consistent with other functions.
14 (rip_auth_header_write) add the missing return.
15 (rip_auth_md5_set) use the proper constructs to access stream.
16
ajs35a60c22005-10-30 23:51:32 +0000172005-10-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
18
19 * ripd.c: (rip_response_process) Instead of calling
20 rip_interface.c:if_valid_neighbor(), call the equivalent
21 library function if_lookup_address().
22 * rip_interface.c: (if_valid_neighbor) Remove function, since it is
23 essentially equivalent to the if_lookup_address() library function.
24 * ripd.h: (if_valid_neighbor) Remove function declaration.
25
paul92779fe2005-10-28 10:23:09 +0000262005-10-28 Paul Jakma <paul.jakma@sun.com>
27
28 * Makefile.am: Add rip_interface.h, or else it doesn't get
29 included in dists.
30
pauldc63bfd2005-10-25 23:31:05 +0000312005-10-26 Paul Jakma <paul.jakma@sun.com>
32
33 * (general) static/extern functions and definitions.
34 * rip_interface.h: new file, export the public functions from
35 rip_interface.c
paul216565a2005-10-25 23:35:28 +000036 * ripd.c: Update couple more functions to specify void
37 explicitely.
pauldc63bfd2005-10-25 23:31:05 +000038
jardin38d3c162005-10-19 19:29:59 +0000392005-10-17 Vincent Jardin <vincent.jardin@6wind.com>
40
41 * ripd.c: rip_create_socket() for each packet, it does not bind to the
42 proper interfaces because we forget to use the from address when
43 it is specified.
44
vincentfac3e842005-10-06 07:45:43 +0000452005-10-06 Alain Ritoux <alain.ritoux@6wind.com>
46
47 * rip_interface.c: Now the command "no ip rip split-horizon
48 poisoned-reverse" just inhibates the poisoned-reverse effects
49 but keep spli-horizon activ.
50
ajsf52d13c2005-10-01 17:38:06 +0000512005-10-01 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
52
53 * rip_zebra.c: (config_write_rip_redistribute): Remove local hard-coded
54 table str[]. Replace str[] with calls to new library function
55 zebra_route_string().
56 * ripd.c: Remove local hard-coded table route_info[].
57 (show_ip_rip) Replace uses of str[] with calls to new library
58 functions zebra_route_char and zebra_route_string.
59
vincentfbf5d032005-09-29 11:25:50 +0000602005-09-29 Alain Ritoux <alain.ritoux@6wind.com>
61
62 * rip_snmp.c: rip2IfConfReceive() sends values in conformance
63 with RFC. Also PeerDomain is now set to a STRING type.
64 * ripd.h: rip_redistribute_add() API includes metric and distance
65 added field external_metric in routes.
66 * ripd.c: rip_redistribute_add() API i.e. stores metric and distance
67 Now allows a RIP-route to overcome a redistributed route coming
68 from a protocol with worse (higher) administrative distance
69 Metrics from redistribution are shown in show ip rip
70 * rip_zebra.c: adapt to the rip_redistribute_add() API, i.e.
71 provide distance and metric
72 * rip_interface.c: adapt to the rip_redistribute_add() API
73 * rip_routemap.c: no RMAP_COMPILE_ERROR on (metric > 16) usage
74 rather a CMD_WARNING, because set metric ius shared with other
75 protocols using larger values (such as OSPF)
76 The match metric action takes first external metric if present
77 (from redistribution) then RIP metric.
78
vincentc1a03d42005-09-28 15:47:44 +0000792005-09-28 Alain Ritoux <alain.ritoux@6wind.com>
80
81 * ripd.c: use new md5 API
82
paul2c61ae32005-08-16 15:22:14 +0000832005-08-16 Paul Jakma <paul.jakma@sun.com>
84
85 * ripd.c: (general) Fix previous commit, broke multicast bind and
86 hence setting of source port, which broke communication with
87 non-borken ripd. Fix removes more stuff from rip_interface.c
88 than it adds to ripd.c ;)
89 (rip_create_socket) the to argument really is a from argument,
90 rename it. Set the source port to RIP port unconditionally, it's
91 required.
92 (rip_send_packet) Set from address correctly for multicast.
93 (rip_output_process) trivial: num can be BSS specified, rather
94 than in body.
95 * rip_interface.c: (rip_interface_multicast_set) strip out
96 redundant stuff related to bind, which rip_create_socket does.
97 Just make it set the multicast socket option, as per the
98 interface concerned, no more.
99
paula4e987e2005-06-03 17:46:49 +00001002005-06-03 Paul Jakma <paul.jakma@sun.com>
101
102 * ripd.c: (rip_create_socket) move it up so rip_send_packet
paulf69bd9d2005-06-03 18:01:50 +0000103 can use it too. Make it static. Remove the getservbyname stuff,
104 as RFC2453 3.9.2 says non-RIP port messages should be discarded,
105 quagga doesnt accept them, no need to lookup port.
106 Take a 'to' argument, if socket should be bound to something else.
107 setsockopt_so_recvbuf might need privs, move it to the raised
108 privileges section.
109 dont forget to close the socket if bind fails.
110 (rip_send_packet) use strncpy, just in case (address is under
111 our control anyway, but still).
112 dont duplicate rip_create_socket - just use it.
113 (rip_create) rip_create_socket takes an argument now, modify.
114
paul7755a8c2005-06-02 08:20:53 +00001152005-06-01 Paul Jakma <paul.jakma@sun.com>
116
117 * rip_interface.c: Fix authentication, no-auth impossible to specify
118 (rip_interface_new) default to RIP_NO_AUTH
119 (rip_interface_reset) ditto
120 (rip_interface_config_write) write out config for simple
121
paul0cb8a012005-05-29 11:27:24 +00001222005-05-29 Paul Jakma <paul@dishone.st>
123
124 * ripd.c: (rip_output_process) fix error which crept in my
125 previous rip auth untanglement commit - it had become impossible
126 to not have authentication (even for v1).
127
hasso033e8612005-05-28 04:50:54 +00001282005-05-28 Hasso Tepper <hasso at quagga.net>
129
130 * rip_routemap.c: Fix set_metric_addsub_cmd help, it's not about BGP
131 metric.
132
hassocf96db12005-05-25 21:15:32 +00001332005-05-26 Hasso Tepper <hasso at quagga.net>
134
hassodc625e82005-05-26 06:26:40 +0000135 * rip_routemap.c: In case of '0.0.0.0' used as 'nexthop', use sender
136 address as nexthop in routemap.
137
1382005-05-26 Hasso Tepper <hasso at quagga.net>
139
hassocf96db12005-05-25 21:15:32 +0000140 * rip_routemap.c: Make "match interface" routemap command match both -
141 in and out interfaces.
142
ajsd4e47282005-05-11 15:56:21 +00001432005-05-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
144
145 * rip_interface.c (rip_interface_add): Need to call
146 rip_passive_interface_apply (was already calling it in
147 rip_interface_up).
148
ajs634f9ea2005-04-11 15:51:40 +00001492005-04-11 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
150
151 * rip_zebra.c (rip_redistribute_set, rip_redistribute_unset,
152 rip_redistribute_clean): Change 2nd arg to zebra_redistribute_send
153 from zclient->sock to zclient.
154
ajsd2fc8892005-04-02 18:38:43 +00001552005-04-02 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
156
157 * rip_interface.c: (rip_interface_delete) After deleting, set
158 ifp->ifindex to IFINDEX_INTERNAL.
159
paulb14ee002005-02-04 23:42:41 +00001602005-02-04 Paul Jakma <paul@dishone.st>
161
162 * ripd.c: Untangle the construction of RIP auth data.
163 (rip_auth_prepare_str_send) new helper function, prepare
164 correct key string.
165 (rip_auth_simple_write) new helper, write out the
166 rip simple password auth psuedo-RTE.
167 (rip_auth_md5_ah_write) new helper, write out the
168 MD5 auth-header psuedo-RTE.
169 (rip_auth_header_write) new helper, write out correct
170 auth header data / psuedo-RTE.
171 (rip_auth_md5_set) rip out the memmove and writing of the
172 auth header psuedo-RTE. So that all that is left is to
173 write the trailing auth digest, and update digest offset
174 field in the original header.
175 (rip_write_rte) rip out writing of RIP header, writing of
176 simple auth data psuedo-RTE. Make it do what its name suggests,
177 write out actual RTEs.
178 (rip_output_process) remove the incorrect additional decrements
179 of rtemax. Prepare the auth_str, which simple or MD5 auth will
180 need. Move write out of RIP header and auth data to inside the
181 loop. Adjust paramaters as required.
182
ajs79853452005-01-30 17:40:29 +00001832005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
184
ajs6a52d0d2005-01-30 18:49:28 +0000185 * ripd.c: (rip_create_socket) Replace perror with zlog_err.
186
1872005-01-30 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
188
ajs79853452005-01-30 17:40:29 +0000189 * ripd.c: (rip_create_socket) Save errno before calling
190 ripd_privs.change.
191
ajsb99760a2005-01-04 16:24:43 +00001922005-01-04 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
193
194 * ripd.c: (rip_recvmsg) Use ZCMSG_FIRSTHDR instead of CMSG_FIRSTHDR.
195
ajs766a0ca2004-12-15 14:55:51 +00001962004-12-15 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
197
198 * ripd.c: (rip_read) Improve 2 error messages to show the source of
199 the packet when the lookup fails.
200
ajs5d6c3772004-12-08 19:24:06 +00002012004-12-08 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
202
203 * *.c: Change level of debug messages to LOG_DEBUG.
204
ajs274a4a42004-12-07 15:39:31 +00002052004-12-07 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
206
207 * rip_main.c: (main) The 2nd argument to openzlog has been removed.
208
ajs887c44a2004-12-03 16:36:46 +00002092004-12-03 Andrew J. Schorr <ajschorr@alumni.princeton.edu>
210
211 * rip_main.c: (sigint) Use zlog_notice for termination message.
212 (main) Add a startup announcement using zlog_notice.
213
hassoc0652302004-11-25 19:33:48 +00002142004-11-25 Hasso Tepper <hasso at quagga.net>
215
216 * rip_main.c: Make group to run as configurable.
217
paulc49ad8f2004-10-22 10:27:28 +00002182004-10-22 Paul Jakma <paul@dishone.st>
219
220 * ripd.c: Collapse redundant passing of various address structs,
221 struct interface and struct connected as arguments to functions
222 down to two key arguments, namely struct connected and, possibly,
223 address of source/destination. Testing for RIPv1 would be useful.
224 (rip_read) lookup struct connected for the received packet, pass
225 it on.
226 * rip_interface.c: With previous changes, we no longer have to tread
227 carefully with struct connected, as it will always be there and
228 valid.
229
hasso3fb9cd62004-10-19 19:44:43 +00002302004-10-19 Andrew J. Schorr <aschorr@telemetry-investments.com>
231
232 * ripd.c: (rip_update_interface) if connected->destination is NULL,
233 get the broadcast address with ipv4_broadcast_addr()
234 * rip_interface.c: (rip_interface_multicast_set)
235 connected->destination may be NULL. Improve message if
236 setsockopt_multicast_ipv4 fails. Improve message if bind fails.
237 (rip_request_interface_send) If connected->destination is NULL,
238 get the broadcast address with ipv4_broadcast_addr().
239 (if_valid_neighbor) Handle PtP subnet addressing properly.
240 Speed up code by using prefix_match properly.
241
hassoc75105a2004-10-13 10:33:26 +00002422004-10-13 Hasso Tepper <hasso at quagga.net>
243
244 * ripd_snmp.c: Remove defaults used to initialize smux connection to
245 snmpd. Connection is initialized only if smux peer is configured.
246
hasso98b718a2004-10-11 12:57:57 +00002472004-10-11 Hasso Tepper <hasso at quagga.net>
248
249 * *.c: Make more strings const.
250
hasso8a676be2004-10-08 06:36:38 +00002512004-10-08 Hasso Tepper <hasso at quagga.net>
252
253 * *.c: Fix compiler warnings: make strings const, signed -> unsigned
254 etc.
255
hasso1af81932004-09-26 16:11:14 +00002562004-09-26 Hasso Tepper <hasso at quagga.net>
257
258 * ripd.c: Fix compiler warning.
259
hasso52dc7ee2004-09-23 19:18:23 +00002602004-09-23 Hasso Tepper <hasso at quagga.net>
261
262 * *.[c|h]: list -> struct list *, listnode -> struct listnode *.
263
paul0b3acf42004-09-17 08:39:08 +00002642004-09-17 Paul Jakma <paul@dishone.st>
265
266 * ripd.c: set receive buffer to a decent size, some systems have low
267 defaults. Problem noted and fix suggested by Stephan Schweizer
268 in [zebra 20967].
269
paul1a517862004-08-19 04:03:08 +00002702004-08-19 Paul Jakma <paul@dishone.st>
271
272 * rip_interface.c: (rip_interface_multicast_set) get rid
273 of extraneous if_pointopoint arg. ifp is accessible via connected.
274 pass connected->ifp->ifindex to setsockopt_multicast_ipv4.
275 * ripd.c: (rip_send_packet) update call to
276 rip_interface_multicast_set
277 * ripd.h: update rip_interface_multicast_set prototype
278
paul02ff83c2004-06-11 11:27:03 +00002792004-06-11 Sowmini Varadhan <sowmini.varadhan@sun.com>
280
281 * ripd.c: (rip_distribute_update_all) distribute list hook
282 function pointer prototype requires struct prefix_list * arg.
283 (rip_distribute_update_all_wrapper) update to pass required arg,
284 NULL.
285
paulca5e5162004-06-06 22:06:33 +00002862004-06-06 Paul Jakma <paul.jakma@sun.com>
287
288 * ripd.h: Add define for the RIPv2 Authentication Data family
289 Move the auth type defines up to where other defines live.
290 Add RIP_AUTH_MD5_COMPAT_SIZE, for backwards compatible
291 md5->auth_len size. Add md5_auth_len field to struct
292 rip_interface: (rip_interface_new) Init md5_auth_len to compatible
293 size.
294 (ip_rip_authentication_mode_cmd) Extended to handle setting
295 md5 auth-length. Appropriate aliases added.
296 (no_ip_rip_authentication_mode_cmd) Reset md5_auth_len to
297 compatible size.
298 (rip_interface_config_write) Teach it about md5_auth_len.
299 _always_ write out the auth-length, so that everyone will get
300 the setting in their config file, and hence allow for a future
301 change of default for md5_auth_len to be less painful - every md5
302 user will have this setting in their config file.
303 ripd.c: (rip_packet_dump) Change nasty hard coded constants to
304 symbolic defines. Change various tests of 'ntoh.(variable) ==
305 constant' to test 'variable == ntoh.(constant)'. Clean up
306 indentation on some long lines.
307 (rip_auth_simple_password) ditto.
308 (rip_auth_md5) ditto, also add length argument and sanity check
309 md5 data offset field. Sanity check md5 auth length, accept RFC
310 or old-ripd/cisco lengths.
311 (rip_auth_md5_set) as per (rip_packet_dump), also write out
312 the configured md5 auth length for the interface (old-ripd or rfc)
313 (rip_read) as per (rip_packet_dump)
314 (rip_write_rte) ditto
315 (rip_response_process) ditto
316 (rip_write_rte) ditto
317
paulc2bfbcc2004-06-04 01:42:38 +00003182004-06-04 JJ Ludman <jacques.ludman@sun.com>
319
320 * ripd.c: Interoperability fix. Correct value for MD5 auth length
321 is 16. Accept packets with this set to >= 16, and set to 16
322 ourselves.
323
paul11dde9c2004-05-31 14:00:00 +00003242004-05-31 Sowmini Varadhan <sowmini.varadhan@sun.com>
325
326 * ripd.c: Fixup compile warnings
327 * rip_routemap.c: Ditto
328
paul0a589352004-05-08 11:48:26 +00003292004-05-08 Paul Jakma <paul@dishone.st>
330
331 * rip_zebra.c: sync with zclient changes.
332 * rip_interface.c: ditto.
333
paul239389b2004-05-05 14:09:37 +00003342004-05-05 Anthony.Golia@morganstanley.com
335
336 * ripd.c: (rip_update_jitter) Bound jitter to a more sensible
337 value, eg 1/4 of update time.
338
paula87552c2004-05-03 20:00:17 +00003392004-05-03 Paul Jakma <paul@dishone.st>
340
341 * ripd.c: (rip_rte_process) fix typo in merge of previous patch
342 and run function through indent.
343
paulb94f9db2004-05-01 20:45:38 +00003442004-03-19 Jean-Yves Simon <lethalwp@tiscali.be>
345
paula87552c2004-05-03 20:00:17 +0000346 * ripd.c: (rip_rte_process) make ripd also check on
347 administrative distance of his own links to update routes.
paulb94f9db2004-05-01 20:45:38 +0000348
hassoda9c9a22004-03-18 02:40:55 +00003492004-03-18 sowmini.varadhan@sun.com
350
351 * ripd.c: rip_send_packet can get null connected address when
352 called in response to a unicast rip-request. Handle correctly.
353
hassoa1455d82004-03-03 19:36:24 +00003542004-03-03 Krzysztof Oledzki <oleq@ans.pl>
355
hassocaa6f8a2004-03-03 19:48:48 +0000356 * ripd.c: fix "show ip rip" and per interface rip version selection.
hassoa1455d82004-03-03 19:36:24 +0000357
paul931cd542004-01-23 15:31:42 +00003582004-01-23 sowmini.varadhan@sun.com
359
360 * rip_interface.c: obsolete unbind code in
361 rip_interface_multicast_set, and instead do the more portable
362 (though slower) method of creating a socket for each outgoing packet
363 and binding the source address on the new socket.
364 * rip_interface.c, ripd.c, ripd.h: Modify rip_request_send so that
365 source address is determined by the caller of rip_request_send for
366 ripv1 packets and non-multicast interfaces (rip_request_send loops
367 over all connected address in all other cases).
368 * rip_send_packet: don't send packets with source set to
369 ZEBRA_IFA_SECONDARY connected addresses; improved debug messages;
370
paulf38a4712003-06-07 01:10:00 +00003712003-06-07 Andrew J. Schorr <aschorr@telemetry-investments.com>
372
373 * Allow ripd to receive RIPv1
374 * add default as valid param to passive-interface command
375
hasso16705132003-05-25 14:49:19 +00003762003-05-25 Vincent Jardin <vjardin@wanadoo.fr>
377
paulf38a4712003-06-07 01:10:00 +0000378 * 6Wind patch merge.
hasso16705132003-05-25 14:49:19 +0000379
paul445f1432003-05-16 19:00:31 +00003802003-04-19 Hasso Tepper <hasso@estpak.ee>
381
382 * rip_routemap.c: sync daemon's route-map commands to have same
383 syntax
384
paul718e3742002-12-13 20:15:29 +00003852002-07-07 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
386
387 * zebra-0.93 released.
388
3892002-06-30 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
390
391 * ripd.c (rip_output_process): When outgoing interface is same as
392 next hop interface, announce RIPv2 next hop otherwise set next hop
393 to 0. Revert previous change then take 6WIND way.
394
3952001-09-14 Akihiro Mizutani <mizutani@dml.com>
396
397 * ripd.c: RIP enabled interface's route is advertised by default.
398
3992001-08-28 NOGUCHI Kay <kay@v6.access.co.jp>
400
401 * rip_snmp.c (rip_ifaddr_delete): Add route_node_lookup() return
402 value check.
403
404 * rip_interface.c (rip_multicast_leave): Fix bug of multiple IP
405 address on one interface multicast join/leave bug.
406
4072001-08-26 NOGUCHI Kay <kay@v6.access.co.jp>
408
409 * rip_interface.c (no_rip_passive_interface): Add NO_STR.
410
4112001-08-19 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
412
413 * zebra-0.92a released.
414
4152001-08-15 Kunihiro Ishiguro <kunihiro@ipinfusion.com>
416
417 * zebra-0.92 released.
418
4192001-06-17 Kunihiro Ishiguro <kunihiro@zebra.org>
420
421 * rip_routemap.c (route_match_ip_address_prefix_list): Add match
422 ip next-hop prefix-list WORD.
423
4242001-02-18 Kunihiro Ishiguro <kunihiro@zebra.org>
425
426 * rip_interface.c (rip_passive_interface_clean): Call
427 rip_passive_interface_apply_all.
428
4292001-02-12 Kunihiro Ishiguro <kunihiro@zebra.org>
430
431 * ripd.c (rip_response_process): Multicast address nexthop check
432 is moved from rip_nexthop_check.
433
4342001-02-08 Matthew Grant <grantma@anathoth.gen.nz>
435
436 * rip_interface.c (ipv4_multicast_join): Use
437 setsockopt_multicast_ipv4.
438 (ipv4_multicast_leave): Likewise.
439 (rip_if_ipv4_address_check): Interface which has IPv4 address can
440 be enabled.
441
4422001-02-08 Kunihiro Ishiguro <kunihiro@zebra.org>
443
444 * rip_interface.c (rip_interface_delete): To support pseudo
445 interface do not free interface structure.
446 * ripd.c (rip_output_process): If output interface is in simple
447 password authentication mode, we need space for authentication
448 data.
449
4502001-02-01 Kunihiro Ishiguro <kunihiro@zebra.org>
451
452 * ripd.c (rip_nexthop_check): Fix multicast address nexthop check.
453
454 * zebra-0.91 is released.
455
4562001-01-27 Kunihiro Ishiguro <kunihiro@zebra.org>
457
458 * ripd.c (show_ip_rip): Show metric infinity route's timeout.
459 (rip_rte_process): If current route is metric infinity, route is
460 replaced with received rte.
461 (rip_redistribute_delete): When redistribute route is deleted,
462 perform poisoned reverse.
463 (rip_redistribute_withdraw): Likewise.
464
4652001-01-25 Kunihiro Ishiguro <kunihiro@zebra.org>
466
467 * ripd.c (rip_response_process): RIPv2 routing table entry with
468 non directly reachable nexthop was dropped. The code is changed
469 to treat it as 0.0.0.0 nexthop.
470 (rip_destination_check): Check net 0 address destination.
471 (rip_nexthop_check): New function for checking nexthop address
472 validity.
473
4742001-01-15 Kunihiro Ishiguro <kunihiro@zebra.org>
475
476 * ripd.c (rip_request_process): Triggered update only send changed
477 route.
478
479 * rip_interface.c: Delete RIP_API part until new implementation
480 comes out.
481
482 * rip_snmp.: Likewise.
483
484 * rip_zebra.c: Likewise.
485
486 * ripd.c: Likewise.
487
4882001-01-11 Kunihiro Ishiguro <kunihiro@zebra.org>
489
490 * rip_interface.c (rip_if_init): Remove HAVE_IF_PSEUDO part.
491
4922001-01-09 Kunihiro Ishiguro <kunihiro@zebra.org>
493
494 * zebra-0.90 is released.
495
4962001-01-01 Kunihiro Ishiguro <kunihiro@zebra.org>
497
498 * ripd.h (RIP_VTYSH_PATH): Change "/tmp/ripd" to "/tmp/.ripd".
499
5002000-12-25 David Lipovkov <davidl@nbase.co.il>
501
502 * ripd.c (rip_rte_process): When a route is in garbage collection
503 process (invalid with metric 16) and a router receives the same
504 route with valid metric then route was not installed into zebra
505 rib, but only into ripd rib. Moreover , it will never get into
506 zebra rib, because ripd wrongly assumes it's already there.
507 (rip_redistribute_add): When doing redistribute into rip other
508 route (e.g. connected) and the same route exists in ripd rib we
509 changed it in place - bug. Now we don't forget to remove old route
510 from zebra.
511 (rip_timeout): When removing routes from zebra I made sure that we
512 remove route with the metric we have in zebra and not the new
513 one. It doesn't make a difference now,but could be significant
514 when multipath support is done.
515
5162000-12-25 David Lipovkov <davidl@nbase.co.il>
517
518 * rip_zebra.c (rip_metric_unset): Fix bug of metric value unset.
519
5202000-11-25 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
521
522 * ripd.c (rip_request_process): Check passive flag of the
523 interface.
524
5252000-11-23 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
526
527 * rip_interface.c (rip_multicast_join): When IP_ADD_MEMBERSHIP
528 failed do not set runnning flag to the interface.
529
5302000-11-16 Kunihiro Ishiguro <kunihiro@zebra.org>
531
532 * ripd.c (rip_output_process): Memory leak related classfull
533 network generation is fixed.
534
5352000-11-16 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
536
537 * rip_interface.c (if_check_address): Obsolete pointopoint address
538 check is removed.
539
5402000-11-02 Frank van Maarseveen <F.vanMaarseveen@inter.NL.net>
541
542 * rip_interface.c (if_check_address): Add pointopoint address
543 check.
544 (rip_interface_up): Add check for passive interface when interface
545 goes up.
546
5472000-10-23 Jochen Friedrich <jochen@scram.de>
548
549 * rip_snmp.c: rip_oid and ripd_oid are used in smux_open after it
550 is registered. So those variables must be static.
551
5522000-10-19 Kunihiro Ishiguro <kunihiro@zebra.org>
553
554 * rip_interface.c: Change to "no ip rip (send|receive)" command
555 accept version number argument.
556
5572000-10-17 Akihiro Mizutani <mizutani@dml.com>
558
559 * rip_routemap.c (route_set_ip_nexthop_compile): Change "match ip
560 next-hop" from IP address to access-list name.
561
5622000-10-17 Kunihiro Ishiguro <kunihiro@zebra.org>
563
564 * rip_peer.c: Change ot use linklist.c instaed of newlist.c.
565
5662000-10-16 Kunihiro Ishiguro <kunihiro@zebra.org>
567
568 * rip_offset.c: Change to use linklist.c instead of newlist.c.
569
5702000-10-02 Kunihiro Ishiguro <kunihiro@zebra.org>
571
572 * zebra-0.89 is released.
573
5742000-09-26 Akihiro Mizutani <mizutani@dml.com>
575
576 * rip_routemap.c (match_ip_nexthop): Add next-hop format check.
577
5782000-09-18 David Lipovkov <dlipovkov@OpticalAccess.com>
579
580 * rip_interface.c (ripd_api_get_if_rx_version): Corrects rip SNMP
581 and rip API functions dealing with rip version.
582
583 * rip_snmp.c (Status_Valid): SNMPv2-TC TEXTUAL-CONVENTION.
584
5852000-09-10 Kunihiro Ishiguro <kunihiro@zebra.org>
586
587 * rip_snmp.c (rip2IfLookup): Use rip_ifaddr_lookup_next() instead
588 of rip_if_lookup_next().
589
590 * rip_interface.c (rip_enable_network_lookup): Interface enable
591 check by interface's address with /32 prefix.
592
593 * ripd.c (rip_read): When RIP is configured with authentication
594 and no authentication in incoming packet, drop the packet.
595
596 * rip_interface.c (rip_interface_reset): RIP_AUTH_SIMPLE_PASSWORD
597 is default mode of authentication.
598 (rip_interface_new): Likewise.
599 (no_ip_rip_authentication_mode): Likewise.
600
601 * ripd.c (rip_read): Likewise.
602
6032000-09-10 David Lipovkov <davidl@nbase.co.il>
604
605 * rip_snmp.c: Set ASN_INTEGER v->type where it is needed.
606
6072000-09-08 Kunihiro Ishiguro <kunihiro@zebra.org>
608
609 * ripd.c (rip_auth_simple_password): Simple password
610 authentication using key-chain.
611 (rip_write_rte): Likewise.
612
613 * rip_interface.c (ip_rip_authentication_key_chain): Add check for
614 authentication string configuration.
615
6162000-09-08 Akihiro Mizutani <mizutani@dml.com>
617
618 * ripd.c (rip_write_rte): Add check for ri->auth_str.
619
6202000-09-07 Kunihiro Ishiguro <kunihiro@zebra.org>
621
622 * ripd_api.h: New file is added.
623
6242000-08-22 Kunihiro Ishiguro <kunihiro@zebra.org>
625
626 * ripd.c (rip_rte_process): rip_route_process() is renamed to
627 rip_rte_process() to clarify meanings of the function.
628 rip_route_process() is newly added to process RIP route selection.
629
6302000-08-18 Kunihiro Ishiguro <kunihiro@zebra.org>
631
632 * ripd.c (rip_incoming_filter): Extract incoming filter code to
633 function from rip_route_process(). Add check for all interface
634 filter.
635 (rip_outgoing_filter): Extract incoming filter code to function
636 from rip_output_process(). Add check for all interface filter.
637
638 * rip_zebra.c (rip_redistribute_clean): Reset redistribute status
639 when "no router rip" is performed.
640
641 * rip_interface.c (rip_interface_clean): Reset interface's RIP
642 enable status.
643
6442000-08-17 Kunihiro Ishiguro <kunihiro@zebra.org>
645
646 * ripd.c (rip_route_process): When metric infinity is received the
647 route is removed from service immediately.
648 (rip_timeout): Likewise.
649 (rip_garbage_collect): Do not delete route in garbage collection.
650 (rip_output_process): Check metric_out exceed metric infinity.
651
652 * zebra-0.88 is released.
653
6542000-08-15 Kunihiro Ishiguro <kunihiro@zebra.org>
655
656 * ripd.c (rip_distance_apply): Unlock node when there is matched
657 node.
658
6592000-08-13 Akihiro Mizutani <mizutani@dml.com>
660
661 * rip_routemap.c (match_ip_nexthop): Add check for IP address
662 validness.
663 (no_set_metric): Add new ALIAS.
664
6652000-08-07 Kunihiro Ishiguro <kunihiro@zebra.org>
666
667 * ripd.h (struct rip ): Add distance.
668
6692000-08-05 Kunihiro Ishiguro <kunihiro@zebra.org>
670
671 * rip_zebra.c (rip_zebra_ipv4_add): Use new Zebra api to register
672 routes. Pass RIP metric value to zebra.
673
6742000-08-02 Kunihiro Ishiguro <kunihiro@zebra.org>
675
676 * rip_main.c (main): Make struct thread thread from global
677 variable to local variable in main.
678
6792000-08-06 Kunihiro Ishiguro <kunihiro@zebra.org>
680
681 * ripd.c (rip_packet_dump): Add MD5 authentication dump function.
682 (rip_auth_md5): RIP MD5 authentication packet receive works.
683
6842000-08-02 David Lipovkov <davidl@nbase.co.il>
685
686 * rip_interface.c (rip_if_init): Install interface "pseudo"
687 commands.
688 (rip_interface_delete): Do not call if_delete() when interface is
689 pseudo interface.
690
6912000-07-31 Kunihiro Ishiguro <kunihiro@zebra.org>
692
693 * rip_interface.c (ip_rip_authentication_mode): "ip rip
694 authentication mode (md5|text)" is added.
695 (ip_rip_authentication_key_chain): "ip rip authentication
696 key-chain KEY-CHAIN" is added.
697 (rip_interface_clean): Clean all interface configuration.
698 (rip_interface_reset): Reset all interface configuration.
699 (rip_clean_network): Clean rip_enable_network.
700
701 * ripd.h (struct rip_interface): Add key_chain member.
702
703 * ripd.c: Include md5-gnu.h.
704
7052000-07-30 Kunihiro Ishiguro <kunihiro@zebra.org>
706
707 * ripd.h (RIP_NO_AUTH): Change RIP_NO_AUTH value from 1 to 0.
708
709 * ripd.c (rip_authentication): Use RIP_AUTH_SIMPLE_PASSWORD
710 instead of raw value 2.
711 (rip_write_rte): Likewise.
712 (rip_write_rte): Check ri->auth_type instead of ri->auth_str.
713
7142000-07-30 David Lipovkov <davidl@nbase.co.il>
715
716 * rip_interface.c (rip_if_down): Do not delete ZEBRA_ROUTE_KERNEL
717 route.
718
7192000-07-27 Kunihiro Ishiguro <kunihiro@zebra.org>
720
721 * ripd.c (rip_update_process): Add "passive-interface" command.
722
723 * ripd.h (struct rip_interface): Add passive member to struct
724 rip_interface.
725
7262000-07-24 Kunihiro Ishiguro <kunihiro@zebra.org>
727
728 * rip_interface.c (rip_if_init): Multiple RIP routes for one
729 prefix change. The codes are enclosed by #ifdef NEW_RIP_TABLE.
730
7312000-07-24 Akihiro Mizutani <mizutani@dml.com>
732
733 * rip_interface.c (rip_if_init): Use install_default() for
734 INTERFACE_NODE.
735
7362000-07-24 Kunihiro Ishiguro <kunihiro@zebra.org>
737
738 * ripd.c: First update timer will be invoked in two seconds.
739
7402000-07-09 Jochen Friedrich <jochen@scram.de>
741
742 * rip_snmp.c: Local function definitions to static. Add INTEGER
743 ASN_INTEGER and TIMETICKS ASN_TIMETICKS definition.
744 (rip2PeerLookup): Peer with domain lookup implemented.
745 (rip2PeerTable): Temporary disable RIP2PEERLASTUPDATE value
746 support due to unknown SNMP agent startup time.
747
7482000-07-05 Kunihiro Ishiguro <kunihiro@zebra.org>
749
750 * ripd.h: Sweep obsolete definitions.
751
752 * rip_interface.c (rip_split_horizon): Add "ip split-horizon"
753 command.
754
755 * ripd.c (rip_output_process): Remove split_horizon argument.
756 (rip_update_process): Likewise.
757
758 * ripd.h (struct rip_interface): Add split_horizon flag to struct
759 rip_interface.
760
7612000-07-04 Akihiro Mizutani <mizutani@dml.com>
762
763 * ripd.c (rip_version): Change VERSION to <1-2>.
764 Add "no version" command.
765
7662000-07-03 Kunihiro Ishiguro <kunihiro@zebra.org>
767
768 * rip_zebra.c (rip_redistribute_type_metric): "redistribute TYPE
769 metric <0-16>" command is added.
770
771 * rip_routemap.c (route_set_metric): Set metric_set when metric is
772 modified.
773
774 * ripd.h (struct rip_info): To check route-map set metric or not,
775 new member metric_set is added to struct rip_info.
776
777 * ripd.c (rip_route_process): Move metric handling code from
778 rip_response_process() to rip_route_process().
779 (rip_output_process): Set output offset-list metric.
780
7812000-07-02 Kunihiro Ishiguro <kunihiro@zebra.org>
782
783 * rip_offset.c (rip_offset_list): New file for offset-list.
784
7852000-07-02 Akihiro Mizutani <mizutani@dml.com>
786
787 * ripd.h (struct rip ): Add default_metric.
788
789 * ripd.c (rip_default_metric): "default-metric <1-16>" command is
790 added.
791 (config_write_rip): Change configuration order.
792
793 * rip_zebra.c: Fix help strings.
794
7952000-07-02 David Lipovkov <davidl@nbase.co.il>
796
797 * rip_interface.c (rip_if_init): Add IF_DELETE_HOOK.
798
7992000-07-01 Kunihiro Ishiguro <kunihiro@zebra.org>
800
801 * ripd.c (rip_output_process): If specified route-map does not
802 exist, it treated as deny all.
803
8042000-06-30 Kunihiro Ishiguro <kunihiro@zebra.org>
805
806 * rip_routemap.c (rip_route_map_init): Call rip_route_map_update
807 when route-map is deleted.
808
8092000-06-28 Kunihiro Ishiguro <kunihiro@zebra.org>
810
811 * rip_routemap.c (set_metric): For consistency with bgpd's set
812 metric, value range is set to <0-4294967295>.
813
8142000-06-28 David Lipovkov <davidl@nbase.co.il>
815
816 * rip_routemap.c (rip_route_map_update): Add check for rip is
817 enabled or not for avoid core dump.
818
819 * rip_debug.c (debug_rip_packet_direct): Fix bug of setting
820 rip_debug_packet flag.
821
8222000-06-13 David Lipovkov <davidl@nbase.co.il>
823
824 * rip_interface.c (rip_interface_delete): All work is done in
825 rip_if_down().
826
8272000-06-06 Kunihiro Ishiguro <kunihiro@zebra.org>
828
829 * ripd.c (rip_redistribute_delete): Fix bug of missing
830 route_unlock_node() when redistribute route is not found.
831
8322000-06-05 Akihirof Mizutani <mizutani@dml.com>
833
834 * rip_debug.c (rip_debug_init): Disable show debugging in
835 VIEW_NODE like other protocol daemon.
836
837 * rip_routemap.c: Change command argument to more comprehensive.
838
839 METRIC -> <0-16>
840 IFNAME -> WORD
841 IP_ADDR -> A.B.C.D
842 ACCSESS_LIST -> WORD
843
8442000-06-05 David Lipovkov <davidl@nbase.co.il>
845
846 * rip_interface.c (rip_interface_delete): Delete all routes
847 include static and kernel through the interface , because even if
848 the interface is added again there is no guarantee that it will
849 get the same ifindex as before.
850
8512000-05-31 Akihirof Mizutani <mizutani@dml.com>
852
853 * rip_debug.c: Fix rip debug help string.
854
8552000-04-27 Mirko Karanovic <mkaranov@torsel.alcatel.com>
856
857 * rip_interface.c (rip_interface_down): Remove interface from
858 multicast group when interface goes down.
859
8602000-04-03 David Lipovkov <davidl@nbase.co.il>
861
862 * rip_interface.c (rip_interface_down): Implemented rip functions
863 for interface up/down events: rip_interface_up() and
864 rip_interface_down()
865
8662000-03-16 David Lipovkov <davidl@nbase.co.il>
867
868 * rip_zebra.c (rip_zclient_init): Added rip functions for
869 interface up/down events.
870
8712000-02-15 Hidetoshi Shimokawa <simokawa@sat.t.u-tokyo.ac.jp>
872
873 * ripd.c (rip_write_rte): "set metic" in route-map has no effect
874 for RIPv1 in ripd. It worked fine for RIPv2.
875
8762000-01-17 Kunihiro Ishiguro <kunihiro@zebra.org>
877
878 * ripd.c (show_ip_protocols_rip): Fix bug of "show ip protocls"
879 mis-display RIP version.
880
881 * ripd.h (struct rip_peer): Add timeout thread to rip_peer
882 structure.
883
8842000-01-16 Kunihiro Ishiguro <kunihiro@zebra.org>
885
886 * rip_peer.c: Add new file for supporting RIP peer.
887
8881999-12-26 David Lipovkov <davidl@nbase.co.il>
889
890 * ripd.c (rip_authentication): RIP authantication string is 16
891 bytes long.
892
8931999-12-10 Kunihiro Ishiguro <kunihiro@zebra.org>
894
895 * ripd.c (rip_read): Add check for minimum packet length.
896 Authentication check is moved from rip_process_response() to
897 rip_read(). Patch from David Lipovkov <davidl@nbase.co.il> is
898 applied then add rte number check by Kunihiro Ishiguro
899 <kunihiro@zebra.org>.
900
9011999-12-07 Kunihiro Ishiguro <kunihiro@zebra.org>
902
903 * ripd.c (rip_response_process): In case of packet is RIPv2 and
904 network is non zero and netmask is zero, apply netmask rule as
905 same as RIPv1.
906
9071999-11-06 Kunihiro Ishiguro <kunihiro@zebra.org>
908
909 * ripd.c (rip_timers): Fix bug of timers basic argument format.
910
9111999-11-03 Kunihiro Ishiguro <kunihiro@zebra.org>
912
913 * rip_snmp.c (rip2IfConfAddress): Forgot to include
914 RIP2IFCONFDOMAIN.
915
9161999-10-28 Kunihiro Ishiguro <kunihiro@zebra.org>
917
918 * ripd.h (struct rip_peer): New structure added.
919
9201999-10-26 Kunihiro Ishiguro <kunihiro@zebra.org>
921
922 * rip_zebra.c (rip_zebra_ipv4_add): Increment
923 rip_global_route_changes when route change occur.
924 (rip_zebra_ipv4_delete): Likewise.
925
926 * ripd.c (rip_request_process): Increment rip_global_queries when
927 reply to the query is sent.
928
9291999-10-25 Kunihiro Ishiguro <kunihiro@zebra.org>
930
931 * rip_debug.c (rip_debug_reset): Reset function added.
932
933 * ripd.c (rip_update_process): Logging bug is fixed.
934
9351999-10-10 Marc Boucher <marc@mbsi.ca>
936
937 * ripd.c (config_write_rip): Add config_write_distribute() call.
938
9391999-09-29 Kunihiro Ishiguro <kunihiro@zebra.org>
940
941 * ripd.c (rip_distribute_update): Fix bug of access-list
942 prefix-list updates.
943
9441999-09-10 VOP <vop@unity.net>
945
946 * rip_zebra.c: Add redistribute route-map feature.
947
9481999-09-10 Kunihiro Ishiguro <kunihiro@zebra.org>
949
950 * ripd.c (rip_response_process): Add check for given prefix is
951 given mask applied one.
952
9531999-09-03 VOP <vop@unity.net>
954
955 * rip_interface.c (rip_interface_multicast_set): Bug fix about
956 setting multicast interface.
957
9581999-09-02 VOP <vop@unity.net>
959
960 * rip_routemap.c: New file added.
961
9621999-09-02 Kunihiro Ishiguro <kunihiro@zebra.org>
963
964 * ripd.c (show_ip_protocols_rip): Show next update time.
965 (show_ip_protocols_rip): Show redistribute information.
966
9671999-08-25 Kunihiro Ishiguro <kunihiro@zebra.org>
968
969 * RIPv2-MIB.txt: New file added.
970
971 * rip_snmp.c: New file added.
972
9731999-08-24 Kunihiro Ishiguro <kunihiro@zebra.org>
974
975 * rip_interface.c (ip_rip_authentication_string): RIPv2
976 authentication command is added.
977
9781999-08-23 Kunihiro Ishiguro <kunihiro@zebra.org>
979
980 * rip_interface.c (rip_interface_multicast_set): Process of
981 setting IP_MULTICAST_IF on specific interface.
982
983 * ripd.c (rip_read): Add packet size check.
984
9851999-08-16 Kunihiro Ishiguro <kunihiro@zebra.org>
986
987 * ripd.c (rip_request_process): Fill in RIP_METRIC_INFINITY with
988 network byte order using htonl ().
989 (rip_response_process): Pass host byte order address to IN_CLASSC
990 and IN_CLASSB macro.
991
9921999-08-08 davidm@nbase.co.il (David Mozes)
993
994 * rip_zebra.c (rip_zebra_read_ipv4): Fix split horizon problem.
995
9961999-07-03 Kunihiro Ishiguro <kunihiro@zebra.org>
997
998 * ripd.c (rip_timer_set): Function added.
999
10001999-07-01 Kunihiro Ishiguro <kunihiro@zebra.org>
1001
1002 * rip_debug.c: New file added.
1003 rip_debug.h: New file added.
1004
10051999-07-01 Rick Payne <rickp@rossfell.co.uk>
1006
1007 * rip_zebra.c (zebra_init): Install standard commands to
1008 ZEBRA_NODE.
1009
10101999-06-01 David Luyer <luyer@ucs.uwa.edu.au>
1011
1012 * ripd.c (rip_process_route): Add support for RIP version 1.
1013
10141999-05-29 Kunihiro Ishiguro <kunihiro@zebra.org>
1015
1016 * rip_zebra.c: Change to use lib/zclient.[ch].
1017
10181999-05-20 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1019
1020 * ripd.c (rip_add_route): Change the existance route's metric check
1021 to the condition specified by RFC2453.
1022
10231999-05-17 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1024
1025 * ripd.c (rip_process_route): Add the if metric to the route metric.
1026
1027 * ripd.c (rip_add_route): Deleted add if metric to the route.
1028
10291999-05-16 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1030
1031 * rip_interface.c (if_valid_neighbor): New function.
1032
1033 * ripd.c (rip_process_route): Added check whether the datagram
1034 is from a valid neighbor.
1035
10361999-05-15 Kunihiro Ishiguro <kunihiro@zebra.org>
1037
1038 * ripd.c (rip_process_route): Set interface pointer to rinfo.
1039
10401999-05-15 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1041
1042 * ripd.c (rip_check_address): Unicast and not net 0 or 127 check
1043 added.
1044
10451999-05-14 Stephen R. van den Berg <srb@cuci.nl>
1046
1047 * rip_main.c (signal_init): SIGTERM call sigint.
1048 (sigint): Loggging more better message.
1049
10501999-05-10 Kunihiro Ishiguro <kunihiro@zebra.org>
1051
1052 * ripd.c (rip_add_route): Fix previous route_unlock_node() chenge.
1053
1054 * rip_main.c (main): Change default zlog output to ZLOG_STDOUT for
1055 debugging.
1056
10571999-05-09 Patrick Koppen <koppen@rhrk.uni-kl.de>
1058
1059 * rip_interface.c (rip_request): Fix old semantics for fetching
1060 connected address.
1061
1062 * ripd.c (rip_add_route): Update timer when the route is updated.
1063
10641999-05-09 Carlos Alberto Barcenilla <barce@frlp.utn.edu.ar>
1065
1066 * rip_zebra.c (struct zebra): Add ridist_static, ridist_connect,
1067 redist_rip, redist_ripng.
1068
1069 * rip_zebra.c (zebra_create): Updated for current zebra method.
1070
1071 * ripd.c (rip_add_route): Add missing route_unlock_node().
1072
10731999-05-03 Kunihiro Ishiguro <kunihiro@zebra.org>
1074
1075 * ripd.c (rip_add_route): Add metric check. Reported by Carlos
1076 Alberto Barcenilla <barce@frlp.utn.edu.ar>.
1077
10781999-02-18 Peter Galbavy <Peter.Galbavy@knowledge.com>
1079
1080 * syslog support added
1081
10821998-12-13 Kunihiro Ishiguro <kunihiro@zebra.org>
1083
1084 * ripd.c (rip_announce_func): Apply new lib functions.
1085
10861998-12-09 Kunihiro Ishiguro <kunihiro@zebra.org>
1087
1088 * ripd.c (config_write_rip): Delete vector v argument.
1089 * rip_zebra.c (config_write_zebra): Likewise.
1090 * rip_interface.c (interface_config_write): Likewise.
1091
10921998-09-07 Kunihiro Ishiguro <kunihiro@zebra.org>
1093
1094 * rip_announce.c (rip_rib_close): When ripd terminates delete all
1095 added route.
1096
10971998-09-01 Kunihiro Ishiguro <kunihiro@zebra.org>
1098
1099 * rip_interface.c: return read packet size.
1100
11011998-05-18 Yamshita TAKAO <jargon@lares.dti.ne.jp>
1102
1103 * ripd.h: Modify for compile on Solaris.
1104
11051998-05-07 Kunihiro Ishiguro <kunihiro@zebra.org>
1106
1107 * ripd.c: DEFUN function return CMD_SUCCESS.
1108 change xmalloc to XMALLOC macro.
1109
11101998-05-03 Kunihiro Ishiguro <kunihiro@zebra.org>
1111
1112 * rip_main.c: change CONFDIR to SYSCONFDIR.
1113
11141998-05-01 Kunihiro Ishiguro <kunihiro@zebra.org>
1115
1116 * .cvsignore: added.
1117
11181998-02-04 Kunihiro Ishiguro <kunihiro@zebra.org>
1119
1120 * rip_interface.c (config_write_interface): correct ADVERTISE spell.
1121
1122 * rip_main.c (main): add usage() and make cleanup.
1123
11241998-01-05 Kunihiro Ishiguro <kunihiro@zebra.org>
1125
1126 * ripd.c (rip_version): add rip version command.
1127
11281998-01-04 Kunihiro Ishiguro <kunihiro@zebra.org>
1129
1130 * rip_interface.c (zebra_get_interface): added to get
1131 interface's information.
1132
1133 * ChangeLog: create.