Repository navigation
Conversation
Signed-off-by: Donnie V Savage <diivious@hotmail.com>
[Medium impact] The changes reach the EIGRP configuration workflow. Do not merge until the existing daemon can start and the one-process-per-VRF limit is preserved. FindingsFix with agent prompt### Issue 1
yang/frr-eigrpd.yang:458-460
The new writable nodes are always enabled, but `frr_eigrpd_info` has no callbacks for `named`, its children, or `instance/event-log-size`. At startup, `nb_init()` checks these callbacks, and `nb_validate_callbacks()` calls `exit(1)` when they are missing. This stops the existing daemon even without named-mode configuration.
Add the promised optional feature gate around every new writable node, including `instance/event-log-size`, and leave it disabled for the existing daemon.
### Issue 2
yang/frr-eigrpd.yang:267-268
Removing the one-instance-per-VRF check allows two numeric AS entries in one VRF, but the existing daemon still stores only one process per VRF. `router eigrp 100` followed by `router eigrp 200` binds both entries to the process for AS 100. Settings from either entry change that process, and deleting either entry destroys it while the other still references it.
Preserve the check for the existing daemon. Make any relaxation conditional on support for multiple processes.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.SummaryAdds named EIGRP configuration to the YANG schema and lets
Diagram%%{init: {'theme': 'neutral'}}%%
flowchart TD
A["Existing eigrpd starts"] --> B["Load frr-eigrpd schema"]
B --> C["New writable nodes are enabled"]
C --> D["Check required callbacks"]
D --> E["Callbacks are missing"]
E --> F["exit(1)"]
Reviews (1) · Last reviewed commit: "eigrpd: add OpenEIGRP integration suppor..." · Reviewed by Greptile |
| list named { | ||
| key "name"; | ||
| description "EIGRP named-mode parent process"; |
There was a problem hiding this comment.
The new writable nodes are always enabled, but frr_eigrpd_info has no callbacks for named, its children, or instance/event-log-size. At startup, nb_init() checks these callbacks, and nb_validate_callbacks() calls exit(1) when they are missing. This stops the existing daemon even without named-mode configuration.
Add the promised optional feature gate around every new writable node, including instance/event-log-size, and leave it disabled for the existing daemon.
Prompt To Fix With AI
This is a comment left during a code review.
Path: yang/frr-eigrpd.yang
Line: 458-460
Comment:
**Existing EIGRP cannot start**
The new writable nodes are always enabled, but `frr_eigrpd_info` has no callbacks for `named`, its children, or `instance/event-log-size`. At startup, `nb_init()` checks these callbacks, and `nb_validate_callbacks()` calls `exit(1)` when they are missing. This stops the existing daemon even without named-mode configuration.
Add the promised optional feature gate around every new writable node, including `instance/event-log-size`, and leave it disabled for the existing daemon.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.| list instance { | ||
| must "count(../instance[vrf =current()/vrf]) = 1"; | ||
| key "asn vrf"; |
There was a problem hiding this comment.
Separate AS entries share state
Removing the one-instance-per-VRF check allows two numeric AS entries in one VRF, but the existing daemon still stores only one process per VRF. router eigrp 100 followed by router eigrp 200 binds both entries to the process for AS 100. Settings from either entry change that process, and deleting either entry destroys it while the other still references it.
Preserve the check for the existing daemon. Make any relaxation conditional on support for multiple processes.
Prompt To Fix With AI
This is a comment left during a code review.
Path: yang/frr-eigrpd.yang
Line: 267-268
Comment:
**Separate AS entries share state**
Removing the one-instance-per-VRF check allows two numeric AS entries in one VRF, but the existing daemon still stores only one process per VRF. `router eigrp 100` followed by `router eigrp 200` binds both entries to the process for AS 100. Settings from either entry change that process, and deleting either entry destroys it while the other still references it.
Preserve the check for the existing daemon. Make any relaxation conditional on support for multiple processes.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
@donaldsharp - this supersedes #23617
Patch has been re-based onto current frr master with a clean commit history (no merge commits)
Summary
Add the FRR YANG schema and vtysh extensions required to build and integrate OpenEIGRP with the FRR routing infrastructure.
These changes provide the infrastructure required by OpenEIGRP without modifying the existing FRR eigrpd implementation or its operational behavior.
Validation
make checkpassed on the patched checkout.vtysh/vtysh.candyang/frr-eigrpd.yang.