Commit Graph

2684 Commits

Author SHA1 Message Date
Lou Berger
d127c61aeb
Merge pull request #3010 from opensourcerouting/no-frr-thread-id
lib: frr_pthread minor simplification
2018-09-22 15:02:09 -04:00
Donald Sharp
8c5ff531a1 lib: When we can't lock the pid file provide a meaningfull message
Give a hint to the end user that the daemon may already be running.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-22 14:18:52 -04:00
Donald Sharp
42a75fec9d Revert "lib: Ensure FRR detects running of the second instance of a FRR daemon, doesnot allow it to run."
This reverts commit 6e23e5e9e1.
2018-09-22 14:14:52 -04:00
Donald Sharp
b1cc6da84f lib: Allow useful display of default vrf name
When entering a interface name and you fat-finger it
actually display some useful information about the vrf
we are in.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-22 12:10:02 -04:00
Donald Sharp
9541827773
Merge pull request #3016 from pacovn/label_manager_fixes
Label manager fixes
2018-09-21 14:03:05 -04:00
Naveen Thanikachalam
fdf823db55 lib: Trigger callbacks to re-evaluate route-map clauses when "call" CLI is executed.
When the "call" CLI is executed from with-in a route-map that is already in use,
there is a need to get the route-map clients to re-evalute the clauses defined
by both the parent route-map, as well as the child route-map.
The existing callbacks, add_hook() and delete_hook() can be used by the lib to
inform the clients when the "call" is configured and unconfigured.

Signed-off-by: NaveenThanikachalam <nthanikachal@vmware.com>
2018-09-20 22:07:29 -07: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
David Lamparter
64777f5d87 lib: remove unused frr_pthread_yield()
OS-level yield is generally a bad and possibly dangerous idea.  If the
thread should be suspended, there should always be something to wait on,
or it turns into busy waiting.  And if it's "just giving something else
the chance to run" - that's the kernel's job to determine, and the
kernel will do so while considering priorities, cgroups, and whatnot.
Let it do its job.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-19 22:01:50 +02:00
David Lamparter
1ac267a2d9 lib: remove frr_pthread->id
All I can see is an unneccessary complication.  If there's some purpose
here it needs to be documented...

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-19 22:01:46 +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
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
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
David Lamparter
4205a06cc4
Merge pull request #3018 from donaldsharp/twheel_names
Twheel names
2018-09-14 17:57:19 +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
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
F. Aragon
7fe96307ee
bgpd lib ospf6d pbrd tests zebra: shadowing fixes
This fixes all remaining local variable shadowing cases

Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-13 17:37:08 +02:00
Donald Sharp
c2cfa843b4 lib, pimd: Convert timer_wheel to use thread_execute_name
Allow at timer wheel creation time the ability to specify a
name for what we want the 'show thread cpu' to show up as.

Modify pim to note this.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-13 10:51:13 -04:00
Donald Sharp
b7fb24ce6f lib: Add thread_execute_name
Allow the user to specify a run name for display in
'show thread cpu' that is different than the function
name we are calling.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-13 10:50:50 -04:00
Donald Sharp
6efca3442f
Merge pull request #3007 from pacovn/static_analysis__shadow_variables2
lib vtysh zebra: variable shadowing fixes
2018-09-13 08:38:32 -04:00
David Lamparter
e991eff5b5 Merge remote-tracking branch 'frr/master' into warnings
Conflicts:
	zebra/if_ioctl_solaris.c
	zebra/rtread_getmsg.c

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-12 21:58:39 +02:00
F. Aragon
c683bd446c
lib vtysh zebra: variable shadowing fixes
Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-12 12:27:38 +02:00
Russ White
88f47ef365
Merge pull request #2944 from thbtcllt/master
fix zebra crash when a vrf interface changes with netns implementation for vrf
2018-09-11 11:33:27 -04:00
David Lamparter
5297438f59 Merge branch 'pr2983' 2018-09-11 16:56:30 +02:00
David Lamparter
371bfb5c3e lib: whitespace/spelling fix
Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-11 16:55:56 +02:00
Donald Sharp
5381b930b3
Merge pull request #2965 from opensourcerouting/buildfoo-20180904
more build fixes & warning-free build
2018-09-09 14:11:10 -04:00
Donald Sharp
55e6c1329f
Merge pull request #2862 from opensourcerouting/non-recursive
final non-recursive make
2018-09-09 13:51:58 -04:00
Donald Sharp
4bb7d4482d
Merge pull request #2994 from opensourcerouting/sa-warnings
fix remaining SA warnings
2018-09-08 21:04:54 -04:00
David Lamparter
7b34167d7d lib: early-include "config.h" in flex lexers
This is neccessary to get _FILE_OFFSET_BITS right.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-09 01:16:25 +02:00
David Lamparter
3009394b3c *: fix some random warnings
Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-09 01:16:25 +02:00
David Lamparter
e9d938b82a lib: make pthread_set[_]name_np test OS agnostic
FreeBSD supports pthread_set_name_np() too.  Also, pthread_set_name_np()
returns void.  And NetBSD has pthread_setname_np() with an extra arg...

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-09 01:16:25 +02:00
David Lamparter
324be174d7 build: check {malloc,pthread}_np.h for *BSD
FreeBSD has malloc_usable_size() in malloc_np.h
OpenBSD has pthread_set_name_np() in pthread_np.h

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-09 01:16:25 +02:00
David Lamparter
0718b5624c build: use _POSIX_C_SOURCE
Need this to get CMSG_SPACE/CMSG_LEN on Solaris.

Also, AC_GNU_SOURCE is deprecated, AC_USE_SYSTEM_EXTENSIONS does that.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 21:30:42 +02:00
David Lamparter
ae9eebcaeb *: fix some solaris warnings
Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 21:30:42 +02:00
David Lamparter
e7c25325cc *: cleanup .gitignore files
Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 21:30:42 +02:00
David Lamparter
b45ac5f5c6 *: fix config.h/zebra.h include order
config.h (or, transitively, zebra.h) must be the first include file
listed for autoconf things like _GNU_SOURCE and _POSIX_C_SOURCE to work
correctly.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 21:30:42 +02:00
David Lamparter
dbac691da6 build: fix & clean up *SAN flags
ASAN/MSAN/TSAN flags need to be in CFLAGS and LDFLAGS; the latter links
the correct compiler-dependent library.  Also, the configure switch was
broken (--disable-... would enable the sanitizer.)

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 21:30:42 +02:00
David Lamparter
74dc19a2f5 build: move vtysh & manpage listings to subdir.am
Since we're now building through one large Makefile, we can easily put
things with their daemons and crossreference nicely.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 21:30:19 +02:00
David Lamparter
aad24c5ba6 build: remove common.am
Fold things into where they make sense.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 21:26:54 +02:00
David Lamparter
4f4060f6ab *: fix clang-6 SA warnings
I don't see these in CI, but my local clang-6 does emit warnings for
these.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 20:34:35 +02:00
David Lamparter
f70247febe lib: fix SA warning in skiplist code
Clang was thinking the random level could be negative.  (And, no, I
couldn't figure that out by reading its output... trial and error this
was.)

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 20:34:35 +02:00
David Lamparter
a43ad4fef8 lib, ldpd: fix SA warnings from TAILQ oddness
Add a TAILQ_POP_FIRST so Clang understands it's the same item that is
getting removed from the list.

Signed-off-by: David Lamparter <equinox@diac24.net>
2018-09-08 20:34:32 +02:00
Donald Sharp
714e135429
Merge pull request #2875 from opensourcerouting/fabricd
OpenFabric support
2018-09-08 13:48:48 -04:00
Donald Sharp
afc9534f67 lib: Detect if pthread_condattr_setclock is available
Auto-detect if pthread_condattr_setclock is available and if
it is not allow the code to compile around the issue.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-08 12:00:17 -04:00
Donald Sharp
7b90f00cce lib: Cleanup include of link.h
We need link.h for the HAVE_DLINFO_LINKMAP, so include
it if we need it for that code path.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-08 12:00:17 -04:00
David Lamparter
5af18c4126
Merge pull request #2982 from donaldsharp/smux_h
lib: Add missing smux.h to `make distrib` results
2018-09-08 17:13:45 +02:00
F. Aragon
aa1bac3039
lib: array index check (Coverity 1473088)
Signed-off-by: F. Aragon <paco@voltanet.io>
2018-09-07 11:20:45 +02:00
Quentin Young
5e1343f671 lib: PRIu32 in log.h
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-09-06 20:56:41 +00:00
Quentin Young
ade6974def *: style for flog_warn conversions
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-09-06 20:56:41 +00:00
Donald Sharp
0e411ce681 lib: Modify zlog_warn to vty_out
The vty_prefix_list_install function was modifying the prefix to match the
specified prefix length and warning in the log file.  Modify
code to use zlog_info as that a warn implies that something has
gone terribly wrong.  Additionally display to the terminal as
well so that user can get immediate feedback from something
that they can correct.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
0351a28f2a lib: Convert vrf.c to use new error-code subsystem
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
ff9d9d5ba1 lib: Convert sigevent.c to use new error-code-subsystem
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
3469901633 lib: Convert vty.c to use new error-code subsystem
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
040c7c3a9f lib: Convert routemap.c to use new error-code subsystem
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
ff245f0e02 lib: Convert privs.c to use new error-code subsystem
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
fc41c1531f lib: Convert network.c to use new error subsystem codes
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
9ef9495e3a lib: Convert thread.c to use new error-code subsystem
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
8b895cd32f lib: Convert netns_linux.c to new error-code work
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
0bff8eea70 lib: Convert libfrr.c to use new error code system
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
a2b0f8b803 lib: Convert stream.c to use new error code subsystem
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
4496fbb36c lib: Convert sockopt.c to flog_err
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
1b5e2f895a lib: Convert sockunion.c to use flog_err
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
decbd92979 lib: Update zclient.c warn code
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
29c7044c63 lib: Convert to errors some issues in buffer.c
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Donald Sharp
ffd9ac069c lib: Convert to flog_warn in agentx.c
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Quentin Young
2311712a62 lib: add flog_warn
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-09-06 20:50:58 +00:00
Biswajit Sadhu
6e23e5e9e1 lib: Ensure FRR detects running of the second instance of a FRR daemon, doesnot allow it to run.
Solution :
The following procedures would be performed :

