Commit Graph

12539 Commits

Author SHA1 Message Date
Donald Sharp
e2c4bc88d2 pimd: Fix crash on shutdown in oil
When shutting down, do not free oil information after
interface information since we use the data there to
do so.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 20:27:53 -04:00
Donald Sharp
0c68972d53 pimd: Don't leak wheel memory
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 20:25:41 -04:00
Donald Sharp
27cfe2224c pimd: Properly cleanup ssm
Properly cleanup the ssm data structure on termination.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 20:06:15 -04:00
Donald Sharp
ff823fc915 pimd: Cleanup rp_info->plist
PIM is leaking the plist data structure in some shutdown
cases.  Additionally trust XFREE

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 20:02:13 -04:00
Donald Sharp
36ef2c109b pim: Clean up some data on shutdown in msdp
We were leaking some msdp hash backets and a msdp stream
data pointer on shutdown.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 19:58:24 -04:00
Donald Sharp
c7e98b04ec pimd: No need to call zprivs_terminate 2 times
frr_fini and pim_free both call zprivs_terminate.  There is
no need for pim_free to call this function.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 19:52:15 -04:00
Donald Sharp
565b5561ac lib: Increase stream allocation speed.
Modify stream_new in this way:

1) ALLOC allocations do not fail, they cause a crash so remove
if tests for it.

2) Modify usage of XCALLOC to XMALLOC and then hand set all the
relevant data in the stream pointer.

With this modification stream allocation of 10000000 streams at
10k bytes each reduced from on average 1.43 seconds to 0.65 seconds.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 14:57:44 -04:00
Donald Sharp
61a7a236df vtysh: Respect order dependancy of some pim commands
If `ip igmp query-max-respone-time ` is specified allow it
to show up before `ip igmp query-interval ` since there
are order dependancies that may show up.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com.
2018-08-02 10:38:48 -04:00
Donald Sharp
c55f7a8003 pimd: Modify order of command output for vty output
If `ip igmp query-max-response-time` is set move it to
display first as that this command has order dependencies
on `ip igmp query-interval`.

Ticket: CM-21598
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 10:38:48 -04:00
Donald Sharp
410a92bc2b lib: Fix vrf check output to only have 1 line
When we issue this command, we are getting:

robot# show ip route vrf green json
{}
% VRF green not found
robot# show ip route vrf green
% VRF green not found
% VRF green not found
robot#

Fix the command so it only displays one line of output
for json or non-json output.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 10:09:09 -04:00
Donald Sharp
302628bcad pimd: Only need 1 return from a function
When there is a return at the end of a function, there
is no need for another one immediately after it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 10:09:09 -04:00
Donald Sharp
c936e76f3c pimd: pim_socket_join_source is only called from one place
The pim_socket_join_source function only ever calls
pim_igmp_join_source and pim_socket_join_source is only
called from 1 place.  Skip the level of indirection.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-02 10:09:09 -04:00
Russ White
25f5f03987
Merge pull request #2760 from donaldsharp/bgp_patch_from_dev
bgpd: Fix show ip bgp summary json command for dynamicPeers
2018-08-02 08:15:29 -04:00
Russ White
a4bacbcfa5
Merge pull request #2761 from donaldsharp/rip_memory
ripd: Use memory management for interface commands in RIP
2018-08-02 08:14:39 -04:00
Russ White
9208f5e2b5
Merge pull request #2771 from qlyoung/fix-zserv-shutdown-crash-3
zebra: don't close client socket from I/O pthread mc crasherson mc crashy crash bandicoot
2018-08-02 08:07:43 -04:00
Russ White
ee55f64dc5
Merge pull request #2767 from donaldsharp/bgp_timers
bgpd: Intentionally stop some timers on instance removal
2018-08-01 20:14:35 -04:00
Donald Sharp
9b864cd3cd lib: Ensure read/write fd's are in range
Ensure that we can properly handle a passed in read/write
fd for using in poll.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-01 19:41:47 +00:00
Quentin Young
c022637847 zebra: don't close client socket from I/O pthread
The client socket value can only be modified by the main thread.
Modifying the client socket from within the client I/O pthread
introduces race conditions.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-08-01 19:41:47 +00:00
Quentin Young
a580357a87 zebra: ensure cleanup of rib on client close
Socket should be closed in zserv_client_free() and nowhere else.

