Commit Graph

15688 Commits

Author SHA1 Message Date
Lou Berger
4cd0f3fed6 topotests/bgp_rfapi_basic_sanity: cleanup rfapi using non-debug command
Signed-off-by: Lou Berger <lberger@labn.net>
2019-05-01 21:16:14 +00:00
Stephen Worley
eaa2716dfb zebra: Check on startup route_info has all types
Add a function to check if the route_info array
has all types specified with data in it. Specifically,
test the 'key' attribute for non-zero data. Ignore
ZEBRA_ROUTE_SYSTEM as it should be zero key anyway.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-05-01 15:32:18 -04:00
Quentin Young
694bd4ce20 zebra: suppress unused variable warning
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-05-01 19:30:31 +00:00
Mark Stapp
88351c8f6d
Merge pull request #4226 from sworleys/PBR-BFD-OF-route_info
zebra: Add PBR, BFD, OpenFabric to route_info
2019-05-01 11:22:54 -04:00
Donald Sharp
8a64de72ff zebra: Fix incorrect reading of REMOTE_VTEP_[ADD|DEL]
With flooding control added recently we were not properly handling
the new flood control parameter in zebra_vxlan.c handler functions.
The error message that was being repeatedly seen:

2019/05/01 00:47:32 ZEBRA: [EC 100663311] stream_get2: Attempt to get out of bounds
2019/05/01 00:47:32 ZEBRA: [EC 100663311] &(struct stream): 0x7f0f04001740, size: 22, getp: 22, endp: 22

The fix was to ensure that both the _add and _del functions kept proper
sizing of amount of data read *and* the _del function was not
reading the flood_control data from the stream.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-30 21:29:03 -04:00
Donald Sharp
bcbce7b283
Merge pull request #4232 from mjstapp/fix_topotests_py3
topotest: fixes to support python3
2019-04-30 15:47:17 -04:00
Mark Stapp
a07e17d5e7 topotest: fixes to support python3
Make some small changes to support both python 2 and 3.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-04-30 11:31:02 -04:00
Lou Berger
31e944a8a7
Merge pull request #3045 from opensourcerouting/atoms
READY: lists/skiplists/rb-trees new API & sequence lock & atomic lists
2019-04-30 10:26:35 -04:00
Olivier Dugeon
01c9b80ad2 ospfd: Correct Link-ID and Remote IP for TE LSA
Solve issue #4198

Link-ID and Remote IP address must be set accordingly to the interface type
(Point-to-Point or Broadcast) from the neighbor information. However, this
information are only valid once the Network State Machine (NSM) is Full i.e.
when the adjacency is up. The original TE code only look to Interface State
Machine (ISM) change which not allow to collect valid neighbor information.
The patch move setup of Link-ID and Remote-IP TE parameters from
ospf_mpls_te_ism_change() to ospf_mpls_te_nsm_change() function.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2019-04-30 16:19:59 +02:00
Stephen Worley
d6abd8b070 zebra: Comment to ensure types added to route_info
Add a comment to indicate that route types added to
Zebra, should also be present in the route_info array.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-04-30 10:07:45 -04:00
Donald Sharp
5f4e7ff9e2
Merge pull request #4227 from faickermo/fix_show_ip_bgp_json
bpgd: Add the end of newline of show bgp table json output
2019-04-30 08:32:44 -04:00
Stephen Worley
eab7b6e371 zebra: Add OpenFabric to route_info array
Add OpenFabric to the route_info array for handling processing
of the OpenFabric route type.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-04-29 19:28:15 -04:00
Stephen Worley
42d96b73cb zebra: Add BFD to route_info array
Add BFD to the route_info array for handling processing
of the BFD route type.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-04-29 19:26:11 -04:00
Stephen Worley
9815665214 zebra: Add PBR to route_info array
Add PBR to the route_info array for handling processing
of the PBR route type.

