quagga-1.1.0-dn42.11

mainline zebra lib bgpd ospfd isisd pimd unmerged coming soon

the dn42.11 release of quagga now is in the "last-minute fixes" state.
I've finished coding and merging the features I want to have in this
release, so now I need to find the (probably dozens of) bugs I've
introduced in the process.

You can find:
* a short release announcement at
  http://www.diac24.net/files/quagga/info-1.1.0-dn42.11.html
* a preliminary tarball at
  http://www.diac24.net/files/quagga/quagga-1.1.0-dn42.11.tar.bz2
* my git repo at
  git://spaceboyz.net/equinox/quagga.git
  http://git.spaceboyz.net/equinox/quagga.git

Please note that I'm accumulating and merging patches very freely.
This branch is not suitable for high-availability production use.

Also note that there is no official quagga 1.1 or even 1.0 yet. I
increased the version number to 1.1.0 because at least 50% of the
patches I merged are most likely not going to be in quagga 1.0. They're
aimed at the "next" tree which will (probably) be named 1.1, so I guess
this version number is appropriate. I would've used 1.1.-1 ;-).

A big thanks to all the people contributing patches, and also to Paul
Jakma, Denis Ovisienko, Joakim Tjernlund, Stephen Hemminger and David
Ward for the work they to for and on quagga.


This version of quagga is supposed to run on Linux 2.6, NetBSD 5.0 and
FreeBSD 8.0. I'm hoping zebra, bgpd and ospfd are usable; ospf6d and
isisd might have quirks. pimd is wholly untested...

If you're brave enough to run this version of quagga, please provide
feedback - bugreports are very welcome, as are patches. Reports of
success are the most welcome of course!

updates:

quagga-1.1.0-dn42.11.tar.bz2 git repository
send bugreports to David Lamparter (equinox X diac24 net)

the big picture

Major user-visible changes:

Why 1.1.0?

Because the list of patches is huge enough. And it looks better.

Mainline changes since 0.99.15

David Ward (7):
      zebra: Fix router advertisements for non-Ethernet link layer addresses
      zebra: fix RIB debug message for IPv6
      configure: fix spelling
      isisd: fix BPF ioctl() calls, treat "true" and "false" as reserved
      isisd: fix --enable-isis-topology for 64-bit Linux
      zebra: handle RTF_CLONING removal from FreeBSD 8.0
      lib: fix memory logging

Denis Ovsienko (4):
      [ospfd] enable more OSPF cost command aliases
      bgpd: work around warning in assegments_parse()
      lib: remove unused function: route_dump_node()
      Merge branch 'master' of ssh://code.quagga.net/var/lib/git/quagga

Dmitry Tejblum (1):
      configure: fix HAVE_CLOCK_MONOTONIC spelling

Mathias Krause (1):
      lib: fix PIE build flags

Ondrej Zajicek (1):
      ospf6d: review LSA sequence number comparison

Paul Jakma (2):
      ospfd: remove unneeded memset from a very hot function
      ospfd: Fix debug messages that were masked by DISCARD_LSA

Stephen Hemminger (21):
      ospfd: make local functions static
      ospfd: comment out unused function
      ospfd: VTY strings cleanup
      lib: make match functions take const args
      zebra: remove unused function to fix warning
      zebra: fix more compiler warnings
      zebra: fix more warnings in rtadv
      lib: fix warning on little endian
      lib: move check_bit into prefix common code
      zebra: cleanup RIB meta queue code
      bgpd: compile warnings cleanup
      zebra: deal with irdp compile warnings
      ripngd: compiler warnings cleanup
      ospf6d: fix warnings from recent prefix bit commit
      ospf6d: remove dead code
      ripd: fix compiler warnings
      bgpd: code cleanup
      lib: make some structures constant
      zebra: change router-id selection algo
      bgp: use monotonic clock for time of day
      lib: undo the last PIE commit

Tom Goff (2):
      ospf6d: fix LSA locking in ospf6_new_ls_id()
      zebra: make declaration const in rtm_flag_dump()

