Commit Graph

12680 Commits

Author SHA1 Message Date
David Lamparter
66a9aa8b88
Merge pull request #2859 from LabNConsulting/working/master/meminfo
lib: qmem show changes (header and max)
2018-08-30 16:44:47 +02:00
Don Slice
9f049418bc bgpd/ospfd: make bgp and ospf json response a bit more consistent
Problem reported that some bgp and ospf json commands did not return
any json output at all if the bgp/ospf instance did not exist.
Additionally, some bgp and ospf json commands did not return any json
output if the instance existed but no neighbors were defined.  This
fix makes these commands more consistent in returning empty braces for
json output and issue a message if not using json output.  Additionally,
made the flag "use_json" a bool to make it consistent since previously,
it had been defined as an int, char, u_char, and bool at various places.

Ticket: CM-21040
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2018-08-30 12:40:18 +00:00
David Lamparter
2282d92812 doc: drop colspan/rowspan elements
The sphinx 'text' writer apparently doesn't support these, and the
'dummy' writer is only available on recent versions, and all of this
makes the build a bit annoying...

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
50dc6dbd69 doc: html default off
... RPM builds break if we enable this unconditionally; should really
change this in CI instead.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
b8dd5f9d9b build: add Makefile variable easy access
This adds 2 helper targets for use in scripts to easily get at Makefile
variables without parsing the Makefile or config.status.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
0fca9cee36 build: improve python search pattern
- try pythonN.N-config after pythonN-config
- use "python-config --ldflags" instead of --libs
- add Python 3.6 to explicitly searched versions
- if linking fails, try with "-lz" added

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
892d21b171 build: add warning when overwriting vars on "make"
doing things like `make CC="mmix-linux-musl-gcc"` breaks the hosttools/
cross-compilation setup pretty hard and just straight up should not be
done.  These vars belong on `configure`, not `make`.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
2a636b4350 build: cache a few more results in ./configure
Makes configure re-runs faster if the `-C` option is used.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
e0597bb2a5 build: -Werror does not belong in AM_CPPFLAGS
(probably neither do the ASAN/... FLAGS, but let's leave that alone.)

Also, it was intentional that it's $(WERROR) and not @WERROR@.  The
former can be overwritten at comandline as "make WERROR=" while the
latter can't.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
e386324530 build: non-recursive solaris
Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
84c5337efd build: fix some oddities in solaris/
target_* is always wrong for FRR because we are not a compiler.  We only
use host_* and build_*.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
b716e79ac5 build: trigger fewer unneccessary clippy rebuilds
Make sure we include the clippy binary file in our timestamp mangling so
`make` will correctly determine when clippy files don't need to be
rebuilt.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
0d0812a4ad build: non-recursive debianpkg
Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
9e53b31551 build: non-recursive doc + parallel sphinx
Sphinx actually does work with a parallel build, if the doctree creation
is a separate step (which the other builds will then just read
unmodified.)  This can be done with the "dummy" target.

This also adds "-j6" to sphinx-build and adds a "--disable-doc-html"
switch on ./configure to turn on/off building HTML docs separately.

Also, HTML docs are now installed by "make install" to
/usr/share/doc/frr/html.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-08-30 08:06:44 +02:00
David Lamparter
f177317a20
Merge pull request #2942 from mjstapp/fix_new_atomics
libs: fix missing atomics for some gcc versions
2018-08-30 08:04:29 +02:00
David Lamparter
53acd58416
Merge pull request #2754 from chiragshah6/mdev1
*: pthread set name abstraction
2018-08-30 08:00:25 +02:00
Chirag Shah
57019528a0 *: pthread set name abstraction
Testing Done:

 TOR#cat /proc/2670/task/2672/comm
 bgpd_ka

TOR# ps H -C bgpd -o 'pid tid cmd comm'
  PID   TID CMD                         COMMAND
  2670  2670 /usr/lib/frr/bgpd -M snmp - bgpd
  2670  2671 /usr/lib/frr/bgpd -M snmp - bgpd
  2670  2672 /usr/lib/frr/bgpd -M snmp - bgpd_ka

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2018-08-29 15:41:54 -07:00
Mark Stapp
1ed98c2db6 libs: fix missing atomics for some gcc versions
stdatomic.h does not have aliases for all of the useful gcc
atomic primitives; add them in for that path through
frratomic.h.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-08-29 15:39:19 -04:00
Christian Franke
2e7d2b93b6
Merge pull request #2938 from pguibert6WIND/spurious_message
lib: remove spurious message when netns is not available
2018-08-29 19:21:59 +02:00
Quentin Young
4ebfd799c0
Merge pull request #2917 from opensourcerouting/doc-devel-openwrt
doc/developer/openwrt: Update instructions for building for OpenWRT
2018-08-29 11:39:07 -04:00
Lou Berger
752a286dfa rfp_example: add 'rfp full-table-download' config to support topotest
Signed-off-by: Lou Berger <lberger@labn.net>
2018-08-29 11:08:10 -04:00
Lou Berger
3a022a7f18 rfapi: debug related changes to support topotest -- add cost
Signed-off-by: Lou Berger <lberger@labn.net>
2018-08-29 09:20:24 -04:00
Philippe Guibert
0e4864eaf0 zebra: do not update link if interface is veth interface
when interface is a virtual ethernet interface, then there is no need to
update link pointer of interface.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-29 11:34:08 +02:00
Christoffer
272fd0c3cd
.github: Add ISSUE_TEMPLATE.md
Content of file ISSUE_TEMPLATE.md lossly based upon
e38fcc3c00/.github/ISSUE_TEMPLATE.md

Signed-off-by: Christoffer <netravnen@gmail.com>
2018-08-29 11:19:20 +02:00
Christoffer
52686b3ba6
.github: Updated PULL_REQUEST_TEMPLATE.md per Quentin's request.
Signed-off-by: Christoffer <netravnen@gmail.com>
2018-08-29 11:13:16 +02:00
Lou Berger
7e678379ed doc: add comment on closing PRs
Signed-off-by: Lou Berger <lberger@labn.net>
2018-08-29 09:48:12 +02:00
Lou Berger
01bf2ccbdb doc: add comment on PR title and description
Signed-off-by: Lou Berger <lberger@labn.net>
2018-08-29 09:48:12 +02:00
Philippe Guibert
2ed3953ccc lib: remove spurious message when netns is not available
remove spurious message when netns is not available.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-29 09:27:17 +02:00
David Lamparter
6e6b335d7f
Merge pull request #2932 from donaldsharp/ferr_fix
lib: Use the actual string we want to limit '===' line to
2018-08-29 06:06:53 +02:00
Lou Berger
6a809ee406 rfp_example: add rfp holddown-factor to support topotest
Signed-off-by: Lou Berger <lberger@labn.net>
2018-08-28 19:26:04 -04:00
Lou Berger
7a153339b2 lib: atomic_add_fetch_explicit not supported on all platforms
Signed-off-by: Lou Berger <lberger@labn.net>
2018-08-28 19:22:37 -04:00
Lou Berger
13f1ba41a1 lib: qmem show changes (header and max)
add header to show qmem, align table with headers
     add tracking of max # allocs and max bytes alloc'ed

Signed-off-by: Lou Berger <lberger@labn.net>
2018-08-28 19:22:30 -04:00
Lou Berger
96487ee478
Merge pull request #2933 from mjstapp/more_atomics
libs: add atomic xxx_and_fetch apis
2018-08-28 16:30:21 -04:00
Renato Westphal
efd1f138cc
Merge pull request #2337 from pguibert6WIND/netns_alias
default VRF naming update
2018-08-28 17:10:04 -03:00
Lou Berger
973fd31cf4 rfapi: debug related changes to support topotest
Signed-off-by: Lou Berger <lberger@labn.net>
2018-08-28 15:11:50 -04:00
Donald Sharp
104ff5d777 lib: Use the actual string we want to limit '===' line to
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-28 14:36:44 -04:00
Mark Stapp
b086e4672a libs: add atomic xxx_and_fetch apis
We have the fetch_and_xxx apis, which return the _old_ value;
adding the xxx_and_fetch versions, which return the new value.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-08-28 12:48:58 -04:00
David Lamparter
9c42f07ccb
Merge pull request #2931 from donaldsharp/pim_zebra_crash
zebra: Fix crash in mroute debug
2018-08-28 18:13:24 +02:00
Donald Sharp
5b4256ca42 zebra: Fix crash in mroute debug
There exists a possibility that the ifindex we are passed
does not exist and as such we should check for it not
resolving as part of the debug.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-28 10:35:35 -04:00
Philippe Guibert
4931a3659a lib: overwrite default vrf name upon zapi vrf add event
The default vrf name is overwritten, upon reception of zapi vrf event.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
cc6743c290 zebra: add an option to zebra command to change default vrf name
There is a possibility to change the default vrf name, using the '-o'
option.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
c94e67258c doc: add information about dynamic update of default vrf name
It is possible to dynamically change default VRF name, if vrf backend is
a netns backend. By creating a link to the default netns in
/var/run/netns folder, then the file name will be used to name the
default VRF. If no backend netns is chosen, it is explained that it is
still possible to statically configure the default vrf name to new
define.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
eb6934d5c5 lib: avoid default vrf name memory allocation at startup
If default VRF is used, with standard naming convention,
memory allocation can be avoided.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
dd1147028a lib: protect newly created vrfs against default vrf naming.
Prevent from creating vrf, if the default vrf name is the same as the
vrf to be created.
Also, prevent at startup from creating default vrf with a name already
used in vrf list.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
fdafe17ee9 lib: set default vrf name at startup
For the daemons that do not use vrf_init(), the call to the define
will return a default vrf if no other values has been overriden.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
9a8bdf1c25 bgpd: handle vrf aliases in vty API
Because a VRF name can be used for default VRF, or an alias of an
already created VRF can be passed as parameter, the default VRF name
must be found out. This avoids creating double BGP instances for
example.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
6895b354ef ospfd: adaptations to handle vrf alias
Some adaptations are done to handle alias when creationg ospf instance.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
6a8ca00fa0 bgpd: authorize default vrf name usage
Now it is possible to configure BGP default instance by using its
default vrf name.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
3ed78e8cff zebra: detect if a netns is the default netns
In the case the default netns has a netns path, then a new NETNS
creation will be bypassed.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00
Philippe Guibert
ecbc5a3781 *: add a vrf update hook to be informed of the vrf name
The Vrf aliases can be known with a specific hook. That hook will then,
from zebra propagate the information to the relevant zapi clients.
The registration hook function is the same for all daemons.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-28 16:23:50 +02:00