Commit Graph

16624 Commits

Author SHA1 Message Date
Donald Sharp
e15ed56cb1 zebra: Fix display of show ip import-check A.B.C.D
The 'show ip import-check A.B.C.D` code was generating
a /32 prefix for comparison.  Except import-check was
being used by bgp to track networks.  So they could
have received a /24( or anything the `network A.B.C.D/M`
statement specifies ).

Consequently when we do a `show ip import-check A.B.C.D`
we would never find the network but a `show ip import-check |
grep A.B.C.D` would find it.

Fix the exact comparison to a match.

For the `show ip nht A.B.C.D` case we are comparing
a /32 to a /32 so prefix_match will work still.
While a `show ip import-check A.B.C.D` will now show
the expected behavior as well.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-31 11:07:58 -04:00
Donald Sharp
d81463ea43 doc: Update documentation to reflect new sharp watch import changes
Update the documentation to reflect the reality on the ground.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-31 10:50:24 -04:00
Donald Sharp
1be0815df0 sharpd: Update 'sharp watch import` to allow prefix
Instead of defaulting the import-check to a /32
allow the tester to specify any prefix that they want
when doing an import-check.

Test:

donna.cumulusnetworks.com# sharp watch import
  A.B.C.D/M   The v4 prefix for import check to watch
  X:X::X:X/M  The v6 prefix to signal for watching
donna.cumulusnetworks.com# sharp watch import 4.5.6.0/24
donna.cumulusnetworks.com# show ip import-check
4.5.6.0
 resolved via kernel
 via 10.50.11.1, enp0s3
 Client list: sharp(fd 21)
donna.cumulusnetworks.com# sharp watch import 4:5:6::0/64
donna.cumulusnetworks.com# show ipv6 import-check
4:5:6::
 resolved via kernel
 fe80::cad7:19ff:fe0a:fdfd, via enp0s3
 fe80::ce37:abff:fe4f:a601, via enp0s3
 Client list: sharp(fd 21)
donna.cumulusnetworks.com# sharp watch nexthop
  A.B.C.D   The v4 address to signal for watching
  X:X::X:X  The v6 nexthop to signal for watching
donna.cumulusnetworks.com# sharp watch nexthop 4.5.6.7
donna.cumulusnetworks.com# sharp watch nexthop 4:5::6:7
donna.cumulusnetworks.com# show ip nht
4.5.6.7
 unresolved
 Client list: sharp(fd 21)
donna.cumulusnetworks.com# show ipv6 nht
4:5::6:7
 unresolved
 Client list: sharp(fd 21)

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-31 10:47:46 -04:00
Donatas Abraitis
55e8e8af21
Merge pull request #4735 from dslicenc/bgp-clear-interface
bgpd: solve invalid error message when clearing interface peer
2019-07-29 11:30:22 +03:00
Don Slice
8fa7d4447f bgpd: solve invalid error message when clearing interface peer
Problem reported that if "clear bgp swp1" is issued, an error
message is received saying the name or address is malformed. This
was because of a change in bgp_vty.c that removed the storing
and passing of the interface name for this command. Commit that
caused the problem was ac5dec7e88ce2f8cd2943bb61437046718fb34c2.

Ticket: CM-25737
Signed-off-by: Don Slice <dslice@cumulusnetworks.com>
2019-07-26 16:48:22 +00:00
Quentin Young
51e75ed228
Merge pull request #4730 from idryzhov/fix
lib: fix missing M:A:C to X:X:X:X:X:X changes
2019-07-25 11:57:07 -04:00
Igor Ryzhov
f65d330cbc lib: fix missing M:A:C to X:X:X:X:X:X changes
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2019-07-25 17:15:27 +03:00
Jafar Al-Gharaibeh
e72ce28e34
Merge pull request #4691 from donaldsharp/pim_upstream_ref
Pim upstream ref
2019-07-24 15:32:15 -05:00
Quentin Young
6879c08353
Merge pull request #4725 from idryzhov/master
vtysh: send "exit-vrf" command to staticd
2019-07-24 11:19:19 -04:00
Igor Ryzhov
b435fc2483 vtysh: send "exit-vrf" command to staticd
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2019-07-24 15:41:20 +03:00
Quentin Young
c5cdc2b8ea
Merge pull request #4708 from opensourcerouting/topotest-common-improvement
topotest: attempt to stabilize CI system
2019-07-23 16:47:10 -04:00
Rafael Zalamena
91c939dc12 topotest: improve common_config.py
Don't wait for `True` results when the return type is a string.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-07-23 10:28:56 -03:00
Rafael Zalamena
a6fd124a2a topotest: add new run_and_expect variant
The new `run_and_expect` variant - called `run_and_expect_type` - tests
the return value type of the test function and optionally the return
value.

Now we can implement tests from test functions that return different
return types.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-07-23 10:28:56 -03:00
Rafael Zalamena
3857e52f12 topotest: improve reliability of verify_rib
Attempt to run the function multiple times to make sure we got the
result we expected. This is a middle ground between big sleeps and short
test intervals.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-07-23 10:28:56 -03:00
Rafael Zalamena
c50435c1c2 topotest/bgp_l3vpn_to_bgp_vrf: stabilize test
Increase wait times between commands execution to help avoid bogus test
failures.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-07-23 10:28:56 -03:00
Rafael Zalamena
0f94985fdd topotest: adjust luCommand to accept wait_time
Allow users of `luCommand` to specify wait time between commands
execution and simplify the `wait` method implementation.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-07-23 10:28:20 -03:00
Rafael Zalamena
2a76b0a8e2 topotest: fix Lou's framework command wait
Fix two main issues:

  * Don't use float to figure out if we spent the time user asked;
  * Don't depend on system clock to find we reached the end of time;

The fix is basically pre caculating the amount of wait cycles we are
going to peform and use a counter.

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-07-23 10:26:15 -03:00
Martin Winter
dfd15ebfa6
Merge pull request #4699 from donaldsharp/tests_do_not_faile_me
Add more debugging to ci log files to figure out what is going on.
2019-07-22 18:55:26 +02:00
Donatas Abraitis
f1b9024dd5
Merge pull request #4688 from qlyoung/alpine-docker-rpki
docker: build alpine docker w/ rpki enabled
2019-07-19 22:21:29 +03:00
Mark Stapp
facbec892e
Merge pull request #4695 from donaldsharp/zebra_zapi_msgs
Zebra zapi msgs - improve debugs
2019-07-18 09:38:12 -04:00
Donald Sharp
02434c43a5 pimd: Always create upstream reference when adding channel oil
Modify the code to create an upstream reference whenever the code
creates an channel_oil via the pim_mroute.c code.  This code also
starts a keep alive timer to clean up the reference if we do
nothing with it after the normal time.

I've left alone the source->channel_oil creation because these
are kept and tracked independently already.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-18 07:56:37 -04:00
Donald Sharp
46dd6edb06 pimd: pim_upstream *always* creates a channel_oil
Modify code base so that pim_upstream *always* creates a channel_oil
and as such we do not need to create it later or play other games.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-18 07:56:37 -04:00
Donald Sharp
afb2f47031 pimd: Add pim_channel_oil_change_iif
Add a function that allows you to modify the channel oil's incoming
interface and to appropriately install/remove it from the kernel.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-18 07:54:04 -04:00
Donald Sharp
44d2a6775b Test: Add back a bit more debugging to see what is going on
All debug logging has been thrown to the floor in this loop.
Add it back in and additionally add a bit more debugging to
know what is going on.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-18 07:50:10 -04:00
Donald Sharp
a85de978b6
Merge pull request #4704 from mjstapp/fix_ip2str_const
lib: use const in ipaddr2str
2019-07-17 18:59:08 -04:00
Mark Stapp
24774285ed lib: use const in ipaddr2str
Use const more

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-07-17 16:59:41 -04:00
Mark Stapp
974c214ba9
Merge pull request #4680 from donaldsharp/test_longer
tests: Topotests are not giving sufficient time to propagate data
2019-07-17 13:34:51 -04:00
Donald Sharp
07bba5ab7a pbrd: Do not install nexthop group until we have nexthops
The creation of a nexthop group results in a callback with
just the nexthop group name.  At this point in time we
do not have any nexthop information so there is nothing to
install.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-16 20:41:01 -04:00
Donald Sharp
8ba70c4e51 zebra: Print out client who sent us bad data
A client was sending zebra a route with no nexthops!  Update the
error message to tell us *Which* daemon is doing this.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-16 20:31:22 -04:00
Donald Sharp
8f86bb067e zebra: Guard debug messages
A bunch of debug code has snuck in that is unguarded.
Fix this.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-16 20:30:55 -04:00
Russ White
a04686849f
Merge pull request #4685 from chiragshah6/ospf_vrf_dev
ospfd: no router ospf crash fix
2019-07-16 19:50:23 -04:00
Russ White
daba7c09be
Merge pull request #4669 from opensourcerouting/bfd-isis-northbound
isisd: migrate BFD command to northbound
2019-07-16 09:17:51 -04:00
Russ White
b34c6dff64
Merge pull request #4684 from donaldsharp/various_fixes
Various fixes
2019-07-16 09:14:30 -04:00
Jafar Al-Gharaibeh
5f7faeb041
Merge pull request #4635 from AnuradhaKaruppiah/evpn-pim-replay
pimd, zebra: request for replay of VxLAN SG entries on pimd startup
2019-07-15 15:40:12 -05:00
Mark Stapp
ad79beb1dd
Merge pull request #4687 from qlyoung/fix-test-ntop-strlen-assert
tests: remove strlen assert in inet_ntop tests
2019-07-15 15:25:09 -04:00
Quentin Young
f9035c5fec docker: build alpine docker w/ rpki enabled
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-07-15 17:39:43 +00:00
Quentin Young
2516237674 tests: remove strlen assert in inet_ntop tests
Some platform libc's like to render some v6 addresses as v4 mapped where
others render the same addresses as v6 with leading zeroes. Binary
equivalence checks pass but strlen checks sometimes fail here. Remove
assert causing the failure.

Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
2019-07-15 17:19:14 +00:00
Chirag Shah
c32eba04f3 ospfd: no router ospf crash fix
no router ospf triggers to cancel all threads
including read/write (receive/send packets) threads,
cleans up resources fd, message queue and data.

Last job of write (packet) thread invoked where the
ospf instance is referenced is not running nor
the socket fd valid.

Write thread callback should check if fd is valid and
ospf instance is running before proceeding to send a
message over socket.

Ticket:CM-20095
Testing Done:

Performed the multiple 'no router ospf' with the fix
in topology where the crash was seen.
Post fix the crash is not observed.

Signed-off-by: Chirag Shah <chirag@cumulusnetworks.com>
2019-07-15 09:55:54 -07:00
Donald Sharp
3741c4ba6f vtysh: Make nexthop-group submode line unique
Now that multiple daemons understand nexthop-groups, we need
to ensure that vtysh doesn't double print out the individual
nexthops that are part of a nexthop-group.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-13 15:42:41 -04:00
Donald Sharp
8f08b1cc31 zebra: Modify way we query for inteface speed
Initial commit of understanding interface speed changes
on startup was this commit:

dc7b3caefb

Effectively we had encountered situations on system startup
where the interface speed for a device was not properly setup
when zebra learns about the interface ( Imagine a bond being
brought up and the controlling software creating the bond
is not fast given system load, the bond's speed changes
upwards for each interface added ).

The initial workup on this was to allow a 15 second window
and then just reread the interface speed.  We've since noticed
that under heavy system load on startup this is not always sufficient.

So modify the code to wait the 15 seconds and then check the interfaces
speed.  If the interfaces speed is still MAX_UINT32T or it has changed
let's wait a bit longer and try again.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-13 15:42:41 -04:00
Jafar Al-Gharaibeh
96e109772d
Merge pull request #4658 from chiragshah6/ospf_vrf_dev
ospfd: fix various show ip ospf neighbor json commands
2019-07-12 17:30:42 -05:00
Rafael Zalamena
8222b997c7 isisd: improvements based on feedback
* Remove sanity checks that are already done by northbound;
  * Show error message on circuit absence;
  * Use a better idiom for the configuration display code;

Signed-off-by: Rafael Zalamena <rzalamena@opensourcerouting.org>
2019-07-12 17:24:17 -03:00
Renato Westphal
07a4ddf2b6
Merge pull request #4660 from manuhalo/label_manager_fixes
Label manager improvements + refactor
2019-07-12 17:09:33 -03:00
Renato Westphal
6b0be3df1f
Merge pull request #4664 from sworleys/Zvrf-Debug-Guard
zebra: Add a conditional guard if zvrf lookup fail
2019-07-12 16:40:50 -03:00
Renato Westphal
02a71d1015
Merge pull request #4325 from sworleys/Order-Recv-Nexthops
zebra: Modify zebra to order nexthops received
2019-07-12 15:25:37 -03:00
Quentin Young
11dbb76eeb
Merge pull request #4674 from mjstapp/fix_mono_ctime
lib,zebra: avoid use of ctime in monotime api
2019-07-11 16:05:03 -04:00
Donald Sharp
1d90adee9d tests: Topotests are not giving sufficient time to propagate data
A bunch of our current tests setup data and redistribute
it across some bgp connections and then test for it
being there.  A delay of 2 seconds that was initially
there to ensure that the data has propagated does not
actually work all the time when you have a loaded
virtualized environment.

Make the sleep 10 seconds.  I agree this is not the ideal
solution but I would rather get the damn tests up and running
again.

Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
2019-07-11 14:40:31 -04:00
Sri Mohana Singamsetty
84f4f72638
Merge pull request #4670 from chiragshah6/evpn_dev1
bgpd: fix show bgp l2vpn evpn route json
2019-07-10 13:39:26 -07:00
Donald Sharp
fa68323811
Merge pull request #4675 from mgsmith1000/bgp_restart_timer_inbound
bgpd: honor max prefix timer on inbound sessions
2019-07-10 16:27:24 -04:00
Mark Stapp
c9049b920f lib,zebra: avoid use of ctime in monotime api
Replace a call to ctime with ctime_r in the monotime module;
update the callers of the monotime api.

Signed-off-by: Mark Stapp <mjs@voltanet.io>
2019-07-10 10:16:59 -04:00