heasley (2):
      zebra: fix argument reference in strncpy() call for BSD
      lib: log source of vty connections (bug #566)

Zebra bugfixes and enhancements

patches/hpp_rdnss
Hagen Paul Pfeifer (2):
      IPv6 Router Advertisement Option for RDNSS
      extend IPv6 documention for RDNSS option

David Lamparter (1):
      zebra: fix rtadv/rdnss vtysh breakage
other
Tom Goff (1):
      zebra: set the interface link-layer socket address
      zebra: consider all nexthops when looking for a gateway match

Joakim Tjernlund (1):
      zebra: Don't delete too many routes.

Stephen Hemminger (1):
      zebra: rib update in background and recursive routes

David Lamparter (18):
      zebra: fix bug #486 (lingering after IP address deletion)
      zebra: accept "connected" routes from protocols other than Connected
      zebra: add connected_check_ptp infrastructure
      zebra: netlink backend support setting a P-t-P address
      zebra: add '[no] ip address A.B.C.D peer A.B.C.D/M'
      zebra: shorten code for command help
      lib: lookup(): support 0 as a key, use NULL str for end of list
      netlink: display scope value in debug
      netlink: process scope value, save it
      zebra: add 'ip address ... scope WORD' vty+netlink
      zebra: configure PtP address on ifaliasreq systems
      zebra: NetBSD: get IPSRCSEL preference value from kernel
      zebra: NetBSD: support setting IPSRCSEL preference
      lib, ospfd: remove ZEBRA_FLAG_BLACKHOLE from the zclient API
      zebra: netlink: kill netlink_route
      zebra: cleanup blackhole support
      zebra: netlink: grab blackhole list from kernel
      zebra: rib: support blackhole kernel deletion notification

library/assorted bugfixes and enhancements

patches/jt_times2
Joakim Tjernlund (2):
      lib: Unexport recent_time
      lib: Use times(2) to calculate relative time.

David Lamparter (1):
      lib: fix header broken by times(2) branch
pj_workqueue
Paul Jakma (8):
      lib: Thread scheduler should be fair and not let events starve I/O and timers
      bgpd: Simplify process queue init
      lib: Add a command to clear the thread CPU history data
      lib: Make workqueue more conservative about ramping up
      ospfd: the maxage_lsa_remover should check whether it needs to yield the cpu
      ospfd: Reset neighbour inactivity timer for any packet arrival
      ospfd: Prioritise hellos for sending by queueing to head of output buffer
      ospfd: use workqueue for ospf_ase_calculate_route
other
David Ward (1):
      ospf6d: Fix crash when '[no] ipv6 ospf6 advertise prefix-list' is in startup-config

Paul Jakma (2):
      lib: Do better filtering of arguments, optional args particularly
      lib: fix whitespace of Do better filtering of arguments...

Stephen Hemminger (3):
      vty: fix warnings
      ospf: cleanup
      vty_serv_sock_family unused

Steve Hill (1):
      lib: Improve error reporting from broken config files

David Lamparter (14):
      build: ignore libtool m4 files
      build: ignore mkinstalldirs and texinfo.tex
      build: fixup autoconf for cross-compiling (to OpenWRT)
      build: libzebra link fix: add libcap
      rib: default distance value for new protocols (v2)
      zebra: fix redistribution of new protocols
      lib: put route_types.txt to real use
      lib: add sockopt helper for setting IPV6_V6ONLY and use it
      lib: fs namespacing 1/5: add path_* helpers
      lib: fs namespacing 2/5: use path_state for vty paths
      lib: fs namespacing 3/5: use path_state for zserv socket
      lib: fs namespacing 4/5: add -N command-line parameter
      lib: fs namespacing 5/5: vtysh -N command-line parameter
      lib: get rid of extraneous output with vty_prepend

BGP bugfixes

patches/dl_bug-537
David Lamparter (3):
      lib: prefix2sockunion, prefix_common_bits helper functions
      bgpd: bug #537: find proper source address for interface update-source
      bgpd: remove unused function bgp_bind_address
patches/sh_bgp-write-cork
Stephen Hemminger (6):
      stream: remove unused stream_read_unblock
      thread: remove except fd set
      BGP: leave peer socket in non-blocking mode (mostly)
      BGP: only use write event for non-blocking connect
      BGP: fix crash when allowas-in is done
      BGP: enable TCP corking
other
Michael Lambert (1):
      bgpd: New show commands for improved view and address family support

Stephen Hemminger (1):
      bgp: move cleanup fifo code

David Lamparter (3):
      bgpd: include "localhost" pseudo-peer in MRT dump
      bgpd: Add flags to MRT dump
      bgpd: Fix nexthops for IPv4 routes on IPv6 peerings.

OSPF bugfixes and enhancements

patches/jt_ospf-fixes-20091129
Joakim Tjernlund (5):
      ospfd: ospf_hello() should only kick state machine once.
      ospfd: fix ospf_nbr_lookup_by_addr()
      ospfd: replace route_nodes with a list
      ospfd: delete address in struct ospf_neighbor
      ospfd: PointToPoint neighbors are identified by router ID.

David Lamparter (2):
      ospfd: fix opaque-LSA broken by route_node -> list
      ospfd: fix ospf SNMP support broken by prev 2 commits
patches/jt_ospf-various
Joakim Tjernlund (3):
      lib: Optimize Fletcher and Internet checksums
      ospfd: invalid MD5 auth_key?
      ospfd: Add new host route command
patches/jt_unnumbered
Joakim Tjernlund (7):
      zebra, lib: Add ZEBRA_INTERFACE_UNNUMBERED interface flag.
      ospfd: Test for ZEBRA_INTERFACE_UNNUMBERED
      ospfd: Do not send host routes on unnumbered PtP I/F's
      ospfd: Impl. command ip ospf area
      ospfd: Do not free area too early.
      ospfd: Update SPF calculation for unnumbered links
      ospfd: Optimize and improve SPF nexthop calculation

Paul Jakma (1):
      ospfd: External routes over PtoP must be directly connected.

David Lamparter (1):
      ospfd: add missing ospf_interface_[un]set prototypes

IS-IS bugfixes

patches/fr_isisd-fixes
Fritz Reichmann (4):
      isisd: fixes 1/7: bug #536: crash on apply/delete isis config
      isisd: fixes 2/7: bug #539: wrong hello rate for pseudo node
      isisd: fixes 7/7: bug #544: unexpected kernel routing table
      isisd: md5 link authentication

Peter Szilagyi (4):
      isisd: fixes 3/7: include hash.h, not hash.c
      isisd: fixes 4/7: circuit state machine
      isisd: fixes 5/7: send proper LSP after DIS election
      isisd: fixes 6/7: wrong next-hops from SPF
patches/dl_isisd-extract-pl
David Lamparter (1):
      isisd: change ISIS_METHOD to use C preprocessor

pimd

Well, the entire daemon is new. http://www.nongnu.org/qpimd/ - Kudos to Everton da Silva Marques.

not merged

patches/pj_ospf-netlsa
Paul Jakma (5):
      ospfd: Remember network LSA sequence numbers across up/downs of an interface
      ospfd: OSPF_MIN_LS_ARRIVAL compare should be >= to match ospf_flood
      ospfd: interface code should leave network_lsa_self alone
      ospfd: Unify router and network LSA refresh logic with general refresher
      ^ nomerge: this patch breaks Opaque LSA support
      ospfd: Fix maxage/flush to not try flood twice, remember maxages for longer

coming soon