]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
15 years ago[bgpd/cleanup] BGP make attribute variables local
Stephen Hemminger [Fri, 15 May 2009 16:59:51 +0000 (09:59 -0700)]
[bgpd/cleanup] BGP make attribute variables local

Message lists can be read-only, and hash tables are local to this
code.

15 years ago[bgpd/cleanup] Make BGP FSM table read-only static
Stephen Hemminger [Fri, 15 May 2009 17:02:27 +0000 (10:02 -0700)]
[bgpd/cleanup] Make BGP FSM table read-only static

The finite state machine table is immutable.

15 years ago[bgpd] reference count the BGP instance
Stephen Hemminger [Thu, 21 May 2009 15:51:03 +0000 (08:51 -0700)]
[bgpd] reference count the BGP instance

When a BGP instance is deleted with lots of routes and neighbors
it is possible for the peer rsclient queue to run after
bgp_delete has been called. This would lead to bgpd crashing,
see https://bugzilla.vyatta.com/show_bug.cgi?id=3436

The fix is to add reference counting to the BGP instance and defer
actual freeing until all references are gone.

This patch also fixes a memory leak where the self-reference
peer instance was being created but never freed.

The check in bgp_clear_route is no longer valid because it is possible
for it to be called when peer is in Deleted state during cleanup.

15 years ago[bgpd] Make declarations match
Stephen Hemminger [Fri, 8 May 2009 22:19:07 +0000 (15:19 -0700)]
[bgpd] Make declarations match

These variables are const.

15 years ago[zebra] Remove unused structure element
Stephen Hemminger [Thu, 30 Apr 2009 04:55:48 +0000 (21:55 -0700)]
[zebra] Remove unused structure element

15 years ago[zebra] Force rib_update when connected route deleted
Stephen Hemminger [Thu, 30 Apr 2009 04:54:59 +0000 (21:54 -0700)]
[zebra] Force rib_update when connected route deleted

15 years ago[cleanup] Use correct buffer size for inet_ntop()
Stephen Hemminger [Tue, 28 Apr 2009 21:28:00 +0000 (14:28 -0700)]
[cleanup] Use correct buffer size for inet_ntop()

Don't need big buffer 1024 to hold IPV4 (INET_ADDRSTRLEN)
or IPv6 (INET6_ADDRSTRLEN) message.

15 years ago[ripd] Ignore non-running interfaces in rip status
Stephen Hemminger [Tue, 7 Apr 2009 22:00:46 +0000 (15:00 -0700)]
[ripd] Ignore non-running interfaces in rip status

Vyatta Bug 3999

15 years ago[lib] Put symbolic backtrace on system log
Stephen Hemminger [Mon, 9 Mar 2009 23:09:50 +0000 (16:09 -0700)]
[lib] Put symbolic backtrace on system log

When BGP crashes, sometimes all we get to see is syslog.

15 years ago[lib] sockopt_tcp_signature: sin6 requires HAVE_IPV6
Stephen Hemminger [Fri, 20 Feb 2009 07:01:41 +0000 (23:01 -0800)]
[lib] sockopt_tcp_signature: sin6 requires HAVE_IPV6

An external user was building on system without IPv6 and
it wouldn't work.

15 years ago[ospf6d] Remove 'no router' from OSPF6_NODE
Stephen Hemminger [Thu, 12 Feb 2009 07:55:32 +0000 (23:55 -0800)]
[ospf6d] Remove 'no router' from OSPF6_NODE

Don't need command twice.

15 years ago[ospf6d] Fix ospf6d crash if removing interface with no area
Jon [Thu, 12 Feb 2009 01:30:44 +0000 (17:30 -0800)]
[ospf6d] Fix ospf6d crash if removing interface with no area

ospf6d will crash if attempting to remove interface when no areas have been
defined Check if any areas have been defined.  Should prevent use of empty
pointer.

15 years ago[ospf6d] Fix ospf6d crash in show border routers
Jon [Thu, 12 Feb 2009 01:27:06 +0000 (17:27 -0800)]
[ospf6d] Fix ospf6d crash in show border routers

ospf6d will crash if this command is executed on a non-border-router.
Included test to verify that any routes are defined, preventing empty
pointer from being used.

15 years ago[ospf6] Add no router ospf6
Jon [Thu, 12 Feb 2009 01:19:07 +0000 (17:19 -0800)]
[ospf6] Add no router ospf6

Suggestion: Makes no sense to me that the statement to remove ospf6
configuration is located in OSPF6D_NODE.
Moved to CONFIG_NODE next to matching define command.

15 years ago[ospf6d] Fix ospf6d crash if range defined twice
Jon [Thu, 12 Feb 2009 01:22:03 +0000 (17:22 -0800)]
[ospf6d] Fix ospf6d crash if range defined twice

ospf6d will crash if the same range is defined twice.
There was no check if the same range had previously been defined,
thereby causing a later assert to fail.

15 years ago[ospfd] Fix OSPF route refcount leak
Stephen Hemminger [Wed, 3 Jun 2009 23:44:21 +0000 (16:44 -0700)]
[ospfd] Fix OSPF route refcount leak

This may fix vyatta BUG 3096. The reference count for OSPF route table was
never completely freed on deleting all neighbors.

15 years ago[zebra] Only announce connected routes if link is detected
Stephen Hemminger [Sat, 5 Jul 2008 23:32:37 +0000 (16:32 -0700)]
[zebra] Only announce connected routes if link is detected

Need to check both IFF_UP and IFF_RUNNING if link-detect is enabled,
before announcing routes.

15 years ago[zebra] MTU is unsigned
Stephen Hemminger [Mon, 1 Dec 2008 22:19:38 +0000 (14:19 -0800)]
[zebra] MTU is unsigned

The MTU data in the netlink message is always unsigned 32 bits.
Don't use integer.

15 years ago[zebra] remove incorrect debug message
Stephen Hemminger [Thu, 18 Sep 2008 23:51:06 +0000 (16:51 -0700)]
[zebra] remove incorrect debug message

15 years ago[zebra] Cleanup meta-queue code
Stephen Hemminger [Mon, 11 Aug 2008 23:22:15 +0000 (16:22 -0700)]
[zebra] Cleanup meta-queue code

Do some cleanup work on recently added meta-queue code:
  * use table rather than switch
  * indent with quagga standard indentation
  * since meta_queue_new is only used at initialization
    allocation failure should be fatal.

15 years ago[zebra] netlink interface minor cleanup
Stephen Hemminger [Wed, 28 May 2008 17:47:30 +0000 (10:47 -0700)]
[zebra] netlink interface minor cleanup

Add more prototypes and make some functions static

15 years ago[zebra] Fix vyatta bug 2814: Add "show ip route summary" command.
Stig Thormodsrud [Tue, 4 Nov 2008 23:45:07 +0000 (15:45 -0800)]
[zebra] Fix vyatta bug 2814: Add "show ip route summary" command.

15 years ago[vtysh] Add a --noerror option
Stephen Hemminger [Wed, 30 Jul 2008 21:16:47 +0000 (14:16 -0700)]
[vtysh] Add a --noerror option

There are times that configuration scripts want to run vtysh but
don't want to get error messages or failed exit status

15 years ago[vtysh] Return non-zero exit code on error.
Stephen Hemminger [Mon, 28 Jul 2008 22:04:56 +0000 (15:04 -0700)]
[vtysh] Return non-zero exit code on error.

If passed a bad command, return non-zero exit code

15 years ago[vtysh] Make vtysh more useable for scripting
Stephen Hemminger [Mon, 28 Jul 2008 19:19:04 +0000 (12:19 -0700)]
[vtysh] Make vtysh more useable for scripting

Add environment variable (VTYSH_LOG) for logging.
If a command fails, exit with non-zero exit code and don't
continue multipart commands.

15 years ago[vtysh] Force line buffered mode.
Stephen Hemminger [Fri, 2 May 2008 16:25:02 +0000 (09:25 -0700)]
[vtysh] Force line buffered mode.

Vtysh is used in pipelines and it helps if the output starts right
away instead of waiting for a whole buffer to fill.

15 years ago[gcc] Add gcc printf format checks
Stephen Hemminger [Fri, 8 Aug 2008 22:15:23 +0000 (15:15 -0700)]
[gcc] Add gcc printf format checks

15 years ago[cleanup] Make command nodes static
Stephen Hemminger [Mon, 1 Dec 2008 19:10:34 +0000 (11:10 -0800)]
[cleanup] Make command nodes static

The cmd_nodes used to configure vty, can mostly be static so
(basic data hiding 101).

15 years ago[cleanup] functions taking no args should be declared with void args
Stephen Hemminger [Mon, 9 Feb 2009 18:14:16 +0000 (10:14 -0800)]
[cleanup] functions taking no args should be declared with void args

Use Ansi-C prototypes rather than old K&R method of declaring
function without arguments

15 years ago[cleanup] add const attribute to lib/if.c::if_dump
Stephen Hemminger [Fri, 12 Jun 2009 15:58:49 +0000 (16:58 +0100)]
[cleanup] add const attribute to lib/if.c::if_dump

15 years ago[cleanup] Convert XMALLOC/memset to XCALLOC
Stephen Hemminger [Mon, 18 Aug 2008 21:13:29 +0000 (14:13 -0700)]
[cleanup] Convert XMALLOC/memset to XCALLOC

Simple conversion of XMALLOC/memset to XCALLOC

15 years ago[bgpd] Add support for the old Linux 2.4, TCP_MD5_AUTH RFC2385 patch
Paul Jakma [Fri, 12 Jun 2009 13:21:02 +0000 (14:21 +0100)]
[bgpd] Add support for the old Linux 2.4, TCP_MD5_AUTH RFC2385 patch

* configure.ac: Add a --enable-linux24-tcp-md5 argument, to compile in
  support for the old TCP-MD5 patch for Linux 2.4 systems.  This overrides
  auto-detection of TCP-MD5 supported by the target system.
