]> git.proxmox.com Git - mirror_frr.git/log
mirror_frr.git
9 years agovtysh-integrated-fix.patch
Donald Sharp [Wed, 20 May 2015 23:55:57 +0000 (16:55 -0700)]
vtysh-integrated-fix.patch

Lost config when switching back and forth between 'service integrated-vtysh-config'.
Also it was possible to have config files not be read in if they were not generated.

Ticket: CM-6011, CM-6033
Reviewed By: Daniel Walton <dwalton@cumulusnetworks.com>
Testing Done: See bugs

9 years agoFixup 'force' -vs- 'all' compile issue
Donald Sharp [Wed, 20 May 2015 14:00:02 +0000 (07:00 -0700)]
Fixup 'force' -vs- 'all' compile issue

Our code implemented 'force' for a keyword while quagga mainline implemented 'all'.
This fixups the #define usage that was missed that came in during one of the patch
files.  This is a compile only testing

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
9 years agobgpd-ttl-fix.patch
Donald Sharp [Wed, 20 May 2015 01:46:10 +0000 (18:46 -0700)]
bgpd-ttl-fix.patch

BGP: Fix MINTTL and IPV6_MINHOPCOUNT

The #defines for IP_MINTTL and IPV6_MINHOPCOUNT need to be handled
correctly as part of the configure.ac code. Instead of hard coding
the values directly in the code

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
9 years agobgpd-ebgp-multihop-fix.patch
Donald Sharp [Wed, 20 May 2015 01:45:53 +0000 (18:45 -0700)]
bgpd-ebgp-multihop-fix.patch

BGP: Fix EBGP multihop transitions correctly

Since BGP connection setup has migrated to using NHT to decide when to bring a
session up, we have to handle ebgp multihop transitions correctly to ensure NHT
registrations are correctly handled.

Signed-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>
9 years agoIf the default route is removed from the BGP table we must re-evaluate "neighbor...
Donald Sharp [Wed, 20 May 2015 01:29:19 +0000 (18:29 -0700)]
If the default route is removed from the BGP table we must re-evaluate "neighbor x.x.x.x default-originate"

9 years agoBGP 'show ip bgp nei x.x.x.x advertised-route' does not display 'Originating default...
Donald Sharp [Wed, 20 May 2015 01:29:19 +0000 (18:29 -0700)]
BGP 'show ip bgp nei x.x.x.x advertised-route' does not display 'Originating default network 0.0.0.0'

9 years agoThe BGP parser will not accept "no bgp route-map delay-timer 1"
Donald Sharp [Wed, 20 May 2015 01:29:19 +0000 (18:29 -0700)]
The BGP parser will not accept "no bgp route-map delay-timer 1"

9 years agoRename BGP's "peer-id" to "peer-router-id" and "peer-ip" to "peer-id"
Donald Sharp [Wed, 20 May 2015 01:29:19 +0000 (18:29 -0700)]
Rename BGP's "peer-id" to "peer-router-id" and "peer-ip" to "peer-id"

9 years agoAS_PATH comparison is broken if CONFED_AS_SEQ are present
Donald Sharp [Wed, 20 May 2015 01:29:18 +0000 (18:29 -0700)]
AS_PATH comparison is broken if CONFED_AS_SEQ are present

9 years agoThe BGP cli needs support for soft clearing swpX peers
Donald Sharp [Wed, 20 May 2015 01:29:18 +0000 (18:29 -0700)]
The BGP cli needs support for soft clearing swpX peers

9 years agoquagga: vtysh-integrated-fix.patch
Donald Sharp [Wed, 20 May 2015 01:29:18 +0000 (18:29 -0700)]
quagga: vtysh-integrated-fix.patch

Fixup to allow 'no service-integrated-vtysh' to work properly and vice versa
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agovtysh: service integrated-vtysh-config not being written to file
Donald Sharp [Wed, 20 May 2015 01:29:17 +0000 (18:29 -0700)]
vtysh: service integrated-vtysh-config not being written to file

The vtysh commands:
service integrated-vtysh-config
hostname XXXX

were not being written to the /etc/quagga/Quagga.conf file with a wr mem
when service integrated-vtysh-config was issued.  This patch fixes this
issue

9 years agobgpd: bgp-no-as-fix.patch
Donald Sharp [Wed, 20 May 2015 01:29:17 +0000 (18:29 -0700)]
bgpd: bgp-no-as-fix.patch
bgp: Fix of peer group internal and external show run output

When doing a show run for peer-groups in bgp, the remote-as was not being printed

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agodebian: modify quagga pkg depend on cl-utilities pkg
Donald Sharp [Wed, 20 May 2015 01:29:17 +0000 (18:29 -0700)]
debian: modify quagga pkg depend on cl-utilities pkg

