Page MenuHomeVyOS Platform

protocols_nhrp: verify() operates on the wrong dict level and never runs
In progress, HighPublicBUG

Description

NHRP verify() checks the top-level frrender dict instead of config_dict['nhrp'], so none of its checks ever execute.

Location
src/conf_mode/protocols_nhrp.py:46-56

python/vyos/frrender.py:586
compare src/conf_mode/protocols_nhrp.py:99-101

Problem
verify() checks 'tunnel' in config_dict but the frrender dict nests NHRP under config_dict['nhrp'] (as generate() correctly uses). No validation ever executes.

Impact
Invalid NHRP configs (gretap tunnel, non-/32 address, missing network-id, nhs without nbma, nonexistent tunnel) commit silently; NHRP inactive or frr-reload fails generically.

Suggested fix
nhrp = config_dict['nhrp'] and operate on it; add smoketest asserting each ConfigError.

Details

Version
rolling
Is it a breaking change?
Perfectly compatible
Issue type
Bug (incorrect behavior)