* lib/sockopt.c: (sockopt_tcp_signature) add in a variant for the old
  Linux 2.4, TCP_MD5_AUTH variant of TCP-MD5 support, conditional
  on the previous configure arg.

15 years ago[bgpd] Fixed as-path prepend/exclude ASN handling
Denis Ovsienko [Tue, 9 Jun 2009 11:15:33 +0000 (15:15 +0400)]
[bgpd] Fixed as-path prepend/exclude ASN handling

 - aspath_gettoken(): use as_t to fix 4-byte ASN scanning (bug #484)
 - set_aspath_prepend_cmd(): use CMD_AS_RANGE in message to match
   actual range
 - no_set_aspath_prepend_val_cmd(): idem
 - set_aspath_exclude_cmd(): idem
 - no_set_aspath_exclude_val_cmd(): idem

15 years agoMerge remote branch 'origin/master'
Paul Jakma [Tue, 2 Jun 2009 18:43:51 +0000 (19:43 +0100)]
Merge remote branch 'origin/master'

15 years ago[snmp] Compiler warning fixes for when "--enable-snmp" is configured.
Chris Caputo [Tue, 2 Jun 2009 17:40:07 +0000 (18:40 +0100)]
[snmp] Compiler warning fixes for when "--enable-snmp" is configured.

Compiled on 32-bit and 64-bit linux gcc 4.1.2 platforms.
No run-time testing on 32-bit and limited run-time testing on 64-bit.

15 years ago[smux] 64-bit fix for lib/smux.h SNMP_INTEGER() macro
Chris Caputo [Tue, 2 Jun 2009 17:37:11 +0000 (18:37 +0100)]
[smux] 64-bit fix for lib/smux.h SNMP_INTEGER() macro

Macro SNMP_INTEGER() prepares data which is eventually processed
by asn_build_int().  SNMP_INTEGER() was using "int32_t" whereas
asn_build_int() uses "long".  On 32-bit systems these are the
same, both 4 bytes, but on x86 64-bit systems "long" is 8 bytes.

asn_build_int()'s reaction to an improperly sized value is to return
a NULL pointer.  Quagga's smux.c would eventually get this NULL
pointer and use it in calculations to determine how much data to send
over the smux connection, resulting in garbage being sent to the
SNMP agent.

Corrected SNMP_INTEGER() to use "long".

Tested on 32-bit and 64-bit x86 Linux 2.6.27.10 systems running
Quagga 0.99.11 with bgpd smux.

15 years ago[ospfd] fix vty ospfd no ospf abr-type standard
Francesco Dolcini [Tue, 2 Jun 2009 17:20:09 +0000 (18:20 +0100)]
[ospfd] fix vty ospfd no ospf abr-type standard

"no ospf abr-type standard" was broken

15 years ago[ripd] Fix metrix in call to rip_zebra_ipv4_delete
Krisztian Kovacs [Tue, 2 Jun 2009 17:09:48 +0000 (18:09 +0100)]
[ripd] Fix metrix in call to rip_zebra_ipv4_delete

Fix a potential problem (most probably not triggering a real problem, at
least on Linux). When an interface goes down and ripd tries to delete the
corresponding route it errorneously passes the interface's index instead of
the metric to zebra.

15 years ago[bgp] Fix crash on SIGHUP, deref of freed workqueues
Steve Hill [Tue, 2 Jun 2009 13:28:16 +0000 (14:28 +0100)]
[bgp] Fix crash on SIGHUP, deref of freed workqueues

* lib/workqueue.c: free-ing workqueues had never been tested obviously,
  queue's thread was not being stopped
* bgpd/bgpd.c: null out freed workqueues, to prevent acting on freed
  workqueues

15 years ago[trivia] Fixed typos in communities text (#334)
Denis Ovsienko [Mon, 1 Jun 2009 16:20:36 +0000 (20:20 +0400)]
[trivia] Fixed typos in communities text (#334)

15 years ago[doc] Stick with quagga.net for consistency (#436)
Denis Ovsienko [Mon, 1 Jun 2009 16:07:46 +0000 (20:07 +0400)]
[doc] Stick with quagga.net for consistency (#436)

15 years ago[bgpd] 64-bit bugfix in community_del_val by Jeremy Jackson <jerj@coplanar.net>
Andrew J. Schorr [Fri, 29 May 2009 13:15:20 +0000 (09:15 -0400)]
[bgpd] 64-bit bugfix in community_del_val by Jeremy Jackson <jerj@coplanar.net>

* bgpd/bgp_community.c: (community_del_val) Fix bug in memcpy that was
  using the wrong size on architectures where a pointer is not 32 bits.

15 years ago[release] Bump version to 0.99.12
Paul Jakma [Fri, 8 May 2009 22:20:19 +0000 (23:20 +0100)]
[release] Bump version to 0.99.12

15 years agoFix bgp ipv4/ipv6 accept handling
Stephen Hemminger [Mon, 25 Aug 2008 00:36:51 +0000 (20:36 -0400)]
Fix bgp ipv4/ipv6 accept handling

When bgp calls getaddrinfo, it gets both ipv6 and ipv4 addresses.
Unless IPV6_ONLY is set on Linux, only the ipv6 bind will succeed,
and the IPV4 connections will come in as mapped connections on the
IPV6 socket.

15 years ago[build] tools/multiple-bgpd.sh should be in 'make dist'
Paul Jakma [Fri, 8 May 2009 21:21:09 +0000 (22:21 +0100)]
[build] tools/multiple-bgpd.sh should be in 'make dist'

15 years ago[bgpd] AS4 bugfix by Chris Caputo <ccaputo@alt.net>
Denis Ovsienko [Thu, 30 Apr 2009 13:16:22 +0000 (17:16 +0400)]
[bgpd] AS4 bugfix by Chris Caputo <ccaputo@alt.net>

* bgpd/bgp_aspath.c: (aspath_make_str_count) "assert (len < str_size)" was
  getting hit under certain 4-byte ASN conditions. New realloc strategy.
* bgpd/bgp_aspath.c: (aspath_key_make) const warning fix.

"%d" -> "%u" 4-byte ASN corrections.  Prevent negative number when ASN is
above 2^31.

15 years agoDmitry Tejblum <tejblum@yandex-team.ru>
Denis Ovsienko [Mon, 13 Apr 2009 16:11:44 +0000 (20:11 +0400)]
Dmitry Tejblum <tejblum@yandex-team.ru>

Don't enable HAVE_BSD_STRUCT_IP_MREQ_HACK for FreeBSD 7.0 and upper,
because OS behaviour has changed.

15 years agoJustified OSPF cost function names and added support for:
Denis Ovsienko [Fri, 10 Apr 2009 14:51:24 +0000 (18:51 +0400)]
Justified OSPF cost function names and added support for:
 ospf cost <1-65535> A.B.C.D
 no ospf cost <1-65535>

15 years ago[lib] Fix timer precision.
Joakim Tjernlund [Mon, 10 Nov 2008 08:33:30 +0000 (09:33 +0100)]
[lib] Fix timer precision.

Whenever a thread adds an timer funcname_thread_add_timer_timeval() gets called
to add the timer. Before adding the timer a quagga_gettimeofday() call
is made to do some time house keeping. However quagga_gettimeofday() only
updates recent_time, not relative_time that is used to calculate
the alarm_time. Replace with quagga_get_relative (NULL)

15 years ago[lib] Move type cast in Fletcher checksum
Joakim Tjernlund [Mon, 17 Nov 2008 10:22:25 +0000 (11:22 +0100)]
[lib] Move type cast in Fletcher checksum

The int type cast should be on the whole expression
passed to the mod operator. Otherwise it won't work
when/if c0/c1 is unsigned.
Making c0/c1 unsigned makes it possible to use 5802
as MODX value.

15 years ago[rpm] some defaults for Fedora are way out of date
Paul Jakma [Sat, 29 Nov 2008 16:42:04 +0000 (16:42 +0000)]
[rpm] some defaults for Fedora are way out of date

* quagga.spec.in: No need to default to accomodate now ancient versions of
  Fedora

15 years ago[lib] fix missing sockunion_normalise_mapped
Paul Jakma [Mon, 24 Nov 2008 22:25:16 +0000 (22:25 +0000)]
[lib] fix missing sockunion_normalise_mapped

* lib/sockunion.c: (sockunion_accept) sockunion needs to be normalised here,
  as it used to before this was moved to a dedicated function..

15 years ago[bgpd] Add 'show bgp views' command
Michael Lambert [Sun, 16 Nov 2008 20:12:04 +0000 (20:12 +0000)]
[bgpd] Add 'show bgp views' command

* bgp_vty.c: (show_bgp_views_cmd) new command to list all defined
  views.
  (with small edits by Paul Jakma)

Signed-off-by: Paul Jakma <paul@quagga.net>
15 years ago[lib] Switch Fletcher checksum back to old ospfd version
Paul Jakma [Sun, 16 Nov 2008 18:34:19 +0000 (18:34 +0000)]
[lib] Switch Fletcher checksum back to old ospfd version

* lib/checksum.c: (fletcher_checksum) Switch the second phase of the checksum
  back to the old ospfd logic.

  The isisd-derived version:

  a) is very hard to follow
  b) had some kind of subtle bug that caused it be wrong when c0=0 and c1=254
     (potentially fixable by doing the mods before adjusting x and y)

  Additionally:

  - explicitely cast expressions using non-internal variables to int, to ensure
    the result is signed.
  - defensively change the length argument to 'size_t', to ensure the code
    works with that argument being unsigned..

  Thanks to Joakim Tjernlund for the investigative work into this bug.

* tests/test-checksum.c: new file to exercise the checksum code.

15 years ago[vtysh] Add commands from zebra_routemap.c to vtysh
Bartek Kania [Sat, 4 Oct 2008 16:12:24 +0000 (17:12 +0100)]
[vtysh] Add commands from zebra_routemap.c to vtysh

* Makefile.am: vtysh should also pull in commands from zebra_routemap.c

Signed-off-by: Paul Jakma <paul@quagga.net>
15 years agoMerge branch 'bgpd/fsm'
Paul Jakma [Thu, 2 Oct 2008 15:27:16 +0000 (16:27 +0100)]
Merge branch 'bgpd/fsm'

16 years ago[release] Bump version to 0.99.11
Paul Jakma [Thu, 2 Oct 2008 08:34:34 +0000 (09:34 +0100)]
[release] Bump version to 0.99.11

16 years ago[bgpd] Fix definition of an rsclient command
Michael Lambert [Wed, 24 Sep 2008 16:23:11 +0000 (17:23 +0100)]
[bgpd] Fix definition of an rsclient command

* bgp_route.c: (show_ip_bgp_view_rsclient_route_cmd) Add the missing "ip"
  to the command string.

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[ospfd] Fix SEGV during startup introduced in recent commit
Joakim Tjernlund [Wed, 24 Sep 2008 16:15:48 +0000 (17:15 +0100)]
[ospfd] Fix SEGV during startup introduced in recent commit

* ospfd/ospfd.c: (opsf_if_update) Check if ospf_lookup() returns NULL.
  Fixes bug introduced with recent ospf_network_run changes in
  a49eb30a, where SEGV will happen if not the "router ospf" command has
  been executed before the first interfaces are reported by zebra.

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[ospfd] Move passive interface check
Joakim Tjernlund [Wed, 24 Sep 2008 16:03:59 +0000 (17:03 +0100)]
[ospfd] Move passive interface check

* ospf_packet.c: Apply passive check and drop for all packages
  and not just Hellos.

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[build] Fix --enable-pie so it can actually be disabled
Paul P Komkoff Jr [Wed, 24 Sep 2008 15:42:35 +0000 (16:42 +0100)]
[build] Fix --enable-pie so it can actually be disabled

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[lib] re-enable conversion of v6mapped INET6 sockunions to regular INET
Paul Jakma [Tue, 9 Sep 2008 20:17:04 +0000 (21:17 +0100)]
[lib] re-enable conversion of v6mapped INET6 sockunions to regular INET

* lib/sockunion.c: Re-enable conversion of v6mapped INET6 sockunions to
  regular INET sockunions, which was disabled in 0df7c9, as it leads to
  failures in sockunion_cmp.
  (sockunion_normalise_mapped) consolidate here
  (sockunion_accept) remove conversion code altogether here - no sockunion
  is created
  (sockunion_get{sockname,peername}) normalise newly created sockunion.

16 years ago[bgpd] Allow accepted peers to progress even if realpeer is in Connect
Paul Jakma [Tue, 9 Sep 2008 16:14:33 +0000 (17:14 +0100)]
[bgpd] Allow accepted peers to progress even if realpeer is in Connect

* bgpd/bgp_packet.c: (bgp_open_receive) Try fix the little race in the FSM,
  where a accept-peer that progress faster than realpeer gets closed down if
  realpeer is still just in Connect, by allowing the realpeer to be
  bgp_stop'ed and doing the regular swapping-of-FSM state.

16 years ago[bgpd] Document the FSM dummy-peer race that sometimes afflicts session setup
Paul Jakma [Sat, 6 Sep 2008 12:09:35 +0000 (13:09 +0100)]
[bgpd] Document the FSM dummy-peer race that sometimes afflicts session setup

* bgp_packet.c: (bgp_open_receive) the accept-peer hack can sometimes
  cause a race between two peers that try to establish sessions to each other,
  causing session setup to fail when it should have succeeded. In the worst
  case, the race can 'loop', causing prolonged failure to establish sessions.

16 years agoMerge branch 'restricted-mode'
Paul Jakma [Thu, 4 Sep 2008 12:52:38 +0000 (13:52 +0100)]
Merge branch 'restricted-mode'

16 years ago[ospfd] Minor enhancements to recent self-host-routes suppression patch
Paul Jakma [Thu, 4 Sep 2008 12:52:07 +0000 (13:52 +0100)]
[ospfd] Minor enhancements to recent self-host-routes suppression patch

* ospf_spf.c: (ospf_spf_process_stubs) Track whether
  parent router vertex is the root, so that the host-route
  suppression logic need only be activated for such vertices.
  Move the actual logic to ospf_intra_add_stub.
* ospf_route.c: (ospf_intra_add_stub) Main test of link moved
  here, notionally more appropriate.

16 years agoMerge commit 'remotes/jocke/delete_ghost_route'
Paul Jakma [Wed, 3 Sep 2008 08:00:44 +0000 (09:00 +0100)]
Merge commit 'remotes/jocke/delete_ghost_route'

16 years agoMerge commit '53d0deceeb855493aa03c59477f8af7f6bb75140'
Paul Jakma [Tue, 2 Sep 2008 20:50:50 +0000 (21:50 +0100)]
Merge commit '53d0deceeb855493aa03c59477f8af7f6bb75140'

16 years ago[ospfd] Restructure opsf_if_update() and ospf_network_run()
Joakim Tjernlund [Tue, 2 Sep 2008 18:06:31 +0000 (19:06 +0100)]
[ospfd] Restructure opsf_if_update() and ospf_network_run()

    Add an struct interface paramenter and adjust the affected
    code accordingly.

    The old code was a mess looping over all interfaces several times
    when one interface was added/changed.

    * ospfd/ospfd.h: Add struct interface parameter to ospf_if_update()
    * ospfd/ospf_zebra.c: Add ifp arg to ospf_if_update() calls.
      (ospf_interface_address_delete) delete ospf_if_update() call,
      redundant as function calls ospf_if_free() itself.
    * ospfd/ospfd.c: (ospf_network_unset) handle deconfiguration here,
      rather than ospf_if_update.
      (ospf_network_run_interface) ospf_network_run, for
      any given interface.
      (ospf_network_run) move guts to previous, and use it.
      (ospf_if_update) Adjust to take struct interface as argument, as
      all callers have a specific ifp in mind.
      Iterate over ifp's connected list and call ospf_network_run_interface
      instead of ospf_network_run, turning this path into O(nm) rather
      than O(n^2).
      Adjust all code dealing with opsf_if_update and ospf_network_run to
      pass the new struct interface * arg.

     (some minor modifications and bug-additions by Paul Jakma).

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years agoMerge commit 'remotes/jocke/ospf_neighbour'; commit 'remotes/jocke/snmp_crosscompile'
Paul Jakma [Mon, 1 Sep 2008 19:19:14 +0000 (20:19 +0100)]
Merge commit 'remotes/jocke/ospf_neighbour'; commit 'remotes/jocke/snmp_crosscompile'

16 years ago[doc] Update HACKING to reflect SCM changes and latest practice
Paul Jakma [Tue, 26 Aug 2008 21:15:03 +0000 (22:15 +0100)]
[doc] Update HACKING to reflect SCM changes and latest practice

16 years agotest
Paul Jakma [Tue, 26 Aug 2008 13:49:40 +0000 (14:49 +0100)]
test

16 years agoRevert "[bgpd] Add 'bgp open-accept' option, to send OPEN immediately on accepted...
Paul Jakma [Tue, 26 Aug 2008 13:33:28 +0000 (14:33 +0100)]
Revert "[bgpd] Add 'bgp open-accept' option, to send OPEN immediately on accepted conns"

Revert commit d664ae1182c29b74b409bc8594b7bd0575e91ce9. An experimental
patch which violates RFC4271 quite badly, but managed to accidently sneak
its way in.

16 years agoSet destination for PtP links to OSPF_ALLSPFROUTERS.
Joakim Tjernlund [Fri, 30 May 2008 14:04:39 +0000 (16:04 +0200)]
Set destination for PtP links to OSPF_ALLSPFROUTERS.

Update ospf_db_desc_send(), ospf_ls_upd_queue_send() and ospf_ls_req_send()
to always use OSPF_ALLSPFROUTERS for PtP links.

See RFC 2328, chap 8.1 for details:

    "The IP destination address for the packet is selected as
     follows.  On physical point-to-point networks, the IP
     destination is always set to the address AllSPFRouters."

Without this, it won't be possible to establish adjacencies on
multiple unnumbered links to the same router.
ChangeLog:
2008-07-25 Joakim Tjernlund <Joakim.Tjernlund@transmode.se>

* ospfd/ospf_packet.c: Set destination for PtP links to
  OSPF_ALLSPFROUTERS.

16 years agoIgnore host routes to self.
Joakim Tjernlund [Wed, 20 Aug 2008 12:24:39 +0000 (14:24 +0200)]
Ignore host routes to self.

PtP links with /32 masks adds host routes to the remote host,
see RFC 2328, 12.4.1.1, Option 1.
Make sure that such routes are ignored

16 years agoMake --enable-snmp cross compile and make libcrypto optional with --without-crypto
Joakim Tjernlund [Tue, 13 May 2008 18:03:32 +0000 (20:03 +0200)]
Make --enable-snmp cross compile and make libcrypto optional with --without-crypto

Autoconfig work by me, the rest was done by
"Kirill K. Smirnov" <lich@math.spbu.ru>

16 years agoFix SEGV in ip ospf neighbor all
Joakim Tjernlund [Tue, 1 Jul 2008 14:54:07 +0000 (16:54 +0200)]
Fix SEGV in ip ospf neighbor all

Dont use vty->index in show_ip_ospf_neighbor_all_cmd(),
It is invalid, use ospf_lookup() instead.

16 years ago[vty] Add support for a 'restricted mode' with anonymous vty connections
Paul Jakma [Sat, 23 Aug 2008 13:27:06 +0000 (14:27 +0100)]
[vty] Add support for a 'restricted mode' with anonymous vty connections

* lib/command.h: Add a RESTRICTED_NODE, intended for use with
  anonymous, 'no login' vtys, to provide a subset of 'view' mode
  commands.
* lib/command.c: Add RESTRICTED_NODE bits, nothing special, just
  following VIEW_NODE.
* lib/vty.c: (vty_auth) enable authentication should fall back to
  restricted/view node as appropriate.
  (vty_create) init vty's to restricted/view node as appropriate,
  for the 'no login' case.
  (vty_{no_,}restricted_mode_cmd) config commands to enable
  'anonymous restricted' in vty configuration.
  (vty_config_write) 'anonymous restricted' config.
  (vty_init) Install some commands to restricted mode, and the
  'anonymous restricted' config commands into VTY_NODE.
* bgpd/*.c: Install some of the safe(r) BGP commands into
  'restricted mode', i.e. lookup commands of non-sensitive data.
  Useful with looking-glass route-servers.

16 years ago[trivia] Make 'make dist' happy about ChangeLog expunge
Paul Jakma [Sat, 23 Aug 2008 07:36:42 +0000 (08:36 +0100)]
[trivia] Make 'make dist' happy about ChangeLog expunge

* ChangeLog: Add back a dummy, top-level ChangeLog
* m4/Makefile.am: remove ChangeLog from EXTRA_DIST, why it was
  listed there, who knows.

16 years ago[administrivia] Update gitignore files
Paul Jakma [Wed, 21 Mar 2007 12:41:22 +0000 (12:41 +0000)]
[administrivia] Update gitignore files

- Add more stuff, archive libraries, etc..

16 years ago[administrivia] Git should ignore backup files and .loT files
Paul Jakma [Sat, 21 Oct 2006 17:35:27 +0000 (18:35 +0100)]
[administrivia] Git should ignore backup files and .loT files

16 years ago[trivia] Remove ChangeLog files, as this data is now maintained in SCM
Paul Jakma [Tue, 19 Aug 2008 13:13:43 +0000 (14:13 +0100)]
[trivia] Remove ChangeLog files, as this data is now maintained in SCM

16 years ago[zebra] trivial: fix spelling mistake
Stephen Hemminger [Sun, 17 Aug 2008 17:08:24 +0000 (18:08 +0100)]
[zebra] trivial: fix spelling mistake

16 years ago[bgpd] remove useless check and return in bgp_config_write_damp
Stephen Hemminger [Sun, 17 Aug 2008 16:51:47 +0000 (17:51 +0100)]
[bgpd] remove useless check and return in bgp_config_write_damp

2008-08-17 Stephen Hemminger <stephen.hemminger@vyatta.com>

* bgp_damp.?: (bgp_config_write_damp) remove useless check
  of statically allocated config storage, and useless return
  value

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[zebra] trivia: static qualifiers for metaq
Stephen Hemminger [Sun, 17 Aug 2008 16:44:47 +0000 (17:44 +0100)]
[zebra] trivia: static qualifiers for metaq

2008-08-17 Stephen Hemminger <stephen.hemminger@vyatta.com>

* zebra_rib.c: (process_subq) mark static
  (rib_meta_queue_add) ditto
  (meta_queue_new) ditt

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[zebra] make some data local
Stephen Hemminger [Sun, 17 Aug 2008 16:41:37 +0000 (17:41 +0100)]
[zebra] make some data local

2008-06-17 Stephen Hemminger <stephen.hemminger@vyatta.com>

* zebra_rib.c: static qualifier on local data

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[zebra] ignore dead routes in RIB update
Stephen Hemminger [Sun, 17 Aug 2008 16:39:31 +0000 (17:39 +0100)]
[zebra] ignore dead routes in RIB update

2008-08-17 Stephen Hemminger <stephen.hemminger@vyatta.com>

* zebra_rib.c: When doing a RIB update, routes in process of removal
  should be ignored. This fixes bugs where a route is removed but a
  recursive route is not changed.

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[zebra:linux] netlink: no need to change privs for receive
Stephen Hemminger [Sun, 17 Aug 2008 16:01:44 +0000 (17:01 +0100)]
[zebra:linux] netlink: no need to change privs for receive

2008-06-17 Stephen Hemminger <stephen.hemminger@vyatta.com>

* rt_netlink.c: (netlink_parse_info) Linux doesn't check privledges
  on receive, so avoid the overhead of lowering and raising the
  priviledges on each received message

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[zebra:linux] netlink: quiet harmless errors
Stephen Hemminger [Sun, 17 Aug 2008 15:56:15 +0000 (16:56 +0100)]
[zebra:linux] netlink: quiet harmless errors

2008-06-17 Stephen Hemminger <stephen.hemminger@vyatta.com>

* rt_netlink.c: (netlink_parse_info) There can be harmless races
  such as adding an existing route, or deleting an already deleted
  route. Don't bother logging these unless debugging is turned on.

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[zebra:linux] netlink buffer size tweaking only needed on receive socket
Stephen Hemminger [Sat, 16 Aug 2008 17:25:47 +0000 (18:25 +0100)]
[zebra:linux] netlink buffer size tweaking only needed on receive socket

2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>

* rt_netlink.c: (netlink_recvbuf) consolidate recvbuf setting
  (netlink_socket) no need to set receive buffer on netlink sockets
  generally
  (kernel_init) set recvbuffer on the listen socket

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[build] Linux netlink doesn't need IF_PROC
Stephen Hemminger [Sat, 16 Aug 2008 17:03:44 +0000 (18:03 +0100)]
[build] Linux netlink doesn't need IF_PROC

2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>

* configure.ac: If netlink is available, then that is how the
initial routes and interfaces should be read, rather than through
/proc, so don't set IF_PROC.

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[zebra:linux] clean up blocking setting of netlink sockets
Stephen Hemminger [Sat, 16 Aug 2008 16:51:27 +0000 (17:51 +0100)]
[zebra:linux] clean up blocking setting of netlink sockets

2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>

* zebra/rt_netlink.c: This change removes the overhead of twiddling
          the socket twice on every route change. The netlink support has
          two sockets, one is used for request/response and should always
          block. The other is used for asynchronous notification and should
          always be non-blocking.

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[zebra:linux] Filter out unwanted netlink messages by PID
Stephen Hemminger [Sat, 16 Aug 2008 16:30:39 +0000 (17:30 +0100)]
[zebra:linux] Filter out unwanted netlink messages by PID

2008-08-16 Stephen Hemminger <stephen.hemminger@vyatta.com>

* zebra/rt_netlink.c: Update the netlink socket BPF to cancel out
  unwanted ACKs on the listen socket by matching on the PID.

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[warnings] Fix various SOS warnings
Paul Jakma [Fri, 15 Aug 2008 13:05:22 +0000 (14:05 +0100)]
[warnings] Fix various SOS warnings

2008-08-15 Paul Jakma <paul.jakma@sun.com>

* */*: Fix various problems flagged by Sun Studio compiler.
  - '<qualifier> <storage>' obsolescent in declarations
  - empty statements (';' after ALIAS definitions)
  - implicit declarations (e.g printstack in lib/log.c)
  - "\%" in printf string instead of "%%"
  - loops that return on the first iteration (legitimately, but
      compiler can't really know), e.g. bgp_routemap.c
    - internal declarations which mask prototypes.

16 years ago[lib] Fix mistake in tcp-md5sig commit which broke compile on BSD
Paul Jakma [Fri, 15 Aug 2008 13:05:08 +0000 (14:05 +0100)]
[lib] Fix mistake in tcp-md5sig commit which broke compile on BSD

2008-08-15 Paul Jakma <paul.jakma@sun.com>

* lib/sockopt.c: (sockopt_tcp_signature) ifdef'ing hid variable
  declaration for HAVE_DECL_TCP_MD5SIG && !GNU_LINUX, breaking
  compile - fix.

16 years ago[trivia] finish off static'ification of ospf6d and ripngd
Paul Jakma [Fri, 15 Aug 2008 12:45:30 +0000 (13:45 +0100)]
[trivia] finish off static'ification of ospf6d and ripngd

2008-08-15 Paul Jakma <paul.jakma@sun.com>

* {ospf6d,ripngd}/*: Finish job of marking functions as static, or
  exporting declarations for them, to quell warning noise with
  Quagga's GCC default high-level of warning flags. Thus allowing
  remaining, more useful warnings to be more easily seen.

16 years ago[lib] mes_lookup string lookup table argument should be marked const
Stephen Hemminger [Thu, 14 Aug 2008 16:59:25 +0000 (17:59 +0100)]
[lib] mes_lookup string lookup table argument should be marked const

2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>

* lib/log.{c,h}: struct message argument should point to const
* */*.c: adjust to suit,

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[trivia] ignore automake generated 'compile' file
Paul Jakma [Thu, 14 Aug 2008 16:04:57 +0000 (17:04 +0100)]
[trivia] ignore automake generated 'compile' file

16 years ago[zebra] mark some rt_netlink functions static
Stephen Hemminger [Thu, 14 Aug 2008 15:52:26 +0000 (16:52 +0100)]
[zebra] mark some rt_netlink functions static

2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>

* zebra/rt_netlink.c: local functions should be static.

Signed-off-by: Paul Jakma <paul@quagga.net>
16 years ago[lib] hash compare function arguments ought to be const qualified
Stephen Hemminger [Thu, 14 Aug 2008 15:25:25 +0000 (16:25 +0100)]
[lib] hash compare function arguments ought to be const qualified

2008-08-14 Stephen Hemminger <stephen.hemminger@vyatta.com>

* lib/hash.h: (struct hash) Hash comparator callback really
  ought to treat storage behind arguments as constant - a compare
  function with side-effects would be evil.
* */*.c: Adjust comparator functions similarly, thus fixing at least
  a few compiler warnings about const qualifier being dropped.

Signed-off-by: Paul Jakma <paul@quagga.net>