zebra: fix wrong hash count function callThe Pull Requests #21263 and #21388 had conflicting changes:
- 21263 uses `hashcount` (lib/hash.h implementation) to count items in a
hash
- 21388 changes the hash type being referenced in the other PR with type
safe hash (lib/typesafe.h)
Since both Pull Requests got merged at nearly the same time the CI
didn't have a chance to build them together.
Signed-off-by: Rafael Zalamena <rzalamen...
lib: mgmt: expose short-circuit bool as `is_mgmtd`Currently the only user of the front-end client library is mgmtd, and
the code was always requesting short-circuit connections. Expose a
`is_mgmtd` parameter so that short-circuit is not selected for non-mgmtd
users.
Signed-off-by: Christian Hopps <chopps@labn.net>
bgpd: add configurable advertisement delay for suppress-fib-pendingWhen bgp suppress-fib-pending is enabled, BGP waits for FIB
confirmation before advertising routes, then applies a batching delay
via BGP_UPDATE_GROUP_TIMER_ON before generating UPDATE messages. The
hardcoded 1-second delay (BGP_DEFAULT_UPDATE_ADVERTISEMENT_TIME)
adds unnecessary latency for deployments that force-enable this
feature (e.g., SONiC via bgpcfgd).
Add an optional delay parameter t...
tests: add topotest for bgp confederation id unchangedVerify that BGP session is not reset when:
- Confederation ID is changed to ASDOT notation (same numeric value)
- Confederation ID is deleted multiple times
Signed-off-by: Wang Dan <413602099@qq.com>
bgpd: Prevent unnecessary peer reset on confederation config changeCurrently, BGP peers are re-established even when the confederation
configuration remains unchanged. This occurs because the configuration
change triggers a full peer reset regardless of whether the actual
confederation value changed.
This patch moves the validation check to bgp_confederation_id_set()
and ensures that no reset occurs when the confederation identifier
is set to the same value a...
bgpd: fix last Reset timer losing day part after 24 hoursThe lastResetTimerMsecs JSON field was computed using gmtime_r() and
only accounted for hours, minutes, and seconds (tm_hour, tm_min,
tm_sec), but missed the day field (tm_yday). This caused the value
to wrap around and lose days when elapsed time exceeded 24 hours.
Use direct multiplication (uptime * 1000) instead, matching how
bgpTimerUpMsec is correctly computed.
Signed-off-by: Soumya Roy <...
pimd: fix NOCACHE MFC resync detection log, add vrf name tooOnly treat as kernel/user MFC resync when MFC was already installed
before this NOCACHE upcall (snapshot via pim_upstream_find before
find_or_add). Avoids false positives on first packet when find_or_add
installs in the same call. Log resync at debug with VRF; add VRF to
kernel upcall lines.
Without this fix, pim logs a warning for every new flow:
```
r1-eth0: NOCACHE for (192.168.100.10,238.0...
tests: staticd: test VRF teardown cleanup for ECMP routesAdd test_vrf_teardown_cleanup to the static_cross_vrf_nexthop topotest
suite to cover the bug fixed in static_cleanup_vrf(): when a nexthop
VRF goes down, the stale cross-VRF nexthop must not appear in the route
ADD sent to zebra.
The fix marks affected nexthops VRF_UNKNOWN before calling
static_zebra_route_add(), which skips VRF_UNKNOWN entries. Without
the fix, the ADD is sent with the old ...
staticd: fix static_cleanup_vrf() nexthop-VRF removal orderingWhen a nexthop VRF goes down, static_cleanup_vrf() must mark affected
nexthops as VRF_UNKNOWN *before* reinstalling the path. The previous
code called static_uninstall_nexthop() per nexthop while nh->nh_vrf_id
still held the old valid VRF ID. This caused static_uninstall_path()
to issue a ZAPI ADD that included the departing nexthop — since
static_zebra_route_add() only skips nexthops already...
ospf6d: Remove ospf6 route when connected winsCurrently when ospf6 installs a route that is later
covered by a connected, the ospf6 route is never removed.
Modify the code to detect the case where the new route
that `wins` in ospf6 notices that it is connected and the
old route that was in was a ospf6 route. If so send a
specific route deletion for the ospf6 route.
This failure is happening infrequently in the ospf6_point_to_multipoint
t...
doc: document standalone Sphinx HTML build without configureAdd a section at the end of building-doc.rst describing how to run
sphinx-build from the repository root when the tree has not been
configured.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
ci: gate github-ci Build/Test jobs on non-doc paths; add HTML doc job- Add doc-path-filter job (dorny/paths-filter) for doc/** vs rest of tree.
- Run Prepare-MIB-Cache, Build, and Test only when changes exist outside doc/.
- Add Documentation-HTML job (sphinx user + developer) when doc/ changes.
- Skip Documentation-HTML when doc/ is unchanged.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
tests: update test descriptionThis is a particular type of test we shouldn't mix in other generic
config tests. The previous name was too generic as well so update it
too.
Signed-off-by: Christian Hopps <chopps@labn.net>
tests: Modify tests to better test some zebra cli changesBetter test:
a) ip import table
b) allow-external....
c) packet read in values for zebra
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Signed-off-by: Christian Hopps <chopps@labn.net>
mgmtd: improve vty error handling for `mgmt edit`Improve handling of error in frontend client/mgmt vty. Use this to
return a more appropriate result (CMD_WARNING_CONFIG_FAILED) back to
vtysh mirroring the normal config change path. As a result vtysh will
correctly exit with status 1 when running one shot `mgmt edit` config
commands.
Signed-off-by: Christian Hopps <chopps@labn.net>
bgpd: Avoid unnecessary code path for brief command flowWhen "show ... bgp ... json brief" is used, avoid allocating json_paths
per destination and skip filter/display work that only applies to full
JSON or plain-text output.
Signed-off-by: harini <hnattamaisub@nvidia.com>
zebra: Move `ip import-table` to mgmt frontend sideThe `ip import-table ...` commands were not on the mgmt
front end side. Move them to it.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: Move `zebra work-queue` to mgmt frontend sideReroute the `zebra work-queue` commands to actually be
on the mgmt frontend side instead of the zebra side.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>