Credit to Mark Stapp for catching this one.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-08-01 19:41:47 +00:00
Donald Sharp
6960cd09c6
Merge pull request #2769 from ajones-rvbd/ajones-frr-reload
tools/frr: make frr reload error message clearer on missing frr-reload.py
2018-08-01 14:09:24 -04:00
Arthur Jones
8b5f787e8e tools/frr: make frr reload error message clearer on missing frr-reload.py
Only frr-reload.py pulls in a python depenedency for frr, we can
reduce the size of the base frr package by a lot if we separate
out frr-pythontools.  When we do this, we get a somewhat cryptic
error message when frr-reload.py is missing on frr reload.

Here, we pull the error message from frr-reload script, which is
much clearer.

Testing done:

frr reload both with and without the frr-reload.py script, see
the frr-reload message when missing and it runs frr-reload.py when
not missing.

Signed-off-by: Arthur Jones <arthur.jones@riverbed.com>
2018-08-01 09:23:55 -07:00
Donald Sharp
037f162fe9
Merge pull request #2766 from lyq140/branch1
ripd: null check key
2018-08-01 10:42:52 -04:00
Donald Sharp
a6d205a4f5
Merge pull request #2765 from opensourcerouting/fix-getsockoptdata
lib: fix getsockopt_cmsg_data retrieval
2018-08-01 10:17:30 -04:00
Donald Sharp
c969b2edae bgpd: Intentionally stop some timers on instance removal
When a bgp instance is stopped, with a `no router bgp..`
make sure any timers associated with the instance are stopped
as well.

This issue was discovered when a customer issued a `no router bgp`
while a maxmed timer was operative.  The max-med timer used the
`struct bgp *` as the passed in value for the thread.  The
thread eventually popped after the cleanup and attempted to use
data off in lala land and crashed

Ticket: CM-21895
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-01 09:51:46 -04:00
lyq140
c4efb22479 ripd: null check key
Fix ripd crash of null pointer.
when authenticate a rip packet,
the key pointer or the key string pointer may be null,
the code have to return then.

Signed-off-by: lyq140 <34637052+lyq140@users.noreply.github.com>
2018-08-01 20:48:36 +08:00
Rafael Zalamena
dc094865db lib: fix getsockopt_cmsg_data retrieval
The `type` parameter was not being compared with `cmsg_type`, so the
result of this function was always a pointer to the first header
matching the level.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2018-08-01 09:42:16 -03:00
Donald Sharp
aa0b1d3b60
Merge pull request #2763 from lyq140/master
ripd: null check the key string
2018-08-01 07:56:50 -04:00
lyq140
e65e227f28 ripd: null check the key string
This fix a crash of  null pointer.
when we don't add a key string or delete it,
the key is not null but key string is null,
so the code have to return.

Signed-off-by: lyq140 <34637052+lyq140@users.noreply.github.com>
2018-08-01 12:03:24 +08:00
Russ White
e841105b61
Merge pull request #2759 from donaldsharp/pim_duplicate
Pim duplicate
2018-07-31 21:11:28 -04:00
Russ White
a111e0ac23
Merge pull request #2755 from ton31337/feature/default-originate_apply_route-maps
bgpd: Make sure default-originate works without route-map as well
2018-07-31 21:09:06 -04:00
Russ White
22bc293f90
Merge pull request #2752 from qlyoung/doc-fix-rpki-index-error
Fix various rpki.rst errors (again)
2018-07-31 21:06:33 -04:00
Donald Sharp
03c20031fd ripd: Use memory management for interface commands in RIP
During code inspection it was noticed that rip is not fully
using FRR memory code as it should.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-31 20:12:55 -04:00
Dongling Duan
b4e9dcba1e bgpd: Fix show ip bgp summary json command for dynamicPeers
The dn_count for dynamic Peers was not being updated when
using json output.

