Skip to content

frr: add containerlab FRR lab builder support, FrrValidator, and frr_ospf_max_metric_router_lsa lab - #249

Merged
dhalperi merged 1 commit into
mainfrom
frr-ospf-max-metric-router-lsa
Oct 28, 2026
Merged

dhalperi merged 1 commit into
mainfrom
frr-ospf-max-metric-router-lsa

Conversation

@dhalperi

Copy link
Copy Markdown
Member

Add an FRR (containerlab frr kind) vendor profile to lab_builder. The
containerlab- image runs sshd; lab_builder logs in as root
with ~/.ssh/id_ed25519, which ec2-setup.sh now creates and copies where
containerlab authorizes it. build-snapshot wraps the collected running
config in the Cumulus concatenated format, the only way Batfish reads
FRR outside SONiC. Add FRR OSPF health and interface checks, reuse the
SONiC vtysh BGP and route checks, and add a route_next_hops check for
a route's next hops and metric. wait_for_ssh now fails at once on
netmiko argument errors instead of retrying until the boot timeout,
and health checks treat a stopped bgpd or ospfd as unconfigured.

Add FrrValidator for FRR 10: per-VRF route JSON, eth0 excluded, and
FRR 10 local routes excluded (#248).
SonicValidator now extends it.

Add frr_ospf_max_metric_router_lsa, four FRR 10.7.1 routers with
"max-metric router-lsa administrative" on one of two ABRs. The main
RIB is sickbayed on r0, r1, and abr2 for batfish/batfish#7073. With
batfish/batfish#10452 the remaining mismatch is the max-metric ABR's
loopback, which FRR advertises at its interface cost. Interface
properties are sickbayed for #43.


Prompt:

Review https://github.com/batfish/batfish/pull/10452
Can we create a lab for it?

Follow-ups: use plain FRR containers rather than Cumulus; exclude FRR
10 local routes in FrrValidator and file a lab-validation issue; debug
the SSH and health-check stalls before opening the PR.

@codecov-commenter

codecov-commenter commented Oct 28, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 70.83333% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 82.88%. Comparing base (1e8512c) to head (fdf0c83).

Files with missing lines Patch % Lines
src/lab_validation/validators/FrrValidator.py 65.00% 7 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #249      +/-   ##
==========================================
- Coverage   82.90%   82.88%   -0.03%     
==========================================
  Files          96       97       +1     
  Lines        4515     4527      +12     
==========================================
+ Hits         3743     3752       +9     
- Misses        772      775       +3     
Flag Coverage Δ
unittests 82.88% <70.83%> (-0.03%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

…ospf_max_metric_router_lsa lab

Add an FRR (containerlab frr kind) vendor profile to lab_builder. The
containerlab-<version> image runs sshd; lab_builder logs in as root
with ~/.ssh/id_ed25519, which ec2-setup.sh now creates and copies where
containerlab authorizes it. build-snapshot wraps the collected running
config in the Cumulus concatenated format, the only way Batfish reads
FRR outside SONiC. Add FRR OSPF health and interface checks, reuse the
SONiC vtysh BGP and route checks, and add a route_next_hops check for
a route's next hops and metric. wait_for_ssh now fails at once on
netmiko argument errors instead of retrying until the boot timeout,
and health checks treat a stopped bgpd or ospfd as unconfigured.

Add FrrValidator for FRR 10: per-VRF route JSON, eth0 excluded, and
FRR 10 local routes excluded (#248).
SonicValidator now extends it.

Add frr_ospf_max_metric_router_lsa, four FRR 10.7.1 routers with
"max-metric router-lsa administrative" on one of two ABRs. The main
RIB is sickbayed on r0, r1, and abr2 for batfish/batfish#7073. With
batfish/batfish#10452 the remaining mismatch is the max-metric ABR's
loopback, which FRR advertises at its interface cost. Interface
properties are sickbayed for #43.

----

Prompt:
```
Review batfish/batfish#10452
Can we create a lab for it?
```

Follow-ups: use plain FRR containers rather than Cumulus; exclude FRR
10 local routes in FrrValidator and file a lab-validation issue; debug
the SSH and health-check stalls before opening the PR.
@dhalperi
dhalperi force-pushed the frr-ospf-max-metric-router-lsa branch from 33566ee to fdf0c83 Compare October 28, 2026 01:23
@dhalperi
dhalperi enabled auto-merge (squash) October 28, 2026 01:26
@dhalperi
dhalperi merged commit 65179b0 into main Oct 28, 2026
151 checks passed
@dhalperi
dhalperi deleted the frr-ospf-max-metric-router-lsa branch October 28, 2026 01:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants