commit a857eb6be5b7f639e76fe3ef7711a3700abe20bc
Author: Paul Jakma <
[email protected]>
Date: Sun Apr 29 20:13:35 2007 +0000
[0.99] Version bump to 0.99.7
2007-04-29 Paul Jakma <
[email protected]>
* configure.ac: Bump to 0.99.7
commit 03e214c87bf4537576d2c7e9b2d812d1b0da2f56
Author: Paul Jakma <
[email protected]>
Date: Sun Apr 29 18:31:07 2007 +0000
[bgpd] Use defines for default weight
2007-04-22 Sebastien Tandel <
[email protected]>
* bgp_attr.h : Definition of BGP_ATTR_DEFAULT_WEIGHT.
* bgp_attr.c : (bgp_attr_default_intern) now uses
bgp_attr_default_set instead of duplicating the same code.
(general) Use of BGP_ATTR_DEFAULT_WEIGHT. Replace two 16 by
IPV6_MAX_BYTELEN.
commit 923de654c8d251d6714a6f9da2e93c236e935042
Author: Paul Jakma <
[email protected]>
Date: Sun Apr 29 18:25:17 2007 +0000
[bgpd] Fix warnings: hash callbacks should match hash API declarations
2007-04-22 Sebastien Tandel <
[email protected]>
* bgp_advertise.c : (baa_hash_alloc, baa_hash_key, baa_hash_cmp)
conforms to quagga hash API. Defines _hash_[alloc|key|cmp] with
void * arguments as defined by the API.
* bgp_aspath.c,h : (aspath_key_make) conforms to quagga hash API.
Defines _hash_[alloc|key|cmp] with void * arguments as defined by
the API.
* bgp_attr.c,h : (cluster_hash_alloc, cluster_hash_key_make,
cluster_hash_cmp, transit_hash_alloc, transit_hash_key_make,
transit_hash_cmp, attrhash_key_make, attrhash_cmp,
bgp_attr_hash_alloc) conforms to quagga hash API. Defines
_hash_[alloc|key|cmp] with void * arguments as defined by the API.
commit e8eb8340c14f53194786b766992f61cc0abf7a8e
Author: Paul Jakma <
[email protected]>
Date: Sun Apr 29 17:32:08 2007 +0000
[zebra/solaris] fix if_get_index passing wrong arg to lifreq_set_name
2007-04-29 Paul Jakma <
[email protected]>
* if_ioctl_solaris.c: (if_get_index) Fix bogus argument passed
to lifreq_set_name().
commit bd9da7fe8cdbc915f3b43a0632326401f28fe310
Author: Paul Jakma <
[email protected]>
Date: Sun Apr 29 16:50:46 2007 +0000
[zebra] Fix merge error in previous solaris changeset
2007-04-29 Paul Jakma <
[email protected]>
* ioctl{_solaris,}.c: (if_get_mtu) Fix missing ; in last commit.
commit bcdda30bae1fef67d998211c54c06270ba42864c
Author: Andrew J. Schorr <
[email protected]>
Date: Sun Apr 29 15:48:22 2007 +0000
[logging] Minor performance tweak
2007-04-29 Andrew J. Schorr <
[email protected]>
* log.c: (quagga_timestamp) Optimize the subsecond timestamp generation.
commit d3d7e237fdc661d1d1d00a8b43657d1d719410e6
Author: Andrew J. Schorr <
[email protected]>
Date: Sun Apr 29 15:24:15 2007 +0000
[logging] Add new "log timestamp precision" command for subsecond timestamps
2007-04-29 Andrew J. Schorr <
[email protected]>
* basic.texi: Document the new 'log timestamp precision' command.
commit c749b7227b331daaac23eb271698e4f60301619f
Author: Andrew J. Schorr <
[email protected]>
Date: Sun Apr 29 03:53:31 2007 +0000
[logging] Add new "log timestamp precision" command for subsecond timestamps
2007-04-28 Andrew J. Schorr <
[email protected]>
* vtysh.c: (vtysh_log_timestamp_precision,
no_vtysh_log_timestamp_precision) Implement new log timestamp
precision commands: send to all daemons.
(vtysh_init_vty) Install new log timestamp precision commands.
commit 1ed72e0b3a643fa1be6f1efa904965798a575cd1
Author: Andrew J. Schorr <
[email protected]>
Date: Sat Apr 28 22:14:10 2007 +0000
[logging] Add new "log timestamp precision" command for subsecond timestamps
2007-04-28 Andrew J. Schorr <
[email protected]>
* command.c: (config_write_host) Save "log timestamp precision"
if not default value.
(show_logging) Show configured timestamp precision.
(config_log_timestamp_precision) Enable configuration of timestamp
precision.
(no_config_log_timestamp_precision) Restore default timestamp
precision.
(cmd_init) Install new timestamp precision commands.
* log.h: (struct zlog) New timestamp_precision field.
(quagga_timestamp) New function to generate a timestamp with the
desired precision.
(struct timestamp_control) Declare a structure for use in avoiding
repeated duplicate calls to quagga_timestamp.
* log.c: (quagga_timestamp) New function to generate a timestamp
of the desired precision.
(time_print) Call quagga_timestamp if the time hasn't already been
calculated.
(vzlog) Initialize a timestamp_control structure and pass it to
time_print and vty_log.
(zlog_backtrace) Fix 64-bit problem: cannot print size_t with %u.
* vty.h: Must now include "log.h".
(vty_log) Takes an additional struct timestamp_control argument.
* vty.c: (vty_log_out) Use new struct timestamp_control and new
quagga_timestamp function to print timestamps of the desired
precision.
(vty_time_print) Use new quagga_timestamp function.
(vty_log) Accept new struct timestamp_control argument and pass it
down to vty_log_out.
commit eda9ba743c1eb7c32b2ae9b8989d3555f1890758
Author: Andrew J. Schorr <
[email protected]>
Date: Fri Apr 27 18:13:15 2007 +0000
[64-bit] Fix 4 problems with printf formats and 64-bit size_t
2007-04-27 Andrew J. Schorr <
[email protected]>
* lib/smux.c: (smux_trap) Fix printf format to work with 64-bit size_t.
* ospf6d/ospf6_snmp.c: (ospfv3AreaEntry, ospfv3AreaLsdbEntry) Fix some
zlog_debug printf formats to work with 64-bit size_t.
commit 33672eddf14c5b619fc38975d4c1f2888189cbc8
Author: Andrew J. Schorr <
[email protected]>
Date: Fri Apr 27 18:03:11 2007 +0000
[ripd, ripngd] Remove useless code in rip_vty_out_uptime function
2007-04-27 Andrew J. Schorr <
[email protected]>
* ripd/ripd.c: (rip_vty_out_uptime) Remove unused variable timer_now.
* ripngd/ripngd.c: (ripng_vty_out_uptime) Remove unused variable
timer_now.
commit e8a56f02ee52a0a4f06440f4dfef86a21e6ce5c1
Author: Andrew J. Schorr <
[email protected]>
Date: Sat Apr 21 20:46:31 2007 +0000
[ospfd] Fix bug in 'passive-interface default' behavior
2007-04-21 Andrew J. Schorr <
[email protected]>
* ospf_interface.c: (ospf_if_set_multicast) Fix bug: was testing
interface passive status improperly in light of the recent
'passive-interface default' patch. Now need to test
OSPF_IF_PASSIVE_STATUS(oi) instead of
OSPF_IF_PARAM(oi, passive_interface).
commit 1d720daa61692f9754d500ff530614798b8b3bf2
Author: David Young <
[email protected]>
Date: Mon Apr 16 23:13:01 2007 +0000
Use 'path (category)' form.
commit cb6d86bdc5711c9aeeeea8072ad3b6d730d0c591
Author: David Young <
[email protected]>
Date: Mon Apr 16 23:11:19 2007 +0000
Note my change to zebra/connected.c.
commit 33b931eef55a752b997f4122a715b470a4b48911
Author: David Young <
[email protected]>
Date: Mon Apr 16 05:54:02 2007 +0000
Only suppress adding a connected route to the kernel if it is
already marked "real" (ZEBRA_IFC_REAL), i.e., "in kernel." According
to Paul Jakma, this probably fixes Quagga bug #202.
commit 93c1749c828cf750fbcc850730b9f2a872e38325
Author: Andrew J. Schorr <
[email protected]>
Date: Sun Apr 15 19:17:24 2007 +0000
[bgpd] Minor performance improvement patch
2007-04-15 Sebastien Tandel <
[email protected]>
* bgp_aspath.c: (aspath_as_add, aspath_segment_add) Minor performance
optimization: while loop should test one pointer instead of two.
commit 6dfa827b7be871fc7301d4db04a99b509c9fd7aa
Author: Vincent Jardin <
[email protected]>
Date: Thu Apr 12 07:43:49 2007 +0000
Fix the display of some timers. (show ipv6 ripng and show ipv6 ripng status)
commit a1fdf9479637642ae3de0ee6ef5c0958d6e687d8
Author: Vincent Jardin <
[email protected]>
Date: Wed Apr 11 15:12:05 2007 +0000
Fix the display of route timeout in "show ip rip". (Use thread_timer_remain_second)
commit f5e004f74fecaf84b50f8c1823432077ad7e15b7
Author: Paul Jakma <
[email protected]>
Date: Tue Apr 10 19:43:43 2007 +0000
[zebra] MTU change should propogate to zserv client on BSD/Solaris
2007-04-10 Paul Jakma <
[email protected]>
* ioctl{_solaris,}.c: (if_get_mtu) Ping clients via
zebra_interface_up_update if MTU is changed.
commit 6e4ab12f1504caa95edc7702a82f118d0de15a0a
Author: Paul Jakma <
[email protected]>
Date: Tue Apr 10 19:36:48 2007 +0000
[bgpd] Bug #354: Take care to keep reads of MP_(UN)REACH_NLRI in bounds
2007-04-08 Paul Jakma <
[email protected]>
* bgp_attr.c: (general) Bug #354: parsing of MP_REACH_NLRI and
MP_UNREACH_NLRI does not take sufficient care to ensure reads
from stream buffer stay in-bounds. Hence bgpd may attempt to read
beyond end of stream, if given a crafted packet. As it uses the
stream access methods to do so, this will typically result in
assert() being hit in stream.c. Where code is compiled without
assert() enabled, result is unknown.
(struct message attr_str) should be static.
(bgp_mp_reach_parse) Carefully check length remaining in stream
against amount desired to read from stream, prior to each read,
particularly where lengths are conditional on data obtained from
stream - using STREAM_READABLE.
Remove code to parse SNPA-number, it's a defunct field and changed
to a fixed size in latest BGP MP update RFC - log warning if
SNPA-number is not 0.
(bgp_mp_unreach_parse) Check withdraw_length carefully against
STREAM_READABLE.
(bgp_attr_parse) If attribute-parser function returns error, log
warning.
Log attribute type on mismatch.
commit 16d2e2410d6e8cf53fac05b956f3e7ee53bc7234
Author: Paul Jakma <
[email protected]>
Date: Tue Apr 10 19:32:10 2007 +0000
[bgpd] V. quick route flap gets mistaken for duplicate, route is then ignored
2007-04-08 Paul Jakma <
[email protected]>
* bgp_route.c: (general) Same bug as fixed on 2006-11-28 by ajs for
bgp static routes, but for main BGP RIB: Quick 'flap' of routes
can cause bgpd to mistake a new route for a duplicate route,
due to presence of removed, but not yet processed BGP RIB entry.
(bgp_update_rsclient) Ignore REMOVED bgp_info for duplicate,
restore route instead.
(bgp_update_main) Ditto.
commit d9a18f1113b915dd0d2a4883a9149f06dd61352e
Author: Paul Jakma <
[email protected]>
Date: Tue Apr 10 19:30:20 2007 +0000
[zebra] Retain configured IPv4 address upon removal by kernel
2007-04-08 Paul Jakma <
[email protected]>
* interface.c: (if_delete_update) Address removal triggered
by kernel shouldn't remove configured IPv4 address from connected
list.
commit d9d00a689ea636af58f89cb62291245bb2a1bc7d
Author: Paul Jakma <
[email protected]>
Date: Tue Apr 10 19:28:04 2007 +0000
[testzebra] stubs should call kernel_address_add on IP address install
2007-04-08 Paul Jakma <
[email protected]>
* {ioctl,kernel}_null.c: Install of IP address should
reflect back to zebra via kernel_address_add..., makes
testzebra more useful.
commit 6dc686a29ecdfa8f8011eee17e4e6276ab175a0d
Author: Paul Jakma <
[email protected]>
Date: Tue Apr 10 19:24:45 2007 +0000
[zebra] Bug #351: Don't redistribute routes to ipv4 link-local prefixes
2007-04-07 Paul Jakma <
[email protected]>
* lib/prefix.h: Add define to match IPv4 Link-Local addresses
* zebra/redistribute.c: (zebra_check_addr) Don't redistribute routes
to IPv4 link-local prefixes, fixes bug #351.
* zebra/redistribute.h: Export zebra_check_addr.
* zebra/router-id.c: (router_id_bad_address) re-use zebra_check_addr
rather than implementing similar logic.
commit 37a217a59bfd32381034a0ce0adbac1c34cbec37
Author: Paul Jakma <
[email protected]>
Date: Tue Apr 10 19:20:29 2007 +0000
[bgpd] bug #352: IPv6/Multicast address-family config not written out
2007-04-07 Paul Jakma <
[email protected]>
* bgpd.c: (general) Fix bug #352
(bgp_config_write_family_header) write ipv6/multicast
address family header.
(bgp_config_write) write out ipv6 multicast AF config.
commit 85ef784e8a41a6dd11da42e10368f80c8bdb99d8
Author: Paul Jakma <
[email protected]>
Date: Fri Mar 23 11:19:08 2007 +0000
[ospfd] Bug #330 regression: failure to calculate routes through networks
2007-03-23 Paul Jakma <
[email protected]>
* ospf_spf.c: (ospf_nexthop_calculation) Fix silly regression
causing ospfd to fail to calculate paths past networks not
attached to root vertex, introduced with bug #330 fixes.
commit b75ae99e1d95685869fb38049e1936129fe17fc9
Author: Paul Jakma <
[email protected]>
Date: Fri Mar 23 11:17:28 2007 +0000
[ospfd] Instrument ospf_spf with more debug log messages
2007-03-23 Paul Jakma <
[email protected]>
* ospf_spf.c: (various) Add more debug statements.
commit 54afb658829d4bfe5de52685f77af8c8273e78c0
Author: Andrew J. Schorr <
[email protected]>
Date: Wed Mar 21 21:03:44 2007 +0000
[doc] Makefile VPATH patch
2007-03-21 Andrew J. Schorr <
[email protected]>
* Makefile.am: Patch rule for draft-zebra-00.txt to work
in VPATH build environments.
commit a4c648281dfdc45687580ea2d20884b5d7dbdc8d
Author: Andrew J. Schorr <
[email protected]>
Date: Wed Mar 21 18:57:38 2007 +0000
[ripd] Fix "show ip rip status" display of time until next update
2007-03-21 Andrew J. Schorr <
[email protected]>
* ripd.c: (show_ip_rip_status) Use new thread_timer_remain_second
function instead of rip_next_thread_timer to display the time until
next update properly.
(rip_next_thread_timer) Remove obsolete function.
commit afb88a669167358ea2be64aa0d10c8c42fa7509c
Author: Andrew J. Schorr <
[email protected]>
Date: Tue Mar 20 20:48:27 2007 +0000
[lib] Make message lookup function more robust.
2007-03-20 Andrew J. Schorr <
[email protected]>
* log.c: (mes_lookup) Make the function more robust: check for
cases where the index does not match the key value at that position.
If so, give a warning and fall back to a linear search.
And improve the error message in cases where even that fails.
commit ad81f8cc2e77275cdeef1267d1ff4173eb89e093
Author: Andrew J. Schorr <
[email protected]>
Date: Wed Mar 14 22:05:18 2007 +0000
[ospfd] Return SNMP standard neighbor state values, not quagga internal ones
2007-03-14 Andrew J. Schorr <
[email protected]>
* ospf_snmp.c: (ospf_snmp_neighbor_state) New function to
map internal quagga neighbor states to SNMP standard values.
(ospfNbrEntry) Call new ospf_snmp_neighbor_state function.
commit 56b3ea09bb613b066824c03290a58f8f2dfae9fd
Author: Andrew J. Schorr <
[email protected]>
Date: Wed Mar 14 20:21:43 2007 +0000
[ospfd] Fix two debug messages that used inet_ntoa more than once
2007-03-14 Andrew J. Schorr <
[email protected]>
* ospf_zebra.c: (ospf_zebra_add, ospf_zebra_delete) Fix bug
where inet_ntoa was used twice in the same debug message,
which doesn't work because there's a single shared buffer
for the returned string. The fix is to use inet_ntop.
commit c136d24406b62510a8c7a3c89e7716d0819e8fc2
Author: Paul Jakma <
[email protected]>
Date: Thu Mar 8 17:50:01 2007 +0000
[ospf6d] Bug 322: ospf6d show ipv6 neighbour showing wrong times
2007-03-08 David Siebörger
[email protected]
* ospf6_neighbor.c: (ospf6_neighbor_show) Fix bug #322, ospf6d
wasn't updated to match thread times changing to relative
time.
commit 6502208c3217e52e693146e6b72e76fd76982a51
Author: Paul Jakma <
[email protected]>
Date: Tue Mar 6 13:43:05 2007 +0000
[zebra] Fix interface metric bug on BSD
2007-03-06 Paul Jakma <
[email protected]>
* kernel_socket.c: (ifam_read) Do not update interface metric on
receipt of NEW/DEL ADDR messages, bogus as: a) some systems
dont include iface metric for address events b) we didn't
update clients either. Initial diagnosis by Eugene Grosbein.
commit c32d28b765e936acb8695f73a119d73cacff2610
Author: Andrew J. Schorr <
[email protected]>
Date: Tue Feb 27 15:24:36 2007 +0000
[ospf6d] Fix string comparison bug in ospf6_lsa_handler_name.
2007-02-27 Pavol Rusnak <
[email protected]>
* ospf6_lsa.c: (ospf6_lsa_handler_name) Fix bug: must use strcmp
to compare strings.
commit 4056a544eb0b7ea513bca0d70808e671c3f2c25b
Author: Andrew J. Schorr <
[email protected]>
Date: Tue Feb 27 13:55:46 2007 +0000
[ospfd] Fix bug: should exit immediately on SIGTERM if OSPF not actually running
2007-02-27 Andrew J. Schorr <
[email protected]>
* ospfd.c: (ospf_terminate) Exit immediately if ospf is not
actually running (e.g. the config file was empty). Fixes
bug where SIGTERM would not kill ospfd.
commit bd34fb346db5bb1f0bc8eeeef1868e296d889053
Author: Paul Jakma <
[email protected]>
Date: Mon Feb 26 17:14:48 2007 +0000
[ospfd] Fix regression in SPF introduced by bug#330 fixes
2007-02-26 Paul Jakma <
[email protected]>
* ospf_spf.c: Fix regression introduced with bug #330 fix: The
cost update added to ospf_spf_add_parent only handled PtP
case, differing from same functionality in higher-level
ospf_spf_next. Regression diagnosed by Anders Pedersen,
[email protected].
(ospf_vertex_new) Initialise vertices to max-cost.
(ospf_spf_init) Root vertex always creates with 0 cost.
(ospf_spf_add_parent) Remove the buggy V->W cost calculating
code, instead take the new distance as a parameter.
(ospf_nexthop_calculation) Take distance as parameter, so it
can be passed down to add_parent.
(ospf_spf_next) Dont initialise candiate vertex distance,
vertex_new does so already. Pass distance down to
nexthop_calculation (see above).
commit ff1dd550b01fd6bb4aa137cfee282e6175f89c50
Author: Paul Jakma <
[email protected]>
Date: Mon Feb 26 17:11:45 2007 +0000
[zebra] IRDP should ignore non-IPv4 addresses
2007-02-26 Robert Olsson <
[email protected]>
* irdp_main.c: (irdp_send_thread) Skip non-AF_INET addresses,
i.e. do not try interpret IPv6 addresses as IPv4 addresses
to broadcast in IRDP announcements..
commit def09df7d1df2f4583c68b5b7f02375f5a2e9dc7
Author: Paul Jakma <
[email protected]>
Date: Thu Feb 22 17:55:20 2007 +0000
[solaris] Add licence boilerplate to files for clarity
2007-02-22 Paul Jakma <
[email protected]>
* quagga.{xml,init}.in: Add licence boilerplate to ensure
licence terms are clear.
commit f2c31acb6f97688af0f368211536829324145919
Author: Paul Jakma <
[email protected]>
Date: Thu Feb 22 17:48:42 2007 +0000
[bgpd] Peer delete can race with reconfig leading to crash
2007-02-22 Paul Jakma <
[email protected]>
* bgp_fsm.c: (bgp_fsm_change_status) Handle state change into
clearing or greater here. Simpler.
(bgp_event) Clearing state change work moved to previous
* bgp_route.c: (bgp_clear_route_node) Clearing adj-in here
is too late, as it leaves a race between a peer being deleted
and an identical peer being configured before clearing
completes, leading to a crash.
Simplest fix is to clean peers Adj-in up-front, rather than
queueing such work.
(bgp_clear_route_table) Clear peer's Adj-In and Adj-Out
up-front here, rather than queueing such work.
Extensive comment added on the various bits of indexed data
that exist and how they need to be dealt with.
(bgp_clear_route) Update comment.
commit 553bdfe376c49886cbdc2d306fea7b003bead31f
Author: Greg Troxel <
[email protected]>
Date: Tue Feb 6 20:10:35 2007 +0000
use generic sed test so this works on autoconf 2.59
commit 9f0a19f525f3bbc7cb317b86468418b471ee1b34
Author: Greg Troxel <
[email protected]>
Date: Tue Feb 6 19:56:31 2007 +0000
de-support NetBSD 1.6, and note that FreeBSD 4 is on thin ice.
Update notes on required tool versions Note that autoconf 2.59 is the
standard (even though it's old, 2.60 and 2.61 are pretty recent). For
others, pick releases that are at least 1.5 years old.
Note that GNU awk is required.
Replace update-autotools reference with bootstrap.sh.
(no changelog, doc change only, per GNU coding standards)
commit 1bbaa8cfbd764b16d1ba892266ff641a60f67707
Author: Greg Troxel <
[email protected]>
Date: Tue Feb 6 19:36:47 2007 +0000
Better comment explaining that GNU awk is really required.
commit 2d70743df14f6e58343e29706acc8a9bc9351c2a
Author: Greg Troxel <
[email protected]>
Date: Tue Feb 6 19:28:28 2007 +0000
autoreconf -i
commit 0750e810164093ccbf7171883075dd5bbef062e1
Author: Greg Troxel <
[email protected]>
Date: Sat Feb 3 22:30:02 2007 +0000
add AC_PROC_SED
commit 003ca18f0433c0e0460b68aeb362cf7ba6ed5a4c
Author: Greg Troxel <
[email protected]>
Date: Sat Feb 3 01:07:01 2007 +0000
remove crufty m4 files from 2004. With the files, autoheader (2.61)
bombs on NetBSD. (Without, all is ok. We may need workarounds, but
first we should identify minimum tool versions and figure out what's
still wrong.)
ok'd by paul.
commit 409d8e4f5650a26307067b61a4e9df80f8c03dc3
Author: Greg Troxel <
[email protected]>
Date: Fri Feb 2 17:03:03 2007 +0000
use bootstrap.sh
commit d1a8316149fb2d9f6e79c80d87b483bd744046e4
Author: Greg Troxel <
[email protected]>
Date: Fri Feb 2 17:01:58 2007 +0000
Provide 'standard interface', even if it just invokes autoreconf.
commit 75a9140be69c464f3b73175209f726bfeabb0c09
Author: Greg Troxel <
[email protected]>
Date: Fri Feb 2 16:54:23 2007 +0000
ospf6d.h: remove declaration of errno (should be via header)
(from pkgsrc)
commit cf4a2bbeeaacbe97e88f737bcd904fbc9cf5e237
Author: Greg Troxel <
[email protected]>
Date: Fri Feb 2 16:52:38 2007 +0000
* README.NetBSD: use update-autotools instead of autoreconf
* update-autotools: print out tool name before invoking to aid debugging
commit bc20c1a4638db3b92a2e2f7f4b820e60f30a6146
Author: Paul Jakma <
[email protected]>
Date: Wed Jan 24 14:51:51 2007 +0000
[ospfd] Bug #330: SPF must consider that nexthop-calc may fail
2007-01-24 Paul Jakma <
[email protected]>
* ospf_spf.c: Bug #330: Nexthop calculation sometimes may fail,
and it needs to indicate this result to SPF.
(ospf_spf_add_parent) Flush of parent list needs to be done here,
for simplicity.
(ospf_nexthop_calculation) Caller needs to know whether
nexthop calculation succeeded. Every return statement must
correctly indicate such.
(ospf_spf_next) Queueing/prioritisation of vertices in SPF
must take into account whether nexthop_calculation succeeded,
or SPF may fail to find best paths.
commit fb6724a6b987cb6fab00cc9326674bd14a0d09fa
Author: Andrew J. Schorr <
[email protected]>
Date: Wed Dec 13 15:44:15 2006 +0000
[zebra] For solaris IPv6 PtP interfaces, try to support prefixlen != 128
2006-12-13 Andrew J. Schorr <
[email protected]>
* if_ioctl_solaris.c: (if_get_addr) For IPv6, stop assuming
that all IFF_POINTOPOINT have prefixlen of IPV6_MAX_BITLEN.
Instead, always try the SIOCGLIFSUBNET ioctl; if that fails,
then we fall back to IPV6_MAX_BITLEN for PtP interfaces.
commit e4529636b77124285cca96a62799d0ff6a7addeb
Author: Andrew J. Schorr <
[email protected]>
Date: Tue Dec 12 19:18:21 2006 +0000
[PtP over ethernet] New peer flag allows much more addressing flexibility
2006-12-12 Andrew J. Schorr <
[email protected]>
* if.h: (struct connected) Add new ZEBRA_IFA_PEER flag indicating
whether a peer address has been configured. Comment now shows
the new interpretation of the destination addr: if ZEBRA_IFA_PEER
is set, then it must contain the destination address, otherwise
it may contain the broadcast address or be NULL.
(CONNECTED_DEST_HOST,CONNECTED_POINTOPOINT_HOST) Remove obsolete
macros that were specific to IPv4 and not fully general.
(CONNECTED_PEER) New macro to check ZEBRA_IFA_PEER flag.
(CONNECTED_PREFIX) New macro giving the prefix to insert into
the RIB: if CONNECTED_PEER, then use the destination (peer) address,
else use the address field.
(CONNECTED_ID) New macro to come up with an identifying address
for the struct connected.
* if.c: (if_lookup_address, connected_lookup_address) Streamline
logic with new CONNECTED_PREFIX macro.
* prefix.h: (PREFIX_COPY_IPV4, PREFIX_COPY_IPV6) New macros
for better performance than the general prefix_copy function.
* zclient.c: (zebra_interface_address_read) For non-null destination
addresses, set prefixlen to equal the address prefixlen. This
is needed to get the new CONNECTED_PREFIX macro to work properly.
* connected.c: (connected_up_ipv4, connected_down_ipv4,
connected_up_ipv6, connected_down_ipv6) Simplify logic using the
new CONNECTED_PREFIX macro.
(connected_add_ipv4) Set prefixlen in destination addresses (required
by the CONNECTED_PREFIX macro). Use CONNECTED_PEER macro instead
of testing for IFF_POINTOPOINT. Delete invalid warning message.
Warn about cases where the ZEBRA_IFA_PEER is set but no
destination address has been supplied (and turn off the flag).
(connected_add_ipv6) Add new flags argument so callers may set
the ZEBRA_IFA_PEER flag. If peer/broadcast address satisfies
IN6_IS_ADDR_UNSPECIFIED, then reject it with a warning.
Set prefixlen in destination address so CONNECTED_PREFIX will work.
* connected.h: (connected_add_ipv6) Add new flags argument so
callers may set the ZEBRA_IFA_PEER flag.
* interface.c: (connected_dump_vty) Use CONNECTED_PEER macro
to decide whether the destination address is a peer or broadcast
address (instead of checking IFF_BROADCAST and IFF_POINTOPOINT).
* if_ioctl.c: (if_getaddrs) Instead of setting a peer address
only when the IFF_POINTOPOINT is set, we now accept a peer
address whenever it is available and not the same as the local
address. Otherwise (no peer address assigned), we check
for a broadcast address (regardless of the IFF_BROADCAST flag).
And must now pass a flags value of ZEBRA_IFA_PEER to
connected_add_ipv4 when a peer address is assigned.
The same new logic is used with the IPv6 code as well (and we
pass the new flags argument to connected_add_ipv6).
(if_get_addr) Do not bother to check IFF_POINTOPOINT: just
issue the SIOCGIFDSTADDR ioctl and see if we get back
a peer address not matching the local address (and set
the ZEBRA_IFA_PEER in that case). If there's no peer address,
try to grab SIOCGIFBRDADDR regardless of whether IFF_BROADCAST is set.
* if_ioctl_solaris.c: (if_get_addr) Just try the SIOCGLIFDSTADDR ioctl
without bothering to check the IFF_POINTOPOINT flag. And if
no peer address was found, just try the SIOCGLIFBRDADDR ioctl
without checking the IFF_BROADCAST flag. Call connected_add_ipv4
and connected_add_ipv6 with appropriate flags.
* if_proc.c: (ifaddr_proc_ipv6) Must pass new flags argument to
connected_add_ipv6.
* kernel_socket.c: (ifam_read) Must pass new flags argument to
connected_add_ipv6.
* rt_netlink.c: (netlink_interface_addr) Copy logic from iproute2
to determine local and possible peer address (so there's no longer
a test for IFF_POINTOPOINT). Set ZEBRA_IFA_PEER flag appropriately.
Pass new flags argument to connected_add_ipv6.
(netlink_address) Test !CONNECTED_PEER instead of if_is_broadcast
to determine whether the connected destination address is a
broadcast address.
* bgp_nexthop.c: (bgp_connected_add, bgp_connected_delete)
Simplify logic by using new CONNECTED_PREFIX macro.
* ospf_interface.c: (ospf_if_is_configured, ospf_if_lookup_by_prefix,
ospf_if_lookup_recv_if) Simplify logic using new CONNECTED_PREFIX
macro.
* ospf_lsa.c: (lsa_link_ptop_set) Using the new CONNECTED_PREFIX
macro, both options collapse into the same code.
* ospf_snmp.c: (ospf_snmp_if_update) Simplify logic using new
CONNECTED_ID macro.
(ospf_snmp_is_if_have_addr) Simplify logic using new CONNECTED_PREFIX
macro.
* ospf_vty.c: (show_ip_ospf_interface_sub) Use new CONNECTED_PEER macro
instead of testing the IFF_POINTOPOINT flag.
* ospfd.c: (ospf_network_match_iface) Use new CONNECTED_PEER macro
instead of testing with if_is_pointopoint. And add commented-out
code to implement alternative (in my opinion) more elegant behavior
that has no special-case treatment for PtP addresses.
(ospf_network_run) Use new CONNECTED_ID macro to simplify logic.
* rip_interface.c: (rip_interface_multicast_set) Use new CONNECTED_ID
macro to simplify logic.
(rip_request_interface_send) Fix minor bug: ipv4_broadcast_addr does
not give a useful result if prefixlen is 32 (we require a peer
address in such cases).
* ripd.c: (rip_update_interface) Fix same bug as above.