Commit Graph

10392 Commits

Author SHA1 Message Date
Donald Sharp
4e8b02f4df *: Rename ZEBRA_FLAG_INTERNAL -> ZEBRA_FLAG_ALLOW_RECURSION
The ZEBRA_FLAG_INTERNAL flag is used to signal to zebra that
the route being added, the nexthops for it can be recursively
resolved.  This name keeps throwing me off when I read it
so let's rename to something that allows the developer to
understand what is going on.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-26 21:26:33 -05:00
Renato Westphal
cd3ac3b599
Merge pull request #1750 from donaldsharp/zebra_other_tables
Zebra other tables
2018-02-26 21:29:57 -03:00
Renato Westphal
e7c9f3f958
Merge pull request #1795 from qlyoung/vtysh-history-q2f
vtysh: .history_quagga --> .history_frr
2018-02-26 21:16:13 -03:00
Daniel Walton
194a4f2c5c bgpd: use peer->ifp->ifindex instead of peer->ifindex
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

peer->ifindex was only used in two places but it was never populated so
neither of them worked as they should.  'struct peer' also has a 'struct
interface' pointer which we can use to get the ifindex.
2018-02-26 22:13:22 +00:00
Philippe Guibert
8d056acc82
Merge pull request #1793 from qlyoung/stylechecker
Miscellaneous checkpatch fixes & improvements
2018-02-24 07:24:06 +01:00
Martin Winter
f12f08f4c0
Merge pull request #1796 from donaldsharp/32_silliness
pimd: Fix some compiler issues
2018-02-23 13:52:42 -08:00
Donald Sharp
28b11f8106 *: Modify notify_owner to route_notify_owner
In the future we are going to have a rule_notify_owner
so make the distinction between the two types of notification
clearer.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 14:45:57 -05:00
Donald Sharp
9a9f89267a zebra: Fix situation where we would notify the owner it lost due to admin distance
The 'struct route_entry *old' and 'struct route_entry *new' can sometimes
be the same route type( for a route replace ), so when we are checking
to see if a new owner has taken over, don't tell the owner it is
replacing it self.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com.
2018-02-23 14:45:57 -05:00
Donald Sharp
eaa23e020f zebra: Add some useful debugs for notifying the owner
Add a bit more detail to tell us what we are sending
up to a protocol so we can debug it better in the
future.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 14:45:57 -05:00
Donald Sharp
7a1eb44b30 lib: Fix notify_owner decode
The notification of the owner was not properly decoding
the prefix and as such we were not properly reading the
table it was installed into.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 14:45:57 -05:00
Donald Sharp
28610f7e44 *: Add tableid the route entry was sent to
Add for the southbound pass back the route entries tableid
used for installation.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 14:45:57 -05:00
Quentin Young
ddb3dcc733
vtysh: .history_quagga --> .history_frr
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-23 12:40:57 -05:00
Quentin Young
6b1ebf3c3c
Merge branch 'master' into stylechecker 2018-02-23 11:23:29 -05:00
Quentin Young
2580e72f8d
tools: finer-grained error codes for checkpatch
* 2 for errors
* 1 for warnings
* 0 for clean
* Suppress all report text for a clean result
* Remove check for const structs from perl script
* Remove grep suppression for that check from shell script

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-23 11:02:19 -05:00
Quentin Young
6f3835891a
tools: ignore FSF warning, fn macros in checkpatch
* Unlike Linux we do require the GPL file header
* When checking for spaces between function names and parentheses,
  ignore all-uppercase function names as these are likely to be macros,
  and function-like macros may have that space

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-23 10:25:30 -05:00
Donald Sharp
e062e87d7f doc: Update centos7 build to include systemd
Update the centos7 build instructions to include
data on how to build w/ systemd.  This is especially
useful because we tell the user to install the frr.service
file and the frr.service file expects systemd integration

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 10:06:04 -05:00
Quentin Young
fb444efb68
Merge pull request #1792 from pguibert6WIND/issue_1786
tools: fix that filters issues on resulting file only
2018-02-23 10:04:07 -05:00
Philippe Guibert
513e922309 tools: fix that filters issues on resulting file only
Because checkpatch result is applied to original and new file, the
analysis also parses what may be wrong with the original file.
Whereas the script should limit to analyse only what is wrong on new
file.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-02-23 16:16:30 +01:00
Donald Sharp
27b136bd58 zebra: Fix up some code formatting issues.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 07:50:23 -05:00
Donald Sharp
783fc3cd45 zebra: Fix warning found in CI system
The Clang SA system found a new issue:

Dead store: Dead assignment.

This fixes that issue

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 07:08:36 -05:00
Donald Sharp
55cd0f612a *: Make assignment from RB_ROOT in while loop work better
Fix up the assignment of the variable = RB_ROOT inside of
while loop patter we were using.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 07:08:36 -05:00
Donald Sharp
a031a7e4c9 zebra: On shutdown don't count removals
Some of the tables are no longer stored in the zvrf
and in the zns now.  On shutdown zns is cleaned up
after vrf( and rightly so!) As such we should not
attempt to count the information if we don't have
a zvrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 07:08:36 -05:00
Donald Sharp
ae825b8bf0 zebra: Add code to display interesting tables
With the ability of zebra to handle random tables,
add code to display those tables via the
show <ip|ipv6> route table (1-...) [json] command.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 07:08:36 -05:00
Donald Sharp
36064c0d9b zebra: Allow table creation for tables greater than 252
The linux kernel allows a vast expanse of tables to be used.
It would be useful for zebra to track these tables if they
are being used.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 07:08:36 -05:00
Donald Sharp
5335613bc7 zebra: Move zvrf->other_tables into zns
The other_tables data structure does not belong to a vrf.
It belongs to the zns.  This is because each vrf does not
need to have copies of each of other_tables.

Additionally move the array into a RB_TREE.  This will allow
us to sort quickly and easily expand the number of tables
we can support to beyond the ZEBRA_KERNEL_TABLE_MAX define.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 07:08:36 -05:00
Donald Sharp
5b02bd3ad0 pimd: Fix some compiler issues
Fix some compiler issues that were not picked up.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-23 02:07:47 -05:00
Rafael Zalamena
ddbb463d4f
Merge pull request #1723 from chiragshah6/ospf_vrf_dev
ospfd: fix ospf interface and neighbor json
2018-02-22 17:24:35 -03:00
Philippe Guibert
893408badc
Merge pull request #1756 from qlyoung/stylechecker
tools: improve checkpatch.sh
2018-02-22 18:55:48 +01:00
Quentin Young
86d488ce66
tools: improve checkpatch.sh
* Send reports to stderr; this allows you to get just the end result by
  redirecting stderr
* Don't attempt to copy nonexistent files

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-22 12:54:42 -05:00
Quentin Young
b59555c6bf
doc: change info file name from FRR -> frr
conventions yo

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-22 12:27:12 -05:00
Quentin Young
6165030aa8
doc: fix hardcoded 'make' invocation
BSD systems need gmake to build FRR, hence why we use $(MAKE) instead of
directly invoking make. It looks like Sphinx generated makefiles
understand this, but contain a bug where the target for info files
hardcodes make instead of using $(MAKE). Fix this.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-22 12:10:47 -05:00
Donald Sharp
0908f2bfc7 FRR: Update Community.md to reflect release process
This is the new release process for FRR.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-22 08:48:45 -05:00
Donald Sharp
358eb355b9
Merge pull request #1749 from msablic/pim_mtrace_cc
pimd: Multicast traceroute client and router
2018-02-22 08:15:38 -05:00
Don Slice
b43444f53a zebra: fix rnh deleting nht entry
Problem seen when a prefix was learned with nexthops from multiple
route sources (static and ospf in this case) and the link to that
nexthop flaps.  The nht entry was incorrectly deleted so when the
link came back up the static was not re-installed correctly.

