Commit Graph

685 Commits

Author SHA1 Message Date
David Lamparter
8916953b53 build: fix a few python string escape warnings
When using a regex (or anything that uses `\?` escapes) in python, raw
strings (`r"content"`) should be used so python doesn't consume the
escapes itself.  Otherwise we get either broken behavior and/or
`SyntaxWarning: invalid escape sequence '\['`

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-07-23 10:23:50 -07:00
Russ White
5d43153c16
Merge pull request #16094 from opensourcerouting/pkgs-with-grpc
Add option to build pkg with grpc support
2024-07-02 07:36:50 -04:00
Quentin Young
10231d5b99 doc: reformat Sphinx conf.py files
Style checking is complaining about these, rightly so. Reformat.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2024-06-26 15:44:08 -04:00
Russ White
87c2f100e1
Merge pull request #16128 from LabNConsulting/aceelindem/ospf-ls-retrans-improve
ospfd: Improve OSPF neighbor retransmission list granularity and pacing
2024-06-24 07:17:27 -04:00
Acee Lindem
c494702929 ospfd: Improve OSPF neighbor retransmission list granularity and precision
The current OSPF neighbor retransmission operates on a single per-neighbor
periodic timer that sends all LSAs on the list when it expires.
Additionally, since it skips the first retransmission of received LSAs so
that at least the retransmission interval (resulting in a delay of between
the retransmission interval and twice the interval. In environments where
the links are lossy on P2MP networks with "delay-reflood" configured (which
relies on neighbor retransmission in partial meshs), the implementation
is sub-optimal (to say the least).

This commit reimplements OSPF neighbor retransmission as follows:

   1. A new data structure making use the application managed
      typesafe.h doubly linked list implements an OSPF LSA
      list where each node includes a timestamp.
   2. The existing neighbor LS retransmission LSDB data structure
      is augmented with a pointer to the list node on the LSA
      list to faciliate O(1) removal when the LSA is acknowledged.
   3. The neighbor LS retransmission timer is set to the expiration
      timer of the LSA at the top of the list.
   4. When the timer expires, LSAs are retransmitted that within
      the window of the current time and a small delta (50 milli-secs
      default). The LSAs that are retransmited are given an updated
      retransmission time and moved to the end of the LSA list.
   5. Configuration is added to set the "retransmission-window" to a
      value other than 50 milliseconds.
   6. Neighbor and interface LSA retransmission counters are added
      to provide insight into the lossiness of the links. However,
      these will increment quickly on non-fully meshed P2MP networks
      with "delay-reflood" configured.
   7. Added a topotest to exercise the implementation on a non-fully
      meshed P2MP network with "delay-reflood" configured. The
      alternative was to use existing mechanisms to instroduce loss
      but these seem less determistic in a topotest.

Signed-off-by: Acee Lindem <acee@lindem.com>
2024-06-20 15:31:07 +00:00
Martin Winter
a761db826c
redhat: Add option to build pkg with grpc support
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2024-06-20 12:14:56 +02:00
Martin Winter
17fdfe92ab
debian: Add option to build pkg with grpc support
Signed-off-by: Martin Winter <mwinter@opensourcerouting.org>
2024-06-20 12:14:48 +02:00
Donald Sharp
248bf31a4f doc: Document the usage of --enable-undefined-sanitizer
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-06-19 08:01:16 -04:00
Christian Hopps
491e608c55 doc: add some text on native message API and notif xpath array
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-06-07 05:50:10 -04:00
Christian Hopps
107e3a586d doc: add missing required newline in .rst formatting
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-05-26 22:13:21 +00:00
Vincent JARDIN
f30275d05b docs: libs install-prefix since cmake 3.21
use the new recommendation from cmake:
  --install-prefix <directory>
     New in version 3.21.

     Specify the installation directory, used by the
     CMAKE_INSTALL_PREFIX variable. Must be an
     absolute path.

reminder: the default path is /usr/local instead of /usr

Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-04-25 09:52:05 +02:00
Vincent JARDIN
b9161936af docs: sysrepo install-prefix since cmake 3.21
use the new recommendation from cmake:
  --install-prefix <directory>
     New in version 3.21.

     Specify the installation directory, used by the
     CMAKE_INSTALL_PREFIX variable. Must be an
     absolute path.

reminder: the default path is /usr/local instead of /usr

Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-04-25 09:52:05 +02:00
Vincent JARDIN
e779a5fd7e docs: libyang install-prefix since cmake 3.21
use the new recommendation from cmake:
  --install-prefix <directory>
     New in version 3.21.

     Specify the installation directory, used by the
     CMAKE_INSTALL_PREFIX variable. Must be an
     absolute path.

reminder: the default path is /usr/local instead of /usr

Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-04-25 09:52:05 +02:00
Mark Stapp
f8cab99727 doc: add doc about the zebra dataplane api version
Add a block to the dev doc about the dataplane api version.

Signed-off-by: Mark Stapp <mjs@cisco.com>
2024-04-09 08:59:13 -04:00
Jafar Al-Gharaibeh
d5f17cd51e
Merge pull request #15557 from idryzhov/remove-confd
*: remove confd plugin
2024-03-27 12:38:31 -05:00
Christian Hopps
043a4183c2 grpc: fix grpc for various failures
lib: don't define a `fallthrough` in c++ to avoid conflict with protobuf c++

check: add link libs required by some versions of grpc++ or it's dependent
linked libs

tests: don't fail the test due to known at exit memleaks
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-03-21 15:57:01 +00:00
Russ White
e2d63567ec
Merge pull request #15565 from LabNConsulting/chopps/code-cover
tests: enable code coverage reporting with topotests
2024-03-19 17:19:45 -04:00
Christian Hopps
71368f9e06 tests: enable code coverage reporting with topotests
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-03-17 04:53:13 -04:00
Igor Ryzhov
84a00a47b8 *: remove confd plugin
ConfD is not supported anymore and its use is discouraged by developers:
https://discuss.tail-f.com/t/confd-premium-no-longer-available-future-of-confd/4552/6

Remove the code and all mentions of ConfD from the documentation.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-03-15 00:58:10 +02:00
Donald Sharp
894cb4f689 bgpd: When using dev build add pointer information to %pBD
When building FRR with `--enable-dev-build`.  Add a bit of
code to include the pointer value as part of the output.
Helps with tracking down issues and let's us see more data
when using the dev build option.

New output:

2024/03/08 19:48:56 BGP: [V0J1J-W5RHA] 11.0.20.1/32(0x5759ddf8d7c0) for 11.0.20.1/32

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-14 09:45:09 +00:00
David Lamparter
02af04f73d doc: update re. ISO C23 printf changes
The new `%w99d` fixed-width modifier still needs work in `frr-format`,
which unfortunately is not as trivial as `%b` was.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-03-10 15:29:17 +01:00
Donald Sharp
852a74807f doc, tools: Remove ARRAY_SIZE check
checkpatch.pl wants you to use ARRAY_SIZE in a kernel
header file.  We don't have access to this kernel header
file for normal compilation.  I'm just going to remove it.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-03-04 11:03:46 -05:00
Donatas Abraitis
8b73f011d5 doc: Update dates in release reference table
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-02-27 14:54:16 +02:00
Donatas Abraitis
ce334222ae doc: Add mgmtd pytest marker into documentation
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-02-17 11:24:29 +02:00
Christian Hopps
6374970cb8 doc: docker: update with new more strict protobuf requirements
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-02-12 06:48:12 -05:00
Vincent JARDIN
14fc0782d4 mgmtd: ripng, libs fully converted
While checking the code, we can notice that they are already converted.

Suggested-by: Igor Ryzhov <iryzhov@nfware.com>
Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-02-09 19:23:01 +01:00
Donald Sharp
f28447e352
Merge pull request #15283 from okda-networks/doc-update
doc: sysrepo plugin doc update with test commands
2024-02-06 11:42:02 -05:00
Donald Sharp
c1e2086930 doc: Add some documentation around a new pthread call
Not necessarily the correct place for this but there
is no other place and it needs to be called out and I
would rather have some documentation in place.  Long
term I would like to add a bunch of frr_pthread documentation
but at this point in time it's not there.  We can
re-arrange when that happens.

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
2024-02-05 14:51:55 -05:00
Amjad Daraiseh
70fba89306 doc: sysrepo plugin doc update with tested commands
Signed-off-by: Amjad Daraiseh <adaraiseh@okdanetworks.com>
2024-02-02 05:41:04 -05:00
Igor Ryzhov
72949f5f94
Merge pull request #15251 from qlyoung/fix-doc-nbcli-numlist
doc: fix misformatted list in nbapi docs
2024-01-31 15:06:25 +02:00
Christian Hopps
cb3242f697 tests: add YANG notification test
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-30 14:54:47 -05:00
Quentin Young
5b4a3d3af9 doc: update [no] recommendation
Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2024-01-30 12:16:01 -05:00
Quentin Young
f9ed1c9c30 doc: fix misformatted list in nbapi docs
Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2024-01-29 09:28:32 -08:00
Donald Sharp
259e3d4dac
Merge pull request #15243 from opensourcerouting/autoconf-dir-mess
*: fix a pile of directory and/or state retention related issues
2024-01-28 14:30:28 -05:00
David Lamparter
444bc5e237 build: update packaging & docs for dir changes
`--sysconfdir` and `--localstatedir` now align with general autoconf
practices.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2024-01-27 19:01:19 +01:00
Christian Hopps
cdfff3e5b5 doc: cleanup the structure a bit
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-27 05:03:57 -05:00
Christian Hopps
e2a9eb908f doc: cleanup auto-converted "list" style mistake
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-27 05:03:51 -05:00
Christian Hopps
f7594b55c2 doc: updates to mgmtd conversion documentation
Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-26 12:34:23 -05:00
Vincent Jardin
4654995915 doc: typo, fix end of line
Signed-off-by: Vincent Jardin <vjardin@free.fr>
2024-01-15 22:51:09 +01:00
Christian Hopps
a9dc7e9cc0
doc: mgmtd: update mgmtd conversion doc to be current.
Also change `be_client_xpaths` to `be_client_config_xpaths` referred in the doc
to make much clearer it's use (since there's a separate `be_client_oper_xpaths`.

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-13 14:26:55 +00:00
Christian Hopps
20d0d475cb
Merge pull request #14542 from idryzhov/nb-op-cb-split
Add more northbound operation types
2024-01-12 06:07:57 -05:00
Donatas Abraitis
0f5a79af96
Merge pull request #15136 from idryzhov/ignore-cbs
lib, mgmtd: rename ignore_cbs to ignore_cfg_cbs
2024-01-12 11:56:59 +02:00
Igor Ryzhov
34721972ba lib, mgmtd: rename ignore_cbs to ignore_cfg_cbs
Setting this variable to true makes NB ignore only configuration-related
callbacks. CLI-related callbacks are still loaded and executed, so
rename the variable to make it clearer.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-11 23:47:48 +02:00
Igor Ryzhov
3c2598a26f mgmt, lib: differentiate DELETE and REMOVE operations
Currently, there's a single operation type which doesn't return error
if the object doesn't exists. To be compatible with NETCONF/RESTCONF,
we should support differentiate between DELETE (fails when object
doesn't exist) and REMOVE (doesn't fail if the object doesn't exist).

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2024-01-11 15:06:53 +02:00
Donatas Abraitis
79b992890f doc: Fix documentation warning on the required version of libyang
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-01-11 09:23:41 +02:00
Donatas Abraitis
d3177d9f08 doc: Change the link to libyang for 2.1.x
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-01-11 09:22:54 +02:00
Donald Sharp
956b6153fe
Merge pull request #15106 from opensourcerouting/fix/rename_thread_cli
vtysh: Add `show event ...` commands
2024-01-08 13:51:36 -05:00
Donatas Abraitis
7e6b4f7990 doc: Rename Thread to Event in events example
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-01-07 14:43:38 +02:00
Donatas Abraitis
8c382a675e doc: Rename show thread ... to show event ...
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2024-01-07 14:14:56 +02:00
Christian Hopps
db3ac9d4f3 build: require libyang 2.1.128
Update building docs to reflect this as well.

Signed-off-by: Christian Hopps <chopps@labn.net>
2024-01-06 06:55:04 -05:00