summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-04-11Merge quagga mainline into the google ISIS code.Avneesh Sachdev
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
2012-04-08zebra: include hardware addr in if up/down messagesJosh Bailey
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().
2012-04-08lib: Tweak to if_delete_retain()Josh Bailey
* 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().
2012-04-08zebra: clean up client routes when client goes awayJosh Bailey
* 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>
2012-04-07zebra: add more logs/asserts to rib work queue codeSubbaiah Venkata
* 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>
2012-04-07isisd: couple of bug fixesSubbaiah Venkata
2012-04-07isisd: add Google's changes to IS-ISJosh Bailey
2012-04-07zebra: tweak deletion of routes without nexthop addrSubbaiah Venkata
* 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>
2012-04-07zebra: read multipath routes and hw addr from netlinkJosh Bailey
* 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>
2012-04-07lib: add stream_set_endp()Subbaiah Venkata
* 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>
2012-04-07lib: add support for keyed-hashing with MD5Josh Bailey
* 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>
2012-04-07lib: Tweaks to linked list macrosJosh Bailey
* 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>
2012-04-04lib: pretty ip_masklen and masklen2ipDavid Lamparter
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>
2012-04-04Revert "lib: optimize ip_masklen()" (BZ#720)David Lamparter
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>
2012-03-27bgpd: bgp_attr_flags_diagnose shouldn't assertPaul Jakma
* 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.
2012-03-27bgpd: attr_parse call to attr_malformed should deal with PROCEED error casePaul Jakma
* 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.
2012-03-27bgpd: Fix silly mistake in bgp_attr_flag_invalidPaul Jakma
* bgp_attr.c: (bgp_attr_flag_invalid) flags is meant to be masked off with the mask variable...
2012-03-25bgpd: malformed attribute error that can still proceed should fixup getpPaul Jakma
* 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.
2012-03-25Merge branch 'babeld-merge' into master-copyPaul Jakma
2012-03-25babeld: remove "parasitic" mode.Juliusz Chroboczek
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.
2012-03-25babeld: 3 more timing statements in config textDenis Ovsienko
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
2012-03-25babeld: consolidate zebra interface into fewer functions.Juliusz Chroboczek
2012-03-25babeld: fix typo in kernel_route_add_v6.Juliusz Chroboczek
2012-03-25babeld: set interface flags eagerly, not at interface up.Juliusz Chroboczek
2012-03-25babeld: more helpful sample conf file.Juliusz Chroboczek
2012-03-25babeld: fix documentation.Juliusz Chroboczek
2012-03-25babeld: remove remains of standalone babeld's configuration code.Juliusz Chroboczek
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.
2012-03-25babeld: drive interface_config_write() forwardDenis Ovsienko
2012-03-25babeld: justify "running-config" meaning in CLIDenis Ovsienko
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
2012-03-25Remove dead variable reboot_time.Juliusz Chroboczek
Thanks to Denis Ovsienko.
2012-03-25doc: fix typo.Matthieu Boutier
2012-03-25doc: update babeld documentation.Juliusz Chroboczek
2012-03-25doc: fix Makefile dependencies for babeld.Juliusz Chroboczek
2012-03-25babeld: display update-interval and resend-delay in show commands"Juliusz Chroboczek
2012-03-25babeld: vty commands (hello-interval, update-interval, resend-delay).Juliusz Chroboczek
2012-03-25babeld: remove port and group setting commands.Juliusz Chroboczek
They didn't work anyway, since they're called too late.
2012-03-25Resynchronise with babeld-1.3.1.Juliusz Chroboczek
2012-03-25babeld: dismiss babel_redistribute_unset()Denis Ovsienko
The function was effectively duplicating existing zclient_redistribute(). This makes no_babel_redistribute_type() consistent with babel_redistribute_type()
2012-03-25babeld: fix wire{d,less} commands name.Matthieu Boutier
2012-03-25ripd: add babel for redistribution.Matthieu Boutier
2012-03-25ripngd: Replace redistribution strings with route_types.h defines.Matthieu Boutier
2012-03-25babeld: Add support for blackhole routes.Juliusz Chroboczek
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.
2012-03-25babeld: refactor filtering stubs.Juliusz Chroboczek
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.
2012-03-25zebra: Display uptime of Babel routes in show ip[v6] route.Juliusz Chroboczek
2012-03-25babeld: Use quagga_gettime.Juliusz Chroboczek
2012-03-25babeld: Don't use an ifindex when installing IPv4 routes.Juliusz Chroboczek
Stand-alone babeld installs routes using both a next-hop gateway and an interface index. Unfortunately, this doesn't work for IPv4 under Quagga. We now ignore the ifindex when installing IPv4 routes, which makes Babel work for IPv4 in prefix-based networks. Of course this breaks IPv4 mesh networks, unless you play some tricks with your interfaces' netmasks.
2012-03-25babeld: remove some unused functions' arguments.Matthieu Boutier
2012-03-25doc: fix typo in babeld.Matthieu Boutier
2012-03-25doc: Document babeld.Juliusz Chroboczek
2012-03-25babeld: Indentation fix.Juliusz Chroboczek