Modified debian/control file to list as a dependency the cl-utilities package
as the cl-utilities package provides start-stop-monitor which is needed by
quagga to be monitored correctly.

9 years agoquagga: quagga-memory-leaks.patch
Donald Sharp [Wed, 20 May 2015 01:29:17 +0000 (18:29 -0700)]
quagga:  quagga-memory-leaks.patch
Fix up some memory leaks found by valgrind
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agoospfd: ospfd-virtual-link.patch
Donald Sharp [Wed, 20 May 2015 01:29:16 +0000 (18:29 -0700)]
ospfd: ospfd-virtual-link.patch
ospfd: virtual links fix
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

Basically ZEBRA_INTERFACE_LINKDETECTION is set to on by default now.
Virtual links are failing to identify as up because of this code change.
Modify ospf to set the flag as appropriate

9 years agobgpd-hostname-cap.patch
Donald Sharp [Wed, 20 May 2015 01:29:16 +0000 (18:29 -0700)]
bgpd-hostname-cap.patch

bgpd: Exchange hostname capability and display hostnames in outputs

This patch adds a hostname capability. The node's hostname and
domainname are exchanged in the new capability and used in show command
outputs based on a knob enabled by the user. The hostname and domainname
can be a maximum of 64 chars long, each.

Signed-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>
Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Vivek Venkataraman <vivek@cumulusnetworks.com>
9 years agoquagga: quagga-debian-upgrade.patch
Donald Sharp [Wed, 20 May 2015 01:29:16 +0000 (18:29 -0700)]
quagga: quagga-debian-upgrade.patch
debian: The upgrade is failing due to missing files
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agoquagga: quagga-startup-fds.patch
Donald Sharp [Wed, 20 May 2015 01:29:16 +0000 (18:29 -0700)]
quagga: quagga-startup-fds.patch
Setup default number of filedescriptors allowed in quagga defaults and ulimit calls
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agoInclude loopback IP addresses in martian NEXTHOP check
Donald Sharp [Wed, 20 May 2015 01:29:15 +0000 (18:29 -0700)]
Include loopback IP addresses in martian NEXTHOP check

9 years ago'show ip bgp neighbors 10.1.1.2 advertised-routes' fails for route-reflector-clients
Donald Sharp [Wed, 20 May 2015 01:29:15 +0000 (18:29 -0700)]
'show ip bgp neighbors 10.1.1.2 advertised-routes' fails for route-reflector-clients

9 years agovtysh: vtysh-warnings.patch
Donald Sharp [Wed, 20 May 2015 01:29:15 +0000 (18:29 -0700)]
vtysh: vtysh-warnings.patch
Remove compile warnings for the vtysh directory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agoisisd: isisd-warnings.patch
Donald Sharp [Wed, 20 May 2015 01:29:15 +0000 (18:29 -0700)]
isisd: isisd-warnings.patch
Remove compile warnings for the isisd directory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agoripngd: ripngd-warnings.patch
Donald Sharp [Wed, 20 May 2015 01:29:14 +0000 (18:29 -0700)]
ripngd: ripngd-warnings.patch
Remove compile warnings for the ripngd directory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agoospfd: ospfd-warnings.patch
Donald Sharp [Wed, 20 May 2015 01:29:14 +0000 (18:29 -0700)]
ospfd: ospfd-warnings.patch
Remove compile warnings for the ospfd/ospf6d directory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agoripd: ripd-warnings.patch
Donald Sharp [Wed, 20 May 2015 01:29:14 +0000 (18:29 -0700)]
ripd: ripd-warnings.patch
Remove compile warnings for the ripd directory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years ago# This series applies on GIT commit fb5bc49d174aed959bae4e8e1a75b7cbcc09fa3a
Donald Sharp [Wed, 20 May 2015 01:12:56 +0000 (18:12 -0700)]
# This series applies on GIT commit fb5bc49d174aed959bae4e8e1a75b7cbcc09fa3a
ripd-warnings.patch
ospfd-warnings.patch
ripngd-warnings.patch
isisd-warnings.patch
vtysh-warnings.patch
bgpd-show-rrc-adv-routes.patch
bgpd-local-ip-martians.patch
quagga-startup-fds.patch
quagga-debian-upgrade.patch
bgpd-hostname-cap-patch
ospfd-virtual-link.patch
quagga-memory-leaks.patch
debian-depend-on-cl_utils.patch
bgpd-no-as-fix.patch
vtysh-integrated.patch
vtysh-integrated-fix.patch
bgpd-soft-clear-swpX-peers.patch
bgpd-confed-aspath-comparison.patch
bgpd-json-rename-peer-keys.patch
bgpd-no-route-map-delay-timer.patch
bgpd-display-originating-default.patch
bgpd-neighbor-default-originate.patch
fixup-of-debugs