Signed-off-by: Stephen Worley <sworley@cumulusnetworks.com>
2019-04-29 19:24:26 -04:00
David Lamparter
8390828dac Revert "lib: use DECLARE_SKIPLIST for timers instead of pqueue"
This reverts commit 7c198e4e1a.
2019-04-29 21:18:55 +02:00
David Lamparter
7629b6b79c Revert "lib: remove pqueue_*"
This reverts commit 798ac49d06.
2019-04-29 21:18:48 +02:00
Mark Stapp
e07daf5f99
Merge pull request #4216 from donaldsharp/nhg_sharpd_fixup
vtysh: Fixup exit nexthop-group to include sharpd
2019-04-29 14:09:50 -04:00
Faicker Mo
faf6559a00 bpgd: Add the end of newline of show bgp table json output
Signed-off-by: Faicker Mo <faicker.mo@ucloud.cn>
2019-04-29 17:28:42 +08:00
David Lamparter
9f9e9ef825
Merge pull request #4159 from sworleys/WQ-ErrFunc-Fix
lib: Fix workqueue error function callback
2019-04-28 16:19:55 +02:00
David Lamparter
a297301e89 lib: remove fifo implementation 2019-04-27 19:33:45 +02:00
David Lamparter
41397f2e62 bgpd: replace label pool fifo with DECLARE_LIST
Again, the FIFO_* stuff in lib/fifo.h is no different from a simple
unsorted list.  Just use DECLARE_LIST here so we can get rid of FIFO_*.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-04-27 19:33:45 +02:00
David Lamparter
a274fef868 bgpd: replace ADV_FIFO with DECLARE_LIST
The FIFO_* stuff in lib/fifo.h is no different from a simple unsorted
list.  Just use DECLARE_LIST here so we can get rid of FIFO_*.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-04-27 19:33:45 +02:00
David Lamparter
4bef0ec4fb isisd: replace dict_* with DECLARE_RBTREE
Historically, isisd has been carrying around its own red-black tree to
manage its LSP DB in.  This replaces that with the newly-added
DECLARE_RBTREE_*.  This allows completely removing the dict_* code.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-04-27 19:33:45 +02:00
David Lamparter
798ac49d06 lib: remove pqueue_*
All users of the pqueue_* implementations have been migrated to use
TYPEDSKIP_* skiplists.  Remove.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-04-27 19:33:45 +02:00
David Lamparter
c971918aec ospfd: replace pqueue_* with DECLARE_SKIPLIST
This replaces the SPF pqueue_* with a DECLARE_SKIPLIST_* skiplist.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-04-27 19:33:45 +02:00
David Lamparter
4ab0496e38 ospf6d: replace pqueue_* with DECLARE_SKIPLIST
As the previous commit, this replaces ospf6d's pqueue_* usage in SPF
calculations with a DECLARE_SKIPLIST_* skiplist.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-04-27 19:33:45 +02:00
David Lamparter
7c198e4e1a lib: use DECLARE_SKIPLIST for timers instead of pqueue
Replaces the use of pqueue_* for the thread_master's timer list with an
instance of DECLARE_SKIPLIST_*.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-04-27 19:33:45 +02:00
David Lamparter
c284542b66 lib: use DECLARE_LIST for thread_list
Replaces the open-coded thread_list with a DECLARE_LIST instantiation.
Some function prototypes are actually identical to what was previously
open-coded.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-04-27 19:33:45 +02:00
David Lamparter
679b1649cb lib: use DECLARE_HASH for qobj hash
This changes the qobj node ID hash to use the new typed hash instead of
the old hash_* code.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-04-27 19:33:45 +02:00
David Lamparter
992f9967db tests: exercise the typesafe list wrappers
Since all of these list implementations provide almost the same API, we
can run and validate them against the same test code.  9 tests for the
price of one!

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-04-27 19:33:45 +02:00
David Lamparter
737d6e0956 doc: add developer docs for type-safe lists
Signed-off-by: David Lamparter <equinox@diac24.net>
2019-04-27 19:33:45 +02:00
David Lamparter
bcea0c0fde lib: atomlist & atomsort
These two are lock-free linked list implementations, the plain one is
primarily intended for queues while the sorted one is for general data
storage.

