Commit Graph

25953 Commits

Author SHA1 Message Date
Russ White
effd4c7bdd
Merge pull request #9779 from donaldsharp/gr_repeated
Some GR fixes
2021-10-12 11:00:44 -04:00
Russ White
c5708d0b98
Merge pull request #9781 from opensourcerouting/ospfd-gr-dr-fix
ospfd: preserve DR status across graceful restarts
2021-10-12 10:58:39 -04:00
Renato Westphal
d7374bd3b1
Merge pull request #9788 from idryzhov/ospf6-clear-interface-vrf
ospf6d: add missing vrf parameter to "clear ipv6 ospf6 interface"
2021-10-11 12:19:09 -03:00
Mark Stapp
e2c3eaddd5
Merge pull request #9789 from idryzhov/if-ll-type
lib: set type for newly created interfaces
2021-10-11 08:57:26 -04:00
Donatas Abraitis
b6641f01f4
Merge pull request #9780 from idryzhov/bgp-local-pointer
bgpd: don't return pointer to a local variable
2021-10-11 12:13:09 +03:00
Igor Ryzhov
ad7e12b0d9 ospf6d: add missing vrf parameter to "clear ipv6 ospf6 interface"
Currently, it's not possible to run this command in any VRF other than default.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-10-09 02:54:10 +03:00
Igor Ryzhov
8975bbbdd6 lib: set type for newly created interfaces
Currently, the ll_type is set only in `netlink_interface` which is
executed only during startup. If the interface is created when the FRR
is already running, the type is not stored.

Fixes #1164.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-10-09 00:23:39 +03:00
Russ White
495047b526
Merge pull request #9760 from mobash-rasool/ospfv2-bug-fixes-02
ospfd: ospf nbr in full although mismatch in hello packet contents
2021-10-08 13:55:28 -04:00
Russ White
8274736a0d
Merge pull request #9764 from idryzhov/thread-add-local
*: don't pass pointers to a local variables to thread_add_*
2021-10-08 13:54:23 -04:00
Russ White
99497bc4ee
Merge pull request #9471 from pguibert6WIND/table_manager_alloc2
zebra: extend table manager per vrf, add vty configuration
2021-10-08 13:49:54 -04:00
Renato Westphal
10396dc55a tests: check for received Grace-LSAs on the OSPF GR topotests
Ensure GR helpers have received a Grace-LSA before killing the
ospfd/ospf6d process that is undergoing a graceful restart.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-10-08 14:38:27 -03:00
Donald Sharp
144908dc52
Merge pull request #9774 from idryzhov/bgp-show-crash
bgpd: fix crash when using "show bgp vrf all"
2021-10-08 12:38:08 -04:00
Donatas Abraitis
126f9ac563
Merge pull request #9693 from donaldsharp/bgp_address_removal
bgpd: When removing v6 address being used as a nexthop ensure peer is…
2021-10-08 17:41:59 +03:00
Renato Westphal
3e63092b83 ospfd: fix display of plain-text data on "show ... json" commands
Add a 'json' parameter to the 'show_opaque_info' callback definition,
and update all instances of that callback to not display plain-text
data when the user requested JSON data.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-10-08 10:03:01 -03:00
Renato Westphal
a792fa7b15 ospfd: display detailed information about opaque LSAs in JSON format
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-10-08 10:03:01 -03:00
Donald Sharp
6255aad0bc tests: Fix ospf[6]_gr_topo1 tests to work better under load
2 things:

a) Each test was setting up for graceful restart with calls to
`graceful-restart prepare ip[v6] ospf`, then sleeping for
3 or 5 seconds.  Then killing the ospf process.  Under heavy
load there is no guarantee that zebra has received/processed
this signal.  Write some code to ensure that this happens

b) Tests are issuing commands in this order:
   1) issue gr prepare command
   2) kill router
   3) <ensure routes were still installed in zebra>
   4) start router
   5) <ensure routes were stil installed in zebra>

Imagine that the system is under some load and there is
a small amount of time before step 5 happens.  In this
case ospf could have come up and started neighbor relations
and also started installing routes.  If zebra receives
a new route before step 5 is issued then the route could
be in a state where it is not installed, because it is
being sent to the kernel for installation.  This would
fail the test because it would only look 1 time.  This
is fixed by giving time on restart for the routes to
be in the installed state.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-08 08:35:16 -04:00
Renato Westphal
ab6edbfeef ospfd: preserve DR status across graceful restarts
RFC 3623 says:
 "If the restarting router determines that it was the Designated
 Router on a given segment prior to the restart, it elects
 itself as the Designated Router again.  The restarting router
 knows that it was the Designated Router if, while the
 associated interface is in Waiting state, a Hello packet is
 received from a neighbor listing the router as the Designated
 Router".

Implement that logic when processing Hello messages to ensure DR
interfaces will preserve their DR status across a graceful restart.

Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
2021-10-08 09:13:37 -03:00
Igor Ryzhov
95f473e0d2 bgpd: don't return pointer to a local variable
CID 1507651.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-10-08 14:51:15 +03:00
Igor Ryzhov
1c49e8138e bgpd: fix crash when using "show bgp vrf all"
Any command that uses `peer_lookup_in_view` crashes when "vrf all" is
used, because bgp is NULL in this case.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-10-08 11:42:13 +03:00
Igor Ryzhov
b1e27fbba4
Merge pull request #9727 from ton31337/feature/catch_struct_thread_xxx_against_NULL_coccinelle
bgpd: Don't set NULL for struct thread at bgp_dump_interval_func()
2021-10-08 11:40:07 +03:00
Donatas Abraitis
89748f2704
Merge pull request #9773 from idryzhov/bgp-show-prefix-filter-vrf
bgpd: add missing vrf/view parameter to one command
2021-10-08 08:52:37 +03:00
Igor Ryzhov
b105e0bc2b
Merge pull request #9756 from donaldsharp/unchecked 2021-10-08 01:08:03 +03:00
Quentin Young
032671d363
Merge pull request #9737 from idryzhov/yang-pattern 2021-10-07 14:29:07 -04:00
Donald Sharp
76ab1a9702 zebra: Display how long zebra is expected to wait for GR
When a client sends to zebra that GR mode is being turned
on.  The client also passes down the time zebra should hold
onto the routes.  Display this time with the output
of the `show zebra client` command as well.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-07 12:08:42 -04:00
Donald Sharp
cc3d834308 zebra: GR data was being printed 2 times for show zebra client
When issuing the `show zebra client` command data about
Graceful Restart state is being printed 2 times.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-07 12:06:00 -04:00
Igor Ryzhov
d8448735c8
Merge pull request #9735 from donaldsharp/watchfrr_netns
watchfrr: Allow an integrated config to work within a namespace
2021-10-07 18:39:51 +03:00
Igor Ryzhov
c6ff5b66e2
Merge pull request #9740 from caracall/forked-upstream/debug_ospf6
ospf6: add the ability of specifying router-id/area-id in no debug ospf6
2021-10-07 18:38:22 +03:00
Igor Ryzhov
d3120452c4 bgpd: add missing vrf/view parameter to one command
"show bgp neighbors PEER received prefix-filter" misses the argument.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-10-07 18:29:22 +03:00
David Lamparter
1c50c7243f
Merge pull request #9345 from mjstapp/fix_lib_zmq_free 2021-10-07 15:20:19 +02:00
Igor Ryzhov
7640e3c60b *: don't pass pointers to a local variables to thread_add_*
We should never pass pointers to local variables to thread_add_* family.
When an event is executed, the library writes into this pointer, which
means it writes into some random memory on a stack.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-10-07 16:01:03 +03:00
Donatas Abraitis
b7a88ee291
Merge pull request #9758 from idryzhov/resolver-thread
lib: fix incorrect thread management
2021-10-07 14:31:25 +03:00
Russ White
b1003f64b2
Merge pull request #9698 from idryzhov/cleanup-loopback-or-vrf
*: cleanup interface loopback/vrf check
2021-10-06 19:01:52 -04:00
Russ White
45ebf5f134
Merge pull request #9699 from manojvn/379032-dev
ospf6d: minor struct compare issues.
2021-10-06 19:00:39 -04:00
Russ White
ef11fb018f
Merge pull request #9738 from rgirada/ospfv3_crash
ospf6d: ospf6d is crashing upon receiving duplicated Grace LSA.
2021-10-06 18:58:09 -04:00
Mobashshera Rasool
874a549d51 ospfd: ospf nbr in full although mismatch in hello packet contents
Issue:
===================
OSPF neighbors are not going down even after 10 mins when
having a mismatch in hello and dead interval.
First neighbors are formed and then a mismatch in the interval
is created, it is observed that the neighbor is not going down.

Root Cause Analysis:
====================
The event HelloReceived defined in RFC 2328 was named as PacketReceived
and this event was scheduled whenever LS Update, LS Ack, LS Request,
DD description packet or Hello packet is received.
Although there is a mismatch in the Hello packet contents, the
event PacketReceived gets triggered due to LS Update received and the
dead timer gets reset and hence the neighbor was never going Down and
remains FULL.

Fix:
==================
As per RFC 2328, the HelloReceived needs to be triggered only when
valid OSPF Hello packet is received and not when other OSPF packets
are received. Modified the function name as well.

Signed-off-by: Mobashshera Rasool <mrasool@vmware.com>
2021-10-06 10:04:10 -07:00
Donald Sharp
a91f5417d8 watchfrr: Allow an integrated config to work within a namespace
Since watchfrr invokes vtysh to gather the show run output and
write the data, if we are operating inside of a namespace FRR
must also pass this in.

Yes. This seems hacky.  I don't fully understand why vtysh
is invoked this way.

New output:

sharpd@eva:~/frr3$ sudo vtysh -N one

Hello, this is FRRouting (version 8.1-dev).
Copyright 1996-2005 Kunihiro Ishiguro, et al.

eva# wr mem
Note: this version of vtysh never writes vtysh.conf
% Can't open configuration file /etc/frr/one/vtysh.conf due to 'No such file or directory'.
Building Configuration...
Integrated configuration saved to /etc/frr/one/frr.conf
[OK]
eva#

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-06 12:21:56 -04:00
David Lamparter
6ea3c091ed build: bump configure.ac to 8.2-dev
[needs to happen ASAP to make sure we're not building confusing
packages.]

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2021-10-06 18:20:52 +02:00
Igor Ryzhov
72618ba82a lib: fix incorrect thread management
The current code passes an address of a local variable to `thread_add_read`
which stores it into `thread->ref` by the lib. The next time the thread
callback is executed, the lib stores NULL into the `thread->ref` which
means it writes into some random memory on the stack.

To fix this, we should pass a pointer to the vector entry to the lib.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2021-10-06 19:13:12 +03:00
Manoj Naragund
bc465fb6cc ospf6d: code cleanup.
removal of some of the deadcode in ospf6d.

Signed-off-by: Manoj Naragund <mnaragund@vmware.com>
2021-10-06 08:54:47 -07:00
Renato Westphal
210a75e65d
Merge pull request #9755 from pguibert6WIND/isis_sr_doc
doc: fix show isis route prefix-sid command
2021-10-06 12:13:26 -03:00
Ahmad Caracalli
b25a110347 ospf6: add the ability of specifying router-id/area-id in no debug ospf6
Add the ability to specify the router-id/area-id when deleting the debug
ospf6 configuration.

The new commands are as follow:

no debug ospf6 border-routers router-id [A.B.C.D]
no debug ospf6 border-routers area-id [A.B.C.D]

Update the doc as well.

Signed-off-by: Ahmad Caracalli <ahmad.caracalli@6wind.com>
2021-10-06 15:46:19 +02:00
Donald Sharp
ac0ed50468 bgpd: Check return code for bgp_route_match_add
FRR uses bgp_route_match_add and checked the return
code in every place but one.  Fix so that the
return code is looked at and warned against

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-06 08:47:07 -04:00
Donald Sharp
16b398fa5c bgpd: Check return from generic_set_add
Coverity found a couple of spots where FRR was
ignoring the return code of generic_set_add.
Just follow the code pattern for the rest of
the usage in the code.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2021-10-06 08:47:07 -04:00
Philippe Guibert
f0009d5769 doc: fix show isis route prefix-sid command
This command was not documented, and deprecates the old one.

Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2021-10-06 13:27:12 +02:00
Donald Sharp
11ed589224
Merge pull request #9745 from opensourcerouting/bfd-ospf-topo-improv
topotests: improve bfd_ospf_topo1 test
2021-10-06 06:40:36 -04:00
Renato Westphal
3f220bc814
Merge pull request #9734 from donaldsharp/interface_startup
Interface startup
2021-10-06 01:03:08 -03:00
Renato Westphal
f118688120
Merge pull request #9724 from idryzhov/isis-unused-func
isisd: remove unused function declaration
2021-10-06 00:58:47 -03:00
Russ White
cf3a190ace
Merge pull request #9716 from rgirada/ospf_gr_nbr
ospfd: GR helper functionality change in helper exit
2021-10-05 19:28:40 -04:00
Russ White
334d9d259f
Merge pull request #9731 from ton31337/fix/thread_null_set
cleanup: struct thread = NULL
2021-10-05 19:27:23 -04:00
Russ White
6018f0424e
Merge pull request #9728 from donaldsharp/null_thread
Null thread
2021-10-05 19:26:00 -04:00