Add Twinax cable support #2205

Closed
opened 2025-12-29 17:23:34 +01:00 by adam · 10 comments
Owner

Originally created by @swerveshot on GitHub (Dec 12, 2018).

Change Type

[X] Addition
[ ] Correction
[ ] Deprecation
[ ] Cleanup (formatting, typos, etc.)

Environment

Python version: 3.6.7
NetBox version: v2.5.0

Proposed Functionality

When observing the available cable types in the connection section of the devices menu I noticed the usual suspects for copper and optical fibre. But I'm missing a less used one. A Cisco SFP+ Twinax copper cable. Details can be found here: https://www.cisco.com/c/en/us/products/collateral/interfaces-modules/transceiver-modules/data_sheet_c78-455693.html

Could you please add this cable type to netbox? I'll try to do it myself but haven't looked at the files related to this type of change before.

Originally created by @swerveshot on GitHub (Dec 12, 2018). ### Change Type [X] Addition [ ] Correction [ ] Deprecation [ ] Cleanup (formatting, typos, etc.) ### Environment Python version: 3.6.7 NetBox version: v2.5.0 ### Proposed Functionality When observing the available cable types in the connection section of the devices menu I noticed the usual suspects for copper and optical fibre. But I'm missing a less used one. A Cisco SFP+ Twinax copper cable. Details can be found here: https://www.cisco.com/c/en/us/products/collateral/interfaces-modules/transceiver-modules/data_sheet_c78-455693.html Could you please add this cable type to netbox? I'll try to do it myself but haven't looked at the files related to this type of change before.
adam added the status: acceptedtype: feature labels 2025-12-29 17:23:35 +01:00
adam closed this issue 2025-12-29 17:23:35 +01:00
Author
Owner

@DanSheps commented on GitHub (Dec 12, 2018):

Here is all the code that would probably be required:

In netbox\dcim\constants.py (around line 328):

CABLE_TYPE_DAC=1100
CABLE_TYPE_ACC=1200
CABLE_TYPE_AOC=3900

add to the start of the array for "copper" (around line 346 after the previous changes):

(CABLE_TYPE_DAC,'Direct Attached Passive Copper Cable'),
(CABLE_TYPE_ACC,'Direct Attached Active Copper Cable'),

add to the start of the array for "fiber" (around line 358 after the previous changes):

(CABLE_TYPE_AOC,'Direct Attached Active Optical Cable'),

Of course, @jeremystretch might suggest better #'s for the ID's

@DanSheps commented on GitHub (Dec 12, 2018): Here is all the code that would probably be required: In netbox\dcim\constants.py (around line 328): ``` CABLE_TYPE_DAC=1100 CABLE_TYPE_ACC=1200 CABLE_TYPE_AOC=3900 ``` add to the start of the array for "copper" (around line 346 after the previous changes): ``` (CABLE_TYPE_DAC,'Direct Attached Passive Copper Cable'), (CABLE_TYPE_ACC,'Direct Attached Active Copper Cable'), ``` add to the start of the array for "fiber" (around line 358 after the previous changes): ``` (CABLE_TYPE_AOC,'Direct Attached Active Optical Cable'), ``` Of course, @jeremystretch might suggest better #'s for the ID's
Author
Owner

@ghost commented on GitHub (Dec 18, 2018):

Just came across this today. Would love to have aoc and dac as cable options.

@ghost commented on GitHub (Dec 18, 2018): Just came across this today. Would love to have aoc and dac as cable options.
Author
Owner

@jeremystretch commented on GitHub (Dec 19, 2018):

I don't think we would have separate types for DAC and Twinax, would we? My (possibly wrong) understanding is that Twinax is the physical medium employed by direct-attach copper cabling (DAC).

Seems like there should be three classes of direct-attach cabling:

  • Passive copper
  • Active copper
  • Active optical (AOC)

Hopefully someone with more hands-on experience can chime in.

