pimd: fix AutoRP holdtime parsing and minor cleanupUse ntohs for received holdtime and drop a duplicate prefix-list
lookup. Note in pim_socket_leave() that leave failures share the
joins_failed stat counter.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
doc: Note that snmptrapd needs to be installed as well.A test depends on snmptrapd being installed. Note it
in our documentation.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: Attempt to load the sch_netem moduleThe test_bfd_ospf_quicknbr_topo1.py was not attempting
to load the sch_netem module and as such was probably
never being run in any topotests at all. Let's try
to just modprobe the module and if it succeeds allow
the test to continue.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
tests: skip grpc_basic when FRR gRPC module is missingAfter dropping the collection-time grpc-query --check guard, CI always
collected grpc_basic when Python grpc was installed, but grpc.s (frr-grpc)
might not be installed. Zebra then failed to start with -M grpc and
surfaced as a misleading mgmtd connection timeout. Skip the module when
the northbound gRPC module is absent.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
tests: make gcov coverage robust under parallel topotestsUse -fprofile-update=atomic for gcov builds and tell lcov to ignore
corrupted counters so xdist runs can still produce coverage.info.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
tests: fail fast when --cov-topotest lacks gcov buildExit during pytest configure if no *.gcno files are found, instead of
running all topotests and failing with missing GCOV_* env var KeyErrors.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
Merge pull request #22093 from opensourcerouting/fix/move_link_bw_from_attr_extra_to_bgp_path_info_extrabgpd: Move link_bw from attr_extra to bgp_path_info_extra
tests: ignore pytest-xdist worker ids in analyze.py rerunsWhen parallel collection fails, xdist records errors named gw0, gw5, etc.
analyze.py turned those into nonexistent gw5.py rerun targets. Skip worker
ids so CI serial reruns only real topotest modules.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
tests: drop flaky grpc collection-time --check under xdistFollow-up to ea85c7c6ff ("fix grpc_basic xdist collection mismatch"):
that commit made missing grpc imports skip consistently, but the
per-worker grpc-query --check subprocess could still fail on some xdist
workers while others collected grpc_basic tests, aborting CI with
"Different tests were collected". Rely on the import guard only; proto
generation still runs when tests execute grpc-query.
...
topotests: skip support bundle collection after topology teardownTrack topology_stopped in Topogen and skip generate_support_bundle()
when teardown already ran, e.g. on module-level memleak failures.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
topotests: reap mutini zombies in xdist worker cleanupReap unreaped mutini/nsenter children after munet SIGKILL cleanup so
pytest-xdist workers exit instead of blocking the controller.
Signed-off-by: Jafar Al-Gharaibeh <jafar@atcorp.com>
tests: Modify conditional advertisement test to show that no change happensModify the test_bgp_conditional_advertisement_track_peer.py script
to ensure that the version # for a bgp prefix stays the same
after a cycle of the conditional advertisement fires.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: fix missing cleaning vni entryWhen the last vni mapping is removed from SVD, the `vniarray` is NULL in
`interface_bridge_vxlan_vlan_vni_map_update()`. So this function will
wrongly return without cleaning vni entry:
```
root@debian# bridge fdb show dev vxlan-svd
00:00:00:00:00:00 dst 66.66.66.66 src_vni 66 self permanent
```
Fix this by replacing the old vni table with one empty/new vni table, then
the the last/remaining ...
bgpd: Move link_bw from attr_extra to bgp_path_info_extraattr and attr_extra are "designed" for BGP attributes, but link_bw is not an
actual BGP attribute, it's derived from Extended Community.
Let's move it to bgp_path_info_extra.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd: Fix infinite loop in MRT route dump for oversized pathsThis is a complete fix for CVE-2016-4049.
Fixes: 246556b ("bgpd: Fix buffer overflow error in bgp_dump_routes_func")
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd: Move bgp_path_info_get_srte_color to bgp_route.[ch]Since srte_color is moved from struct attr, move the getter outside attr
as well.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd: Add bgp_path_info_extra_same helper to compare extra fieldsSince srte_color is moved from struct attr to struct bgp_path_info_extra, we
need still to compare it if it's the same or not before UPDATE/WITHDRAW/LEAK,
so let's do this with this new helper method. Maybe something more fields
need to be checked/compared in the future.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd: Move srte_color from attr struct to bgp_path_info_extrastruct attr is used for BGP attributes, but srte_color is just encoded as
an extended community. Move this srte_color member to bgp_path_info_extra
struct to avoid confusions and occupying 4-bytes for attr if not needed at all.
Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd: Use lookup not get for VNC pdest on new route in rfapiUse lookup to avoid a get/free cycle on the removal case.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: Use lookup not get for VNC pdest on attr change add in rfapiUse a lookup to avoid the creation/deletion of a node in the removal
case.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: Use lookup not get for VNC pdest on new route in bgp_updateUse a lookup to avoid a get/free cycle in the deletion case.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: Use lookup not get for VNC pdest on attr change add in bgp_updateAvoid a alloc/free cycle on the removal case by doing a lookup
instead.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: Use lookup not get for VNC pdest on attr change delete in rfapiWhen removing a node, use lookup instead of a get/free cycle.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: Use lookup not get for VNC implicit withdraw pdest in bgp_updateDo not use a get operation on withdrawal, do a lookup and
only do the withdrawal if found, to avoid a alloc/free cycle.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: Use lookup not get for VNC pdest in del_vnc_routeSwitch to _lookup for finding the parent dest and not create
and then delete the node on deletion.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: Use lookup not get for VNC withdraw pdest in bgp_rib_withdrawConvert get of the two level table into a lookup so that there
is no creation/deletion of the table on withdrawal.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
bgpd: Do not create rd table if negate of network statementDo not create the rd table if in a negate operation.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
zebra: Track netlink carrier changes valueTurns out netlink lets us know how many times a carrier change
has happened. Keep track of it. At this point do nothing with
it.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>