Commit Graph

12923 Commits

Author SHA1 Message Date
David Lamparter
fc81954dd1
Merge pull request #2978 from ton31337/fix/default_originate_after_second_enter
osfpd: Install default route after second try instantly
2018-09-21 22:57:28 +02:00
Jafar Al-Gharaibeh
6ea2d6e15f
Merge pull request #3067 from donaldsharp/pim_fixes
Pim fixes
2018-09-21 13:50:40 -05:00
Donald Sharp
9541827773
Merge pull request #3016 from pacovn/label_manager_fixes
Label manager fixes
2018-09-21 14:03:05 -04:00
Donald Sharp
11e2767582
Merge pull request #3057 from pacovn/Coverity_1472965_1472966_Dereference_before_null_check
bgpd: null check (Coverity 1472965 1472966)
2018-09-21 13:37:33 -04:00
Donald Sharp
b5469d021c pimd: blackhole traffic when we are not DR for Stream received
Suppose we have a bridge with a host and two routers attached
to it.

r1     r2
|      |
--------
    |
  host

host is sending traffic.
r1 and r2 are pim neighbors and r2 is the DR.

Both r1 and r2 will receive data from the stream up the pim
kernel socket.  r1 will notice that it is not the DR and
stop processing in pim.  This code adds a bit more code to blackhole
the route when r1 detects it is not the DR in this scenario.

This is being done because the kernel is both keeping state and
sending data to the pim process to continue processing this.
Additionally if we happen to be running this on a asic, then
blackholing the route in the asic can save a significant amount
of cpu time handling this situation.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-21 11:41:46 -04:00
Donald Sharp
90a084e4a1 pimd: Add a debug to tell why we are not creating upsteam state
When we decide we are not the right pim process to add upstream state
for the igmp state received, notice this in a debug to make life
easier to debug.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-21 10:28:57 -04:00
Donald Sharp
a0bf54c7de pimd: Add some extra information to a show command
The tracking of who have drpriority on an interface
in pim was not displayed anywhere.  Add to the show
command for future reference.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-21 10:17:48 -04:00
F. Aragon
6ea591c700
bgpd: null check (Coverity 1472965 1472966)
There were checks for null pointer after being dereferenced. Checks have
been removed (we've discussed the no need of adding assert()'s because
of similar code not requiring them).

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-20 22:50:00 +02:00
Quentin Young
7c12afcf80
Merge pull request #3056 from pacovn/Coverity_1473285_Explicit_null_dereferenced
isisd: null check (Coverity 1473285)
2018-09-20 15:38:33 -04:00
Donald Sharp
a10f94506a
Merge pull request #3058 from pacovn/Coverity_1399484_Dereference_null_return_value
tools: null check (Coverity 1399484)
2018-09-20 13:16:30 -04:00
Donald Sharp
5946f386d2
Merge pull request #3062 from pacovn/static_analysis__redundant_parentheses
lib: redundant parentheses (SA)
2018-09-20 13:13:55 -04:00
Donald Sharp
a05cee9a1a
Merge pull request #3060 from pacovn/Coverity_1399196_Unchecked_return_value
tools: return check (Coverity 1399196)
2018-09-20 13:12:06 -04:00
Donald Sharp
9d6b585ab5
Merge pull request #3061 from pacovn/static_analysis__Wgnu-redeclared-enum
zebra: redeclaration fix (SA)
2018-09-20 13:11:16 -04:00
F. Aragon
1768243e53
lib: redundant parentheses (SA)
Redundant parentheses surrounding declarator removed.

Can be detected via static analysis with e.g.

	./configure CFLAGS=-Wredundant-parens CC=clang

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-20 17:36:21 +02:00
F. Aragon
4b2ee73b53
zebra: redeclaration fix (SA)
Unnecesary redeclaration of already-defined enum 'dp_results' removed.

