| Age | Commit message (Collapse) | Author | 
|---|
|  | this re-removes CVS keywords and .cvsignore files. original commits:
	b82cdeb delete CVS keywords
	05e54ee build: delete .cvsignore files | 
|  | this merges a bgp capability negotiation fix where bgpd would fail if no
multiprotocol capability was present, but other capabilities were. | 
|  | this patchset allows collapsing multiple received routes in BGP into one
multipath route that will, if readvertised, contain an aggregate of all
received attributes. | 
|  | Reapply the bits of revision b4e45f6 that pertain to isisd. That is:
  git log -n 1 -p b4e45f6 -- isisd
These were dropped in the merge with the Google ISIS code (14d2bbaa).
The commit message for b4e45f6 is:
    fix zebra protocol after MP-BGP changes
    The previous commits modified both zebra and bgpd for additional
    SAFI field, but not any other routing daemon, which led to zebra
    daemon crashing with failed assertion. | 
|  | The steps were:
  $ git checkout google-is-is
  $ git merge quagga
  $ git checkout google-is-is -- isisd
  # Resolve conflicts in the following:
  lib/md5.h
  zebra/rt_netlink.c
  zebra/zebra_rib.c
  zebra/zserv.c
Note that the content in the isisd directory is left unchanged in the
merge. As a result, changes made to isisd as part of the following
commits on the quagga mainline are dropped.
  # 8ced4e82 is the merge base, e96b3121 is the current quagga master
  $ git log --oneline --reverse 8ced4e82..e96b3121 -- isisd
  5574999 isisd: fix crash on "no router isis" (BZ#536)
  8998075 isisd: raise hello rate for DIS (BZ#539)
  306ca83 isisd: include hash.h, not hash.c
  b82cdeb delete CVS keywords
  2f65867 isisd: indent longopts array
  b511468 quagga: option "-z" ("--socket <path>") added
  05e54ee build: delete .cvsignore files
  b4e45f6 fix zebra protocol after MP-BGP changes
  7fd6cd8 isisd: fix circuit state machine
  907fd95 isisd: send proper LSP after DIS election
  d034aa0 isisd: fix wrong next-hops from SPF
  c25eaff isisd: unexpected kernel routing table (BZ#544)
  e6b03b7 isisd: implement MD5 circuit authentication | 
|  |  | 
|  | Conflicts:
	bgpd/bgp_route.c | 
|  | Address problem where bgpd would reject a session if a peer sent some
capabilities in its Open message, but did not include a Multiprotocol
extensions capability. Note that the session would come up if there
were no capabilities at all in the Open message.
  * Add the 'mp_capability' out parameter to
    bgp_capability_parse(). Set it to '1' if a Multiprotocol
    extensions capability is encountered.
  * Switch on 'mp_capability' instead of 'capability' in the calling
    functions to determine if the peer indicated the set of AFI/SAFIs
    it supports.
    The net result is that when a peer does not send an MP capability,
    it is assumed to support the AFI/SAFIs configured for it locally. | 
|  | Change interface up/down notification messages to also include the
hardware address of the interface. The format of these messages is now
identical to the interface add message -- move the serialization code
to common functions.
  * lib/zclient.c: Modify zebra_interface_if_set_value() to also parse
    the hardware address. Invoke it from zebra_interface_add_read()
    and and zebra_interface_state_read().
  * zebra/zserv.c: Add zserv_encode_interface(). Invoke it from
    zserv_interface_add(), zserv_interface_delete() and
    zserv_interface_update(). | 
|  | * lib/if.c: Change if_delete_retain() to delete all connected
    addresses, but to not free the list that holds them. Free the list
    just before the interface structure itself is freed, in
    if_delete(). | 
|  | * zebra/zebra_rib.c: Add code to clean up routes added by a client
    (as identfied by 'rib type').
  * zebra/zserv.[ch]: Maintain the type of the routes added by a
    client on the 'zserv' structure -- assume that a given client uses
    a single route type for now.
    Clean up routes from a client when the client goes away (in
    zebra_client_close()).
From: Josh Bailey <joshb@google.com>
Signed-off-by: Avneesh Sachdev <avneesh@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@diac24.net> | 
|  | * zebra/zebra_rib.c: (rib_queue_add, rib_queue_init) Add some more
    logs and asserts.
From: Subbaiah Venkata <svenkata@google.com>
Signed-off-by: Avneesh Sachdev <avneesh@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@diac24.net> | 
|  |  | 
|  |  | 
|  | * zebra/zserv.c
    - zread_ipv4_delete(): Pass a null 'gate' parameter to
      rib_delete_ipv4() if the route being deleted does not specify a
      next hop IP address. We were previously passing a pointer to a
      cleared out IP address.
    - zread_ipv4_add(): Fix indentation.
From: Subbaiah Venkata <svenkata@google.com>
Signed-off-by: Avneesh Sachdev <avneesh@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@diac24.net> | 
|  | * zebra/rt_netlink.c:
    - Pick up the hardware address of an interface when we receive a
      netlink link change message. Extract code for parsing the
      link-layer hardware address into a new function so we can reuse
      it.
    - netlink_routing_table(): Update to handle multipath routes.
    - netlink_route_change(): Update to handle multipath routes. Fix
      problem where the metric was not being read out.
  * zebra/zebra_rib.[ch]: Extern nexthop_ipv4_ifindex_add() -- it is
    now called from the netlink code.
From: Josh Bailey <joshb@google.com>
Signed-off-by: Avneesh Sachdev <avneesh@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@diac24.net> | 
|  | * lib/stream.[ch]:
    - Add stream_set_endp(). This can be used to trim data (for
      example, padding) at the end of a stream.
    - Fix swapped 'getp' and 'endp' parameters in STREAM_WARN_OFFSETS.
From: Subbaiah Venkata <svenkata@google.com>
Signed-off-by: Avneesh Sachdev <avneesh@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@diac24.net> | 
|  | * lib/md5.[ch] Add implementation of HMAC-MD5 from RFC 2104.
From: Josh Bailey <joshb@google.com>
Signed-off-by: Avneesh Sachdev <avneesh@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@diac24.net> | 
|  | * lib/linklist.h
    - Change the listnextnode, listhead and listtail macros so that
      they allow the list pointer to be NULL.
    - Modify the ALL_LIST_ELEMENTS* macros such that they clear the
      data pointer at the beginning and end of the loop.
From: Josh Bailey <joshb@google.com>
Signed-off-by: Avneesh Sachdev <avneesh@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@diac24.net> | 
|  | nonwithstanding any desire for optimisation, these versions are shorter
and more concise.  reading the comments, they might even be easier to
understand.
I've tested them on i686 and x86_64, and checked that correct assembler
code is emitted for ARM, MIPS and PowerPC.
IPv6 is left as an exercise for another day, none of the ideas I had led
to a "yes, this is the one to go with" solution.
Signed-off-by: David Lamparter <equinox@diac24.net> | 
|  | This reverts commit d171bf58ef12ace43d48565e6870722dece1e6ed.
There are multiple reasons for this revert, including bug #720, but also
quite simply the unreadability of having 2000 lines of an autogenerated
table in the middle of a source file.
Signed-off-by: David Lamparter <equinox@diac24.net>
Reported-by: Martin Winter <mwinter@opensourcerouting.org> | 
|  | * bgpd/bgp_attr.c: (bgp_attr_flags_diagnose) debug code for error-handling
  paths probably shouldn't assert, instead it should just log that there
  was no problem. | 
|  | * bgpd/bgp_attr.c: (bgp_attr_parse) the invalid flag check call to
  bgp_attr_malformed is pretty useless if it doesn't actually allow
  for the PROCEED non-error case. | 
|  | * bgp_attr.c: (bgp_attr_flag_invalid) flags is meant to be masked
  off with the mask variable... | 
|  | * bgp_attr.c: (bgp_attr_malformed) When a malformed attribute error can be
  ignored, and BGP message processing may still proceed, the stream getp
  should be adjusted to the end of the attribute - the caller may not have
  consumed all the attribute. Problem noted by Martin Winter in bug 678.
  Also, rename the 'startp' local to 'notify_datap', for clarity. | 
|  |  | 
|  | This is the functionality described in Appendix C of RFC 6126.  Its
main purpose is to avoid keeping a full source table, which makes it
possible to implement a subset of Babel in just a few hundred lines of
code.  However, in Quagga the code for maintaining the source table is
already there, and a parasitic implementation can be simulated using
filtering -- so it makes little sense to keep the functionality. | 
|  | This commit makes the following lines visible in running-config text,
when respective intervals are configured to non-default values:
* babel hello-interval
* babel update-interval
* babel resend-delay | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | Standalone babeld has a configuration interface that is not used in
Quagga.  This removes a few bits of this code that survived the
port to Quagga. | 
|  |  | 
|  | The primary focus of this commit is to make "show running-config"
command display more current configuration, including some of the bits
previously seen in the output of "show babel running-config". Besides
that, the following commands were renamed for consistency with the
syntax of other components:
"debug *" to "debug babel *" (and moved to top level)
"show babel running-config" to "show babel parameters"
* babel_interface.c
  * show_babel_running_config(): rename to show_babel_parameters(),
    update syntax pattern, don't call show_babeld_configuration()
  * babel_if_init(): update respectively
  * babel_enable_if_config_write(): new VTY helper for static
    babel_enable_if
* babel_interface.h: add extern declaration
* babel_main.c: unset all debug options by default
  * show_babel_main_configuration(): remove debug options decoder
* babel_zebra.c
  * babel_debug(): rename to debug_babel(), update syntax pattern
  * no_babel_debug(): rename to no_debug_babel(), update syntax pattern
  * babelz_zebra_init(): update respectively
  * debug_babel_config_write() new VTY helper for static debug_type
* babel_zebra.h: add extern declaration
* babeld.c
  * babel_config_write(): add the code to output "debug babel *",
    "router babel", "redistribute *" and "network *" statements
  * show_babeld_configuration(): dismiss
* babeld.h: remove extern declaration
* babeld.texi: update for renamed commands
* babeld.conf.sample: idem, add debug statements block | 
|  | Thanks to Denis Ovsienko. | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  |  | 
|  | They didn't work anyway, since they're called too late. | 
|  |  | 
|  | The function was effectively duplicating existing
zclient_redistribute(). This makes no_babel_redistribute_type()
consistent with babel_redistribute_type() | 
|  |  | 
|  |  | 
|  |  | 
|  | Babel makes use of blackhole routes to prevent routing loops between
overlapping prefixes shortly after a route is retracted (see RFC 6126
sections 2.8 and 3.5.5).  This patch adds support for installing such
blackhole routes. | 
|  | Factorise the common parts of the in/out filtering functions.  This also
fixes a bug with filtered out routes, which in babeld are signalled by
a filter returing INFINITY, not -1. |