@jeremystretch commented on GitHub (Dec 19, 2018): I don't think we would have separate types for DAC and Twinax, would we? My (possibly wrong) understanding is that Twinax is the physical medium employed by direct-attach copper cabling (DAC). Seems like there should be three classes of direct-attach cabling: * Passive copper * Active copper * Active optical (AOC) Hopefully someone with more hands-on experience can chime in.
Author
Owner

@rdegez commented on GitHub (Dec 20, 2018):

As DAC cables kind of embed transceivers on each side I guess we need various declinaison (for each types of supported transceiver interface).

Most common would be

  • Active/passive coper & optical SFP/SFP+DAC (1G/10G)
  • Active/passive coper & optical QSFP DAC (40G)
  • Active/passive coper & optical QSFP28 DAC (100G)

To complicate things further : a lot of DAC cables types are actually not symetrical.

Some switchs support "agileports" with the ability to split à single QSFP port to 4x10Gbe link for instance.
QSFP breakout to 4 x SFP+ DACs are very common as it's a VERY cheap way to connect 4 servers with 10Gbe NIC to a single QSFP switch port. QSFP28 breakout to 4xSFP28 as well.

Supporting them would require 1:N mapping. Don't know if the netbox datamodel can handle these.

And what about fiber breakout cables with say 12/24/48 MMF or SMF in a single cable ? They would require N:N mapping :-)

@rdegez commented on GitHub (Dec 20, 2018): As DAC cables kind of embed transceivers on each side I guess we need various declinaison (for each types of supported transceiver interface). Most common would be - Active/passive coper & optical SFP/SFP+DAC (1G/10G) - Active/passive coper & optical QSFP DAC (40G) - Active/passive coper & optical QSFP28 DAC (100G) To complicate things further : a lot of DAC cables types are actually not symetrical. Some switchs support "agileports" with the ability to split à single QSFP port to 4x10Gbe link for instance. QSFP breakout to 4 x SFP+ DACs are very common as it's a VERY cheap way to connect 4 servers with 10Gbe NIC to a single QSFP switch port. QSFP28 breakout to 4xSFP28 as well. Supporting them would require 1:N mapping. Don't know if the netbox datamodel can handle these. And what about fiber breakout cables with say 12/24/48 MMF or SMF in a single cable ? They would require N:N mapping :-)
Author
Owner

@jeremystretch commented on GitHub (Dec 20, 2018):

@rdegez The only thing we're concerned with here is the medium classification; interface speed is represented by the interface type. Additionally, NetBox does not model breakout cables; each channel in a 4x10GE breakout should be modeled as a separate interface with its own cable.

@jeremystretch commented on GitHub (Dec 20, 2018): @rdegez The only thing we're concerned with here is the medium classification; interface speed is represented by the interface type. Additionally, NetBox does not model breakout cables; each channel in a 4x10GE breakout should be modeled as a separate interface with its own cable.
Author
Owner

@rdegez commented on GitHub (Dec 20, 2018):

@jeremystretch

Ok, thanks for the clarification on breakout cables. I guess this limitation can be overcome by specifing the same cable label to group these. (and creating 'subinterfaces' directly in the device as you said)

But the need for differentiation between SFP/SFP+, QSFP & QSFP28 DAC cables stands I guess ?
Otherwise why differentiate cat4/5/5e/6 RJ45 copper cables ?

Would be nice to make the "Cable Types" customizable like devices types / cluster types / prefix roles / etc...

@rdegez commented on GitHub (Dec 20, 2018): @jeremystretch Ok, thanks for the clarification on breakout cables. I guess this limitation can be overcome by specifing the same cable label to group these. (and creating 'subinterfaces' directly in the device as you said) But the need for differentiation between SFP/SFP+, QSFP & QSFP28 DAC cables stands I guess ? Otherwise why differentiate cat4/5/5e/6 RJ45 copper cables ? Would be nice to make the "Cable Types" customizable like devices types / cluster types / prefix roles / etc...
Author
Owner

@ghost commented on GitHub (Dec 20, 2018):

I agree with direct attach top level cable type with passive copper, active copper, and active optical as selectable options. Twinax is copper cable type used in either active or passive copper DACs. It could be said these are active or passive twinax cables. That said AOC is not refered to as active multimode fiber. I would suggest going with the more generic copper/optical terms.

@ghost commented on GitHub (Dec 20, 2018): I agree with direct attach top level cable type with passive copper, active copper, and active optical as selectable options. Twinax is copper cable type used in either active or passive copper DACs. It could be said these are active or passive twinax cables. That said AOC is not refered to as active multimode fiber. I would suggest going with the more generic copper/optical terms.
Author
Owner

@DanSheps commented on GitHub (Dec 30, 2018):

Yeah, I don't really use active copper as generally at the lengths where I need active I am using optical. I updated my code, but if no one else wants to implement this I can do the PR since it is fairly straight forward.

@DanSheps commented on GitHub (Dec 30, 2018): Yeah, I don't really use active copper as generally at the lengths where I need active I am using optical. I updated my code, but if no one else wants to implement this I can do the PR since it is fairly straight forward.
Author
Owner

@zsandrus commented on GitHub (Jan 7, 2019):

We use these cables fairly heavily in our environment. This includes Active and Passive DAC and AOC cables for SFP/SFP+/SFP28/QSFP/QSFP28 connections. I don't see any reason to separate the connector type since that is on the interface, but I think that the three cable types should be available.

@zsandrus commented on GitHub (Jan 7, 2019): We use these cables fairly heavily in our environment. This includes Active and Passive DAC and AOC cables for SFP/SFP+/SFP28/QSFP/QSFP28 connections. I don't see any reason to separate the connector type since that is on the interface, but I think that the three cable types should be available.
Author
Owner

@swerveshot commented on GitHub (Jan 9, 2019):

The scope of this issue has grown a bit beyond the initial request. But that's okay. At least there's a relevant discussion on which cable types to include.

Yes @jeremystretch a Twinax cable is a DAC that has both passive (1m-5m) and active (7m, 10m) variants. As far as I know it only comes in a SFP+ form factor.

Now @rdegez brings up a good point on how to deal with DAC breakout cables. Now you can divide the physical interface into subinterfaces on a device. That's easy. When dealing with cable types you could indeed include the transceivers as well.

This could look something like this:

Termination A          Cable Type                     Termination B
switch1/qsfp-port48.0  QSFP to Four SFP+ (AOC class)  switch2/sfp-port1
switch1/qsfp-port48.1  QSFP to Four SFP+ (AOC class)  switch3/sfp-port1
switch1/qsfp-port48.2  QSFP to Four SFP+ (AOC class)  switch4/sfp-port1
switch1/qsfp-port48.3  QSFP to Four SFP+ (AOC class)  switch5/sfp-port1

Of course the transceiver form factor is determined by the interface but I think especially when using direct attached cables it actually makes sense to include the transceivers in the description as they can be different on each end of the cable such as is the case with breakout cables.

@swerveshot commented on GitHub (Jan 9, 2019): The scope of this issue has grown a bit beyond the initial request. But that's okay. At least there's a relevant discussion on which cable types to include. Yes @jeremystretch a Twinax cable is a DAC that has both passive (1m-5m) and active (7m, 10m) variants. As far as I know it only comes in a SFP+ form factor. Now @rdegez brings up a good point on how to deal with DAC breakout cables. Now you can divide the physical interface into subinterfaces on a device. That's easy. When dealing with cable types you could indeed include the transceivers as well. This could look something like this: ``` Termination A Cable Type Termination B switch1/qsfp-port48.0 QSFP to Four SFP+ (AOC class) switch2/sfp-port1 switch1/qsfp-port48.1 QSFP to Four SFP+ (AOC class) switch3/sfp-port1 switch1/qsfp-port48.2 QSFP to Four SFP+ (AOC class) switch4/sfp-port1 switch1/qsfp-port48.3 QSFP to Four SFP+ (AOC class) switch5/sfp-port1 ``` Of course the transceiver form factor is determined by the interface but I think especially when using direct attached cables it actually makes sense to include the transceivers in the description as they can be different on each end of the cable such as is the case with breakout cables.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#2205