Forward Error Correction on Interfaces #11250

Closed
opened 2025-12-29 21:42:27 +01:00 by adam · 2 comments
Owner

Originally created by @DonGiovanni83 on GitHub (Jun 2, 2025).

NetBox version

v4.2.8

Feature type

Data model extension

Proposed functionality

I propose adding a new fec_mode field to the dcim.models.device_components.Interface model. This field will allow users to define the Forward Error Correction (FEC) mode for a given interface. The field will be a nullable CharField with the following choices:

  • FC-FEC (FEC-74, as defined in IEEE 802.3 Clause 74)

  • RS-FEC (FEC-91, as defined in IEEE 802.3 Clause 91)

  • Auto (for auto-negotiation)

This new field should also be available in the GraphQL API.

Use case

This feature enables interface-specific FEC mode configuration, which is sometimes essential for network device configuration. Modern transceivers and switch platforms often require explicit FEC configuration to ensure compatibility and performance. By incorporating fec_mode into NetBox, users can drive consistent configuration across their infrastructure using NetBox as the source of truth.

Our concrete use case at Puzzle ITC is to match explicit FEC modes from the ISP and between devices from different vendors and platforms. See the following blog post for more context on how we manage these devices:
https://www.puzzle.ch/blog/2025/01/09/automating-networks-switches-start-of-the-journey

Database changes

A new nullable CharField will be added to the Interface model in dcim.models.device_components.

Field name: fec_mode
Choices: Auto, FC-FEC, RS-FEC
default: None
Nullable: yes

Included in the GraphQL API and forms similarly to the duplex field.

External dependencies

None

Originally created by @DonGiovanni83 on GitHub (Jun 2, 2025). ### NetBox version v4.2.8 ### Feature type Data model extension ### Proposed functionality I propose adding a new `fec_mode` field to the `dcim.models.device_components.Interface model`. This field will allow users to define the Forward Error Correction (FEC) mode for a given interface. The field will be a nullable `CharField` with the following choices: - `FC-FEC` (FEC-74, as defined in IEEE 802.3 Clause 74) - `RS-FEC` (FEC-91, as defined in IEEE 802.3 Clause 91) - `Auto` (for auto-negotiation) This new field should also be available in the GraphQL API. ### Use case This feature enables interface-specific FEC mode configuration, which is sometimes essential for network device configuration. Modern transceivers and switch platforms often require explicit FEC configuration to ensure compatibility and performance. By incorporating `fec_mode` into NetBox, users can drive consistent configuration across their infrastructure using NetBox as the source of truth. Our concrete use case at Puzzle ITC is to match explicit FEC modes from the ISP and between devices from different vendors and platforms. See the following blog post for more context on how we manage these devices: https://www.puzzle.ch/blog/2025/01/09/automating-networks-switches-start-of-the-journey ### Database changes A new nullable `CharField` will be added to the `Interface` model in `dcim.models.device_components`. Field name: `fec_mode` Choices: `Auto`, `FC-FEC`, `RS-FEC` default: `None` Nullable: yes Included in the GraphQL API and forms similarly to the duplex field. ### External dependencies None
adam added the type: feature label 2025-12-29 21:42:27 +01:00
adam closed this issue 2025-12-29 21:42:27 +01:00
Author
Owner

@DonGiovanni83 commented on GitHub (Jun 2, 2025):

I'd be happy to own this issue and submit an implementation of the feature.

@DonGiovanni83 commented on GitHub (Jun 2, 2025): I'd be happy to own this issue and submit an implementation of the feature.
Author
Owner

@jnovinger commented on GitHub (Jun 5, 2025):

@DonGiovanni83, thank you for submitting your idea. This falls outside the scope of functionality that NetBox aims to provide. As NetBox is an open source application with limited development resources and a persistent backlog of existing work, it is crucial that we limit the scope of development to ensure it remains a maintainable project for many years to come. Thank you for your understanding.

FWIW, this can be achieved using a custom field and a custom choice set.

@jnovinger commented on GitHub (Jun 5, 2025): @DonGiovanni83, thank you for submitting your idea. This falls outside the scope of functionality that NetBox aims to provide. As NetBox is an open source application with limited development resources and a persistent backlog of existing work, it is crucial that we limit the scope of development to ensure it remains a maintainable project for many years to come. Thank you for your understanding. FWIW, this can be achieved using a [custom field](https://netbox.readthedocs.io/en/stable/customization/custom-fields/) and a [custom choice set](https://netbox.readthedocs.io/en/stable/customization/custom-fields/#custom-selection-fields).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#11250