Skip to content

Capture CYOA and DIA Interfaces onchain #1688

@ben-malbeclabs

Description

@ben-malbeclabs

Context / Why:
We need to classify each device interface by type (CYOA, DIA, or others) to properly support different connectivity models and automation flows.
CYOA interfaces also require additional attributes (e.g., GRE over DIA, capacity, routing mode) to enable accurate configuration, validation, and provisioning.

What to do:
• Create a new Interface Version
• Add an interface_type field to device interfaces
• Initial values: CYOA, DIA, None
• For CYOA interfaces:
• Include a subtype cyoa_type (initial support for GREoverDIA)
• Add the following optional metadata fields:
• bandwidth
• cir (committed information rate / sub-rate speed)
• mtu
• routing_mode (supported: BGP, Static)

How (high-level):
• Extend the Interface struct in the on-chain account with the new fields.
• Introduce an InterfaceType enum.
• Update CLI to set and display these values.
• Add basic validation (e.g., GREoverDIA requires routing mode set).
• Provide defaults for backward compatibility.

Notes:
• No strict validation yet for MTU/bandwidth values — store only.
• Existing interfaces default to None.
• Update CLI output for dz device interface list to include new fields.
• Add regression tests to ensure legacy interfaces still deserialize correctly.

Metadata

Metadata

Labels

enhancementNew feature or request

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions