mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-12 05:20:31 +01:00
Expand the maximum length of Cable #4563
Closed
opened 2025-12-29 18:37:37 +01:00 by adam
·
18 comments
No Branch/Tag Specified
main
update-changelog-comments-docs
feature-removal-issue-type
20911-dropdown
20239-plugin-menu-classes-mutable-state
21097-graphql-id-lookups
feature
fix_module_substitution
20923-dcim-templates
20044-elevation-stuck-lightmode
feature-ip-prefix-link
v4.5-beta1-release
20068-import-moduletype-attrs
20766-fix-german-translation-code-literals
20378-del-script
7604-filter-modifiers-v3
circuit-swap
12318-case-insensitive-uniqueness
20637-improve-device-q-filter
20660-script-load
19724-graphql
20614-update-ruff
14884-script
02496-max-page
19720-macaddress-interface-generic-relation
19408-circuit-terminations-export-templates
20203-openapi-check
fix-19669-api-image-download
7604-filter-modifiers
19275-fixes-interface-bulk-edit
fix-17794-get_field_value_return_list
11507-show-aggregate-and-rir-on-api
9583-add_column_specific_search_field_to_tables
v4.5.0
v4.4.10
v4.4.9
v4.5.0-beta1
v4.4.8
v4.4.7
v4.4.6
v4.4.5
v4.4.4
v4.4.3
v4.4.2
v4.4.1
v4.4.0
v4.3.7
v4.4.0-beta1
v4.3.6
v4.3.5
v4.3.4
v4.3.3
v4.3.2
v4.3.1
v4.3.0
v4.2.9
v4.3.0-beta2
v4.2.8
v4.3.0-beta1
v4.2.7
v4.2.6
v4.2.5
v4.2.4
v4.2.3
v4.2.2
v4.2.1
v4.2.0
v4.1.11
v4.1.10
v4.1.9
v4.1.8
v4.2-beta1
v4.1.7
v4.1.6
v4.1.5
v4.1.4
v4.1.3
v4.1.2
v4.1.1
v4.1.0
v4.0.11
v4.0.10
v4.0.9
v4.1-beta1
v4.0.8
v4.0.7
v4.0.6
v4.0.5
v4.0.3
v4.0.2
v4.0.1
v4.0.0
v3.7.8
v3.7.7
v4.0-beta2
v3.7.6
v3.7.5
v4.0-beta1
v3.7.4
v3.7.3
v3.7.2
v3.7.1
v3.7.0
v3.6.9
v3.6.8
v3.6.7
v3.7-beta1
v3.6.6
v3.6.5
v3.6.4
v3.6.3
v3.6.2
v3.6.1
v3.6.0
v3.5.9
v3.6-beta2
v3.5.8
v3.6-beta1
v3.5.7
v3.5.6
v3.5.5
v3.5.4
v3.5.3
v3.5.2
v3.5.1
v3.5.0
v3.4.10
v3.4.9
v3.5-beta2
v3.4.8
v3.5-beta1
v3.4.7
v3.4.6
v3.4.5
v3.4.4
v3.4.3
v3.4.2
v3.4.1
v3.4.0
v3.3.10
v3.3.9
v3.4-beta1
v3.3.8
v3.3.7
v3.3.6
v3.3.5
v3.3.4
v3.3.3
v3.3.2
v3.3.1
v3.3.0
v3.2.9
v3.2.8
v3.3-beta2
v3.2.7
v3.3-beta1
v3.2.6
v3.2.5
v3.2.4
v3.2.3
v3.2.2
v3.2.1
v3.2.0
v3.1.11
v3.1.10
v3.2-beta2
v3.1.9
v3.2-beta1
v3.1.8
v3.1.7
v3.1.6
v3.1.5
v3.1.4
v3.1.3
v3.1.2
v3.1.1
v3.1.0
v3.0.12
v3.0.11
v3.0.10
v3.1-beta1
v3.0.9
v3.0.8
v3.0.7
v3.0.6
v3.0.5
v3.0.4
v3.0.3
v3.0.2
v3.0.1
v3.0.0
v2.11.12
v3.0-beta2
v2.11.11
v2.11.10
v3.0-beta1
v2.11.9
v2.11.8
v2.11.7
v2.11.6
v2.11.5
v2.11.4
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.10
v2.10.9
v2.11-beta1
v2.10.8
v2.10.7
v2.10.6
v2.10.5
v2.10.4
v2.10.3
v2.10.2
v2.10.1
v2.10.0
v2.9.11
v2.10-beta2
v2.9.10
v2.10-beta1
v2.9.9
v2.9.8
v2.9.7
v2.9.6
v2.9.5
v2.9.4
v2.9.3
v2.9.2
v2.9.1
v2.9.0
v2.9-beta2
v2.8.9
v2.9-beta1
v2.8.8
v2.8.7
v2.8.6
v2.8.5
v2.8.4
v2.8.3
v2.8.2
v2.8.1
v2.8.0
v2.7.12
v2.7.11
v2.7.10
v2.7.9
v2.7.8
v2.7.7
v2.7.6
v2.7.5
v2.7.4
v2.7.3
v2.7.2
v2.7.1
v2.7.0
v2.6.12
v2.6.11
v2.6.10
v2.6.9
v2.7-beta1
Solcon-2020-01-06
v2.6.8
v2.6.7
v2.6.6
v2.6.5
v2.6.4
v2.6.3
v2.6.2
v2.6.1
v2.6.0
v2.5.13
v2.5.12
v2.6-beta1
v2.5.11
v2.5.10
v2.5.9
v2.5.8
v2.5.7
v2.5.6
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.9
v2.5-beta2
v2.4.8
v2.5-beta1
v2.4.7
v2.4.6
v2.4.5
v2.4.4
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.7
v2.4-beta1
v2.3.6
v2.3.5
v2.3.4
v2.3.3
v2.3.2
v2.3.1
v2.3.0
v2.2.10
v2.3-beta2
v2.2.9
v2.3-beta1
v2.2.8
v2.2.7
v2.2.6
v2.2.5
v2.2.4
v2.2.3
v2.2.2
v2.2.1
v2.2.0
v2.1.6
v2.2-beta2
v2.1.5
v2.2-beta1
v2.1.4
v2.1.3
v2.1.2
v2.1.1
v2.1.0
v2.0.10
v2.1-beta1
v2.0.9
v2.0.8
v2.0.7
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v2.0-beta3
v1.9.6
v1.9.5
v2.0-beta2
v1.9.4-r1
v1.9.3
v2.0-beta1
v1.9.2
v1.9.1
v1.9.0-r1
v1.8.4
v1.8.3
v1.8.2
v1.8.1
v1.8.0
v1.7.3
v1.7.2-r1
v1.7.1
v1.7.0
v1.6.3
v1.6.2-r1
v1.6.1-r1
1.6.1
v1.6.0
v1.5.2
v1.5.1
v1.5.0
v1.4.2
v1.4.1
v1.4.0
v1.3.2
v1.3.1
v1.3.0
v1.2.2
v1.2.1
v1.2.0
v1.1.0
v1.0.7-r1
v1.0.7
v1.0.6
v1.0.5
v1.0.4
v1.0.3-r1
v1.0.3
1.0.0
Labels
Clear labels
beta
breaking change
complexity: high
complexity: low
complexity: medium
needs milestone
netbox
pending closure
plugin candidate
pull-request
severity: high
severity: low
severity: medium
status: accepted
status: backlog
status: blocked
status: duplicate
status: needs owner
status: needs triage
status: revisions needed
status: under review
topic: GraphQL
topic: Internationalization
topic: OpenAPI
topic: UI/UX
topic: cabling
topic: event rules
topic: htmx navigation
topic: industrialization
topic: migrations
topic: plugins
topic: scripts
topic: templating
topic: testing
type: bug
type: deprecation
type: documentation
type: feature
type: housekeeping
type: translation
Mirrored from GitHub Pull Request
Milestone
No items
No Milestone
Projects
Clear projects
No project
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: starred/netbox#4563
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @proudbro on GitHub (Feb 12, 2021).
Originally assigned to: @jeremystretch on GitHub.
Environment
Proposed Functionality
We are faced with the limitation of the cable length for any unit (meters, inches etc)
The maximum length is 32767. And that's not enough for some of our cables.
Use Case
We are planning to add and store trunk (magistral) fiber cables to Netbox between optical patchpanes in datacenters.
Database Changes
Change field type
External Dependencies
@jeremystretch commented on GitHub (Feb 12, 2021):
You have cables longer than 32 kilometers? It sounds like you're using cables to represent circuits.
@proudbro commented on GitHub (Feb 16, 2021):
@jeremystretch, we have optical patch panels between sites (server rooms are located in different cities) which connected directly by fiber cables to each other. I thought the right way to model that connection is to create cable which connected each rear port combining all front ports on every single patch panel. Why it should be circuit? Or it should and I just misunderstood the sense of circuit?
@DanSheps commented on GitHub (Feb 22, 2021):
Is the direct connect provided by you? Is it provided by a ISP? If it is from a ISP, then you should be using "circuit". If it is your own fiber that you have installed between these two datacenters (unlikely), then perhaps this might be a valid case, however it would be better to, IMO, allow representation in KMs instead of increasing the field size.
I am guessing, but I suspect your use case is you purchased fiber from someone, in which case this should be modelled as a patch going to a circuit.
@xkilian commented on GitHub (Feb 23, 2021):
This is a valid use-case, think of all the gas, hydro, electrical, mining, public transit, transport and other utilities that have their own WAN or MAN using black fiber networks. They have right of way, so it makes sense for them to run black fiber all over the place, same for being present in places with no fiber to be leased. Sure long runs using 40 or 80KM optics are not common, but they are there.
@xkilian commented on GitHub (Feb 23, 2021):
Maybe having an intelligent field that can recognize that the length is either in meters or kilometers might be interesting here?
@TheNetworkGuy commented on GitHub (Mar 1, 2021):
I mean technically you are right. But how niche would this feature be? How many telco providers will use Netbox to:
In our case we do rely on (ring) circuits which extend over a long distance (far more than 32KM.) But even those circuits are managed by a 3rd party who provides a circuit ID etc.
@proudbro commented on GitHub (Mar 1, 2021):
@DanSheps , yes, we have our own 60km fiber bulk cables between datacenters and there are not provaded by ISP or any other third party companies.
It's easier to represent it as Cable (we have custom field "Magistral" to emphasize importance) between two rear ports that had been created for optical patch panels.
@jeremystretch commented on GitHub (Mar 1, 2021):
Agreed, although we also need to consider the absolute length value, which is calculated and stored behind the scenes for ordering.
@vk5tu commented on GitHub (Apr 1, 2021):
My experience with fiber plant suggests that meters is the correct unit; as that the unit everything else reports (cableloggers, OTDRs, etc). The longest fiber run you're likely to see is around 300Km, but we still want to track that in meters as then a rackmounted OTDR can compare the fiber's current distance against the installed distance recorded in Netbox. For these very long runs a fault near one of the two ends is more likely than a midspan fault, and storing the length in kilometers will disguise faults in the final 500m or so.
@jeremystretch commented on GitHub (Apr 21, 2021):
It seems that the outstanding question is how best to model a long-distance fiber run (one which spans many kilometers): Is it a cable, or a circuit? The answer seems to determine whether we implement this change or #6122.
Having given this some consideration, I think it's most appropriate to treat these runs as cables, since ultimately that's exactly what they are: very long cables. I see this as distinct from a circuit, which can comprise multiple cables and devices unknown and unimportant to the NetBox user; a circuit is a more abstract end-to-end physical connection between two points.
@proudbro commented on GitHub (Apr 21, 2021):
@jeremystretch , Yes, that's right. It is easier to model these sections with cables. After all a circuit also requires cables to be connected at both points of connection to devices.
@julianze commented on GitHub (Apr 22, 2021):
i would like the see those "long-distance fiber´s" as curcuits.
I see the difference between just "cables" and "circuits" in the way who is providing those paths.
Long cables between two buildings on one campus, i would define this as "cable".
the ownership of those cables are mostly the company itself, which place an order for road construction or civil engineering companies to lay the cable in the ground.
Circuits which are provided through an external party should be defined as circuit, so you can model the "Provider" with all it´s useful attributes (noc, admin contact, account number) and the circuit itself has required attributes (id, contract number, install date).
Okay "commit rate" wouldn´t be required for a physical fiber because it depends on the optics.
Those cable´s are paid on a monthly/yearly fee.
We as a german internet service provider buying long-distance fibers from municipal utilities (sorry, i don´t know how "Stadtwerke" are called correctly outside germany), local or global fiber carrier. Some of them are for our backbone to connect network nodes, Partly they are used for connecting customer locations to the next network nodes.
When i model those circuits as cables, i lost the information of the provider an the above described attribtues of an circuit.
But i a agree, that especially those long-distance fiber´s are an special type of circuits, which is very similar to just cables.
@proudbro are the cables between the different cities in you ownership or are there laid and provided through a company / ISP / carrier?
I think you model this in your use case as cables to have a valid length of the end-to-end path between the patch panels, right?
see also the question from @DanSheps :
@proudbro commented on GitHub (Apr 22, 2021):
@julianze , we have our own cables in use between two cities which roughly 40000 meters long. These optical bulk cables between fiber crosses (optical patch panels) we use ourselves for our purposes and provide individual fibers (dark fiber) to our customers. I've planned to model it as Cables but came across the lengh limitation.
At the same time we rent several wavelengths from an uplink provider between other cities (more than 800000m including many intermediate nodes like amplifiers). It is more correct to model as circuits.
@jeremystretch commented on GitHub (Apr 22, 2021):
IMO if you own and operate the fiber itself, you care about the length and should model it as a cable. If not, meaning a provider is responsible for it, you don't care about the length (or the physical path in general), and should model it as a circuit. Does that sound reasonable?
If so, this means we:
@BarbarossaTM commented on GitHub (Apr 22, 2021):
I would argue that when you rent a dark fiber (so not your own physical cable) a circuit would fit better as it has the provider relationship already in place. But as it is a darf fiber knowing the length still is necessary to chose the correct optics/WDM equipment etc. This obviously would mean both length fields are required, which would provide more flexibilty, too.
@xkilian commented on GitHub (Apr 22, 2021):
As a MAN private entity, we have all three cases, and length should be provided for dark fiber runs that are rented "cables", as stated by BarbarossaTM it helps choose the right optics. The length attribute for circuits should be optional. As 90% of cases do not need it, but dark fiber runs do need it. And I agree with wholelly owned long fiber be modelled as cables.
@julianze commented on GitHub (Apr 25, 2021):
i think both scenarios are valid and exists out there,
So i am in favor implementing both.
May i can volunteer for #6122, but it would be my first time in developing with netbox and will probably need some support.
@jeremystretch commented on GitHub (May 4, 2021):
Reading through this again, it seems that adding kilometer and mile as length units would suffice to address the cited use cases. And #6154 would allow partial units (e.g. 7.25 km). If agreed, we can tag this for v2.12.