Commit Graph

33429 Commits

Author SHA1 Message Date
Adriano Marto Reis
108adcddbb tests: Ajusting the test to the new OSPF6 behaviour
Now OSPF6 shares the /128 prefix by default. Adjusting the expected
number of next hops according to that.

Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com>
2023-10-10 12:09:07 +10:00
Adriano Marto Reis
a5677ca1e0 tests: OSPF6 point-to-multipoint topotest
* Check if FRR is running
* Check if OSPFv3 converges
* Check OSPFv3 Routing Tables
* Check Linux Kernel Routing Table

Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com>
2023-10-10 08:10:49 +10:00
Adriano Marto Reis
25dc0c1290 ospf6d: Including checksum in OSPF6 Hello messages
Including checksum in OSPF6 Hello messages.

Signed-off-by: Adriano Marto Reis <adrianomarto@gmail.com>
2023-10-10 08:10:37 +10:00
David Lamparter
22efdbdd0f doc: update user docs for OSPFv3 PtMP changes
Update & add docs for all the stuff in the previous 10-ish commits.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 08:10:10 +10:00
David Lamparter
dfe3af42d2 ospf6d: connected prefix toggle for PtP/PtMP
To announce connected prefixes, or not to announce connected prefixes,
that is the question...

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 08:09:42 +10:00
David Lamparter
5c0eed0c85 ospf6d: add point-to-multipoint interface mode
This adds the PtMP interface type, which is effectively identical to PtP
except that all the database flooding & updates are unicast.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 08:08:20 +10:00
David Lamparter
0c58d83688 ospf6d: support unicast hellos on PtP/PtMP
Some lower layers still don't handle multicast correctly (or
efficiently.)  Add option to send unicast hellos on explicitly
configured neighbors for PtP/PtMP.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 08:07:52 +10:00
David Lamparter
3d1482a945 ospf6d: option to disable multicast hellos
With the configured neighbor list, unicast hellos can be sent.  Allow
disabling multicast hellos for that scenario.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 08:00:08 +10:00
David Lamparter
f5917bae53 ospf6d: option to restrict PtP neighbor list
This adds a knob to refuse forming adjacencies with neighbors not listed
in the config.  Only works on PtP/PtMP of course, otherwise the DR/BDR
machinery gets broken.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 07:58:21 +10:00
David Lamparter
65e955890c ospf6d: allow configuring PtP neighbors & cost
Add a list of configured neighbors for each interface.  Only stores cost
(and "existence") for now.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 07:57:43 +10:00
David Lamparter
73940e52f2 ospf6d: factor out link-local addr change
For PtMP the cost may need to be recalculated when the LL addr changes
(since neighbors are configured by LL addr and a different entry with a
different cost may match.)

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 07:54:56 +10:00
David Lamparter
6fdd69ed07 ospf6d: advertise local addresses with LA bit
Both for virtual links and correct PtMP operation, advertising local
addresses as Intra-Prefix with LA set is a prerequisite.  Add the
appropriate entries.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 07:54:39 +10:00
David Lamparter
829f3a0bd5 lib: remove unused connected_add prototype
This function is not implemented anywhere.  Not sure it ever existed.

Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
2023-10-10 07:54:15 +10:00
Donald Sharp
3651803221
Merge pull request #14510 from opensourcerouting/fix/coccinelle_issues
A couple minor fixes
2023-09-29 09:27:44 -04:00
Donatas Abraitis
969e3a6ccf
Merge pull request #12409 from FRIDM636/master
zebra: delete label chunk upon release
2023-09-29 12:54:43 +03:00
Donatas Abraitis
02d8b80ce4 *: Do not cast to the same type as the destination is
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-29 10:24:16 +03:00
fmihoub6WIND
a4b3f03108 zebra: delete label chunk upon release
In zebra/label_manager.c the releasing of the label chunk is done by
disowning the chunk to the system. The presence of this system label
chunk will cause label assignment to fail for this use case example:

label chunk ospf: 300-320
label chunk system: 510-520
label chunk isis: 1200-1300

Then we try to allocate the chunk 500-530, we get this error:
  "Allocation of mpls label chunk [500/530] failed"

The error is raised when the below condition is true:
    /* if chunk is used, cannot honor request */
      if (lmc->proto != NO_PROTO)
	      return NULL;

Delete the label chunk instead of disowning it when the label releasing
is done.

