paul [Fri, 24 Oct 2003 19:02:03 +0000 (19:02 +0000)]
2003-10-24 Jose Luis Rubio Guivernau <jrubio@dit.upm.es>
* Better 'show bgp' support for views (eg ipv6), see [quagga-dev 238]
* bgpd/bgp_route.c: (bgp_show) Take a struct bgp argument instead of
view string.
(bgp_show_neighbor_route) Take a struct peer argument instead of
ip string.
(peer_adj_routes) ditto
(show_adj_routes) ditto
(peer_lookup_in_view) new function to return appropriate struct
peer for a given view string.
(misc) Fixup all calls to above to reflect new calling arguments,
and use peer_lookup_in_view as needed. Additional commands
installed to use expanded functionality above, existing commands
modified to suit as well.
* bgpd/bgp_vty.c: 2 new aliases.
paul [Fri, 24 Oct 2003 04:39:18 +0000 (04:39 +0000)]
2003-10-24 waldi@debian.org
* vtysh/Makefile.am: vtysh_cmd.c rebuild was broken because it
depended against source files without specification, i.e. it
used ../zebra instead of $(top_srcdir)/zebra.
paul [Fri, 24 Oct 2003 04:24:39 +0000 (04:24 +0000)]
2003-10-24 Paul Jakma <paul@dishone.st>
* configure.ac: Check for fcntl()
* {bgpd,ospf,ospf6d,ripd,ripngd}/Makefile.am: Install conf file via
regular automake means, not magic install incantations, see
bug #38.
* lib/Makefile.am: install the headers, needed to link libzebra.a
(and hence libospf.a, OSPF-API, etc.)
paul [Fri, 24 Oct 2003 04:10:16 +0000 (04:10 +0000)]
2003-10-24 sowmini.varadhan@sun.com
* lib/pid_output.c: (pid_output) call pid_output_lock if we have
fcntl().
(pid_output_lock) grab exclusive write lock on pid file, rather
than rely on (fragile) exclusive create.
paul [Thu, 23 Oct 2003 20:39:50 +0000 (20:39 +0000)]
2003-10-23 Paul Jakma <paul@dishone.st>
* configure.ac: IRIX configure.ac support. Sort of works.
sysctl() crashes though (ipforward), there's some kind of odd
padding in the PF_ROUTE socket messages and setsockopt() on
SOCK_RAW does not work (so ospfd doesnt work).
paul [Wed, 22 Oct 2003 02:51:04 +0000 (02:51 +0000)]
2003-10-22 Paul Jakma <paul@dishone.st>
* vtysh/Makefile.am: do not include vtysh_cmd.c in dists, its
configure dependent. (still need to find a way to make building of
it dependent on configure options or include all commands.)
paul [Wed, 22 Oct 2003 00:07:44 +0000 (00:07 +0000)]
2003-10-22 Paul Jakma <paul@dishone.st>
* configure.ac: Split up header checks into non-net, net and ipv6
related. Checking of IPv6 is conditional. Add some more output
text for the end of the configure run.
paul [Sat, 18 Oct 2003 01:30:50 +0000 (01:30 +0000)]
2003-10-18 Lorenzo Colitti <lorenzo@ripe.net>
2003-10-18 Lorenzo Colitti <lorenzo@ripe.net>
* bgpd/bgp_attr.c: (bgp_dump_routes_attr) Dont dump IPv4 nexthop
for IP. Dump MP_NLRI attr with IPv6 next-hop for AF_INET6 address
family prefixes. Accept prefix as argument.
* bgpd/bgp_attr.c: modify bgp_dump_routes_attr declaration.
* bgpd/bgp_dump.c: (bgp_dump_routes_entry) Modify calls to
bgp_dump_routes_attr.
(bgp_dump_common) Go by the family of the peering socket, not
configured address family when dumping peering information.
Add HAVE_IPV6 conditionals, eg missing from previous bgp interval
patch.
paul [Sat, 18 Oct 2003 01:01:19 +0000 (01:01 +0000)]
2003-10-18 Lorenzo Colitti <lorenzo@ripe.net>
* bgpd/bgp_dump.{c,h}: (bgp_dump_interval_add) Dump at discrete
fixed intervals rather than fixed intervals from startup time.
(bgp_dump_interval_func) Dont return immediately if file cant be
openeded, but reschedule interval dumps, even - admin might
fix problem in meantime. Close the dump file in between intervals.
(bgp_dump_init) account for MSG header when initialising stream
size.
paul [Wed, 15 Oct 2003 23:20:17 +0000 (23:20 +0000)]
2003-10-15 sowmini.varadhan@sun.com
* ripd/ripd.c: (rip_send_packet) use rip->sock for mcast sends,
instead of creating one socket per send. send source addr to
rip_update_interface.
(rip_update_process) should send an update on every connected
network for each interface.
(rip_request_send) should send a request on every connected
network for each interface.
* ripd/ripd.h: update prototype for rip_interface_multicast_set
* ripd/rip_interface.c: (rip_interface_multicast_set) reorganized
so that it can be called repeatedly for aliased interfaces (on
multiple networks).
paul [Wed, 15 Oct 2003 23:08:55 +0000 (23:08 +0000)]
2003-10-15 Jay Fenlason <fenlason@redhat.com>
* lib/vty.c: (vty_telnet_option) Remote DoS exists if a telnet
end-sub-negotation is sent when no sub-negotation data has been
sent. Return immediately if no sub-negotation is in progress.
(vty_read) do not attempt to process options if no sub-negotation
is in progress.
paul [Wed, 15 Oct 2003 22:09:28 +0000 (22:09 +0000)]
2003-10-15 Paul Jakma <paul@dishone.st>
* lib/vty.c: (vty_save_cwd) dont crash if getcwd fails. try fallback
to SYSCONFDIR. Allocate cwd from the stack rather than relying on
(non-portable) getcwd() allocation (which we didnt seem to be
freeing).
paul [Wed, 15 Oct 2003 21:14:20 +0000 (21:14 +0000)]
2003-10-15 Paul Jakma <paul@dishone.st>
* ospfd/ospf_interface: (ospf_if_lookup_table) new function to
lookup oi for a given prefix in a given interfaces table of oi's.
(ospf_if_new) use ospf_if_lookup_table to deal with zebra
reporting new interface multiple times.
NB: This patch is a complete plaster-band of a hack. First, why is
zebra reporting interface events multiple times? Second, why does
ospfd maintain so many damn lists and tables relating to oi's -
these should be reconciled into one or two tables.
paul [Mon, 13 Oct 2003 09:47:32 +0000 (09:47 +0000)]
2003-10-13 Jay Fenlason <fenlason@redhat.com>
* lib/zebra.h: define UINT32_MAX for those systems which do not
provide it.
* bgp_attr.h: define BGP_MED_MAX.
* bgp_route.c: update defines/constants to BGP_MED_MAX.
* bgp_routemap.c: ditto. clean up route_match_metric_compile
slightly to avoid unneccesary XMALLOC.
paul [Mon, 13 Oct 2003 09:06:46 +0000 (09:06 +0000)]
2003-10-13 sowmini.varadhan@sun.com
* ospf_lsa.h: Add OSPF_LSA_PREMATURE_AGE flag.
* ospf_lsa.c: added better debug comments. check sequence number in
ospf_lsa_install. ospf_maxage_lsa_remover() checks for
OSPF_LSA_PREMATURE_AGE and re-originates the lsa after ls_acks are
received.
* ospf_flood.c: improve debug statement- print ls_seqnum.
paul [Mon, 29 Sep 2003 20:06:13 +0000 (20:06 +0000)]
2003-09-29 Gilad Arnold <gilad.arnold@terayon.com>
* zebra/zebra_rib.c: Fix possible dangling reference to rib
route_nodes - unlock it the appropriate number of times. (twice,
because of the implicit lock). see [quagga-dev 251].
paul [Mon, 29 Sep 2003 19:54:53 +0000 (19:54 +0000)]
2003-09-29 Paul Jakma <paul@dishone.st>
* zebra/connected.c: revert the 'generic PtP' patch as it causes
far too many problems. People who use FreeSWAN should investigate
native linux ipsec.
* zebra/rt_netlink.c: ditto
* lib/if.c: ditto
* ripd/ripd.h: ditto
* ripd/ripd.c: ditto
* ripd/rip_interface.c: ditto
* ospfd/ospfd.c: ditto
* ospfd/ospf_snmp.c: ditto
* bgpd/bgp_nexthop.c: ditto
paul [Wed, 24 Sep 2003 05:09:26 +0000 (05:09 +0000)]
2003-09-24 Paul Jakma <paul@dishone.st>
* lib/version.h: moved to version.h.in
* lib/version.h.in: New file, from version.h. Change hardcoded
package name and version to use the autoconf defined substition
variables.
* configure.ac: Fix up AC/AM_INIT* to new style. Remove the sed'ing
through lib/version.h for VERSION. Add lib/version.h to the
AC_OUTPUT list. Update the text output of quagga version at end
of configure run to use PACKAGE_VERSION.
* doc/.cvsignore: ignore quagga.pdf
* doc/.cvsignore: ignore version.h, its now autogenerated.
paul [Wed, 24 Sep 2003 00:05:45 +0000 (00:05 +0000)]
2003-09-24 sowmini.varadhan@sun.com
* zebra/kernel_socket.c: Fix up WRAPUP macro to deal with multiple
address families in the absence of sa_len element in struct
sockaddr.
(ifm_read): Handle solaris 9 if_msghdr_t.
Deal with interfaces which are incomplete, lookup on name rather
than the placeholder interface index of -1.
paul [Tue, 23 Sep 2003 23:20:08 +0000 (23:20 +0000)]
2003-09-24 Thomas Giger TGC <thomas.giger@tgc.de>
* ospf_packet.c (ospf_associate_packet_vl): pass NULL struct
interface to ospf_if_lookup_by_local_addr() rather than the
receiving interface ifp, packets for VL's could come in any
interface. See quagga-dev 250.
paul [Wed, 27 Aug 2003 06:45:32 +0000 (06:45 +0000)]
2003-08-27 Jay Fenlason <fenlason@redhat.com>
* bgpd/bgp_routemap.c: attr->med is type u_in32_t, should be
compared with UINT32_MAX
* ospfd/ospfd.c: remove redundant assert
* zebra/rtadv.c: add missing include for zebra/rib.h
paul [Fri, 1 Aug 2003 00:24:13 +0000 (00:24 +0000)]
2003-08-01 Cougar <cougar@random.ee>
* lib/if.c: (if_cmp_func) new function, compare interface names in
alphabetical order.
(if_create) Take name as argument and add interface in sorted order.
(if_get_by_name),(interface_cmd) fixup calls to if_create - see
above.
(if_init) register list comparison function.
* lib/if.h: Add comparison function, modify if_create prototype.
* lib/zclient.c: Modify call to if_create.
* ospfd/ospf_interface.c: (ospf_vl_new) modify call to if_create.
change sprintf to snprintf.
* zebra/kernel_socket.c: (ifm_read) modify call to if_create.
* ospf_packet.c (ospf_ls_upd_send_queue_event): get next route
node in body of the loop to avoid chance that route node
is unlocked and deleted before the next iteration tries to
get next route node.
paul [Tue, 15 Jul 2003 12:52:22 +0000 (12:52 +0000)]
2003-07-15 Paul Jakma <paul@dishone.st>
* lib/version.h: add ZEBRA_URL (unused for now)
* lib/vty.c: CMD_ERR_NOTHING_TODO when reading conf file should not
be fatal. slight reformating.
* ospfd/ospf_zebra.c: ignore reject/blackhole routes if zebra sends
these type of routes. probably should be a new type of route to
allow daemons to more easily choose whether to redistribute them
- rathen than just a flag (eg for reject/blackhole).
reorder the is_prefix_default test for ZEBRA_IPV4_ROUTE_DELETE to
avoid the inverted test - slightly more readable.
* redhat/zebra.spec.in: Add ospfapi port to services file, if
with_ospfapi.
* zebra/rib.h: Change nexthop types to an enum.
* zebra/rt_netlink.c: run it through indent -nut.
Add nexthop_types_desc[] descriptive array for nexthop types.
(netlink_route_multipath) debug statements indicate which branch
they are in and print out nexthop type.
* zebra/zebra_rib.c: slight reformatting.
* zebra/zebra_vty.c: Pass ZEBRA_FLAG_BLACKHOLE flag to
static_add_ipv4() if Null0 route is configured. print out Null0 if
STATIC_IPV4_BLACKHOLE route, and ignore flags (shouldnt be
possible to set flags from vty) for config and show route.
paul [Sun, 13 Jul 2003 01:36:06 +0000 (01:36 +0000)]
2003-07-13 Paul Jakma <paul@dishone.st>
* ospf_lsa.c: fix up some places where an NSSA specific define,
(OSPF_LSA_LOCAL_XLT) was referenced in if statements without being
ifdef'ed by HAVE_NSSA.
paul [Sat, 12 Jul 2003 21:49:25 +0000 (21:49 +0000)]
2003-07-12 Matthias Ferdinand <mferd@sanet.de>
* zebra/if_proc.c: zebra does not close the file after reading
/proc/net/dev for retrieving interface names and statistics.
call fclose(fp) before returning from ifstat_update_proc()
or interface_list_proc()
paul [Sat, 12 Jul 2003 21:43:01 +0000 (21:43 +0000)]
2003-07-12 Paul Jakma <paul@dishone.st>
* bgp_vty.c: install the neighbor_set_peer_group_cmd,
neighbor_soft_reconfiguration_cmd and neighbor_unsuppress_map_cmd
family of commands into the VPNv4 address family config node.
paul [Sat, 12 Jul 2003 21:30:57 +0000 (21:30 +0000)]
2003-07-12 Paul Jakma <paul@dishone.st>
* (global): Add/fixup NSSA ABR translation functionality
* ospfd.h: Adjust the NSSA ROLE defines. Rename STATE to TRANSLATE.
Rename the LSA_NSSA_GET define to LSA_OPTIONS_NSSA_GET.
* ospfd.c: Adjust to match changes to ospfd.h
* ospf_te.c: Adjust to match change to LSA_NSSA_GET.
* ospf_lsa.h: slights reformatting.
Add new NSSA functions, ospf_translated_nssa_compare() (not
currently used), ospf_translated_nssa_refresh() and
ospf_translated_nssa_originate().
* ospf_lsa.c: Implemented aforementioned new functions. Fix up
several NSSA hooks to /not/ be called for Type-5s which are
translated. Add additional hooks. Set the ROUTER_LSA_NT bit in
router-lsa flags if ABR does translation. New function,
ospf_lsa_translated_nssa_new() implemented. Dont register
translated LSAs for refreshing - instead we implicitly rely on
the ASBR refreshing the Type-7, and refresh the translated Type-5
at the same time. Some minor reformatting. Extra debug info added.
Also, existing debug statements modified to report LSA Id.
* ospf_flood.c: call ospf_translated_nssa_refresh() when refreshing
Type-7. minor reformatting.
* ospf_dump.c: Dump NSSA LSAs.
* ospf_asbr.h: slight reformatting. Export
ospf_external_route_lookup() (though, not used. probably will
undo this).
* ospf_abr.c: Slight reformatting in many places. Update to match
ospfd.h changes.
(ospf_abr_translate_nssa): make it work, using the new ospf_lsa
translation functions.
(Several places): change struct prefix * to struct prefix_ipv4 *.
(might as well do the casts at higher levels). Add more debug
info.
(ospf_abr_announce_stub_defaults): announce default to NSSA areas
too.
(ospf_abr_announce_nssa_defaults): do nothing. this function
probably should die. (see ospf_abr_announce_stub_defaults).
(ospf_abr_task_timer): run NSSA tasks.
paul [Fri, 11 Jul 2003 17:42:09 +0000 (17:42 +0000)]
2003-06-11 Paul Jakma <paul@dishone.st>
* zebra/if_ioctl.c: Fix missing declaration for if_fake_index.
See bug id #24: http://bugzilla.dishone.st/show_bug.cgi?id=24
reported by Vsevolod Sipakov.
paul [Mon, 30 Jun 2003 21:41:26 +0000 (21:41 +0000)]
2003-06-30 Paul Jakma <paul@dishone.st>
* ospf_packet.c: (ospf_ls_upd_send_queue_event) undo fix suggested
Mikael Lonnroth. As per Kamatchi Soundaram /
[zebra 19590], original behaviour is correct.
paul [Fri, 27 Jun 2003 01:28:45 +0000 (01:28 +0000)]
2003-06-27 Paul Jakma <paul@dishone.st>
* ospf_vty.c: (global) add, unused, description array for lsa flags.
(show_ip_ospf_database_header): pretty print options, printf hex
numbers as 0x, print lsa flags and note if it is a translated LSA.
(show_lsa_detail_proc): print out OSPF_LSA_LOCAL_XLT LSAs.
* ospf_packet.c: (ospf_write) print out destination IP in debug info
if write fails.
paul [Sun, 22 Jun 2003 09:04:47 +0000 (09:04 +0000)]
2003-06-19 Paul Jakma <paul@dishone.st>
* ospf_vty.c (ospf_area_stub_no_summary): fix typo.
(ospf_area_nssa_cmd_handler): new function to handle the
area.*nssa commands.
(ospf_area_nssa_cmd): changed to call ospf_area_nssa_cmd_handler
(ospf_area_nssa_translate_cmd) ditto
(ospf_area_nssa_translate_cmd): changed from ALIAS to defun, call
ospf_area_nssa_cmd_handler
(ospf_area_nssa_translate_no_summary_cmd): ditto
(no_ospf_area_nssa_cmd): call ospf_schedule_abr_task()
(show_ip_ospf_area): Formatting cleanups. Properly print out NSSA
area configuration.
show_router_lsa_detail: Add missing newline
(show_network_lsa_detail): ditto
(show_summary_lsa_detail): ditto
(show_summary_asbr_lsa_detail): ditto
(show_ip_ospf_route_router): fix spacing
(config_write_ospf_area): actually write out proper state for NSSA
area.
paul [Sun, 22 Jun 2003 08:49:25 +0000 (08:49 +0000)]
2003-06-19 Paul Jakma <paul@dishone.st>
* ospf_abr.c (ospf_abr_nssa_am_elected): new function.
Look through LSDB for an area and try determine whether other
routers are more 'electable' than this router. Presumes caller
has checked Role.
(ospf_abr_nssa_check_status): new function. check any NSSA related
status changes. At present determines NSSATranslatorState should
be enabled or disabled.
(ospf_abr_announce_network_to_area): remove the redundant
call to ospf_abr_announce_network_to_area() (as per Vadim,
[zebra 14710], problem 7).
(global): Update NSSATranslator to NSSATranslatorState as per
ospfd.h changes
(ospf_abr_announce_nssa_defaults): call
ospf_abr_announce_network_to_area() to inject default summaries.
(ospf_abr_nssa_task): undo commented out calls to
ospf_abr_prepare_aggregates() and ospf_abr_send_nssa_aggregates(),
if they're borked, lets fix them.
(ospf_abr_task): remove call to ospf_abr_nssa_task() - move this
to the timer scheduler.
(ospf_abr_task_timer): call ospf_abr_nssa_task() and
ospf_abr_nssa_check_status()
(misc): some minor reformatting.
paul [Sun, 22 Jun 2003 08:35:18 +0000 (08:35 +0000)]
2003-06-19 Paul Jakma <paul@dishone.st>
* ospfd.c (ospf_area_nssa_set): Set defaults for NSSA Role, State
and Stability Interval and no_summary.
(ospf_area_nssa_translator_role_(un?)set): Update to
NSSATranslatorRole
* ospf_route.c: delete routes generated from AS-External routes if
there is a inter/intra route. Adds ospf_route_delete_same_ext()
which prunes external routes, which is called from
ospf_route_install() when new route table is installed.