9 years agobgpd: bgpd-warnings.patch
Donald Sharp [Wed, 20 May 2015 01:12:17 +0000 (18:12 -0700)]
bgpd: bgpd-warnings.patch
Remove compile warnings for the bgpd directory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agozebra: zebra-warnings.patch
Donald Sharp [Wed, 20 May 2015 01:04:26 +0000 (18:04 -0700)]
zebra: zebra-warnings.patch

Remove compiled warnings for the zebra directory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agolib: lib-warnings.patch
Donald Sharp [Wed, 20 May 2015 01:04:26 +0000 (18:04 -0700)]
lib: lib-warnings.patch
Remove compile warnings for the lib directory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agobgpd: bgpd-no-as.patch
Donald Sharp [Wed, 20 May 2015 01:04:25 +0000 (18:04 -0700)]
bgpd: bgpd-no-as.patch
bgp: Fixup of the remote-as command to allow user to not have to enter an actual as number
Signed-off-by: Donald Sharp<sharpd@cumulusnetworks.com>
Reviewed-by:

9 years agorename monit to jdoo
Donald Sharp [Wed, 20 May 2015 01:04:24 +0000 (18:04 -0700)]
rename monit to jdoo

9 years agoIf the route-map used on a redistribute statement does not exists we should DENY all
Donald Sharp [Wed, 20 May 2015 01:04:24 +0000 (18:04 -0700)]
If the route-map used on a redistribute statement does not exists we should DENY all

9 years ago"clear ip bgp * soft out" does not trigger resending "neighbor x.x.x.x default-originate"
Donald Sharp [Wed, 20 May 2015 01:04:23 +0000 (18:04 -0700)]
"clear ip bgp * soft out" does not trigger resending "neighbor x.x.x.x default-originate"

9 years agoset community delete stops as soon as it hits a community-list entry with a deny
Donald Sharp [Wed, 20 May 2015 01:04:23 +0000 (18:04 -0700)]
set community delete stops as soon as it hits a community-list entry with a deny

9 years agouse ptm msg v2 header format for notifications
Donald Sharp [Wed, 20 May 2015 01:04:22 +0000 (18:04 -0700)]
use ptm msg v2 header format for notifications

9 years agoSome debug calls are being passed the incorrect peer
Donald Sharp [Wed, 20 May 2015 01:04:21 +0000 (18:04 -0700)]
Some debug calls are being passed the incorrect peer

9 years agoAn undefined route-map should deny everything
Donald Sharp [Wed, 20 May 2015 01:04:21 +0000 (18:04 -0700)]
An undefined route-map should deny everything

9 years agoIf a route-map is used on a neighbor default-originate statement we need to dynamical...
Donald Sharp [Wed, 20 May 2015 01:04:20 +0000 (18:04 -0700)]
If a route-map is used on a neighbor default-originate statement we need to dynamically add/del the default route if the permit/deny result of the route-map changes.

9 years agobgpd-nht-import-check-fix.patch
Donald Sharp [Wed, 20 May 2015 01:04:20 +0000 (18:04 -0700)]
bgpd-nht-import-check-fix.patch

BGP: Fix network import check use with NHT instead of scanner

When next hop tracking was implemented and the bgp scanner was eliminated,
the "network import-check" command got broken. This patch fixes that
issue. NHT is used to not just track nexthops, but also the static routes
that are announced as part of BGP's network command. The routes are
registered only when import-check is enabled. To optimize performance,
we register static routes only when import-check is enabled.

Signed-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>
9 years agoDuring connection setup, there may be two connections in progress for a BGP
Donald Sharp [Wed, 20 May 2015 01:04:19 +0000 (18:04 -0700)]
During connection setup, there may be two connections in progress for a BGP
peer - one initiated by the local system and the other initiated by the peer.
Enhance key debug logs to also print the socket file descriptor so that it is
clear which events pertain to which connection.

9 years agoFixup old debug commands to work with new cli
Donald Sharp [Wed, 20 May 2015 01:04:18 +0000 (18:04 -0700)]
Fixup old debug commands to work with new cli

9 years agoWhen a peer is unbound from its peer-group, in some situations the peer is
Donald Sharp [Wed, 20 May 2015 01:04:18 +0000 (18:04 -0700)]
When a peer is unbound from its peer-group, in some situations the peer is
deleted while in other situations, the peer continues to exist but its
global flags have all been reset. This is incorrect, particularly for the
CONFIG_NODE flag as other parts of the code depend on this flag being set
for a configured peer. This patch ensures that the correct flags still
remain set for the peer after unbind from its peer-group.

