Commit Graph

9584 Commits

Author SHA1 Message Date
vivek
c65f709ec6 zebra: Refresh remote neighbors when they go stale
If we get an ageout notification from the kernel for EVPN-installed
neighbors, ensure that they are readded. Otherwise, while entries in
STALE state are usable, based on other kernel parameters they can
get deleted and adding them back only at delete can have other
undesirable performance consequences.

Note: This is the current Linux kernel behavior (to ageout EVPN
installed neighbors).

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
Reviewed-by:   Mitesh Kanjariya <mitesh@cumulusnetworks.com>

Ticket: CM-15623, CM-17490
Reviewed By: CCR-6586
Testing Done: Manual, evpn-min
2017-08-17 02:53:29 -07:00
vivek
af026ae40e zebra: Fix VxLAN interface add-del to bridge
Ensure that removal and addition of VxLAN interface from/to bridge is
handled correctly.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2017-08-17 02:48:41 -07:00
vivek
b5ebdc9ba5 zebra: Handle MACIP requests when in transient conditions
When multiple events are happening, it is possible that remote
MACIP or other requests may be received when an interface is down
or removed from a bridge. Handle this correctly.

Signed-off-by: Vivek Venkatraman <vivek@cumulusnetworks.com>
2017-08-17 02:31:45 -07:00
Mitesh Kanjariya
dff8f48da3 bgpd: Add advertsie-all-vni in show bgp neighbor
Ticket: CM-17249
Review: CCR-6558
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-17 02:05:53 -07:00
Mitesh Kanjariya
d77114b704 bgpd: display hostname capabilities as advertised and received
Ticket: CM-17250
Review: CCR-6567
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-17 01:46:16 -07:00
Mitesh Kanjariya
c6462ff4b3 bgpd: Fix json output
Ticket: CM-17259
Review: CCR-6512
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-17 01:42:53 -07:00
Mitesh Kanjariya
9c92b5f768 bgpd: Json support for evpn commands
Ticket:CM-16241
Reviewed By:CCR-6451
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-17 01:29:07 -07:00
Mitesh Kanjariya
acf716660f bgpd: show command for martian nexthop db
Ticket:CM-17271/CM-16911
Reviewed By: ccr-6542
Testing Done: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-16 23:22:49 -07:00
Mitesh Kanjariya
db0e1937ca bgpd: Ignore EVPN routes from CLAG peer when VNI comes up
There are two parts to this commit:
1. create a database of self tunnel-ip for used in martian nexthop check
In a CLAG setup, the tunnel-ip (VNI UP) notification comes before the clag-anycast-ip comes up in the system.
This was causing our self next hop check to fail and we were instaling routes with martian nexthop in zebra.
We need to keep this info in a seperate database for all local tunnel-ip.
This database will be used in parallel with the self next hop database to martian nexthop checks.
2. When a local VNI comes up, update the tunnel-ip database and filter routes in the RD table if necessary
In case of EVPN we might receive routes from clag peer before the clag-anycast ip and VNI is up on the system.
We will store the routes in the RD table for later processing.
When VNI comes UP, we loop thorugh all the routes and install them in zebra if required.
However, we were missing the martian nexthop check in this code path.
From now onwards, when a VNI comes UP,
we will first update the tunnel-ip database
We then loop through all the routes in RD table and apply martian next hop filter if required.

Things not covered in this commit but are required:

This processing is needed in general when an address becomes a connected address.
We need to loop through all the routes in BGP and apply martian nexthop filter if necessary.
This will be taken care in a seperate bug

Ticket:CM-17271/CM-16911
Reviewed By: ccr-6542
Testing Done: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-16 23:19:58 -07:00
Mitesh Kanjariya
0a97666de7 zebra: Use neigh_list instead of neigh_refcnt for zebra_mac and zebra_neigh binding
Ticket: CM-17500
Review: CCR-6584
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-16 18:56:15 -07:00
Mitesh Kanjariya
23341a0584 Zebra: replace mac entry in kernel when it moves from local to remote
Until now, we had to delete the local mac entries when a mac moved from local to remote,
with the new kernel patch that is no longer necessary.