1. Verify if the pid file for each daemon is present or not. If the file is not present, that means the
   daemon is getting instantiated for the first time. So let it go ahead.
   If the file is present proceed to point ‘2’.

2. Try fetching the properties of the pid file.

3. If it has RW lock, that means one instance of this the daemon is already running.
   So stop moving ahead and do exit() else let it go ahead.
Please note all above procedure happen at
   the initial state of daemon’s instantiation, much before it starts any session with other
   process/allocates resources etc.. and this verification do not have any impact of any
   operations done later, if the verification succeeds.

Signed-off-by: bisdhdh sadhub@vmware.com
2018-09-06 02:51:40 -07:00
Thibaut Collet
c3568c4d1a zebra/lib: code cleaning
Remove useless parenthesis and explicit cast.
Remove redundant code.

Signed-off-by: Thibaut Collet <thibaut.collet@6wind.com>
2018-09-06 07:48:12 +02:00
Donald Sharp
98ea5be8b3 lib: Add missing smux.h to make distrib results
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-05 20:58:50 -04:00
Christian Franke
103e4a718f zebra: add a ZEBRA_FLAG_ONLINK so that routes bypass the is-unnumbered check
For OpenFabric operation, we need to be able to install routes via
interfaces without any IPv4 addresses configured. Introduce a flag
ZEBRA_FLAG_ONLINK which upper protocols can set on a route they send
towards zebra, to force the nexthops to be considered onlink.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-09-05 11:38:13 +02:00
Christian Franke
7c0cbd0e88 fabricd: add new daemon as build of isisd
fabricd is built using the sources of isisd. To allow differentiation
in the code, -DFABRICD=1 is added to its preprocessor flags.

Signed-off-by: Christian Franke <chris@opensourcerouting.org>
2018-09-05 11:38:12 +02:00
Donald Sharp
ba50512125 lib: Remove dead code
The ZEBRA_IPV4_ROUTE_IPV6_NEXTHOP_ADD zapi message has no creators and
no handlers.  Let's just remove.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-09-04 09:14:53 -04:00
David Lamparter
1fbd4e382a
Merge pull request #2945 from dslicenc/bgp-ospf-json
bgpd/ospfd: make bgp and ospf json response a bit more consistent
2018-09-01 05:05:30 +02:00
Quentin Young
04f04f0fa5
Merge pull request #2913 from opensourcerouting/non-recursive-prep
pre-final non-recursive make
2018-08-31 11:43:59 -04:00
David Lamparter
fc59d63c49
Merge pull request #2955 from ton31337/feature/nexthop_blackhole
plist: Add safety check to avoid going over 4294967295 for prefix-list
2018-08-31 17:33:40 +02:00
Donatas Abraitis
fbc7ead79c plist: Add safety check to avoid going over 4294967295 for prefix-list 2018-08-31 16:38:56 +03:00
Lou Berger
e93c6338f8
Merge pull request #2785 from donaldsharp/AGGanomics
Abstract `void *aggregate` pointer in `struct route_node`
2018-08-31 06:58:12 -04:00
Donald Sharp
c2b2356701 lib: Move aggregate pointer into aggregate route/table
Move the aggregate pointer from the route_node into agg_node
so that people using struct route_node will see a savings
in data size.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-30 17:47:59 -04:00
Donald Sharp
8e1f651213 lib: Add Aggregate Table and Aggregate_node
Add a abstraction for `struct route_node` and `struct route_table`
such that we can have an aggregate route_node and table.  This
is because only bgp/rfapi and ripng use the aggregate data pointer
in `struct route_node`.  For full route tables other routing
protocols and tables are paying a 8 byte overhead per node.
A full bgp table ends up being ~1.2 million routes in bgp
and zebra.  This is not an insiginificant amount of data.

So create the data structures for this replacement, but
do not replace the aggregate pointer yet.  This is because
later commits will convert rfapi and ripng over to this
new data, and finally we'll move the aggregate pointer.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2018-08-30 17:47:59 -04:00
Quentin Young
78b1bb5ff3 lib: sort route-maps for display
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2018-08-30 21:22:22 +00:00
Don Slice
94d4c685c5 bgpd/ospfd: resolve warnings for bgp/ospf json commit
Signed-off-by: Don Slice <dslice@cumulusnetwork.com>
2018-08-30 15:54:46 +00:00
Mark Stapp
c5e7bf3fa6 lib: fix use of frrpthread os_name
Fix test for presence of configured os pthread name.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2018-08-30 11:44:45 -04:00
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
Thibaut Collet
379eb245f6 lib/if.c: fix CLANG warning
Fix CLANG warning:
Report for if.c | 2 issues
===============================================
< WARNING: else is not generally useful after a break or return
< #390: FILE: /tmp/f1-28557/if.c:390:

Signed-off-by: Thibaut Collet <thibaut.collet@6wind.com>
2018-08-30 16:29:06 +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
Thibaut Collet
ee2f2c23ca zebra: fix crash when interface vrf changes
This crash occurs only with netns implementation.
vrf meaning is different regarging its implementation (netns or
vrf-lite)

- With vrf-lite implementation vrf is a property of the interface that
  can be changed as the speed or the state (iproute2 command: "ip link
  set dev IF_NAME master VRF_NAME"). All interfaces of the system are in
  the same netns and so interface name is unique.
- With netns implementation vrf is a characteristic of the interface
  that CANNOT be changed: it is the id of the netns where the interface
  is located. To change the vrf of an interface (iproute2 command to
  move an interface "ip netns exec VRF_NAME1 ip link set dev IF_NAME
  netns VRF_NAME2") the interface is deleted from the old vrf and
  created in the new vrf.
  Interface name is not unique, the same name can be present in the
  different netns (typically the lo interface) and search of interface
  must be done by the tuple (interface name, netns id).

Current tests on the vrf implementation (vrf-lite or netns) are not
sufficient. In some cases (for example when an interface is moved from
a vrf X to the default vrf and then move back to VRF X) we can have a
corruption message and then a crash of zebra.

To avoid this corruption test on the vrf implementation, needed when an
interface changes, has been rewritten:
- For all interface changes except deletion the if_get_by_name function,
  that checks if an interface exists and creates or updates it if
  needed, is changed:
    * The vrf-lite implementation is unchanged: search of the interface
      is based only on the name and update the vrf-id if needed.
    * The netns implementation search of the interface is based on the
      (name, vrf-id) tuple and interface is created if not found, the
      vrf-id is never updated.
- deletion of an interface (reception of a RTM_DELLINK netlink message):
    * The vrf-lite implementation is unchanged: the interface
      information are cleared and the interface is moved to the default
      vrf if it does not belong to (to allow vrf deletion)
    * The netns implementation is changed: only the interface
      information are cleared and the interface stays in its vrf to
      avoid conflict with interface with the same name in the default
      vrf.

This implementation reverts (partially or totally):
commit 393ec5424e ("zebra: fix missing node attribute set in ifp")
commit e9e9b1150f ("lib: create interface even if name is the same")
commit 9373219c67 ("zebra: improve logs when replacing interface to an
other netns")
Fixes: b53686c52a ("zebra: delete interface that disappeared")

Signed-off-by: Thibaut Collet <thibaut.collet@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2018-08-30 14:37:59 +02:00
Thibaut Collet
20c87e98d8 vrf: return vrf implementation for default vrf
To correct potential crash with netns implementation of vrf (see next
commit) it is necessary to allow any daemons to know the vrf
implementation whatever the vrf.
With current implementation the daemons do not know the vrf
implementation for the default vrf. For this vrf the returned vrf
implementation is always vrf-lite.
To solve this issue a netns name is set to the default vrf to just test
is presence to know the used implementation.

For zebra a netns name (if needed) is set in the vrf_init function just
before enabling the vrf. So this information is propagated to the other
daemons thanks the zapi message called when the vrf is enable at zebra
layer and override the default configuration (vrf-lite) of the daemon.

Signed-off-by: Thibaut Collet <thibaut.collet@6wind.com>
2018-08-30 14:37:55 +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
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
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
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
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
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
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