Can be detected via static analysis with e.g.

	./configure CFLAGS=-Wgnu-redeclared-enum CC=clang

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-20 17:25:40 +02:00
F. Aragon
b0bde9f33d
tools: return check (Coverity 1399196)
Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-20 16:42:31 +02:00
F. Aragon
3b23c6c379
tools: null check (Coverity 1399484)
Fixed using XCALLOC(MTYPE_TMP, ...) instead of calloc(...) because of the
error handling (XCALLOC checks + log + abort through memory_oom())

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-20 16:23:52 +02:00
F. Aragon
f2fcf867f5
isisd: null check (Coverity 1473285)
Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-20 15:39:00 +02:00
Donatas Abraitis
766b826f16 osfpd: Install default route after second try instantly
Signed-off-by: Donatas Abraitis donatas.abraitis@gmail.com
2018-09-20 14:30:42 +03:00
F. Aragon
20ae4acdba
bgpd: fix test (using bgp instance 0)
Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-18 17:39:23 +02:00
F. Aragon
61eefcadc7
zebra: filter zebra messages (label manager)
This change makes the zebra acting as label manager proxy not to relay non-LM
messages to clients that a zebra acting in non-proxy mode may send to it. Also,
the existing code does not schedule a rcv in case of relay_response_back
returns -1. This patch re-schedules reads on the socket even in case such a
function returns -1 by calling thread_add_read().

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-18 17:39:20 +02:00
paco
f533be73f6
bgpd, doc, ldpd, lib, tests, zebra: LM fixes
Corrections so that the BGP daemon can work with the label manager properly
through a label-manager proxy. Details:

- Correction so the BGP daemon behind a proxy label manager gets the range
  correctly (-I added to the BGP daemon, to set the daemon instance id)
- For the BGP case, added an asynchronous label manager connect command so
  the labels get recycled in case of a BGP daemon reconnection. With this,
  BGPd and LDPd would behave similarly.

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-18 17:39:16 +02:00
David Lamparter
dc790ba83d
Merge pull request #3017 from pacovn/devbuild_Wshadow_flag
build: add -Wshadow to the dev build
2018-09-18 16:31:23 +02:00
David Lamparter
b928bc5bcb
Merge pull request #3042 from donaldsharp/pim_startup
Pim startup for non-integrated config
2018-09-18 16:24:10 +02:00
David Lamparter
3733e10621
Merge pull request #3041 from qlyoung/doc-cli-dep-period-length
doc: document CLI deprecation period length
2018-09-18 12:49:09 +02:00
David Lamparter
973e6be0fe
Merge pull request #3038 from donaldsharp/pim_table_id
Pim table
2018-09-18 12:48:45 +02:00
David Lamparter
8c59e16b12
Merge pull request #3015 from donaldsharp/no_fast_failover_and_vrf
bgpd: Using no bgp fast-external-failover prevents vrf intf moves
2018-09-18 12:47:54 +02:00
David Lamparter
2564f080da Merge branch 'pr/2986'
Conflicts:
	bgpd/bgp_network.c (BGP_ERR_* -> EC_BGP_*)

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-18 12:46:42 +02:00
Quentin Young
e8275c22b4
Merge pull request #3040 from pacovn/static_analysis__drop_const_1
bgpd isisd ldpd lib: const drop fixes (SA)
2018-09-17 15:25:49 -04:00
Donald Sharp
85a13586ed pimd: use bool instead of int to pass true/false
In pim_if_new use bool instead of an int to pass
true/false values for what we should create the
pim interface type for.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-17 14:09:06 -04:00
Donald Sharp
59752d4ea5 pimd: Actually create vif's in non-integrated config
The startup of a non-integrated config was not properly
allowing for startup to create the vif when we have
not learned about the interface we are trying to configure
at this point in time.  Actually notice when we are
trying to create a pimreg device or not to properly
notice when to attempt to create the vif or not.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-17 13:58:59 -04:00
F. Aragon
36de6e0e1e
bgpd isisd ldpd lib: const drop fixes (SA)
Can be detected with e.g. ./configure CFLAGS=-Wcast-qual CC=clang

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-17 19:38:59 +02:00
Quentin Young
e12ea4bb86 doc: document CLI deprecation period length
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-09-17 16:48:11 +00:00
F. Aragon
2b5773b248
build: add -Wshadow to the dev build
Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-17 18:37:04 +02:00
Donald Sharp
5523c15692 zebra: Send correct default vrf tableid for MROUTE stats
So the linux kernel uses the RT_TABLE_MAIN for the table
id used for ip routing.  The multicast routing tables use
RT_TABLE_DEFAULT.  We changed the internal code of zebra_vrf
a few months back to use RT_TABLE_MAIN as the tableid to
use.  This caused the pim sg stats to stop working because
of the kernel bug where it uses a different table
for ip routing and ip multicast.