Signed-off-by: Farid MIHOUB <farid.mihoub@6wind.com>
2023-09-29 08:24:18 +02:00
fmihoub6WIND
2b8e22f264 zebra: dump label table information
Add the new command "show debugging labeltable" to show allocated label
chunks in the label table managed with label_manager.c

Signed-off-by: Farid Mihoub <farid.mihoub@6wind.com>
Signed-off-by: Philippe Guibert <philippe.guibert@6wind.com>
2023-09-29 08:24:18 +02:00
Donatas Abraitis
c323b930ea zebra: Drop new lines from zlog_debug for dpdk debug messages
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-29 09:02:58 +03:00
Donatas Abraitis
3518fe70cb
Merge pull request #14507 from qlyoung/fix-doc-more-doc-more
More developer doc fixes
2023-09-29 08:41:41 +03:00
Donatas Abraitis
b9cbecbd16
Merge pull request #14506 from louis-6wind/fix-bgp-link-state
bgpd: fix link state coverity scan issues
2023-09-29 08:29:31 +03:00
mobash-rasool
f407515f91
Merge pull request #14505 from qlyoung/fix-rtd-build-sphinx-version
doc: unpin sphinx from 4.0.2
2023-09-29 09:44:39 +05:30
Donald Sharp
00d998fb63
Merge pull request #14503 from opensourcerouting/fix/add_bgp_neighbor_capability_dynamic
doc: Add `neighbor capability dynamic` command
2023-09-28 15:50:55 -04:00
Donald Sharp
1001a578ea
Merge pull request #14483 from opensourcerouting/fix/ignore_setting_ttl_for_negative_socket
bgpd: Set the TTL for the correct socket
2023-09-28 15:37:33 -04:00
Louis Scalbert
e1333d12e0 bgpd: fix printing link state ospf opaque data
Fix printing link state ospf opaque data. pnt address was not moving
in the loop.

Fixes: 8b531b1107 ("bgpd: store and send bgp link-state attributes")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-28 18:59:34 +02:00
Quentin Young
09e0cab1e0 doc: add debian 12 build docs to toctree
Not reachable without this

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-09-28 12:04:05 -04:00
Quentin Young
b06c593756 doc: remove northbound _sidebar definition
This ain't a wiki

But retain the ordering set up in the _sidebar in the RST index

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-09-28 12:04:05 -04:00
Quentin Young
d98bba1be2 doc: couple nbapi doc cleanups
* Fix block quote & rfc link
* Fix note block re: libyang dependencies

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-09-28 11:53:11 -04:00
Quentin Young
011d411c61 doc: fixup nbapi doc images
Pulled from web hosting into repo, all figure blocks updated.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-09-28 11:53:07 -04:00
Louis Scalbert
57d0dc565f bgpd: fix insecure data write with area addresses
Fix an issue where an attacker may inject a tainted length value to
corrupt the memory.

