bgpd: update rtt on soft clearrtt is calculated dynamically by the kernel. Refresh it on
soft clear.
Fixes: ef757700d0 "bgpd: allow using rtt in route-map's set metric"
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
bgpd: check rtt later after the real peer is knownOPEN message handler moves the connection from the temporary
"struct peer" (used to accept it) to the real "struct peer" based
on the configuration. RTT needs to be updated only to the real
struct peer, and this patch moves the RTT query to point where
realpeer is known.
Fixes: ef757700d0 "bgpd: allow using rtt in route-map's set metric"
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
zebra: fix rtadv detectionThe GLIBC macro tests were just plain wrong. Glibc 2.1 is ancient
and the support should be detected via configure.ac test, not
macro test. Build with HAVE_RTADV but !RTADV is broke after vrf,
so for now, just define RTADV always if HAVE_RTADV is there.
Signed-off-by: Timo Teräs <timo.teras@iki.fi>
pimd: Limit pim hello log messagespimd was outputting allot of data surrounding pim hello packets.
In addition the debugging was inconsistent and not all turned
on via 'debug pim packet hello'.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd: Fix bgp_btoa to compilebgp_btoa was abandoned at some point in time in the past.
This commit gets it to compile and to be added to /usr/bin.
At this point in time no work has done for 'correctness' of execution
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
lib: Add zlog_hexdump() for debuggingSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd: crash from not NULLing freed pointersSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
There was a crash from not NULLing out peer->hostname but I cleaned
up a bunch of other suspect ones as well.
ospfd: Lower the default OSPF spf timers to '0 50 5000'Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd: Lower BGP's default keepalive/holdtime to 3s/9sSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd: Remove BGP_ERROR_START_TIMER, it was no longer usedSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd: Enable "bgp log-neighbor-changes" by defaultSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd: Do not allow a timers connect of 0, this can hammer the CPUSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd: Remove BGP's asorig timer, it is no longer usedSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd: Lower the default 'timers connect' in BGP to 10 secondsSigned-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
Reviewed-by: Donald Sharp <sharpd@cumulusnetworks.com>
doc: Add 'OSPF Fundamentals' section to OSPF docs* ospf_fundamentals.texi: New section explaining the fundamentals of OSPF
for system admins, to help them debug their networks.
* {Makefile.am,ospfd.texi}: include and build previous
Conflicts:
doc/Makefile.am
isisd: Fix LSPs not being regenerated after adjacency changeIn isisd LSP's are not regenerated after a change in adjacency if
lsp-gen-interval has expired.
I have tested this on Debian 6.0 with zebra and level1 isisd with point
to point links. This problem is also listed in Test ISIS-18.3 on the
opensourcerouting.org wiki:
http://confluence.isc.org/display/osr/ANVL+ISIS+Compliance+Test+Plan
http://confluence.isc.org/display/osr/ANVL+ISIS+Results
bgpd, lib: memory cleanups for valgrind, plus debug changesDescription:
We use valgrind memcheck quite a bit to spot leaks in
our work with bgpd. In order to eliminate false positives,
we added code in the exit path to release the remaining
allocated memory.
Bgpd startup log message now includes pid.
Some little tweaks by Paul Jakma <paul.jakma@hpe.com>:
* bgp_mplsvpn.c: (str2prefix_rd) do the cleanup in common code at the end
...
ospfd: PointToPoint neighbors are identified by router IDAccording to RFC 2328, section 10.5 PointToPoint neighbors
should be identified by router ID instead of source IP address.
Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@transmode.se>
Revert "Fix to take care of ordering between interface and router ospf command."This reverts commit 4bab6806914dbb4b43f376ebf966a034a0ea72cd, as Joakim's
version of 'ip ospf area' and the 2 follow-up patches should avoid the issue
Vipin reported.
Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
ospfd: Extend 'ip ospf area' to take address argument + rationalise ospf enable* ospfd.c: (general) Clean up the whole running of OSPF on interfaces.
(add_ospf_interface) taking (struct interface *) arg is pointless here.
(ospf_is_ready) new helper.
(ospf_network_run_subnet) Put all the code for choosing whether to enable
OSPF on a subnet, and if so which area configuration to use, here. If a
subnet should not be enabled, ensure an existing oi is freed.
(ospf_...
ospfd: Impl. per interface 'ip ospf area' commandUse with interface command:
interface ppp0
ip ospf area 0.0.0.0
This will enable OSPF on ppp0 with area 0.0.0.0
Remove with "no ip ospf area"
* ospf_vty.c: add "ip ospf area (A.B.C.D|<0-4294967295>)" interface command
* ospfd.c: (ospf_interface_{un,}set) new helper function to enable/disable
OSPF on a specific interface.
(ospf_if_update) 2 possible paths now to deal with interface upda...
ospfd: split up network interface enable a bit, for per-interface area cmd* ospfd.c: (ospf_network_run_interface) Move out core to ..
(add_ospf_interface) .. here
(ospf_network_{un,}set) move redistribute update out to..
(update_redistributed) .. here, so it can be re-used in upcoming commit.
Acked-by: Donald Sharp <sharpd@cumulusnetworks.com>
bgpd: fix using of two pointers for struct thread_master *bgp is using both bm->master and master pointers interchangebly
for thread manipulation. Since they are the same thing consolidate
to one pointer.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
lib: Fix duplicate variable name in smux.c and vty.cBoth smux.c and vty.c have the same:
static struct thread_master *master;
as global variables for the file. This can and will lead to confusion
name the variables something appropriate for the file it is in.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
isisd: Drop packet received on multiple interfaces due to the time gap in binding socket to an interfaceDue to the time window between opening socket and binding it to an interface, the same hello
packet is delivered on multiple interfaces, unique socket per circuit is not yet established.
When such hellos get processed, they form incorrect adjacencies. So, drop the packet that is
received on multiple interfaces because the socket for the circuit is yet to bind to an interface.
V2: Fix warning o...
pimd: Cleanup interface startupThis patch cleans up some interface startup, removes duplicate
debug messages and protects against some always being displayed.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd: Notice when we receive a packet type we can't handle yetThere are PIM packet types that have not been implemented yet.
Notice when we get one of those and safely do nothing.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd: Add knowledge of different packet typesThere are several additional packet types that pimd is unaware of
Add code to allow pim to understand them in the future.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd: Cleanup zebra debugs to be protected by debug commandspimd is very chatty without any pim debugs turned on.
This commit fixes a bunch of the debugs to be protected
by appropriate pim debug statement.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
pimd: Do not display some default values as part of a show runThere is no need to display igmp default values for the query-interval
and the query-max-response-time-dsec
Before change:
!
interface swp4
description swp4 -> host-212's swp1
ip igmp
ip igmp query-interval 125
ip igmp query-max-response-time-dsec 100
ip pim ssm
link-detect
!
After change:
!
interface br1
ip igmp
ip pim ssm
link-detect
!
Signed-off-by: Donald Sharp <sharpd@cumulusn...
quagga: Additional centos 6 -enable-werror fixesThis commit fixes these warnings:
1) bgpd/bgp_nexthop.c - dereferencing pointer 'X' does break strict-aliasing rules
2) pimd/pim_igmp_join.c - dereferencing pointer 'X' does break strict-aliasing rules
3) ripd/ripd.c - 'ifaddr.prefixlen' may be used uninitialized in this function
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
vtysh: Fix Quagga.conf file read in.There exists a sequence of cli commands that are successfully read in by bgpd.conf, but
not by a consolidated Quagga.conf.
This issue stems from the fact that the consolidated config file attempts to match the
current node + 1 node up the tree, while the individual config file searches for matches
all the way up the tree.
Quagga.conf read-in relies on vtysh_cmd.c command parsing which puts al...
lib: zclient.c remove extern struct thread_master *zclient.c depended upon link time inclusion of a
extern struct thread_master *master. This is a violation of the
namespace of the calling daemon. If a library needs the pointer
pass it in and save it for future use.
This code change also makes the zclient code consistent with
the other lib functions that need to schedule work on your behalf
Signed-off-by: Donald Sharp <sharpd@cumulusnetwork...
vtysh: Allow display of individual daemons configsWhen executing a 'show run' or 'write terminal' you see the
entire integrated config. You have no way of knowing what an
individual daemon is going to write until after you do a write
of config to disk if you are not using an integrated configuration.
This change allows the end-user to do such a thing.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
zebra/if_ioctl_solaris: Make foo staticmake interface_ioctl_ioctl() and if_get_index() static
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
zebra/ioctl_solaris: Fix use of prefix2str in if_prefix_add/delete_ipv6First argument of prefix2str pointed to ifc->address->prefix, but
no prefix exists in address. Should have been ifc->address.
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>