Put a bit of a special case in to do the right thing.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-17 09:22:31 -04:00
Donald Sharp
423648901a zebra: Add some additional vrf debug for retrieving mroute info
When debugging the mroute code path in zebra, add a bit of additional
data to allow us to know what is going on a bit more.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-17 09:22:31 -04:00
Lou Berger
b4657ea44c
Merge pull request #3031 from pacovn/static_analysis__Wcomma
bgpd isisd zebra: misuse of comma operator
2018-09-17 06:03:49 -04:00
David Lamparter
a63834dadb
Merge pull request #3036 from donaldsharp/kernel_is_a_mernel
Kernel is a mernel
2018-09-15 17:38:08 +02:00
David Lamparter
ee53d0b980
Merge pull request #3035 from donaldsharp/the_table_in_all_of_us
staticd: Allow table_id to be a distinguisher for installation
2018-09-15 17:37:00 +02:00
Donald Sharp
c25e2f1ad1 zebra: Newer kernels send data about mroute changes
Newer linux kernels apparently send data down the netlink
bus for the creation of mroutes.  Add a bit of code
to notice this and to handle it appropriately( ie do
nothing at this point in time ) as that the correct
place to do this is in the pim socket in pimd.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-14 17:54:11 -04:00
Donald Sharp
87b5d1b098 zebra: Print out netlink message type instead of number
When we are displaying data about a netlink message
in debugs or errors, print out the message type
as a string instead of a number.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-14 17:48:51 -04:00
Donald Sharp
95cdbe5d0a staticd: Allow table_id to be a distinguisher for installation
The table_id should be a discriminator in the installation of
static routes into zebra from staticd.  Add this to allow the end
user to do something like this:

ip route 4.5.6.7/32 192.168.209.44
ip route 4.5.6.7/32 192.168.209.44 table 3000
ip route 4.5.6.7/32 192.168.209.45 table 3000

robot# show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

K>* 0.0.0.0/0 [0/101] via 192.168.201.1, enp0s3, 00:01:40
S>* 4.3.2.1/32 [1/0] via 192.168.210.4, enp0s10, 00:01:35
S>* 4.3.2.2/32 [1/0] via 192.168.209.4, enp0s9, 00:01:35
S>* 4.5.6.0/26 [1/0] via 192.168.210.4, enp0s10, 00:01:35
S>* 4.5.6.7/32 [1/0] via 192.168.209.44, enp0s9, 00:01:35
C>* 192.168.201.0/24 is directly connected, enp0s3, 00:01:40
C>* 192.168.208.0/24 is directly connected, enp0s8, 00:01:40
C>* 192.168.209.0/24 is directly connected, enp0s9, 00:01:40
C>* 192.168.210.0/24 is directly connected, enp0s10, 00:01:40
robot# show ip route table 3000
Codes: K - kernel route, C - connected, S - static, R - RIP,
       O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP,
       T - Table, v - VNC, V - VNC-Direct, A - Babel, D - SHARP,
       F - PBR, f - OpenFabric,
       > - selected route, * - FIB route

S>* 4.5.6.7/32 [1/0] via 192.168.209.44, enp0s9, 00:00:55
  *                  via 192.168.209.45, enp0s9, 00:00:55
robot#

Fixes: #2954
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-14 16:30:17 -04:00
David Lamparter
4205a06cc4
Merge pull request #3018 from donaldsharp/twheel_names
Twheel names
2018-09-14 17:57:19 +02:00
David Lamparter
e7bdf513d5
Merge pull request #3030 from pacovn/fp_type_fixes1
bgpd: type fix
2018-09-14 17:55:50 +02:00
David Lamparter
2fa3198399
Merge pull request #3023 from qlyoung/ultimate-warning-reference-cards-rename
warning reference cards rename
2018-09-14 17:35:58 +02:00
F. Aragon
1445b43c41
bgpd isisd zebra: misuse of comma operator
Detected using ./configure CFLAGS=-Wcomma CC=clang

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-14 15:55:56 +02:00
F. Aragon
3cf7af1d3d
bgpd: type fix
For tracking the last state of the penalty (struct bgp_damp_info) a 'double'
type was used instead of using the 'unsigned int' being used in the structure.

Detected using ./configure CFLAGS=-Wfloat-equal CC=clang

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-14 15:01:03 +02:00
Quentin Young
1c50c1c0d6 *: style for EC replacements
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-09-13 19:38:57 +00:00
Quentin Young
450971aa99 *: LIB_[ERR|WARN] -> EC_LIB
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-09-13 19:34:28 +00:00
Quentin Young
e914ccbe9c zebra: ZEBRA_[ERR|WARN] -> EC_ZEBRA
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-09-13 19:23:29 +00:00