9 years agoFix some minor bugs with json output in bgp show commands
Donald Sharp [Wed, 20 May 2015 01:04:17 +0000 (18:04 -0700)]
Fix some minor bugs with json output in bgp show commands

9 years agoThe retry of BGP connection after expiry of connect retry timer was
Donald Sharp [Wed, 20 May 2015 01:04:17 +0000 (18:04 -0700)]
The retry of BGP connection after expiry of connect retry timer was
broken by some earlier patches. Instead of staying in Connect state
after reattempting the connection, the state used to go back to Idle
and then try to connect. This patch fixes this error.

9 years agoZebra: Don't resolve routes over default for nexthop tracking
Donald Sharp [Wed, 20 May 2015 01:04:16 +0000 (18:04 -0700)]
Zebra: Don't resolve routes over default for nexthop tracking

Resolving routes over the default route for NHT can lead to all sorts
of problems. So, we explicitly exclude resolving routes for NHT over the
default route. A knob is provided to allow the route to be resolved over
the default in case of special circumstances.

Signed-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>
Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
9 years agoZebra: Ensure we compare prefix and NHs when checking if NH changed
Donald Sharp [Wed, 20 May 2015 01:04:16 +0000 (18:04 -0700)]
Zebra: Ensure we compare prefix and NHs when checking if NH changed

In nexthop tracking, the code currently compares the nexthop state of the
resolved_route for a prefix with the previous nexthop state. However, if
the resolved route itself changes, we can end up comparing the RIBs of
unrelated prefixes and assuming that nothing has changed. To fix this, we
need to store and compare the new resolved route with the previously
resolved route. If this has changed, assume the NH associated with a route
has changed.

Signed-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>
Reviewed-by: Vivek Venkataraman <vivek@cumulusnetworks.com>
9 years agoZebra: Static NHT fixes
Donald Sharp [Wed, 20 May 2015 01:04:15 +0000 (18:04 -0700)]
Zebra: Static NHT fixes

When NHT calls rib_process() to be invoked for a prefix, the RIB has already
been marked as having NH changes. The first call to nexthop_active_update
clears this flag and attempts to re-determine if there are any NH changes for
a prefix. However, when the NH is recurisve, this fails. Furthermore, since
NHT has already determined that this RIB has NH changes, there's no need to
ascertain that again. The original patch used static route as the proxy to
skip this call which was incorrect since rib_process can be invoked for
static routes for reasons other than NHT. So, this patch removes the check
for static route and directly checks if the NH changed flag has been set.

Signed-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>
Reviewed-by: Vivek Venkataraman <vivek@cumulusnetworks.com>
9 years agoospfd: ospf_cli_fixes
Donald Sharp [Wed, 20 May 2015 01:04:15 +0000 (18:04 -0700)]
ospfd: ospf_cli_fixes
ospf: Fix cli issues with timers throttle spf and no ip ospf authentication...
When entering no timers throttle spf there was no way to specify the delay, hold
time and max hold time so the command was rejected.  This is useful for automated
processes that take currently entered cli to remove the cli.
When entering no ip ospf authentication most forms of the command were being
ignored, this fixes that as well.

Signed-off-by: Donald Sharp <sharpd at cumulusnetworks.com>
Reviewed-by:

9 years agoWhen an incoming connection is received from a neighbor that is configured but
Donald Sharp [Wed, 20 May 2015 01:04:14 +0000 (18:04 -0700)]
When an incoming connection is received from a neighbor that is configured but
is not activated for any address-family, the connection is accepted without
taking further action. This causes the connection to hang in OpenSent on the
neighbor and can in turn delay the connection setup. Fix to reject incoming
connections when there is no address-family activated for the neighbor.

9 years agoinitd-status.patch
Donald Sharp [Wed, 20 May 2015 01:04:13 +0000 (18:04 -0700)]
initd-status.patch

Add support for service quagga status.

As per LSB initscript status code definitions, support is added for
querying status of quagga. All daemons supposed to have been enabled, will
be checked as running and if any one of them is found to be not running, the
appropriate status code is returned.

Note that if watchquagga is running, a status indicating a problem maybe a
trasient problem because watchquagga will start back an unresponsive or dead
process.
http://refspecs.linuxbase.org/LSB_4.1.0/LSB-Core-generic/LSB-Core-generic/iniscrptact.html

9 years agozebra-rtadv-suppress-default-config.patch
Donald Sharp [Wed, 20 May 2015 01:04:13 +0000 (18:04 -0700)]
zebra-rtadv-suppress-default-config.patch