Ticket:CM-16094
Reviewed By:CCR-6470
Testing Done: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-16 17:30:46 -07:00
Mitesh Kanjariya
d7d970105e bgpd: notify zebra if advertise-gw-macip is enabled when VNI comes up
Ticket: CM-17281
Review: CCR-6517
Testing: Manual

Signed-off-by: Mitesh Kanjariya <mitesh@cumulusnetworks.com>
2017-08-16 17:29:51 -07:00
Daniel Walton
596074af62 vtysh: vtysh -f FOO should exit non-zero if it hits an error
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>

Today if we hit an error while apply the contents of file FOO that error
does not bubble up to a non-zero exit.
2017-08-16 20:22:59 +00:00
Daniel Walton
b4e84315e4 ospfd: "show ip ospf neighbor" options not passed
Signed-off-by: Daniel Walton <dwalton@cumulusnetworks.com>
2017-08-16 18:40:12 +00:00
David Lamparter
74218b297f Merge pull request #989 from qlyoung/if-area-df
ospfd: remember area-id format for ifaces
2017-08-16 19:28:09 +02:00
David Lamparter
c9974c7995 Merge pull request #984 from donaldsharp/debugging
Some Small Pim Issues
2017-08-16 19:18:31 +02:00
Russ White
863f4bf143 Merge pull request #990 from donaldsharp/eigrp_cleanup
Eigrp cleanup
2017-08-16 13:16:54 -04:00
David Lamparter
1208e7bca2 Merge pull request #979 from donaldsharp/ifchannel_fix
pimd: Ensure cleanup of S,G on ifchannel failure to create
2017-08-16 19:16:46 +02:00
David Lamparter
ad5c17afcd Merge pull request #972 from chiragshah6/mdev
Pim Bfd related changes
2017-08-16 19:14:08 +02:00
Quentin Young
5ed0add5e4
ospfd: remember area-id format for ifaces
Display dotted quad or decimal back in the config depending on what the
user enters.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-08-16 11:18:11 -04:00
Martin Winter
fb13970d31 Merge pull request #985 from chiragshah6/mdev2
ospfd: Fix ospfd crash in free_nexthop
2017-08-15 20:30:23 -07:00
Donald Sharp
9a8d52a495 eigrpd: Cleanup eigrp_get_fsm_event
Make this function a bit more legible

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 22:38:17 -04:00
Donald Sharp
748a2ba408 eigrpd: Make eigrp_get_fsm_event use metric changed
Refactor eigrp_get_fsm_event a tiny bit to let all
the states get the new metric.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 22:38:17 -04:00
Donald Sharp
9294886309 eigrpd: cleanup eigrp_topology_update_distance
Cleanup eigrp_topology_update_distance to
return an enum of whether or not the metric
has changed or not.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 22:38:17 -04:00
Donald Sharp
47bf9e213a pimd: Add 'show ip msdp vrf all sa ...' command
Allow the ability to iterate over all vrfs.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 16:37:13 -04:00
Donald Sharp
0dac59e943 Merge pull request #983 from opensourcerouting/vtysh-watchfrr-no-conf
vtysh: don't collect config from watchfrr
2017-08-15 11:37:15 -04:00
Quentin Young
001169e172 Merge pull request #982 from opensourcerouting/buildfix-parallel-tests-clippy
tests: fix clippy include paths / double-build
2017-08-15 11:28:37 -04:00
Chirag Shah
cd4af52574 ospfd: Fix ospfd crash in free_nexthop
Fix ANVL-OSPF-5.1 reported ospfd crash.

