Move plugin device features and daemon configs to device/daemon definitions#3066
Merged
Move plugin device features and daemon configs to device/daemon definitions#3066
Conversation
- Move bgp.session features to 15 device files - Move bgp.policy features to 8 device files - Move ebgp.multihop features to 10 device files - Move ospf.areas features to 8 device files Co-authored-by: ipspace <[email protected]>
Device-specific features have been moved to device definition files, so they are no longer needed in the plugin defaults. Co-authored-by: ipspace <[email protected]>
Copilot
AI
changed the title
[WIP] Move BGP and OSPF features to device definitions
Move plugin device features to device definitions
Feb 3, 2026
Owner
|
@copilot -- you should also migrate the "daemons" definitions into daemons yml files like you did with the device features (it's probably just bird) |
- Moved bgp@session daemon_config to netsim/daemons/bird.yml - Moved bgp.session features to bird daemon features.bgp section - Removed daemons section from bgp.session plugin defaults.yml Co-authored-by: ipspace <[email protected]>
Contributor
Author
Done. Moved the bird daemon configuration from bgp.session plugin to netsim/daemons/bird.yml (commit 3763036). Changes:
|
Copilot
AI
changed the title
Move plugin device features to device definitions
Move plugin device features and daemon configs to device/daemon definitions
Feb 3, 2026
ipspace
added a commit
that referenced
this pull request
Feb 4, 2026
ipspace
approved these changes
Feb 4, 2026
Owner
ipspace
left a comment
There was a problem hiding this comment.
Looks good and all the integration tests pass
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Device-specific features were scattered across plugin
defaults.ymlfiles. Consolidate them into device definition files where capabilities belong. Similarly, daemon-specific configurations in plugins have been moved to daemon definition files.Changes
Moved features from 4 plugins to 15 device files:
bgp.session→ allowas_in, as_override, bfd, default_originate, gtsm, passive, password, remove_private_as, rs, rs_client, tcp_ao, timers, descriptionbgp.policy→ aggregate, bandwidth, _default_locprefebgp.multihop→ multihop, multihop.vrfospf.areas→ areas (with device capability notes)Example change (eos.yml):
Cleaned up plugin defaults.yml:
devices:sections (177 lines)daemons:sections (15 lines)attributes:and validation rulesMoved daemon configurations to daemon files:
bgp.session/defaults.ymltonetsim/daemons/bird.ymlbgp@session: /etc/bird/bgp.session.confto bird daemon_configImpact:
Original prompt
This section details on the original issue you should resolve
<issue_title>Moving BGP/OSPF features from plugins to device definitions?</issue_title>
<issue_description>The defaults-in-plugins are probably a good idea to start with, but right now we have over a dozen different device features defined in bgp.session, bgp.policy, or ospf.areas plugins.
Maybe it's time to move those features to the "main" device features? Any thoughts @jbemmel @ssasso ?</issue_description>
<agent_instructions>The bgp.session, bgp.policy, ebgp.multihop, and ospf.areas plugins define supported features for individual devices in their
defaults.ymlfiles. Move those features into the correspondingbgporospffeatures in the device definition yml files.</agent_instructions>Comments on the Issue (you are @copilot in this section)
@ipspace ... and yes, I know this adds as much value as rearranging deck chairs on Titanic after it already had its famous encounter (OK, maybe a bit more), but I can't help myself 🤷♂️ @jbemmel To me plugins are like a proofing ground for new ideas, once established it makes sense to cherry-pick the desirable features and make them part of the appropriate core modulesHere's an AI generated analysis of candidate features in plug-ins, and suggested target modules:
Plugins to Core Modules Migration Guide
This document provides an overview of current netlab plugins and their features, with recommendations for which plugins could be promoted to core modules.
Plugin Overview and Migration Recommendations
BGP-Related Plugins
1.
bgp.domainPurpose: Domain-based BGP segmentation within autonomous systems
Features:
Current Status: Stable plugin with complex logic
Migration Recommendation: ❌ Keep as Plugin
2.
bgp.originatePurpose: BGP route origination for specific prefixes
Features:
Current Status: Stable plugin with device-specific implementations
Migration Recommendation: ✅ Promote to Core BGP Module
netsim/modules/bgp.py3.
bgp.policyPurpose: Advanced BGP policy configuration and route manipulation
Features:
Current Status: Complex plugin with extensive device support
Migration Recommendation: ✅ Promote to Core Routing Module
netsim/modules/routing.pywith BGP-specific features4.
bgp.sessionPurpose: Advanced BGP session configuration options
Features:
Current Status: Mature plugin with comprehensive device support
Migration Recommendation: ✅ Promote to Core BGP Module
netsim/modules/bgp.py5.
ebgp.multihopPurpose: EBGP multihop session configuration
Features:
Current Status: Stable plugin with good device coverage
Migration Recommendation: ✅ Promote to Core BGP Module
Routing Protocol Extensions
6.
ospf.areasPurpose: OSPF area configuration and management
Features:
Current Status: Complex plugin with extensive device support
Migration Recommendation: ✅ Promote to Core OSPF Module
netsim/modules/ospf.pyLayer 2 Features
7.
evpn.multihomingPurpose: EVPN Ethernet Segment (ES) configuration for multihoming
Features:
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.