Zebra: Suppress displaying default config as part of running config

Quagga doesn't display default config as part of the running config, only
what is different from the default. However, in the case of rtadv, every
link displays the default "ipv6 nd suppress-ra" as part of running config.
This patch fixes that.

9 years agoWhen a peer that is Established goes down, it is moved into the Clearing
Donald Sharp [Wed, 20 May 2015 01:04:12 +0000 (18:04 -0700)]
When a peer that is Established goes down, it is moved into the Clearing
state to facilitate clearing of the routes received from the peer - remove
from the RIB, reselect best path, update/delete from Zebra and to other
peers etc. At the end of this, a Clearing_Completed event is generated to
the FSM which will allow the peer to move out of Clearing to Idle.

The issue in the code is that there is a possibility of multiple Clearing
Completed events being generated for a peer, one per AFI/SAFI. Upon the
first such event, the peer would move to Idle. If other events happened
(e.g., new connection got established) before the last Clearing_Completed
event is received, bad things can happen.

Fix to ensure only one Clearing_Completed event is generated.

9 years agoThis is to backport the upstream fix on top of bgpd-restart-bit-fix.patch
Donald Sharp [Wed, 20 May 2015 01:04:12 +0000 (18:04 -0700)]
This is to backport the upstream fix on top of bgpd-restart-bit-fix.patch

[quagga-dev 11878] [PATCH] bgpd: stop startup timer on stopping BGP (fixes dd49eb1)

9 years agoWhen unexpected events are received, do not silently transition to Idle
Donald Sharp [Wed, 20 May 2015 01:04:12 +0000 (18:04 -0700)]
When unexpected events are received, do not silently transition to Idle
state through bgp_ignore() as that may not do required cleanup. Instead,
define a new event handler to handle such cases, which will go through
bgp_stop(). A similar change is also done to handle the case where an
event handler fails.

Also add a couple of variables to keep track of events for a peer.

9 years agoinitd-reload.patch
Donald Sharp [Wed, 20 May 2015 01:04:11 +0000 (18:04 -0700)]
initd-reload.patch

init.d: Add reload option

Add an option to apply only modifications to running configuration from the
specified configuration file. The default modification file is
/etc/quagga/Quagga.conf. A new script, quagga-reload.py, has been added to
the tools directory.

9 years agovtysh-add-mark-cmd.patch
Donald Sharp [Wed, 20 May 2015 01:04:11 +0000 (18:04 -0700)]
vtysh-add-mark-cmd.patch

VTYSH: Add support for marking a file with appropriate end of context

To support applying only differences to the existing config, this patch
enables supplying the appropriate end markers to a provided file (or
stdin). By end markers, I mean, adding "end" and "exit-address-family"
at the appropriate places in the configuration to ease finding the
differences with the running configuration.

9 years agoZebra: Fix multiple RNH deletes
Donald Sharp [Wed, 20 May 2015 01:04:10 +0000 (18:04 -0700)]
Zebra: Fix multiple RNH deletes

The code is structured in a way that ends up invoking zebra_delete_rnh()
multiple times which can lead to crashes and asserts. This patch fixes
the issue by setting a flag when an RNH structure is being deleted and
ignores any further attempts to delete the structure.

9 years agoZebra: Add onlink attribute even for recursive routes
Donald Sharp [Wed, 20 May 2015 01:04:10 +0000 (18:04 -0700)]
Zebra: Add onlink attribute even for recursive routes

When a route is resolved recursively, and the recursively resolved nexthop
has the onlink attribute, the route is not programmed with the nexthop with
the onlink attribute. This patch addresses that.

9 years agoBGP: Fix update-groups commands to match neighbors
Donald Sharp [Wed, 20 May 2015 01:04:09 +0000 (18:04 -0700)]
BGP: Fix update-groups commands to match neighbors

show update-groups summary was mislabeled. What it displays is not a summary
at all, but the detailed info about all update-groups. Furthermore, there
was no way to get detailed info about a specific subgroup.

This patch renames "show * update-groups summary" to "show * update-groups"
and adds an option to see the info specific to a subgroup only. It also
validates the subgroup-id.

show * update-groups summary will be added separately.

9 years agoBGP: More connected NHT fixups
Donald Sharp [Wed, 20 May 2015 01:04:09 +0000 (18:04 -0700)]
BGP: More connected NHT fixups

When a NH came back, we didn't send a notification to kickstart the BGP FSM.
This fixes that.

9 years agoBGP: For sessions based on interface/LL addr, use ifindex to identify peer
Donald Sharp [Wed, 20 May 2015 01:04:08 +0000 (18:04 -0700)]
BGP: For sessions based on interface/LL addr, use ifindex to identify peer