vertex_nexthop_free was added as valgrind reported potential
memory leak, but in some cases nexthop would not be available
freed.
The actual nexthop free is part of ospf_canonical_nexthops_free(),
upon trying to free, qfree checks mtype count becomes 0 and asserts.
Removing vertex_nexthop_free() from ospf_spf_flush_parents().

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2017-08-15 07:47:08 -07:00
Donald Sharp
15507b63e6 pimd: Rename duplicate JSON key
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 10:31:09 -04:00
Donald Sharp
8dbdb215b3 pimd: Add more vrf debugging to pim_upstream.c
Cleanup a few missed spots of debugging to know
what vrf we are talking about.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 10:17:33 -04:00
Donald Sharp
2243bb17bd pimd: Allow user to specify ip address for 'no ip pim use-source'
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-15 10:16:51 -04:00
David Lamparter
0ed9196b0c redhat: ship IRDP module
No point in configuring IRDP (it's always available on Linux), just ship
the module and let the user decide whether to enable it by way of module
loading.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 14:19:16 +02:00
David Lamparter
a23587faac vtysh: don't collect config from watchfrr
This results in some hardcoded watchfrr logging config ending up in the
integrated config otherwise.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 13:43:50 +02:00
David Lamparter
e2799b1d67 Merge pull request #935 from donaldsharp/kernel_metric
zebra: Pay attention to metric from kernel
2017-08-15 13:42:04 +02:00
Donald Sharp
6e5d1bf498 Merge pull request #976 from lucize/lededoc
doc: add LEDE/OpenWRT build instructions
2017-08-15 07:30:54 -04:00
David Lamparter
8dc1f7fc88 zebra: irdp: convert into module
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 13:26:55 +02:00
David Lamparter
ead4ee99ac zebra: irdp: manage separate IRDP struct
This allocates the per-interface IRDP data as needed; so the pointer in
zebra_if is now really opaque.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 13:26:03 +02:00
David Lamparter
2eb27eecf0 zebra: start detangling rtadv & irdp
Replace some cross-dependencies with hooks & move bits to where they
belong.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 13:25:44 +02:00
David Lamparter
ce19a04aea lib: replace if_add_hook with hook_* logic
This allows modules to register their own additional hooks on interface
creation/deletion.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 13:25:44 +02:00
David Lamparter
2a6a7a656d doc: sample code-doc in .rst+sphinx
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 13:25:44 +02:00
David Lamparter
0395137477 *: centralize some exit cleanup into libfrr
Start creating a counterpart to frr_init and frr_late_init.
Unfortunately, some daemons don't do any exit handling, this doesn't
change that just yet.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 13:25:44 +02:00
David Lamparter
08c4c73be6 lib: hooks: support priority ordering & reversing
Allow registering callbacks with a priority value used to order them
relative to each other.  Plus a reverse variant that just flips the
direction on priorities.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 13:25:41 +02:00
David Lamparter
279f5e0934 tests: fix clippy include paths / double-build
A mismatch between the make rule and the include path causes dependency
tracking to try to build the clippy.c file twice (at the same time),
which results in spurious build failures.

Fixes: #971
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2017-08-15 11:21:07 +02:00
David Lamparter
865f5bb8cb Merge pull request #978 from devicenull/master
bgpd: Check for per-peer outbound configuration, in addition to the peer-group config
2017-08-15 11:12:15 +02:00
David Lamparter
bf30e5eaf2 Merge pull request #948 from qlyoung/fix-set-ip-next-hop-peer-address
lib, bgpd: fix `set ip next-hop peer-address`
2017-08-15 11:10:01 +02:00
David Lamparter
24fb3b1873 Merge pull request #934 from qlyoung/mac-parser
lib: add CLI token for 48-bit mac addresses
2017-08-15 11:09:15 +02:00
Donald Sharp
c6f94e1971 pimd: Ensure cleanup of S,G on ifchannel failure to create
There exists a path for ifchannel creation that if a S,G
fails to create and a corresponding *,G ifchannel is there,
the S,G will be deleted but we were leaving the S,G in the
*,G ifchannel sources list.  Remove from the list in this case

Ticket: CM-17605
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2017-08-14 20:16:48 -04:00
Brian Rak
a1e91fee4c bgpd: Check for per-peer outbound configuration, in addition to the peer-group config
When displaying the config, bgpd only checked for the existance of a peer-group prefix-list before
deciding to not display the outbound prefix-list.  This commit updates the outbound prefix-list
logic to match the inbound.
2017-08-14 17:25:12 -04:00
Lucian Cristian
1c58ed47bf doc: add LEDE/OpenWRT build instructions
Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
2017-08-14 22:22:06 +03:00
Quentin Young
473196f613
lib, python: add M:A:C support for clippy
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2017-08-14 11:30:08 -04:00