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.