sockunion_same() and bgp_peer_conf_if_to_su_update() need to use the scope_id
field of the ipv6 address to uniquify/identify the address.

This allows sessions based on link local address when that address is not
unique across peers.

9 years agoCleanup some code related to NHT.
Donald Sharp [Wed, 20 May 2015 01:04:08 +0000 (18:04 -0700)]
Cleanup some code related to NHT.

When BGP connection setup was moved to rely on nexthop tracking, a few silly
bugs were introduced.
 - bgp_connect_check() was called unnecessarily which resulted in false
   positives which resulted in log messages indicating an error and the FSM
   was unnecessarily reset.
 - When routes to peer disappeared, and the peer was not directly connected,
   the session was not immediately torn down, but only on hold timer expiry.
 - When NHT indicated that route to session IP addr was available, the previous
   state was not reset and as a result, connect retry timer had to expire
   before a reconnection was attempted.
 - connected check MUST be enabled only for EBGP non-multihop sessions and
   only if disbale-connected-check option is not enabled.

This patch fixes all these errors.

9 years agoCommand to adjust min-arrival value in Milliseconds.
Donald Sharp [Wed, 20 May 2015 01:04:07 +0000 (18:04 -0700)]
Command to adjust min-arrival value in Milliseconds.

timers lsa min-arrival <1-60000>

Signed-off-by: Vipin Kumar <vipin@cumulusnetworks.com>
Reviewed-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
9 years agoChanging router-id inline isnt handled correctly in the current implementation.
Donald Sharp [Wed, 20 May 2015 01:04:07 +0000 (18:04 -0700)]
Changing router-id inline isnt handled correctly in the current implementation.
At the minimum, the OSPF_LSA_SELF logic isnt foolproof, and it may hit assert
in ospf_refresh_unregister_lsa on a router-id change.

Once OSPF has created and flooded LSAs, its not a good idea to change
router-id inline. Tying it to restart has at least two benefits:

- Implementation can remain sane by not having to re-adjust neighbors and LSAs,
  based on the new router-id.
- Works as a deterrent for the user to not meddle with the router-id unless
  really needed.

9 years agoShow enabled debugs in the running configuration
Donald Sharp [Wed, 20 May 2015 01:04:06 +0000 (18:04 -0700)]
Show enabled debugs in the running configuration

9 years ago'show ip bgp x.x.x.x' should display swpX when link-local peering
Donald Sharp [Wed, 20 May 2015 01:04:06 +0000 (18:04 -0700)]
'show ip bgp x.x.x.x' should display swpX when link-local peering

9 years agoIf the user changes a bestpath knob, recalculate all bestpaths
Donald Sharp [Wed, 20 May 2015 01:04:05 +0000 (18:04 -0700)]
If the user changes a bestpath knob, recalculate all bestpaths

9 years agoDisplay 'Must be Connected' for certain nexthops
Donald Sharp [Wed, 20 May 2015 01:04:05 +0000 (18:04 -0700)]
Display 'Must be Connected' for certain nexthops

9 years ago'neighbor x.x.x.x default-originate' is not honored while servicing ROUTE_REFRESH
Donald Sharp [Wed, 20 May 2015 01:04:05 +0000 (18:04 -0700)]
'neighbor x.x.x.x default-originate' is not honored while servicing ROUTE_REFRESH

9 years agoHave monit monitor the watchquagga daemon in case it dies.
Donald Sharp [Wed, 20 May 2015 01:04:04 +0000 (18:04 -0700)]
Have monit monitor the watchquagga daemon in case it dies.

9 years agoRemove incorrect call to delete NHT for a route added via "network" command.
Donald Sharp [Wed, 20 May 2015 01:04:04 +0000 (18:04 -0700)]
Remove incorrect call to delete NHT for a route added via "network" command.

When a route is announced in BGP via "network" command, we also register its
next hop with NHT code to allow of updates when the nexthop changes. When this
route is deleted via "no network" command, we incorrectly make a second call to
unregister the NHT tracking associated with this route. This causes a crash.
Fix that.

9 years agoFix reference counts for the nexthop cache entries.
Donald Sharp [Wed, 20 May 2015 01:04:03 +0000 (18:04 -0700)]
Fix reference counts for the nexthop cache entries.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
9 years agoDon't register link local addresses for Next Hop Tracking.
Donald Sharp [Wed, 20 May 2015 01:04:03 +0000 (18:04 -0700)]
Don't register link local addresses for Next Hop Tracking.