> CID 1568380 (#1 of 1): Untrusted value as argument (TAINTED_SCALAR)
> 9. tainted_data: Passing tainted expression length to bgp_linkstate_nlri_value_display, which uses it as an offset

Fixes: 8b531b1107 ("bgpd: store and send bgp link-state attributes")  Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-28 17:51:26 +02:00
Louis Scalbert
54222f9213 bgpd: fix insecure data write with ip addresses
Fix issues where an attacker may inject a tainted length value to
corrupt the memory.

> CID 1568378 (#1-6 of 6): Untrusted value as argument (TAINTED_SCALAR)
> 16. tainted_data: Passing tainted expression length to bgp_linkstate_tlv_attribute_value_display, which uses it as an offset. [show details]

Fixes: 7e0d9ff8ba ("bgpd: display link-state prefixes detail")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-28 17:51:23 +02:00
Quentin Young
dd858b8a76 doc: unpin sphinx from 4.0.2
requirements.txt was pinning sphinx at a very old version. This version
doesn't work in recent versions of Python; the new RTD configuration
made RTD respect our requirements file, breaking the build.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-09-28 10:51:10 -04:00
Louis Scalbert
25408c8dbf bgpd: fix link_state_hash_cmp()
Fix comparaison of link state attributes pointers in
link_state_hash_cmp().

> CID 1568379 (#1 of 1): Logically dead code (DEADCODE)
> dead_error_line: Execution cannot reach this statement: return false;.

Fixes: 8b531b1107 ("bgpd: store and send bgp link-state attributes")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-28 15:33:58 +02:00
Louis Scalbert
dae5791c44 bgpd: fix illegal memory access in bgp_ls_tlv_check_size()
Fix illegal memory access bgp_ls_tlv_check_size() if type is 1253.

> CID 1568377 (#4 of 4): Out-of-bounds read (OVERRUN)
> 5. overrun-local: Overrunning array bgp_linkstate_tlv_infos of 1253 16-byte elements at element index 1253 (byte offset 20063) using index type (which evaluates to 1253).

Fixes: 7e0d9ff8ba ("bgpd: display link-state prefixes detail")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-28 15:27:27 +02:00
Louis Scalbert
eb9e286511 bgpd: do not check attr in bgp_packet_attribute
Fix the following coverity issue. attr cannot be NULL.

> CID 1568376 (#1 of 1): Dereference before null check (REVERSE_INULL)
> check_after_deref: Null-checking attr suggests that it may be null, but it has already been dereferenced on all paths leading to the check.

Fixes: 8b531b1107 ("bgpd: store and send bgp link-state attributes")
Signed-off-by: Louis Scalbert <louis.scalbert@6wind.com>
2023-09-28 15:08:23 +02:00
Donald Sharp
8640fc9c0a
Merge pull request #14494 from idryzhov/mgmtd-show-datastore-contents-crash
mgmtd: fix crash on "show mgmtd datastore-contents"
2023-09-28 09:06:11 -04:00
Donald Sharp
45eec10c83
Merge pull request #14502 from opensourcerouting/fix/document_on_how_to_set_the_distance_from_linux
doc: Add an example on how to set a distance for a route from the kernel
2023-09-28 08:15:25 -04:00
Donatas Abraitis
67e1800e84 doc: Add neighbor capability dynamic command
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-28 13:13:52 +03:00
Donatas Abraitis
5952e479e5 doc: Add an example on how to set a distance for a route from the kernel
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
2023-09-28 12:52:15 +03:00
Donatas Abraitis
6a9fe6fac3
Merge pull request #14500 from qlyoung/add-rtd-config
doc: add .readthedocs.yaml configs
2023-09-28 12:36:29 +03:00
Donatas Abraitis
f48f2de17c
Merge pull request #14499 from qlyoung/fix-doc-whitespace-toctree
fix various developer doc issues
2023-09-28 12:36:19 +03:00
Donatas Abraitis
0af4541576
Merge pull request #14498 from idryzhov/fix-conf-t-file-lock
Fixes for `file-lock` mode of configuration node
2023-09-28 10:03:06 +03:00
Quentin Young
f71f078023 doc: add .readthedocs.yaml configs
As of Sep 25 2023, RTD projects require config files to build. This
patch is necessary for docs to continue to build.

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-09-27 20:16:16 -04:00
Quentin Young
e45651fbd0 doc: include checkpatch & cspf docs in toctree
The documentation pages on checkpatch and CSPF were not reachable
because they were not included in any toctree. Include them in the tree!

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-09-27 19:55:35 -04:00
Quentin Young
d2292c6bfe doc: fix whitespace, formatting errors
* Fix various whitespace and syntax errors
* Fix a couple tiny grammar mistakes

Signed-off-by: Quentin Young <qlyoung@qlyoung.net>
2023-09-27 19:55:35 -04:00
Igor Ryzhov
1a09cf3894 vtysh: fix entering configuration node in file-lock mode
When the config node is entered in file-lock mode, we should actually
remember it to correctly apply the workaround in `vtysh_exit`.
Otherwise, the file-lock mode is dropped once we exit any node one level
below the config node.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2023-09-28 02:45:05 +03:00
Igor Ryzhov
d3aa9adb8d vty: fix working in file-lock mode
When the configuration node is entered in file-lock mode, candidate
and running datastores are locked. Any configuration change is followed
by an implicit commit which leads to a crash of mgmtd, because double
lock is prohibited by an assert. When working in file-lock mode, we
shouldn't do implicit commits which is disabled by allowing pending
configuration changes.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2023-09-28 02:41:16 +03:00
Jafar Al-Gharaibeh
52cc7f1006
Merge pull request #14222 from opensourcerouting/doc/debian12
[DOC] Debian 12
2023-09-27 17:46:40 -05:00
Jafar Al-Gharaibeh
f5820215f2
Merge pull request #14495 from opensourcerouting/fix/update_releases_table
doc: Fix release dates in workflow
2023-09-27 17:45:05 -05:00
Igor Ryzhov
b8ebb7fc62 vty: fix configure terminal argument descriptions
"terminal" and "file-lock" description are mixed up.

Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
2023-09-27 23:34:53 +03:00