Signed-off-by: Dongling Duan <dlduan@amazon.com>
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-31 19:02:55 -04:00
Donald Sharp
cc67ccf9f3 pimd: Abstract a RPF change for upstream handling
Abstract the RPF change for upstream handling code so
that we do not have two copies of the code.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-31 18:27:54 -04:00
Donald Sharp
7438923168 pimd: Abstract sending of data to peers
After we have decided what has changed as part of a update
we need to send the j/p messages to our peers.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-31 17:40:37 -04:00
Jafar Al-Gharaibeh
0329ff96a9
Merge pull request #2753 from qlyoung/fix-zebra-shutdown-crash-2
Fix zebra shutdown crash: Round 3
2018-07-31 10:31:55 -05:00
Donatas Abraitis
c2e1042203 bgpd: Make sure default-originate works without route-map as well 2018-07-31 10:15:51 +03:00
Quentin Young
f3e33b690b zebra: dont delete pthreads from under themselves
* Rename some things to be less confusing
* Convert client close function to take a client struct rather than a
  task
* Extern client close function and use it when handling SIGTERM

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-07-30 23:06:27 +00:00
Quentin Young
a4a2a47555 doc: remove unknown option role from rpki.rst
Options must be documented before they can be cross-referenced, and the
scope for configure options is not present in rpki.rst. Remove the
option role tag from the `-M` option to remove the build warning.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-07-30 18:58:38 +00:00
Quentin Young
379064db76 doc: unindent index block content in rpki.rst
Index directives cannot contain content.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-07-30 18:55:48 +00:00
Donald Sharp
51c4ed0a0e staticd, zebra: Fix up code warnings
CI found a couple of warnings that needed to be cleaned up.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 13:06:49 -04:00
Donald Sharp
fe64533ad9 lib: Set proper write file when using backup config
When we read in a backup file, we should save the original
host.config so that we can put it back to the correct original
location after we read in the backup config.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
0b70cb101c staticd: Fix crash with NULL si
Move the call to the static_install_route to inside
of the loop, since we have changed the behavior of
how we send down routes to zebra a bit.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
8bc8de2c15 staticd: Allow daemon to have backup static routes
Modify staticd to allow it to have backup static routes
with higher admin distance.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
40ecd8e46d lib, zebra: Allow protocols to use Distance as part of RR semantics
Allow protocols to specify to zebra that they would like zebra
to use the distance passed down as part of determine sameness for
Route Replace semantics.

This will be used by the static daemon to allow it to have
backup static routes with greater distances.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
8d5cbee91d staticd: Code review comments fixes
1) Conform staticd to proper gnu gpl file format.
2) Fix a spelling mistake found.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:23 -04:00
Donald Sharp
614aa5c166 doc: Add some documentation for staticd
Remove the ip route specific sections from zebra documenation and
create a specific one for the new staticd.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:43:21 -04:00
Donald Sharp
88a9001659 staticd: Fix recursive routes for certain types of nexthops
Existing NEXTHOP_TYPE_IPV4_IFINDEX and NEXTHOP_TYPE_IPV6_IFINDEX
routes allow recursion, but were broken when the route happened
to recursively resolve and the resolution nexthop changed.

This commit fixes this issue.  Please note that this issue was
in pre-move of static route handling to it's own daemon as well.
This was some easy low-hanging fruit, so to speak.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:37:26 -04:00
Donald Sharp
9f2982ab69 zebra: Remove zebra_static.c and .h
These are no longer needed so remove.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:37:26 -04:00
Donald Sharp
ad3489a0d2 staticd: Enable backup config
When the user is not using the integrated config and
has upgraded to a version of FRR with staticd, that
probably means that static routes are stored in zebra.conf.
Take advantage of the backup backup config option and read
those in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-07-29 12:37:26 -04:00