We don't use the ifindex in registering NHT, and that may need to be
eventually fixed. But for now, ignore requests to register link local
addresses.

9 years agoAdd 'debug bgp bestpath'
Donald Sharp [Wed, 20 May 2015 01:04:02 +0000 (18:04 -0700)]
Add 'debug bgp bestpath'

9 years agoThe path ordering has an impact on whether paths are flagged as multipath, this shoul...
Donald Sharp [Wed, 20 May 2015 01:04:01 +0000 (18:04 -0700)]
The path ordering has an impact on whether paths are flagged as multipath, this should not be the case.

9 years agoAddpath does not work for soft-reconfiguration
Donald Sharp [Wed, 20 May 2015 01:04:01 +0000 (18:04 -0700)]
Addpath does not work for soft-reconfiguration

9 years agoUse #define for mp_nexthop_len values
Donald Sharp [Wed, 20 May 2015 01:04:00 +0000 (18:04 -0700)]
Use #define for mp_nexthop_len values

9 years agoEnsure that during event-driven route-map processing, the peer status is
Donald Sharp [Wed, 20 May 2015 01:04:00 +0000 (18:04 -0700)]
Ensure that during event-driven route-map processing, the peer status is
considered, if required. Attempting to do certain processing while the
peer is not Established can lead to errors.

9 years agoIf on-shutdown is configured to a large value and 'service quagga restart'
Donald Sharp [Wed, 20 May 2015 01:03:59 +0000 (18:03 -0700)]
If on-shutdown is configured to a large value and 'service quagga restart'
is executed, then the init.d/quagga script doesnt wait more than 120 seconds
for the daemon do stop, worse, it goes ahead and starts the new daemon
regardless. This can result into two ospfd processes running on the same config.
Which leads to many issues including but not limited to high cpu usage.
Thats because the two processes are mixing packets on adjancencies thus
causing churn on the box and network.

As long as OSPF is able to reliably send the max-metric router-lsa before
exiting thats mostly good enough for this purpose anyways.

As a solution to this situation, bringing the maximum configurable value of
the on-shutdown timer below the maximum retry to stop a daemon in init.d/quagga

Notes: This may not be an upstreamable patch, still we needed to find
a solution for init.d/quagga and this command this co-exist.

9 years agoDuring update-delay, route withdraws to zebra should not be kept on hold,
Donald Sharp [Wed, 20 May 2015 01:03:59 +0000 (18:03 -0700)]
During update-delay, route withdraws to zebra should not be kept on hold,
because BGP may have pending withdraws from the peers going phase.

9 years agoPaths with global and link-local nexthops should be considered for multipath
Donald Sharp [Wed, 20 May 2015 01:03:59 +0000 (18:03 -0700)]
Paths with global and link-local nexthops should be considered for multipath

9 years agoAdd a no-as-set option to multipath-relax
Donald Sharp [Wed, 20 May 2015 01:03:58 +0000 (18:03 -0700)]
Add a no-as-set option to multipath-relax

9 years agoInstall aggregate routes we create in the RIB
Donald Sharp [Wed, 20 May 2015 01:03:58 +0000 (18:03 -0700)]
Install aggregate routes we create in the RIB

9 years agoIPv6 RA debugs are too chatty
Donald Sharp [Wed, 20 May 2015 01:03:57 +0000 (18:03 -0700)]
IPv6 RA debugs are too chatty

9 years agoThe column headers for displaying OSPF neighbors are not aligned
Donald Sharp [Wed, 20 May 2015 01:03:57 +0000 (18:03 -0700)]
The column headers for displaying OSPF neighbors are not aligned

9 years agoRelax draft-ietf-idr-error-handling-13 valid IP check in favor of draft-ietf-idr...
Donald Sharp [Wed, 20 May 2015 01:03:56 +0000 (18:03 -0700)]
Relax draft-ietf-idr-error-handling-13 valid IP check in favor of draft-ietf-idr-error-handling-14

9 years agoAlways add a keepalive to the OutQ when the KA timer expires
Donald Sharp [Wed, 20 May 2015 01:03:56 +0000 (18:03 -0700)]
Always add a keepalive to the OutQ when the KA timer expires

9 years agoCheck for overflow when RXing NLRI with addpath
Donald Sharp [Wed, 20 May 2015 01:03:56 +0000 (18:03 -0700)]
Check for overflow when RXing NLRI with addpath

9 years agoThe 'show ip bgp json' output is incorrect if the aspath is empty
Donald Sharp [Wed, 20 May 2015 01:03:55 +0000 (18:03 -0700)]
The 'show ip bgp json' output is incorrect if the aspath is empty

