Commit Graph

10571 Commits

Author SHA1 Message Date
Renato Westphal
defd0965f4
Merge pull request #1811 from donaldsharp/nht_send_type
lib, zebra: Add type and instance to nexthop update message
2018-03-06 13:48:40 -03:00
Quentin Young
ce08776d95
Merge pull request #1833 from opensourcerouting/fix-vtysh-output-init
vtysh: initialize vty structure correctly for output to terminal
2018-03-06 11:47:47 -05:00
Philippe Guibert
6dfe83b8f7
Merge pull request #1728 from mkanjari/evpn-bug-fixes
Evpn bug fixes
2018-03-06 17:27:10 +01:00
Quentin Young
985e36a609
lib: frr_pthread.c style
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-06 11:03:00 -05:00
Quentin Young
5da39765e2
Merge branch 'master' into docuser
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-06 10:53:27 -05:00
Quentin Young
e3e3afffc9
doc: sync ospf-sr docs from master
7666589034

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-06 10:50:30 -05:00
Quentin Young
e207a4b589
doc: prevent clean target from building manpages
Unconditional automake subdirectory flag = 'man' causes manpages to
always be built regardless of target, which is undesirable for `clean`.
Remove unconditional flag and override automake targets that need to
build manpages instead.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-06 10:33:21 -05:00
Renato Westphal
c187f94a65
Merge pull request #1818 from pguibert6WIND/issue_vrfnetns_capabilities
bgpd,ospfd: add sys_admin capabilities
2018-03-06 12:15:35 -03:00
Rafael Zalamena
cc7d9cab99
Merge pull request #1789 from Orange-OpenSource/master
ospfd: Add json output for Segment Routing
2018-03-05 21:55:59 -03:00
Christian Franke
4a9746fdd0 vtysh: initialize vty structure correctly for output to terminal
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-03-06 01:37:49 +01:00
Quentin Young
d8a8a8de00
lib: some frr_pthread fixes
* Use atomic fixed-width thread identifiers
* Add ability to change thread name at runtime

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-05 18:04:54 -05:00
Renato Westphal
41d19ab553
Merge pull request #1809 from donaldsharp/intf_json
vrf nexthop cleanups
2018-03-05 19:33:05 -03:00
Quentin Young
6d9f7064c5
Merge pull request #1827 from opensourcerouting/fix-ringbuf-test-setup
tests: fix python test description for test_ringbuf
2018-03-05 15:13:46 -05:00
Christian Franke
2d0e9b8026 tests: update gitignore
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-03-05 19:50:21 +01:00
Christian Franke
4cfe547340 tests: fix python test description for test_ringbuf
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-03-05 19:44:41 +01:00
Quentin Young
a9d0a90fe8
tools: add LeakSanitizer suppressions list
Building FRR with AddressSanitizer is kind of annoying since
libpython3.5 leaks memory, clippy links libpython3.5 and clippy runs as
part of the build process. LeakSanitizer has a way to suppress leaks at
runtime by setting the LSAN_OPTIONS environment variable to contain a
file path to a suppression list:

LSAN_OPTIONS=suppressions=path/to/suppr.txt

This commit provides the file. Setting this environment variable to

LSAN_OPTIONS=suppressions=../tools/lsan-suppressions.txt

before building should allow a clean build with ASAN enabled. The
relative path is there because LeakSanitizer looks at paths relative to
the binary it is sanitizing; clippy is in lib/ so the path is set
relative to lib/.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-05 13:28:34 -05:00
Quentin Young
e221d227e3
doc: allow env var to ovveride sphinx defaults
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-05 11:03:27 -05:00
vivek
052ea98b43 bgpd: Fix warnings
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2018-03-04 06:56:19 +00:00
vivek
7fd077aadd bgpd: Parse PMSI Tunnel Attribute and display
Received PMSI tunnel attributes (in EVPN type-3 route) were not recognized.
Parse them and display the tunnel type when looking at routes. Note that
the only tunnel type currently supported is ingress replication (IR). A
warning message will be logged if the received tunnel type is something
else, but the attribute is otherwise ignored.

