mirror of
https://github.com/netbox-community/netbox.git
synced 2026-01-11 21:10:29 +01:00
Fiber interfaces (SFPs, qSFP, etc...) simplex or duplex #6267
Closed
opened 2025-12-29 19:38:43 +01:00 by adam
·
9 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#6267
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 @ppcarvalhof on GitHub (Mar 27, 2022).
NetBox version
v3.1.10
Feature type
Change to existing functionality
Proposed functionality
It is common for modular interfaces (SFP+ for example) on devices (SFP+ for example) we have transivers that using a single fiber connection (simplex in wdm/bidi mode) or two fiber connections (duplex in Tx/Rx mode) behaving as a single interface.
Thus, it would be interesting to have a checkbox to define whether the module is simplex (unchecked by default to maintain compatibility) or duplex and, by checking this option, the interface changes to two fiber "connectors" fiber (one being Tx and the other Rx) . Another solution would be to treat such interfaces (modular Ethernet) as a "device bay" interface and, treat the modules as a "common" interface (as they really are). When we create the devices to occupy this bay, we identify whether it is simplex or duplex.
PS.: In both approaches, it would be good if we had fields such as: manufacturer, model, range in KM, serial, and laser wavelength (remembering that duplex modules use the same wavelength in Tx and Rx and simplex modules use different wavelengths. Examples: GSTP317-DSL10D is simplex and uses 1310nm and SFP-10G-BX90-U and SFP-10G-BX90-D use Tx1490/Rx1550nm and Tx1550/Rx1490nm respectively. Photos attached). So for duplex it would be just one wavelength field "xxxx nm" and for simplex it would be two fields equivalent to "Tx xxxx nm" "Rx xxxx nm".
Use case
I have a switch with two SFP+ ports. One has a 10G WDM/BIDI module and the other has a duplex module. Both are connected in a Fiber Optic Patch Panel Furukawa. The first is connected by a fiber at position 13. The second is connected by two cables at positions (Tx) 21 and (Rx) 22. The first is possible to map normally, but the second I can only map one of the cables (even though there are two for a single interface).
Database changes
No response
External dependencies
No response
@martinum4 commented on GitHub (Mar 27, 2022):
I solved this for me by giving all fiber patch panels back ports with two positions, when i deploy BiDi i just generate a new front port.

All my front ports in my device types contain [nn].1, when i deploy BiDi i just add a [nn].2 front ports the appropriate devices.
Example:
@salvador-andes commented on GitHub (Mar 28, 2022):
I love netbox, but this is a limitation for us, since in some cases we use simplex transceivers (which only use one LC port in the ODF), but in other cases we use duplex transceivers, which use two LC ports in the ODF.
Please consider this feature for future releases :)
We have to use IXP Manager's patch panel section as a workaround, but we would love to have everything in Netbox
Here is an example who is it managed in other solutions:
It looks like this in the configuration of the ODF port

@jeremystretch commented on GitHub (Apr 5, 2022):
Thank you for your interest in extending NetBox. Unfortunately, the information you have provided does not constitute an actionable feature request. Per our contributing guide, a feature request must include a thorough description of the proposed functionality, including any database changes, new views or API endpoints, and so on. It must also include a detailed use case justifying its implementation. If you would like to elaborate on your proposal, please modify your post above. If sufficient detail is not added, this issue will be closed.
@ghost commented on GitHub (Apr 11, 2022):
This could possibly also be solved by allowing an interface to connect to multiple ports using the same cable.
For instance, if you have a fiber distribution panel that is 24 strands, you can create this device 1 of 2 ways. You can either assign it 24 front ports, or 12 front ports.
If you assign it 12 front ports you would only be able to use duplex fiber. You would connect port 1 to an interface and its up to the user to understand that 2 fiber strands equal 1 transmit/receive pair to create a connection to interface X.
If you assign it 24 front ports you now have the flexibility to use simplex OR duplex fiber. The problem here is that you can only assign 1 front port to an interface. If you are a 100% simplex environment that also wouldn't be much of an issue.
The issue arises when you have a mix of duplex AND simplex. In the above example of an FDP with 24 front ports you may have ports 1 and 2 and 3 and 4 all being simplex connections going to 4 different interfaces. The problem is, how do you now assign BOTH ports 5 AND 6 to 1 interface using 1 cable.
If the limitation was removed to be able to assign multiple front ports to 1 interface, and have those ports share the same cable then you would accomplish the main objective.
After that, it's just a matter of drop down selections for cable type to distinguish between simplex/duplex
@DanSheps commented on GitHub (Apr 11, 2022):
I think it would be better to treat a interface as having multiple connection points (upstream and downstream).
@ghost commented on GitHub (Apr 11, 2022):
I think we're saying the same thing. I'm saying it from the perspective of the patch panel, you're saying it from the perspective of the interface.
For multiple front ports to connect to an interface, an interface conversely has to be able to connect to multiple connection points.
@DanSheps commented on GitHub (Apr 11, 2022):
Yes, but you wouldn't have the multiple connections on the front port, as that would likely cause issues elsewhere (lets say someone gets it into their head to connect 2 front ports to a single front port, that is going to cause issues). Instead it would be easier to have 2 connection points per interface.
We don't want to get too complex here (yet), I think in the past when we approached this, we tried to cram too much in to one FR and it ended up biting us in the butt and the model needed to be re-written. If you look at it in another sense, if you have a duplex port, it is a discrete front port for both upstream and downstream on the patch panel, so it should be treated as such when we are thinking about redesigning this to support duplex connections.
@DanSheps commented on GitHub (Apr 11, 2022):
Going to supercede this with: #9102
@DanSheps commented on GitHub (Apr 11, 2022):
Duplicate of #9102