Ticket: CM-19675
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2018-02-21 10:47:21 -08:00
Quentin Young
2ccf91b108
bgpd: fix incorrect keepalive timer evaluation
Incorrect check for sentinel value effectively caused peers to sometimes
use the keepalive timer value of other peers, which sometimes led to
hold timer expiry.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2018-02-21 12:15:17 -05:00
Quentin Young
7c557e5b3d
*: move random tools into tools/
Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2018-02-20 12:37:41 -05:00
Quentin Young
adaf2d624b
doc: fallback to sphinx-1.0-build
Some platforms (actually just Centos6, again, of course) call
"sphinx-build" as "sphinx-1.0-build", and so to work around this
apparently useless name, fall back to sphinx-1.0-build when we can't
find sphinx-build before displaying an error message. I am not doing in
this the configure script because the sphinx makefiles are not Automake
files and the less Automake in tree the better.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2018-02-20 12:29:30 -05:00
Quentin Young
9cb4ba0a3e
debianpkg: fixup bad target names
Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2018-02-20 09:54:00 -05:00
Russ White
4298f5e937
Merge pull request #1730 from Orange-OpenSource/master
ospfd: Fix ospfd crash
2018-02-20 07:11:58 -05:00
Russ White
c30895ac3e
Merge pull request #1757 from dwalton76/bgpd-remove-peer-in-peergroup
bgpd: "no neighbor 10.13.0.12 peer-group ibgp" does not remove peer
2018-02-20 07:01:17 -05:00
Russ White
ac71b27a7c
Merge pull request #1766 from donaldsharp/label_label_label
zebra: implement recursive MPLS labels
2018-02-20 06:58:01 -05:00
Russ White
c57819cb01
Merge pull request #1732 from ak503/set_metric
ospfd: OSPF support the +/- in set metric <+/-metric>
2018-02-20 06:49:15 -05:00
Mladen Sablic
4d9ad5dcd0 pimd: Multicast traceroute client and router
This commit is the implementation of weak multicast traceroute.
It consists of IGMP module dealing with mtrace type IGMP messages
and client program mtrace/mtracebis for initiating mtrace queries.

Signed-off-by: Mladen Sablic <mladen.sablic@gmail.com>
2018-02-19 23:13:55 +01:00
Rafael Zalamena
6ac12ea313
Merge pull request #1765 from donaldsharp/sa_stuff
Sa stuff
2018-02-19 17:23:49 -03:00
Renato Westphal
fa71296396 zebra: implement recursive MPLS labels
When a BGP-labeled route is resolved into an LDP-labeled IGP route,
zebra would install it with no labels in the kernel. This patch implements
recursive MPLS labels, i.e. make zebra install all labels from the route's
nexthop chain (the labels from the top-level nexthop being installed in
the top of the MPLS label stack). Multiple recursion levels are supported.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2018-02-19 13:22:57 -05:00
Olivier Dugeon
d922605d28 OSPFD: Fix Segment Routing Lan Adjacency TLVs
- Lan Adjacency TLVs was incorrectly formatted due to an error in
TLV size computation. Add new macro to fix this issue
 - Update SR link nexthop when it corresponds to an LAN Adj SID. The nexthop
is set to the router id in the TLVi (as per draft), but we need the neighbor
IP address to set the corresponding MPLS LFIB entry

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2018-02-19 10:17:41 +01:00
Donald Sharp
100cb793cc bgpd: Fix value set but never used
The value 'pnt' was being set but never used.  If we need
this in the future it will be a simple thing to add back
in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-17 14:59:32 -05:00
Donald Sharp
5a9825aac6 isisd: Remove impossible check
The circuit->area value is always true in every code path
to isis_circuit_af_set( isis_vty.c ).  Therefore was_enabled
will always be true.

If was_enabled ever became false then the area->ip_circuits
and area->ipv6_circuits lines would segfault.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-17 14:52:44 -05:00
Russ White
97133f7f9f
Merge pull request #1745 from mkanjari/type5-route-policy
bgpd: Policy to control which RIB routes are injected into EVPN
2018-02-16 17:23:25 -05:00
Quentin Young
72a475e87c
debianpkg: update packaging for new docs
Incidentally this was all broken before anyway.

* Correctly ship all documents in frr-doc
* Ship manpages for all daemons in frr
* Update rules to build docs via Sphinx
* Use packaging install files correctly
2018-02-16 15:44:59 -05:00