Updates: a21bd7a (bgpd: add PMSI_TUNNEL_ATTRIBUTE to EVPN IMET routes)
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2018-03-04 03:28:50 +00:00
Russ White
6768912110
Merge pull request #1797 from chiragshah6/ospfv3_dev
ospf6d: ECMP for external routes
2018-03-02 15:56:08 -05:00
Philippe Guibert
4b322ffebb bgpd,ospfd: add sys_admin capabilities
This capability, when used, is mapped over linux sys_admin capability.
This is necessary from the daemon perspective, in order to handle NETNS
based VRFs, because calling setns() requires sys admin capability.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-03-02 15:20:43 +01:00
Olivier Dugeon
a8e31fced6
Merge pull request #1815 from donaldsharp/ospf_sr_cleanup
ospfd: Cleanup ospf SR log messages
2018-03-02 13:26:13 +01:00
Donald Sharp
df25d29213 ospfd: Cleanup ospf SR log messages
When OSPF SR is not configured one would expect
to not see any output from it at all in the debug
log with no debugs turned on.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-03-02 05:15:33 -05:00
Martin Winter
24a532dcc2
doc: Update Building instructions for CentOS6
- Added warning for CentOS 6 support to be limited
- Added instructions for installing sphinx27-build manually

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-03-02 01:57:43 -05:00
Martin Winter
ccd40deece
redhat: Update CentOS6 to use python27-sphinx package
sphinx > 1.1 is needed which is provided by the non-standard
python27-sphinx for CentOS 6 / RedHat 6

Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-03-02 01:57:43 -05:00
Martin Winter
609dee9d83
redhat: Update spec file for new rst documentation
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-03-02 01:57:42 -05:00
Chirag Shah
78c6ba61db ospf6d: assign zebra router-id to ospf6 instance
Store zebra router-id in global structure.
Before router ospf6 instance created,
zebra router-id callback called.

During ospf6 main execution zebra init happens,
but default instance does not execute until
cli replay 'router ospf6'.
Call ospf6_router_id_change during 'router ospf6'
to assign zebra router id to ospf6 instance.

Ticket:CM-19937
Testing Done:
Assign Loopback /32 (6.6.6.6/32) address,
restart frr with (router ospf6 in frr.conf).
ospf6 default instance assigned 6.6.6.6 router-id.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-03-01 14:19:15 -08:00
Quentin Young
aea03ad6e8
lib: add mt-safe debugging facilities
The current strategy for fine-grained debugging across FRR is to use
static long int bitfields, in combination with helper macros that are
copy-pasted between daemons, to hold state on what debugging information
should be collected at any given time. This has a couple of problems:

* These bitfields are generally extern'd and accessed everywhere, so
  they are not MT-safe or easy to make MT-safe
* Lots of code duplication from copy-pasting the DEBUG_* macros...
* Code duplication because of the "term" vs "conf" debugging concept

This patch aims to remedy that by providing some infrastructure to work
with debugs. The core concept of using bitfields has been retained, but
the number of these for each debug has been reduced to 1. This allows
easy use of lock-free methods for synchronizing access to debugging
info.

The helper macros have also been retained but they are now collected in
one place and perform exclusively atomic operations.

Finally there is a bit of code that allows daemons to register
callbacks, which I used to implement a command that will toggle all
debugging for any daemons that use these facilities.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-01 15:01:25 -05:00
vivek
558283638b lib, zebra: Fix warnings
Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2018-03-01 19:50:46 +00:00
Quentin Young
dc64bdec91
bgpd: fix update-group show commands
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-01 13:46:40 -05:00
Quentin Young
0f2ac0c5ba
doc: s/environment/make
Error message for missing sphinx-build wasn't clear enough when
explaining how to change the path to the sphinx-build binary as it said
'environment variable' instead of 'make variable'

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-01 11:53:16 -05:00
Quentin Young
6caf40e7b2
debianpkg: include mtracebis.8
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-01 11:38:34 -05:00
Quentin Young
a975744835
Merge branch 'master' into docuser
* New manpage: mtracebis.rst
* Makefile.am includes mtracebis.rst
* configure.ac lines removed
* Debian packaging files updated
* Fixed up manpage |seealso-programs| in the process
* Centos7 build package list updated to include systemd-devel
* New paragraph on netns vrf support in zebra manpage

Conflicts:
	configure.ac
	debianpkg/backports/ubuntu14.04/debian/frr.install
	debianpkg/frr.install
	doc/Makefile.am
	doc/developer/Building_FRR_on_CentOS7.rst
	doc/zebra.8.in

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-01 11:10:01 -05:00
Chirag Shah
07b37f93a7 ospf6d: ECMP for external routes
The route being added check its origin matches,
with any of the existing path (list of paths).
Remove the existing path, add if its cost is
eqaual or less than any of the existing path.

For a given route and of existing path cost is lower
(better) than one being added, discard new route update.

The existing path cost is higher (lower) than one being
added, ospf6_route_add replaces existing with new route
info.

Compare cost between delete request and with existing
route.

Ticket:CM-16139

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-03-01 07:47:17 -08:00
Quentin Young
351c56649b
debianpkg: disable pdf build by default
Causes build issues on a certain 7 year old platform with a severely out
of date sphinx package, requires a full texinfo distribution to build a
package and nobody reads book-style manuals in 2018 anyway, its all
about the web docs...

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-03-01 10:20:36 -05:00
Martin Winter
3b7c7293ee
doc: Create infodir before writing to it and prefix with DESTDIR
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2018-03-01 10:09:52 -05:00
Donald Sharp
05dd5aaf02 lib, zebra: Add type and instance to nexthop update message
Add the originating routes type and instance to the nexthop
update message.  This is necessary because there exist
scenarios where BGP needs to make a decision about the
originating route type and instance to know if it is
going to be doing a route replace to a route that would
resolve to itself.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-28 19:22:47 -05:00
Martin Winter
c98f4d81aa
Merge pull request #1784 from donaldsharp/documentation
FRR: Update Community.md to reflect release process
2018-02-28 16:22:27 -08:00
Donald Sharp
f56ee10fc7 ospfd: Add vrf to nhlfe route add
So when a ospf SR is sending down routes to the kernel
ensure that the nexthop vrf_id is set appropriately.
Yes SR is in the default VRF.  But for people who
run across this code in the future, they will know
to do the right thing from it.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-28 19:16:51 -05:00
Donald Sharp
1374aec98f bgpd: Cleanup api_nh in bgpd a bit
The api_nh was being figured 2 times, also refactor
the vrf_id placement as well.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>:
2018-02-28 19:10:02 -05:00
Donald Sharp
c7bacffe46 zebra: Use the passed in nexthops vrf
When decoding and creating the appropriate data structures
for a nexthop, use the passed in vrf.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-28 18:55:10 -05:00
Donald Sharp
4ca997a8f8 lib: Use STREAM_GET
The addition of some rmac code snuck in the usage of a
stream_get instead of a STREAM_GET()

We need to be using STREAM_GET()

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-02-28 18:53:44 -05:00
Quentin Young
f765d422d1
lib: add atomic bitwise OR, AND
* Add support for C11 bitwise OR & AND operations
* Add atomic versions of bitfield macros

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-02-28 16:50:49 -05:00
vivek
1ec31309bb *: EVPN symmetric routing for IPv6 tenant routes
Implement support for EVPN symmetric routing for IPv6 routes. The next hop
for EVPN routes is the IP address of the remote VTEP which is only an IPv4
address. This means that for IPv6 symmetric routing, there will be IPv6
destinations with IPv4 next hops. To make this work, the IPv4 next hops are
converted into IPv4-mapped IPv6 addresses.

As part of support, ensure that "L3" route-targets are not announced with
IPv6 link-local addresses so that they won't be installed in the routing
table.

Signed-off-by: Vivek Venkatraman vivek@cumulusnetworks.com
Reviewed-by: Mitesh Kanjariya mitesh@cumulusnetworks.com
Reviewed-by: Donald Sharp sharpd@cumulusnetworks.com
2018-02-28 02:07:23 +00:00
Russ White
85121506e7
Merge pull request #1805 from donaldsharp/recursion
Recursion
2018-02-27 18:04:57 -05:00
Mitesh Kanjariya
58f9e4d3f2
Merge branch 'master' into type5-default-originate 2018-02-27 12:52:24 -08:00
Olivier Dugeon
7666589034 ospfd: Add json output for Segment Routing
- To ease checking the Segment Routing conformity in topotest,
add json output to 'show ip ospf database segment-routing' CLI.
 - Update ospfd user guide accordingly
 - Update OSPF-SR documentation with supported features and interoperability

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2018-02-27 18:00:02 +01:00
Russ White
f894c3b2ea
Merge pull request #1788 from mkanjari/evpn-bugs
Evpn bugs
2018-02-27 11:40:24 -05:00
Donald Sharp
02fe0f3caf
Merge pull request #1801 from opensourcerouting/vtysh-isis-fixes
dev/4.0 merge with IS-IS vtysh fixes
2018-02-27 10:42:09 -05:00
Christian Franke
546067dfb1 vtysh: Fix missing \n at end of desc string 2018-02-27 15:34:23 +01:00