Increase rf_channel_frequency Precision to 3 Decimal Places #157

Closed
opened 2026-04-05 16:22:25 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @AnythingOverIP on 3/12/2026

NetBox version

4.5.4

Feature type

Change to existing functionality

Proposed functionality

Enhance the rf_channel_frequency field on the Interface model to support three (3) decimal places of precision instead of the current two (2), allowing frequencies such as 5900.125 MHz or 928.750 MHz to be represented accurately.

This would change the model definition from: rf_channel_frequency = models.DecimalField(max_digits=7, decimal_places=2, ...) to: rf_channel_frequency = models.DecimalField(max_digits=7, decimal_places=3, ...)

This change would allow more accurate representation of center frequencies for wireless point‑to‑point (P2P) links, particularly in regions where licensing authorities specify sub‑MHz precision requirements.

Use case

In Canada, as in mulitple other countries, ISED (Innovation, Science and Economic Development, the FCC equivalent here) requires three‑digit frequency resolution for licensed wireless P2P links. Operators must configure, document, and maintain frequencies with 0.001 MHz (1 kHz) granularity to meet regulatory and coordination requirements.
Today, NetBox restricts frequency precision to only two decimal places because rf_channel_frequency is implemented as a DecimalField with decimal_places=2 in the core model. This prevents accurate modeling of licensed microwave or sub‑GHz P2P links where center frequencies frequently require kHz‑level precision.

Accurate modeling is essential for:

  • Documenting licensed P2P links that must be coordinated with ISED
  • Avoiding regulatory mismatches that could lead to audit issues
  • Ensuring consistent datasets shared with engineering, NMS exports, or coordination tools
  • Maintaining clean end‑to‑end design data used for frequency planning

Given that NetBox already supports P2P modeling through wireless interfaces and wireless links, expanding the precision of rf_channel_frequency would make NetBox usable for real‑world licensed microwave deployments.

Proposed Implementation

  • Update the rf_channel_frequency field on the Interface model to decimal_places=3.
  • Apply the same change to any related serializers, forms, and API validations.
  • Run a schema migration for the change.

This should be a low‑impact update, as the field already stores numeric values and increasing precision does not break existing data.

Database changes

n/a

External dependencies

n/a

*Originally created by @AnythingOverIP on 3/12/2026* ### NetBox version 4.5.4 ### Feature type Change to existing functionality ### Proposed functionality Enhance the rf_channel_frequency field on the Interface model to support three (3) decimal places of precision instead of the current two (2), allowing frequencies such as 5900.125 MHz or 928.750 MHz to be represented accurately. This would change the model definition from: `rf_channel_frequency = models.DecimalField(max_digits=7, decimal_places=2, ...)` to: `rf_channel_frequency = models.DecimalField(max_digits=7, decimal_places=3, ...)` This change would allow more accurate representation of center frequencies for wireless point‑to‑point (P2P) links, particularly in regions where licensing authorities specify sub‑MHz precision requirements. ### Use case In Canada, as in mulitple other countries, ISED (Innovation, Science and Economic Development, the FCC equivalent here) requires three‑digit frequency resolution for licensed wireless P2P links. Operators must configure, document, and maintain frequencies with 0.001 MHz (1 kHz) granularity to meet regulatory and coordination requirements. Today, NetBox restricts frequency precision to only two decimal places because rf_channel_frequency is implemented as a DecimalField with decimal_places=2 in the core model. This prevents accurate modeling of licensed microwave or sub‑GHz P2P links where center frequencies frequently require kHz‑level precision. Accurate modeling is essential for: - Documenting licensed P2P links that must be coordinated with ISED - Avoiding regulatory mismatches that could lead to audit issues - Ensuring consistent datasets shared with engineering, NMS exports, or coordination tools - Maintaining clean end‑to‑end design data used for frequency planning Given that NetBox already supports P2P modeling through wireless interfaces and wireless links, expanding the precision of rf_channel_frequency would make NetBox usable for real‑world licensed microwave deployments. **Proposed Implementation** - Update the rf_channel_frequency field on the Interface model to decimal_places=3. - Apply the same change to any related serializers, forms, and API validations. - Run a schema migration for the change. This should be a low‑impact update, as the field already stores numeric values and increasing precision does not break existing data. ### Database changes n/a ### External dependencies n/a
MrUnknownDE added the status: acceptedcomplexity: lowstatus: acceptedstatus: acceptedstatus: acceptednetboxstatus: acceptedtype: featurestatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedstatus: acceptedcomplexity: lowcomplexity: lowcomplexity: lowcomplexity: lowcomplexity: lowcomplexity: lowcomplexity: lowcomplexity: lowcomplexity: lowcomplexity: lowcomplexity: lowcomplexity: lowtype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featuretype: featurenetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetboxnetbox labels 2026-04-05 16:22:27 +02:00
Sign in to join this conversation.
No Label complexity: low complexity: low complexity: low complexity: low complexity: low complexity: low complexity: low complexity: low complexity: low complexity: low complexity: low complexity: low complexity: low netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox netbox status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted status: accepted type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature type: feature
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/netbox#157