Signed-off-by: David Lamparter <equinox@diac24.net>
2019-04-27 19:33:39 +02:00
David Lamparter
80911bc26a lib: typesafe rb-tree
Typesafe red-black tree, built out of the OpenBSD implementation and the
macro soup layered on top.  API compatible with skiplists & simple
lists.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-04-27 18:22:38 +02:00
David Lamparter
abd71baa2e lib: typesafe lists, skiplist & hash
By the power of the C preprocessor, these macros provide type-safe
warppers for simple lists, skiplists and hash tables.  Also, by changing
the instantiation macro, it is easily possible to switch between
algorithms;  the code itself does not need to be changed since the API
is identical across all algorithms.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2019-04-27 18:20:35 +02:00
Donald Sharp
6873d66a26 vtysh: Fixup exit nexthop-group to include sharpd
The exit of the nexthop-group should know about sharpd

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-04-27 14:09:05 +00:00
Renato Westphal
ec2ac5f28a lib: add new gRPC-based northbound plugin
This is an experimental plugin for now. Full documentation will
come later.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-04-26 18:15:32 -03:00
Renato Westphal
83981138fe lib: introduce a read-write lock for northbound configurations
The upcoming gRPC-based northbound plugin will run on a separate
pthread, and it will need to have access to the running configuration
global variable.  Introduce a rw-lock to control concurrent access
to the running configuration. Add the lock inside the "nb_config"
structure so that it can be used to protect candidate configurations
as well (this might be necessary depending on the threading scheme
of future northbound plugins).

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-04-26 18:04:22 -03:00
Renato Westphal
364ad673c8 lib: add API to allow northbound clients to lock/unlock the running configuration
The ability to lock the running configuration to prevent other users
from changing it is a very important one. We already supported
the "configure exclusive" command but the lock was applied to
the CLI users only (other clients like ConfD could still commit
configuration transactions, ignoring the CLI lock). This commit
introduces a global lock for the running configuration that is
shared by all northbound clients, and provides a public API to
manipulate it. This way other northbound clients will also be able
to lock/unlock the running configuration if required (the upcoming
gRPC northbound plugin will have RPCs for that).

NOTE: this is a management-level lock for the running configuration,
not to be confused with low-level locks used to avoid data races.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2019-04-26 18:04:22 -03:00
Mark Stapp
86336f620f
Merge pull request #4209 from dslicenc/zebra-nexthop-update-flag
zebra: resolve issue with protocol route-map not applied properly
2019-04-26 14:33:19 -04:00
Don Slice
ade4a8868e zebra: resolve issue with protocol route-map not applied properly
Problem reported that route-maps applied to "ip protocol table bgp"
would not be invoked if the ip protocol table command was issued
after the bgp prefixes were installed.  Found that a recent change
improving how often nexthop_active_update runs missed causing this
filtering to be applied. This fix resolves that issue as well as
a couple of other places that were problematic with the recent
change.

Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2019-04-26 17:15:44 +00:00
Russ White
65c9079099
Merge pull request #4201 from Orange-OpenSource/SR-isis
Issue #4032: Add IS-IS-TE support per Area
2019-04-26 10:42:29 -04:00
Olivier Dugeon
004b0be97d isisd: Correct MPLS-TE CLI to new northbound API
Due to recent modification in northbound API, replace
yang_dnode_get_entry() call by nb_running_get_entry() call.

Signed-off-by: Olivier Dugeon <olivier.dugeon@orange.com>
2019-04-26 11:20:02 +02:00
Russ White
ee02d389ae
Merge pull request #4205 from donaldsharp/pim_more_flags
pimd: Add missing flags to json output
2019-04-25 18:56:22 -04:00
Russ White
76f5dc181b
Merge pull request #4204 from dslicenc/frr-reload-bfd-timers
tools: frr-reload.py stop bouncing peers on bfd timer change
2019-04-25 18:55:42 -04:00
Russ White
a34fd5b9f1
Merge pull request #4155 from pguibert6WIND/bfd_increase_config
bfdd: avoid having bfd config inherited from operation context
2019-04-25 18:48:35 -04:00
Russ White
8bc1eeff7d
Merge pull request #4145 from pguibert6WIND/bfd_converge_up
BFD speed convergence up
2019-04-25 18:44:50 -04:00
Russ White
798b3c3469
Merge pull request #4140 from ton31337/fix/do_not_send_notification_again_with_invalid_nlri
bgpd: Do not send UPDATE message with maximum-prefix
2019-04-25 18:43:10 -04:00
Russ White
50dd75dd1f
Merge pull request #4126 from karamalla0406/4113
zebra: L3VNI's are allowed to unconfigure from any VRF
2019-04-25 18:40:52 -04:00
Russ White
8ed9a5877e
Merge pull request #4200 from ton31337/fix/add_alias_for_force_next-hop
bgpd: Make sure `next-hop-self all` backward compatible with force
2019-04-25 18:22:31 -04:00
Mark Stapp
69b43ce1d0
Merge pull request #4203 from opensourcerouting/bfd-fix-src-port
bfdd: fix UDP source port range
2019-04-25 15:18:29 -04:00