9 years agobgpd-ensure-fast-eor-send.patch
Donald Sharp [Wed, 20 May 2015 01:03:55 +0000 (18:03 -0700)]
bgpd-ensure-fast-eor-send.patch

BGP: Ensure EOR is always sent immediately after all prefixes have been adv.

Its possible that EOR send is delayed until the next KeepAlive timer fires.
This can happen when the send update iteration precisely matches the last
update packet sent. After this since there are no more updates to be sent,
no write thread is setup, but there's still the EOR to be sent. Therefore,
EOR is not sent right away causing some neighbors to not exit RO mode and
delaying convergence overall. This patch ensures that EOR is sent at the end
of all updates on startup.

Signed-off-by: Vivek Venkataraman <vivek@cumulusnetworks.com>
Signed-off-by: Dinesh G Dutt <ddutt@cumulusnetworks.com>
9 years agoAdd a running flag in ospf instance.
Donald Sharp [Wed, 20 May 2015 01:03:54 +0000 (18:03 -0700)]
Add a running flag in ospf instance.
set/reset it on 'router ospf [<instance>]'/'no router ospf [<instance>]'

9 years agoEnsure connected nexthop entry for the peer is freed when the peer is freed.
Donald Sharp [Wed, 20 May 2015 01:03:54 +0000 (18:03 -0700)]
Ensure connected nexthop entry for the peer is freed when the peer is freed.

9 years agoEnsure that if 'update-source <interface>' is specified, that interface is
Donald Sharp [Wed, 20 May 2015 01:03:54 +0000 (18:03 -0700)]
Ensure that if 'update-source <interface>' is specified, that interface is
chosen as the source for the local nexthops. Otherwise, do a complete
match on the local IP address of the connection to determine the source
interface for the local nexthops; this will handle scenarios where there
is an overlap of subnets between interfaces (e.g., loopback and another
interface).

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
9 years agoAdding the initialization check in ospfv3_clean()
Donald Sharp [Wed, 20 May 2015 01:03:53 +0000 (18:03 -0700)]
Adding the initialization check in ospfv3_clean()

This is to avoid a crash triggered by process termination
when ospf6d daemon is running and 'router ospf6' config has not been done yet.

Signed-off-by: Vipin Kumar <vipin@cumulusnetworks.com>
Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
9 years agoFixing a couple of issues with ospf6_route_remove () routine.
Donald Sharp [Wed, 20 May 2015 01:03:53 +0000 (18:03 -0700)]
Fixing a couple of issues with ospf6_route_remove () routine.

When a route_node has multiple ospf6_routes under it (common subnet case),
then the current implementation has an issue in adjusting the route_node->info
on a ospf6_route_remove() call.

The main reason is that it ends up using exact match to determine if the next
ospf6_route belongs to the same route_node or not. Fixing that part to use
rnode (the existing back-pointer to the route_node) from the ospf6_route to
determine that.

Also fixing some of the walks to turn them safe so that the route deletion is
fine.

Signed-off-by: Vipin Kumar <vipin@cumulusnetworks.com>
Reviewed-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
9 years agoA peer's advertisement-interval is reset if you change the peer's remote-as
Donald Sharp [Wed, 20 May 2015 01:03:52 +0000 (18:03 -0700)]
A peer's advertisement-interval is reset if you change the peer's remote-as

9 years agoIf we RX an OPEN with a bad ASN the NOTIFICATION we send should include the ASN
Donald Sharp [Wed, 20 May 2015 01:03:52 +0000 (18:03 -0700)]
If we RX an OPEN with a bad ASN the NOTIFICATION we send should include the ASN

9 years agoProcess and/or announce existing routes when a prefix-list, distribute-
Donald Sharp [Wed, 20 May 2015 01:03:52 +0000 (18:03 -0700)]
Process and/or announce existing routes when a prefix-list, distribute-
list or filter-list is applied (added or removed) against a neighbor or
peer group. This makes the behavior inline with other configuration changes
such as add or remove of route-map against a neighbor or change of other
settings such as next-hop-self or as-override.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Vipin Kumar <vipin@cumulusnetworks.com>
9 years agoLA (local-address) bit related inter-op fix.
Donald Sharp [Wed, 20 May 2015 01:03:51 +0000 (18:03 -0700)]
LA (local-address) bit related inter-op fix.

As per the RFC, when the NU bit is set, prefix should be ignored.
However, the code is currently ignoring prefix with LA bit too.

Fixing that part.

In future, we should also set LA bit for the loopback addresses. Not doing this
part right away, as quagga wont be backward compatible with its own previous
releases. Maybe after a release or so, we should start setting LA bit too.

Signed-off-by: Vipin Kumar <vipin@cumulusnetworks.com>
Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>